Using x-ibm-languages
to create multilingual API and Product
documentation
Create multilingual API and Product documentation by using the
x-ibm-languages
extension in your API and Product OpenAPI definitions.
You can scale your API initiatives to a global user base, while still maintaining a single API
definition. Translations are custom configured and controlled, so that they can be tailored to both
your API documentation and the API consumer. The extensions that are used in API Connect are added
directly to the YAML file as x-ibm-languages
. These extensions are then used in the
Developer Portal,
so that whatever language the Developer Portal is
set to reflects the translations that are contained in the API and Product definitions.
Add the following syntax into your API or Product YAML file at every point that you require some
translated text:
x-ibm-languages:
item_name:
language_code: translated_text
Where:item_name
is the name of the item that you want to translate, for examplesummary
.language_code
is the ISO code for the translation language. Supported languages with their ISO codes are listed in the following table.Table 1. List of supported language codes Language Code Chinese, simplified zh_cn
Chinese, traditional zh_tw
Dutch nl
English en
French fr
German de
Italian it
Japanese ja
Korean ko
Portuguese pt
Spanish es
Turkish tr
- translated_text is the translated text that you want to be displayed for the item in the Developer Portal.
Note: The Developer Portal
automatically assumes that the default language in the OpenAPI definition is English.
If you want to use a different default language in the definition, you must provide both the English
translation and the default language text in the
x-ibm-languages
extension sections
of your OpenAPI
definition, by using the following
syntax:x-ibm-languages:
item_name:
en: English_translated_text
default_language_code: default_language_text
For
an example of how to write an OpenAPI YAML file with French
as the default language, see the Examples
section.Examples
An example API OpenAPI
YAML file that contains the
fr
language extension, where English is the default
language:swagger: '2.0'
info:
x-ibm-name: climbing-weather-api
title: Climbing Weather API
version: 1.0.0
x-ibm-languages:
title:
fr: Climat d'escalade
schemes:
- https
host: $(catalog.host)
consumes:
- application/json
produces:
- application/json
x-ibm-configuration:
assembly:
execute:
- invoke:
target-url: 'https://1234.com'
title: 3 day forecast invocation
cache-response: time-to-live
cache-key: $(request.search)
gateway: datapower-gateway
enforced: true
testable: true
phase: realized
cors:
enabled: true
paths:
/weather/forecast:
get:
summary: Retrieve the 3 day forecast for a location
description: Retrieve the locations weather forecast descriptions for the next 3 days and nights
operationId: getWeather
x-ibm-languages:
summary:
fr: Récupérer la prévision de 3 jours pour un emplacement
description:
fr: Récupérer les descriptions des prévisions météo pour les 3 prochains jours et les nuits
tags:
- Weather
parameters:
- name: zip
type: string
in: query
description: A 5 number zip code
x-ibm-languages:
description:
fr: Un code postal à 5 numéros
- name: country
type: string
in: query
description: A 2 letter country code
x-ibm-languages:
description:
fr: Un code de pays de 2 lettres
- name: lat
type: string
in: query
description: A latitude value between -90 and 90
x-ibm-languages:
description:
fr: Une valeur de latitude entre -90 et 90
- name: lon
type: string
in: query
description: A longitude value between -180 and 180
x-ibm-languages:
description:
fr: Une valeur de longitude entre -180 et 180
responses:
'200':
description: Success
x-ibm-languages:
description:
fr: Succès
'400':
description: Bad Request
x-ibm-languages:
description:
fr: Mauvaise Demande
'408':
description: Request Timeout
x-ibm-languages:
description:
fr: Délai de délai de demande
'500':
description: Internal Server Error
x-ibm-languages:
description:
fr: Erreur Interne du Serveur
basePath: /
tags:
- name: Weather
description: Sample API to get weather forecast data
x-ibm-languages:
description:
fr: Exemple d'API pour obtenir des données météorologiques
securityDefinitions:
client-secret:
type: apiKey
description: ''
in: header
name: X-IBM-Client-Secret
client-id:
type: apiKey
description: ''
in: header
name: X-IBM-Client-Id
security:
- client-secret: []
client-id: []
An example Product OpenAPI YAML file that
contains the
fr
language extension, where English is the default
language:product: 1.0.0
info:
name: climbing-weather
title: Climbing Weather
version: 1.0.0
description: This is a product about weather.
x-ibm-languages:
title:
fr: Météo traduite
description:
fr: C'est un produit sur la météo.
termsOfService:
fr: Quid ergo aliud intellegetur en francais.
contact:
name: Ralph Renli
email: ralph.renli@example.com
url: 'https://weather.example.com/climbing/info'
license:
name: MIT License
url: 'https://choosealicense.com/licenses/mit/'
x-ibm-languages:
name:
fr: License de MIT
termsOfService: Quid ergo aliud intellegetur nisi uti ne quae pars naturae neglegatur? Quis est tam dissimile homini. De quibus cupio scire quid sentias.
categories:
- Portal/Testing/Language
- Portal/Testing/Language/UTF8
- Portal/Testing/Weather
visibility:
view:
enabled: true
type: public
tags: []
orgs: []
subscribe:
enabled: true
type: authenticated
tags: []
orgs: []
apis:
climbing-weather:
id: 593f972be4b06fb4e0dce879
plans:
a-call-a-day:
title: A call a day
description: "One call every day. That's it!"
x-ibm-languages:
title:
fr: "Un appel par jour"
description:
fr: "Un appel tous les jours. C'est tout!"
apis: {}
rate-limits:
One Call Per Day:
hard-limit: true
value: 1/1day
ten-calls-per-day:
title: 10 Calls a day
description: '10 times more calls than the next best competitor plan!'
x-ibm-languages:
title:
fr: "10 appels par jour"
description:
fr: "10 fois plus d'appels que le prochain meilleur plan concurrent!"
apis: {}
rate-limits:
10 calls per day:
hard-limit: true
value: 10/1minute
11-calls-every-day:
title: 11 Calls a day
description: 'Need just one more call? Then this is the plan for you!'
x-ibm-languages:
title:
fr: "11 appels par jour"
description:
fr: "Vous n'avez besoin que d'un appel supplémentaire? Alors c'est le plan pour vous!"
apis: {}
rate-limits:
11 calls per day:
hard-limit: true
value: 11/1day
25-calls-per-day:
title: 25 Calls per day
description: So you want even more calls?
apis: {}
x-ibm-languages:
title:
fr: "25 appels par jour"
description:
fr: "Vous voulez donc encore plus d'appels?"
rate-limits:
25 calls per day:
hard-limit: true
value: 25/1day
100-calls-per-day:
title: 100 Calls every day
description: 'You get 100 calls each and every day!'
x-ibm-languages:
title:
fr: "100 appels par jour"
description:
fr: "Vous recevez 100 appels chaque jour"
apis: {}
rate-limits:
100 Calls per day:
hard-limit: true
value: 100/1day
An example of how to write an OpenAPI YAML file with French
as the default
language:
info:
name: climat-d-escalade
title: Climat d'escalade
version: 1.0.0
x-ibm-languages:
title:
en: Climbing Weather API
fr: Climat d'escalade
...
This
example shows that both the default French language, and the English language translation, must be
provided in the x-ibm-languages
section.