Skip to content

Latest commit

 

History

61 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Docusign Pangæa

CI coverage License: MIT npm downloads: @pangaea-g11n/core Node.js Version PRs Welcome

A monorepo of tools for detecting globalization and internationalization (i18n) issues in web applications. Provides a Chrome DevTools extension for manual inspection and a Playwright plugin for automated CI auditing.


Packages

Package Name Description
packages/core @pangaea-g11n/core Analyzer engine — runs analyzers and produces audit reports
packages/playwright-plugin @pangaea-g11n/playwright Playwright plugin for running audits in E2E tests
packages/devtools-extension @pangaea-g11n/extension (private) Chrome DevTools extension for interactive browser auditing
packages/analyzers-e2e-test @pangaea-g11n/analyzers-e2e-test (private) E2E smoke tests for the analyzers themselves

What Gets Detected

Analyzer What It Checks
RTLAnalyzer Missing dir attributes, hardcoded text directions, improper RTL styling
EncodingAnalyzer Mojibake patterns from UTF-8 → Windows-1252, Shift_JIS, and EUC-JP mismatches
LayoutStabilityAnalyzer Content overflow (self-overflow and parent-overflow) that breaks when text expands
IMEAnalyzer Input fields with keyboard handlers that are missing an event.isComposing guard, which breaks CJK input composition
LanguageAnalyzer Text content or links whose detected language does not match the page's declared lang attribute
CollationAnalyzer List, table, and select elements whose items are not sorted correctly for the page locale

Prerequisites

  • Node.js 22+ (see .node-version / .nvmrc)
  • Yarn (Corepack) — enabled automatically via .yarnrc.yml

Getting Started

# Clone the repo
git clone https://github.com/docusign/pangaea.git
cd pangaea

# Install dependencies
yarn install

# Build all packages
yarn build

Chrome DevTools Extension

The extension lets you manually audit any page you have open in Chrome without writing any test code.

Load the Extension

  1. Build the extension:

    yarn build
  2. Open Chrome and navigate to chrome://extensions/

  3. Enable Developer mode (toggle in the top-right corner)

  4. Click Load unpacked and select packages/devtools-extension/dist

  5. Open Chrome DevTools (F12) and look for the Docusign Pangæa tab

Run an Audit

  1. Navigate to the page you want to inspect
  2. Open DevTools → Docusign Pangæa tab
  3. Configure the analyzers you want to run and click Run Audit
  4. Click on any issue in the report to highlight the offending element on the page
  5. Optionally export the report as a PDF

Playwright Plugin

Use @pangaea-g11n/playwright to add globalization checks directly into your Playwright E2E test suite.

Install

Add it to your project:

yarn add @pangaea-g11n/playwright

Usage

Import runAudit and run it against a page inside a test:

import { test, expect } from '@playwright/test';
import { runAudit } from '@pangaea-g11n/playwright';

test('passes the globalization audit', async ({ page }) => {
  await page.goto('https://example.com');

  const result = await runAudit({
    page,
    target: { name: 'Homepage', path: '/' },
    thresholds: { globalizationScore: 70 },
  });

  expect(result.globalScore).toBeGreaterThanOrEqual(70);
});

See the plugin README for per-analyzer thresholds, result artifacts, and reporter configuration.


Development

All commands run from the repo root and use Turborepo to run tasks in parallel across packages.

yarn build            # Build all packages
yarn test             # Run all unit tests
yarn test:coverage    # Run tests with coverage
yarn lint             # Lint all packages
yarn format           # Auto-format all files
yarn format:check     # Check formatting without writing
yarn check-types      # TypeScript type-check all packages
yarn clean            # Delete all build outputs and node_modules

Contributing

Contributions are welcome. See CONTRIBUTING.md for the development workflow, coding standards, and how to open issues and pull requests.

Security

To report a security vulnerability, please follow the process in SECURITY.md. Do not open a public issue for security reports.

Community

Participation in this project is governed by our Code of Conduct.

License

MIT © Docusign, Inc.

About

Tools for catching i18n and globalization bugs in web apps, with a Chrome DevTools extension and a Playwright plugin for CI.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages