{
  "category": "Text functions",
  "display_name": "TRANSLATE",
  "entry_kind": "built_in_function",
  "eval_api": {
    "method": "POST",
    "url": "https://handbook.dnacalc.com/api/eval"
  },
  "function_id": "FUNC.TRANSLATE",
  "implementation_state": {
    "answer_bank": null,
    "detail": "Deferred by policy: the answer needs Microsoft's translation service. DNA Calc does not run this function yet.",
    "dnacalc_commit": "9e1884369a678158dd82d3d74188daf986995e87",
    "in_catalogue": false,
    "state": "deferred",
    "state_label": "Deferred: needs an outside service",
    "summary": "Deferred: needs an outside service",
    "workbook_corpus": null
  },
  "implementations": [],
  "json_url": "https://handbook.dnacalc.com/api/functions/FUNC.TRANSLATE.json",
  "name": "TRANSLATE",
  "notes": [],
  "schema": "efh.function-reference/v1",
  "section_order": [
    "what-it-does",
    "try-it",
    "quirks",
    "how-to-implement",
    "version-differences",
    "alternatives"
  ],
  "sections": {
    "alternatives": "\n- Translate once and store the result as values, when a report has to stay fixed.\n- A lookup table of approved terms, when wording must be controlled.\n- `DETECTLANGUAGE` to find the source language first.\n\n\n",
    "how-to-implement": "\nDNA Calc does not run this function yet. It is deferred by policy, because the answer depends on a back end Microsoft\nhosts and controls. An implementation needs:\n\n1. **A translation service.** Any other engine gives other words, so it could match Excel's shape but not its answers.\n2. **Language handling:** code validation against the service's current list, and the host's system language as the\n   default target.\n3. **Asynchronous calculation**, with caching so recalculation does not spend quota or change results.\n4. **The documented failures**, including throttling and the length limit.\n\nThe function needs no arithmetic of its own. Its text handling is limited to coercing the arguments.\n\n\n",
    "quirks": "\n- **The default target belongs to the machine.** Two people opening one workbook on different systems can get\n  different translations from one formula. Name `target_language` in anything that travels.\n- **Detection is weakest on short text.** Microsoft recommends naming the source language for short strings, which\n  is what cells usually hold.\n- **Do not treat the result as a key.** Nothing promises the same text next time, and supported languages can change.\n- **Translating there and back does not return the original.**\n\n### When the service is unavailable\n\nMicrosoft documents failures as messages about the call:\n\n| Message | Meaning |\n|---|---|\n| Text Too Long | The cell holds too many characters; no figure is given |\n| Error in Value | The input is not text |\n| Invalid Language | The code is wrong or unsupported |\n| Request Throttled | The daily quota is used up; no figure is given |\n\nThe page does not say what appears with no connection, nor how a saved result behaves on recalculation. Neither has\nbeen measured here.\n\n\n",
    "sources": "\n- [TRANSLATE function](https://support.microsoft.com/en-us/excel/functions/translate-function)\n- [DETECTLANGUAGE function](https://support.microsoft.com/en-us/excel/functions/detectlanguage-function)\n\n",
    "version-differences": "\nNo Excel answers for this function are recorded here, so no comparison between Excel builds exists. Microsoft's page lists Excel for Microsoft 365 on Windows and Mac and Excel Mobile. Service\nupdates can change answers with no Excel build changing, so a build comparison would not separate the two.\n\n\n",
    "what-it-does": "\n`TRANSLATE` sends text to Microsoft Translation Services and returns the translation. Excel only carries the request;\nthe service decides the answer.\n\n`TRANSLATE(text, [source_language], [target_language])`\n\n- **`text`** is quoted text or a cell reference. It must be text.\n- **`source_language`** is a language code such as `\"en\"`. If omitted, the service detects the language.\n- **`target_language`** is a language code such as `\"es\"`. If omitted, the system language is used.\n\n```\n=TRANSLATE(\"Hello\",\"en\",\"es\")\n```\n\n\n"
  },
  "signature": {
    "display": "TRANSLATE(text, [source_language], [target_language])",
    "parameters": [
      {
        "description": null,
        "name": "text",
        "optional": false,
        "repeats": false
      },
      {
        "description": null,
        "name": "source_language",
        "optional": true,
        "repeats": false
      },
      {
        "description": null,
        "name": "target_language",
        "optional": true,
        "repeats": false
      }
    ],
    "trailing_repeats": false
  },
  "sources": {
    "metadata": {
      "admission": {
        "label": "deferred",
        "reason": "Deferred by policy: the answer needs Microsoft's translation service. DNA Calc does not run this function yet."
      },
      "arity": {
        "max": 3,
        "min": 1
      },
      "category": "Text functions",
      "classification": {
        "arg_preparation_profile": "ValuesOnlyPreAdapter",
        "coercion_lift_profile": "Custom",
        "determinism_class": "Deterministic",
        "error_collapse_profile": "None",
        "fec_dependency_profile": "ExternalProvider",
        "host_interaction_class": "ExternalProvider",
        "kernel_signature_class": "Custom",
        "rich_value_usage": "RichBlind",
        "surface_fec_dependency_profile": "ExternalProvider",
        "thread_safety_class": "HostSerialized",
        "volatility_class": "NonVolatile"
      },
      "descriptions": {
        "long": null,
        "short": "A text translated from one language to another",
        "short_source": "dna-calc-own"
      },
      "docs": {
        "english_description": "Translates a text from one language to another",
        "microsoft_url": "https://support.microsoft.com/en-us/office/translate-function-d34f71c7-2ffe-409a-9a63-5eb5e91aa3dd"
      },
      "entry_kind": "built_in_function",
      "localized_family_names": null,
      "localized_names": [
        {
          "locale": "ar-SA",
          "name": "TRANSLATE"
        },
        {
          "locale": "bg-BG",
          "name": "TRANSLATE"
        },
        {
          "locale": "cs-CZ",
          "name": "TRANSLATE"
        },
        {
          "locale": "da-DK",
          "name": "OVERSÆT"
        },
        {
          "locale": "de-DE",
          "name": "TRANSLATE"
        },
        {
          "locale": "el-GR",
          "name": "TRANSLATE"
        },
        {
          "locale": "en-AU",
          "name": "TRANSLATE"
        },
        {
          "locale": "en-GB",
          "name": "TRANSLATE"
        },
        {
          "locale": "en-US",
          "name": "TRANSLATE"
        },
        {
          "locale": "es-ES",
          "name": "TRADUCIR"
        },
        {
          "locale": "et-EE",
          "name": "TRANSLATE"
        },
        {
          "locale": "fi-FI",
          "name": "KÄÄNNÄ"
        },
        {
          "locale": "fr-FR",
          "name": "TRADUIRE*"
        },
        {
          "locale": "he-IL",
          "name": "TRANSLATE"
        },
        {
          "locale": "hr-HR",
          "name": "TRANSLATE"
        },
        {
          "locale": "hu-HU",
          "name": "FORDÍTÁS"
        },
        {
          "locale": "id-ID",
          "name": "TRANSLATE"
        },
        {
          "locale": "it-IT",
          "name": "TRANSLATE"
        },
        {
          "locale": "ja-JP",
          "name": "TRANSLATE"
        },
        {
          "locale": "ko-KR",
          "name": "TRANSLATE"
        },
        {
          "locale": "lt-LT",
          "name": "TRANSLATE"
        },
        {
          "locale": "lv-LV",
          "name": "TRANSLATE"
        },
        {
          "locale": "nb-NO",
          "name": "TRANSLATE"
        },
        {
          "locale": "nl-NL",
          "name": "VERTALEN"
        },
        {
          "locale": "pl-PL",
          "name": "TŁUMACZ"
        },
        {
          "locale": "pt-BR",
          "name": "TRANSLATE"
        },
        {
          "locale": "pt-PT",
          "name": "TRADUZIR"
        },
        {
          "locale": "ro-RO",
          "name": "TRANSLATE"
        },
        {
          "locale": "ru-RU",
          "name": "ПЕРЕВОД"
        },
        {
          "locale": "sk-SK",
          "name": "TRANSLATE"
        },
        {
          "locale": "sl-SI",
          "name": "TRANSLATE"
        },
        {
          "locale": "sr-Latn-RS",
          "name": "PREVEDI"
        },
        {
          "locale": "sv-SE",
          "name": "ÖVERSÄTT"
        },
        {
          "locale": "th-TH",
          "name": "TRANSLATE"
        },
        {
          "locale": "tr-TR",
          "name": "DİLÇEVİR"
        },
        {
          "locale": "uk-UA",
          "name": "TRANSLATE"
        },
        {
          "locale": "vi-VN",
          "name": "TRANSLATE"
        },
        {
          "locale": "zh-CN",
          "name": "TRANSLATE"
        },
        {
          "locale": "zh-HK",
          "name": "TRANSLATE"
        },
        {
          "locale": "zh-TW",
          "name": "TRANSLATE"
        }
      ],
      "signature": {
        "display": "TRANSLATE(text, [source_language], [target_language])",
        "parameters": [
          {
            "description": null,
            "name": "text",
            "optional": false,
            "repeats": false
          },
          {
            "description": null,
            "name": "source_language",
            "optional": true,
            "repeats": false
          },
          {
            "description": null,
            "name": "target_language",
            "optional": true,
            "repeats": false
          }
        ],
        "trailing_repeats": false
      },
      "surface_name": "TRANSLATE",
      "version_marker": null,
      "xlcall": null
    },
    "microsoft": "https://support.microsoft.com/en-us/office/translate-function-d34f71c7-2ffe-409a-9a63-5eb5e91aa3dd"
  },
  "try_it": {
    "formula": "=TRANSLATE(\"Hello\",\"en\",\"fr\")",
    "note": "This example needs an Excel service or external provider that OneCalc cannot supply in this preview.",
    "preview_status": "refused"
  },
  "url": "https://handbook.dnacalc.com/functions/TRANSLATE.html",
  "variants": [],
  "versions": []
}