dejapanify

Stop retyping
Japanese forms.

Japanese web forms accept either half-width (半角) or full-width (全角) characters, almost never both — and they rarely tell you which. dejapanify reads what each field actually wants and converts your text to match.

Open source · MIT · No account · No data collection · ~18 KB

The problem

The same character exists twice in Unicode. A field that wants one will reject the other, and the error message looks identical to what you typed.

What you typed · 入力した値

フリガナ
やまだ たろう
郵便番号
150-0001
メールアドレス
example@mail.jp

✕ エラー: 全角カタカナで入力してください

→

What dejapanify sends · 変換後

フリガナ
ヤマダ タロウ
郵便番号
1500001
メールアドレス
example@mail.jp

✓ そのまま送信できます

Try it right here

This is the extension's actual conversion engine, running on this page — not a recording. Fill the fields, then press Tab or click away from one. Each field explains what it decided and why.

Tab out of a field to convert it.
全角カタカナでご入力ください
半角数字7桁・ハイフンなしでご入力ください
半角英数字でご入力ください
例のとおりハイフンを付けてご入力ください
例のとおり3桁ごとのカンマを付けてご入力ください
パスポートと同じ表記で、大文字でご入力ください
半角カタカナでご入力ください(銀行システムの都合により)
(この欄には幅の指定がありません)

That last field is deliberate. Nothing on the page says which width it wants, so the extension leaves it alone rather than guessing.

It reads, it doesn't guess

Japanese forms usually state their requirement — beside the field, or in a pattern attribute. The extension collects those signals, weighs them, and acts only when they're conclusive.

SignalExampleTrust
pattern attributepattern="^[0-9]{7}$"Highest
Printed instruction「半角数字で入力してください」Very high
autocompleteautocomplete="postal-code"High
type / inputmodetype="tel"Medium
Field name and labelname="name_kana"Supporting

Waits for your IME

Never writes while a composition is in progress, so it can't corrupt what you're typing.

Undo always works

A one-click undo on every conversion, and Ctrl+Z still behaves normally.

Never touches passwords or payment details

Password fields, card numbers, security codes and bank account numbers are left exactly as you typed them.

Install

Looks like you're using your browser.

Firefox One click

Reviewed and approved by Mozilla. Install it from Firefox Add-ons, and updates arrive automatically.

Add to Firefox

Requires Firefox 142 or newer.

Microsoft Edge In review

Submitted to Microsoft Edge Add-ons and waiting for certification, which takes up to seven business days. Until it's approved, Edge can load the extension the same way as Chrome — follow the instructions below, using edge://extensions.

Chrome, Brave, Vivaldi, Opera Manual

Chrome only allows one-click installs from the Chrome Web Store. Our listing there has been submitted and is in review. Until it's approved, these browsers need a manual install. It takes about two minutes and you only do it once.

  1. Download the …-chrome.zip file from the latest release and unzip it somewhere permanent. Keep the folder: deleting it uninstalls the extension.
  2. Open chrome://extensions (Brave: brave://extensions).
  3. Turn on Developer mode, top right.
  4. Click Load unpacked and choose the unzipped folder.

Chrome will show a "Disable developer mode extensions" warning on startup. That's Chrome's standard notice for anything not installed from its store; you can dismiss it.

Another browser

dejapanify needs a browser that supports WebExtensions — Firefox, or a Chromium browser like Chrome, Edge, Brave, Vivaldi or Opera. Safari is not supported.

Checking that it works

npm run demo

This serves the test form at http://127.0.0.1:8123/demo.html. The page tells you at the top whether it can see the extension.

Use that address rather than opening public/demo.html directly. Browsers do not run extensions on file:// pages — Firefox will not inject a content script there at all, and Chrome only does so if you enable Allow access to file URLs on the extension's details page. Opened as a local file, the demo looks broken even when everything is working.

It collects nothing

Not a reassurance — a description of the code. The extension contains no fetch, no XMLHttpRequest, no WebSocket and no remote scripts. There is nowhere for anything to go.

  • No network requests
  • No analytics
  • No account
  • No telemetry
  • No remote code
  • Reproducible from source

Full privacy policy: English · 日本語 · Read the source

This isn't only a promise. The test suite scans the built package for fetch, XMLHttpRequest, WebSocket and sendBeacon on every build, so adding any would fail CI rather than quietly contradict this page.

Questions

Will it change what I meant to type?

No. It converts character width, never meaning. 山田 never becomes ヤマダ. A field it cannot confidently identify is left untouched.

Does it interfere with my IME?

No. It never writes to a field while a composition is in progress, and only converts once you've finished and moved on.

What if it gets a field wrong?

Every conversion shows a one-click undo, and Ctrl+Z works normally. You can also disable it per site, or turn off individual conversion types in the settings. If a site is consistently wrong, please report it — that's the most useful contribution.

Why does it ask to read data on all websites?

Japanese sites aren't confined to one domain, so the extension can't know in advance which pages have Japanese forms. It does nothing unless a page looks Japanese and a field identifies the width it needs. It reads and rewrites form values only, and sends nothing anywhere.

Does it work on mobile?

Firefox for Android supports extensions, so it should. It hasn't been tested there yet. iOS is not supported.