slogan3

description

Door het implementeren van een meertalige schema, kun je de gebruikerservaring verbeteren, de betrokkenheid in verschillende regio's vergroten en ervoor zorgen dat je toepassing toegankelijk is voor een breder publiek.

prompt

try_prompt

Help me een geavanceerd GraphQL-schema te ontwerpen dat meertalige inhoudsbeheer ondersteunt voor mijn domein: {{domein}}. Ik wil functies zoals: {{g ... more
generate_helper
disclaimerOnPageApi image_legal_disclaimer...

ai_answers

provider: openai
model: gpt-4.1-nano
Hier is een geavanceerd GraphQL-schema dat meertalige inhoudsbeheer voor een e-commerce domein ondersteunt, inclusief functies voor automatische vertaling, lokalisatie en taal-specifieke gegevensophaal: ```graphql # Enum voor ondersteunde talen enum Language { EN # Engels NL # Nederlands DE # Duits FR # Frans ES # Spaans # Voeg meer talen toe indien nodig } # Type voor vertaalbare inhoud, bijvoorbeeld productnamen en beschrijvingen type TranslatableString { # De standaardtekst (bijvoorbeeld in de hoofdtaal) default: String! # Vertalingen per taal translations: [Translation!]! } type Translation { language: Language! text: String! # Optioneel: timestamp van vertaling updatedAt: String } # Producttype met meertalige velden type Product { id: ID! name: TranslatableString! description: TranslatableString! price: Float! # Andere productvelden } # Query voor het ophalen van producten met meertalige inhoud type Query { # Haal een product op met vertalingen in de gewenste taal product(id: ID!, language: Language = NL): Product # Haal een lijst van producten met vertalingen in de gewenste taal products(language: Language = NL, filter: ProductFilter): [Product!]! } # Inputtypes voor filters input ProductFilter { priceRange: PriceRange categoryIds: [ID!] # Andere filters } input PriceRange { min: Float max: Float } # Mutaties voor inhoudsbeheer en automatische vertaling type Mutation { # Voeg een nieuw product toe createProduct(input: CreateProductInput!): Product! # Werk productgegevens bij updateProduct(id: ID!, input: UpdateProductInput!): Product! # Voeg of werk vertalingen bij addOrUpdateTranslation( translatableId: ID! field: String! # Bijv. 'name' of 'description' language: Language! text: String! ): Boolean! # Automatische vertaling genereren via integratie met vertaalservice generateTranslation( translatableId: ID! field: String! targetLanguage: Language! ): String! # Geeft de vertaalde tekst terug } # Inputtypes voor mutaties input CreateProductInput { name: String! description: String! price: Float! # Andere productvelden } input UpdateProductInput { name: String description: String price: Float # Andere productvelden } ``` **Toelichting:** - Het schema ondersteunt meertalige inhoud door gebruik te maken van het type `TranslatableString` dat een standaardtekst bevat en een lijst met vertalingen. - De `generateTranslation` mutation kan worden gebruikt om automatische vertalingen te genereren via een vertaal-API (zoals Google Translate), wat de inhoud automatisch vertaalt naar de gewenste taal. - Bij het ophalen van een product wordt de gebruiker de optie gegeven om een specifieke taal te selecteren, zodat de inhoud in die taal wordt teruggegeven. - Voor optimale efficiëntie kun je caching en batch-oproepen voor vertalingen implementeren. Met dit schema kun je flexibel meertalige inhoud beheren, vertalingen automatiseren en lokalisatie implementeren binnen je e-commerce platform.
provider: deepseek
model: deepseek-chat
Zeker! Ik help je met een geavanceerd GraphQL-schema voor meertalig e-commerce content management. Hier is een complete schema-definitie met TypeScript-achtige syntax voor duidelijkheid: ```graphql # Basistypes voor meertalige ondersteuning scalar JSON scalar DateTime enum LanguageCode { EN NL FR DE ES } type Translation { id: ID! language: LanguageCode! text: String! status: TranslationStatus! autoTranslated: Boolean! lastUpdated: DateTime! } enum TranslationStatus { DRAFT REVIEW APPROVED AUTO_TRANSLATED } # Meertalige product catalogus type Product { id: ID! sku: String! basePrice: Float! categories: [Category!]! media: [Media!]! # Meertalige velden translations: [ProductTranslation!]! translation(language: LanguageCode!): ProductTranslation # Automatische vertaling metadata autoTranslationSettings: AutoTranslationSettings lastTranslatedAt: DateTime } type ProductTranslation { id: ID! product: Product! language: LanguageCode! name: String! description: String! shortDescription: String metaTitle: String metaDescription: String slug: String! # Vertaalstatus management status: TranslationStatus! needsReview: Boolean! autoTranslated: Boolean! # SEO-optimalisatie searchKeywords: [String!] } # Geavanceerde automatische vertaling configuratie type AutoTranslationSettings { id: ID! enabled: Boolean! targetLanguages: [LanguageCode!]! autoApprove: Boolean! provider: TranslationProvider! qualityThreshold: Float fieldsToTranslate: [TranslatableField!]! } enum TranslationProvider { GOOGLE_TRANSLATE DEEPL AZURE CUSTOM } enum TranslatableField { NAME DESCRIPTION SHORT_DESCRIPTION META_TITLE META_DESCRIPTION } # Meertalige categorieën type Category { id: ID! parent: Category children: [Category!]! products: [Product!]! translations: [CategoryTranslation!]! translation(language: LanguageCode!): CategoryTranslation } type CategoryTranslation { id: ID! category: Category! language: LanguageCode! name: String! description: String slug: String! metaTitle: String metaDescription: String } # Content Management System voor meertalige content type ContentPage { id: ID! key: String! translations: [ContentPageTranslation!]! translation(language: LanguageCode!): ContentPageTranslation } type ContentPageTranslation { id: ID! page: ContentPage! language: LanguageCode! title: String! content: JSON! slug: String! published: Boolean! } # Geavanceerde Query interface type Query { # Product queries met taalondersteuning products( language: LanguageCode! filters: ProductFilters pagination: PaginationInput ): ProductConnection! product( id: ID! language: LanguageCode! ): Product productBySlug( slug: String! language: LanguageCode! ): Product # Categorie queries categories( language: LanguageCode! parentId: ID ): [Category!]! category( id: ID! language: LanguageCode! ): Category # Vertaalmanagement translationsNeedingReview: [Translation!]! autoTranslationQueue: [Product!]! # Meertalige content contentPage( key: String! language: LanguageCode! ): ContentPageTranslation } # Mutaties voor contentbeheer type Mutation { # Product vertalingen createProductTranslation( productId: ID! language: LanguageCode! input: ProductTranslationInput! ): ProductTranslation! updateProductTranslation( id: ID! input: ProductTranslationInput! ): ProductTranslation! # Automatische vertaling triggers triggerAutoTranslation( productId: ID! targetLanguages: [LanguageCode!]! ): AutoTranslationJob! approveTranslation( translationId: ID! ): Translation! # Bulk operaties bulkTranslateProducts( productIds: [ID!]! targetLanguages: [LanguageCode!]! ): BulkTranslationResult! } # Input types input ProductTranslationInput { name: String description: String shortDescription: String metaTitle: String metaDescription: String slug: String searchKeywords: [String!] } input ProductFilters { categoryId: ID searchTerm: String priceRange: PriceRangeInput inStock: Boolean } input PriceRangeInput { min: Float max: Float } input PaginationInput { page: Int! limit: Int! } # Response types type ProductConnection { edges: [ProductEdge!]! pageInfo: PageInfo! totalCount: Int! } type ProductEdge { node: Product! cursor: String! } type PageInfo { hasNextPage: Boolean! hasPreviousPage: Boolean! startCursor: String endCursor: String } type AutoTranslationJob { id: ID! status: JobStatus! processed: Int! total: Int! errors: [String!] } type BulkTranslationResult { jobId: ID! successCount: Int! errorCount: Int! errors: [TranslationError!] } type TranslationError { productId: ID! language: LanguageCode! message: String! } enum JobStatus { PENDING PROCESSING COMPLETED FAILED } # Subscription voor real-time updates type Subscription { translationCompleted: AutoTranslationJob! translationProgress: AutoTranslationJob! } ``` **Belangrijkste kenmerken van dit schema:** 1. **Flexibele vertaalstructuur**: Elke entiteit heeft aparte translation types 2. **Automatische vertaling integratie**: Ondersteuning voor multiple providers en kwaliteitscontrole 3. **Efficiënte data retrieval**: Language parameter in queries voor directe toegang 4. **Vertaalworkflow management**: Status tracking en review processen 5. **SEO-optimalisatie**: Meertalige slugs en meta-informatie 6. **Bulk operaties**: Voor massaverwerking van vertalingen 7. **Real-time updates**: Via subscriptions voor progress monitoring **Gebruiksvoorbeeld query:** ```graphql query GetProductPage($language: LanguageCode!) { products(language: $language, pagination: { page: 1, limit: 20 }) { edges { node { id sku basePrice translation(language: $language) { name description slug } } } } categories(language: $language) { id translation(language: $language) { name slug } } } ``` Dit schema biedt een schaalbare foundation voor meertalig e-commerce met geavanceerde vertaalautomatisering!