physical character movement

when i use transform.Translate() chracter can move but when it hit a collider , can’t stop moving and keep moving inside the collider.
what should i do?
sorry for my bad eglish.

yes it has rigidbody.

i found answer

we should use this code:

var Controller : CharacterController;
function Update () {
if(Input.GetAxis("Vertical"))
{
//transform.Translate(Vector3.forward*WalkSpeed*Input.GetAxis("Vertical"));
Controller.Move(transform.forward*0.09*Input.GetAxis("Vertical"));
}}

what if i need to move its legs also forward and back