Repository: mapbox/mapbox-sdk-py

Issue:
Isn't `forward()` supporting the language query?
In `https://github.com/mapbox/mapbox-sdk-py/blob/master/mapbox/services/geocoding.py` ' s current definition, language queries - according to `https://www.mapbox.com/api-documentation/?language=Python#geocoding` are not supported. Am I right, or did I something wrong?

Discussion:

Patch:
diff --git a/README.rst b/README.rst
index fd8f00c..d5e4771 100644
--- a/README.rst
+++ b/README.rst
@@ -15,6 +15,11 @@ The Mapbox Python SDK is a low-level client API, not a Resource API such as the
 Services
 ========
 
+- **Analytics** `examples <./docs/analytics.md>`__, `website <https://www.mapbox.com/api-documentation/#analytics>`__
+
+  - API usage for services by resource. 
+  - available for premium and enterprise plans.
+
 - **Directions** `examples <./docs/directions.md#directions>`__, `website <https://www.mapbox.com/api-documentation/?language=Python#directions>`__
 
   - Profiles for driving, walking, and cycling
@@ -37,9 +42,15 @@ Services
 
 - **Static Maps** `examples <./docs/static.md#static-maps>`__, `website <https://www.mapbox.com/api-documentation/pages/static_classic.html>`__
 
-  - Generate standalone images from existing Mapbox mapids
+  - Generate standalone images from existing Mapbox *mapids* (tilesets)
   - Render with GeoJSON overlays
+  
+- **Static Styles** `examples <./docs/static.md#static-maps>`__, `website <https://www.mapbox.com/api-documentation/#static>`__
 
+  - Generate standalone images from existing Mapbox *styles*
+  - Render with GeoJSON overlays
+  - Adjust pitch and bearing, decimal zoom levels
+  
 - **Surface** `examples <./docs/surface.md#surface>`__, `website <https://www.mapbox.com/developers/api/surface/>`__
 
   - Interpolates values along lines. Useful for elevation traces.
diff --git a/mapbox/services/geocoding.py b/mapbox/services/geocoding.py
index 9bccfd2..e22b91e 100644
--- a/mapbox/services/geocoding.py
+++ b/mapbox/services/geocoding.py
@@ -42,7 +42,7 @@ class Geocoder(Service):
         return {'types': ",".join(types)}
 
     def forward(self, address, types=None, lon=None, lat=None,
-                country=None, bbox=None, limit=None):
+                country=None, bbox=None, limit=None, languages=None):
         """Returns a Requests response object that contains a GeoJSON
         collection of places matching the given address.
 
@@ -64,6 +64,8 @@ class Geocoder(Service):
             params.update(proximity='{0},{1}'.format(
                 round(float(lon), self.precision.get('proximity', 3)),
                 round(float(lat), self.precision.get('proximity', 3))))
+        if languages:
+            params.update(language=','.join(languages))
         if bbox is not None:
             params.update(bbox='{0},{1},{2},{3}'.format(*bbox))
         if limit is not None:
@@ -124,7 +126,7 @@ class Geocoder(Service):
             'address': "A street address with house number. Examples: 1600 Pennsylvania Ave NW, 1051 Market St, Oberbaumstrasse 7.",
             'country': "Sovereign states and other political entities. Examples: United States, France, China, Russia.",
             'place': "City, town, village or other municipality relevant to a country's address or postal system. Examples: Cleveland, Saratoga Springs, Berlin, Paris.",
-            'locality': "A smaller area within a place that possesses official status and boundaries. Examples: Oakleigh (Melbourne)", 
+            'locality': "A smaller area within a place that possesses official status and boundaries. Examples: Oakleigh (Melbourne)",
             'neighborhood': "A smaller area within a place, often without formal boundaries. Examples: Montparnasse, Downtown, Haight-Ashbury.",
             'poi': "Places of interest including commercial venues, major landmarks, parks, and other features. Examples: Subway Restaurant, Yosemite National Park, Statue of Liberty.",
             'poi.landmark': "Places of interest that are particularly notable or long-lived like parks, places of worship and museums. A strict subset of the poi place type. Examples: Yosemite National Park, Statue of Liberty.",


Test patch:
diff --git a/tests/test_geocoder.py b/tests/test_geocoder.py
index 0e82af0..46efa78 100644
--- a/tests/test_geocoder.py
+++ b/tests/test_geocoder.py
@@ -350,3 +350,17 @@ def test_geocoder_forward_country():
     response = mapbox.Geocoder(
         access_token='pk.test').forward('1600 pennsylvania ave nw', country=['us'])
     assert response.status_code == 200
+
+
+@responses.activate
+def test_geocoder_language():
+    responses.add(
+        responses.GET,
+        'https://api.mapbox.com/geocoding/v5/mapbox.places/1600%20pennsylvania%20ave%20nw.json?language=en,de&access_token=pk.test',
+        match_querystring=True,
+        body='{"query": ["1600", "pennsylvania", "ave", "nw"]}', status=200,
+        content_type='application/json')
+
+    response = mapbox.Geocoder(access_token='pk.test').forward(
+        '1600 pennsylvania ave nw', languages=['en', 'de'])
+    assert response.status_code == 200