Help me een GraphQL-schema te maken voor een meertalige ondersteuningssysteem
description
Door een meertalige ondersteuningssysteem te ontwerpen, kun je een breder publiek bereiken, de betrokkenheid van gebruikers verbeteren en de algehele tevredenheid verhogen door gelokaliseerde inhoud.
prompt
try_prompt
Ontwerp een GraphQL-schema dat meertalige ondersteuning mogelijk maakt in mijn toepassing. Voeg de volgende details toe: - Taalcodes: {{taalcodes}} (bijv., en, nl, fr) - Vertaalbare velden: {{vertaalbare_velden}} (bijv., titel, beschrijving) - ... more
generate_helper
...
tags
ai_answers
provider: openai
model: gpt-4.1-nano
type Query {
# Haal vertalingen op voor een specifieke taal
vertalingenOphalen(taalcode: String!): [Vertaling!]!
}
# Vertalingen voor verschillende velden en entiteiten
type Vertaling {
id: ID!
taalcode: String! # Bijv., 'en', 'nl', 'fr'
veld: String! # Bijv., 'titel', 'beschrijving'
waarde: String! # De vertaalde tekst
entiteitId: ID! # Het ID van de betrokken entiteit
entiteitType: String! # Type van de entiteit, bv. 'Product', 'Pagina'
}
# Voor het beheren van vertalingen, bijvoorbeeld toevoegen of bijwerken
type Mutation {
voegVertalingToe(
entiteitType: String!
entiteitId: ID!
veld: String!
taalcode: String!
waarde: String!
): Vertaling!
updateVertaling(
vertalingId: ID!
waarde: String!
): Vertaling!
verwijderVertaling(vertalingId: ID!): Boolean!
}
# Optioneel: query om alle beschikbare talen op te halen
type Taal {
code: String!
naam: String!
}
type Query {
alleTalen: [Taal!]!
vertalingenOphalen(taalcode: String!): [Vertaling!]!
}
# Uitleg:
# - 'vertalingenOphalen' query haalt alle vertalingen op voor een gegeven taalcode.
# - Vertalingen worden gekoppeld aan een entiteit via 'entiteitId' en 'entiteitType'.
# - Mutaties maken het mogelijk vertalingen toe te voegen, bij te werken of te verwijderen.
# - 'alleTalen' biedt een lijst van beschikbare taalcodes en namen voor beheer en gebruikersinterface.
provider: deepseek
model: deepseek-chat
Hier is een flexibel GraphQL-schema voor meertalige ondersteuning:
```graphql
# Basistypes
type Vertaling {
id: ID!
sleutel: String!
waarden: [TaalWaarde!]!
categorie: String
createdAt: String!
updatedAt: String!
}
type TaalWaarde {
taal: TaalCode!
waarde: String!
}
# Taal ondersteuning
enum TaalCode {
EN
NL
FR
DE
ES
# Voeg meer talen toe indien nodig
}
# Input types voor mutaties
input VertalingInput {
sleutel: String!
waarden: [TaalWaardeInput!]!
categorie: String
}
input TaalWaardeInput {
taal: TaalCode!
waarde: String!
}
input VertalingFilter {
sleutel: String
categorie: String
taal: TaalCode
}
# Queries
type Query {
# Vertalingen ophalen voor specifieke taal
vertalingenOphalen(taal: TaalCode!, filter: VertalingFilter): [VertaaldItem!]
# Alle vertalingen ophalen (voor beheer)
alleVertalingen(filter: VertalingFilter): [Vertaling!]
# Specifieke vertaling ophalen
vertaling(sleutel: String!): Vertaling
# Ondersteunde talen ophalen
ondersteundeTalen: [TaalCode!]
}
# Resultaat type voor vertaalde items
type VertaaldItem {
sleutel: String!
waarde: String
categorie: String
}
# Mutaties
type Mutation {
# Vertaling toevoegen
voegVertalingToe(input: VertalingInput!): Vertaling!
# Vertaling bijwerken
updateVertaling(sleutel: String!, input: VertalingInput!): Vertaling!
# Vertaling verwijderen
verwijderVertaling(sleutel: String!): Boolean!
# Specifieke taalwaarde bijwerken
updateTaalWaarde(sleutel: String!, taal: TaalCode!, waarde: String!): Vertaling!
}
# Abonnementen (optioneel voor real-time updates)
type Subscription {
vertalingBijgewerkt: Vertaling
}
```
**Gebruiksvoorbeelden:**
```graphql
# Vertalingen ophalen voor Nederlands
query {
vertalingenOphalen(taal: NL) {
sleutel
waarde
categorie
}
}
# Vertalingen filteren op categorie
query {
vertalingenOphalen(
taal: EN
filter: { categorie: "navigatie" }
) {
sleutel
waarde
}
}
# Nieuwe vertaling toevoegen
mutation {
voegVertalingToe(input: {
sleutel: "welkom_bericht"
categorie: "algemeen"
waarden: [
{ taal: NL, waarde: "Welkom bij onze applicatie" }
{ taal: EN, waarde: "Welcome to our application" }
{ taal: FR, waarde: "Bienvenue dans notre application" }
]
}) {
id
sleutel
}
}
```
**Kenmerken van dit schema:**
- **Flexibel**: Ondersteunt meerdere talen en categorieën
- **Schaalbaar**: Eenvoudig nieuwe talen toevoegen via enum
- **Beheerbaar**: Volledige CRUD-operaties voor vertalingen
- **Efficiënt**: Filteren op taal, sleutel en categorie
- **Uitbreidbaar**: Mogelijkheid voor real-time updates via subscriptions
- **Gestructureerd**: Duidelijke scheiding tussen beheer en gebruik
Dit schema stelt je in staat vertalingen centraal te beheren en eenvoudig op te halen per taal, wat de gebruikerservaring in verschillende talen significant verbetert.

