Who plays angelica in Pirates of the Caribbean?

In Pirates of the Caribbean: On Stranger Tides, Angelica is played by the beautiful Penelope Cruz.