Add: Japanese(Kansai) locale

This commit is contained in:
cutls 2019-11-16 00:01:54 +09:00
parent 224d762bc6
commit 2e88a8e0c3
8 changed files with 826 additions and 85 deletions

View File

@ -86,7 +86,8 @@
"lang_usetxtbox_reply": "Reply Mode. Ctrl+Shift+C to clear.",
"lang_cards_check": " check",
"lang_cards_pip": "PiP mode",
"lang_cards_link": "Trusted embed HTML by TheDesk(Twitter, nicovideo, YouTube, Spotify, twitcasing)",
"lang_cards_trasted": "Trusted embed HTML by TheDesk(Twitter, nicovideo, YouTube, Spotify, twitcasing)",
"lang_cards_untransted": "Untrusted embed HTML by TheDesk",
"lang_details_nodata": "No data",
"lang_details_filtered": "Filtered toot",
"lang_details_embed": "Embed HTML is cliped.",

View File

@ -0,0 +1,23 @@
{
"list":"アカウント一覧",
"back":"戻る",
"add":"アカウントを追加",
"codesetupwarn":"チェック外したらコード貼っ付けんでもよくなる(<u>Mastodon</u>にWindowsやmacOSからログインするとき)失敗する場合は諦めて入れてや",
"codesetup":"コードセットアップ",
"mainacct":"メインアカウント",
"selacct":"アカウントを選択",
"codepastewarn":"コードはここに貼っ付けて。ログインウィンドウは閉じてもうてもええで。",
"codepaste":"コードを入力",
"domain":"ドメイン名",
"connect":"接続サーバー数",
"toots":"トゥート数",
"users":"ユーザー数",
"users2":"人",
"safety":"コネクション",
"ver":"Mastodonバージョン",
"ko":"個",
"thisismisskey":"これはMisskeyや",
"misskeylogin":"",
"nodata":"アカウントあらへん",
"accessTokenSetup": "アクセストークン使うてもいけるで(コードの代わりにアクセストークンを入れてクリックしてな: 一見さんお断り)"
}

View File

@ -0,0 +1,182 @@
{
"draghere":"ドラッグしてみ?(ドラッグしたらすぐアップロードされるで)",
"close":"Close",
"showSelectProf":"このアカウントのプロフィール出す",
"closethisbox":"このボックスなおす",
"post-new":"投稿",
"toot":"トゥート",
"nsfwDes":"画像を見たらあかんやつにする",
"cwDes":"コンテンツワーニング(ほんまに見るんか?って聞く)",
"selfile":"ファイル選ぶ",
"insertEmoji":"絵文字入れる",
"NPSpotify":"NowPlaying(Spotify)",
"NPiTunes":"NowPlaying(macOS)",
"schedule":"時間指定投稿",
"postat":"時間指定投稿",
"scheduleWarn":"2.7.0~ 5分は待ってな。サーバーの時計おうてるかは知らんで。",
"clearToot":"トゥートボックスのクリア",
"replyMode":"返信モード",
"no":"いいえ",
"yes":"はい",
"temp":"添付ファイル",
"nothing":"なし",
"vis":"公開範囲",
"cwtext":"警告文",
"selectVis":"公開範囲指定",
"publicJP":"公開",
"unlistedJP":"未収載",
"privateJP":"非公開",
"localJP":"ローカル限定",
"directJP":"ダイレクト",
"sectoot":"こっちでもトゥート",
"emojiWarn":"サーバーちゃうかったら絵文字もちゃうで。",
"emojiInsertWarn":"入力できん絵文字もあるけどしゃーない。",
"refreshEmoji":"絵文字更新",
"closeThisBox":"ボックスなおす",
"showThisEmoji":"一覧を表示中",
"customEmoji":"カスタム絵文字",
"peopleEmoji":"ひと",
"natureEmoji":"自然",
"foodEmoji":"食べ物",
"activityEmoji":"活動",
"placeEmoji":"場所",
"thingsEmoji":"もの",
"symbolEmoji":"記号",
"flagsEmoji":"国旗",
"poll":"アンケート",
"pollDdisabled":"アンケート付けへん",
"pollProvider":"アンケートのプロバイダ",
"choice":"選択肢",
"polluntil":"あんたが投票するまで票数教えへん",
"pollmulti":"複数選択を許可",
"expires_in":"有効期限(秒)",
"contextBefore":"これより前の会話",
"thisToot":"対象のトゥート",
"contextAfter":"これより後の会話",
"beforeLTL":"これより前のLocal TL(誰にエアリプしてん)",
"beforeUTL":"これより前のユーザーTL(誰のトゥート言及してんねん)",
"afterLTL":"これより後のLocal TL(誰のトゥート言及してんねん)",
"afterUTL":"これより後のユーザーTL(誰のトゥート言及してんねん)",
"afterFTL":"これより後の連合TL(誰のトゥート言及してんねん)",
"favedPeople":"誰がお気に入りに登録してるんや",
"btedPeople":"誰がお気に入りブーストしたんや",
"useOtherAcct1":"他のアカウント使う",
"useOtherAcct2":"の解除はできひん",
"btWithVis": "公開範囲も決めてからブースト",
"reply":"返信",
"bt":"ブースト",
"favRegist":"お気に入り",
"openBrowser":"ブラウザで開く",
"screenshot":"スクリーンショット",
"copyURL":"URLをコピー",
"embed":"埋め込む",
"toots":"トゥート",
"follow":"フォロー",
"follower":"フォロワー",
"timeline":"タイムライン",
"operateOtherAcct":"他のアカウント使うて何かする",
"list":"リスト",
"makeNew":"新しいやつ",
"blocks":"ブロック",
"mutes":"ミュート",
"block":"ブロック",
"mute":"ミュート",
"domainBlock":"ドメインブロック",
"editProf":"プロフィールいらう",
"change":"変更",
"followReq":"フォローリクエスト",
"likeHimOrHer":"似とうユーザー",
"frc":"あんたにおすすめ",
"more":"他無いんか?",
"endorse":"紹介したる",
"openinbrowser":"ブラウザで開く",
"mainacct":"メインアカウントに設定",
"revoverJP":"する",
"warnUseOtherAcct":"(解除はでけへん。)",
"revoverJPde":"で",
"or":"それか",
"openProf":"プロフィール出す",
"warnListRegist":"リストに入れたかったらまずフォローせなあかん。",
"blockDomain":"ブロックするドメイン",
"name":"名前",
"note":"自己紹介",
"editProfImg":"アバター変える",
"editHeader":"ヘッダー変える",
"blocked":"なんでか知らんけどブロックされとるわ",
"likeUserDes":"あんたと似とうユーザーを発掘すんで。",
"get":"取得",
"historyBack":"一つ前のユーザーデータ",
"empUser":"ユーザー強調",
"supportme":"支援してくれんか?",
"TheDeskDes":"TheDeskは営利目的ちゃうし、有料機能や広告は一切あらへん。<br>せやけど君らが支援してくれとうからTheDeskは続いてるんや。ほんまありがとうな。",
"PatreonSupport":"Patreonで支援",
"PixivSupport":"Pixiv FANBOXで支援",
"AWLSupport":"Amazonほしいものリスト",
"SendAmazonGift1":"",
"SendAmazonGift2":"にAmazonギフトカードを送る",
"monthly":"月額支援(大歓迎)",
"once":"一度限りの支援(めっちゃ歓迎)",
"local":"ローカル",
"localMedia":"ローカル(メディア)",
"home":"ホーム",
"fed":"連合",
"fedMedia":"連合(メディア)",
"dm":"ダイレクトメッセージ",
"integratedTLDes":"統合(ローカルとホーム)",
"localPlusDes":"統合(LTL+BT+返信)",
"notf":"通知",
"showThisTL":"表示するタイムライン",
"webviewWarn":"TweetDeckを出すで。TJDeckをカスタムしたものが読み込まれる(<a href='https://gist.github.com/cutls/8787a55d2c1c53274e68a427966046a6' target='_blank'>Code</a>/<a href='https://gist.github.com/totoraj930/d1394dadb51d75666a76829f61e7280c' target='_blank'>TJDeck</a>)。キーボードショートカットと干渉しはるから、文字入れる時はカラムの「WebView優先」にチェック入れてからしてな。",
"add":"追加",
"search":"検索",
"sortSet":"並べ替え設定",
"selectAcct":"選択(スクロールして全選択肢表示)",
"filterWord":"フィルターワード",
"listLocale":"一覧",
"degree":"適応範囲",
"conver":"会話",
"option":"オプション",
"matchWord":"単語マッチ",
"warnMatchWord":"非ラテン系の文字列では「単語マッチ」はせん方がええで。(これはフリかも知れん)",
"except":"除外",
"exceptWorn":"「除外」にしてもうたらマッチしたトゥートはフィルター解除しても二度と表示されへん。",
"avalableBefore":"有効期限(あと)",
"warnAvBefore":"未指定(または0分)で「無期限」や",
"warnAvBefore2":"この数字はそんなに正確ちゃうで",
"unlimited":"無期限",
"days":"日",
"hours":"時間",
"mins":"分",
"secs":"秒",
"warnOnIntegratedTL":"Integrated TL/Plus TLは、公開/ホームのフィルターワードをどっちも合わせて処理するで",
"helloTheDesk":"やってもうた…再読込して治らんかったら初期化(全データ削除)してな…(予め設定をエクスポートしとくんやで)",
"addColumn":"カラム追加",
"sortColumns":"カラム一覧/並べ替え",
"acctMan":"アカウントマネージャー",
"filter":"フィルター",
"setting":"設定",
"reverse":"トゥートボタンの左右入れ替え",
"f5":"TL再読込",
"nanoDes":"めっちゃ小さいマストドン。",
"verTips":"バージョン",
"clockTips":"時計",
"ramTips":"システムメモリ容量",
"changeTips":"Tips変更",
"helpAndLogs":"ヘルプとログ",
"help":"ヘルプ",
"contactwithlog":"なんか知らんけど動かんとかそういうのを開発者のお兄さんお姉さんに言うときは下のログのそこらへんの時間に起きたなぁってのを拾って連絡するとなんかの助けになるかも知れん。ついでやけどこのウィンドウ全体を横に引き伸ばしたらいい感じに見れるで",
"about":"このソフトについて",
"hereAddColumns":"←ここからTL追加",
"show": "表示",
"directory": "ディレクトリ",
"active": "最新活動順",
"newcomer": "新規順",
"local_only": "ローカルだけ",
"menu": "メニュー",
"demoBottomBtns": "チュートリアル",
"lookAtBottom": "画面下のアイコン群を見てみ。こんなんある思うけどとりあえずバァーっと説明してくで",
"acctManDesc": "アカウントに関することは全部ここ見てな。たくさんアカウント使うたりログアウトするときとか。各アカウントに好きな色設定して彩るんや",
"settingDesc": "設定はここや。数え切れんほどあるわ。(フィルターの管理などMastodon本体の設定はここちゃうで)",
"nanoDescPlus": "めっちゃ小さいMastodonクライアント。(試しに付けてみただけや)",
"menuDesc": "<u>カラム追加や並び変え</u>、<u>リストやフィルター</u>、<u>検索</u>などはここや。とりあえずここ見たらだいたいできる。"
}

View File

@ -0,0 +1,259 @@
{
"language": "ja",
"lang_toot": "トゥート",
"lang_there": "あり",
"lang_nothing": "なし",
"lang_yesno": "はい",
"lang_no": "いいえ",
"lang_progress": "処理中",
"lang_edit": "編集",
"lang_del": "削除",
"lang_add": "追加",
"lang_fatalerroroccured": "あ、やってもうた。これヤバいやつや",
"lang_speech": "Google 日本語",
"lang_lang": "言語",
"lang_langlocale": "日本語(関西)",
"lang_back": "戻る",
"lang_set": "設定",
"lang_langadd": "<a href=\"https://github.com/cutls/TheDesk\" target=\"_blank\">GitHub</a>から翻訳してな。日本の方言はあらへんけど。",
"lang_time_prefixAgo": null,
"lang_time_prefixFromNow": "今から",
"lang_time_suffixAgo": "",
"lang_time_suffixFromNow": "",
"lang_time_inPast": "",
"lang_time_seconds": "%d秒前",
"lang_time_minute": "1分前",
"lang_time_minutes": "%d分前",
"lang_time_hour": "1時間前",
"lang_time_hours": "%d時間前",
"lang_time_day": "昨日",
"lang_time_days": "%d日前",
"lang_time_month": "昨月",
"lang_time_months": "%dヶ月前",
"lang_time_year": "去年",
"lang_time_years": "%d年前",
"lang_version_usever": "心配せんでええ。{{ver}}は最新や。",
"lang_version_skipver": "アップデートをスキップしてもうた。",
"lang_version_platform": "このソフトウェアMicrosoft Storeからダウンロードしたんか普通はホームページからインストールするし「いいえ」でええんやけど。「はい」にしたらMicrosoft StoreはんがアップデートするからTheDeskはアップデートせえへんとか言わへんようになる。",
"lang_version_platform_linux": "このソフトウェアSnapcraftからダウンロードしたんか普通はホームページからインストールするし「いいえ」でええんやけど。「はい」にしたらSnapcraftはんがアップデートするからTheDeskはアップデートせえへんとか言わへんようになる。",
"lang_version_platform_mac": "このソフトウェアHomebrew caskからダウンロードしたんか普通はホームページからインストールするし「いいえ」でええんやけど。「はい」にしたらHomebrew caskはんがアップデートするからTheDeskはアップデートせえへんとか言わへんようになる。",
"lang_login_noauth": "認証せんと見る",
"lang_manager_info": "インスタンス情報",
"lang_manager_refresh": "情報更新",
"lang_manager_delete": "削除",
"lang_manager_color": "アカウントカラー選ぶ",
"lang_manager_confirm": "を消すで。",
"lang_manager_mainAcct": "メインアカウント設定したで。",
"lang_manager_def": "既定",
"lang_manager_none": "なし",
"lang_manager_godev": "",
"lang_manager_logout": "ログアウト",
"lang_bbmd_misskey": "TheDeskのMisskeyは、@を返信として扱うけんど、全ての@はなおされて別パラメータになってまう。ついでに、「未収載」は「ホーム」扱いや。",
"lang_emoji_get": "絵文字リスト引っ張ってくる",
"lang_emoji_custom": "カスタム絵文字",
"lang_defaultemojis_text": "{{cat}}の絵文字",
"lang_emoji_uncat": "未分類",
"lang_postimg_previewdis": "プレビューできへん。",
"lang_postimg_aftupload": "アップロードしたらアカウントは切り替えられへん。",
"lang_postimg_failupload": "アップロードできんかったわ。",
"lang_postimg_delete": "クリック: 画像に説明付ける/右クリック: 削除",
"lang_postimg_desc": "説明",
"lang_postimg_leadContext": "画像を削除するんやったら右クリック",
"lang_post_tagTL": "デフォルトタグ無いしこのまま投稿するとローカルには表示されへんで。",
"lang_post_tagVis": "公開範囲が「公開」以外やったら、タグTLには出えへんで。(一部インスタンスを除く)",
"lang_post_cwtitle": "長文投稿の警告",
"lang_post_cwtxt": "指定文字数、行数を超えるトゥートをしようとしてんねんけどどうするCW付ける\n自動CWのタイトル:",
"lang_post_btn1": "キャンセル(投稿せえへん)",
"lang_post_btn2": "CW付けてこのまま投稿",
"lang_post_btn3": "これはええねん(そのまま投稿)",
"lang_status_favWarn": "お気に入り登録したんやけどインスタンスがちゃうときは時間がかかるで、知らんけど。",
"lang_status_btWarn": "ブーストしたんやけどインスタンスがちゃうときは時間がかかるで、知らんけど。",
"lang_status_follow": "フォロー",
"lang_status_unfollow": "フォロー解除",
"lang_status_block": "ブロック",
"lang_status_unblock": "ブロック解除",
"lang_status_mute": "ミュート",
"lang_status_unmute": "ミュート解除",
"lang_status_redraftTitle": "いっぺん消してもっぺん編集",
"lang_status_redraft": "いっぺん消してもっぺん編集するそのトゥートの全てのデータが無くなってまうけど。この機能はベータ版やで。画像はv2.4.1以上やないと無理やで。",
"lang_status_emphas": "を強調したで。リロードしてな。",
"lang_status_unemphas": "を強調解除したで。リロードしてな。",
"lang_status_unendorse": "紹介解除",
"lang_status_endorse": "プロフで紹介する",
"lang_status_followers": "フォロワー",
"lang_status_active": "最新トゥート",
"lang_suggest_nodata": "サジェストしたいんやけど、絵文字リストを取得してくれへん?",
"lang_usetxtbox_reply": "返信モードや。やめるときはCtrl+Shift+Cな。",
"lang_cards_check": "チェック",
"lang_cards_pip": "ながら観モード",
"lang_cards_transted": "TheDeskがええで言うた埋め込みHTMLです(Twitter, nicovideo, YouTube, Spotify, twitcasting)",
"lang_cards_untransted": "TheDeskはこの埋め込みURLほんまに大丈夫か自信ないけど",
"lang_details_nodata": "データなし",
"lang_details_filtered": "フィルターされたで。",
"lang_details_embed": "埋め込みHTMLがコピーされたで。",
"lang_details_url": "トゥートURLがコピーされたで。",
"lang_details_txt": "トゥート本文がコピーされたで。",
"lang_filter_nodata": "フィルターは無いで",
"lang_filter_errordegree": "適応範囲は一つ以上チェックせなあかんで。",
"lang_list_nodata": "リストは無いで",
"lang_list_show": "表示",
"lang_list_users": "ユーザー一覧",
"lang_list_nouser": "ユーザーはおらんで",
"lang_list_add": "リストに追加",
"lang_list_add_misskey": "(重複追加になってるかもしれん)",
"lang_list_remove": "リストから消す",
"lang_notf_new": "件の新しい通知",
"lang_speech_refresh": "音声読み上げ設定を更新したで。",
"lang_src_ts": "時系列",
"lang_src_people": "人がトゥート",
"lang_tags_always": "常に",
"lang_tags_realtime": "実況",
"lang_tags_tagunpin": "{{tag}}をよく使うタグから消す",
"lang_tags_unrealtime": "実況解除",
"lang_tags_tagwarn": "{{tag}}がないときは自動でタグ付けるで。",
"lang_tl_media": "メディア",
"lang_tl_reconnect": "Streamingに再接続や",
"lang_tl_postmarkers_title": "処理中",
"lang_tl_postmarkers": "未読マーカー送信してるしちょっと待ってな…",
"lang_img_DLDone": "ダウンロード先:",
"lang_img_copyDone": "画像のURLをコピーしたで",
"lang_layout_gotop": "一番上へ。アイコンが赤のときはストリーミングに接続できてへんしF5で再読込やってみて。",
"lang_layout_thisacct": "このアカウントの{{notf}}",
"lang_layout_delthis": "このカラムを削除",
"lang_layout_setthis": "このカラムの設定",
"lang_layout_mediafil": "メディアフィルター",
"lang_layout_linkana": "リンク解析",
"lang_layout_linkanades": "リンクの解析を切り替え",
"lang_layout_tts": "読み上げ",
"lang_layout_reconnect": "カラム再読込",
"lang_layout_headercolor": "TLヘッダーカラー",
"lang_layout_nodata": "[トゥートあらへん]<br>F5/⌘+Rで再読込してみて。",
"lang_layout_dm": "ダイレクトメッセージ",
"lang_layout_webviewmode": "WebView優先",
"lang_excluded": "見せへん通知",
"lang_layout_excludingbt": "BT表示(OFF/BT除外/BTだけ)",
"lang_layout_leftFold": "左へ重ねる",
"lang_layout_leftUnfold": "右へ出す",
"lang_layout_deleteColumn": "カラム削除",
"lang_layout_deleteColumnDesc": "カラムを削除してええ?",
"lang_layout_unread": "未読",
"lang_sort_gothis": "このカラムへ",
"lang_sort_remthis": "このカラムを消す",
"lang_spotify_img": "アルバムアートワークを付けるで。",
"lang_spotify_imgno": "アルバムアートワークを付けへんで。",
"lang_spotify_acct": "まずアカウント連携をしてな",
"lang_spotify_np": "NowPlayingするときのやつを変えたで",
"lang_setting_npprovide": "NowPlayingのソースを{{set}}にしたで",
"lang_hisdata_frcreq": "Mastodon 2.4.3~だけやで",
"lang_hisdata_frcwarn": "非フォローやけど絡みある人らや。",
"lang_hisdata_taketime": "30秒から数分かかることがあるで",
"lang_hisdata_notonmisskey": "このシステムはMisskeyにはあらへん。",
"lang_hisdata_key": "こいつは{{set}}が信じれるって言うてるし信じたってな",
"lang_showontl_movetxt": "このアカウントはお引っ越ししたで",
"lang_showontl_movebtn": "移行先を見る",
"lang_showontl_botacct": "botアカウント",
"lang_showontl_followed": "フォローしてもろてる",
"lang_showontl_notf": "通知",
"lang_showontl_domain": "ドメイン",
"lang_showontl_listwarn": "リストに追加すんにはまずフォローしてな。",
"lang_showontl_verified": "このサイトはこの人のやつやってわかってる。",
"lang_parse_mentioned": "が返信したで",
"lang_parse_faved": "がお気に入り登録したで",
"lang_parse_bted": "がブーストしたで",
"lang_parse_btedsimple": "がブースト",
"lang_parse_polled": "のアンケート",
"lang_parse_notftime": "通知された時間",
"lang_parse_cwshow": "見る",
"lang_parse_fulltext": "以下全文",
"lang_parse_autofold": "自動折り畳み",
"lang_parse_more": "もっと見せてや",
"lang_parse_url": "URL解析",
"lang_parse_tagTL": "{{tag}}のタイムライン",
"lang_parse_tagtoot": "{{tag}}でトゥート",
"lang_parse_tagpin": "{{tag}}をよく使うタグへ",
"lang_parse_public": "公開",
"lang_parse_unlisted": "未収載",
"lang_parse_private": "非公開",
"lang_parse_direct": "ダイレクト",
"lang_parse_clickcopy": "クリックして本文をコピー",
"lang_parse_clickcopyurl": "クリックしてトゥートURLをコピー",
"lang_parse_trans": "このトゥートを標準語に翻訳",
"lang_parse_replyto": "このトゥートに返信",
"lang_parse_bt": "このトゥートをブースト",
"lang_parse_fav": "このトゥートをお気に入り登録",
"lang_parse_quote": "このトゥートを引用",
"lang_parse_del": "このトゥートを削除",
"lang_parse_pin": "このトゥートをピン留め",
"lang_parse_det": "詳細(メインアカウント経由)",
"lang_parse_redraft": "このトゥートを削除して再編集",
"lang_parse_followed": "フォローしてもろた。",
"lang_parse_clientop": "クライアント操作",
"lang_parse_clienttxt": " どうする?",
"lang_parse_clientno": "何もせえへん",
"lang_parse_clientemp": "強調表示/解除",
"lang_parse_clientmute": "ミュート",
"lang_parse_mute": "ミュートするけど設定から解除できんで。",
"lang_parse_voted": "投票済みや",
"lang_parse_vote": "投票",
"lang_parse_unvoted": "結果だけチラ見や",
"lang_parse_endedvote": "終了済み",
"lang_parse_thread": "会話を表示",
"lang_parse_unknown": "添付ファイル",
"lang_parse_nsfw": "閲覧注意",
"lang_parse_html": "埋め込みを表示",
"lang_parse_notffilter": "このユーザーの通知だけ見る",
"lang_misskeyparse_renote": "再投稿",
"lang_misskeyparse_renoteqt": "引用",
"lang_misskeyparse_reaction": "リアクション",
"lang_misskeyparse_tagnostr": "タグTLはストリーミング無いで。",
"lang_misskeyparse_listnostr": "リストTLはストリーミング無いで。",
"lang_misskeyparse_home": "ホーム",
"lang_misskeyparse_followers": "フォロワー",
"lang_misskeyparse_specified": "ユーザー指定",
"lang_misskeyparse_qt": "MisskeyのRenote(引用モード)中:Ctrl+Shift+Cでクリア",
"lang_misskeyparse_renoted": "がRepost",
"lang_misskeyparse_quoted": "が引用",
"lang_misskeyparse_reacted": "がリアクション",
"lang_setting_time": "時間設定を{{set}}に設定したで。",
"lang_setting_theme": "テーマ設定を{{set}}に設定したで。",
"lang_setting_nsfw": "画像表示設定を{{set}}に設定したで。",
"lang_setting_cw": "テキスト表示設定を{{set}}に設定したで。",
"lang_setting_cwtext": "デフォルトの警告文を「{{set}}に設定したで。",
"lang_setting_cws": "標準でCW:{{set}}",
"lang_setting_rp": "リプライ数表示:{{set}}",
"lang_setting_vis": "デフォルトの公開設定を{{set}}に設定したで。",
"lang_setting_popup": "ポップアップお知らせを{{set}}に設定したで。",
"lang_setting_off": "オフ",
"lang_setting_s": "秒",
"lang_setting_box": "デフォルトでのボックスの挙動を{{set}}に設定したで。",
"lang_setting_gif": "アイコンアニメーション再生を{{set}}に設定したで。",
"lang_setting_selt": "{{set1}}行以上または{{set2}}文字以上でテキストを隠すで。",
"lang_setting_autocw": "{{set1}}行以上または{{set2}}文字以上で警告を表示すんで。",
"lang_setting_width": "横幅最低を{{set}}pxに設定したで。",
"lang_setting_fixwidth": "TweetDeckの横幅を{{set}}pxに設定したで。",
"lang_setting_img": "画像投稿後の設定を「{{set}}に設定したで。",
"lang_setting_font": "フォントを{{set}}に設定したで。",
"lang_setting_default": "デフォルト",
"lang_setting_size": "フォントサイズを{{set}}pxに設定したで。",
"lang_setting_imgheight": "画像高さを{{set}}pxに設定したで。",
"lang_setting_ticker": "#InstanceTicker使用を{{set}}に設定したで。",
"lang_setting_animation": "アニメーションを{{set}}に設定したで。",
"lang_setting_tag": "タグの取得範囲を「{{set}}に設定したで。",
"lang_setting_boxConfirm": "投稿ボックスを{{set}}",
"lang_setting_ul": "独自ロケール設定を{{set}}に設定したで。",
"lang_setting_notf": "ネイティブ通知を{{set}}に設定したで。",
"lang_setting_quote": "引用形式を{{set}}に設定したで。",
"lang_setting_via": "via表示を{{set}}に設定したで。",
"lang_setting_mov": "アクションボタン非表示を{{set}}に設定したで。",
"lang_setting_setasread": "通知カラム存在時新着非表示を{{set}}に設定したで。",
"lang_setting_main": "起動時・投稿時のアカウントを{{set}}に設定したで。",
"lang_setting_sec": "セカンダリートゥートボタン:{{set}}",
"lang_setting_ksref": "キーボードショートカットを設定したで。",
"lang_setting_nomuting": "ミュートしているクライアントは無いで。",
"lang_setting_notftest": "通知テスト",
"lang_setting_notftestprof": "アイコンはあんたのアカウントのやつや。",
"lang_setting_exportwarn": "重要なデータだけエクスポートすんで。エクスポートされたデータは他の人に見せたらあかんで(これはフリちゃうで)。全ての認証データが入ってるからな、ほんまやで。",
"lang_setting_importwarn": "全てのデータが無くなってまうで。",
"lang_setting_noupd": "あんたのTheDeskは最新や",
"lang_setting_thisisbeta": "あんたのTheDeskはベータ版やし、アップデートは手動でせなあかん。"
}

View File

@ -0,0 +1,207 @@
{
"setting": "設定",
"set": "設定",
"yes": "はい",
"no": "いいえ",
"none": "なし",
"default": "既定",
"change": "変更",
"select": "選択",
"env": "環境設定",
"setlang": "言語",
"backup": "設定のインポートとエクスポート",
"import": "インポート",
"export": "エクスポート",
"hardwareAcceleration": "ハードウェアアクセラレーションの無効化",
"hardwareAccelerationWarn": "表示(特に設定画面)があかんときは「はい」を選んでな。再起動入るで。",
"theme": "テーマの設定",
"popup": "新規通知のポップアップお知らせの表示秒数",
"popupwarn": "0にしたら出さへん",
"s": "秒",
"nativenotf": "ネイティブ通知設定",
"nnwarn": "Portableバージョンでは表示できんかも知れん。",
"nntest": "通知テスト",
"minwidth": "マルチカラムの最低横幅",
"minwidthwarn": "画面全体の横幅÷コラム数で計算してそれ超してもうたら横スクロール入るで。",
"fixwidth": "TweetDeckの限定の最低横幅",
"fixwidthwarn": "",
"above": "以上",
"font": "フォント",
"fontwarn": "「選択」を押してフォントを選んでな。(Linuxでは動かんかもしれん。)",
"fontsize": "フォントサイズ",
"savefolder": "デフォルトの保存先",
"savefolderwarn": "画像ダウンロードやスクリーンショットはここに保存や。",
"useragent":"ユーザーエージェント",
"useragentWarn":"再起動すんで。",
"absolute": "絶対指定",
"themeSel": "テーマの選択",
"customtheme": "カスタムテーマの作成・編集",
"customthemeDirection": "色の系統",
"advanced":"拡張項目(6つ)を開く",
"advancedWarn":"拡張項目は設定せんと「指定なし」に、基本3項目は白(fff)になるで。拡張項目を閉じた状態で「変更」すると拡張項目は消してまうで。",
"primary": "全体の背景色など",
"secondarycolor": "補助要素に使われる背景色",
"text": "テキストの色",
"accent": "ブーストの背景色など",
"active": "CWボタンやメニュー選択時の背景色",
"modal": "モーダルウィンドウの背景色",
"bottom":"下のメニューバーの背景色",
"postbox":"投稿ボックスやメニューの色",
"subcolor":"背景に準ずる色",
"add_new": "新規作成",
"name": "名前",
"desc": "説明",
"customShare": "このコードは他のTheDeskなどとシェアできるけこのコードをMiASに貼るのはあかん。詳細:<a href=\"https://thedesk.top/mias.html\" target=\"_blank\">テーマ互換性</a>",
"customImport": "カスタムテーマのインポート",
"delete": "削除",
"cImpWarn": "<a href=\"https://assets.msky.cafe/\" target=\"_blank\">MiAS</a>上の80を超えるテーマを張っ付けることもできる。",
"timeline": "タイムラインの設定",
"timemode": "時間表記設定",
"relativetime": "相対時間の例:\"1分前\",\"3日前\"",
"absolutetime": "絶対時間の例\"23:25:21\",\"2017年12月30日 23:59:00\"",
"mixtime": "混合表示は、当日のトゥートのみ相対、それ以外は絶対で表示 ",
"relativesel": "相対時間",
"absolutesel": "絶対時間",
"doublesel": "両方表示",
"mixsel": "混合表示",
"locale": "独自ロケールを使用",
"localewarn": "対応サーバーではそのサーバーにあわせた言語表示ができるで。",
"nswf": "見たあかん言われてる画像は隠す",
"nsfwwarn": "結構強いぼかしがかかるで。",
"cw": "見る前に警告出すように言われてるやつ(CW)を隠す",
"replyct": "リプライ数表示",
"replyct_hidden": "2以上のとき1+と表示",
"replyct_full": "完全に表示",
"gif": "アイコンのアニメーションを再生する",
"box": "投稿ボックスの挙動",
"boxyes": "たたむ",
"boxabs": "枠外クリックしても消えへん(起動時に展開)",
"boxno": "投稿後も隠れへん",
"tag": "タグタイムラインの表示範囲",
"tagfed": "接続しているサーバー",
"taglocal": "検索対象のサーバーのみ",
"via": "viaを表示する",
"mouseover": "アクションメニューを非表示",
"mouseoverwarn": "「マウスオーバー」はちょっとあかんやつかもしれん。",
"mv": "マウスオーバーで表示",
"mvclick": "クリックで表示",
"notfmarker": "通知を開いとったら、通知新着お知らせを出す",
"autofold": "指定行数以上を折りたたむ",
"autofoldwarn": "5文字以下のトゥートはどちらにしろ折りたたまんし、折りたたみ時は改行は描画されん。改行だけ行数とカウントするで。",
"lines": "行",
"letters": "文字",
"or": "または",
"imgheight": "画像の高さ",
"imgheightwarn": "オプション:「full」と指定すると全ての画像をクロップせず全部出すで。",
"ticker": "#InstanceTickerを使う",
"tickerwarn": "トゥートした人の所属サーバーをわかりやすく彩ります(自サーバー以外のトゥート向け)。<a href=\"https://https://wee.jp/\">#InstanceTickerについて</a> Copyright 2018 weepjp, kyori19.",
"animation": "タイムラインのアニメーション",
"markers": "ホームと通知の未読管理",
"markerswarn": "Mastodon 3.0相当以上。WebUIと対応クライアントで共有するやつや。",
"remote_img": "画像をリモートから取得",
"remote_imgWarn": "プレビューはログインサーバーのキャッシュからどちらにしろ取得する。ビューワーのみに適用されるで。",
"replySound": "リプライの通知音",
"favSound": "お気に入り登録の通知音",
"btSound": "ブーストの通知音",
"followSound": "フォローの通知音",
"customSound": "カスタム通知音",
"post": "投稿設定",
"autocw": "長文投稿時に警告",
"autocwwarn": "下で指定した以上のトゥートを投稿しよ思ったらCWするかのダイアログが出るで。",
"defaultcw": "デフォルトの警告文",
"cws": "標準でCWを設定",
"defaultvis": "デフォルトの公開設定",
"public": "公開(Public)",
"unlisted": "未収載(Unlisted)",
"private": "非公開(Private)",
"direct": "ダイレクト(Direct)",
"memory": "前回の投稿設定を記憶する(サーバーごとに覚えとくで)",
"useapi": "マストドンアカウント設定の既定値",
"postimg": "画像投稿設定",
"showurl": "画像を投稿し、画像のURLを最後に表示",
"nourl": "画像を投稿するがURLは出さへん",
"disabled": "あかん",
"quote": "引用形式",
"simple": "URLのみ",
"mention": "URLとアカウント名(相手に通知)",
"full": "本文・URL・アカウント名",
"notqt": "使わない(TL上にボタンも出さん)",
"apiQuote": "パラメーター(対応インスタンス)",
"main": "投稿後や起動時のアカウント",
"mainwarn": "メインアカウントはアカウント設定で選んどいてな。投稿以外のアカウント選択もこれ使うで。",
"lastacct": "最後に使用したアカウント",
"usemainacct": "メインアカウント",
"secondary": "も一個トゥートボタン",
"secwarn": "公開範囲の変更とトゥートを一発でできるやつ。セカンダリートゥートボタン。",
"nothing": "表示しない",
"localonly": "ローカル限定",
"zeroWidthEmoji": "絵文字にゼロ幅スペースを使う",
"keysc": "キーボードショートカットの設定",
"iks": "簡単文字入力",
"okswarn": "絵文字やタグ、&gt;BTなどを登録しておくとすぐに使えてええ感じや。",
"muteemp": "ミュート・強調の設定",
"climute": "クライアントミュート",
"cliemp": "クライアント強調",
"cliwarn": "各トゥートのクライアントをクリックすると設定できるで。",
"enter": "Enterで確定",
"wordmute": "ワードミュート",
"wordemp": "ワード強調",
"useremp": "ユーザー強調",
"useerempwarn": "各ユーザーのデータ表示画面で設定できるで。",
"empcolorwarn": "強調色(テーマによって全然ちゃうで。)",
"spotify": "SpotifyとNowPlayingの設定",
"spotifynote1": "",
"spotifynote2": "ボタンから簡単にNowPlayingができんで。",
"link": "アカウントの連携",
"linkwarn": "APIの性質上thedesk.topへもアクセスするけどしゃーない。",
"connect": "接続",
"disconnect": "切断",
"templateedit": "テンプレートの編集",
"templateeditwarn": "以下を編集してテンプレートを変更できんで。",
"template1": "Spotify:{song}:曲名/{album}:アルバム名/{artist}:アーティスト名/{url}:各曲のSpotifyのURL",
"template2": "macOS:{song}:曲名/{album}:アルバム名/{artist}:アーティスト名/作曲家{composer}/サンプルレート{hz}/ビットレート{bitRate}/ジャンル{genre}",
"template3": "",
"postartwork": "アルバムアートワークを付ける(Spotify)",
"tts": "読み上げの設定",
"bouyomi": "棒読みちゃん連携",
"bouyomiWarn": "「棒読みちゃん用のWebSocket受付プラグイン」が要るで。",
"speed": "速さ",
"speedwarn": "1-100まで、デフォルトは10。",
"pitch": "高さ",
"pitchwarn": "0-100まで、デフォルトは50。(大きくなるほど高い)",
"vol": "音量",
"volwarn": "0-100まで、デフォルトは100。",
"volwarn80": "0-100まで、デフォルトは80。",
"test": "テスト",
"sample": "これはテスト音声やけど、やっぱりTheDeskはええクライアントや思わへんか思わんならええわ。",
"playstop": "再生/停止",
"back": "戻る",
"keyscs": "キーボードショートカット一覧",
"keyscr": "1番目9番目のTLにスクロール",
"keynew": "投稿パネルを開く",
"keytoggle": "投稿パネルを開閉",
"keypost": "投稿",
"keysecpost": "投稿(セカンダリートゥート)",
"keyunread": "全ての通知を既読にする",
"keyesc": "投稿パネルを消す",
"keyf5": "スーパーリロード",
"keyclear": "入力内容を消す",
"keyacctman": "アカウントマネージャ",
"keyshowprof": "現在選択中のプロフィール",
"keyrow": "イメージビューワー起動時に画像切り替え",
"keyzoom": "マウスホイール:イメージビューワー時に拡大縮小",
"whenSelected": "選択時",
"fav": "お気に入り登録",
"bt": "ブースト",
"reply": "返信",
"keyselecttop":"一番上の一番左のトゥートを選択",
"reset": "初期化",
"resetconfirm": "全てのデータを消してまうで。この操作は取り消せへんで。",
"about": "このソフトについて",
"hp": "公式HP",
"support": "支援",
"help": "ヘルプ",
"sushi": "寿司を投げる",
"checkup": "アップデートを確認",
"ossJP": "(オープンソースライセンス)"
}

View File

@ -0,0 +1,19 @@
{
"updatehere":"アップデートあんで",
"download":"開始",
"portable":"ポータブル版",
"installer":"インストーラー版(推奨)",
"linux":"zip版",
"linuxdeb":"deb版(対応の場合推奨)",
"linuxsnap":"snap版",
"snap":"snap版はSnapcraft等よりDLしてな。",
"sureupd":"アップデートは必ずしてな",
"skipupd":"アップデートをスキップする",
"nexttl":"次回TL表示時までスキップ",
"nextver":"次のバージョンが出るまでスキップ",
"problem1":"あかんか?",
"problem2":"<a href='https://thedesk.top'>公式HP</a>からやってみてな。",
"continue":"アップデートを続行",
"dlnow":"ダウンロード中",
"checkWhatIsNew": "アップデート内容"
}

View File

@ -86,7 +86,8 @@
"lang_usetxtbox_reply": "返信モードです。クリアするときはCtrl+Shift+Cを押してください。",
"lang_cards_check": "チェック",
"lang_cards_pip": "ながら観モード",
"lang_cards_link": "TheDeskが認証した埋め込みHTMLです(Twitter, nicovideo, YouTube, Spotify, twitcasting)",
"lang_cards_transted": "TheDeskが認証した埋め込みHTMLです(Twitter, nicovideo, YouTube, Spotify, twitcasting)",
"lang_cards_untransted": "TheDeskはこの埋め込みURLの安全性を確認していません",
"lang_details_nodata": "データなし",
"lang_details_filtered": "フィルターされました。",
"lang_details_embed": "埋め込みHTMLがコピーされました。",

View File

@ -1,115 +1,164 @@
let ver = "20.0.2 (Kawaii)";
if (process.argv.indexOf("--automatic") === -1) {
let input = require("readline-sync").question("version string [empty: " + ver + " (default)]? ");
if (input) {
ver = input;
}
//var basefile="../../"
let ver = '20.0.2 (Kawaii)'
if (process.argv.indexOf('--automatic') === -1) {
let input = require('readline-sync').question('version string [empty: ' + ver + ' (default)]? ')
if (input) {
ver = input
}
//var basefile="../../"
} else {
//var basefile="./"
//var basefile="./"
}
//const { app } = require('electron');
const path = require('path');
const basefile = path.join(__dirname, "../../")
const path = require('path')
const basefile = path.join(__dirname, '../../')
function main(ver, basefile) {
const fs = require("fs");
const execSync = require("child_process").execSync;
let gitHash = execSync("git rev-parse HEAD")
const fs = require('fs')
const execSync = require('child_process').execSync
let gitHash = execSync('git rev-parse HEAD')
.toString()
.trim();
fs.writeFileSync(basefile + "git", gitHash);
console.log("Constructing view files " + ver + ": make sure to update package.json");
const langs = ["ja", "en", "bg", "cs", "de", "es-AR", "ps"];
const langsh = ["日本語", "English", "български", "Česky", "Deutsch", "Spanish, Argentina", "Crowdin translate system(beta)"];
const simples = ["acct", "index", "setting", "update", "setting"];
const samples = ["acct.sample.html", "index.sample.html", "setting.sample.html", "update.sample.html", "setting.sample.js"];
const pages = ["acct.html", "index.html", "setting.html", "update.html", "setting.vue.js"];
let langstr = "";
let refKey = [];
const enJson=JSON.parse(fs.readFileSync(basefile + "view/make/language/en/main.json", "utf8"))
.trim()
fs.writeFileSync(basefile + 'git', gitHash)
console.log('Constructing view files ' + ver + ': make sure to update package.json')
const langs = ['ja', 'ja-KS', 'en', 'bg', 'cs', 'de', 'es-AR', 'ps']
const langsh = [
'日本語',
'日本語(関西)',
'English',
'български',
'Česky',
'Deutsch',
'Spanish, Argentina',
'Crowdin translate system(beta)'
]
const simples = ['acct', 'index', 'setting', 'update', 'setting']
const samples = [
'acct.sample.html',
'index.sample.html',
'setting.sample.html',
'update.sample.html',
'setting.sample.js'
]
const pages = ['acct.html', 'index.html', 'setting.html', 'update.html', 'setting.vue.js']
let langstr = ''
let refKey = []
const enJson = JSON.parse(fs.readFileSync(basefile + 'view/make/language/en/main.json', 'utf8'))
const jaJson = JSON.parse(fs.readFileSync(basefile + 'view/make/language/ja/main.json', 'utf8'))
for (let n = 0; n < langs.length; n++) {
let lang = langs[n];
let targetDir = basefile + "view/" + lang;
let lang = langs[n]
let targetDir = basefile + 'view/' + lang
if (!fs.existsSync(targetDir)) {
fs.mkdirSync(targetDir);
fs.mkdirSync(targetDir)
}
langstr = langstr + "<a onclick=\"changelang('" + lang + '\')" class="pointer" style="margin:4px;border: 1px solid var(--color); padding: 3px">' + langsh[n] + "</a>";
let mainJson=JSON.parse(fs.readFileSync(basefile + "view/make/language/" + lang + "/main.json", "utf8"))
if(lang != "en"){
Object.keys(enJson).forEach(function(key) {
if(!mainJson[key]){
mainJson[key]=enJson[key]
langstr =
langstr +
'<a onclick="changelang(\'' +
lang +
'\')" class="pointer" style="margin:4px;border: 1px solid var(--color); padding: 3px">' +
langsh[n] +
'</a>'
let mainJson = JSON.parse(
fs.readFileSync(basefile + 'view/make/language/' + lang + '/main.json', 'utf8')
)
if (lang == 'ja-KS') {
Object.keys(jaJson).forEach(function(key) {
if (!mainJson[key]) {
mainJson[key] = jaJson[key]
}
});
})
} else if (lang != 'en') {
Object.keys(enJson).forEach(function(key) {
if (!mainJson[key]) {
mainJson[key] = enJson[key]
}
})
}
fs.writeFileSync(basefile + "view/" + lang + "/main.js", JSON.stringify(mainJson).replace(/^{/, "var lang = {"));
fs.writeFileSync(
basefile + 'view/' + lang + '/main.js',
JSON.stringify(mainJson).replace(/^{/, 'var lang = {')
)
}
for (let i = 0; i < samples.length; i++) {
let sample = samples[i];
let sourceParent = fs.readFileSync(basefile +"view/make/" +sample, "utf8");
let englishRefer = JSON.parse(fs.readFileSync(basefile +"view/make/language/en/" + simples[i] + ".json", "utf8"));
let sample = samples[i]
let sourceParent = fs.readFileSync(basefile + 'view/make/' + sample, 'utf8')
let englishRefer = JSON.parse(
fs.readFileSync(basefile + 'view/make/language/en/' + simples[i] + '.json', 'utf8')
)
let jaRefer = JSON.parse(
fs.readFileSync(basefile + 'view/make/language/ja/' + simples[i] + '.json', 'utf8')
)
for (let j = 0; j < langs.length; j++) {
let source = sourceParent;
let lang = langs[j];
let target = JSON.parse(fs.readFileSync(basefile +"view/make/language/" + lang + "/" + simples[i] + ".json", "utf8"));
if (lang == "ja") {
let source = sourceParent
let lang = langs[j]
let target = JSON.parse(
fs.readFileSync(
basefile + 'view/make/language/' + lang + '/' + simples[i] + '.json',
'utf8'
)
)
if (lang == 'ja') {
Object.keys(target).forEach(function(key) {
refKey.push(key);
let str = target[key];
if (pages[i] == "setting.vue.js") {
str = str.replace(/'/g, '\\');
refKey.push(key)
let str = target[key]
if (pages[i] == 'setting.vue.js') {
str = str.replace(/'/g, '\\')
}
var regExp = new RegExp("@@" + key + "@@", "g");
source = source.replace(regExp, str);
});
var regExp = new RegExp('@@' + key + '@@', 'g')
source = source.replace(regExp, str)
})
} else {
for (let k = 0; k < refKey.length; k++) {
let tarKey = refKey[k];
let tarKey = refKey[k]
if (target[tarKey]) {
var str = target[tarKey];
var str = target[tarKey]
} else {
var str = englishRefer[tarKey];
}
if (pages[i] == "setting.vue.js") {
if (str) {
str = str.replace(/'/g, '\\');
if (lang == 'ja-KS') {
var str = jaRefer[tarKey]
} else {
var str = englishRefer[tarKey]
}
}
var regExp = new RegExp("@@" + tarKey + "@@", "g");
source = source.replace(regExp, str);
if (pages[i] == 'setting.vue.js') {
if (str) {
str = str.replace(/'/g, '\\')
}
}
var regExp = new RegExp('@@' + tarKey + '@@', 'g')
source = source.replace(regExp, str)
}
}
if (lang == "ps") {
source = source.replace(/@@comment-start@@/g, "");
source = source.replace(/@@comment-end@@/g, "");
if (lang == 'ps') {
source = source.replace(/@@comment-start@@/g, '')
source = source.replace(/@@comment-end@@/g, '')
} else {
source = source.replace(/@@comment-start@@/g, "<!--");
source = source.replace(/@@comment-end@@/g, "-->");
source = source.replace(/@@comment-start@@/g, '<!--')
source = source.replace(/@@comment-end@@/g, '-->')
}
source = source.replace(/@@versionLetter@@/g, ver);
source = source.replace(/@@gitHash@@/g, gitHash);
source = source.replace(/@@gitHashShort@@/g, gitHash.slice(0, 7));
source = source.replace(/@@lang@@/g, lang);
source = source.replace(/@@langlist@@/g, langstr);
fs.writeFileSync(basefile +"view/" + lang + "/" + pages[i], source);
source = source.replace(/@@versionLetter@@/g, ver)
source = source.replace(/@@gitHash@@/g, gitHash)
source = source.replace(/@@gitHashShort@@/g, gitHash.slice(0, 7))
source = source.replace(/@@lang@@/g, lang)
source = source.replace(/@@langlist@@/g, langstr)
fs.writeFileSync(basefile + 'view/' + lang + '/' + pages[i], source)
}
}
}
main(ver, basefile);
main(ver, basefile)
//if --watch, to yarn dev
if (process.argv.indexOf("--watch") !== -1) {
const chokidar = require("chokidar");
console.log("watch mode(not hot-watch): when construction files are changed, refresh view files but not reload. Please reload manually.")
const watcher = chokidar.watch(basefile +"view/make", {
ignored: "view/make/make.js",
if (process.argv.indexOf('--watch') !== -1) {
const chokidar = require('chokidar')
console.log(
'watch mode(not hot-watch): when construction files are changed, refresh view files but not reload. Please reload manually.'
)
const watcher = chokidar.watch(basefile + 'view/make', {
ignored: 'view/make/make.js',
persistent: true
});
watcher.on("ready", function() {
console.log("watching...");
watcher.on("change", function(path) {
console.log(path + " changed.");
main(ver, basefile);
});
});
})
watcher.on('ready', function() {
console.log('watching...')
watcher.on('change', function(path) {
console.log(path + ' changed.')
main(ver, basefile)
})
})
}