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.
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 PrincipaleA 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.
# TSV: no escaping needed
message He said "Welcome!"
# CSV: requires quoting
"message","He said ""Welcome!"""Beyond key and value
Read automatically as a code description for translators, no extra setup needed.
Group related keys with a namespace column, matching how your project organizes translations.
Commas, quotes and apostrophes in a value need no special handling, unlike CSV.
The first column must be named key. Language columns can follow in any order.
End-to-end workflow
Upload your TSV file, run auto-translation across every language, and download it back in the same tab-separated structure.
simplelocalize upload \
--apiKey PROJECT_API_KEY \
--uploadFormat tsv \
--uploadPath ./translations.tsvtranslations.tsv to SimpleLocalize with the CLI. The key column and any optional description or namespace columns are recognized automatically.simplelocalize upload \
--apiKey PROJECT_API_KEY \
--uploadFormat tsv \
--uploadPath ./translations.tsv \
--uploadOptions UPDATE_DESCRIPTIONSUPDATE_DESCRIPTIONS to overwrite a translator's own notes instead.key english spanish
welcome Welcome! ¡Bienvenido!
login.title Sign In Iniciar Sesiónsimplelocalize download \
--apiKey PROJECT_API_KEY \
--downloadFormat tsv \
--downloadPath ./translations.tsvReach 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.
key english description namespace
welcome Welcome! Main welcome message home
login.title Sign In Login page title authFor developers
TSV is a fine starting point. SimpleLocalize gives your team a real editor, review workflow and automation around it.
A description column is read automatically as translator context, no extra setup needed.
Group related keys with a namespace column, matching how your project organizes translations.
Translate new and changed rows with DeepL, Google Translate, OpenAI, Claude or Gemini.
Upload and download TSV files from the CLI, or automate the same logic through the REST API.

Every spreadsheet tool
Any tool that can open a plain text table can open a TSV file.
More conversions
Free online converter, no account required. Upload a TSV file and download it in the format you need.
See the latest news from our blog, including product updates, tutorials, and more.

Stop treating translation as a manual step before release. Learn how to trigger AI translations automatically on every GitHub push, using SimpleLocalize CLI or the GitHub App.

Machine translation often breaks UI strings through missing context, character limits, and grammar rules other languages don't follow. Here's why, and how to fix it.

Why context is the single biggest factor in AI translation quality, and how to structure project context, key descriptions, and glossaries for accurate results.

Learn how to manage Android string resources, plurals, and arrays. A technical guide to localizing Android XML files with SimpleLocalize for seamless translation workflows.

Learn how to internationalize and localize Vue 3 and Nuxt apps with vue-i18n. Covers setup, translation files, pluralization, locale detection, lazy loading, CI/CD integration, and SimpleLocalize workflows.

Everything developers need to know about .xcstrings string catalogs. Covers JSON schema, extractionState and translationState flags, pluralization, device variants, universal placeholders, Git merge conflict strategies, Xcode 26 AI comments, and SimpleLocalize integration.
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.
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.
Yes. Both are optional columns you can add to your TSV file, read automatically as translator context and key grouping.
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.
Yes. Upload a TSV file and export to JSON, YAML, Excel, or any other supported format from the same project.