Description
'shiny' App for TRAPD/ISPOR Survey Translation with LLMs.
Description
A 'shiny' application to automate forward and back survey translation with optional reconciliation using large language models (LLMs). Supports both item-by-item and batch translation modes for optimal performance and context-aware translations. Handles multi-sheet Excel files and supports OpenAI (GPT), Google Gemini, and Anthropic Claude models. Follows the TRAPD (Translation, Review, Adjudication, Pretesting, Documentation) framework and ISPOR (International Society for Pharmacoeconomics and Outcomes Research) recommendations. See Harkness et al. (2010) <doi:10.1002/9780470609927.ch7> and Wild et al. (2005) <doi:10.1111/j.1524-4733.2005.04054.x>.
README.md
LLMTranslate
LLMTranslate is an R package that wraps a Shiny application for TRAPD/ISPOR-style survey translation. It automates forward translation, optional back-translation, and reconciliation using large language models from multiple providers:
- OpenAI: GPT-4o, GPT-4.1, GPT-5 series, and o-series reasoning models
- Google Gemini: Gemini 2.5 Pro, 2.5 Flash, 2.0 Flash
- Anthropic Claude: Claude Sonnet 4.5, Claude Haiku 4.5, Claude Opus 4.1, and more
Key Features (v0.3.0)
- Two Translation Modes:
- Batch Translation: Translates all items in one LLM call for speed and context-aware consistency
- Item-by-item Translation: Processes each item separately, ideal for very long instruments
- Multi-Sheet Excel Support: Translate individual sheets or all sheets at once
- Custom Model Support: Enter any model name, not just predefined ones
- Smart Empty Row Handling: Automatically skips empty rows while maintaining alignment
- Comprehensive Logging: Download includes Model Selection Log, Prompt Log, and translation mode used
- Progress Tracking: Visual progress bars with sheet-specific status updates
Installation
Install from CRAN:
install.packages("LLMTranslate")
Usage
Launch the Shiny app:
library(LLMTranslate)
run_app()
Quick Start
- Set up API keys in the "API Keys & Models" tab (or set environment variables)
- Choose translation mode: Batch Translation (recommended) or Item-by-item
- Upload Excel file with one item per row
- Select sheet(s) to translate (or choose "All sheets")
- Choose column containing original items
- Adjust prompts if needed (defaults follow TRAPD/ISPOR best practices)
- Start translation and monitor progress
- Download results as Excel with all sheets and logs
Excel File Preparation
- One survey item per row
- Dedicated column with original text
- No merged cells
- Supports .xlsx and .xls formats
- Multiple sheets supported
Translation Modes
Batch Translation (recommended for most surveys):
- Faster processing (3 LLM calls total vs N×3 for item-by-item)
- Better context-aware translations
- Maintains terminology consistency across items
- Best for instruments with <100 items
Item-by-item Translation:
- Works with any instrument length
- Can pause and resume translation
- Better for 100+ items or rate limit concerns
- Fine-grained error handling per item.