No italics, no spaces, no あなた: what Japanese taught us about localization
We localized Transept into Japanese in a day and thought ten earlier languages had prepared us. They hadn’t. Fake italics, a space two style standards disagree on, words that mean something else in Japanese, a katakana name with two spellings, and why our assistant must never sound like an anime heroine.

On this page
In July we localized Transept into ten languages in one weekend, and I came out of it feeling like I’d seen everything: four plural forms, gendered politeness, a plural that exists only at one million. So when we decided to add Japanese (we’re about to support manga translation, and Japanese writers translating their own work into English are exactly who Transept is for), I expected a quick, familiar job.
It was quick. In one day the app got all 4,357 of its strings in Japanese, and the site got its pages, the help center, the journal and the legal pages. It wasn’t familiar at all. Japanese has a single plural form, so the grammar tour from last time had nothing to offer. Instead it went after things I had never thought of as language problems: what a font can do, where a space goes, and which English words look harmless in Japanese and aren’t.
Your browser will fake an italic
The first thing I noticed on the Japanese site was that our headlines were leaning.
Our design uses italics for emphasis: pull quotes, accent words in headings, the titles in Vision, the book-like reading view. Japanese fonts have no italic face. When CSS asks for one anyway, the browser doesn’t refuse; it takes the upright glyphs and slants them. That slant is called synthetic oblique, and on kana and kanji it looks like a printing error.

Three ways a Western stylesheet breaks Japanese. 1: a fake italic. 2: letter-spacing meant for uppercase Latin labels. 3: a space between a number and its counter.
The fix is one CSS rule: for :lang(ja), turn off the browser’s style synthesis and set everything upright. Japanese marks emphasis with 「brackets」, bold, or dots above the characters (bōten), never with a slant. The same pass caught the second pair in the picture. Our small uppercase labels are tracked wide, which makes sense for Latin capitals. Applied to kana, the letter-spacing turns カード登録 (“add a card”) into something that reads like a stutter.
Chinese adds a space, Japanese never types one
Last time I described the thin space Chinese puts between Han characters and Latin letters: 使用 Transept 翻译. I assumed Japanese would want the same. Then the standards disagreed with each other. Microsoft’s Japanese style guide types a space (「Word を使用」). The Japan Translation Federation’s guide forbids one in its rule number ten: no space between full-width and half-width characters. We followed the federation, the standard Japanese translators work to, so it’s 「Transeptで翻訳」, 「10MB」, 「5件」, all written flush.
Two languages that share much of a writing system disagree on a space. Again, the family tree tells you nothing.
| Chinese (zh) | Japanese (ja) | |
|---|---|---|
| Space between Han and Latin | Yes: 使用 Transept 翻译 | No: Transeptで翻訳 |
| Space between a number and its unit | Yes: 5 个文档 | No: 5件 |
| Italics | No | No |
| Plural forms | 1 | 1 |
| Quotation marks | “” | 「」, and 『』 for titles |
The space still looks good in Japanese if you let the browser draw it. CSS has text-autospace, which adds a hairline gap between scripts at render time, so no character ever ends up in the string. We turned it on for Japanese and stopped typing spaces.
The space we couldn’t stop came from somewhere else. JavaScript’s own date formatter, Intl.RelativeTimeFormat, returns 「6 日前」 (“6 days ago”) with a space between the number and the counter. That space comes from the locale data itself, and Japanese typesetting doesn’t use it, so our code strips it for Japanese. Every count assembled in code got the same treatment: 「5件」, 「1分35秒」.
Words that mean something else in Japanese
English loanwords are everywhere in Japanese software, and that is exactly how they catch you. Each row below is the obvious Japanese for an English word, and each one says something else to a Japanese reader.
| English | The obvious Japanese | What a Japanese reader hears | What we use |
|---|---|---|---|
| word (count) | ワード | Microsoft Word | 語 for English length, 文字 for Japanese |
| credit card | クレジットカード | a card for buying our credits, because クレジット is our billing unit | カード |
| proofread | 校閲 | fact-checking | 校正 |
| proofread (your own text) | 推敲 | an author polishing their own prose | 校正 |
| you | あなた | cold, a little accusing, in an interface | leave the subject out |
| Free! in a page title | 【無料】 | an affiliate blog | no brackets |
The billing one mattered most. Transept counts English by words, but Japanese text has no spaces between words, so Japanese source is billed per character, like Chinese. 「語」 and 「文字」 aren’t stylistic variants here; they are two units of measurement, and the pricing page has to use them correctly.
Microsoft settled my favorite rule of the bunch in 2008, a rule I’d never had reason to know: a katakana word from English that ends in -er keeps its long-vowel mark (ユーザー, user), while one ending in -y drops it once it’s four kana or longer (メモリ, memory). Translation memory is 翻訳メモリ, not 翻訳メモリー, and a native reader notices either way.
Literess must not sound like an anime heroine
Literess, our in-app assistant, is a woman, and in Japanese that raises a question English never asks: how does she end her sentences?
Japanese fiction has role language (役割語): speech patterns that mark a character as a type. The “feminine” sentence endings 〜わ, 〜のよ and 〜かしら are the classic example. Linguists trace them back to a Meiji-era stereotype, and real women in Japan rarely use them today. They survive in fiction, above all in translated fiction, which is a large part of what a translation model has read. Ask a model to voice a cheerful female assistant in Japanese and those endings are the nearest thing to hand, so role language was on our review checklist before the first Japanese line shipped. An assistant who ends her sentences with 〜わ sounds like a dubbed cartoon explaining your translation memory.
Her Japanese voice now is warm, polite です・ます with the gender-neutral endings ね and よ in moderation, わたし for “I” (usually left out), and the user’s name with さん, never あなた. Keeping her personality without the costume is mostly a job for the style sheet and for a reviewer who hears the difference.
A katakana name has no spelling
For the Japanese pages we flipped our interactive demo around: Japanese writers want to translate from Japanese, so the demo now shows a Japanese novel translated into English, with the whole app in Japanese. I wrote a short original story for it, 『ひとり部屋のはずだった』 (It Was Supposed to Be a Single): a student finally gets a dorm room of her own, and at 11:47 PM a key turns in the lock.

The demo on the Japanese pages. Block #4’s English is deliberately stiff, and the memory fixes it.
The new roommate is an exchange student from Milan called ソフィア, and that name is the best glossary example I’ve found. Katakana writes sounds, not spellings, so ソフィア is Sofia or Sophia, and nothing in the Japanese tells you which. A translator who knows the character is Italian writes Sofia. A model left to guess picks one, and may pick the other in chapter 12. So the glossary pins it: ソフィア → Sofia, with Sophia listed as forbidden. Every translated manga with a foreign character has this problem, usually dozens of times.
The story also carries the classic Japanese-to-English stiffness. 「鍵の回る音がした」 comes out word for word as “there was the sound of a key turning”. It’s correct English that no novelist would write. The memory holds an earlier fix from chapter 2 (“a key turned in the lock”), and one click applies it. Go and break it yourself on the Japanese homepage.
Katakana also made our interface longer, which I didn’t expect after Chinese. “Documents” is 文档 in Chinese, two characters. In Japanese it’s ドキュメント, six, and a tab that held “Documents” comfortably wrapped it onto two lines. Japanese line breaking is its own topic: Chrome’s phrase-aware breaking keeps a compound such as ドキュメント全体 together, so when it doesn’t fit we give the browser a hint, an invisible zero-width space exactly where a Japanese reader would break it.
The native pass found the scary ones
As with every language, the machine translated everything and then a native-level review read everything, with every fix written back into Transept so the translation memory learns it. On Japanese that review made about 3,300 changes: roughly 2,150 on the site, 900 in the app, and 251 more so the help center names every button exactly the way the app does.
Most were style. Nearly 200 changed the meaning, and they’re the reason this pass exists. Japanese machine translation fails politely: the output is fluent, perfectly formal, and confident. Here’s what it did to us:
- softened English hedges became firm promises;
- a consent sentence appeared at checkout that our English never says;
- a refund condition came out stricter than our actual policy;
- a “€2,500 plan” showed up that we have never sold.
None of it looked wrong. All of it would have been read as a promise. On trust pages, Japanese is the language where I would least want to ship unreviewed machine output.
Every language is a census
My last lesson repeats the one from July, from a new angle. When we captured the Japanese screenshots for the landing pages (the real app, in Japanese, translating Japanese into English), the camera found English the translators never saw:
- comment times (“5m”, “just now”) hardcoded in English;
- workflows started from a template carrying their English name, so a Japanese user saw “Novel or book” next to 小説・書籍;
- the share dialog built its sentence from a slot, and the slot was filled with the English word document: 「このdocumentへのアクセス権を管理」.
The last one was wrong in every language, and it couldn’t have been right in most of them: Ukrainian, Polish and Czech need that noun in a grammatical case, which a slot holding a raw English word can’t give them. It sat unnoticed until a screenshot put it in front of us. That sentence is now three whole sentences, one per kind of item, and all three bugs are fixed in every language.
Every new language makes every older one better. That’s the part of localization I’d never have predicted, and why I’m looking forward to the next one.
The author

Co-founder of Transept. Three degrees in English Language and Literature — Kyiv, Ostrava, and a year in Salzburg — and a Ukrainian native who lives most of her writing life in English. Came into AI as a prompt engineer, then product and lifecycle marketing. She writes semi-fictional stories about real people, and keeps circling the question of what gets lost between languages.




