Ofertas Monedas admitidas por API y localización
La API de ofertas está diseñada para uso internacional. Puede solicitar precios de ofertas en una amplia gama de monedas, localizar el contenido de la respuesta por idioma y proporcionar contexto de zona horaria para información de ofertas urgente. Este artículo cubre cómo funciona cada una de estas funciones de localización.
Soporte de divisas
El parámetro currency
El parámetro de consulta currency acepta un código de moneda ISO 4217 de tres letras. Todos los precios de la respuesta (incluidos los precios de oferta, los precios originales y los montos de ahorro) se devuelven en la moneda especificada.
GET /hotels/api/v2/deals?lat=48.8566&long=2.3522¤cy=EUR
Monedas de uso común
| Código | Moneda | Símbolo | Región de ejemplo |
|---|---|---|---|
USD | Dólar estadounidense | $ | Estados Unidos |
EUR | euros | € | Zona del euro |
GBP | Libra esterlina británica | £ | Reino Unido |
CAD | Dólar canadiense | CAD | Canadá |
AUD | Dólar australiano | A$ | Australia |
MXN | peso mexicano | MX$ | México |
BRL | Real brasileño | R$ | Brasil |
JPY | Yen japonés | ¥ | Japón |
CNY | Yuan chino | ¥ | China |
INR | Rupia india | $ | India |
KRW | Won surcoreano | ₩ | Corea del Sur |
SGD | Dólar de Singapur | S$ | Singapur |
THB | Baht tailandés | ฿ | Tailandia |
AED | Dírham de los Emiratos Árabes Unidos | د.إ | Emiratos Árabes Unidos |
CHF | Franco suizo | CHF | Suiza |
SEK | Corona sueca | kr | Suecia |
NZD | Dólar de Nueva Zelanda | $NZ | Nueva Zelanda |
ZAR | rand sudafricano | R | Sudáfrica |
COP | peso colombiano | $ | Colombia |
ARS | peso argentino | $ | Argentina |
Cómo funciona la conversión de moneda
Las ofertas de hoteles provienen de múltiples proveedores, cada uno de los cuales puede fijar el precio de su inventario en diferentes monedas base. Cuando especifica una moneda en su solicitud, la API realiza la conversión en el lado del servidor utilizando los tipos de cambio actuales antes de devolver los resultados.
Puntos clave para entender:
- Tipos en tiempo real: los tipos de cambio se actualizan periódicamente para reflejar las condiciones actuales del mercado.
- Precios consistentes: todas las ofertas en una sola respuesta utilizan la misma moneda y el mismo tipo de cambio instantáneo, por lo que los precios son directamente comparables.
- No se necesita conversión del lado del cliente: puede mostrar los precios devueltos tal como están sin lógica de conversión adicional.
- Redondeo: los montos convertidos se redondean adecuadamente para la moneda de destino (por ejemplo, a dos decimales para USD, a números enteros para JPY).
Formato de precios para visualización
Al mostrar los precios de las ofertas, utilice Intl.NumberFormat del navegador para formatear los valores correctamente para la configuración regional del usuario:
function formatPrice(amount, currencyCode, locale = 'en-US') {
return new Intl.NumberFormat(locale, {
style: 'currency',
currency: currencyCode,
minimumFractionDigits: currencyCode === 'JPY' ? 0 : 2,
maximumFractionDigits: currencyCode === 'JPY' ? 0 : 2
}).format(amount);
}
// Examples:
formatPrice(199.00, 'USD'); // "$199.00"
formatPrice(175.50, 'EUR', 'de-DE'); // "175,50 €"
formatPrice(15000, 'JPY', 'ja-JP'); // "¥15,000"
Localización del idioma
El encabezado accept-language
El encabezado accept-language controla el idioma del texto localizado en la respuesta API. Esto puede afectar las descripciones de propiedades, las etiquetas de las ofertas y otros campos legibles por humanos.
accept-language: es
Códigos de idioma admitidos
La API admite etiquetas de idioma estándar BCP 47. Los valores comunes incluyen:| Código | Idioma |
|---------|-----------------------|
| en | Inglés |
| es | Español |
| fr | francés |
| de | alemán |
| it | italiano |
| pt | portugués |
| pt-BR | Portugués brasileño |
| ja | Japonés |
| ko | coreano |
| zh | Chino (simplificado) |
| zh-TW | Chino (tradicional) |
| ar | árabe |
| ru | ruso |
Comportamiento de localización
- Reserva: si el idioma solicitado no está disponible para un contenido en particular, la API vuelve al inglés.
- Localización parcial: algunos campos, como los nombres de las propiedades, pueden permanecer en su idioma original (el nombre que usa el hotel) independientemente del encabezado de idioma.
- Consistente dentro de la respuesta: todos los campos localizables en una sola respuesta usan el mismo idioma.
Detección del idioma del usuario
Podrás detectar el idioma preferido del usuario desde el navegador:
const userLanguage = navigator.language || navigator.userLanguage || 'en';
// e.g., "es-MX", "fr", "en-US"
Manejo de zona horaria
El encabezado timezone
El encabezado timezone acepta un identificador de zona horaria de IANA y ayuda a la API a devolver información temporal relevante ajustada a la hora local del usuario.
timezone: America/Los_Angeles
Por qué es importante la zona horaria
- Caducidad de la oferta: si una oferta tiene una fecha límite de reserva, la API puede expresarla en relación con la zona horaria del usuario.
- Relevancia de la fecha de entrada: las ofertas urgentes para "esta noche" o "este fin de semana" dependen de lo que significa "hoy" en la zona horaria del usuario.
- Consistencia: garantiza que las marcas de tiempo en la respuesta se alineen con lo que espera el usuario.
Detectando la zona horaria del usuario
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
// e.g., "America/New_York", "Europe/Berlin", "Asia/Tokyo"
Valores comunes de zona horaria de la IANA
| Zona horaria | Desplazamiento UTC | Región |
|---|---|---|
America/NewYork | UTC-5 | Este de EE. UU. |
America/Chicago | UTC-6 | Centro de EE. UU. |
America/Denver | UTC-7 | Montaña de EE. UU. |
America/LosAngeles | UTC-8 | Pacífico de EE. UU. |
Europe/London | UTC+0 | Reino Unido |
Europe/Paris | UTC+1 | Europa Occidental |
Europe/Berlin | UTC+1 | Europa Central |
Asia/Dubai | UTC+4 | Región del Golfo |
Asia/Kolkata | UTC+5:30 | India |
Asia/Singapore | UTC+8 | Singapur / Malasia |
Asia/Tokyo | UTC+9 | Japón |
Australia/Sydney | UTC+11 | Australia Oriental |
Pacific/Auckland | UTC+13 | Nueva Zelanda |
Juntándolo
Una solicitud totalmente localizada para un usuario de habla hispana en la Ciudad de México:
curl -X GET "https://travelapi.ai/hotels/api/v2/deals?lat=19.4326&long=-99.1332¤cy=MXN" \
-H "accept: application/json" \
-H "accept-language: es" \
-H "timezone: America/Mexico_City" \
-H "x-correlation-id: c3d4e5f6-a1b2-7890-cdef-123456789abc" \
-H "x-session-id: 12345678-abcd-ef01-2345-abcdef012345"
Esta solicitud devuelve ofertas de hoteles cerca de la Ciudad de México con precios en pesos mexicanos y contenido en español cuando esté disponible.