When presenting links to content in different languages, consider the following:
Always use the name of the language in its local format
If you’re linking to pages in German and Chinese, label them as ‘Deutsch’ and ‘中文’ — not ‘German’ and ‘Chinese’.
Try autodetect the user’s language where possible
There are many ways to detect the language in a user’s browser. By doing so you can present a user with content in their language if it is available.
However, be sure to give an easy option to change languages: autodetection isn’t always 100% accurate.
Provide a clear way of changing languages
Provide a clear way for users to change languages. The header and footer are obvious places for users to find language selectors. On mobile consider placing any language selector into the main menu navigation.
Using icons to signify the availability of other languages can be a useful sign post for users. See more on best practice for communicating availability of translated content.
Don’t use flags unless the content is country specific
Unless the content is specific to that country — don’t use flags!
Other suggestions? Please add your comment below if you have any further thoughts or techniques.