diff --git a/src/i18n/ja/batch8.ts b/src/i18n/ja/batch8.ts new file mode 100644 index 0000000..0372f6a --- /dev/null +++ b/src/i18n/ja/batch8.ts @@ -0,0 +1,842 @@ +/** + * Japanese (日本語) — batch 8: The Lab UI (labUi). + * + * Skate/brand vocabulary stays English or katakana (The Lab, コーチ, フィルマー, + * フォトグラファー, エディター, ビルダー, クルー, スポット, Stash, Nostr, + * Lightning, Zap, sats); all trick names stay English. `{{placeholders}}` are + * preserved verbatim. + */ +const jaBatch8 = { + labUi: { + activeCount: '{{count}} 件がアクティブ', + addMusicProfile: '音楽プロフィールを追加', + all: 'すべて', + clearAll: 'すべてクリア', + collective: 'コレクティブ', + filters: 'フィルター', + following: 'フォロー中', + getRiderCard: 'ライダーカードを取得', + judgeEvents: 'イベントを審査', + justASkater: 'ただの', + labForServices: 'The Labはサービス向け。スケーターコミュニティ全体を閲覧して参加しよう', + loginToOffer: 'サービスを提供するにはログイン', + newest: '新着順', + noResults: '結果なし', + offer: '提供', + offerBuilding: '建築を提供', + offerCoaching: 'コーチングを提供', + offerCuts: 'カット編集を提供', + offerDesignArt: 'デザイン・アートを提供', + offerEditing: '編集を提供', + offerFilming: '撮影を提供', + offerGraffiti: 'グラフィティを提供', + offerPhotography: '写真撮影を提供', + offerServices: 'サービスを提供', + yourProfiles: 'あなたのLabプロフィール', + preview: { + button: 'プレビュー', + title: 'ライブプレビュー', + desc: '{{noun}}プロフィールが公開後にどのように表示されるかです。', + untitled: 'あなたの名前', + noBio: '自己紹介はまだありません — 提供内容を一言書き加えましょう。', + years: '経験{{count}}年', + portfolio: 'ポートフォリオ', + note: 'プレビューのみ — まだ何も公開されていません。', + }, + draft: { + title: '未保存の下書きがあります', + body: '続きから再開しましょう — 公開ボタンを押すまで何も公開されません。', + resume: '下書きを再開', + discard: '下書きを破棄', + }, + progress: { + title: 'プロフィールの完成度', + count: '{{done}}/{{total}} 完了', + photo: '写真', + bio: '自己紹介', + skills: 'スキル', + rate: '料金', + location: '場所', + contact: '連絡先', + }, + wizard: { + identity: '基本情報', + offer: '提供内容', + rates: '料金', + contact: '連絡先', + media: 'メディア', + }, + offerTattoo: 'タトゥーを提供', + offerTraining: 'トレーニング / 理学療法を提供', + organizeEvents: 'イベントを主催', + resultsMany: '{{count}} 件の結果', + resultsOne: '{{count}} 件の結果', + searchCityPlaceholder: '都市…', + searchNamePlaceholder: '名前、自己紹介…', + showResults: '結果を表示', + showResultsActive: '結果を表示 · {{count}} 件がアクティブ', + skaterWord: 'スケーター', + sortBy: '並べ替え', + theCrew: 'The Crew', + topRated: '高評価順', + trusted: '信頼済み', + trustLevel: '信頼レベル', + yearsExp: '経験{{count}}年', + tabCoaches: 'コーチ', + tabFilmers: 'フィルマー', + tabPhoto: '写真', + tabEditors: 'エディター', + tabBuilders: 'ビルダー', + tabArtists: 'アーティスト', + tabGraffiti: 'グラフィティ', + tabTattoo: 'タトゥー', + tabTrainers: 'トレーナー', + tabMusic: 'ミュージック', + tabJudges: '審査員', + tabOrganizers: '主催者', + tabBarbers: '理髪師', + filterSkillsToLearn: '学びたいスキル', + filterContentType: 'コンテンツの種類', + filterEquipmentStyle: '機材・スタイル', + filterServices: 'サービス', + filterCamera: 'カメラ', + filterLenses: 'レンズ', + filterLighting: '照明', + filterSupportRig: 'サポート・リグ', + filterStyle: 'スタイル', + filterWhatTheyBuild: '何を建てるか', + filterMaterialsTrade: '素材・技術', + filterProjectScale: 'プロジェクト規模', + filterWhatTheyMake: '何を作るか', + filterMedium: '媒体', + filterSoftwareTools: 'ソフトウェア・ツール', + filterWorkContext: '仕事の場面', + filterMethod: '手法', + filterFocus: '専門分野', + filterInjuriesTreated: '対応するケガ', + filterCredentialsSetting: '資格・環境', + filterGenre: 'ジャンル', + filterInstrumentsRole: '楽器・役割', + filterEventFormats: 'イベント形式', + filterSpecialty: '専門', + filterLevelCircuit: 'レベル / サーキット', + filterEventTypes: 'イベントの種類', + filterWhatYouHandle: '対応範囲', + filterScale: '規模', + filterWhatTheyOffer: '提供内容', + filterSignatureStyles: '代表的なスタイル', + filterSetting: '環境', + filterEditType: '編集の種類', + role: { + coach: 'コーチ', + filmer: 'フィルマー', + builder: 'ビルダー', + editor: '動画エディター', + photographer: 'フォトグラファー', + skater: 'スケーター', + }, + empty: { + footer: '質問がありますか? FAQをチェック →', + loginSuffix: 'してプロフィールを作成。', + coachesTitle: 'コーチはまだいません', + coachesBody: 'あなたのエリアでスケートコーチングを提供する最初の一人になりましょう。', + filmersTitle: 'フィルマーはまだいません', + filmersBody: 'スケート撮影を提供する最初の一人になりましょう — クリップ、フルパート、コンテスト取材など。', + photographersTitle: 'フォトグラファーはまだいません', + photographersBody: 'あなたのエリアでスケート写真を提供する最初の一人になりましょう — アクションショット、連写、編集など。', + editorsTitle: '動画エディターはまだいません', + editorsBody: 'スケート動画の編集サービスを提供する最初の一人になりましょう。', + buildersTitle: 'ビルダーはまだいません', + buildersBody: 'ランプ、パーク、DIY建築を掲載する最初の一人になりましょう — コンクリート、木、レールなど。', + artistsTitle: 'アーティストはまだいません', + artistsBody: 'シーンのためにボードグラフィック、ロゴ、ポスター、グッズを提供する最初の一人になりましょう。', + graffitiTitle: 'グラフィティアーティストはまだいません', + graffitiBody: 'あなたのエリアでピース、壁画、スケートパークアートを提供する最初の一人になりましょう。', + tattooTitle: 'タトゥーアーティストはまだいません', + tattooBody: '掲載する最初のスケートカルチャータトゥーアーティストになりましょう — フラッシュ、カスタム、ファインラインなど。', + trainersTitle: 'トレーナーはまだいません', + trainersBody: 'スケーターが強くなり健康を保つ手助けをする最初のトレーナーや理学療法士になりましょう。', + musiciansTitle: 'ミュージシャンはまだいません', + musiciansBody: 'スケートと音楽を両立? あなたのバンドやソロプロジェクトを追加 — ジャンル、楽器、リンク。', + judgesTitle: '審査員はまだいません', + judgesBody: 'フェアなコンテストを運営? Game of S.K.A.T.E.、ベストトリックジャム、コンテスト、ツアー会場の審査員として掲載しましょう。', + organizersTitle: '主催者はまだいません', + organizersBody: 'ジャム、コンペ、ミートアップ、デモを開催? 掲載してスケーターが見つけて予約できるようにしましょう。', + barbersTitle: '理髪師はまだいません', + barbersBody: 'スケーターの髪を切る? 店舗や出張サービスを掲載して、シーンがさっぱりできるように。', + }, + become: { + addNip05: '設定でNIP-05を追加', + backToLab: 'The Labに戻る', + bioWorkLabel: '自己紹介 / 仕事について', + checkContact: '連絡先情報を確認', + cityArea: '都市 / エリア', + cityCountry: '都市、国', + connectWallet: 'ウォレットを接続', + connectWalletNwc: 'NWCでウォレットを接続', + contactInfo: '連絡先情報', + contactInfoDesc: 'クライアントがあなたに連絡する方法 (すべて任意ですが推奨)', + coordinatesOptional: '座標 (任意)', + email: 'メール', + failedToPublish: '公開に失敗しました', + fromNostrProfile: 'あなたのNostrプロフィールから', + geolocationUnsupported: '位置情報に対応していません', + getting: '取得中…', + headline: '見出し', + headlineHint: 'Labカードのタイトルとして表示されます — 例:「{{example}}」。既定はあなたの名前です。', + imageUploaded: '画像をアップロードしました', + instagram: 'Instagram', + invalidEmail: '有効なメールアドレスを入力してください。', + invalidPortfolio: '有効なポートフォリオURLを入力してください。', + invalidWebsite: '有効なウェブサイトURLを入力してください。', + latitude: '緯度', + learnHow: 'やり方を見る', + locationError: '位置情報エラー', + locationFound: '位置情報を取得しました', + loginRequired: 'ログインが必要です', + loginRequiredDesc: '{{role}}プロフィールを作成するにはログインする必要があります。', + loginRequiredDescCraft: '{{noun}}プロフィールを作成するにはログインする必要があります。', + longitude: '経度', + nip05Recommended: 'NIP-05認証を推奨', + nip05RecommendedDesc: '本人確認をしてクライアントとの信頼を築きましょう。', + noWallet: 'ウォレット未接続', + otherSocial: 'その他のSNS', + paymentSetup: '⚡ 支払い設定が必要です', + phoneNumber: '電話番号', + profilePhoto: 'プロフィール写真', + profilePublished: 'プロフィールを公開しました。', + publishing: '公開中...', + socialMedia: 'SNS', + tip: '💡 ヒント: ほとんどのLightningウォレットはNWCに対応しています (Alby、Minibits、Zeus、Coinos)。', + tipWithTime: '💡 ヒント: ほとんどのLightningウォレットはNWCに対応しています (Alby、Minibits、Zeus、Coinos)。セットアップは30秒。', + upload: 'アップロード', + uploadFailed: 'アップロードに失敗しました', + uploadImage: '画像をアップロード', + uploading: 'アップロード中…', + useCurrentLocation: '現在地を使う', + useMyLocation: '現在地を使う', + usingNwc: 'Nostr Wallet Connectを使用中', + usingWebln: 'WebLNブラウザ拡張を使用中', + walletConnected: 'ウォレット接続済み — 支払いを受け取る準備完了!', + website: 'ウェブサイト', + yearsExperience: '経験年数', + }, + coachForm: { + anonymous: '匿名のコーチ', + bioLabel: '自己紹介 / コーチング方針', + bioPlaceholder: 'あなたの経歴、指導スタイル...', + create: 'コーチプロフィールを作成', + created: 'コーチプロフィールを作成しました!', + createPro: 'プロコーチプロフィールを作成', + dmNote: '💬 生徒はSkateSpotsの暗号化メッセージで直接あなたに連絡できます', + heading: 'コーチになる', + headlineExample: 'スケートコーチ ベルリン', + hourlyRate: '時間料金', + identity: 'あなたのコーチとしての基本情報', + nip05Reason: 'NIP-05識別子を追加して本人確認を行い、生徒との信頼を築きましょう — あなたが正規のコーチであることを示せます。', + paymentDesc: '生徒からレッスン料を受け取るには、Lightningウォレットを接続する必要があります。生徒はコーチングセッションに対して直接あなたにZapします。', + profileDesc: '生徒にあなたの経験を伝えましょう', + profileTitle: 'コーチプロフィール', + ratePlaceholder: '5000 sats/時', + selectSkill: '少なくとも1つのスキルを選択してください。', + skillsLabel: '教えられるスキル * (少なくとも1つ選択)', + skillsRequired: 'スキルは必須です', + formatsLabel: 'セッション形式', + formatsHint: 'コーチングの提供方法。', + levelsLabel: '指導レベル', + agesLabel: '対象年齢', + credentialsLabel: '資格・安全', + credentialsHint: '自己申告 — SkateSpotsはこれらを検証しません。', + languagesLabel: '話せる言語', + languagesHint: 'コーチングできる言語を追加してください。', + languagePlaceholder: '例: 日本語、English、Español', + availabilityLabel: '対応可能時間', + bookingLabel: '予約リンク', + bookingHint: '任意 — 生徒が予約して支払えるページ。', + galleryLabel: 'ポートフォリオ写真', + galleryHint: '実際のセッション、生徒、スポットを表示 (最大12枚)。', + galleryAdd: 'ポートフォリオ写真を追加', + galleryUploaded: '{{count}} 枚の写真をアップロードしました', + videoLabel: 'ハイライト動画', + videoHint: '任意 — あなたのコーチングのYouTubeまたはInstagram動画。', + formatOneOnOne: 'マンツーマン', + formatGroup: 'グループ', + formatCamp: 'キャンプ', + formatVideo: '動画分析', + formatContestPrep: 'コンテスト対策', + formatParkLesson: 'パークレッスン', + formatAdaptive: 'アダプティブ', + formatGirls: '女子セッション', + formatAfterSchool: '放課後', + levelBeginner: '初心者', + levelIntermediate: '中級者', + levelAdvanced: '上級者', + levelCompetition: '競技', + ageKids: '子ども', + ageTeens: '10代', + ageAdults: '大人', + ageSeniors: 'シニア', + certFirstAid: '応急処置', + certCpr: 'CPR', + certSafeguarding: 'セーフガーディング', + certBackgroundCheck: '身元調査', + certInsured: '保険加入', + certFederation: '国内連盟コーチ', + certQualification: 'コーチング資格', + certJudge: '競技審査員', + certNoteLabel: 'その他の資格 (任意)', + certNotePlaceholder: '例: Skateboard GB Level 2、コーチ歴8年…', + availWeekdays: '平日', + availWeekends: '週末', + availEvenings: '夜間', + availAfterSchool: '放課後', + availHolidays: '学校休暇', + availSeasonal: '季節限定', + sectionWhatYouCoach: '教える内容', + sectionCredentials: '資格・安全', + sectionAvailability: '対応時間・予約', + sectionWhereYouCoach: '指導する場所', + sectionPortfolio: 'ポートフォリオ', + rateAmountLabel: '料金', + rateCurrencySats: 'sats', + rateCurrencyUsd: 'USD', + rateCurrencyEur: 'EUR', + rateCurrencyGbp: 'GBP', + perHour: '1時間あたり', + perSession: '1セッションあたり', + perHalfDay: '半日あたり', + perDay: '1日あたり', + perCamp: 'キャンプあたり', + perProject: 'プロジェクトあたり', + perEvent: 'イベントあたり', + perGig: 'ギグあたり', + perShoot: '撮影あたり', + perPiece: '1ピースあたり', + perCut: '1カットあたり', + perMonth: '月あたり', + availByAppointment: '予約制', + rateNotesLabel: '料金メモ (任意)', + rateNotesPlaceholder: '段階料金、初回無料、交通費込み…', + sectionPayments: '支払い', + paymentMethodsHint: 'クライアントが支払う方法。これは表明であり、SkateSpotsは資金を預かりません。', + payMethodCash: '現地で現金', + payMethodLightning: 'Lightning', + payMethodCashu: 'Cashu', + payMethodBank: '銀行振込', + payMethodOther: 'その他', + payWhatYouCanLabel: '段階料金 / pay what you can', + bookingFeeLabel: '予約手数料 (任意)', + bookingFeeHint: '予約確定のためにあなたへ直接支払われる少額の手数料。SkateSpotsはこれを預かったり返金したりしません。', + paymentNoteLabel: '支払いメモ (任意)', + paymentNotePlaceholder: '初回無料、交通費込み、セッション後払い…', + spotsDesc: 'コーチングセッションを提供するスポットを選択', + spotsLabel: '指導するスポット', + tagline: 'あなたのスケート知識を共有しよう', + update: 'コーチプロフィールを更新', + updated: 'コーチプロフィールを更新しました!', + }, + filmerForm: { + anonymous: '匿名のフィルマー', + bioPlaceholder: 'あなたの経歴、スタイル、機材...', + camerasLabel: 'カメラ・機材 * (少なくとも1つ選択)', + create: '撮影プロフィールを作成', + created: '撮影プロフィールを作成しました!', + createPro: 'プロ撮影プロフィールを作成', + dmNote: '💬 クライアントはSkateSpotsの暗号化メッセージで直接あなたに連絡できます', + gearHelper: '使用しているカメラ、レンズ、リグを具体的に記載 — スケーターはセッティングに興味があります。', + gearLabel: 'バッグの中身 (任意)', + gearPlaceholder: '例: Sony VX1000 + MK1 フィッシュアイ、Panasonic HVX200、DJI RS3 ジンバル、GoPro Hero 12、Sennheiserマイク...', + heading: 'フィルマーになる', + headlineExample: 'スケートフィルマー ベルリン', + identity: 'あなたのフィルマーとしての基本情報', + nip05Reason: 'NIP-05識別子を追加して本人確認を行い、クライアントとの信頼を築きましょう — あなたが正規のフィルマーであることを示せます。', + paymentDesc: '撮影サービスの報酬を受け取るには、Lightningウォレットを接続する必要があります。クライアントはあなたの仕事に対して直接Zapします。', + profileDesc: 'クライアントにあなたの撮影スキルを伝えましょう', + profileTitle: '撮影プロフィール', + rate: '料金', + ratePlaceholder: '10000 sats/動画', + reelLabel: 'リール / ポートフォリオ', + selectService: '少なくとも1つのサービスを選択してください。', + selectSkill: '少なくとも1つの撮影スキルを選択してください。', + servicesLabel: '提供サービス * (少なくとも1つ選択)', + servicesRequired: 'サービスは必須です', + skillsRequired: 'スキルは必須です', + spotsDesc: '撮影サービスを提供するスポットを選択', + spotsLabel: '撮影するスポット', + tagline: 'スケート動画の撮影を提供 — クリップ、ライン、フルパート、コンテスト取材', + update: '撮影プロフィールを更新', + updated: '撮影プロフィールを更新しました!', + }, + editorForm: { + anonymous: '匿名のエディター', + bioPlaceholder: 'あなたの編集スタイル、経歴、代表的なプロジェクト…', + contactPortfolio: '連絡先・ポートフォリオ', + create: 'エディタープロフィールを公開', + created: 'エディタープロフィールを作成しました!', + createPro: 'プロエディタープロフィールを公開', + editTypes: '提供する編集の種類 * (少なくとも1つ選択)', + hardware: 'ハードウェア', + hardwarePlaceholder: '例: MacBook Pro M3、Sony FX3', + heading: '動画エディターになる', + headlineExample: 'スケート動画エディター', + identity: 'あなたの基本情報', + locationOptional: '場所 (任意)', + loginDesc: 'ログインして動画エディタープロフィールを作成しましょう。', + phoneTelegram: '電話 / Telegram', + portfolioPlaceholder: 'ポートフォリオ (Vimeo、YouTube…)', + profileDesc: 'コミュニティにあなたの編集スタイルとスキルを伝えましょう', + profileTitle: 'エディタープロフィール', + published: 'プロフィールをSkateSpotsに公開しました。', + rate: '料金 / 価格', + ratePlaceholder: '例: 50k sats/分、見積もりはDMで', + selectService: '少なくとも1つの編集タイプを選択してください。', + servicesRequired: 'サービスは必須です', + socialPlaceholder: 'Instagram / SNSアカウント', + software: 'ソフトウェア', + softwareHardware: 'ソフトウェア・ハードウェアスキル', + softwarePlaceholder: '例: DaVinci Resolve、Premiere', + tagline: 'スケートコミュニティに動画編集サービスを提供しよう', + thumbnail: 'プロフィール / ショーリールのサムネイル', + update: 'エディタープロフィールを更新', + updated: 'エディタープロフィールを更新しました!', + walletConnected: 'ウォレット接続済み ✓', + walletDesc: '編集作業の報酬をクライアントから直接Bitcoin ⚡で受け取りましょう。', + walletTitle: '⚡ 支払い用のLightningウォレット', + yearsExperience: '経験年数', + yearsPlaceholder: '例: 5年', + }, + photoForm: { + anonymous: '匿名のフォトグラファー', + bioPlaceholder: 'あなたの経歴、スタイル、撮るのが好きなもの...', + cameraLabel: 'カメラ本体 * (少なくとも1つ選択)', + cameraRequired: 'カメラは必須です', + contactDesc: 'ライダーがあなたの作品を見て連絡する方法 (すべて任意ですが推奨)', + create: '写真プロフィールを作成', + created: '写真プロフィールを作成しました!', + createPro: 'プロ写真プロフィールを作成', + dmNote: '💬 ライダーはSkateSpotsの暗号化メッセージで直接あなたに連絡できます', + gearHelper: '使用しているボディ、レンズ、照明を具体的に記載 — ライダーはセッティングを知るのが大好きです。', + gearPlaceholder: '例: Canon R6 II、8-15mm フィッシュアイ、70-200mm f/2.8、Godox AD200 ×2、リモートトリガー、Manfrotto三脚...', + heading: 'フォトグラファーになる', + headlineExample: 'スケート写真', + identity: 'あなたのフォトグラファーとしての基本情報', + lensesLabel: 'レンズ', + lightingLabel: '照明機材', + nip05Reason: 'NIP-05識別子を追加して本人確認を行い、クライアントとの信頼を築きましょう。', + paymentDesc: '撮影の報酬を受け取るには、Lightningウォレットを接続しましょう。クライアントはあなたの仕事に対して直接Zapします。', + portfolioLabel: 'ポートフォリオ / Instagram', + profileDesc: 'ライダーにあなたの感性、機材、サービスを伝えましょう', + profileTitle: '写真プロフィール', + ratePlaceholder: '20000 sats/撮影', + selectCamera: '使用するカメラの種類を少なくとも1つ選択してください。', + selectService: '提供するサービスを少なくとも1つ選択してください。', + servicesLabel: '提供サービス * (少なくとも1つ選択)', + servicesRequired: 'サービスは必須です', + spotsDesc: '写真撮影を提供するスポットを選択', + spotsLabel: '撮影するスポット', + styleLabel: '撮影スタイル', + supportLabel: 'サポート・リグ', + tagline: 'セッションを撮ろう — スケート写真を提供', + update: '写真プロフィールを更新', + updated: '写真プロフィールを更新しました!', + }, + builderForm: { + anonymous: '匿名のビルダー', + bioLabel: '自己紹介 / 制作について', + bioPlaceholder: 'あなたのクルー、代表的な建築、プロジェクトへの取り組み方...', + buildTypesLabel: '建てるもの * (少なくとも1つ選択)', + buildTypesRequired: '建築タイプは必須です', + cityBase: '都市 / 拠点', + contactPortfolio: '連絡先・ポートフォリオ', + contactPortfolioDesc: 'シーンがあなたの建築を見て連絡する方法 (すべて任意ですが推奨)', + create: 'ビルダープロフィールを作成', + created: 'ビルダープロフィールを作成しました!', + createPro: 'プロビルダープロフィールを作成', + dmNote: '💬 クライアントはSkateSpotsの暗号化メッセージで直接あなたに連絡できます', + gearHelper: 'クルーやクライアントはあなたの道具と進め方を知るのが大好きです。', + gearLabel: '仕事の進め方 / 機材 (任意)', + gearPlaceholder: '例: コンクリート職人チーム、ミキサー+吹付機、出張溶接、許可申請と排水まで対応...', + heading: 'ビルダーになる', + headlineExample: 'ランプ・パークビルダー', + identity: 'あなたのビルダーとしての基本情報', + insured: '有資格 / 保険加入', + insuredHelper: '公共パークや自治体の案件に関連します', + logoPhoto: 'ロゴ / 写真', + materialsLabel: '素材・技術スキル', + nip05Reason: 'NIP-05識別子を追加して本人確認を行い、クライアントとの信頼を築きましょう。', + pastBuilds: '過去の建築 / Instagram', + paymentDesc: '建築の報酬を受け取るには、Lightningウォレットを接続しましょう。クライアントはあなたの仕事に対して直接Zapします。', + profileDesc: 'シーンに何を建て、どう働くかを伝えましょう', + profileTitle: 'ビルダープロフィール', + rateLabel: '料金 / 見積もり基準', + ratePlaceholder: 'm²あたり / プロジェクト単位', + scaleLabel: 'プロジェクト規模', + selectBuild: '建てるものを少なくとも1つ選択してください。', + serviceArea: '対応エリア', + serviceAreaPlaceholder: '例: カタルーニャ、EU全域に出張可', + spotsDesc: '建てたスポットやパークをリンクして、地図で仕事を見てもらいましょう', + spotsLabel: '建てたスポット', + tagline: '打って、溶接して、建てよう — ランプ・パーク建築を掲載', + update: 'ビルダープロフィールを更新', + updated: 'ビルダープロフィールを更新しました!', + yearsBuilding: '建築歴', + }, + skaterForm: { + backToSkaters: 'スケーターに戻る', + bioHelperPulled: 'プロフィールから取得 — スケーターカード用に調整するか、そのままに。', + bioHelperShort: 'スケーターカード用の短い紹介。', + bioPlaceholder: 'スケート歴、好きなこと、取り組んでいること…', + browseSpots: 'スポットを探す', + changePhoto: 'プロフィール写真を変更', + chipBio: '自己紹介', + chipPhoto: '写真', + cityArea: '都市 / エリア', + created: '地図に載りました! 🛹', + custom: 'カスタム', + customHelper: '独自のラベル — プリセットの代わりにスケーターカードに表示されます。', + customPlaceholder: '例: OG、ウィークエンドウォリアー、引退…', + discoverable: '他のスケーターがあなたを見つけられるようになりました。', + editFullProfile: '完全なプロフィールを編集', + fromProfile: 'プロフィールから', + heroEditPrefix: '編集:', + heroJoinPrefix: '参加:', + heroSuffix: 'ディレクトリ', + homeHelper: '自由に入力するか、地図上の実際のスポットをリンクして、みんながそこへ行けるようにしましょう。', + homePlaceholder: '地元のパーク / プラザ — または「スポットを探す」をタップ', + homeSpot: 'ホームスポット', + layerEnd: 'とすべての場所で変更できます。', + layerIntro: 'これはあなたの', + layerMid: 'で、Nostrプロフィールを基盤にしています。名前、写真、自己紹介、lightning、認証はそこから取得されます —', + layerWord: 'スケートレイヤー', + level: 'レベル', + linked: '地図上のスポットにリンク済み', + loadingProfile: 'プロフィールを読み込み中…', + loadingSpots: 'スポットを読み込み中…', + locationHelper: '近くのスケーターが見つけやすくなります。大まかなエリアのみ共有されます。', + loginToJoin: 'ログインして参加', + loginToJoinDesc: 'スケータープロフィールを作成して、コミュニティに見つけてもらいましょう。', + mappedSpot: '地図上のスポット', + noSpots: 'スポットはまだ見つかりません。', + noSpotsMatch: '検索に一致するスポットがありません。', + openMap: '地図を開く', + pickEverything: '自分のスタイルに合うものをすべて選びましょう。', + pickHomeSpot: 'ホームスポットを選ぶ', + pickStyles: 'スタイルを選ぶ', + pickStylesDesc: 'スケートするものを少なくとも1つ選んでください。', + profilePic: 'プロフィール写真', + profilePicHelper: 'スケーターカードはNostrプロフィール写真を使用します — どこでも同じ写真です。', + publishingAs: '公開アカウント', + putOnMap: '地図に載せる', + searchSpots: '名前または都市でスポットを検索…', + skateStory: 'あなたのスケートストーリー', + stance: 'スタンス', + unlinkSpot: 'スポットのリンクを解除', + updateButton: 'プロフィールを更新', + updated: 'プロフィールを更新しました!', + whatYouSkate: 'スケートするもの *', + yearsPlaceholder: '例: 8', + yearsSkating: 'スケート歴', + yourProfilePic: 'あなたのプロフィール写真', + zapsOn: 'Zapオン', + }, + skaters: { + clearSearch: '検索をクリア', + community: 'コミュニティ', + countMany: 'スケーター', + countOne: 'スケーター', + editProfile: 'スケータープロフィールを編集', + heroDesc: '仲間を見つけよう。スタイル、スタンス、レベル、都市別に、SkateSpotsを代表するスケーターのクルーを閲覧できます。', + nip05Verified: 'NIP-05認証済み', + noMatches: '一致なし', + noneDesc: '最初にディレクトリに参加して、SkateSpotsを地図に載せましょう。', + noneTitle: 'スケーターはまだいません', + noVerifiedMatch: '一致する認証済みスケーターがいません', + searchPlaceholder: '名前、都市、npubで検索…', + tryDifferentSearch: '別の検索を試すか、フィルターをクリアしてください。', + tryTurnOffVerified: '「認証済み」フィルターをオフにすると全員表示されます。', + verifiedFilterTitle: 'NIP-05認証済みのスケーターのみ表示', + }, + skaterCard: { + inDirectory: 'あなたはスケーター名鑑に掲載されています', + joinDesc: 'スタンス、スタイル、レベルを追加してスケーターに見つけてもらいましょう。', + joinTitle: 'スケーター名鑑に参加', + }, + crewsStrip: { + allCrews: 'すべてのクルー', + memberMany: '{{count}} 人のメンバー', + memberOne: '{{count}} 人のメンバー', + title: 'このシーンのクルー', + }, + labLink: { + coach: 'コーチ', + filmer: 'フィルマー', + editor: 'エディター', + photographer: 'フォトグラファー', + builder: 'ビルダー', + artist: 'アーティスト', + graffiti: 'グラフィティ', + tattoo: 'タトゥー', + trainer: 'トレーナー', + musician: 'ミュージシャン', + judge: '審査員', + barber: '理髪師', + organizer: '主催者', + lab: 'Lab', + linkedProfiles: 'リンクされたLabプロフィール', + desc: 'スタジオ、コーチング、建築サービスも運営していますか? Labの掲載をリンクして、クルーを雇ってもらいましょう。任意です。Labプロフィールがこのクルーにリンクし返すと、両方に緑の', + descEnd: 'バッジが表示されます。', + empty: 'まだLabプロフィールがありません。The Labで作成してここにリンクしましょう。', + }, + proUpgrade: { + goPro: 'Proになる', + optional: '· 任意', + freeTo: '掲載は無料。Proでは', + proBadge: 'Proバッジ', + featuredPlacement: '特集枠', + atTop: 'がThe Labの上部に追加されます。', + active: '有効', + benefit1: 'プロフィールとカードに金色の「Pro」バッジ', + benefit2: 'スケーターがThe Labを閲覧するとき先頭に特集表示', + benefit3: 'SkateSpotsを支援 — 広告なし、中間業者なし', + platformOwner: 'プラットフォーム所有者 — Proは常に有効です。', + proActiveOne: 'Pro有効 · 残り{{count}}日。あなたのプロフィールが特集されます。', + proActiveMany: 'Pro有効 · 残り{{count}}日。あなたのプロフィールが特集されます。', + context: 'Pro終了後もプロフィールは無料で公開され続けます — バッジとブーストだけが失われます。', + }, + profilePreview: { + viewPublic: '公開ページを表示', + unnamed: '名前のないスケーター', + noHandle: 'ハンドルはまだありません', + }, + pyramid: { + pyramidWord: 'PYRAMID', + rankingsWord: 'RANKINGS', + subtitle: 'あなたの街のトップコントリビューター', + yourRank: 'あなたの順位', + keepContributing: '貢献を続けて順位を上げよう!', + topContributors: 'トップコントリビューター', + noContributors: 'まだコントリビューターがいません。最初にスポットを追加するかイベントを作成しましょう!', + spots: 'スポット', + events: 'イベント', + total: '合計', + trust: '信頼', + }, + detail: { + joined: '参加日', + about: '概要', + howWeWork: '仕事の進め方', + inTheBag: 'バッグの中身', + hardware: 'ハードウェア', + software: 'ソフトウェア', + eventsJudged: '審査したイベント', + eventsOrganized: '主催したイベント', + spots: 'スポット', + viewSpot: 'スポットを見る', + credentialsTitle: '資格・安全', + selfAttested: 'コーチによる自己申告 — SkateSpotsによる検証はありません。', + formats: '形式', + levels: 'レベル', + ages: '年齢層', + languages: '言語', + availability: '対応可能時間', + bookSession: 'セッションを予約', + portfolio: 'ポートフォリオ', + watchReel: '{{platform}}で見る', + paymentsTitle: '支払い', + payWhatYouCan: 'Pay what you can', + bookingFee: '予約手数料', + payBookingFee: '予約手数料を支払う', + bookingFeeNote: 'コーチへ直接支払われます。SkateSpotsは預かったり返金したりしません。', + bookingFeeNoRail: 'このコーチはLightningアドレスを設定していないため、アプリ内支払いは利用できません — 直接連絡して支払いを相談してください。', + serviceArea: '対応エリア', + licensedInsured: '有資格 / 保険加入', + studio: 'スタジオ', + shopStudio: 'ショップ / スタジオ', + booksOpen: '予約受付中', + credentials: '資格', + remoteOnline: 'リモート / オンライン対応', + graffitiCrew: 'グラフィティクルー', + act: 'アクト', + listen: '視聴', + upcomingGigs: '今後のギグ', + past: '過去', + experience: '経験', + yearsCount: '{{count}}年', + rate: '料金', + contact: '連絡先', + sendMessage: 'メッセージを送る', + bookGig: 'ギグを予約', + portfolioDomain: 'ポートフォリオ · {{domain}}', + manage: '管理', + admin: '管理者', + editProfile: 'プロフィールを編集', + publishedTitle: '公開中です', + publishedBody: 'プロフィールをThe Labに公開しました。シェアしてスケーターに見つけてもらいましょう。', + manageRemove: 'あなたの{{noun}}プロフィールをThe Labから削除します。', + adminTakeDown: 'この{{noun}}プロフィールを削除します。SkateSpots全体で非表示になります。', + entityLabel: '{{noun}}プロフィール', + deleteProfile: 'プロフィールを削除', + location: '場所', + servicesSkills: 'サービス・スキル', + noun: { + coach: 'コーチ', + filmer: 'フィルマー', + editor: '動画エディター', + photographer: 'フォトグラファー', + builder: 'ビルダー', + artist: 'アーティスト', + graffiti: 'グラフィティアーティスト', + tattoo: 'タトゥーアーティスト', + trainer: 'トレーナー', + musician: 'ミュージシャン', + judge: 'イベント審査員', + organizer: 'イベント主催者', + barber: '理髪師', + profile: 'プロフィール', + }, + skillsTitle: { + skills: 'スキル', + servicesGear: 'サービス・機材', + whatWeBuild: '建てるもの', + whatTheyMake: '作るもの', + stylesWork: 'スタイル・作品', + styles: 'スタイル', + focusSpecialties: '専門・得意分野', + genresInstruments: 'ジャンル・楽器', + formatsSpecialties: '形式・専門', + servicesStyles: 'サービス・スタイル', + eventTypesServices: 'イベントの種類・サービス', + }, + }, + rider: { + heroDesc: 'あなたの検証可能なスケーターアイデンティティ。Nostr署名済み、印刷対応、偽造不可能。', + heroDesc2: '他のスケーターから実証されたスキルバッジを獲得。パークのアクセスパスを取得。カードをどこでもシェア。', + headerTagline: 'Nostr署名 · 印刷対応 · QR検証', + tabCard: 'マイカード', + tabBadges: 'バッジ', + tabAward: '授与', + rendering: 'レンダリング中…', + shareCard: 'カードをシェア', + savePng: 'PNGを保存', + print: '印刷', + copyId: 'IDをコピー', + cardType: 'カードの種類', + licenseLabel: 'スケーターライセンス', + licenseSub: 'あなた個人のライダーアイデンティティ', + parkLabel: 'パークアクセス', + parkSub: 'パークオーナーとしてパスを発行', + theme: 'テーマ', + holoTitle: 'ホログラフィックシマー', + holoDesc: 'アニメーションの箔押し効果', + cardDetails: 'カードの詳細', + skateStyle: 'スケートスタイル', + ridesFor: 'スポンサー先', + ridesForPlaceholder: '地元ショップ…', + sponsors: 'スポンサー', + sponsorsPlaceholder: 'ブランド…', + showOnCard: 'カードに表示', + zaps: 'Zaps ⚡', + skills: 'スキル', + selected: '{{count}}/6 選択済み', + goldBadgesHint1: 'カードの金バッジは、他のスケーターがあなたを実証したものから得られます — 詳細は', + goldBadgesHint2: '。', + parkOwnersOnly: 'パークオーナー限定。', + parkOwnersDesc: 'パーク掲載を公開したのと同じNostr鍵でこれを発行してください。誰でもQRをスキャンしてオンチェーンで署名を検証できます — 中央機関は不要です。', + parkDetails: 'パークの詳細', + parkName: 'パーク名', + parkNamePlaceholder: 'The Berrics…', + riderName: 'ライダー名', + riderNamePlaceholder: 'カードに表示する名前', + riderNpub: 'ライダーのNostr ID (npub)', + accessLevel: 'アクセスレベル', + validThru: '有効期限', + publishToNostr: 'Nostrに公開', + badgesIntro: 'これらのバッジは、他のスケーターがNostr上で実証し署名したものです。カードに金の⭐チップとして表示されます。', + earnMore: 'もっと獲得したい? 誰かの前でスケートして、トリックを実証してもらいましょう。', + awardSomeone: '他の誰かにバッジを授与', + youSawIt: 'あなたが目撃しました', + youSawItDesc: 'Nostr上で証明に署名します。それは相手の永続的な記録の一部となり、暗号学的にあなたの鍵に結びつきます。', + skillsWitnessed: 'あなたが実証したスキル', + whereSeen: 'どこで見ましたか?', + optional: '(任意)', + signingOnNostr: 'Nostrで署名中…', + awardBadge: 'バッジを授与', + addRiderSkill: 'ライダーのnpubと少なくとも1つのスキルを追加', + invalidNpub: '無効なnpub', + badgeAwarded: '🏅 バッジを授与しました!', + badgeSent: '{{skills}} を送信しました。', + failed: '失敗', + couldNotRender: 'カードをレンダリングできませんでした', + popupBlocked: 'ポップアップがブロックされました', + popupBlockedDesc: 'このサイトのポップアップを許可してください。', + linkCopied: '🔗 リンクをコピーしました!', + enterRiderNpub: 'ライダーのnpubを入力', + parkPublished: '✅ パークアクセスカードを公開しました!', + publishFailed: '公開に失敗しました', + noBadges: 'バッジはまだありません。誰かの前でスケートして、トリックを実証してもらいましょう!', + showMore: 'さらに {{count}} 件表示', + witnessedBy: '実証者', + at: '場所', + previewLicense: 'スケーターライセンス', + previewSince: '{{year}}年から', + previewEvts: 'イベント', + previewScan: 'スキャンして検証', + previewSkatepark: 'スケートパーク', + previewAccessPass: 'アクセスパス', + previewMemberName: 'メンバー名', + previewIssuedBy: 'パークオーナーが発行 · Nostr署名済み', + previewValidThru: '有効期限', + previewNostrVerified: 'Nostr検証済み', + }, + craftFields: { + detailsTitle: '追加の詳細', + deliverables: '成果物', + turnaround: '納期', + surfaces: '面 / 壁', + maxSize: '最大サイズ', + setLength: 'セット時間', + techRider: 'テックライダー', + travel: '出張', + certifications: '資格', + insurance: '保険', + permits: '許可', + deposit: '手付金', + minimum: '最低料金', + modalities: '対応方法', + duration: '所要時間', + drone: 'ドローン', + leadTime: 'リードタイム', + warranty: '保証', + }, + craftForm: { + profileImage: 'プロフィール画像', + nameHeadline: '名前 / 見出し', + about: '概要', + aboutPlaceholder: 'スケーターにあなたの{{noun}}の仕事について伝えましょう…', + required: '必須', + nip05Title: 'NIP-05を追加して信頼を築く', + nip05Desc: 'NIP-05識別子は、あなたが本物であることをスケーターが確認する助けになります。掲載前に強く推奨します。', + editingNote: '既存の{{noun}}プロフィールを編集中 — 公開すると置き換わります。', + location: '場所', + pinned: '📍 地図に固定 ({{lat}}, {{lng}})', + experienceYears: '経験 (年)', + expPlaceholder: '例: 5', + ratePlaceholder: '例: 20k sats / プロジェクト単位', + contactLinks: '連絡先・リンク', + phoneOptional: '電話 (任意)', + emailOptional: 'メール (任意)', + socialPlaceholder: 'SNS (Instagramなど)', + gettingPaid: '報酬の受け取り', + updateProfile: 'プロフィールを更新', + publishProfile: 'プロフィールを公開', + rateLeftBlankNote: '任意 — 上の料金で十分なら空欄のままにしてください。', + sectionRequired: '{{section}}は必須です', + sectionRequiredDesc: '「{{section}}」で少なくとも1つ選択してください。', + updated: 'プロフィールを更新しました!', + created: 'プロフィールを作成しました!', + headlineExample: 'スケートコーチ ベルリン', + }, + }, +}; + +export default jaBatch8; diff --git a/src/i18n/ja/index.ts b/src/i18n/ja/index.ts index 4e11ff2..2800824 100644 --- a/src/i18n/ja/index.ts +++ b/src/i18n/ja/index.ts @@ -3,6 +3,7 @@ import batch2 from './batch2'; import batch3 from './batch3'; import batch4 from './batch4'; import batch5 from './batch5'; +import batch8 from './batch8'; /** * Japanese (日本語) translations — composed from fragments so parallel batches @@ -18,6 +19,7 @@ const ja = { ...batch3, ...batch4, ...batch5, + ...batch8, }; export default ja;