Howtoforge posted a tutorial about using the Apache content negotiation module to serve different languages
Content negotiation is the ability of a web server to deliver the document that best matches the browser's preferences/capabilities. For example, if a resource exists in multiple languages, the web server can choose which variant it serves based on the Accept-Language header delivered by the browser. This tutorial describes how to configure content negotiation in Apache2 to serve different languages based on browser preferences.Using Apache2 Content Negotiation To Serve Different Languages