I've had some experience with multi-language software projects and have seen some helpful practices.
1) Put any text displayed on your site either into a constants file or in a database.
For instance, if you want to prompt the user with the word 'email address' you could define a constant in a file called prompts.php:
define('PROMPT_EMAIL_ADDRESS', 'email address');
You could then define several different versions of prompts.php and put them in different folders which correspond to different languages.
An alternative approach would be to put all prompts into a database table which has three fields: prompt_id, prompt_language_id, prompt_text. You could then create a record for each prompt in a variety of languages and check the user's session for their language id so you are sure to get the right one.
2) Declare your charsets to utf-8.
You should start your project at the outset to use multibyte characters sets like UTF-8. That way, when it gets released in Japanese, you might not have to rewrite all your code. NOTE that you'll need to use the multibyte string functions instead of the regular string functions.
You'd need to put the appropriate charset declaration in your html and you'd also need to define your databases to use utf-8 charsets as well.
3) Avoid completely duplicating all your code for each language. If you have to patch something in your code, it would be an absolute nightmare.
So you have your site launched in 10 languages and you realize you have a security vulnerability in every one of 10 forms. You DON'T want to go and patch it in 100 files. You want to patch it in 10.