HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/PraisonAI/docs/examples/multilingual-content.mdx
---
title: "Multilingual Content"
description: "Learn how to create AI agents for multilingual content generation and cultural adaptation."
icon: "language"
---

```mermaid
flowchart LR
    In[In] --> Generator[Content Generator]
    Generator --> Translator[Content Translator]
    Translator --> Cultural[Cultural Checker]
    Cultural --> Adapter[Content Adapter]
    Adapter --> Quality[Quality Assessor]
    Quality --> Out[Out]
    Quality --> Adapter
    Quality --> Translator
    
    style In fill:#8B0000,color:#fff
    style Generator fill:#2E8B57,color:#fff
    style Translator fill:#2E8B57,color:#fff
    style Cultural fill:#2E8B57,color:#fff
    style Adapter fill:#2E8B57,color:#fff
    style Quality fill:#2E8B57,color:#fff
    style Out fill:#8B0000,color:#fff
```

Learn how to implement a multilingual content generation system using AI agents for content creation, translation, cultural adaptation, and quality assurance.

## Quick Start

<Steps>
    <Step title="Install Package">
        First, install the PraisonAI Agents package:
        ```bash
        pip install praisonaiagents
        ```
    </Step>

    <Step title="Set API Key">
        Set your OpenAI API key as an environment variable in your terminal:
        ```bash
        export OPENAI_API_KEY=your_api_key_here
        ```
    </Step>

    <Step title="Create a file">
        Create a new file `app.py` with the basic setup:
```python
from praisonaiagents import Agent, Task, PraisonAIAgents
import time
from typing import Dict, List

def generate_base_content():
    """Simulates base content generation"""
    content_types = [
        {"type": "marketing", "tone": "professional", "length": "medium"},
        {"type": "technical", "tone": "formal", "length": "long"},
        {"type": "social", "tone": "casual", "length": "short"}
    ]
    return content_types[int(time.time()) % 3]

def translate_content(content: Dict):
    """Simulates content translation"""
    languages = ["spanish", "french", "german", "japanese", "chinese"]
    translations = {lang: f"Translated content in {lang}" for lang in languages}
    return translations

def check_cultural_context(translations: Dict):
    """Simulates cultural context verification"""
    cultural_issues = {
        "spanish": [],
        "french": ["idiom_mismatch"],
        "german": [],
        "japanese": ["formality_level"],
        "chinese": ["cultural_reference"]
    }
    return cultural_issues

def adapt_content(issues: Dict):
    """Simulates content adaptation"""
    adaptations = {
        "idiom_mismatch": "localized_expression",
        "formality_level": "adjusted_tone",
        "cultural_reference": "localized_reference"
    }
    return {lang: [adaptations[issue] for issue in issues] 
            for lang, issues in issues.items() if issues}

def quality_check():
    """Simulates quality assessment"""
    quality_levels = ["high", "medium", "needs_revision"]
    return quality_levels[int(time.time()) % 3]

# Create specialized agents
content_generator = Agent(
    name="Content Generator",
    role="Base Content Creation",
    goal="Generate high-quality base content",
    instructions="Create engaging base content",
    tools=[generate_base_content]
)

translator = Agent(
    name="Content Translator",
    role="Translation",
    goal="Translate content accurately",
    instructions="Translate content while maintaining meaning",
    tools=[translate_content]
)

cultural_checker = Agent(
    name="Cultural Checker",
    role="Cultural Verification",
    goal="Verify cultural appropriateness",
    instructions="Check for cultural sensitivities",
    tools=[check_cultural_context]
)

content_adapter = Agent(
    name="Content Adapter",
    role="Content Adaptation",
    goal="Adapt content for cultural fit",
    instructions="Modify content based on cultural context",
    tools=[adapt_content]
)

quality_assessor = Agent(
    name="Quality Assessor",
    role="Quality Assessment",
    goal="Ensure content quality",
    instructions="Assess overall content quality",
    tools=[quality_check]
)

# Create workflow tasks
generation_task = Task(
    name="generate_content",
    description="Generate base content",
    expected_output="Base content for translation",
    agent=content_generator,
    is_start=True,
    next_tasks=["translate_content"]
)

translation_task = Task(
    name="translate_content",
    description="Translate content to target languages",
    expected_output="Translated content",
    agent=translator,
    next_tasks=["check_cultural"]
)

cultural_task = Task(
    name="check_cultural",
    description="Check cultural appropriateness",
    expected_output="Cultural context issues",
    agent=cultural_checker,
    next_tasks=["adapt_content"]
)

adaptation_task = Task(
    name="adapt_content",
    description="Adapt content for cultural fit",
    expected_output="Culturally adapted content",
    agent=content_adapter,
    next_tasks=["assess_quality"]
)

quality_task = Task(
    name="assess_quality",
    description="Assess content quality",
    expected_output="Quality assessment",
    agent=quality_assessor,
    task_type="decision",
    condition={
        "high": "",  # Complete workflow
        "medium": ["adapt_content"],  # Minor revisions needed
        "needs_revision": ["translate_content"]  # Major revisions needed
    }
)

# Create workflow
workflow = PraisonAIAgents(
    agents=[content_generator, translator, cultural_checker, 
            content_adapter, quality_assessor],
    tasks=[generation_task, translation_task, cultural_task, 
           adaptation_task, quality_task],
    process="workflow",
    verbose=True
)

def main():
    print("\nStarting Multilingual Content Generation Workflow...")
    print("=" * 50)
    
    # Run workflow
    results = workflow.start()
    
    # Print results
    print("\nContent Generation Results:")
    print("=" * 50)
    for task_id, result in results["task_results"].items():
        if result:
            print(f"\nTask: {task_id}")
            print(f"Result: {result.raw}")
            print("-" * 50)

if __name__ == "__main__":
    main()
```
    </Step>

    <Step title="Start Agents">
        Run your multilingual content generation system:
        ```bash
        python app.py
        ```
    </Step>
</Steps>

<Note>
  **Requirements**
  - Python 3.10 or higher
  - OpenAI API key. Generate OpenAI API key [here](https://platform.openai.com/api-keys). Use Other models using [this guide](/models).   
</Note>

## Understanding Multilingual Content Generation

<Card title="What is Multilingual Content Generation?" icon="question">
  Multilingual content generation enables:
  - Base content creation
  - Accurate translation
  - Cultural context verification
  - Content adaptation
  - Quality assurance
</Card>

## Features

<CardGroup cols={2}>
  <Card title="Content Generation" icon="pen">
    Generate base content:
    - Marketing content
    - Technical documentation
    - Social media posts
  </Card>
  <Card title="Translation" icon="language">
    Translate content:
    - Multiple languages
    - Meaning preservation
    - Context awareness
  </Card>
  <Card title="Cultural Adaptation" icon="globe">
    Ensure cultural fit:
    - Cultural sensitivity
    - Idiom localization
    - Reference adaptation
  </Card>
  <Card title="Quality Control" icon="check">
    Quality assurance:
    - Content assessment
    - Revision workflow
    - Continuous improvement
  </Card>
</CardGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Prompt Chaining" icon="link" href="/features/promptchaining">
    Learn about chaining prompts for complex workflows
  </Card>
  <Card title="Evaluator Optimizer" icon="gauge" href="/features/evaluator-optimiser">
    Explore how to optimize and evaluate solutions
  </Card>
</CardGroup>