diff options
| author | sillylaird <sillyfanboy@gmail.com> | 2026-09-03 00:33:59 +0000 |
|---|---|---|
| committer | sillylaird <sillyfanboy@gmail.com> | 2026-09-03 00:33:59 +0000 |
| commit | 898b52edcb47bcb3e9d6106e74ca73e74ea01e70 (patch) | |
| tree | 85c6ee5ad58b860144551184d4cf86b560c62b91 /locales | |
| download | www-898b52edcb47bcb3e9d6106e74ca73e74ea01e70.tar.gz www-898b52edcb47bcb3e9d6106e74ca73e74ea01e70.zip | |
Diffstat (limited to '')
| -rw-r--r-- | locales/README.md | 24 | ||||
| -rw-r--r-- | locales/en.php | 187 | ||||
| -rw-r--r-- | locales/ja.php | 191 | ||||
| -rw-r--r-- | locales/zh.php | 191 |
4 files changed, 593 insertions, 0 deletions
diff --git a/locales/README.md b/locales/README.md new file mode 100644 index 0000000..5a04920 --- /dev/null +++ b/locales/README.md @@ -0,0 +1,24 @@ +# Locales + +Flat key → string dicts, one file per language: `en.php`, `ja.php`, `zh.php`. +Loaded by `partials/i18n.php` via the `t($key)` helper. + +**EN is source of truth.** Missing keys in ja/zh fall back to English, then to +the key string itself. When you add UI strings, add the EN key first and mirror +it in ja/zh in the same change when possible. + +## Migration strategy + +The existing `foo.php` / `foo_jp.php` / `foo_zh.php` triples are kept as-is. +When you next edit a page triple, collapse it: + +1. `require_once __DIR__ . '/partials/i18n.php';` at the top of `foo.php`. +2. Replace the hardcoded English strings with `<?= t('foo.someKey') ?>`. +3. Add matching keys to `locales/{en,ja,zh}.php`. +4. Replace `foo_jp.php` / `foo_zh.php` with a one-line redirect stub: + `<?php header('Location: /foo.php?lang=jp'); exit;` + (or leave them until you're ready to migrate routing). + +Language detection reads the current filename's `_jp.php` / `_zh.php` +suffix, matching the existing URL scheme. No routing changes required to +start using `t()`. diff --git a/locales/en.php b/locales/en.php new file mode 100644 index 0000000..6fa3d07 --- /dev/null +++ b/locales/en.php @@ -0,0 +1,187 @@ +<?php +// English strings. Keys use dot notation grouped by page, e.g. 'home.title'. +// Add new keys here first; translators add matching keys in ja.php / zh.php. +return [ + 'common.skip' => 'Skip to content', + 'common.top' => '↑ Top', + + 'hitcounter.title' => 'Visitor Counter (Local)', + 'hitcounter.subtitle' => 'Counts unique visits per browser using localStorage + sessionStorage.', + 'hitcounter.label' => 'You are visitor number:', + + // profile + 'profile.title' => 'Profile — SillyLaird', + 'profile.desc' => 'Contact card/profile for Laird Lonergan.', + 'profile.h1' => 'Laird Lonergan', + 'profile.subtitle' => 'Simple contact card.', + + // multibox guide + 'multibox.title' => 'MMORPG Multiboxing Guide — SillyLaird', + 'multibox.title_short' => 'MMORPG Multiboxing Guide — SillyLaird', + 'multibox.desc' => 'A comprehensive guide to MMORPG multiboxing: what it is, how it works, and its impact on gaming communities.', + 'multibox.desc_short' => 'Multiboxing guide landing page.', + 'multibox.h1' => 'MMORPG Multiboxing Guide', + 'multibox.subtitle' => 'This guide moved into the unified gaming section.', + 'multibox.link_main' => 'Multiboxing (main page)', + 'multibox.link_what' => 'What is Multiboxing? (detailed)', + + // hat collection website + 'hat.title' => 'Hat Collection Website — SillyLaird', + 'hat.desc' => 'Notes / file structure for hat collection website.', + 'hat.h1' => 'Hat Collection Website', + 'hat.subtitle' => 'Notes / layout sketch.', + + // game collection + 'collection.title' => 'Game Collection — SillyLaird', + 'collection.desc' => 'Video games, consoles, hardware, song packs, and wishlist.', + 'collection.h1' => 'Game Collection', + 'collection.subtitle' => 'Video Games / Consoles / Hardware / Song Packs / Wishlist', + 'collection.games_label' => 'titles', + 'collection.games_blurb' => 'Video game titles — system :: title.', + 'collection.systems_label' => 'systems', + 'collection.empty' => 'No video game titles yet. Add them in the admin Collection tab.', + 'collection.empty_system' => 'No games listed for this system yet.', + 'collection.consoles_title' => 'Consoles — SillyLaird', + 'collection.consoles_blurb' => 'Consoles and living-room systems. Each row is name :: model.', + 'collection.consoles_label' => 'consoles', + 'collection.consoles_empty' => 'No consoles yet. Add them in the admin Collection tab.', + 'collection.hardware_title' => 'Hardware — SillyLaird', + 'collection.hardware_page_blurb' => 'Cabinets, controllers, PCs. Each row is name :: model.', + 'collection.hardware_label' => 'items', + 'collection.hardware_empty' => 'No hardware yet. Add items in the admin Collection tab.', + 'collection.online_subtitle' => 'Konami rhythm song packs and tools. Each row is game :: pack.', + 'collection.online_links_label' => 'song packs', + 'collection.online_empty' => 'No song packs yet. Add them in the admin Collection tab.', + 'collection.online_empty_cat' => 'No song packs listed for this game yet.', + 'collection.visit_product' => 'store', + 'collection.no_photo' => 'no photo', + 'collection.jump_nav' => 'Collection sections', + 'collection.menu_games' => 'Video Games', + 'collection.menu_videogames' => 'Video Games', + 'collection.menu_consoles' => 'Consoles', + 'collection.menu_hardware' => 'Hardware', + 'collection.menu_tech' => 'Video Games', + 'collection.menu_packs' => 'Song Packs', + 'collection.menu_online' => 'Song Packs', + 'collection.menu_wishlist' => 'Wishlist', + 'collection.packs_title' => 'Song Packs — SillyLaird', + 'collection.wishlist_title' => 'Wishlist — SillyLaird', + 'collection.wishlist_blurb' => 'Titles, consoles, hardware, and packs I want next.', + 'collection.wishlist_count' => 'on the list', + 'collection.wishlist_empty' => 'Wishlist is empty. Mark items Wishlist in admin.', + 'collection.spec_system' => 'System', + 'collection.spec_game' => 'Game', + 'collection.spec_status' => 'Status', + 'collection.spec_link' => 'Link', + 'collection.spec_link_yes' => 'store page', + 'collection.back_gaming' => '← Gaming hub', + 'collection.back_home' => 'Home', + 'home.card_collection' => 'Game Collection', + 'home.card_collection_desc' => 'Video games, consoles, hardware, song packs.', + + // links + 'links.title' => 'Links — SillyLaird', + 'links.desc' => 'The obligatory page of links.', + 'links.h1' => 'Links', + 'links.subtitle' => 'Websites I like. Content varies.', + 'links.grp_start' => 'Start Here', + 'links.grp_networks' => 'Networks', + 'links.grp_media' => 'Media', + 'links.grp_contact' => 'Contact', + 'links.h2_friends' => "Friends' Sites", + 'links.h2_buttons' => 'Buttons / Badges', + + // guestbook (shared, EN-only flow) + 'guestbook.title' => 'Guestbook — SillyLaird', + 'guestbook.desc' => 'A shared guestbook powered by PHP and a database.', + 'guestbook.h1' => 'Guestbook', + 'guestbook.subtitle' => 'Sign the guestbook below! Comments are shared across all visitors.', + 'guestbook.reset_form' => 'Reset Form', + 'guestbook.reset_comments' => 'Reset Comments', + 'guestbook.iframe_form' => 'Guestbook Comment Form', + 'guestbook.iframe_comments'=> 'Guestbook Comments', + + // guestbook (local, JP/ZH flow) + 'guestbook.local_title' => 'Guestbook (Local) — SillyLaird', + 'guestbook.local_desc' => 'Simple localStorage guestbook.', + 'guestbook.local_h1' => 'Guestbook (Local)', + 'guestbook.local_subtitle' => 'This page stores entries in your browser (localStorage). It is not shared between visitors.', + 'guestbook.label_name' => 'Name', + 'guestbook.label_message' => 'Message', + 'guestbook.label_captcha' => 'Captcha', + 'guestbook.captcha_ph' => 'Enter code', + 'guestbook.refresh_captcha'=> 'Refresh Captcha', + 'guestbook.submit' => 'Submit', + + // startpage (/startpage/) — its own title so the browser tab and the + // OG/Twitter card name the page instead of reusing the homepage's. + 'startpage.title' => 'Startpage — SillyLaird', + 'startpage.desc' => 'SillyLaird\'s browser startpage — link cards, search bar, live radio and now-playing, all in one terminal-flavoured dashboard.', + + // home / index + 'home.title' => 'Home — SillyLaird', + 'home.desc' => 'SillyLaird\'s personal homepage — terminal vibes, small-web links, live music & radio, guestbook, gaming archives, and contact info across clearnet, Tor, I2P, Gemini & Gopher.', + 'home.h1' => 'Laird Lonergan (SillyLaird) — Personal Homepage', + 'home.tagline' => 'Terminal vibes meet small-web chaos', + 'home.where_start' => 'Where to start', + 'home.card_now' => 'Now', + 'home.card_now_desc' => "What I'm doing lately.", + 'home.card_blog' => 'Blog', + 'home.card_blog_desc' => 'Longer writing and notes.', + 'home.card_journal' => 'Journal', + 'home.card_journal_desc' => 'Short day-to-day entries.', + 'home.card_gaming' => 'Gaming', + 'home.card_gaming_desc' => 'Games I play and archive.', + 'home.network' => 'Network & Links', + 'home.guestbook_form' => 'Leave a message', + 'home.guestbook_comments' => 'Recent comments', + 'home.made_with' => 'Made with ♥ on the small web', + 'home.welcome' => "Welcome! This is my personal homepage. It's meant to feel like a simple link hub with personality — not a corporate site.", + 'home.contact' => 'Contact', + 'home.pronunciation' => 'Pronunciation: Laird Lonergan', + 'home.vibe' => 'My Current Vibe', + 'home.music' => 'Music', + 'home.updates' => 'Latest Updates', + 'home.blog' => 'Current Blog', + 'home.blog_visit' => 'Visit the full archive →', + 'home.changelog' => 'Changelog', + 'home.changelog_visit' => 'Visit the full changelog →', + 'home.friends' => 'Friends', + 'home.guestbook' => 'Guestbook', + 'home.guestbook_open' => 'Open full guestbook', + 'home.refresh_form' => 'Refresh Form', + 'home.refresh_comments' => 'Refresh Comments', + 'home.games' => 'Games', + 'home.countries' => 'Countries', + 'home.sponsors' => 'Sponsors / VPNs / Buttons', + 'home.loading' => 'Loading…', + 'home.lastfm_loading' => 'Loading live music data...', + 'home.now_playing' => 'Now playing', + 'home.recent_tracks' => 'Recent tracks', + 'home.radio_listen' => 'Listen on radio.sillylaird.ca', + 'home.radio_loading' => 'Tuning radio feed', + 'home.radio_offline' => 'Radio is offline right now', + 'home.guestbook_loading' => 'Loading recent comments', + 'home.guestbook_empty' => 'No comments yet — be the first to sign!', + 'home.guestbook_reload' => 'Reload comments', + 'home.lain_alt' => 'Lain avatar — pixel art character from Serial Experiments Lain', + 'home.lain_secret_1' => 'Let\'s all love Lain.', + 'home.lain_secret_2' => 'Present day. Present time.', + 'home.lain_secret_3' => 'The wired is watching.', + 'home.visit_counter' => 'You are visitor', + 'home.person.name' => 'Laird Lonergan', + 'home.person.jobtitle' => 'Software Developer & Content Creator', + 'home.person.desc' => 'Personal homepage of Laird Lonergan (SillyLaird) — links, projects, and personal logs.', + 'home.site.name' => "SillyLaird's Personal Homepage", + + // homepage sidebar + 'home.sidebar_nav' => 'Homepage navigation', + 'home.sidebar_index' => 'Index', + 'home.sidebar_top' => 'Top', + 'home.sidebar_vibe' => 'Last.fm / Vibe', + 'home.sidebar_network' => 'Network', + 'home.sidebar_map' => 'Site Map', + 'home.sidebar_startpage' => 'Startpage', + 'home.sidebar_altnets' => 'Alt nets', + 'home.sidebar_altnets_aria'=> 'Alternate network protocols', +]; diff --git a/locales/ja.php b/locales/ja.php new file mode 100644 index 0000000..3dc273d --- /dev/null +++ b/locales/ja.php @@ -0,0 +1,191 @@ +<?php +// Japanese strings. Missing keys fall back to en.php. +return [ + 'common.skip' => '本文へ移動', + 'common.top' => '↑ 先頭へ', + + 'hitcounter.title' => '訪問者カウンター (ローカル)', + 'hitcounter.subtitle' => 'localStorage と sessionStorage を使い、ブラウザ単位でユニーク訪問を数えます。', + 'hitcounter.label' => 'あなたは訪問者番号:', + + // profile — body kept in English in original triple + // (only the skip-link differs); fall back to en.php for the rest. + + // multibox guide — JP variant uses the short title/desc + 'multibox.title' => 'MMORPG Multiboxing Guide — SillyLaird', + 'multibox.desc' => 'Multiboxing guide landing page.', + + // hat — body unchanged + + // links — JP heading was partially translated + 'links.grp_start' => 'はじめに', + 'links.grp_networks' => 'ネットワーク', + 'links.grp_media' => 'メディア', + 'links.grp_contact' => '連絡先', + 'links.h2_friends' => "友達' Sites", + + // guestbook (local flow used by JP) + 'guestbook.local_title' => 'ゲストブック (Local) — SillyLaird', + 'guestbook.local_h1' => 'ゲストブック (Local)', + + // home / index + 'home.title' => 'ホーム — SillyLaird', + 'home.h1' => 'レアド・ロナーガン (SillyLaird) — 個人ホームページ', + 'home.tagline' => 'ターミナル感 × スモールウェブのカオス', + 'home.where_start' => 'はじめに', + 'home.card_now' => 'Now', + 'home.card_now_desc' => '最近やっていること。', + 'home.card_blog' => 'ブログ', + 'home.card_blog_desc' => '長めの文章やメモ。', + 'home.card_journal' => 'ジャーナル', + 'home.card_journal_desc' => '日々の短い記録。', + 'home.card_gaming' => 'ゲーム', + 'home.card_gaming_desc' => 'プレイ中・保管中のゲーム。', + 'home.network' => 'ネットワーク & リンク', + 'home.guestbook_form' => 'メッセージを残す', + 'home.guestbook_comments' => '最近のコメント', + 'home.made_with' => 'Made with ♥ on the small web', + 'home.welcome' => 'ようこそ!これは私の個人ホームページです。企業サイトではなく、個性を大切にしたシンプルなハブとして作っています。', + 'home.contact' => '連絡先', + 'home.pronunciation' => '発音: Laird Lonergan', + 'home.vibe' => '今の雰囲気', + 'home.music' => '音楽', + 'home.updates' => '最新の更新', + 'home.blog' => '現在のブログ', + 'home.blog_visit' => 'Visit the full archive →', + 'home.changelog' => '更新履歴', + 'home.changelog_visit' => 'Visit the full changelog →', + 'home.friends' => '友達', + 'home.guestbook' => 'ゲストブック', + 'home.guestbook_open' => 'ゲストブックを開く', + 'home.refresh_form' => 'フォームを更新', + 'home.refresh_comments' => 'コメントを更新', + 'home.games' => 'ゲーム', + 'home.countries' => '国', + 'home.sponsors' => 'スポンサー / VPN / ボタン', + 'home.loading' => '読み込み中…', + 'home.lastfm_loading' => '読み込み中…', + 'home.person.name' => 'レアド・ロナーガン', + 'home.person.jobtitle' => 'ソフトウェア開発者 & コンテンツクリエイター', + 'home.person.desc' => 'レアド・ロナーガン(SillyLaird)の個人用ホームページ。リンク、プロジェクト、個人的なログを掲載しています。', + 'home.site.name' => 'SillyLairdの個人ホームページ', + + // startpage (/startpage/) + 'startpage.title' => 'スタートページ — SillyLaird', + 'startpage.desc' => 'SillyLaird のブラウザ用スタートページ — リンクカード、検索バー、ライブラジオと再生中の曲を一つのターミナル風ダッシュボードに。', + + // fill gaps vs en.php (were falling back to English) + 'home.desc' => 'SillyLaird の個人ホームページ — ターミナル感、スモールウェブのリンク、ライブ音楽とラジオ、ゲストブック、ゲームアーカイブ、そして clearnet / Tor / I2P / Gemini / Gopher での連絡先。', + 'home.now_playing' => '再生中', + 'home.recent_tracks' => '最近の曲', + 'home.radio_listen' => 'radio.sillylaird.ca で聴く', + 'home.radio_loading' => 'ラジオをチューニング中', + 'home.radio_offline' => 'ラジオは現在オフラインです', + 'home.guestbook_loading' => '最近のコメントを読み込み中', + 'home.guestbook_empty' => 'まだコメントはありません — 最初にサインしよう!', + 'home.guestbook_reload' => 'コメントを再読込', + 'home.lain_alt' => 'Lain アバター — Serial Experiments Lain のピクセルアート', + 'home.lain_secret_1' => 'Let\'s all love Lain.', + 'home.lain_secret_2' => 'Present day. Present time.', + 'home.lain_secret_3' => 'The wired is watching.', + 'home.visit_counter' => '訪問者番号', + 'home.blog_visit' => '全アーカイブを見る →', + 'home.changelog_visit' => '更新履歴をすべて見る →', + 'home.sidebar_nav' => 'ホームページのナビゲーション', + 'home.sidebar_index' => '目次', + 'home.sidebar_top' => 'トップ', + 'home.sidebar_vibe' => 'Last.fm / Vibe', + 'home.sidebar_network' => 'ネットワーク', + 'home.sidebar_map' => 'サイトマップ', + 'home.sidebar_startpage' => 'スタートページ', + 'home.sidebar_altnets' => '代替ネット', + 'home.sidebar_altnets_aria'=> '代替ネットワークプロトコル', + + 'profile.title' => 'プロフィール — SillyLaird', + 'profile.desc' => 'Laird Lonergan の連絡先カード / プロフィール。', + 'profile.h1' => 'Laird Lonergan', + 'profile.subtitle' => 'シンプルな連絡先カード。', + + 'multibox.title_short' => 'MMORPG Multiboxing Guide — SillyLaird', + 'multibox.desc_short' => 'マルチボクシング入門ページ。', + 'multibox.h1' => 'MMORPG マルチボクシングガイド', + 'multibox.subtitle' => 'このガイドは統合ゲーミングセクションへ移動しました。', + 'multibox.link_main' => 'マルチボクシング(メイン)', + 'multibox.link_what' => 'マルチボクシングとは?(詳細)', + + 'hat.title' => '帽子コレクションサイト — SillyLaird', + 'hat.desc' => '帽子コレクションサイトのメモ / 構成。', + 'hat.h1' => '帽子コレクションサイト', + 'hat.subtitle' => 'メモ / レイアウトスケッチ。', + + // game collection + 'collection.title' => 'ゲームコレクション — SillyLaird', + 'collection.desc' => '個人のゲームカタログ — ハードと Konami 楽曲パック。', + 'collection.h1' => 'ゲームコレクション', + 'collection.subtitle' => '手元にある機種・ゲーム・楽曲パックの小さなカタログ。', + 'collection.games_label' => '本', + 'collection.systems_label' => '機種', + 'collection.empty' => 'まだ機種がありません。管理の Collection か games.json で追加。', + 'collection.empty_system' => 'この機種にはまだゲームがありません。', + 'collection.online_subtitle' => 'Konami 音ゲーの楽曲パックなど。各行は 機種 :: パック名。', + 'collection.online_links_label' => 'パック', + 'collection.online_empty' => 'まだ楽曲パックがありません。管理の Collection で追加。', + 'collection.online_empty_cat' => 'この機種にはまだ楽曲パックがありません。', + 'collection.visit_product' => 'ストア', + 'collection.no_photo' => '写真なし', + 'collection.jump_nav' => 'コレクションの区分', + 'collection.menu_games' => 'ビデオゲーム', + 'collection.menu_videogames' => 'ビデオゲーム', + 'collection.menu_consoles' => '本体', + 'collection.menu_hardware' => 'ハードウェア', + 'collection.menu_tech' => 'ビデオゲーム', + 'collection.menu_packs' => '楽曲パック', + 'collection.menu_online' => '楽曲パック', + 'collection.menu_wishlist' => 'ウィッシュリスト', + 'collection.games_blurb' => 'タイトル一覧。各行は 機種 :: タイトル。', + 'collection.consoles_title' => '本体 — SillyLaird', + 'collection.consoles_blurb' => 'ゲーム機。各行は 名前 :: 機種。', + 'collection.consoles_label' => '台', + 'collection.consoles_empty' => 'まだ本体がありません。', + 'collection.hardware_title' => 'ハードウェア — SillyLaird', + 'collection.hardware_page_blurb' => '筐体・コントローラーなど。各行は 名前 :: 機種。', + 'collection.hardware_label' => '点', + 'collection.hardware_empty' => 'まだハードウェアがありません。', + 'collection.packs_title' => '楽曲パック — SillyLaird', + 'collection.wishlist_title' => 'ウィッシュリスト — SillyLaird', + 'collection.wishlist_blurb' => '次に欲しいハードとパック。', + 'collection.wishlist_count' => '件', + 'collection.wishlist_empty' => 'ウィッシュリストは空です。管理画面で Wishlist に設定。', + 'collection.spec_system' => '機種', + 'collection.spec_game' => 'ゲーム', + 'collection.spec_status' => '状態', + 'collection.spec_link' => 'リンク', + 'collection.spec_link_yes' => 'ストアページ', + 'collection.back_gaming' => '← ゲームハブ', + 'collection.back_home' => 'ホーム', + 'home.card_collection' => 'ゲームコレクション', + 'home.card_collection_desc' => 'ハードと楽曲パックのカタログ。', + + 'links.title' => 'リンク — SillyLaird', + 'links.desc' => 'お約束のリンク集。', + 'links.h1' => 'リンク', + 'links.subtitle' => '好きなサイト。内容はまちまち。', + 'links.h2_buttons' => 'ボタン / バッジ', + + 'guestbook.title' => 'ゲストブック — SillyLaird', + 'guestbook.desc' => 'PHP とデータベースで動く共有ゲストブック。', + 'guestbook.h1' => 'ゲストブック', + 'guestbook.subtitle' => '下のフォームからサインを!コメントは全員で共有されます。', + 'guestbook.reset_form' => 'フォームをリセット', + 'guestbook.reset_comments' => 'コメントをリセット', + 'guestbook.iframe_form' => 'ゲストブック記入フォーム', + 'guestbook.iframe_comments'=> 'ゲストブックのコメント', + 'guestbook.local_desc' => 'シンプルな localStorage ゲストブック。', + 'guestbook.local_subtitle' => 'このページはブラウザの localStorage に保存します。訪問者間では共有されません。', + 'guestbook.label_name' => '名前', + 'guestbook.label_message' => 'メッセージ', + 'guestbook.label_captcha' => 'キャプチャ', + 'guestbook.captcha_ph' => 'コードを入力', + 'guestbook.refresh_captcha'=> 'キャプチャを更新', + 'guestbook.submit' => '送信', +]; diff --git a/locales/zh.php b/locales/zh.php new file mode 100644 index 0000000..73ce96a --- /dev/null +++ b/locales/zh.php @@ -0,0 +1,191 @@ +<?php +// Chinese strings. Missing keys fall back to en.php. +return [ + 'common.skip' => '跳至内容', + 'common.top' => '↑ 回到顶部', + + 'hitcounter.title' => '访客计数器 (本地)', + 'hitcounter.subtitle' => '使用 localStorage 和 sessionStorage,按浏览器统计独立访问。', + 'hitcounter.label' => '您是第几位访客:', + + // profile — body kept in English in original triple + + // multibox guide — ZH variant uses the short title/desc + 'multibox.title' => 'MMORPG Multiboxing Guide — SillyLaird', + 'multibox.desc' => 'Multiboxing guide landing page.', + + // hat — original ZH page used a hybrid English+ZH title + 'hat.title' => 'Hat Collection Web网站 — SillyLaird', + 'hat.h1' => 'Hat Collection Web网站', + + // links — ZH heading was partially translated; subtitle too + 'links.subtitle' => 'Web网站s I like. Content varies.', + 'links.grp_start' => '从这里开始', + 'links.grp_networks' => '网络', + 'links.grp_media' => '媒体', + 'links.grp_contact' => '联系方式', + 'links.h2_friends' => "朋友们' Sites", + + // guestbook (local flow used by ZH) + 'guestbook.local_title' => '留言板 (Local) — SillyLaird', + 'guestbook.local_h1' => '留言板 (Local)', + + // home / index + 'home.title' => '主页 — SillyLaird', + 'home.h1' => '莱尔德·隆纳根 (SillyLaird) — 个人主页', + 'home.tagline' => '终端气质遇上小网混沌', + 'home.where_start' => '从这里开始', + 'home.card_now' => 'Now', + 'home.card_now_desc' => '最近在做什么。', + 'home.card_blog' => '博客', + 'home.card_blog_desc' => '较长的文章和笔记。', + 'home.card_journal' => '日志', + 'home.card_journal_desc' => '日常短记录。', + 'home.card_gaming' => '游戏', + 'home.card_gaming_desc' => '我在玩和存档的游戏。', + 'home.network' => '网络 & 链接', + 'home.guestbook_form' => '留言', + 'home.guestbook_comments' => '最新评论', + 'home.made_with' => 'Made with ♥ on the small web', + 'home.welcome' => '欢迎!这是我的个人主页。它的定位是一个充满个性的简单链接枢纽,而不是一个公司网站。', + 'home.contact' => '联系', + 'home.pronunciation' => '发音: Laird Lonergan', + 'home.vibe' => '当前氛围', + 'home.music' => '音乐', + 'home.updates' => '最新更新', + 'home.blog' => '当前博客', + 'home.blog_visit' => 'Visit the full archive →', + 'home.changelog' => '更新日志', + 'home.changelog_visit' => 'Visit the full changelog →', + 'home.friends' => '朋友们', + 'home.guestbook' => '留言板', + 'home.guestbook_open' => '打开留言板', + 'home.refresh_form' => '刷新表单', + 'home.refresh_comments' => '刷新评论', + 'home.games' => '游戏', + 'home.countries' => '国家', + 'home.sponsors' => '赞助商 / VPN / 按钮', + 'home.loading' => '加载中…', + 'home.lastfm_loading' => '加载中…', + 'home.person.name' => '莱尔德·隆纳根', + 'home.person.jobtitle' => '软件开发人员 & 内容创作者', + 'home.person.desc' => '莱尔德·隆纳根 (SillyLaird) 的个人主页。包含链接、项目和个人日志。', + 'home.site.name' => 'SillyLaird 的个人主页', + + // startpage (/startpage/) + 'startpage.title' => '起始页 — SillyLaird', + 'startpage.desc' => 'SillyLaird 的浏览器起始页 — 链接卡片、搜索栏、实时电台与正在播放,集中在一个终端风格的面板里。', + + // fill gaps vs en.php (were falling back to English) + 'home.desc' => 'SillyLaird 的个人主页 — 终端气质、小网链接、实时音乐与电台、留言板、游戏档案,以及 clearnet / Tor / I2P / Gemini / Gopher 上的联系方式。', + 'home.now_playing' => '正在播放', + 'home.recent_tracks' => '最近曲目', + 'home.radio_listen' => '在 radio.sillylaird.ca 收听', + 'home.radio_loading' => '正在调谐电台', + 'home.radio_offline' => '电台当前离线', + 'home.guestbook_loading' => '正在加载最近评论', + 'home.guestbook_empty' => '还没有评论 — 来当第一个吧!', + 'home.guestbook_reload' => '重新加载评论', + 'home.lain_alt' => 'Lain 头像 — 《玲音》像素角色', + 'home.lain_secret_1' => 'Let\'s all love Lain.', + 'home.lain_secret_2' => 'Present day. Present time.', + 'home.lain_secret_3' => 'The wired is watching.', + 'home.visit_counter' => '您是第几位访客', + 'home.blog_visit' => '查看完整归档 →', + 'home.changelog_visit' => '查看完整更新日志 →', + 'home.sidebar_nav' => '主页导航', + 'home.sidebar_index' => '目录', + 'home.sidebar_top' => '顶部', + 'home.sidebar_vibe' => 'Last.fm / Vibe', + 'home.sidebar_network' => '网络', + 'home.sidebar_map' => '站点地图', + 'home.sidebar_startpage' => '起始页', + 'home.sidebar_altnets' => '替代网络', + 'home.sidebar_altnets_aria'=> '替代网络协议', + + 'profile.title' => '个人资料 — SillyLaird', + 'profile.desc' => 'Laird Lonergan 的联系卡片 / 个人资料。', + 'profile.h1' => 'Laird Lonergan', + 'profile.subtitle' => '简洁的联系卡片。', + + 'multibox.title_short' => 'MMORPG Multiboxing Guide — SillyLaird', + 'multibox.desc_short' => '多开指南落地页。', + 'multibox.h1' => 'MMORPG 多开指南', + 'multibox.subtitle' => '本指南已移入统一的游戏分区。', + 'multibox.link_main' => '多开(主页)', + 'multibox.link_what' => '什么是多开?(详细)', + + 'hat.desc' => '帽子收藏网站的笔记 / 结构。', + 'hat.subtitle' => '笔记 / 布局草图。', + + // game collection + 'collection.title' => '游戏收藏 — SillyLaird', + 'collection.desc' => '个人游戏目录 — 主机库与 Konami 曲包。', + 'collection.h1' => '游戏收藏', + 'collection.subtitle' => '手头的主机、游戏与曲包小目录。', + 'collection.games_label' => '款游戏', + 'collection.systems_label' => '个系统', + 'collection.empty' => '还没有系统。请在管理的 Collection 标签或 games.json 中添加。', + 'collection.empty_system' => '该系统下还没有游戏。', + 'collection.online_subtitle' => 'Konami 音游曲包与工具。每行是 游戏 :: 曲包名。', + 'collection.online_links_label' => '个曲包', + 'collection.online_empty' => '还没有曲包。请在管理的 Collection 标签中添加。', + 'collection.online_empty_cat' => '该游戏下还没有曲包。', + 'collection.visit_product' => '商店', + 'collection.no_photo' => '无图', + 'collection.jump_nav' => '收藏分区', + 'collection.menu_games' => '电子游戏', + 'collection.menu_videogames' => '电子游戏', + 'collection.menu_consoles' => '主机', + 'collection.menu_hardware' => '硬件', + 'collection.menu_tech' => '电子游戏', + 'collection.menu_packs' => '曲包', + 'collection.menu_online' => '曲包', + 'collection.menu_wishlist' => '愿望单', + 'collection.games_blurb' => '游戏标题。每行是 系统 :: 标题。', + 'collection.consoles_title' => '主机 — SillyLaird', + 'collection.consoles_blurb' => '游戏主机。每行是 名称 :: 型号。', + 'collection.consoles_label' => '台', + 'collection.consoles_empty' => '还没有主机。', + 'collection.hardware_title' => '硬件 — SillyLaird', + 'collection.hardware_page_blurb' => '机台、手柄、电脑等。每行是 名称 :: 型号。', + 'collection.hardware_label' => '件', + 'collection.hardware_empty' => '还没有硬件。', + 'collection.packs_title' => '曲包 — SillyLaird', + 'collection.wishlist_title' => '愿望单 — SillyLaird', + 'collection.wishlist_blurb' => '接下来想要的主机与曲包。', + 'collection.wishlist_count' => '项', + 'collection.wishlist_empty' => '愿望单为空。请在管理后台标为 Wishlist。', + 'collection.spec_system' => '系统', + 'collection.spec_game' => '游戏', + 'collection.spec_status' => '状态', + 'collection.spec_link' => '链接', + 'collection.spec_link_yes' => '商店页', + 'collection.back_gaming' => '← 游戏中心', + 'collection.back_home' => '首页', + 'home.card_collection' => '游戏收藏', + 'home.card_collection_desc' => '主机库 + 曲包目录。', + + 'links.title' => '链接 — SillyLaird', + 'links.desc' => '例行的链接页。', + 'links.h1' => '链接', + 'links.subtitle' => '我喜欢的网站。内容各异。', + 'links.h2_buttons' => '按钮 / 徽章', + + 'guestbook.title' => '留言板 — SillyLaird', + 'guestbook.desc' => '由 PHP 和数据库驱动的共享留言板。', + 'guestbook.h1' => '留言板', + 'guestbook.subtitle' => '在下方签名吧!评论对所有访客共享。', + 'guestbook.reset_form' => '重置表单', + 'guestbook.reset_comments' => '重置评论', + 'guestbook.iframe_form' => '留言板表单', + 'guestbook.iframe_comments'=> '留言板评论', + 'guestbook.local_desc' => '简单的 localStorage 留言板。', + 'guestbook.local_subtitle' => '本页将条目保存在浏览器 localStorage 中,访客之间不共享。', + 'guestbook.label_name' => '名字', + 'guestbook.label_message' => '留言', + 'guestbook.label_captcha' => '验证码', + 'guestbook.captcha_ph' => '输入代码', + 'guestbook.refresh_captcha'=> '刷新验证码', + 'guestbook.submit' => '提交', +]; |
