The data table is the densest, most-used surface in most B2B SaaS products — and the one teams localize last. Column-header concision and wrapping, sort and filter control copy, the 絞り込み vs フィルター decision, bulk-action button phrasing, empty and loading states, pagination labels, and number/date columns each carry conventions Japanese business users expect. This article covers the table-level decisions that decide whether your grid reads as a localized product or a translated one.
Most localization effort goes to the surfaces that are easy to see: the marketing site, the onboarding flow, the settings pages. The data table gets localized last because it is buried inside the product, it is generated by a component library rather than written as copy, and it looks "done" the moment the column headers are translated. But the table is where power users spend most of their working day. A finance analyst who lives in an exports grid or a CS lead who works a tickets table sees your localization quality more than any other screen in the product.
Tables are also uniquely hostile to literal translation. English table UI is built around English's typographic properties: short words, spaces that allow clean wrapping, and a counting grammar that needs no measure words. Japanese has none of these. Characters are roughly twice the width of Latin characters, so a header that fit comfortably in English now overflows its column. There are no spaces, so the browser will happily break a header between any two characters. And Japanese counts rows with a measure word — 件 — that has no English equivalent, so the natural phrasing of every count, selection, and pagination label changes.
This means table localization is not a translation pass. It is a re-layout. The vocabulary, the abbreviation strategy, the line-break control, and the count grammar all have to be decided deliberately. When they are decided by default — by translation memory and a component library's English-shaped layout — the result is the half-localized grid that Japanese enterprise users recognize on sight.
Column headers are the single most space-constrained text in any product. In English you have a handful of characters before the header overflows or forces the column wider. In Japanese, because each character is wider, you have even fewer — and the literal translation is almost always too long.
The first rule is aggressive concision. English headers are often padded with words that the column position already implies. "Last Updated Date" is three words, but the column shows a date, so 更新日 (three characters) carries the full meaning. "Customer Name" becomes 顧客名, not 顧客の名前. "Registration Date" becomes 登録日. Drop the redundant nouns that English includes for grammatical completeness but Japanese does not need.
The second rule is line-break control. Because Japanese has no spaces, a browser given a header that does not fit will break it at an arbitrary character boundary. A header like 最終ログイン日時 can render as 最終ログ / イン日時 — splitting the katakana word ログイン across two lines, which looks broken to a Japanese reader. There are three fixes, in order of preference: shorten the header so it fits on one line; if a two-line header is unavoidable, design the break point so it falls at a meaningful boundary (最終ログイン / 日時); and use CSS word-break rules or word-joiner characters to keep katakana words intact. The worst outcome is leaving it to the browser, because the break will land mid-word.
The third rule is unit placement. When a column shows a measured value, Japanese convention often appends the unit to the header in parentheses rather than repeating it in every cell: 金額(円), 容量(GB), 利用率(%). This keeps the cells clean and the column scannable. English tables sometimes do this too, but it is near-universal in Japanese business tables, and omitting it makes the column read as unfinished.
The controls that sit above and around a table — sort, filter, search, group — are short labels, which is exactly why they get missed. They are buried in component-level UI rather than appearing in the main copy deck, and a translation pass that focuses on body copy walks right past them. They are also the labels Japanese users have read on every Japanese business application for twenty years, so an unconventional choice creates immediate friction.
The most consequential decision is filtering. For the action of narrowing rows by criteria, 絞り込み is the established Japanese business-software term and reads as fully native. フィルター is recognized and is acceptable in developer-facing or analytics-heavy tools where users expect the English-derived term — but for general enterprise SaaS, 絞り込み is the safer default. The clear mistake is フィルタリング as a label: it is the gerund "filtering," and as a button or control it reads as a literal translation rather than an interface element. Use 絞り込み for the control, and 絞り込む or フィルタを適用 for the apply action.
The other table controls follow Japanese software convention, not direct translation:
These are not stylistic preferences. They are the labels Japanese users already map to functions automatically. An accurate but unconventional alternative forces the user to re-learn a control they already know how to use, which is the opposite of what localization should do.
When a user selects rows and a bulk-action bar appears, two pieces of copy matter: the selection count and the action buttons. Both are commonly mishandled because the English source uses grammar Japanese does not share.
English counts rows as bare numbers: "3 selected." Japanese needs the measure word 件 for records or rows: 3件を選択中 (3 records selected). Using 個 or つ here is wrong — those are for physical objects and general items, not table records. The selection state reads naturally as 3件を選択中 or 3件選択しました, where 件 makes it unambiguous that the count refers to rows.
For the action buttons, name the verb the user is about to perform, optionally folding in the count. English "Delete selected (3)" becomes 選択した3件を削除 or, more compactly, a 削除 button next to the 3件を選択中 indicator. The instinct to prefix every bulk action with 一括 (bulk) should be resisted: 一括削除 is appropriate when the bulk-ness is the point being emphasized (a dedicated "bulk delete everything" feature), but for a button that simply acts on the current selection, 削除 alone is cleaner and reads better.
For destructive bulk actions, the confirmation dialog should restate the count: 選択した3件を削除しますか? (Delete the 3 selected records?). The count in the confirmation reassures the user about scope — particularly important in Japanese enterprise contexts where accidental bulk deletion is a serious concern and confirmation copy is expected to be explicit.
A table can be empty for two completely different reasons, and Japanese convention — like good UX writing anywhere — distinguishes them. The mistake is using one message for both, which leaves the user unsure whether their data is gone or simply filtered out.
A genuinely empty table, where no records exist yet, reads データがありません or, more warmly, まだデータがありません ("no data yet," implying it will arrive). For a first-run empty state, an action-oriented form is even better: 最初のデータを追加してください. A no-match state, where a filter returned nothing, must acknowledge the filter: 条件に一致するデータがありません ("no data matches the criteria"). This single distinction prevents the panic of a user who applied a filter and now thinks the system deleted their records.
Loading states are the third case. An untranslated "Loading..." is a frequent oversight because it lives inside the component library. The Japanese forms are 読み込み中... for a generic load or データを取得しています ("retrieving data") for a longer fetch, both in です/ます register. For tables that paginate or lazy-load, さらに読み込み中... ("loading more") distinguishes incremental loads from the initial one.
Pagination labels are dense with count grammar, which makes them a common source of awkward Japanese. The English "1–20 of 348" maps to 348件中 1〜20件 — note that Japanese leads with the total (348件中, "of 348 records") before the visible range, the reverse of English order. "Rows per page" becomes 表示件数 or 1ページあたりの表示件数, again using 件. "Next" and "Previous" are 次へ and 前へ, with the へ particle giving them natural directional feel; bare 次 and 前 read as abrupt.
| English Pagination Label | Recommended Japanese | Notes |
|---|---|---|
| 1–20 of 348 | 348件中 1〜20件 | Total leads, then the range — the reverse of English word order. Use 〜 (wave dash) for the range. |
| Rows per page | 表示件数 | Or 1ページあたりの表示件数 when space allows. 件 is the row counter. |
| Next / Previous | 次へ / 前へ | The へ particle adds natural direction. Bare 次 / 前 read as abrupt. |
| Page 3 of 18 | 18ページ中 3ページ目 | 目 makes it ordinal ("the 3rd page"). Total-first order, matching the range label. |
| Showing all 348 results | 全348件を表示 | 全 ("all") plus the 件 count. 結果 is unnecessary — 件 already implies the records. |
Number and date columns carry their own conventions. Currency columns use the 円 unit and 漢数字 grouping expectations: large values are often shown with 万 grouping (1,250万 rather than 12,500,000) when the audience is finance-facing, though the comma form is acceptable for raw transaction grids — the choice depends on whether the column is a summary or a ledger. Numbers right-align, as in any table, but ensure the alignment survives localization; a number column that switched to left-align during a layout port reads as broken to a Japanese accountant. Date columns use the Japanese order 2026/05/31 or 2026年5月31日 (never 05/31/2026), and a column that mixes ISO dates in some rows and localized dates in others is an immediate red flag during enterprise evaluation.
The 14-point checklist covers the table-level decisions most teams miss. A full Japanese Mini Audit catches header overflow and mid-word wraps, the 絞り込み vs フィルター consistency, bulk-action counter grammar, and the empty-vs-no-match state distinction across your grids. Most products fail on 5 to 9 of the 14 points.
Request a Mini AuditShould I use 絞り込み or フィルター for the filter control in a Japanese data table?
For the action of narrowing rows by criteria, 絞り込み is the established Japanese business-software term and reads as native. フィルター is recognized and acceptable, especially in developer-facing or analytics tools where users expect the English-derived term, but 絞り込み is safer for general enterprise SaaS. The mistake to avoid is フィルタリング as a button label — it is the gerund form and feels like a literal translation of "Filtering" rather than a control label. Use 絞り込み for the control and フィルタを適用 / 絞り込む for the apply action.
How should English column headers be shortened for Japanese tables?
Japanese column headers should be as short as the data allows because Japanese characters are wider than Latin characters and tables are space-constrained. "Last Updated" becomes 更新日 or 最終更新, not 最終更新日時 unless the column actually shows a timestamp. "Created Date" becomes 登録日 or 作成日. Drop redundant words: a Status column is ステータス or 状態, never ステータス状況. Prefer kanji compounds over katakana phrases when both exist, because kanji is denser per character.
How do Japanese column headers wrap, and how do I prevent bad line breaks?
Japanese has no spaces, so a browser can break a header between any two characters unless you control it. A header like 最終ログイン日時 can wrap as 最終ログ / イン日時, which looks broken. Use a non-breaking approach: keep headers short enough to fit on one line, or insert word-joiner control characters or CSS word-break rules so breaks fall at meaningful boundaries (最終ログイン / 日時). For two-line headers, design the break point deliberately rather than leaving it to the browser.
What is the correct Japanese phrasing for bulk-action buttons above a table?
Bulk-action buttons should name the action as a verb the user is about to perform, often with the selected count. "3 selected · Delete" becomes 3件を選択中 with a 削除 button, or 選択した3件を削除. Avoid 一括 (bulk) as a prefix on every button — 一括削除 is fine when bulk-ness is the point, but for a button that acts on the current selection, 削除 alone is cleaner. Use 件 as the counter for rows or records, not 個 or つ.
How should empty and loading states inside a table be written in Japanese?
Distinguish three states. A genuinely empty table (no records exist yet) reads データがありません or まだデータがありません. A filtered result with no matches reads 条件に一致するデータがありません, which acknowledges the user's filter rather than implying the table is broken. A loading state reads 読み込み中... or データを取得しています in です/ます register, never an untranslated "Loading...". Conflating empty and no-match states is the most common error and it confuses users who think their data has been lost.
Column headers, filter and sort copy, bulk-action buttons, and empty states decide whether Japanese power users trust your product. A focused QA review catches the table-level issues before procurement does.