2016-11-14 4 views
0

https://developer.foursquare.com/overview/versioning он говорит:четвероугольник результата места локалите

Вы можете указать локаль, установив заголовок HTTP Accept-Language в запросе. В качестве альтернативы вы можете добавить параметр locale = XXX к вашему запросу, но предпочтительнее использовать спецификацию заголовка HTTP. В настоящее время мы поддерживаем en (default), es, fr, de, it, ja, th, tr, ko, ru, pt и id.

и

Если не указано иное, для географических объектов (например, название города), мы падают обратно, используя язык, который наиболее популярных в стране для этого места.

Теперь, как мы получаем локаль результата API? Если я запрошу с tr locale, он может ответить мне на en или другой резервный языковой стандарт. Я не мог найти его ни в результатах, ни в заголовках ответов.

Мне нужно это, чтобы кэшировать и показывать пользователям правильные данные. Например, резервный язык моего сайта - en, но API может дать мне, например, de.

Спасибо.


Редактировать Вот пример того, что я пытаюсь сказать;

URL:

https://api.foursquare.com/v2/venues/4adcda50f964a520354121e3 
?client_id=[client_id]&client_secret=[client_secret]&v=20161115&locale=tr 

Заголовки:

array (
    'Accept-Language' => 'tr', 
    'Accept' => 'application/json' 
) 

Результат (Обрезанные некоторые несвязанные элементы):

{ 
    "meta": { 
    "code": 200, 
    "requestId": "582bfe9e1ed21964a18d3aab" 
    }, 
    "response": { 
    "venue": { 
     "id": "4adcda50f964a520354121e3", 
     "name": "La Pedrera (Casa Milà) (Casa Milà 'La Pedrera')", 
     "contact": { 
     "phone": "+34902202138", 
     "formattedPhone": "+34 902 20 21 38", 
     "twitter": "catfundacio", 
     "facebook": "429182007214758", 
     "facebookUsername": "lapedrera.barcelona", 
     "facebookName": "La Pedrera-Casa Milà" 
     }, 
     "location": { 
     "address": "Pg. Gràcia, 92", 
     "crossStreet": "Carrer Provença", 
     "lat": 41.39509128050475, 
     "lng": 2.1618343621091296, 
     "postalCode": "08008", 
     "cc": "ES", 
     "city": "Barselona", 
     "state": "Cataluña", 
     "country": "İspanya", 
     "formattedAddress": [ 
      "Pg. Gràcia, 92 (Carrer Provença)", 
      "08008 Barselona Catalonia", 
      "İspanya" 
     ] 
     }, 
     "canonicalUrl": "https:\/\/foursquare.com\/v\/la-pedrera-casa-mil%C3%A0\/4adcda50f964a520354121e3", 
     "categories": [ 
     { 
      "id": "4bf58dd8d48988d12d941735", 
      "name": "Anıt \/ Abide", 
      "pluralName": "Anıtlar \/ Abideler", 
      "shortName": "Abide", 
      "icon": { 
      "prefix": "https:\/\/ss3.4sqi.net\/img\/categories_v2\/building\/government_monument_", 
      "suffix": ".png" 
      }, 
      "primary": true 
     }, 
     { 
      "id": "4bf58dd8d48988d130941735", 
      "name": "Bina", 
      "pluralName": "Binalar", 
      "shortName": "Bina", 
      "icon": { 
      "prefix": "https:\/\/ss3.4sqi.net\/img\/categories_v2\/building\/default_", 
      "suffix": ".png" 
      } 
     } 
     ],  
     "description": "La Pedrera (Casa Milà) és un edifici construït per Antoni Gaudí i declarat Patrimoni de la Humanitat. Actualment és la seu de la Fundació Catalunya-La Pedrera.", 
     "storeId": "", 
     "tags": [ 
     "gallery", 
     "gaudi", 
     "modernisme", 
     "museum", 
     "photobooth", 
     "sicted" 
     ], 
     "shortUrl": "http:\/\/4sq.com\/72NCMi", 
     "timeZone": "Europe\/Madrid", 
     "hours": { 
     "status": "09:00'e kadar kapalı", 
     "isOpen": false, 
     "isLocalHoliday": false, 
     "timeframes": [ 
      { 
      "days": "Pzt\u2013Paz", 
      "includesToday": true, 
      "open": [ 
       { 
       "renderedTime": "09:00\u201321:00" 
       } 
      ], 
      "segments": [ 

      ] 
      } 
     ] 
     }, 
     "attributes": { 
     "groups": [ 
      { 
      "type": "wifi", 
      "name": "Kablosuz Bağlantı", 
      "summary": "Ücretsiz Wi-Fi", 
      "count": 1, 
      "items": [ 
       { 
       "displayName": "Kablosuz Bağlantı", 
       "displayValue": "Ücretsiz" 
       } 
      ] 
      } 
     ] 
     }, 
     "bestPhoto": { 
     "id": "55672a92498ec352981dd144", 
     "createdAt": 1432824466, 
     "source": { 
      "name": "Foursquare Web", 
      "url": "https:\/\/foursquare.com" 
     }, 
     "prefix": "https:\/\/irs2.4sqi.net\/img\/general\/", 
     "suffix": "\/39082263_M0PK-NTv3A-0tI4j_aEIp5k6BEkliQTkMXS9TIPg_NQ.jpg", 
     "width": 620, 
     "height": 478, 
     "visibility": "public" 
     } 
    } 
    } 
} 

В addresses, categories, some of the names, timeframes, attributes секции фактически турецкий, но описание и большинство имен в резервном/местном языке, который Испанский в этом случае.

ответ

0

Языковой стандарт не указан в ответе API.

Если вы не укажете что-либо в заголовке HTTP Accept-Language, ответ будет по умолчанию самым популярным в стране языком. Однако, если вы укажете локальный, API не будет отвлекаться ни на что другое.

Если язык вашего сайта является английским, вы можете указать en в заголовке HTTP Accept-Language, и API предоставит вам и английский язык.

+0

отличается от переменной 'http headers' и' locale' querystring при возврате в местоположение? Я использую метод querystring. –

+0

Я пробовал оба типа настройки локали вместе, но он возвращает мне резервную локаль для места, когда у нее нет перевода на этот язык. –

+0

«Спецификация заголовка HTTP предпочтительна». Можете ли вы обновить свой вопрос с помощью примера запроса, в котором вы испытываете такое поведение? –