in case other locale are used
Performance: use canonical name to replace toLowerCase (called repeatedly)