Move and extend factory with traits.

Well traits not used but very declarative.
Add missing locale keys.
Update so it becomes more international.

- "Dollar Discount" changed to "Cash Discount" so it fit all nations.
- Removed validation msg in form because they mess it up.
- Amount is numericality validated.