The menu option is available for both an unposted invoice or bill. Since invoice generically can mean both, it is relatively easy in English to understand which is meant solely by the context. For translators it is more difficult however. For example in Dutch this menu option is translated as "Bewerken->Verkoopfactuur boeken" ("Verkoopfactuur" means "customer invoice"). So when you want to post a vendor bill, the menu option is also "Verkoopfactuur boeken". This is clearly confusing.
Aggreed. We should use Q_("General|Invoice") Q_("Customer|Invoice") Q_("Vendor|Invoice") or pgettext("General", "Invoice") ... perhaps with a define P_ ... instead of _("Invoice") _("Bill") (But changing "Bill" would require an en.po to get it back there) But I am not shure, how to handle N_("Invoice") ... Reference: http://wiki.gnucash.org/wiki/Translation#Disambiguation_Prefix