I think the easiest way is to store all the strings in a separate text/ini file and name the file what ever language it is (eg. 'English.ini' etc.)
Have the user select which language they want, then get the strings from that file.
eg.
then when show a message, just do something like:
message("Hello")
the message function would look for a key in the ini called "Hello" and find the corresponding word (which in english will still be hello), and display the corresponding string.
The ini file would look like this for english:
Hello=Hello
What is your name=What is your name
the Italian ini file would look like:
Hello=Ciao
What is your name=Vive name el solo
----
Otherwise instead of constantly reading from the file, you could store all of the strings in memory, maybe use a struct, stored in an array?
string myString
string translatedString
And then when use message("Hello") function, the function will look through all of your structs for "Hello" in myString, and return what ever the translatedString is.
Sorry I'm still a novice at C++, so I don't know if my advice is any good.