Validation error messages are defined per rule, not per field.
There is a workaround, you can pass a custom message when you process the validation errors. You can do this in a method of the model, so you keep it all in a single class.
foreach ($val->error() as $field => $error) { switch ($error->field) { case "fieldA": $msg = $error->get_message('Custom message with parameters here'); break;
default: $msg = $error->get_message(); } // do something with the $msg }