So, how to practice? Besides listening, speaking, reading and writing, translating will be also a good way.
Duolingo is such a service for you to learn foreign languages by translation online free.
On the website, you can sign up with your email address, Facebook account or Twitter account, and choose the language (which you can change later) you want to learn, then you can start with different lessons, from basic to advanced, as what you can see from the following skill tree:
No matter which language you are learning, you need to start from the beginning lesson, and you can't start the next lesson until you pass the current one.
During the practice, you can move the cursor over any learning word to see its meanings in your speaking language, view example pictures, and listen to what you are learning.
After that, you can start the test, by translating the learning language to your speaking one, or vice versa, translating your speaking language to your learning one, by speaking to test your pronunciations of what you are learning, by writing down what you heard, etc., as what you can see from the following screenshot:
If your answers are right, you can continue, if not, you can skip the question and/or get the right answers. When passing with enough points, you can see the words you have learnt on the "Vocabulary" page.
Besides lessons, you can also translate the learning language to your speaking one on the "Translation" page, ask your own or answer other users' questions on the "Questions" page, follow other users and view their activities on your stream, so on and so forth.
Up till now, Duolingo offers Spanish, French and German courses for English speakers, as well as English for Spanish and Portuguese speakers.