{"allowedRenditionsWidth":["320","480","640","768","960","1200","1440","1920"],"templateName":"blog-page","canonicalLink":"https://www.snowflake.com/en/blog/engineering/ai-translate-long-document-translation/","robotsTags":["index","follow"],"cssClassNames":"blog-page page basicpage summit-page","description":"Translate long enterprise documents natively with Snowflake AI_TRANSLATE. Avoid truncation, chunking overhead, and unfaithful LLM output at scale.","language":"en","title":"AI Translate: Long Document Translation Without Losing Context","analyticsPageType":"homepage","analyticsCategory":"general","analyticsSubCategory":"","excludeFromAnalytics":false,"analyticsEnabled":true,"coveoConfig":{"pipeline":"snowflake.com","searchHub":"snowflake.com","organizationId":"snowflakecomputingproduction8neljofn","apiKey":"xx335921a6-2a0a-40f2-a167-e390b4766c3d"},"analyticsDebugMode":false,"analyticsData":{"excludeFromAnalytics":false,"subCategory":"","pageType":"homepage","templateName":"blog-page","siteName":"snowflake","pageUrl":"/content/snowflake-site/global/en/blog/engineering/ai-translate-long-document-translation","language":"en","category":"general","pageName":"AI_TRANSLATE: Translating Long Texts Without Losing the Plot ","contentTags":["snowflake-site:taxonomy/blog/engineering-blog/gen-ai"]},"isPasswordProtected":false,"analyticsContentTags":["snowflake-site:taxonomy/blog/engineering-blog/gen-ai"],":mappedPath":"/en/blog/engineering/ai-translate-long-document-translation/",":type":"snowflake-site/components/structure/page",":items":{"root":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"experiencefragment-banner":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-sub-header":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-pre-footer":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-header":"aem-GridColumn aem-GridColumn--default--12","markup_editor-table":"aem-GridColumn aem-GridColumn--default--12","responsivegrid":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-footer":"aem-GridColumn aem-GridColumn--default--12","markup_editor":"aem-GridColumn aem-GridColumn--default--12","container_47873732":"aem-GridColumn aem-GridColumn--default--12"},"columnCount":12,":items":{"experiencefragment-banner":{"id":"experiencefragment-47518355a1","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/pushdown-banner-blank/jcr:content","configured":true,"xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/pushdown-banner-blank.xfmodel.json",":type":"snowflake-site/components/experiencefragment"},"experiencefragment-header":{"id":"experiencefragment-80e8fbd752","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/jcr:content","configured":true,"xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master.xfmodel.json","languageNavPath":"/content/snowflake-site/global/en/blog/engineering/ai-translate-long-document-translation.languagenav.json",":type":"snowflake-site/components/experiencefragment","appliedCssClassNames":"snowflake-sticky-nav-host"},"experiencefragment-sub-header":{"id":"experiencefragment-a325d44a93","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/sub-navigation/engineering-blog-sub-nav/jcr:content","configured":true,"xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/sub-navigation/engineering-blog-sub-nav.xfmodel.json",":type":"snowflake-site/components/experiencefragment"},"responsivegrid":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"container_breadcrumb":"aem-GridColumn aem-GridColumn--default--12","container_main_content":"aem-GridColumn aem-GridColumn--default--12"},"columnCount":12,":items":{"container_breadcrumb":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"breadcrumb":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"blog-page-breadcrumb-indentation",":type":"snowflake-site/components/container",":items":{"breadcrumb":{"id":"breadcrumb-657bb9b414","breadcrumbItems":[{"title":"Blog","path":"/en/blog/engineering/","active":false},{"title":"Gen AI","path":"/en/blog/engineering/gen-ai/","active":false},{"title":"AI_TRANSLATE: Translating Long Texts Without Losing the Plot ","path":"/en/blog/engineering/ai-translate-long-document-translation/","active":false}],":type":"snowflake-site/components/blog/breadcrumb"}},":itemsOrder":["breadcrumb"],"appliedCssClassNames":"snowflake-container"},"container_main_content":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"flexible_column_container":"aem-GridColumn aem-GridColumn--default--12","related_content":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"main-content",":type":"snowflake-site/components/container",":items":{"flexible_column_container":{"id":"flexible-column-container-8367d1e77c","propertiesId":"snowflake-blog-template-main-container","type":"2-column-60-40","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"none","bottomPadding":"none","spaceBetween":"none","reverseOnMobile":true,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-fb319f08a4",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"container_hero":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"blog_hero":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-bc4489d9db",":type":"snowflake-site/components/container",":items":{"blog_hero":{"id":"blog-hero-67dc107701","showClaude":true,"showChatGpt":true,"timeToRead":"1","publicationDate":"AUG 18, 2026","image":{"id":"image-9d8322d146","isLcpImage":false,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--b1aa056b-f206-4c84-bcb1-5337938b10e6/sf-eng-blog-ml-0.png?quality=85&preferwebp=true","lazyEnabled":true,"height":"720","width":"1680",":type":"snowflake-site/components/image"},"authors":[{"authorImage":{"id":"image-c35ed7a55c","isLcpImage":false,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--0a2f7a43-33b6-4f7f-b829-742f53e609da/jessie.jpg?quality=85&preferwebp=true","alt":"Jessie Felix","lazyEnabled":true,"height":"184","width":"184",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-749f543544","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/jessie-felix/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Jessie Felix"}},{"authorImage":{"id":"image-d697c1ae04","isLcpImage":false,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--f3d759b9-142d-4c1c-8980-6d6a308456b8/michal-turski.png?quality=85&preferwebp=true","lazyEnabled":true,"height":"398","width":"418",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-022be88ce5","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/michal-turski/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Michal Turski"}}],"tag":{"tagText":"Gen AI","tagColor":"#29B5E8"},"title":{"lines":["AI_TRANSLATE: Translating Long Texts Without Losing the Plot "],"type":"heading2",":type":"snowflake-site/components/title-v2"},":type":"snowflake-site/components/blog/blog-hero"}},":itemsOrder":["blog_hero"]},"responsivegrid_content":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"image":"aem-GridColumn aem-GridColumn--default--12","blog_text_2070719314":"aem-GridColumn aem-GridColumn--default--12","blog_text_1790526750":"aem-GridColumn aem-GridColumn--default--12","blog_text_756284008":"aem-GridColumn aem-GridColumn--default--12","blog_text_1451058602":"aem-GridColumn aem-GridColumn--default--12","blog_text_1241714748":"aem-GridColumn aem-GridColumn--default--12","code_snippet":"aem-GridColumn aem-GridColumn--default--12","blog_text_1707943158":"aem-GridColumn aem-GridColumn--default--12","blog_text":"aem-GridColumn aem-GridColumn--default--12","code_snippet_1950796071":"aem-GridColumn aem-GridColumn--default--12","blog_text_664210082":"aem-GridColumn aem-GridColumn--default--12","blog_text_135609751":"aem-GridColumn aem-GridColumn--default--12","blog_text_1488241609":"aem-GridColumn aem-GridColumn--default--12","blog_text_1714300433":"aem-GridColumn aem-GridColumn--default--12","blog_text_1283808245":"aem-GridColumn aem-GridColumn--default--12"},"columnCount":12,"appliedCssClassNames":"snowflake-layout-container-inner-padding-small",":items":{"blog_text":{"id":"blog-text-9aeb57be3b","text":"\u003Cp\u003ETranslating a long report, policy paper, or transcript without losing completeness, structure, and meaning presents a distinct challenge. As documents grow in length and complexity, maintaining consistency and context becomes harder, and that's where traditional translation services often start to break down.\u003C/p\u003E\r\n\u003Cp\u003EShort-form translation is already an important part of many workflows, from product reviews and descriptions to support content. In addition to these use cases, organizations also need to process and translate much larger materials at scale. These include annual reports, board materials, research papers, long meeting transcripts, regulatory, and other documents. These are not just longer versions of a short-form task. They are complex, dense document artifacts filled with tables, captions, lists, footnotes and sections where even small omissions matter.\u003C/p\u003E\r\n\u003Cp\u003ETraditional tools, LLMs and managed APIs often struggle to process long content with high accuracy. This is why the Cortex AI Function, AI_TRANSLATE, is designed to handle translation workloads regardless of size, extending enterprise-grade translation natively to long-length content.\u003C/p\u003E\r\n\u003Ch2\u003E\u003Cb\u003EWhy long-context translation is a different problem\u003C/b\u003E\u003C/h2\u003E\r\n\u003Cp\u003EWhen people think about translation quality, they usually think about fluency: Does the output sound natural? But for many business documents, that is only a small part of the story. The real story relies on a much harder question: Can the system stay faithful all the way through?\u003C/p\u003E\r\n\u003Cp\u003EHigh-accuracy translation on long content requires a system capable of:\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Cb\u003EEnabling full document coverage\u003C/b\u003E from the first page to the last.\u003C/li\u003E\r\n\u003Cli\u003E\u003Cb\u003EPreserving section structure\u003C/b\u003E and complex formatting.\u003C/li\u003E\r\n\u003Cli\u003E\u003Cb\u003EUnderstanding high-stakes data\u003C/b\u003E, such as numbers, names, dates, units and references\u003C/li\u003E\r\n\u003Cli\u003E\u003Cb\u003ECapturing the details\u003C/b\u003E, including lists, tables, notes and side content that are easy to skip\u003C/li\u003E\r\n\u003C/ul\u003E\r\n\u003Cp\u003EThis is where long documents expose weaknesses of traditional systems. A translation can sound perfectly smooth while quietly dropping critical details in the middle. It can handle the main narrative but completely stumbles on figure notes and tabular commentary. For a 100-page document, these omissions are nearly impossible to catch manually.\u003C/p\u003E\r\n\u003Ch2\u003E\u003Cb\u003EWhy many managed translation APIs hit a limit\u003C/b\u003E\u003C/h2\u003E\r\n\u003Cp\u003EOne of the biggest bottlenecks in document translation is simple request size. Traditional translation APIs are designed to excel at processing short text messages, but long documents exceed what fits comfortably into a single request, forcing teams to build complex chunking and orchestration pipelines.\u003C/p\u003E\r\n\u003Cp\u003EHere is a practical high-level view of common input limits:\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_text_664210082":{"id":"blog-text-f39a76c000","text":"\u003Ctable\u003E\r\n\u003Cthead\u003E\u003Ctr\u003E\u003Cth\u003EModel\u003C/th\u003E\r\n\u003Cth\u003ELimitation on input: original formulation\u003C/th\u003E\r\n\u003Cth\u003ELimitation in characters (estimation)\u003C/th\u003E\r\n\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003ESnowflake AI_TRANSLATE\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Cb\u003E100,000 tokens\u003C/b\u003E\u003C/td\u003E\r\n\u003Ctd\u003Eroughly \u003Cb\u003E~100,000 chars (Chinese, Japanese, Korean, in worst case scenario)\u003C/b\u003E to \u003Cb\u003E~400,000 chars (English)\u003C/b\u003E\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003EAWS Translate\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003ETranslateText\u003C/code\u003E: \u003Cb\u003E10,000 bytes\u003C/b\u003E max input text; docs note this can be fewer than 10,000 characters depending on character set\u003C/td\u003E\r\n\u003Ctd\u003E~\u003Cb\u003E10,000 ASCII chars\u003C/b\u003E upper bound; more realistically ~\u003Cb\u003E7,500-10,000 chars\u003C/b\u003E for mixed UTF-8 text\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003EGoogle Cloud Translation v3\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Cb\u003E30,000 code points\u003C/b\u003E max per request; docs also say \u003Cb\u003E5K code points recommended\u003C/b\u003E for latency\u003C/td\u003E\r\n\u003Ctd\u003E~\u003Cb\u003E30,000 chars\u003C/b\u003E max; ~\u003Cb\u003E5,000 chars\u003C/b\u003E recommended for low-latency requests\u003C/td\u003E\r\n\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_text_756284008":{"id":"blog-text-20c93faa00","text":"\u003Cp\u003EThis matters because a standard annual report or hearing transcript can easily run into hundreds of thousands of characters. Once you are forced to split long documents into chunks, stitching the document back together seamlessly becomes an engineering headache.\u003C/p\u003E\r\n\u003Cp\u003EThis is the core of the challenge our customers ask us to simplify for them. They want to be able to use AI_TRANSLATE to translate documents of any length in a single query, without the overhead of building and maintaining orchestration pipelines.\u003C/p\u003E\r\n\u003Ch3\u003E\u003Cb\u003EExperimental comparison\u003C/b\u003E\u003C/h3\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003ETo test this tradeoff, we ran an experimental comparison translating non-English documents (200k–450k characters) into English. AI_TRANSLATE processed the documents natively in a single call, while we forced AWS and Google Cloud to use naive chunking aligned with their limits.\u003C/li\u003E\r\n\u003C/ul\u003E\r\n\u003Cp\u003ESetup:\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ccode\u003ESnowflake AI_TRANSLATE\u003C/code\u003E translated each document natively in a single long-context call.\u003C/li\u003E\r\n\u003Cli\u003E\u003Ccode\u003EAWS Translate\u003C/code\u003E translated the same documents with naive \u003Ccode\u003E7,500\u003C/code\u003E-character chunks, chosen to stay within its practical per-request limit.\u003C/li\u003E\r\n\u003Cli\u003E\u003Ccode\u003EGoogle Cloud Translation v3\u003C/code\u003E translated the same documents with naive \u003Ccode\u003E30,000\u003C/code\u003E-character chunks, aligned with its documented maximum request size.\u003C/li\u003E\r\n\u003C/ul\u003E\r\n\u003Cp\u003EIt is also worth emphasizing that Snowflake's \u003Ccode\u003EAI_TRANSLATE\u003C/code\u003E handles long documents out of the box. With the other managed APIs, the user has to build that workflow themselves: choose a chunking strategy, implement the splitting logic, preserve boundaries and separators, and stitch the translated chunks back together. They also need to handle partial failures and decide how to recover from them before producing the final output. That is exactly the kind of plumbing a managed service is supposed to remove. With \u003Ccode\u003EAI_TRANSLATE\u003C/code\u003E, the interface stays simple: call the function, and the long-context orchestration is handled for you.\u003C/p\u003E\r\n\u003Cp\u003EWe then evaluated the resulting translations with an LLM-as-a-judge, focusing on long-document translation behavior rather than only sentence-level fluency.\u003C/p\u003E\r\n\u003Ch4\u003EMethodology\u003C/h4\u003E\r\n\u003Cp\u003EScores below come from \u003Ccode\u003EClaude Opus 4.6\u003C/code\u003E as an LLM-as-a-judge. The inputs are OCR text in the documents' original language, produced by \u003Ccode\u003EAI_PARSE_DOCUMENT\u003C/code\u003E from long documents on government webpages; the task is to translate the text into English. This comparison covers synchronous real-time API performance only; AWS also supports asynchronous batch translation for larger workloads through a separate API path, which is not evaluated here.\u003C/p\u003E\r\n\u003Cp\u003EMetrics:\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ccode\u003ECompleteness\u003C/code\u003E: measures whether the translation covers the full source document rather than shortening, skipping or compressing parts of it.\u003C/li\u003E\r\n\u003Cli\u003E\u003Ccode\u003EFaithfulness\u003C/code\u003E: measures whether the translated content preserves the meaning of the source without adding distortions or losing important details.\u003C/li\u003E\r\n\u003Cli\u003E\u003Ccode\u003ECoherence\u003C/code\u003E: measures whether the translation reads as a well-formed, internally consistent document from start to finish.\u003C/li\u003E\r\n\u003Cli\u003E\u003Ccode\u003ETerm consistency\u003C/code\u003E: measures whether important names, concepts and repeated terminology are translated consistently across the whole document.\u003C/li\u003E\r\n\u003Cli\u003E\u003Ccode\u003ELong context quality\u003C/code\u003E: overall translation quality across the full document, computed as the mean of the four metrics above.\u003C/li\u003E\r\n\u003C/ul\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_text_2070719314":{"id":"blog-text-bdb206e1a7","text":"\u003Ctable\u003E\r\n\u003Cthead\u003E\u003Ctr\u003E\u003Cth\u003ESystem\u003C/th\u003E\r\n\u003Cth\u003ETranslation mode\u003C/th\u003E\r\n\u003Cth\u003ECompleteness\u003C/th\u003E\r\n\u003Cth\u003EFaithfulness\u003C/th\u003E\r\n\u003Cth\u003ECoherence\u003C/th\u003E\r\n\u003Cth\u003ETerm consistency\u003C/th\u003E\r\n\u003Cth\u003ELong context quality\u003C/th\u003E\r\n\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003ESnowflake AI_TRANSLATE\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003ENative long-context translation\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.9002\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.8795\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.7880\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.7614\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.8323\u003C/code\u003E\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003EGoogle Cloud Translation v3\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E30,000\u003C/code\u003E-character chunking\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.8900\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.8786\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.8020\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.7075\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.8195\u003C/code\u003E\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003EAWS Translate\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E7,500\u003C/code\u003E-character chunking\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.8320\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.7061\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.5616\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.4295\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.6323\u003C/code\u003E\u003C/td\u003E\r\n\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_text_1241714748":{"id":"blog-text-e7b270258e","text":"\u003Cp\u003EOn this subset, \u003Ccode\u003EAI_TRANSLATE\u003C/code\u003E leads on completeness, faithfulness, and term consistency, while Google is slightly stronger on coherence. AWS performs meaningfully worse on all four core quality dimensions, which is consistent with the operational reality that once you are forced to split long documents into small chunks, stitching the document back together degrades the quality of the translation.\u003C/p\u003E\r\n\u003Ch3\u003EPricing comparison\u003C/h3\u003E\r\n\u003Cp\u003EPricing matters most on the longest documents. A typical 100-page English document contains roughly \u003Ccode\u003E180,000\u003C/code\u003E to \u003Ccode\u003E400,000\u003C/code\u003E characters. Once you start processing many documents at that scale, the per-character price becomes a major factor.\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_text_1451058602":{"id":"blog-text-723e5a9d40","text":"\u003Ctable\u003E\r\n\u003Cthead\u003E\u003Ctr\u003E\u003Cth\u003ESystem\u003C/th\u003E\r\n\u003Cth\u003EOriginal pricing formulation\u003C/th\u003E\r\n\u003Cth\u003EApprox. cost per 1M input characters\u003C/th\u003E\r\n\u003Cth\u003ELong context quality\u003C/th\u003E\r\n\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003ESnowflake AI_TRANSLATE\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E1.63\u003C/code\u003E AI credits per million tokens\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E$0.82-$3.26*\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.8323\u003C/code\u003E\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003EGoogle Cloud Translation v3\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E$20\u003C/code\u003E per million input characters\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E$20\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.8195\u003C/code\u003E\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003EAWS Translate\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E$15.00\u003C/code\u003E per million characters\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E$30\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.6323\u003C/code\u003E\u003C/td\u003E\r\n\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_text_1283808245":{"id":"blog-text-950381b717","text":"\u003Cp\u003E\u003Ci\u003E* Assumes $2 per AI credit with global routing. The range reflects differences in characters per token across languages; English generally corresponds to the lower cost per 1M characters.\u003C/i\u003E\u003C/p\u003E\r\n\u003Cp\u003EIn this comparison, \u003Ccode\u003EAI_TRANSLATE\u003C/code\u003E delivers the lowest cost at equivalent quality: under $3.26 per million tokens at the highest language-complexity scenario, while also requiring the least implementation effort.\u003C/p\u003E\r\n\u003Ch2\u003E\u003Cb\u003EWhy general-purpose LLMs are not a complete answer\u003C/b\u003E\u003C/h2\u003E\r\n\u003Cp\u003EA natural reaction is to ask: \u003Ci\u003EWhat about long-context LLMs?\u003C/i\u003E While some models solve the input length issue, they introduce an entirely different class of problems on the output side.\u003C/p\u003E\r\n\u003Cp\u003ETranslation often expands the length of the text. When an LLM's output context is limited, it runs out of room. In our testing, we saw models visibly \u003Cb\u003Etruncate mid-sentence\u003C/b\u003E. In one case, the translation simply ended in the middle of a sentence:\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"code_snippet":{"id":"code-snippet-0444fb4039","codeSnippet":"\u003Cpre\u003E\u003Ccode\u003E\"On the Recovery mission, these carry-overs amount to €5.6 billion (i.e. 41%\"\r\n\u003C/code\u003E\u003C/pre\u003E","multiLine":true,":type":"snowflake-site/components/code-snippet"},"blog_text_1714300433":{"id":"blog-text-2aecca9ab0","text":"\u003Cp\u003EWorse than visible truncation is \u003Cb\u003Esilent compression\u003C/b\u003E. This is one of the trickiest failure modes in long translation. The output remains highly readable, but the model softens, collapses, or drops detail to save space. Sometimes, the model simply decides to stop translating and summarize instead:\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"code_snippet_1950796071":{"id":"code-snippet-33f153ea8c","codeSnippet":"\u003Cpre\u003E\u003Ccode\u003E\"[The document continues with detailed sections on Accounting Principles,\r\nBalance Sheet, Income Statement, Cash Flow Analysis, and Notes, which I can\r\nprovide if needed. The translation maintains all the original formatting,\r\nnumbers, and structure.]\"\r\n\u003C/code\u003E\u003C/pre\u003E","multiLine":true,":type":"snowflake-site/components/code-snippet"},"blog_text_135609751":{"id":"blog-text-b9216b00b6","text":"\u003Cp\u003EWhile readable, that output is not a translation; it's an incomplete summary.\u003C/p\u003E\r\n\u003Cp\u003EThe same pattern plagues heavily structured documents. Models will often translate the main narrative perfectly, but quietly drop or simplify the footnotes, chart notes, captions and labels. For a reader making business decisions, those lost details matter. A polished narrative cannot mask an unfaithful translation.\u003C/p\u003E\r\n\u003Ch3\u003EWhat happens as documents get longer\u003C/h3\u003E\r\n\u003Cp\u003EThe same pattern also shows up when you step back from individual examples and look at long documents bucketed by length.\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"image":{"id":"image-dd7341437d","isLcpImage":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--f3768bd2-99da-44a5-af2c-b773ec53a0a1/figure-1.-ai-translate--translating-long-texts-without-losing-the-plot-.png?quality=85&preferwebp=true","alt":"Figure 1. AI_TRANSLATE- Translating Long Texts Without Losing the Plot","lazyEnabled":true,"height":"1082","width":"1965","title":"Figure 1. AI_TRANSLATE- Translating Long Texts Without Losing the Plot",":type":"snowflake-site/components/image"},"blog_text_1790526750":{"id":"blog-text-87740691e2","text":"\u003Cp\u003EAt around \u003Ccode\u003E150k-200k\u003C/code\u003E characters, several strong general-purpose LLMs are still competitive. But as documents get longer, their completeness becomes more erratic. \u003Ccode\u003EAI_TRANSLATE\u003C/code\u003E holds a much steadier line, and beyond \u003Ccode\u003E250k\u003C/code\u003E characters it is the strongest system in every populated bucket we tested.\u003C/p\u003E\r\n\u003Cp\u003EOne way to make that tradeoff more concrete is to look at the \u003Ccode\u003E400k-500k\u003C/code\u003E range, where long-document behavior is especially visible:\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_text_1707943158":{"id":"blog-text-65332b1708","text":"\u003Ctable\u003E\r\n\u003Cthead\u003E\u003Ctr\u003E\u003Cth\u003ESystem\u003C/th\u003E\r\n\u003Cth\u003EMean completeness at \u003Ccode\u003E400k-500k\u003C/code\u003E\u003C/th\u003E\r\n\u003Cth\u003EApprox. cost per \u003Ccode\u003E1M\u003C/code\u003E tokens\u003C/th\u003E\r\n\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003EAI_TRANSLATE\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.8956\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E$3.26*\u003C/code\u003E\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003EGemini 3.5 Flash\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.7629\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E$5.25\u003C/code\u003E\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003EClaude Sonnet 4.6\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.7259\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E$9.00\u003C/code\u003E\u003C/td\u003E\r\n\u003C/tr\u003E\u003Ctr\u003E\u003Ctd\u003E\u003Ccode\u003EGPT-5.4\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E0.6859\u003C/code\u003E\u003C/td\u003E\r\n\u003Ctd\u003E\u003Ccode\u003E$8.75\u003C/code\u003E\u003C/td\u003E\r\n\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"},"blog_text_1488241609":{"id":"blog-text-4be885d28d","text":"\u003Cp\u003E\u003Ci\u003E* Assumes $2 per AI credit with global routing.\u003C/i\u003E\u003C/p\u003E\r\n\u003Cp\u003EThat matters because long-document failures are not always dramatic. Sometimes a translation stops early. Sometimes it keeps sounding fluent but starts compressing later sections or dropping lower-visibility material. As sequence length grows, completeness becomes harder to preserve, and that is where a purpose-built translation system starts to matter most.\u003C/p\u003E\r\n\u003Ch2\u003E\u003Cb\u003EWhat long-context AI_TRANSLATE is meant to solve\u003C/b\u003E\u003C/h2\u003E\r\n\u003Cp\u003E\u003Ccode\u003EAI_TRANSLATE\u003C/code\u003E is built to make long-document translation dependable, not just possible. In practical terms, that means three things:\u003C/p\u003E\r\n\u003Ch3\u003E\u003Cb\u003E1. Native handling of long inputs:\u003C/b\u003E\u003C/h3\u003E\r\n\u003Cp\u003EYou can pass massive documents directly into a single query with \u003Ccode\u003EAI_TRANSLATE\u003C/code\u003E without building awkward manual splitting pipelines or custom orchestration. Your files stay intact, and operational complexity drops.\u003C/p\u003E\r\n\u003Ch3\u003E\u003Cb\u003E2. Designed to preserve completeness:\u003C/b\u003E\u003C/h3\u003E\r\n\u003Cp\u003E\u003Ccode\u003EAI_TRANSLATE\u003C/code\u003E is intended to translate the document faithfully rather than &quot;helpfully&quot; rewrite it into a shorter form. If a system translates the first 80 pages beautifully and loses the last 20, that is not a successful translation. If an input is accepted, \u003Ccode\u003EAI_TRANSLATE\u003C/code\u003E allocates sufficient output space to generate the full translation, designed to avoid silent failures or dropped appendices.\u003C/p\u003E\r\n\u003Ch3\u003E\u003Cb\u003E3. Keep things extremely simple:\u003C/b\u003E\u003C/h3\u003E\r\n\u003Cp\u003EThe long-context path is not a separate product or a complex new infrastructure to manage. It brings translation directly to where your data already lives. There is no need to move data, manage API limits or turn every document into a custom workflow. It extends the core \u003Ccode\u003EAI_TRANSLATE\u003C/code\u003E experience in a single query, natively handling mixed languages, untranslated brand names and the messy formats of real-world enterprise reporting. We believe that a useful translation system needs to handle any content input without the need for custom workflows by content type.\u003C/p\u003E\r\n\u003Ch2\u003EWhat good long-context translation looks like\u003C/h2\u003E\r\n\u003Cp\u003EThe real test of a translation system boils down to: Can your team use the translated document the exact same way they would use the original?\u003C/p\u003E\r\n\u003Cp\u003EIf it's an annual report, analysts need to trust the tables and footnotes. If it's a policy transcript, legal needs the exact progression of the discussion. Sentence quality matters, but for long documents, it isn't enough. What matters is that the document remains a complete, trusted and usable asset.\u003C/p\u003E\r\n\u003Cp\u003EWith \u003Ccode\u003EAI_TRANSLATE\u003C/code\u003E, your documents aren't just translated; they are activated, at scale, without losing the plot.\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/blog/blog-text"}},":itemsOrder":["blog_text","blog_text_664210082","blog_text_756284008","blog_text_2070719314","blog_text_1241714748","blog_text_1451058602","blog_text_1283808245","code_snippet","blog_text_1714300433","code_snippet_1950796071","blog_text_135609751","image","blog_text_1790526750","blog_text_1707943158","blog_text_1488241609"],":type":"wcm/foundation/components/responsivegrid"},"responsivegrid_premium_content_banner":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{},"columnCount":12,"appliedCssClassNames":"snowflake-responsive-component-top-padding-medium",":items":{},":itemsOrder":[],":type":"wcm/foundation/components/responsivegrid"},"container_author_chip":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"author_chip":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-f6b7a18765",":type":"snowflake-site/components/container",":items":{"author_chip":{"id":"author-chip-aef233fbdb","title":{"id":"title","type":"heading2","lines":["Learn more about the authors"],":type":"snowflake-site/components/title-v2"},"authors":[{"authorImage":{"id":"image-c35ed7a55c","isLcpImage":false,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--0a2f7a43-33b6-4f7f-b829-742f53e609da/jessie.jpg?quality=85&preferwebp=true","alt":"Jessie Felix","lazyEnabled":true,"height":"184","width":"184",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-749f543544","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/jessie-felix/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Jessie Felix"},"authorTitle":"Product Manager, Snowflake"},{"authorImage":{"id":"image-d697c1ae04","isLcpImage":false,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--f3d759b9-142d-4c1c-8980-6d6a308456b8/michal-turski.png?quality=85&preferwebp=true","lazyEnabled":true,"height":"398","width":"418",":type":"snowflake-site/components/image"},"authorCta":{"id":"button-022be88ce5","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/authors/michal-turski/"},"linkTargetContentType":"DOCUMENT_LEARN","linkType":"SNOWFLAKE_INTERNAL",":type":"snowflake-site/components/button","text":"Michal Turski"},"authorTitle":"Research Scientist"}],":type":"snowflake-site/components/blog/author-chip"}},":itemsOrder":["author_chip"],"appliedCssClassNames":"snowflake-responsive-component-top-padding-medium"},"container_share_article":{"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"share_article":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-a1e64aa03e",":type":"snowflake-site/components/container",":items":{"share_article":{"id":"share-article-03eb54febc","linkedInShareUrl":"https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Fen%2Fblog%2Fengineering%2Fai-translate-long-document-translation&title=AI_TRANSLATE%3A+Translating+Long+Texts+Without+Losing+the+Plot+","twitterShareUrl":"https://x.com/intent/post?url=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Fen%2Fblog%2Fengineering%2Fai-translate-long-document-translation&text=AI_TRANSLATE%3A+Translating+Long+Texts+Without+Losing+the+Plot+","facebookShareUrl":"https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.snowflake.com%2Fcontent%2Fsnowflake-site%2Fglobal%2Fen%2Fblog%2Fengineering%2Fai-translate-long-document-translation",":type":"snowflake-site/components/blog/share-article"}},":itemsOrder":["share_article"],"appliedCssClassNames":"snowflake-responsive-component-top-padding-small"}},":itemsOrder":["container_hero","responsivegrid_content","responsivegrid_premium_content_banner","container_author_chip","container_share_article"]},"flexible_column_content_container_2":{"layout":"SIMPLE","id":"container-8ed784c882",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"blog_table_of_content":{"id":"blog-table-of-content-ce55595e98",":type":"snowflake-site/components/blog/blog-table-of-content","tableOfContents":[]}},":itemsOrder":["blog_table_of_content"]},"isBlogPage":true,"isActiveTOC":false,":type":"snowflake-site/components/flexible-column-container"},"related_content":{"id":"related-content-5c75d15e1b","relatedContent":[],"isBlogPage":true,":type":"snowflake-site/components/blog/related-content"}},":itemsOrder":["flexible_column_container","related_content"],"appliedCssClassNames":"snowflake-container"}},":itemsOrder":["container_breadcrumb","container_main_content"],":type":"wcm/foundation/components/responsivegrid"},"container_47873732":{"additionalClasses":"section--blog-newsletter","gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnClassNames":{"flexible_column_cont":"aem-GridColumn aem-GridColumn--default--12"},"layout":"RESPONSIVE_GRID","columnCount":12,"id":"container-c0ebdca7fa",":type":"snowflake-site/components/container",":items":{"flexible_column_cont":{"id":"flexible-column-container-12c599ef30","type":"1-column","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"small","bottomPadding":"none","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"propertiesCSSClasses":"section--blog-newsletter","backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-123b2060a9",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"marketo_v2":{"id":"marketo-v2-1af87e6b09","marketoForm":{"formId":"3320","edit":false,"successUrl":null,"hidden":null,"script":null,"values":null},"title":{"id":"title","type":"heading3","lines":["Subscribe to our blog newsletter","Get the best, coolest and latest delivered to your inbox each week"],":type":"snowflake-site/components/title-v2"},"partnerCampaignPage":false,"marketoConfigured":true,"formConfigured":true,"munchkinId":"252-RFO-227","serverInstance":"252-RFO-227.mktoweb.com",":type":"snowflake-site/components/form/marketo-v2"},"text":{"id":"text-34d367958a","additionalClasses":"newsletter-disclaimer","text":"\u003Cp\u003EBy submitting this form, I understand Snowflake will process my personal information in accordance with their Privacy Notice.\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/text"}},":itemsOrder":["marketo_v2","text"]},"isBlogPage":true,"isActiveTOC":false,":type":"snowflake-site/components/flexible-column-container"}},":itemsOrder":["flexible_column_cont"],"appliedCssClassNames":"snowflake-container"},"experiencefragment-pre-footer":{"id":"experiencefragment-6c0ec2d69d","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/get-started-pre-footer/get-started-pre-footer/jcr:content","configured":true,"xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/get-started-pre-footer/get-started-pre-footer.xfmodel.json",":type":"snowflake-site/components/experiencefragment"},"markup_editor":{"id":"markup-editor-e102322b18","title":"Page CSS","cssContent":"@media screen and (min-width:768px){.snowflake-blog-author-chip-wrapper{justify-content:flex-start}.snowflake-blog-related-content-on-blog-page{max-width:1408px;margin-left:auto;margin-right:auto}.snowflake-text{font-family:Lato,sans-serif;font-weight:400;font-size:16px;line-height:24px}}.section--blog-newsletter{max-width:none;width:100%;padding-left:0;padding-right:0;margin-left:0;margin-right:0;margin-bottom:0}.section--blog-newsletter .mktoField{background-color:transparent !important}.section--blog-newsletter\u003E.container{padding-left:0;padding-right:0}@media screen and (min-width:768px){.section--blog-newsletter\u003E.container{padding-left:0;padding-right:0}}.newsletter-disclaimer p{font-size:14px !important}.section--blog-newsletter .snowflake-marketo-form-container{margin-bottom:24px;background-color:#f6f9fa;gap:48px;box-shadow:none}.section--blog-newsletter .snowflake-title p.snowflake-title-line:first-child{font-family:Texta;font-size:24px;line-height:26px;font-weight:700;margin-bottom:4px}.section--blog-newsletter .snowflake-title p.snowflake-title-line{text-transform:none;font-family:\"Lato\",sans-serif;font-size:16px;line-height:24px;font-weight:normal}@media screen and (min-width:1024px){.section--blog-newsletter .snowflake-marketo-form-container{display:flex;justify-content:center}.section--blog-newsletter .snowflake-title .snowflake-title-line{text-align:left}.section--blog-newsletter .snowflake-marketo-form .mktoFormRow:has(\u003E input[type=\"hidden\"]){flex-grow:0}.section--blog-newsletter .snowflake-marketo-form{display:flex;width:50% !important}.section--blog-newsletter .snowflake-marketo-form .mktoButtonRow{flex-grow:0;width:auto !important;margin-left:0;margin-right:0}.section--blog-newsletter .snowflake-marketo-form .mktoFormRow{flex-grow:1}.section--blog-newsletter\u003E.container{padding-left:0;padding-right:0}.section--blog-newsletter .snowflake-marketo-form-title{width:50%;margin-bottom:0 !important}.section--blog-newsletter .center .snowflake-title{align-items:flex-start}}.snowflake-sub-navigation a.snowflake-sub-navigation-primary-link{width:auto !important}.snowflake-blog-hero{align-items:stretch !important}","isGSAPEnabled":false,":type":"snowflake-site/components/markup-editor"},"markup_editor-table":{"id":"markup-editor-d75210d6ad","title":"Table Styling CSS","cssContent":"#snowflake-blog-template-main-container table{width:100%;background-color:var(--ui-background-01);border-collapse:collapse;border:2px solid var(--ui-background-09);font-family:'Lato',sans-serif;color:var(--ui-background-09)}#snowflake-blog-template-main-container table thead{background-color:var(--ui-01)}#snowflake-blog-template-main-container table th,#snowflake-blog-template-main-container table td{border:2px solid var(--ui-background-09);padding:var(--spacing-01)}","isGSAPEnabled":false,":type":"snowflake-site/components/markup-editor"},"experiencefragment-footer":{"id":"experiencefragment-f9099407c0","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/footer/master/jcr:content","configured":true,"xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/footer/master.xfmodel.json",":type":"snowflake-site/components/experiencefragment"}},":itemsOrder":["experiencefragment-banner","experiencefragment-header","experiencefragment-sub-header","responsivegrid","container_47873732","experiencefragment-pre-footer","markup_editor","markup_editor-table","experiencefragment-footer"],":type":"wcm/foundation/components/responsivegrid"}},":itemsOrder":["root"],":hierarchyType":"page",":path":"/content/snowflake-site/global/en/blog/engineering/ai-translate-long-document-translation","locale":"en"}
  