summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOmar Roth <omarroth@protonmail.com>2019-10-27 14:09:31 -0400
committerGitHub <noreply@github.com>2019-10-27 14:09:31 -0400
commit35f011758dd3445841f903eba8b69c61b78f5106 (patch)
treeaa6f766731fe7ebe71b9ece610ed1908471cb6be
parent2ebfaf76f29f52293611e966ea1a82736ae7ea93 (diff)
parentf0368b02c49b88bea90468be0471d07b7b7c45db (diff)
downloadinvidious-35f011758dd3445841f903eba8b69c61b78f5106.tar.gz
invidious-35f011758dd3445841f903eba8b69c61b78f5106.tar.bz2
invidious-35f011758dd3445841f903eba8b69c61b78f5106.zip
Merge pull request #850 from XVnNzb2kFEhV9Tjm/master
Add Japanese translations
-rw-r--r--locales/ja.json387
-rw-r--r--src/invidious.cr1
2 files changed, 388 insertions, 0 deletions
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 b213eb87..d5be4ba1 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -83,6 +83,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"),