Skip to content

r2-d2

Automated localization drift detector for mobile and web apps.

Core trick

Pairs source-locale and target-locale screenshots and asks Gemini vision to flag truncation, overflow, and untranslated text.

Tags

Description

Automated localization drift detector for mobile and web apps. Prism compares screenshots across locales using Gemini vision to catch text truncation, layout shifts, untranslated strings, RTL issues, and other localization bugs before your users do.
raunaksingwi/prism★ 00 forksPythonCreated Feb 14, 2026 · last push May 19, 2026

README excerpt

# Prism

Automated localization drift detector for mobile and web apps. Prism compares screenshots across locales using Gemini vision to catch text truncation, layout shifts, untranslated strings, RTL issues, and other localization bugs before your users do.

## What It Detects

- **Text truncation** — translated text cut off where the source fits
- **Text overflow/overlap** — strings spilling out of containers
- **Layout shift** — elements repositioned due to string length changes
- **Untranslated strings** — text still in the source language
- **Clipped elements** — buttons/icons cropped by text expansion
- **RTL issues** — mirroring or directionality problems
- **Missing content** — UI elements present in source but absent in target

## Quick Start

### 1. Install

```bash
# Clone the repo
git clone https://github.com/raunaksingwi/prism.git
cd prism

# Install dependencies (requires Python 3.12+)
uv sync

# Install Playwright browsers (needed for web crawling)
uv run playwright install chromium
```

### 2. Set your API key

```bash
# Create a .env file (or export directly)
echo 'GEMINI_API_KEY=your-key-here' > .env
```

Get a Gemini API key from [Google AI Studio](https://aistudio.google.com/apikey).

### 3. Run

Prism has three modes: **compare two screenshots**, **crawl a website**, or **analyze Firebase Test Lab results**.

## Usage

### Compare Two Screenshots

Compare a source (original language) screenshot against a target (localized) screenshot:

```bash
uv run pyth

Team