How to make a sprite rotate and move in the direction it is rotating?

Hello, I’ve been trying to make an object rotate and move in the direction the front of the sprite is pointing at that moment at the same time but all my efforts have been unfruitful; so far I’ve managed to make it move diagonally.

Here is the concept:

This is one of the codes I’ve used (hasn’t worked):
using UnityEngine;
using System.Collections;

public class Controller2 : MonoBehaviour {

	public float speed;
	public Transform target;
	// The target I'm using is an empty game object placed right above the sprite

	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
	
		if (Input.GetKey(KeyCode.LeftArrow)) {
			transform.position += Vector3.left * speed * Time.deltaTime;
			Vector3 relativePos = (target.position + new Vector3 (0, 1.5f, 0)) - transform.position;
			Quaternion rotation = Quaternion.LookRotation (relativePos);

			Quaternion current = transform.localRotation;

			transform.localRotation = Quaternion.Slerp (current, rotation, Time.deltaTime);
			transform.Translate (0, 0, 0 * Time.deltaTime);
			// I've played with the three values that are multiplied by Time.deltatime on the previous line
		}

	}
}

Instead of Vector3.left, use transform.left; This will be the direction vector pointing to the left of the character depending in his current rotation, not the direction towards the world’s left (x-).

Also, to make a gameObject move forward, you use the appropriate transform vector; In a top-down 2D game, this is commonly transform.up.