- buildBatches: groups texts into chunks that fit within 4800 chars
(200 char safety margin) when joined with the separator
- translateLongText: splits individual cells/paragraphs that exceed
the limit at paragraph/sentence boundaries, translates each chunk,
then rejoins — instead of hitting the API with oversized input
- Process batches sequentially to avoid overloading the local model
- Separator fallback still works: if separator gets translated,
falls back to individual calls per text within that batch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>