4 Direction Movement Problem

Hello all,
Im trying to write a script that will allow my gameObject to move in 4 directions, however this is proving difficult. Now the gameObject still rotates to match the preferred direction (w,a,s,d), yet it only moves in the +z direction.

Any help is appreciated, thank you.

#pragma strict

public var walkSpeed : float = 1;

function Start ()
{

}

function Update ()
{
if (Input.GetKey(KeyCode.W))
{
	walkSpeed=1;
    transform.forward = new Vector3(0f, 0f, 1f);
	transform.Translate(0, 0, Time.deltaTime);
	animation.Play("Walk");
	print("W pressed");
}
if (Input.GetKey(KeyCode.S))
{
	walkSpeed=-1;
    transform.forward = new Vector3(0f, 0f, -1f);
	transform.Translate(0, 0, -Time.deltaTime);
	animation.Play("Walk");
	print("S pressed");
}
if (Input.GetKey(KeyCode.A))
{
	walkSpeed=1;
    transform.forward = new Vector3(-1f, 0f, 0f);
	transform.Translate(-1, 0, 0);
	animation.Play("Walk");
	print("A pressed");
}
if (Input.GetKey(KeyCode.D))
{
	walkSpeed=1;
    transform.forward = new Vector3(1f, 0f, 0f);
	transform.Translate(1, 0, 0);
	animation.Play("Walk");
	print("D pressed");
}
if(Input.anyKey == false)
{
	animation.Stop();
	walkSpeed=0;
}
}

Ok, so I figured it out. The code I was looking for was:

transform.Translate(Vector3.forward*walkSpeed);

–WHYME