Merge branch 'develop' of codeberg.org:calckey/calckey into develop

This commit is contained in:
ThatOneCalculator 2023-03-24 12:45:32 -07:00
commit 8acf3833fa
No known key found for this signature in database
GPG key ID: 8703CACD01000000
2 changed files with 10 additions and 5 deletions

View file

@ -849,6 +849,9 @@ overridedDeviceKind: "デバイスタイプ"
smartphone: "スマートフォン" smartphone: "スマートフォン"
tablet: "タブレット" tablet: "タブレット"
auto: "自動" auto: "自動"
showLocalPosts: "ローカルの投稿を表示する場所"
homeTimeline: "ホームタイムライン"
socialTimeline: "ソーシャルタイムライン"
themeColor: "テーマカラー" themeColor: "テーマカラー"
size: "サイズ" size: "サイズ"
numberOfColumn: "列の数" numberOfColumn: "列の数"
@ -1240,10 +1243,10 @@ _tutorial:
step4_2: "最初は{introduction}に投稿したり、シンプルに「こんにちは、アカウント作ってみました!」などの投稿をする人もいます。" step4_2: "最初は{introduction}に投稿したり、シンプルに「こんにちは、アカウント作ってみました!」などの投稿をする人もいます。"
step5_1: "タイムライン、タイムラインだらけ!" step5_1: "タイムライン、タイムラインだらけ!"
step5_2: "あなたのインスタンスでは{timelines}種類のタイムラインが有効になっています。" step5_2: "あなたのインスタンスでは{timelines}種類のタイムラインが有効になっています。"
step5_3: "ホーム{icon}タイムラインでは、あなたがフォローしているアカウントの投稿を見ることができます。" step5_3: "ホーム{icon}タイムラインでは、あなたがフォローしているアカウントとこのインスタンスのみんなの投稿を見ることができます。もしフォローしているアカウントの投稿だけ見たい場合は、設定から変更できます。"
step5_4: "ローカル{icon}タイムラインでは、このインスタンスのみんなの投稿を見ることができます。" step5_4: "ローカル{icon}タイムラインでは、このインスタンスのみんなの投稿を見ることができます。"
step5_5: "おすすめ{icon}タイムラインでは、管理人がおすすめするインスタンスの投稿を見ることができます。" step5_5: "ソーシャル{icon}タイムラインでは、あなたがフォローしているアカウントの投稿を見ることができます。"
step5_6: "ソーシャル{icon}タイムラインでは、ホームタイムラインとローカルタイムラインの投稿を同時に見ることができます。" step5_6: "おすすめ{icon}タイムラインでは、管理人がおすすめするインスタンスの投稿を見ることができます。"
step5_7: "グローバル{icon}タイムラインでは、接続している他のすべてのインスタンスからの投稿を見ることができます。" step5_7: "グローバル{icon}タイムラインでは、接続している他のすべてのインスタンスからの投稿を見ることができます。"
step6_1: "じゃあ、ここはどんな場所なの?" step6_1: "じゃあ、ここはどんな場所なの?"
step6_2: "実は、あなたはただCalckeyに参加しただけではありません。ここは、何千もの相互接続されたサーバーが構成する Fediverse への入口です。各サーバーは「インスタンス」と呼ばれます。" step6_2: "実は、あなたはただCalckeyに参加しただけではありません。ここは、何千もの相互接続されたサーバーが構成する Fediverse への入口です。各サーバーは「インスタンス」と呼ばれます。"

View file

@ -88,8 +88,10 @@ export default defineComponent({
const getUrlParams = () => window.location.search.substring(1).split('&').reduce((result, query) => { const [k, v] = query.split('='); result[k] = decodeURI(v); return result; }, {}); const getUrlParams = () => window.location.search.substring(1).split('&').reduce((result, query) => { const [k, v] = query.split('='); result[k] = decodeURI(v); return result; }, {});
const isMastodon = !!getUrlParams().mastodon const isMastodon = !!getUrlParams().mastodon
if (this.session.app.callbackUrl && isMastodon) { if (this.session.app.callbackUrl && isMastodon) {
const stateParam = !!getUrlParams().state ? `&state=$(getUrlParams().state)` : ''; const callbackUrl = new URL(this.session.app.callbackUrl);
location.href = `${this.session.app.callbackUrl}?code=${this.session.token}${stateParam}`; callbackUrl.searchParams.append("code", this.session.token);
if (!!getUrlParams().state) callbackUrl.searchParams.append("state", getUrlParams().state);
location.href = callbackUrl.toString();
} else if (this.session.app.callbackUrl) { } else if (this.session.app.callbackUrl) {
const url = new URL(this.session.app.callbackUrl); const url = new URL(this.session.app.callbackUrl);
if (['javascript:', 'file:', 'data:', 'mailto:', 'tel:'].includes(url.protocol)) throw new Error('invalid url'); if (['javascript:', 'file:', 'data:', 'mailto:', 'tel:'].includes(url.protocol)) throw new Error('invalid url');