Markdown Viewer translates its interface in the browser. Core labels live in I18N_DICTS in script.js, while broader static and dynamic interface strings are loaded from assets/i18n/<language>.json. User-authored Markdown and filenames are never translated.
The English interface and English documentation are the source text. The approved multilingual terminology tables on this page align documentation with the current interface labels.
| Code | Language |
|---|---|
en |
English |
zh |
Simplified Chinese |
ja |
Japanese |
ko |
Korean |
pt |
Portuguese (Brazil) |
es |
Spanish |
fr |
French |
de |
German |
ru |
Russian |
it |
Italian |
tr |
Turkish |
pl |
Polish |
tw |
Traditional Chinese |
uk |
Ukrainian |
| Language | File |
|---|---|
| English | README.md |
| Japanese | locales/README_ja.md |
| Korean | locales/README_ko.md |
| Simplified Chinese | locales/README_zh.md |
| Traditional Chinese | locales/README_tw.md |
Detailed Wiki pages are maintained in English. Localized READMEs label those destinations as English instead of pointing to nonexistent localized pages.
The app chooses a language in this order:
- URL query parameter, such as
?lang=pt. - Hash query parameter when present in a shared URL.
- Saved
localStoragekeyapp-lang. - Browser language from
navigator.language. - English fallback.
When a user picks a language from the dropdown, the app saves app-lang and updates the URL query parameter.
The catalogs cover:
- Header, toolbar, Explorer, tab, context-menu, and bulk-action labels.
- Import, media upload, GitHub import, export, Share Snapshot, and Live Share flows.
- View, review, theme, direction, statistics, workspace, and Secret Workspace controls.
- Modal titles, instructions, buttons, placeholders, progress messages, validation errors, tooltips, and accessibility labels.
Renderer output, browser messages, third-party text, generated filenames, external services, and some low-level errors can remain English.
assets/i18n/en.json is the source list. Every translated catalog uses the same English keys:
{
"New file": "新文件",
"Reset workspace": "重置工作区",
"Live Share": "实时共享"
}The runtime also supports numbered templates such as {{0}} files. If a catalog entry is missing, the English source remains visible.
- Add or update visible English source text first.
- Regenerate catalogs from the repository root with
node assets/i18n/generate-ui-locales.mjs. - Review every new translation in context; use curated overrides where literal machine translation is unclear.
- Keep all locale catalogs on the same key set as
en.json. - Run the desktop prepare step so bundled catalogs match the web app.
- Check desktop and mobile menus, context menus, modal buttons, validation messages, Share Snapshot, Live Share, and
?lang=URLs. - Update the terminology tables on this page when a named concept or interface label changes.
- For documentation, finalize
README.mdbefore synchronizing the four localized READMEs. - Preserve code, commands, paths, URLs, routes, configuration keys, library names, Markdown syntax, and Git branch names.
- Verify localized language navigation, relative paths, anchors, tables, code fences, heading length, and native grammar.
- Record a section for native-speaker review when technical meaning cannot be translated confidently.
Use these terms in Markdown Viewer documentation and translation reviews. The Japanese, Korean, Simplified Chinese, and Traditional Chinese values follow the current interface label when that exact source key exists; otherwise they use standard software terminology for the concept.
Markdown Viewer is a product name and must not be translated. Code, commands, file paths, URLs, API routes, configuration keys, library names, Markdown syntax, and Git branch names also remain unchanged.
| English | Japanese | Korean | Simplified Chinese | Traditional Chinese |
|---|---|---|---|---|
| Workspace | ワークスペース | 작업공간 | 工作区 | 工作區 |
| Secret Workspace | 秘密のワークスペース | 비밀 작업 공간 | 秘密工作区 | 秘密工作區 |
| Folder | フォルダー | 폴더 | 文件夹 | 資料夾 |
| Document | 文書 | 문서 | 文档 | 文件 |
| Active Document | アクティブな文書 | 활성 문서 | 当前文档 | 目前文件 |
| Editor | エディター | 편집기 | 编辑器 | 編輯器 |
| Preview | プレビュー | 미리보기 | 预览 | 預覽 |
| Split view | 分割表示 | 분할 보기 | 分屏视图 | 分割檢視 |
| Review | レビュー | 리뷰 | 审阅 | 審閱 |
| Comment | コメント | 댓글 | 评论 | 留言 |
| Suggestion | 提案 | 제안 | 建议 | 建議 |
| Recent | 最近使ったファイル | 최근 파일 | 最近使用 | 最近使用 |
| Favorites | お気に入り | 즐겨찾기 | 收藏夹 | 我的最愛 |
| Local storage | ローカルストレージ | 로컬 저장소 | 本地存储 | 本機儲存空間 |
| Temporary tab | 一時タブ | 임시 탭 | 临时标签页 | 暫存分頁 |
| English | Japanese | Korean | Simplified Chinese | Traditional Chinese |
|---|---|---|---|---|
| Share Snapshot | スナップショットの共有 | 스냅샷 공유 | 分享快照 | 分享快照 |
| Live Share | ライブシェア | 라이브 공유 | 实时共享 | 即時共享 |
| View only | 表示のみ | 보기 전용 | 仅供查看 | 僅供查看 |
| Can edit | 編集可能 | 편집 가능 | 可以编辑 | 可以編輯 |
| Host | ホスト | 호스트 | 主持人 | 主持人 |
| Editor role | 編集者ロール | 편집자 역할 | 编辑者角色 | 編輯者角色 |
| Viewer role | 閲覧者ロール | 뷰어 역할 | 查看者角色 | 檢視者角色 |
| Temporary room | 一時ルーム | 임시 방 | 临时房间 | 暫時房間 |
| Bearer link | ベアラーリンク | 베어러 링크 | 持有者链接 | 持有者連結 |
| Private mode | プライベートモード | 프라이빗 모드 | 隐私模式 | 隱私模式 |
| Clear local data | ローカルデータを消去 | 로컬 데이터 지우기 | 清除本地数据 | 清除本機資料 |
| Reset workspace | ワークスペースをリセット | 작업공간 재설정 | 重置工作区 | 重設工作區 |
| Managed media | 管理対象メディア | 관리형 미디어 | 托管媒体 | 受管理媒體 |
| Deletion token | 削除トークン | 삭제 토큰 | 删除令牌 | 刪除權杖 |
| Expiration | 有効期限 | 만료 | 过期 | 到期 |
| End-to-end encryption | エンドツーエンド暗号化 | 종단 간 암호화 | 端到端加密 | 端對端加密 |
| English | Japanese | Korean | Simplified Chinese | Traditional Chinese |
|---|---|---|---|---|
| Import | インポート | 가져오기 | 导入 | 導入 |
| Export | エクスポート | 내보내기 | 导出 | 匯出 |
| Markdown export | Markdown エクスポート | Markdown 내보내기 | Markdown 导出 | Markdown 匯出 |
| HTML export | HTML エクスポート | HTML 내보내기 | HTML 导出 | HTML 匯出 |
| Browser Print | ブラウザー印刷 | 브라우저 인쇄 | 浏览器打印 | 瀏覽器列印 |
| Legacy Raster PDF | 従来のラスター PDF | 레거시 래스터 PDF | 旧版栅格 PDF | 舊版點陣 PDF |
| PNG export | PNG エクスポート | PNG 내보내기 | PNG 导出 | PNG 匯出 |
| Diagram | 図表 | 다이어그램 | 图表 | 圖表 |
| Diagram renderer | 図表レンダラー | 다이어그램 렌더러 | 图表渲染器 | 圖表轉譯器 |
| Remote renderer | リモートレンダラー | 원격 렌더러 | 远程渲染器 | 遠端轉譯器 |
| Sanitized HTML | サニタイズ済み HTML | 정제된 HTML | 已清理的 HTML | 已清理的 HTML |
| Code highlighting | コードのシンタックスハイライト | 코드 구문 강조 | 代码语法高亮 | 程式碼語法醒目提示 |
| Math | 数式 | 수식 | 数学公式 | 數學公式 |
| Progressive Web App (PWA) | プログレッシブウェブアプリ(PWA) | 프로그레시브 웹 앱(PWA) | 渐进式 Web 应用(PWA) | 漸進式 Web 應用程式(PWA) |
| Desktop application | デスクトップアプリケーション | 데스크톱 애플리케이션 | 桌面应用 | 桌面應用程式 |
- In English, keep the feature names Share Snapshot, Live Share, View only, Can edit, Private mode, and Secret Workspace exactly as written.
- In localized READMEs, use the localized UI label in explanatory prose. Keep the English feature name at first mention when it helps readers match English screenshots or Wiki pages.
- Do not alternate between “snapshot sharing,” “share link,” and Share Snapshot for the named feature.
- Use “live room” only for the technical room; use Live Share for the feature.
- Use “Document” for user content and “file” for an imported, exported, or filesystem object.
- Use “Workspace” for the product's document container and “repository” for GitHub source.
- Use “Preview” for the rendered pane and “renderer” for the library or service that creates visual output.
- Use “local-first” to describe the default data path. Do not use it to imply that every feature is offline or network-free.
- Use “temporary” only with the exact lifetime or persistence boundary nearby.
assets/i18n/<language>.jsonis the current UI catalog source. Some concepts in these tables do not have a standalone source key and therefore cannot be compared one-to-one.- The Traditional Chinese catalog currently uses
導入for Import. Documentation uses that value when naming the UI action, even though匯入is also common in Traditional Chinese software. - If a UI label changes, update the English catalog first, regenerate locale catalogs, review the change in context, then update these tables and affected localized documentation.
Localization is local. The app does not send document text or UI text to machine translation APIs.
Related pages: Contributing and Documentation Home.