Languages API
De Languages API biedt endpoints voor het beheren van talen en taaloverrides in Joomla.
Base URL
/api/index.php/v1/languages
Endpoints Overzicht
Content Languages
| Methode | Endpoint | Beschrijving |
|---|---|---|
| GET | /languages/content | Alle content talen ophalen |
| GET | /languages/content/{id} | Specifieke taal ophalen |
| POST | /languages/content | Nieuwe content taal aanmaken |
| PATCH | /languages/content/{id} | Content taal bijwerken |
| DELETE | /languages/content/{id} | Content taal verwijderen |
Language Overrides
| Methode | Endpoint | Beschrijving |
|---|---|---|
| GET | /languages/overrides/{app}/{lang} | Overrides ophalen |
| POST | /languages/overrides/{app}/{lang} | Override aanmaken |
| PATCH | /languages/overrides/{app}/{lang}/{key} | Override bijwerken |
| DELETE | /languages/overrides/{app}/{lang}/{key} | Override verwijderen |
Content Languages
Alle content talen ophalen
GET /api/index.php/v1/languages/content
Response
{
"data": [
{
"type": "languages",
"id": "1",
"attributes": {
"lang_code": "nl-NL",
"title": "Nederlands (NL)",
"title_native": "Nederlands",
"sef": "nl",
"image": "nl_nl",
"description": "",
"metakey": "",
"metadesc": "",
"sitename": "",
"published": 1,
"access": 1,
"ordering": 1
}
}
]
}
Content taal aanmaken
POST /api/index.php/v1/languages/content
Request Body
{
"lang_code": "de-DE",
"title": "German (DE)",
"title_native": "Deutsch",
"sef": "de",
"image": "de_de",
"published": 1,
"access": 1
}
Verplichte velden
| Veld | Type | Beschrijving |
|---|---|---|
| lang_code | string | Taalcode (bijv. nl-NL, en-GB) |
| title | string | Titel van de taal |
| title_native | string | Native naam van de taal |
| sef | string | SEF prefix voor URLs |
Optionele velden
| Veld | Type | Standaard | Beschrijving |
|---|---|---|---|
| image | string | "" | Vlag afbeelding code |
| description | string | "" | Beschrijving |
| metakey | string | "" | Meta keywords |
| metadesc | string | "" | Meta beschrijving |
| sitename | string | "" | Site naam voor taal |
| published | int | 1 | Publicatiestatus |
| access | int | 1 | Toegangsniveau |
Voorbeeld
curl -X POST "https://jouwesite.nl/api/index.php/v1/languages/content" \
-H "X-Joomla-Token: JOUW_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"lang_code": "fr-FR",
"title": "French (FR)",
"title_native": "Français",
"sef": "fr"
}'
Content taal bijwerken
PATCH /api/index.php/v1/languages/content/{id}
Voorbeeld
curl -X PATCH "https://jouwesite.nl/api/index.php/v1/languages/content/1" \
-H "X-Joomla-Token: JOUW_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"sitename": "Mijn Nederlandse Site"
}'
Language Overrides
Language overrides maken het mogelijk om standaard Joomla vertalingen aan te passen.
Overrides ophalen
GET /api/index.php/v1/languages/overrides/{app}/{lang}
| Parameter | Waarden | Beschrijving |
|---|---|---|
| app | site, administrator | Frontend of backend |
| lang | nl-NL, en-GB, etc. | Taalcode |
Voorbeeld
curl -X GET "https://jouwesite.nl/api/index.php/v1/languages/overrides/site/nl-NL" \
-H "X-Joomla-Token: JOUW_API_TOKEN"
Response
{
"data": [
{
"type": "language-overrides",
"attributes": {
"key": "MOD_LOGIN_VALUE_USERNAME",
"value": "Gebruikersnaam",
"app": "site",
"language": "nl-NL"
}
}
]
}
Override aanmaken
POST /api/index.php/v1/languages/overrides/{app}/{lang}
Request Body
{
"key": "CUSTOM_LANGUAGE_STRING",
"value": "Mijn aangepaste tekst"
}
Voorbeeld
curl -X POST "https://jouwesite.nl/api/index.php/v1/languages/overrides/site/nl-NL" \
-H "X-Joomla-Token: JOUW_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"key": "MOD_LOGIN_VALUE_USERNAME",
"value": "E-mailadres"
}'
Override bijwerken
PATCH /api/index.php/v1/languages/overrides/{app}/{lang}/{key}
Voorbeeld
curl -X PATCH "https://jouwesite.nl/api/index.php/v1/languages/overrides/site/nl-NL/MOD_LOGIN_VALUE_USERNAME" \
-H "X-Joomla-Token: JOUW_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"value": "Nieuwe vertaling"
}'
Override verwijderen
DELETE /api/index.php/v1/languages/overrides/{app}/{lang}/{key}
Voorbeeld
curl -X DELETE "https://jouwesite.nl/api/index.php/v1/languages/overrides/site/nl-NL/MOD_LOGIN_VALUE_USERNAME" \
-H "X-Joomla-Token: JOUW_API_TOKEN"
Installed Languages
Geïnstalleerde talen ophalen
GET /api/index.php/v1/languages/installed
Dit toont alle geïnstalleerde taalpakketten.
Language States
| Waarde | Status |
|---|---|
| -2 | Prullenbak |
| 0 | Niet gepubliceerd |
| 1 | Gepubliceerd |
Veelgebruikte Taalcodes
| Code | Taal |
|---|---|
| nl-NL | Nederlands |
| en-GB | Engels (UK) |
| en-US | Engels (US) |
| de-DE | Duits |
| fr-FR | Frans |
| es-ES | Spaans |
| it-IT | Italiaans |
| pt-BR | Portugees (BR) |
Meertalige Site Setup
Voor een meertalige site heb je nodig:
- Taalpakketten installeren via Extension Manager
- Content Languages aanmaken via deze API
- Language Filter plugin activeren
- Talen koppelen aan menu items
tip
Gebruik de System - Language Filter plugin om automatisch de juiste taal te detecteren op basis van browser instellingen of URL prefix.
Voorbeeld: Taal strings zoeken
Om te weten welke key je moet overriden:
# Zoek in Joomla taalbestanden
grep -r "Gebruikersnaam" /path/to/joomla/language/nl-NL/
Of gebruik de Language Overrides tool in de Joomla administrator.