Overview
Dextalo combines AI translation, post-editing, structured QA, repair tooling, semantic Translation Memory, document conversion, and optional Google Cloud prediction into a single workflow designed for interactive terminal use — plus a native desktop editor for translators who prefer a UI.
dextalo init, set your language
pair and optional workspace settings, then use
Pipeline or the explicit
Translate → Edit → QA → Apply QA workflow from the interactive menu.
Key capabilities
- Interactive workflow — Launch
dextaloand choose translation actions from a guided menu. - Audited pipeline —
analyze-content → translate → edit → qawithapply-qaas the follow-up remediation step. - Vertical + personalization layers — Add domain guidance, linguist voice guides, and reviewed QA feedback without changing the base workflow.
- QA workbook learning — Teach future
editandqaruns from reviewed Excel workbooks. - Repair workflow — Detect and recover segment-shift corruption with
repairandapply-repair. - Optional machine prediction — Use Google Cloud Translation through
dextalo predictwhen you specifically want a standalone MT pass. - Quality grading — COMET, BLEU, and TER scoring (reference-based and reference-free).
- Translation Memory — PostgreSQL-backed TM with vector-semantic search (pgvector).
- Content analysis + conversion — Generate style guides, convert DOCX/PPTX/PDF/TXT/XLS/XLSX to XLIFF, and restore deliverables back to document formats.
- Auto updates — Self-updating CLI and signed desktop updates keep you current.
Domains, Personalization,
Languages, and Workspace Prefix, and QA can learn from reviewed
workbooks in qa_workbooks/.
Dextalo Desktop — Getting started
Prefer a UI to the terminal? Dextalo Desktop is a native CAT editor with AI translation, TM, and QA built in. Here is the shortest path from install to a finished deliverable.
- 1
Download & install
Get Dextalo Desktop for macOS or Windows — free, code-signed, and self-updating.
- 2
Open a document
Create a project and open a source file (DOCX, PPTX, PDF, XLSX, or TXT). Dextalo converts it to segmented XLIFF automatically.
- 3
Pick your languages
Choose the source and target language for the project. File metadata overrides the workspace default when present.
- 4
Pre-translate
Run AI translation across every segment, grounded in your Translation Memory and glossary matches.
- 5
Edit & QA
Review source and target side by side. Accept AI post-edits and resolve inline QA flags — the AI proposes, you decide.
- 6
Export
Restore the finished translation back to the original document format, ready to hand off.
Installation
Install the Dextalo CLI once on your machine. After that, you can create as many
translation workspaces as you want with dextalo init.
macOS / Linux
$curl -fsSL https://get.dextalo.com/install.sh | bashWindows (PowerShell)
irm https://get.dextalo.com/install.ps1 | iex~/.dextalo and adds a dextalo command to your PATH. Restart
your terminal after installation if dextalo is not immediately available.
From source (advanced)
You do not need this for normal usage. This path is only for local development or working directly from the repository.
# Clone repository
git clone https://github.com/eqho-dev/sls-cli.git
cd sls-cli
# Create virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Install CLI dependencies
pip install -r cli/requirements.txt
# Verify
python -m cli.dxt_cli --help Configuration File
Dextalo needs a .env file for authentication and workflow settings.
Create it before you run translation features. For installed builds, use the config
location shown by the installer; if you want project-specific settings, keep a
.env in the directory where you run dextalo.
.env file contains secrets (API keys,
database passwords). It is git-ignored and never committed to the
repository. Each user must create their own .env.
Create your .env file
# If your installation includes a template
cp .env.example .env
# Otherwise create .env manually, then edit it with your credentials
nano .env Minimum required settings
At minimum, configure OpenRouter for the AI workflow and your TM database if you use
TM features. Google Cloud credentials are only needed for dextalo predict.
# Optional Google Cloud settings for dextalo predict
GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/service-account-key.json
PROJECT_ID=your-google-cloud-project-id
LOCATION=us-central1
MODEL_ID=general/nmt
# OpenRouter / AI workflow
OPENROUTER_API_KEY=your_openrouter_api_key
AI_MODEL=google/gemini-3-flash-preview
AI_STYLE_GUIDE_MODEL=openai/gpt-5-mini
AI_TRANSLATE_MODEL=google/gemma-3-27b-it
AI_EDITING_MODEL=openai/gpt-5-mini
AI_QA_MODEL=openai/gpt-5-mini
AI_REPAIR_MODEL=google/gemini-3.1-flash-lite-preview
# Database (required for TM features)
TM_DB_PROVIDER=local
TM_DB_HOST=localhost
TM_DB_PORT=5432
TM_DB_NAME=predict
TM_DB_USER=postgres
TM_DB_PASSWORD=your_password Choose source and target languages in the CLI after first launch. New installs start with no language pair selected.
Google Predict Authentication
The optional dextalo predict command uses the Google Cloud Translation
API. This is a standalone MT path for teams that still want it. The main pipeline no
longer depends on Google NMT.
Setup steps
- Go to the Google Cloud Console.
- Enable the Cloud Translation API.
- Create a Service Account with Translation permissions.
- Download the JSON key file.
- Set the path in your
.envfile:
GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/service-account-key.json Or set it as a shell environment variable:
# macOS / Linux
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/key.json"
# Windows PowerShell
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\path\to\key.json" Translation model options for dextalo predict
| Model ID | Description |
|---|---|
general/nmt | Standard Neural Machine Translation (default) |
general/translation-llm | LLM-based translation (higher quality, slower) |
general/translation-llm-adaptive | Adaptive LLM translation |
NM2bb430cb… | Custom AutoML model ID |
Quick Start
Create or enter a project directory, initialize it once, then run Dextalo from that folder:
# Create a working directory
mkdir -p ~/my-translation-project
cd ~/my-translation-project
# Initialize the workspace
dextalo init
# Put source XLIFF in source/
# Put TMX in memories/
# Put glossary files in glossaries/
# Put reviewed QA workbooks in qa_workbooks/ when needed
# Launch the interactive app
dextalo
# Then choose:
# Languages set the source/target pair once
# Update TM optional, if you have TMX files
# Pipeline analyze-content → translate → edit → qa
# Apply QA optional targeted fixes from QA findings
# Grade optional evaluation step
# Restore optional document export
#
# Predict remains available as a separate standalone MT step. dextalo init creates the following folder structure in the current directory. You only need to run it once per workspace.
my-translation-project/
├── source/ # Input XLIFF files
├── target/ # Translated output files
├── temp/ # Processing intermediates
├── grading/ # Reference files for quality evaluation
├── glossaries/ # Terminology CSV files
├── memories/ # Translation memory files (TMX)
├── linguist_profiles/ # Personalization samples and learned QA guides
├── qa_workbooks/ # Reviewed QA Excel workbooks for interactive learning
├── convert/ # Documents to convert to XLIFF
├── deliverable/ # Restored documents (DOCX/PPTX/TXT)
├── logs/ # Log files
└── .dxt # Workspace marker file If you want these folders to live under a subfolder such as workspace/, use Settings → Workspace Prefix.
Interactive App
Run dextalo without arguments to launch the interactive menu. For most users, this is the normal way to use the CLI.
dextalo The menu provides access to the full workflow and current workspace settings:
─── Translation Workflow ───
AI Translate AI translation with TM and glossary context (RAG)
Edit AI post-editing pass
QA Run structured localization QA validation
Apply QA Revise target files using QA findings
Grade Evaluate translation quality
Pipeline Run complete workflow (analyze-content → translate → edit → qa)
Repair Detect segment-shift corruption in edited XLIFF files
Apply Repair Apply fixes recorded in the repair report
─── Settings ───
Change Source Folder Set source file directory
Change Target Folder Set target file directory
Workspace Prefix Toggle workspace/ folder prefix
Translation Memories Select active TM from database
Glossaries Select active glossary CSV
Style Guide Select active style guide TOML
Domains Select active domain guidance
Personalization Select or generate linguist personalization guide
Languages Set source and target language
─── Analysis & TM ───
Analyze File Analyze XLIFF files for metrics
Generate Style Guide Generate AI-powered style guide
Update TM Import TMX files to database
Embed TM Generate vector embeddings for TM segments
─── Tools ───
Convert Convert file to XLIFF
Restore Restore XLIFF to XLSX, DOCX, or other format
─── System ───
Version Show version information
Config View configuration
Check Update Check for available updates - ↑ ↓ arrow keys to navigate.
- 1–9, a–z quick-select keys.
- Enter to select and run a command.
- q or Ctrl+C to quit.
Direct Commands
These commands are useful for shortcuts, scripting, or automation. Day-to-day use is usually easier through the interactive app launched with dextalo.
dextalo
Launch the interactive Dextalo app in the current workspace. This is the recommended entry point for most users.
cd ~/my-project
dextalo dextalo init
Initialize a Dextalo workspace in the current directory. Creates all required folders (source, target, temp, grading, glossaries, memories, linguist_profiles, qa_workbooks, convert, deliverable, logs) and a .dxt marker file.
--forceRe-initialize even if workspace already exists.cd ~/my-project
dextalo init
# Re-initialize (adds missing folders)
dextalo init --force dextalo translate
Optional shortcut for the menu's AI Translate action. Translates source XLIFF files with an LLM enriched by Translation Memory, glossary, domain, and personalization context.
--source, -sSource directory (default: source).--target, -tTarget directory (default: target).--model, -mLLM model to use for translation.--quiet, -qSuppress progress output.dextalo translate
dextalo translate --source my_source --target my_target
dextalo translate --model google/gemini-3-flash-preview Import your TM first (dextalo update-tm) and optionally run Embed TM from the interactive menu for best results. The selected domain, personalization guide, and language pair are also applied here.
dextalo predict
Standalone machine translation on XLIFF files in the source directory using Google Cloud Translation.
--source, -sSource directory (default: source).--target, -tTarget directory (default: target).--tempTemporary directory (default: temp).dextalo predict
dextalo predict --source my_source --target my_target dextalo edit
Optional shortcut for the menu's Edit action. Runs an AI post-editing pass on translated XLIFF files in the target directory using the active style guide, domain, personalization, and learned QA feedback when available.
--target, -tTarget directory (default: target).--quiet, -qSuppress progress output.Update your TM first (dextalo update-tm) so the editor can leverage TM matches during post-editing.
dextalo grade
Evaluate translation quality using COMET, BLEU, and TER metrics. Supports both reference-based and reference-free evaluation.
--simpleShow total scores only.--send-reportSend email report.# Reference-free (COMET only)
dextalo grade candidate.xlf
# Reference-based (COMET, BLEU, TER)
dextalo grade reference.xlf candidate.xlf
# Simple totals with email report
dextalo grade --simple --send-report reference.xlf candidate.xlf First run downloads the COMET model (~2.66 GB). A HUGGINGFACE_TOKEN in your .env is required for the reference-free COMET-KIWI model.
dextalo pipeline
Shortcut for running the current audited workflow from the command line: analyze-content → translate → edit → qa. Grade is now a separate follow-up step, and Google predict is optional outside the pipeline.
--skip-analyzeSkip style-guide generation.--skip-translateSkip translation if target files already exist.--skip-editSkip AI post-editing step.--skip-qaSkip QA validation.--contextAdditional factual context for style-guide generation.--translation-modelOverride the translation model.--editing-modelOverride the editing model.--qa-modelOverride the QA model.# Full pipeline
dextalo pipeline
# Reuse an existing style guide and translations
dextalo pipeline --skip-analyze --skip-translate
# Add factual context for style-guide generation
dextalo pipeline --context "Brand voice is premium but concise" Run dextalo grade separately after the pipeline if you want COMET/BLEU/TER evaluation.
dextalo update-tm
Optional shortcut for the menu's Update TM action. Imports Translation Memory from TMX files into the PostgreSQL database.
--source-folder, -sFolder containing TMX files (default: source or TM_SOURCE_FOLDER env).dextalo qa
Validate translated XLIFF files, score issues, write structured QA reports, and optionally learn reusable guidance from a reviewed restored workbook.
--target, -tTarget directory (default: target).--model, -mModel for QA validation.--reviewed-workbookReviewed XLSX with Source, Target, and Edit columns to learn from before validation.# Standard QA
dextalo qa
# Learn from a reviewed workbook, then run QA
dextalo qa --reviewed-workbook "deliverable/bkk air batch 26 new_restored.xlsx" In the interactive app, the QA action shows a second checkbox picker that reads reviewed .xlsx files from qa_workbooks/. Select one workbook there to use the reviewed-workbook feature without leaving the app.
dextalo apply-qa
Read *_qa_report.json findings and apply targeted revisions back into the matching target XLIFF files.
--target, -tTarget directory (default: target).--model, -mModel for applying QA-driven revisions.dextalo repair
Analyze translated XLIFF files and emit repair reports for suspected segment-shift corruption introduced during editing.
files…Optional specific XLIFF files to analyze.--target, -tTarget directory containing translated XLIFF files.--model, -mModel to use for repair detection.--auto-fixApply the repair immediately when all findings are safe.dextalo repair
dextalo repair target/file.xlf --auto-fix dextalo apply-repair
Restore or retranslate damaged XLIFF ranges from repair reports after a repair analysis pass.
files…Optional specific XLIFF files to repair.--target, -tTarget directory containing translated XLIFF files.--dry-runPreview repair writes without changing XLIFF files.--reedit-scopeRe-edit none, only damaged ranges, or the full file after repair.dextalo analyze
Analyze XLIFF files for localization metrics: word counts, character counts, fuzzy match breakdown, repetitions, and per-file statistics.
--simpleQuick report with basic metrics only.--export, -eExport results to file.--format, -fExport format: json or csv.dextalo analyze
dextalo analyze --simple
dextalo analyze --export --format json dextalo analyze-content
Use AI to analyze source content and generate a style guide. Identifies industry context, tone, and translation guidance, with optional extra context for market or brand constraints.
--source-path, -sSource directory (default: source).--word-limit, -wMaximum words to analyze (default: 3000).--output, -oOutput file path.--context, -cAdditional factual context for the style guide.dextalo convert
Convert PDF, DOCX, PPTX, TXT, XLS, or XLSX files to segmented XLIFF 1.2 for translation. Recent releases added better PDF paragraph extraction, improved bullet handling, and an XLS/XLSX header-row prompt before conversion.
--input, -iInput directory (default: convert).--output, -oOutput directory for XLIFF files (default: source).--model, -mModel for language detection.--no-detectSkip AI language detection.# Place documents in convert/ folder, then run
dextalo convert
# Custom directories
dextalo convert --input my_docs --output my_source dextalo restore
Restore translated XLIFF files back to their original document format (DOCX, PPTX, TXT) with formatting preserved.
--input, -iInput directory with translated XLIFF files (default: target).--output, -oOutput directory for restored documents (default: deliverable).# Restore translated files to original format
dextalo restore
# Custom directories
dextalo restore --input my_target --output my_deliverable Management commands
| Command | Description |
|---|---|
dextalo | Open the interactive app in the current workspace |
dextalo update | Update the CLI to the latest version |
dextalo check-update | Check for available updates |
dextalo version | Show current version information |
dextalo config | View current configuration |
dextalo --help | Show all available commands |
Workflow
Recommended workflow
# 1. Initialize a workspace
dextalo init
# 2. Add files to the workspace folders
# source/ XLIFF files to translate
# memories/ TMX files
# glossaries/ glossary files
# linguist_profiles/ personalization samples if you want voice guides
# qa_workbooks/ reviewed QA Excel workbooks
# grading/ reference files for scoring
# 3. Launch the interactive app
dextalo
# 4. In the menu, choose:
# Languages set the source and target pair once
# Domains optional domain prompt layer
# Personalization optional linguist style guide
# Workspace Prefix optional, if folders should live under workspace/
# Update TM optional
# Pipeline analyze-content → translate → edit → qa
# Apply QA optional targeted fixes
# Repair optional corruption detection after editing
# Grade optional evaluation
# Restore optional document export dextalo predict remains available as a separate Google Cloud MT action,
but it is not part of the default pipeline anymore.
Direct-command workflow (optional)
# 1. Initialize workspace
dextalo init
# 2. Import TM
dextalo update-tm
# 3. Run the current audited pipeline
dextalo pipeline
# 4. Apply QA-driven revisions if needed
dextalo apply-qa
# 5. Detect and fix segment-shift problems if needed
dextalo repair
dextalo apply-repair
# 6. Quality grading
dextalo grade reference.xlf candidate.xlf Learning from human QA
# 1. Run the normal translation flow
dextalo pipeline
# 2. Restore to Excel if the reviewer wants a workbook
dextalo restore
# 3. Human QA edits the restored workbook
# Active sheet must contain: Source | Target | Edit
# Edit = human-corrected target text
# 4. Copy the reviewed workbook into qa_workbooks/
# 5. Open the interactive app
dextalo
# 6. Choose QA
# First picker: select XLIFF files in target/
# Second picker: optionally select one workbook in qa_workbooks/ # Direct CLI alternative
dextalo qa --reviewed-workbook "deliverable/bkk air batch 26 new_restored.xlsx" dextalo qa still works in learn-only mode and only saves the learned guide.
The learned QA-feedback profile is saved into linguist_profiles/,
auto-activated for the current workspace, and applied to future
dextalo edit and dextalo qa runs. It does not change
dextalo translate.
Workspace Structure
Run dextalo init in any directory to create the workspace folder structure:
cd ~/my-translation-project
dextalo init
Use Settings → Workspace Prefix if you want these folders to resolve under
a subfolder such as workspace/source and workspace/target.
| Folder | Purpose | Used by |
|---|---|---|
source/ | Place source XLIFF files here | predict, translate, analyze, analyze-content, pipeline |
target/ | Translated files and workflow reports are written here | predict, translate, edit, qa, apply-qa, repair, apply-repair, restore |
temp/ | Temporary processing files | predict, pipeline |
grading/ | Reference translations for quality scoring | grade |
glossaries/ | Terminology CSV/XLSX files | translate, edit, qa |
memories/ | Local TMX files for TM context and interactive TM auto-detect | update-tm, translate, edit, pipeline |
linguist_profiles/ | Personalization guides and learned qa_feedback_*.toml profiles | translate, edit, qa |
qa_workbooks/ | Reviewed XLSX workbooks with Source, Target, and Edit columns | interactive qa |
convert/ | Documents to convert to XLIFF | convert |
deliverable/ | Restored documents in original format | restore |
Translation Memory Database
Dextalo stores Translation Memory in PostgreSQL with support for both local instances
and Supabase. A database is required for TM features (update-tm,
TM-assisted editing, fuzzy matching).
Option A: Local PostgreSQL
TM_DB_PROVIDER=local
TM_DB_HOST=localhost
TM_DB_PORT=5432
TM_DB_NAME=predict
TM_DB_USER=postgres
TM_DB_PASSWORD=your_password Create the database and schema:
# Create database
createdb -U postgres predict
# Apply TM schema
psql -U postgres -d predict < cli/database/create_translation_memory_schema.sql Option B: Supabase
TM_DB_PROVIDER=supabase
# Full connection URL (recommended)
SUPABASE_DB_URL=postgresql://postgres.[REF]:[PASS]@aws-0-[REGION].pooler.supabase.com:5432/postgres
# Or individual settings
SUPABASE_HOST=aws-0-[REGION].pooler.supabase.com
SUPABASE_PORT=5432
SUPABASE_USER=postgres.[REF]
SUPABASE_PASSWORD=your_password
SUPABASE_DATABASE=postgres Vector Search Setup
Vector search provides 20–60× faster Translation Memory lookups compared to traditional Levenshtein matching by using semantic embeddings and HNSW approximate nearest-neighbor indexing via pgvector.
| Method | Speed (706 queries × 108K segments) |
|---|---|
| Levenshtein (legacy) | 20–60 seconds per batch |
| Vector Search | 1–3 seconds per batch |
1. Install pgvector
# macOS
brew install pgvector
# Ubuntu / Debian
sudo apt install postgresql-16-pgvector Supabase has pgvector pre-installed.
2. Run migration
psql -U postgres -d predict < cli/database/migrate_add_vector_search.sql 3. Generate embeddings
# Dry run first
python cli/database/backfill_embeddings.py --dry-run
# Generate for all TM sets
python cli/database/backfill_embeddings.py
# Specific TM set
python cli/database/backfill_embeddings.py --tm-set "My_TM_Set"
# Use local model
python cli/database/backfill_embeddings.py --provider local 4. Verify
SELECT COUNT(*) AS total,
COUNT(embedding_openai) AS with_embeddings
FROM translation_memory.tm_segments; Embedding Providers
OpenAI embeddings (recommended)
Uses text-embedding-3-small (1536 dimensions). Fast, high quality, minimal cost.
TM_EMBEDDING_PROVIDER=openai
OPENAI_API_KEY=sk-your-key-here - Cost: ~$0.11 one-time for 108K segments.
- Speed: ~10–15 minutes for initial backfill.
- Ongoing cost negligible (only new segments).
Local embeddings (free)
Uses paraphrase-multilingual-MiniLM-L12-v2 (384 dimensions). Runs locally, supports 50+ languages including English and Thai.
TM_EMBEDDING_PROVIDER=local - Cost: Free.
- Requires ~500 MB RAM.
- Speed: ~30–45 minutes for initial backfill.
TM Performance Tuning
Automatic TM set detection
Place your TMX file in memories/ and the interactive workflow can
auto-detect the relevant TM set, reducing search scope from hundreds of thousands of
segments to only the relevant set.
Apply database indexes
psql -U postgres -d predict < cli/database/optimize_tm_performance.sql Performance impact
| Metric | Before | After |
|---|---|---|
| Segments searched | 388,000+ | Only relevant TM set |
| Batch lookup (cold) | 20–60s | 2–5s |
| Batch lookup (warm cache) | — | <1s |
Additional optimizations
- Caching — up to 10,000 segments cached in memory with hit-rate monitoring.
- Batch processing — segments processed in batches of 50 to reduce database round-trips.
- Composite indexes — on (tm_set_id, source_text), GIN trigram index for fuzzy matching.
Match thresholds
| Threshold | Value |
|---|---|
| Minimum match | 75% |
| High-quality match | 85% |
| Perfect match | 100% |
Full Environment Variable Reference
Google Cloud Predict
| Variable | Description | Example |
|---|---|---|
GOOGLE_APPLICATION_CREDENTIALS | Path to service account JSON key | /path/to/key.json |
PROJECT_ID | Google Cloud project ID | 282219357710 |
LOCATION | API region | us-central1 |
MODEL_ID | Translation model | general/nmt |
AI Workflow Routing
| Variable | Description | Default |
|---|---|---|
OPENROUTER_API_KEY | OpenRouter API key for LLM access | — |
AI_MODEL | Legacy fallback model when a stage-specific model is not set | google/gemini-3-flash-preview |
AI_STYLE_GUIDE_MODEL | Model for analyze-content and pipeline style-guide generation | openai/gpt-5-mini |
AI_TRANSLATE_MODEL | Model for translate and the translation stage in pipeline | google/gemma-3-27b-it |
AI_EDITING_MODEL | Model for edit and the editing stage in pipeline | openai/gpt-5-mini |
AI_QA_MODEL | Model for qa and the QA stage in pipeline | openai/gpt-5-mini |
AI_REPAIR_MODEL | Model for repair detection | google/gemini-3.1-flash-lite-preview |
AI_STYLE_GUIDE_PROVIDER | Optional provider override for style-guide generation | — |
AI_TRANSLATE_PROVIDER | Optional provider override for translation | — |
AI_EDITING_PROVIDER | Optional provider override for editing | — |
AI_QA_PROVIDER | Optional provider override for QA | — |
AI_REPAIR_PROVIDER | Optional provider override for repair | — |
AI_DETECT_LANGUAGE_MODEL | Model used for document conversion language detection | google/gemma-3-4b-it |
AI_TOOLING_MODEL | Fast tooling model used for TM-target truncation | google/gemini-3.1-flash-lite-preview |
AI_EDITOR_TEMPERATURE | Randomness (0.0 = deterministic, 2.0 = creative) | 0.1 |
AI_EDITOR_CHUNK_SIZE | Segments per AI request | 30 |
AI_EDITOR_INCLUDE_SOURCE | Include source text in prompts | true |
AI_EDITOR_EXCLUDE_PERFECT_TM | Skip AI for 100% TM matches | false |
USE_TRAINING_SHOTS | Multi-shot prompting with examples | false |
DEBUG_PROMPTS | Print full prompt structure to console | false |
Translation Memory & Database
| Variable | Description | Default |
|---|---|---|
TM_DB_PROVIDER | local or supabase | local |
TM_DB_HOST | PostgreSQL host | localhost |
TM_DB_PORT | PostgreSQL port | 5432 |
TM_DB_NAME | Database name | predict |
TM_DB_USER | Database user | postgres |
TM_DB_PASSWORD | Database password | — |
TM_EMBEDDING_PROVIDER | openai or local | local |
TM_IGNORE_CASE | Case-insensitive TM matching | false |
TM_SOURCE_FOLDER | Folder containing TMX files | source |
External Services
| Variable | Description |
|---|---|
OPENAI_API_KEY | OpenAI key for embeddings (if using openai provider) |
HUGGINGFACE_TOKEN | Hugging Face token for COMET-KIWI model access |
EMAIL_SENDER | Sender address for email reports |
EMAIL_RECEIVER | Recipient address for email reports |
EMAIL_API_KEY | SMTP API key (Mailtrap) |
SMTP_SERVER | SMTP server hostname |
SMTP_PORT | SMTP server port |
AI Editor Configuration
The editor is part of a broader stage-specific AI workflow. Use the settings below to
tune editing behavior after you have chosen your stage models with
AI_EDITING_MODEL, AI_QA_MODEL, and related variables.
Temperature
Controls randomness. For translation editing, use low values (0.0–0.2) for consistent, accurate corrections. Higher values produce more creative but less predictable output.
AI_EDITOR_TEMPERATURE=0.1 # Recommended for translations Source text inclusion
When enabled, the AI sees both source and target text for better context. This is the recommended setting for editing, QA application, and repair-safe workflows.
AI_EDITOR_INCLUDE_SOURCE=true TM match handling
When AI_EDITOR_EXCLUDE_PERFECT_TM=true, 100% TM matches are applied directly without sending to AI. This is faster and preserves trusted TM translations.
qa_feedback_*.toml profile from
linguist_profiles/.
Glossary Settings
Place glossary files in glossaries/. Dextalo uses them across translation,
editing, and QA prompts for consistent terminology, and they can also support Google
Cloud prediction when you use dextalo predict.
# Case-insensitive matching: "ON" matches "On", "on"
GLOSSARY_IGNORE_CASE=true Troubleshooting
Python not found
Install Python 3.9 or later, ensure it is available in your terminal, and rerun the installer.
Installer or dependency setup fails
python -m pip install --upgrade pip
# Then rerun the installer from the website Command not found: dextalo
Restart your terminal after installation. On macOS or Linux, reload your shell profile if needed, then rerun the installer if the command still is not available.
# zsh
source ~/.zshrc
# bash
source ~/.bashrc Translation Memory database is not available
Check that your database is running, verify connection settings in .env, ensure the user has proper permissions, and run the schema creation script if needed.
"No embedding provider available"
Install the required package and set the environment variable:
# For OpenAI
pip install openai
# Set OPENAI_API_KEY in .env
# For local
pip install sentence-transformers
# Set TM_EMBEDDING_PROVIDER=local in .env "pgvector extension not found"
# Install pgvector
brew install pgvector # macOS
sudo apt install postgresql-16-pgvector # Ubuntu
# Enable in database
psql -U postgres -d predict -c "CREATE EXTENSION vector;" COMET model download fails
Ensure you have a HUGGINGFACE_TOKEN with read access set in your
.env. Get a token from
huggingface.co/settings/tokens.
The model (~2.66 GB) downloads on first dextalo grade run.
TM lookups are slow
Apply the database optimization script, ensure your TMX file is in source/ for automatic TM set detection, and consider enabling vector search:
psql -U postgres -d predict < cli/database/optimize_tm_performance.sql Ready to try it?