I A LITTLE INTRODUCTION

Ship today.
Proofread
tomorrow.

Quaso is an open-source tool for translating games. With a Gemini key, uploads can queue machine translations for review. Download accepted translations into your next build, then include your team's fixes in later builds.

Free & open source. Bring your own keys.

Bonjour, world!Quaso, the croissant cat, waving hello
QUASO QUEST
game.jsonlose.kicker
FR French Source

ÇA SENT LE PAIN GRILLÉ

English, one build apart.
  1. Translated by the LLMMonday’s build

    IT SMELLS LIKE TOAST

  2. Proofread by AlexFriday’s build

    YOU’RE TOAST

Both translations appear in a game build.

One line from our little example game.
SUPPORTED FORMATS i18next JSON v4 ICU MessageFormat Markdown

II WHY QUASO

Choose when
to release.

Decide which languages need proofreading before release. You can include accepted machine translations in a build and add reviewed changes in later builds.

A release after proofreading

  1. Week 1Freeze the strings and send them to translators.
  2. Weeks 2–4Translate and proofread the text.
  3. Week 5Release the reviewed languages.

Example plan: finish proofreading before release.

With Quaso

  1. MondayUpload the new strings and run a translation job.
  2. MondayCheck the results and release the completed languages.
  3. All weekYour team and community proofread, whenever suits them.
  4. FridayDownload accepted fixes for the next build.

Example plan: release checked machine translations, then proofread.

  • Keep proofread translations.

    The LLM does not replace a proofread translation. With proposals enabled, a source change can produce an update for a manager to review.

  • Check the text structure.

    LLM results must pass placeholder, plural, and length checks before they are saved. A failed result leaves the previous value in place. People still need to check meaning and tone.

  • Strict where it counts.

    Want a language fully proofread before launch day? Add quaso status --fail-on untranslated,outdated,green to your build. A matching state makes the command fail; review QA and pending counts separately.

III FROM YOUR REPOSITORY TO THE WORLD

Four steps.
From text to build.

Follow Quaso Quest from French to English. This example uses a machine translation first, then adds a person's changes in a later build.

  1. Give Quaso a home.

    Copy the deployment files, set your domain and setup key, and start Docker Compose. Create your admin account in the browser and paste in your Gemini API key. Your translation space is ready.

    your server
    # With your deployment files configured
    docker compose up -d
    Quaso app SQLite HTTPS handled by Caddy
  2. Upload and translate.

    Install the CLI in your game’s repository and upload your source files whenever the story grows. With a Gemini key and automatic translation enabled, uploads queue work for new and changed strings. Check the job result before downloading.

    src/locales/fr/*.jsonQuaso
    your game / terminal
    npm i -D @quaso-i18n/cli@main
    
    # Connect to your instance
    export QUASO_HOSTNAME=translate.yourgame.com
    export QUASO_API_KEY='your upload API key'
    
    # French in, English and German out
    npx quaso init --source fr --languages en,de
    
    # Upload, and wait while the LLM translates
    npx quaso upload --wait
  3. Download for your build.

    Download accepted translations into your game's language folders. Missing translations use source text by default; outdated translations remain included. Check the files in your game before release. The game needs no Quaso connection.

    back in your game
    npx quaso download
    
    # src/locales/en/game.json
    # src/locales/de/game.json
    # Ready for tonight’s build.
    Try the Quaso Quest walkthrough
    Quaso Quest, a pixel-art game about a croissant cat collecting butter, running with the downloaded English translations
    The example game running in English, before anyone proofread its dialogue.
  4. Proofread at your own pace.

    Your team and your community proofread in the browser, with the source, placeholders and plural forms right beside them. The LLM never overwrites their proofread work. Your next download includes accepted fixes for your build.

    • UntranslatedDownloads use source text by default.
    • TranslatedAccepted for download; not yet proofread.
    • ProofreadChecked by a person and accepted for download.
    Quaso Quest’s editor showing French game dialogue and its English translation, with placeholders preserved
    French → English, inside the real Quaso workspace.

Steps two to four repeat with every build. Put them in CI, and each release picks up whatever was translated and proofread since the last one.

Automate it in CI

IV MADE FOR SMALL TEAMS

Small team?
Big world.

Translation should feel like part of making your game. Here are six more ways Quaso keeps it that way.

  • 01

    Open source. All yours.

    MIT licensed and self-hosted. Run your own instance and change the source to fit your project.

    You pay for hosting and external services.
  • 02

    Host it your way.

    One Quaso container and a SQLite database. Run it on your own virtual machine with Docker Compose, or deploy on Cloudflare.

    Your hosting. Your budget.
  • 03

    Your LLM key. Your call.

    Bring your Gemini API key. Choose the model, write the instructions, set a monthly token budget, and pay your provider directly.

    Pay the provider directly.
  • 04

    Built for your team.

    Managers edit and proofread translations. Contributors suggest changes for review. Visitors can read source text and translations without an account.

    People give every language its voice.
  • 05

    Made for game strings.

    i18next and ICU MessageFormat, with placeholders and plural forms in JSON strings or whole Markdown documents. Choose your project’s message format in Settings → Placeholders. Check structure and length before accepting a translation.

    JSON and Markdown · i18next or ICU MessageFormat
  • 06

    Ship files. Keep your freedom.

    Translations come back as ordinary files in your repository. Your game runs on its own, with no connection to Quaso.

    Fits your build. Works in CI.

MADE FOR GAMES. AND THE PEOPLE WHO MAKE THEM.

Your next player
is out there.

Ship their language with your next build. Make it better with every one after.