LogoTransi-Store
DocsAPI
PricingLogin

User Guide — Transi-Store

Learn how to manage your translations with Transi-Store.

Getting Started

Transi-Store is an open-source translation management platform for teams. It lets you manage all your translation keys in one place, collaborate with your team, and export translations in multiple formats.

Create your organization

When you first log in, you will be prompted to create an organization. An organization is the top-level container for all your projects and team members.

  1. Click Get Started on the homepage and sign in with GitHub or Google.
  2. Enter your organization name and slug (used in URLs).
  3. You are now the owner of your organization.

Create a project

A project holds all the translation keys for a specific application or service.

  1. From your organization dashboard, click New project.
  2. Enter a name and slug for your project.
  3. Choose the source locale (the language you write keys in, e.g. en).
  4. Add target locales — the languages you want to translate into (e.g. fr, de, es).

Managing Translations

transi-store.com/orgs/acme/projects/webapp/translations

Key nameDefault translationENTranslationsActions

Save

3/3

100%

FRDEES

Cancel

2/3

67%

FRDE

Checkout

1/3

33%

FR

Confirm order

0/3

0%

The translations editor is the heart of Transi-Store. Each row represents a translation key with its value in every locale.

Adding a key

  1. Open your project and go to the Translations tab.
  2. Click Add key and enter the key name (e.g. checkout.confirm_button).
  3. Enter the value for the source locale.
  4. Add translations for each target locale.

ICU Message Format

Transi-Store supports ICU message format for pluralization, gender, and variable interpolation:

You have {count, plural, one {# message} other {# messages}}.

The built-in editor validates your ICU syntax in real time and provides a live preview where you can fill in variable values to see the rendered output.

transi-store.com/orgs/acme/projects/webapp/keys/42

notifications.inbox_count

Pluralization with variable interpolation

EN

Default
Hello {name}, you have {count, plural, one {# new message} other {# new messages}}.

FR

Detected variables:

count
name

Translation preview

Bonjour John, vous avez 5 nouveaux messages.

Searching and filtering

Use the search bar to filter keys by name or value. Below the search bar, two additional controls let you refine the view:

  • Language — choose which project language's translation is shown in the 'Selected translation' column. Defaults to the project's default language.
  • Show — filter the key list to one of:
    • All — every key in the file
    • Missing — keys that have no translation for the selected language
    • Fuzzy — keys whose translation is marked as uncertain (flagged for review)

Translating Markdown / MDX documents (two-side mode)

Some content is too long-form for a key/value table — product pages, guides, release notes. Whenever a project file uses one of the document formats (.md, .markdown, .mdx), transi-store opens it in a dedicated two-side editor instead of the regular translations table.

transi-store.com/orgs/acme/projects/docs/translations?fileId=12

Saved

Layout at a glance

  • Two full-width editors, one per language, with markdown syntax highlighting (light & dark themes).
  • Free language picker on each side — translate en → fr, compare fr ↔ es, or any other pair you have configured.
  • Center action bar that operates on the section your cursor is in.

Section alignment

The document is split into sections by heading (and fenced code blocks), and each section is keyed by its position in the heading tree — not by its text. As a result:

  • Headings can be fully translated on each side: the editor still pairs them up correctly.
  • Moving the cursor on one side scrolls the other side and briefly highlights the counterpart section.
  • A section that exists on one side but not the other (you haven't translated it yet, or you added a heading in only one language) is flagged as unmatched in the badge near the language picker. The down-arrow button jumps to the next unmatched section.

Center action bar

IconAction
Copy sectionCopy the current section's source to the other side.
Copy documentCopy the entire document to the other side.
AI translate sectionGenerate AI suggestions for the current section, with the existing target draft used as a tone reference.
AI translate documentTranslate the full document with AI in one shot.
Mark fuzzyFlag the current section as needing review. The flag is stable across heading translation and only cleared when you toggle it back or run AI translation.
Next unmatchedJump to the next section without a counterpart.
Swap sidesSwap the two languages.

Saving and concurrency

Every change is auto-saved (debounced) per side. If two browser tabs edit the same document at the same time, the second save is rejected with a clear message and you are prompted to reload — your work is never overwritten silently.

Tip: sectional fuzzy flags and "last AI translated" timestamps are stored independently from the document body, so they survive heading translation. They are dropped only when the structure of the section itself changes (for example, you delete the heading entirely).

Branch Management

transi-store.com/orgs/acme/projects/webapp/branches

feature/add-checkout-translations

Open

New keys for the checkout flow

12 keysEdit
5 keys2 deletionsEdit

release/v2.1.0

Merged

Branches let you prepare sets of translation changes without affecting the main project until you are ready to merge. This workflow mirrors how developers use Git branches for code.

How branches work

A branch is an isolated workspace where you can:

  • Add new translation keys
  • Delete keys (a deletion is staged and only applied when the branch is merged)

The main project remains unchanged until you merge the branch.

Creating a branch

  1. Go to your project and open the Branches tab.
  2. Click New branch.
  3. Give it a descriptive name (e.g. feature/checkout-flow or release/v2.0).
  4. You now have an isolated workspace to add keys or stage deletions.

Working on a branch

When you open a branch, you can add new translation keys or stage deletions. All changes are scoped to the branch and do not affect the main project.

The branch detail page shows:

  • Keys count — how many keys have been added or modified in this branch
  • Deletions count — how many keys are staged for deletion

Merging a branch

Once your translation work is ready:

  1. Open the branch and click Merge branch.
  2. A merge preview shows all keys that will be added and all deletions that will be applied to the main project.
  3. If there are conflicts (a key was modified both on the branch and in the main project after the branch was created), the merge will be blocked and the conflicting keys will be listed.
  4. Resolve conflicts by editing the relevant keys, then retry the merge.
  5. After a successful merge, the branch is marked as merged and becomes read-only.

Best practices

  • Use one branch per feature or release to keep changes isolated.
  • Name branches after the feature they relate to (e.g. feature/onboarding-flow).
  • Merge branches promptly to avoid long-lived divergence.

Import and Export

Exporting translations

Go to Import / Export in your project and choose the format:

FormatExtensionNotes
JSON.jsonFlat or nested key structure
XLIFF.xliffIndustry-standard XML format
YAML.yamlPopular in Ruby on Rails
CSV.csvSpreadsheet-friendly
PO.poGNU gettext format
Markdown.md, .markdownLong-form document, edited in two-side mode
MDX.mdxMarkdown + JSX, edited in two-side mode

You can also export via the REST API using your organization's API key. First, list the project's files to get their IDs:

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://transi-store.com/api/orgs/acme/projects/webapp"

Then export a given file for a given locale:

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://transi-store.com/api/orgs/acme/projects/webapp/files/1/translations?locale=fr&format=json"

Importing translations

  1. Go to Import / Export and select your file.
  2. Choose an import strategy:
    • Overwrite — replace existing translations with values from the file
    • Skip — keep existing translations; only add keys that do not exist yet
  3. Click Import to apply changes.

AI Translations

Transi-Store can suggest translations using AI (powered by Google Gemini or OpenAI).

To enable AI translations, configure your AI provider in Organization Settings → AI.

Once configured, an AI suggest button appears in each translation cell. Click it to generate a suggestion based on the source locale value and the context of surrounding keys.

transi-store.com/orgs/acme/projects/webapp/keys/37

Translation suggestions

FR

Generated by Google Gemini (gemini-2.0-flash)

Confirmer la commande

Confidence:95%

Standard commercial term used by the majority of French online stores.

Valider ma commande

Confidence:88%

More personal and engaging phrasing, very common in e-commerce.

Passer la commande

Confidence:74%

Idiomatic expression that emphasises the action rather than the confirmation.

Click a suggestion to use it

Note: AI suggestions are a starting point — always review them before publishing.

Team Collaboration

Inviting members

  1. Go to your organization and open the Members tab.
  2. Click Invite member and enter their email or share the invite link.
  3. The invited user receives access to all projects within the organization.

Roles

RolePermissions
OwnerFull access including billing and member management
MemberCan create/edit projects, keys, and branches