Letting visitors choose.
WHERE TO PUT THE SWITCHER
Visible, in the header or near the top.
Not buried in a footer.
WHAT TO SHOW
The language name in that language: "Français", not "French".
Someone who does not read your main language cannot find "French".
WHAT NOT TO USE
Flags alone.
Flags represent countries, not languages, and the mismatch causes real offence.
Many languages are spoken in many countries.
AUTOMATIC DETECTION
Can be helpful, and must always allow override.
A visitor sent to a language they do not read, with no way out, leaves.
WHAT TO REMEMBER
The visitor's choice, so they are not switched back on every page.
WHERE SWITCHING SHOULD LEAD
The same page in the other language.
Not the homepage. That is a common and irritating fault.
IF A PAGE HAS NO TRANSLATION
Say so, and offer the closest equivalent.
Do not simply hide the switcher.
WHAT TO TEST
Switching from several pages and confirming you land on the equivalent.