Translate TSV
Translation Files

TSV (Tab-Separated Values) uses tabs instead of commas, so translations with punctuation, quotes or addresses import cleanly with no escaping. Upload your file, auto-translate, and export it back.

No credit card required14-day free trialTracking-free service
translations.tsv
key english spanish french welcome Welcome! ¡Bienvenido! Bienvenue! login.title Sign In Iniciar Sesión Se connecter address.example 123 Main St, Suite 100 Calle Principal 123 123 Rue Principale
key	english	spanish	french
welcome	Welcome!	¡Bienvenido!	Bienvenue!
login.title	Sign In	Iniciar Sesión	Se connecter
address.example	123 Main St, Suite 100	Calle Principal 123	123 Rue Principale

Why teams use TSV for translations

A TSV file must start with a header row, where the first column is always key, followed by one column per language. Every value is separated by an actual tab character, and no other separator is supported, which is exactly why TSV avoids CSV's escaping rules altogether.

Commas, quotes and addresses can sit in a value without any quoting, since tabs rarely appear in human-readable text. That makes TSV a cleaner fit than CSV once your content gets messy.

Same content, TSV vs CSV
# TSV: no escaping needed message He said "Welcome!" # CSV: requires quoting "message","He said ""Welcome!"""
# TSV: no escaping needed
message	He said "Welcome!"

# CSV: requires quoting
"message","He said ""Welcome!"""

Beyond key and value

What SimpleLocalize keeps from your TSV files

Optional description column

Read automatically as a code description for translators, no extra setup needed.

Optional namespace column

Group related keys with a namespace column, matching how your project organizes translations.

No escaping rules

Commas, quotes and apostrophes in a value need no special handling, unlike CSV.

key column required

The first column must be named key. Language columns can follow in any order.

End-to-end workflow

Translate a TSV file end to end

Upload your TSV file, run auto-translation across every language, and download it back in the same tab-separated structure.

Terminal
simplelocalize upload \ --apiKey PROJECT_API_KEY \ --uploadFormat tsv \ --uploadPath ./translations.tsv
simplelocalize upload \
  --apiKey PROJECT_API_KEY \
  --uploadFormat tsv \
  --uploadPath ./translations.tsv

Upload your TSV file

1
Push translations.tsv to SimpleLocalize with the CLI. The key column and any optional description or namespace columns are recognized automatically.
Terminal
simplelocalize upload \ --apiKey PROJECT_API_KEY \ --uploadFormat tsv \ --uploadPath ./translations.tsv \ --uploadOptions UPDATE_DESCRIPTIONS
simplelocalize upload \
  --apiKey PROJECT_API_KEY \
  --uploadFormat tsv \
  --uploadPath ./translations.tsv \
  --uploadOptions UPDATE_DESCRIPTIONS

Descriptions land as code context

2
A description column is imported as a code description by default. Add UPDATE_DESCRIPTIONS to overwrite a translator's own notes instead.
translations.tsv (auto-translated)
key english spanish welcome Welcome! ¡Bienvenido! login.title Sign In Iniciar Sesión
key	english	spanish
welcome	Welcome!	¡Bienvenido!
login.title	Sign In	Iniciar Sesión

Auto-translate every language

3
Run DeepL, Google Translate, OpenAI, Claude or Gemini across every target language, then review in the editor before anything is marked ready.
Terminal
simplelocalize download \ --apiKey PROJECT_API_KEY \ --downloadFormat tsv \ --downloadPath ./translations.tsv
simplelocalize download \
  --apiKey PROJECT_API_KEY \
  --downloadFormat tsv \
  --downloadPath ./translations.tsv

Download back to TSV

4
Export returns a tab-separated file with the same column structure, ready to open in a spreadsheet or feed back into your build.

Choosing between TSV and CSV

Reach for TSV when your content includes commas, quoted dialogue or addresses, or when you are exporting from a database or analytics tool that defaults to tab-delimited output.

Reach for CSV when you need maximum compatibility with business tools and translators who expect a comma-separated file by default, and your content itself is plain text.

Column layout
key english description namespace welcome Welcome! Main welcome message home login.title Sign In Login page title auth
key	english	description	namespace
welcome	Welcome!	Main welcome message	home
login.title	Sign In	Login page title	auth

For developers

A localization platform,
not just a spreadsheet parser

TSV is a fine starting point. SimpleLocalize gives your team a real editor, review workflow and automation around it.

Optional description column

A description column is read automatically as translator context, no extra setup needed.

Optional namespace column

Group related keys with a namespace column, matching how your project organizes translations.

AI auto-translation

Translate new and changed rows with DeepL, Google Translate, OpenAI, Claude or Gemini.

CLI and REST API

Upload and download TSV files from the CLI, or automate the same logic through the REST API.

SimpleLocalize connects your code to professional translations

Every spreadsheet tool

Where TSV translations are used

Any tool that can open a plain text table can open a TSV file.

Microsoft Excel

Microsoft Excel

Google Sheets

Google Sheets

LibreOffice Calc

LibreOffice Calc

Apple Numbers

Apple Numbers

Start translating TSV files

  • No escaping rules for commas, quotes or addresses
  • Optional description and namespace columns, read automatically
  • Auto-translation with DeepL, Google, OpenAI, Claude and Gemini
Start for free
No credit card required5-minute setup
"The product
and support
are fantastic."
Laars Buur|CTO
"The support is
blazing fast,
thank you Jakub!"
Stefan|Developer
"Interface that
makes any dev
feel at home!"
Dario De Cianni|CTO
"Excellent app,
saves my time
and money"
Dmitry Melnik|Developer

Frequently asked questions about TSV files

What's the difference between TSV and CSV?

TSV uses tab characters to separate values instead of commas, so text containing commas, quotes or other punctuation doesn't need escaping the way CSV requires.

What does the header row need to look like?

The first column must be named key. Every other column is a language code, in any order, and only tabs are recognized as a separator.

Does SimpleLocalize support description and namespace columns?

Yes. Both are optional columns you can add to your TSV file, read automatically as translator context and key grouping.

Will re-uploading my file overwrite a translator's notes?

Not by default. A description column is uploaded as a code description and won't overwrite what a translator wrote manually, unless you add the UPDATE_DESCRIPTIONS upload option.

Can I convert TSV to another format?

Yes. Upload a TSV file and export to JSON, YAML, Excel, or any other supported format from the same project.