From f0368b02c49b88bea90468be0471d07b7b7c45db Mon Sep 17 00:00:00 2001 From: XVnNzb2kFEhV9Tjm Date: Sat, 26 Oct 2019 18:34:25 +0900 Subject: [PATCH] Add Japanese translations --- locales/ja.json | 387 +++++++++++++++++++++++++++++++++++++++++++++++ src/invidious.cr | 1 + 2 files changed, 388 insertions(+) create mode 100644 locales/ja.json diff --git a/locales/ja.json b/locales/ja.json new file mode 100644 index 00000000..e2aabd0b --- /dev/null +++ b/locales/ja.json @@ -0,0 +1,387 @@ +{ + "`x` subscribers": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 人の登録者", + "": "`x` 人の登録者" + }, + "`x` videos": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 個の動画", + "": "`x` 個の動画" + }, + "`x` playlists": { + "(\\D|^)1(\\D|$)": "`x` 個の再生リスト", + "": "`x` 個の再生リスト" + }, + "LIVE": "ライブ", + "Shared `x` ago": "`x`前に共有", + "Unsubscribe": "登録解除", + "Subscribe": "登録", + "View channel on YouTube": "YouTube でチャンネルを見る", + "View playlist on YouTube": "YouTube で再生リストを見る", + "newest": "新しい順", + "oldest": "古い順", + "popular": "人気順", + "last": "追加順", + "Next page": "次のページ", + "Previous page": "前のページ", + "Clear watch history?": "再生履歴を削除しますか?", + "New password": "新しいパスワード", + "New passwords must match": "新しいパスワードが一致していません", + "Cannot change password for Google accounts": "Google アカウントのパスワードは変更できません", + "Authorize token?": "トークンを認証しますか?", + "Authorize token for `x`?": "トークン `x` を認証しますか?", + "Yes": "はい", + "No": "いいえ", + "Import and Export Data": "データのインポートとエクスポート", + "Import": "インポート", + "Import Invidious data": "Invidious データをインポート", + "Import YouTube subscriptions": "YouTube 登録チャンネルをインポート", + "Import FreeTube subscriptions (.db)": "FreeTube 登録チャンネルをインポート (.db)", + "Import NewPipe subscriptions (.json)": "NewPipe 登録チャンネルをインポート (.json)", + "Import NewPipe data (.zip)": "NewPipe データをインポート (.zip)", + "Export": "エクスポート", + "Export subscriptions as OPML": "登録チャンネルを OPML でエクスポート", + "Export subscriptions as OPML (for NewPipe & FreeTube)": "登録チャンネルを OPML でエクスポート (NewPipe & FreeTube 用)", + "Export data as JSON": "データを JSON でエクスポート", + "Delete account?": "アカウントを削除しますか?", + "History": "履歴", + "An alternative front-end to YouTube": "YouTube の代わりとなる新しいフロントエンド", + "JavaScript license information": "JavaScript ライセンス情報", + "source": "ソース", + "Log in": "ログイン", + "Log in/register": "ログイン/登録", + "Log in with Google": "Google でログイン", + "User ID": "ユーザー ID", + "Password": "パスワード", + "Time (h:mm:ss):": "時間 (時:分分:秒秒):", + "Text CAPTCHA": "テキスト CAPTCHA", + "Image CAPTCHA": "画像 CAPTCHA", + "Sign In": "サインイン", + "Register": "登録", + "E-mail": "メールアドレス", + "Google verification code": "Google 認証コード", + "Preferences": "設定", + "Player preferences": "プレイヤー設定", + "Always loop: ": "常にループ: ", + "Autoplay: ": "自動再生: ", + "Play next by default: ": "デフォルトで次を再生: ", + "Autoplay next video: ": "次の動画を自動再生: ", + "Listen by default: ": "デフォルトでオーディオモードを使用: ", + "Proxy videos: ": "動画をプロキシーに通す: ", + "Default speed: ": "デフォルトの再生速度: ", + "Preferred video quality: ": "優先する画質: ", + "Player volume: ": "プレイヤーの音量: ", + "Default comments: ": "デフォルトのコメント: ", + "youtube": "youtube", + "reddit": "reddit", + "Default captions: ": "デフォルトの字幕: ", + "Fallback captions: ": "フォールバック時の字幕: ", + "Show related videos: ": "関連動画を表示: ", + "Show annotations by default: ": "デフォルトでアノテーションを表示: ", + "Visual preferences": "外観設定", + "Player style: ": "プレイヤースタイル: ", + "Dark mode: ": "ダークモード: ", + "Theme: ": "テーマ: ", + "dark": "ダーク", + "light": "ライト", + "Thin mode: ": "最小モード: ", + "Subscription preferences": "登録チャンネル設定", + "Show annotations by default for subscribed channels: ": "デフォルトで登録チャンネルのアノテーションを表示しますか? ", + "Redirect homepage to feed: ": "ホームからフィードにリダイレクト: ", + "Number of videos shown in feed: ": "フィードに表示する動画の量: ", + "Sort videos by: ": "動画を並び替え: ", + "published": "投稿日", + "published - reverse": "投稿日 - 逆順", + "alphabetically": "アルファベット", + "alphabetically - reverse": "アルファベット - 逆順", + "channel name": "チャンネル名", + "channel name - reverse": "チャンネル名 - 逆順", + "Only show latest video from channel: ": "チャンネルの最新動画のみを表示: ", + "Only show latest unwatched video from channel: ": "チャンネルの最新未視聴動画のみを表示: ", + "Only show unwatched: ": "未視聴のみを表示: ", + "Only show notifications (if there are any): ": "通知のみを表示 (ある場合): ", + "Enable web notifications": "ウェブ通知を有効化", + "`x` uploaded a video": "`x` が動画を投稿しました", + "`x` is live": "`x` がライブ中です", + "Data preferences": "データ設定", + "Clear watch history": "再生履歴の削除", + "Import/export data": "データのインポート/エクスポート", + "Change password": "パスワードを変更", + "Manage subscriptions": "登録チャンネルを管理", + "Manage tokens": "トークンを管理", + "Watch history": "再生履歴", + "Delete account": "アカウントを削除", + "Administrator preferences": "管理者設定", + "Default homepage: ": "デフォルトのホーム: ", + "Feed menu: ": "フィードメニュー: ", + "Top enabled: ": "Top enabled: ", + "CAPTCHA enabled: ": "CAPTCHA を有効化: ", + "Login enabled: ": "ログインを有効化: ", + "Registration enabled: ": "登録を有効化: ", + "Report statistics: ": "統計を報告: ", + "Save preferences": "設定を保存", + "Subscription manager": "登録チャンネルマネージャー", + "Token manager": "トークンマネージャー", + "Token": "トークン", + "`x` subscriptions": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 個の登録チャンネル", + "": "`x` 個の登録チャンネル" + }, + "`x` tokens": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 個のトークン", + "": "`x` 個のトークン" + }, + "Import/export": "インポート/エクスポート", + "unsubscribe": "登録解除", + "revoke": "revoke", + "Subscriptions": "登録チャンネル", + "`x` unseen notifications": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 個の未読通知", + "": "`x` 個の未読通知" + }, + "search": "検索", + "Log out": "ログアウト", + "Released under the AGPLv3 by Omar Roth.": "Omar Roth によって AGPLv3 でリリースされています。", + "Source available here.": "ソースはここで閲覧可能です。", + "View JavaScript license information.": "JavaScript ライセンス情報を見る。", + "View privacy policy.": "プライバシーポリシーを見る。", + "Trending": "急上昇", + "Public": "公開", + "Unlisted": "限定公開", + "Private": "非公開", + "View all playlists": "再生リストをすべて見る", + "Updated `x` ago": "`x`前に更新", + "Delete playlist `x`?": "再生リスト `x` を削除しますか?", + "Delete playlist": "再生リストを削除", + "Create playlist": "再生リストを作成", + "Title": "タイトル", + "Playlist privacy": "再生リストのプライバシー", + "Editing playlist `x`": "再生リスト `x` を編集中", + "Watch on YouTube": "YouTube で視聴", + "Hide annotations": "アノテーションを隠す", + "Show annotations": "アノテーションを表示", + "Genre: ": "ジャンル: ", + "License: ": "ライセンス: ", + "Family friendly? ": "家族向け? ", + "Wilson score: ": "ウィルソンスコア: ", + "Engagement: ": "エンゲージメント: ", + "Whitelisted regions: ": "ホワイトリストの地域: ", + "Blacklisted regions: ": "ブラックリストの地域: ", + "Shared `x`": "`x`に共有", + "`x` views": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 回視聴", + "": "`x` 回視聴" + }, + "Premieres in `x`": "Premieres in `x`", + "Premieres `x`": "Premieres `x`", + "Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "やあ!君は JavaScript を無効にしているのかな?ここをクリックしてコメントを見れるけど、読み込みには少し時間がかかることがあるのを覚えておいてね。", + "View YouTube comments": "YouTube のコメントを見る", + "View more comments on Reddit": "Reddit でコメントをもっと見る", + "View `x` comments": { + "(\\D|^)1(\\D|$)": "`x` 件のコメントを見る", + "": "`x` 件のコメントを見る" + }, + "View Reddit comments": "Reddit のコメントを見る", + "Hide replies": "返信を非表示", + "Show replies": "返信を表示", + "Incorrect password": "パスワードが間違っています", + "Quota exceeded, try again in a few hours": "試行を制限中です。数時間後にやり直してください", + "Unable to log in, make sure two-factor authentication (Authenticator or SMS) is turned on.": "ログインできませんでした。2段階認証 (認証アプリまたは SMS) が有効になっていることを確認してください。", + "Invalid TFA code": "TFA (2段階認証) コードが無効です", + "Login failed. This may be because two-factor authentication is not turned on for your account.": "ログインに失敗しました。あなたのアカウントで2段階認証が有効になっていない可能性があります。", + "Wrong answer": "回答が間違っています", + "Erroneous CAPTCHA": "CAPTCHA が間違っています", + "CAPTCHA is a required field": "CAPTCHA は必須項目です", + "User ID is a required field": "ユーザー ID は必須項目です", + "Password is a required field": "パスワードは必須項目です", + "Wrong username or password": "ユーザー名またはパスワードが間違っています", + "Please sign in using 'Log in with Google'": "'Google でログイン' を使用してログインしてください", + "Password cannot be empty": "パスワードを空にすることはできません", + "Password cannot be longer than 55 characters": "パスワードは55文字より長くできません", + "Please log in": "ログインをしてください", + "Invidious Private Feed for `x`": "`x` の Invidious プライベートフィード", + "channel:`x`": "チャンネル:`x`", + "Deleted or invalid channel": "削除済みまたは無効なチャンネルです", + "This channel does not exist.": "このチャンネルは存在していません", + "Could not get channel info.": "チャンネル情報を取得できませんでした。", + "Could not fetch comments": "コメントを取得できませんでした", + "View `x` replies": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` 件の返信を見る", + "": "`x` 件の返信を見る" + }, + "`x` ago": "`x`前", + "Load more": "もっと読み込む", + "`x` points": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x` ポイント", + "": "`x` ポイント" + }, + "Could not create mix.": "ミックスを作成できませんでした。", + "Empty playlist": "空の再生リスト", + "Not a playlist.": "再生リストではありません。", + "Playlist does not exist.": "再生リストが存在していません・", + "Could not pull trending pages.": "急上昇ページを取得できませんでした。", + "Hidden field \"challenge\" is a required field": "非表示項目 \"challenge\" は必須項目です", + "Hidden field \"token\" is a required field": "非表示項目 \"token\" は必須項目です", + "Erroneous challenge": "チャレンジが間違っています", + "Erroneous token": "トークンが間違っています", + "No such user": "ユーザーが存在しません", + "Token is expired, please try again": "トークンが期限切れです。再度試してください", + "English": "英語", + "English (auto-generated)": "英語 (自動生成)", + "Afrikaans": "アフリカーンス語", + "Albanian": "アルバニア語", + "Amharic": "アムハラ語", + "Arabic": "アラビア語", + "Armenian": "アルメニア語", + "Azerbaijani": "アゼルバイジャン語", + "Bangla": "ベンガル語", + "Basque": "バスク語", + "Belarusian": "ベラルーシ語", + "Bosnian": "ボスニア語", + "Bulgarian": "ブルガリア語", + "Burmese": "ビルマ語", + "Catalan": "カタルーニャ語", + "Cebuano": "セブアノ語", + "Chinese (Simplified)": "中国語 (簡体字)", + "Chinese (Traditional)": "中国語 (繁体字)", + "Corsican": "コルシカ語", + "Croatian": "クロアチア語", + "Czech": "チェコ語", + "Danish": "デンマーク語", + "Dutch": "オランダ語", + "Esperanto": "エスペラント語", + "Estonian": "エストニア語", + "Filipino": "フィリピン語", + "Finnish": "フィンランド語", + "French": "フランス語", + "Galician": "ガルシア語", + "Georgian": "グルジア語", + "German": "ドイツ語", + "Greek": "ギリシャ語", + "Gujarati": "グジャラート語", + "Haitian Creole": "ハイチ語", + "Hausa": "ハウサ語", + "Hawaiian": "ハワイ語", + "Hebrew": "ヘブライ語", + "Hindi": "ヒンディー語", + "Hmong": "ミャオ語", + "Hungarian": "ハンガリー語", + "Icelandic": "アイスランド語", + "Igbo": "イボ語", + "Indonesian": "インドネシア語", + "Irish": "アイルランド語", + "Italian": "イタリア語", + "Japanese": "日本語", + "Javanese": "ジャワ語", + "Kannada": "カンナダ語", + "Kazakh": "カザフ語", + "Khmer": "クメール語", + "Korean": "韓国語", + "Kurdish": "クルド語", + "Kyrgyz": "キルギス語", + "Lao": "ラーオ語", + "Latin": "ラテン語", + "Latvian": "ラトビア語", + "Lithuanian": "リトアニア語", + "Luxembourgish": "ルクセンブルク語", + "Macedonian": "マケドニア語", + "Malagasy": "マダガスカル語", + "Malay": "マレー語", + "Malayalam": "マラヤーラム語", + "Maltese": "マルタ語", + "Maori": "マオリ語", + "Marathi": "マラーティー語", + "Mongolian": "モンゴル語", + "Nepali": "ネパール語", + "Norwegian Bokmål": "ノルウェー語", + "Nyanja": "チェワ語", + "Pashto": "パシュトー語", + "Persian": "ペルシア語", + "Polish": "ポーランド語", + "Portuguese": "ポルトガル語", + "Punjabi": "パンジャーブ語", + "Romanian": "ルーマニア語", + "Russian": "ロシア語", + "Samoan": "サモア語", + "Scottish Gaelic": "スコットランド・ゲール語", + "Serbian": "セルビア語", + "Shona": "ショナ語", + "Sindhi": "シンド語", + "Sinhala": "シンハラ語", + "Slovak": "スロバキア語", + "Slovenian": "スロベニア語", + "Somali": "ソマリ語", + "Southern Sotho": "南ソト語", + "Spanish": "スペイン語", + "Spanish (Latin America)": "スペイン語 (ラテンアメリカ)", + "Sundanese": "スンダ語", + "Swahili": "スワヒリ語", + "Swedish": "スウェーデン語", + "Tajik": "タジク語", + "Tamil": "タミル語", + "Telugu": "テルグ語", + "Thai": "タイ語", + "Turkish": "トルコ語", + "Ukrainian": "ウクライナ語", + "Urdu": "ウルドゥー語", + "Uzbek": "ウズベク語", + "Vietnamese": "ベトナム語", + "Welsh": "ウェールズ語", + "Western Frisian": "西フリジア語", + "Xhosa": "コサ語", + "Yiddish": "イディッシュ語", + "Yoruba": "ヨルバ語", + "Zulu": "ズール語", + "`x` years": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x`年", + "": "`x`年" + }, + "`x` months": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x`月", + "": "`x`月" + }, + "`x` weeks": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x`週", + "": "`x`週" + }, + "`x` days": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x`日", + "": "`x`日" + }, + "`x` hours": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x`時間", + "": "`x`時間" + }, + "`x` minutes": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x`分", + "": "`x`分" + }, + "`x` seconds": { + "([^.,0-9]|^)1([^.,0-9]|$)": "`x`秒", + "": "`x`秒" + }, + "Fallback comments: ": "フォールバック時のコメント: ", + "Popular": "人気", + "Top": "トップ", + "About": "このサービスについて", + "Rating: ": "評価: ", + "Language: ": "言語: ", + "View as playlist": "再生リストで見る", + "Default": "デフォルト", + "Music": "音楽", + "Gaming": "ゲーム", + "News": "ニュース", + "Movies": "映画", + "Download": "ダウンロード", + "Download as: ": "ダウンロード: ", + "%A %B %-d, %Y": "%Y %B %-d %A", + "(edited)": "(編集済み)", + "YouTube comment permalink": "YouTube コメントのパーマリンク", + "permalink": "パーマリンク", + "`x` marked it with a ❤": "`x` が❤を込めてマークしました", + "Audio mode": "オーディオモード", + "Video mode": "ビデオモード", + "Videos": "動画", + "Playlists": "プレイリスト", + "Community": "コミュニティ", + "Current version: ": "現在のバージョン: " +} diff --git a/src/invidious.cr b/src/invidious.cr index cd6775a7..43d2ce72 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -82,6 +82,7 @@ LOCALES = { "fr" => load_locale("fr"), "is" => load_locale("is"), "it" => load_locale("it"), + "ja" => load_locale("ja"), "nb_NO" => load_locale("nb_NO"), "nl" => load_locale("nl"), "pl" => load_locale("pl"),