> ## Documentation Index
> Fetch the complete documentation index at: https://docs.case.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Translation Overview

> Translate text between 100+ languages

Neural machine translation powered by Google Cloud Translation. Add translation capabilities to your app—translate documents, communications, and evidence across 100+ languages with automatic language detection.

## Quick start

<CodeGroup>
  ```bash title="cURL" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  curl -X POST https://api.case.dev/translate/v1/translate \
    -H "Authorization: Bearer sk_case_YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "q": "The deposition will be held on Monday at 10:00 AM.",
      "target": "es"
    }'
  ```

  ```bash title="CLI" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  casedev translate:v1 translate \
    --q "The deposition will be held on Monday." \
    --target es
  ```

  ```typescript title="Typescript" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  import Casedev from 'casedev';

  const client = new Casedev({ apiKey: process.env.CASEDEV_API_KEY });

  // Translate text to Spanish
  const result = await client.translate.v1.translate({
    q: 'The deposition will be held on Monday at 10:00 AM.',
    target: 'es'
  });

  console.log(result.data.translations[0].translatedText);
  // "La deposición se llevará a cabo el lunes a las 10:00 AM."
  ```

  ```python title="Python" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  import casedev
  import os

  client = casedev.Casedev(api_key=os.environ['CASEDEV_API_KEY'])

  # Translate text to Spanish
  result = client.translate.v1.translate(
      q='The deposition will be held on Monday at 10:00 AM.',
      target='es'
  )

  print(result.data.translations[0].translated_text)
  # "La deposición se llevará a cabo el lunes a las 10:00 AM."
  ```

  ```go title="Go" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  result, _ := client.Translate.V1.Translate(ctx, casedev.TranslateV1TranslateParams{
  	Q:      casedev.F("The deposition will be held on Monday at 10:00 AM."),
  	Target: casedev.F("es"),
  })
  fmt.Println(result.Data.Translations[0].TranslatedText)
  ```
</CodeGroup>

## Endpoints

<CardGroup>
  <Card title="Translate" href="/translation/translate">
    `POST /translate/v1/translate` — Translate text to target language
  </Card>

  <Card title="Detect Language" href="/translation/detect">
    `POST /translate/v1/detect` — Detect the language of text
  </Card>

  <Card title="Supported Languages" href="/translation/languages">
    `GET /translate/v1/languages` — List all supported languages
  </Card>
</CardGroup>

## Features

* **100+ Languages** — Support for all major world languages including Chinese, Spanish, Arabic, Hindi, and more.
* **Auto-Detection** — Automatically detect source language when not specified.
* **Batch Translation** — Translate multiple strings in a single request for efficiency.
* **HTML Preservation** — Preserve HTML formatting during translation.
* **Neural Machine Translation** — State-of-the-art NMT models for high-quality translations.

## Pricing

| Service             | Cost                        |
| ------------------- | --------------------------- |
| Translation         | \$0.03 per 1,000 characters |
| Language Detection  | \$0.03 per 1,000 characters |
| Supported Languages | Free                        |

<Info>
  **Example:** A 10,000 character legal document costs \$0.30 to translate.
</Info>

## Common use cases

### Multilingual discovery

Translate foreign-language documents discovered during litigation:

<CodeGroup>
  ```bash title="CLI" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  casedev translate:v1 translate --q "Foreign document text" --target en --format text
  ```

  ```typescript title="Typescript" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  const foreignDoc = await fetchDocumentText();

  const result = await client.translate.v1.translate({
    q: foreignDoc,
    target: 'en',  // Translate to English
    format: 'text'
  });
  ```

  ```python title="Python" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  foreign_doc = fetch_document_text()

  result = client.translate.v1.translate(
      q=foreign_doc,
      target='en',
      format='text'
  )
  ```

  ```go title="Go" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  foreignDoc := fetchDocumentText()

  result, _ := client.Translate.V1.Translate(ctx, casedev.TranslateV1TranslateParams{
  	Q:      casedev.F(foreignDoc),
  	Target: casedev.F("en"),
  	Format: casedev.F(casedev.TranslateV1TranslateParamsFormatText),
  })
  ```
</CodeGroup>

### Client communications

Translate client correspondence in their preferred language:

<CodeGroup>
  ```bash title="CLI" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  casedev translate:v1 translate --q "Email content" --target es
  casedev translate:v1 translate --q "Email content" --target zh
  casedev translate:v1 translate --q "Email content" --target ar
  ```

  ```typescript title="Typescript" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  const languages = ['es', 'zh', 'ar'];  // Spanish, Chinese, Arabic

  for (const lang of languages) {
    const translated = await client.translate.v1.translate({
      q: emailContent,
      target: lang
    });
    // Send localized email
  }
  ```

  ```python title="Python" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  languages = ['es', 'zh', 'ar']  # Spanish, Chinese, Arabic

  for lang in languages:
      translated = client.translate.v1.translate(
          q=email_content,
          target=lang
      )
      # Send localized email
  ```

  ```go title="Go" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  languages := []string{"es", "zh", "ar"} // Spanish, Chinese, Arabic

  for _, lang := range languages {
  	translated, _ := client.Translate.V1.Translate(ctx, casedev.TranslateV1TranslateParams{
  		Q:      casedev.F(emailContent),
  		Target: casedev.F(lang),
  	})
  	// Send localized email
  	_ = translated
  }
  ```
</CodeGroup>

### Evidence processing

Detect and translate multilingual evidence:

<CodeGroup>
  ```bash title="CLI" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  # First detect the language
  casedev translate:v1 detect --q "Evidence text here"

  # Then translate if not English
  casedev translate:v1 translate --q "Evidence text here" --target en --source fr
  ```

  ```typescript title="Typescript" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  // First detect the language
  const detection = await client.translate.v1.detect({
    q: evidenceText
  });

  const sourceLanguage = detection.data.detections[0][0].language;

  // Then translate if not English
  if (sourceLanguage !== 'en') {
    const translated = await client.translate.v1.translate({
      q: evidenceText,
      source: sourceLanguage,
      target: 'en'
    });
  }
  ```

  ```python title="Python" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  # First detect the language
  detection = client.translate.v1.detect(q=evidence_text)

  source_language = detection.data.detections[0][0].language

  # Then translate if not English
  if source_language != 'en':
      translated = client.translate.v1.translate(
          q=evidence_text,
          source=source_language,
          target='en'
      )
  ```

  ```go title="Go" theme={"theme":{"light":"github-light","dark":"one-dark-pro"}}
  // First detect the language
  detection, _ := client.Translate.V1.Detect(ctx, casedev.TranslateV1DetectParams{
  	Q: casedev.F(evidenceText),
  })
  sourceLanguage := detection.Data.Detections[0][0].Language

  // Then translate if not English
  if sourceLanguage != "en" {
  	translated, _ := client.Translate.V1.Translate(ctx, casedev.TranslateV1TranslateParams{
  		Q:      casedev.F(evidenceText),
  		Source: casedev.F(sourceLanguage),
  		Target: casedev.F("en"),
  	})
  	_ = translated
  }
  ```
</CodeGroup>

## Related services

<CardGroup>
  <Card title="Vault" href="/vault">
    Store translated documents alongside originals for searchable archives
  </Card>

  <Card title="OCR" href="/ocr">
    Extract text from scanned documents before translation
  </Card>
</CardGroup>
