This commit is contained in:
Aya Morisawa
2018-08-02 19:03:31 +09:00
parent 0df093383d
commit 7b33c63f78
34 changed files with 167 additions and 74 deletions

View File

@ -15,7 +15,7 @@ import Index from './views/index.vue';
* init
*/
init(launch => {
document.title = 'Misskey | アプリの連携';
document.title = '%i18n:common.name% | %i18n:common.application-authorization%';
// Init router
const router = new VueRouter({

View File

@ -1,7 +1,7 @@
<template>
<div class="form">
<header>
<h1><i>{{ app.name }}</i>があなたのアカウントにアクセスすることを<b>許可</b>しますか</h1>
<h1>%i18n:@share-access%</h1>
<img :src="app.iconUrl"/>
</header>
<div class="app">
@ -11,25 +11,25 @@
<p class="description">{{ app.description }}</p>
</section>
<section>
<h2>このアプリは次の権限を要求しています:</h2>
<h2>%i18n:@permission-ask%</h2>
<ul>
<template v-for="p in app.permission">
<li v-if="p == 'account-read'">アカウントの情報を見る</li>
<li v-if="p == 'account-write'">アカウントの情報を操作する</li>
<li v-if="p == 'note-write'">投稿する</li>
<li v-if="p == 'like-write'">いいねしたりいいね解除する</li>
<li v-if="p == 'following-write'">フォローしたりフォロー解除する</li>
<li v-if="p == 'drive-read'">ドライブを見る</li>
<li v-if="p == 'drive-write'">ドライブを操作する</li>
<li v-if="p == 'notification-read'">通知を見る</li>
<li v-if="p == 'notification-write'">通知を操作する</li>
<li v-if="p == 'account-read'">%i18n:@account-read%</li>
<li v-if="p == 'account-write'">%i18n:@account-write%</li>
<li v-if="p == 'note-write'">%i18n:@note-write%</li>
<li v-if="p == 'like-write'">%i18n:@like-write%</li>
<li v-if="p == 'following-write'">%i18n:@following-write%</li>
<li v-if="p == 'drive-read'">%i18n:@drive-read%</li>
<li v-if="p == 'drive-write'">%i18n:@drive-write%</li>
<li v-if="p == 'notification-read'">%i18n:@notification-read%</li>
<li v-if="p == 'notification-write'">%i18n:@notification-write%</li>
</template>
</ul>
</section>
</div>
<div class="action">
<button @click="cancel">キャンセル</button>
<button @click="accept">アクセスを許可</button>
<button @click="cancel">%i18n:@cancel%</button>
<button @click="accept">%i18n:@accept%</button>
</div>
</div>
</template>

View File

@ -1,7 +1,7 @@
<template>
<div class="index">
<main v-if="$store.getters.isSignedIn">
<p class="fetching" v-if="fetching">読み込み中<mk-ellipsis/></p>
<p class="fetching" v-if="fetching">%i18n:@loading%<mk-ellipsis/></p>
<x-form
class="form"
ref="form"
@ -11,20 +11,20 @@
@accepted="accepted"
/>
<div class="denied" v-if="state == 'denied'">
<h1>アプリケーションの連携をキャンセルしました</h1>
<p>このアプリがあなたのアカウントにアクセスすることはありません</p>
<h1>%i18n:@denied%</h1>
<p>%i18n:@denied-paragraph%</p>
</div>
<div class="accepted" v-if="state == 'accepted'">
<h1>{{ session.app.isAuthorized ? 'このアプリは既に連携済みです' : 'アプリケーションの連携を許可しました' }}</h1>
<p v-if="session.app.callbackUrl">アプリケーションに戻っています<mk-ellipsis/></p>
<p v-if="!session.app.callbackUrl">アプリケーションに戻ってやっていってください</p>
<h1>{{ session.app.isAuthorized ? '%i18n:@already-authorized%' : '%i18n:@allowed%' }}</h1>
<p v-if="session.app.callbackUrl">%i18n:@callback-url%<mk-ellipsis/></p>
<p v-if="!session.app.callbackUrl">%i18n:@please-go-back%</p>
</div>
<div class="error" v-if="state == 'fetch-session-error'">
<p>セッションが存在しません</p>
<p>%i18n:@error%</p>
</div>
</main>
<main class="signin" v-if="!$store.getters.isSignedIn">
<h1>サインインしてください</h1>
<h1>%i18n:@sign-in%</h1>
<mk-signin/>
</main>
<footer><img src="/assets/auth/icon.svg" alt="Misskey"/></footer>

View File

@ -15,22 +15,22 @@ export default function(type, data): Notification {
switch (type) {
case 'drive_file_created':
return {
title: 'ファイルがアップロードされました',
title: '%i18n:common.notification.file-uploaded%',
body: data.name,
icon: data.url
};
case 'unread_messaging_message':
return {
title: `${getUserName(data.user)}さんからメッセージ:`,
title: '%i18n:common.notification.message-from%'.split("{}")[0] + `${getUserName(data.user)}` + '%i18n:common.notification.message-from%'.split("{}")[1] ,
body: data.text, // TODO: getMessagingMessageSummary(data),
icon: data.user.avatarUrl
};
case 'reversi_invited':
return {
title: '対局への招待があります',
body: `${getUserName(data.parent)}さんから`,
title: '%i18n:common.notification.reversi-invited%',
body: '%i18n:common.notification.reversi-invited-by%'.split("{}")[0] + `${getUserName(data.parent)}` + '%i18n:common.notification.reversi-invited-by%'.split("{}")[1],
icon: data.parent.avatarUrl
};
@ -38,21 +38,21 @@ export default function(type, data): Notification {
switch (data.type) {
case 'mention':
return {
title: `${getUserName(data.user)}さんから:`,
title: '%i18n:common.notification.notified-by%'.split("{}")[0] + `${getUserName(data.user)}さんから:` + '%i18n:common.notification.notified-by%'.split("{}")[1],
body: getNoteSummary(data),
icon: data.user.avatarUrl
};
case 'reply':
return {
title: `${getUserName(data.user)}さんから返信:`,
title: '%i18n:common.notification.reply-from%'.split("{}")[0] + `${getUserName(data.user)}` + '%i18n:common.notification.reply-from%'.split("{}")[1],
body: getNoteSummary(data),
icon: data.user.avatarUrl
};
case 'quote':
return {
title: `${getUserName(data.user)}さんが引用:`,
title: '%i18n:common.notification.quoted-by%'.split("{}")[0] + `${getUserName(data.user)}` + '%i18n:common.notification.quoted-by%'.split("{}")[1],
body: getNoteSummary(data),
icon: data.user.avatarUrl
};

View File

@ -1,12 +1,12 @@
export default date => {
if (typeof date == 'string') date = new Date(date);
return (
date.getFullYear() + '' +
(date.getMonth() + 1) + '' +
date.getDate() + '' +
date.getFullYear() + '%i18n:common.date.full-year%' +
(date.getMonth() + 1) + '%i18n:common.date.month%' +
date.getDate() + '%i18n:common.date.day%' +
' ' +
date.getHours() + '' +
date.getMinutes() + '' +
date.getHours() + '%i18n:common.date.hours%' +
date.getMinutes() + '%i18n:common.date.minutes%' +
' ' +
`(${['日', '月', '火', '水', '木', '金', '土'][date.getDay()]})`
);

View File

@ -5,8 +5,8 @@ declare const fuckAdBlock: any;
export default (os) => {
function adBlockDetected() {
os.apis.dialog({
title: '%fa:exclamation-triangle%広告ブロッカーを無効にしてください',
text: '<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。',
title: '%fa:exclamation-triangle%%i18n:common.adblock.detected%',
text: '%i18n:common.adblock.warning%',
actins: [{
text: 'OK'
}]

View File

@ -71,7 +71,7 @@ export default Vue.extend({
this.user = user;
this.fetching = false;
Progress.done();
document.title = getUserName(this.user) + ' | Misskey';
document.title = getUserName(this.user) + ' | %i18n:common.name%';
});
},

View File

@ -187,7 +187,7 @@ export default Vue.extend({
clearNotification() {
this.unreadCount = 0;
document.title = 'Misskey';
document.title = '%i18n:common.name%';
},
onVisibilitychange() {

View File

@ -6,7 +6,7 @@
import Vue from 'vue';
export default Vue.extend({
mounted() {
document.title = 'Misskey - %i18n:@title%';
document.title = '%i18n:common.name% - %i18n:@title%';
}
});
</script>

View File

@ -16,7 +16,7 @@ export default Vue.extend({
}
},
mounted() {
document.title = 'Misskey';
document.title = '%i18n:common.name%';
Progress.start();
},

View File

@ -1,12 +1,12 @@
<template>
<div class="pptjhabgjtt7kwskbfv4y3uml6fpuhmr">
<h1>%i18n:@share-with%</h1>
<h1>{{'%i18n:@share-with%'.split("{}")[0] + '%i18n:common.name%' + '%i18n:@share-with%'.split("{}")[1]}}</h1>
<div>
<mk-signin v-if="!$store.getters.isSignedIn"/>
<mk-post-form v-else-if="!posted" :initial-text="text" :instant="true" @posted="posted = true"/>
<p v-if="posted" class="posted">%fa:check%</p>
</div>
<button v-if="posted" class="ui button" @click="close">%i18n:@close%</button>
<button v-if="posted" class="ui button" @click="close">%i18n:common.close%</button>
</div>
</template>

View File

@ -68,7 +68,7 @@ export default Vue.extend({
this.user = user;
this.fetching = false;
Progress.done();
document.title = getUserName(this.user) + ' | Misskey';
document.title = getUserName(this.user) + ' | %i18n:common.name%';
});
},

View File

@ -17,7 +17,7 @@
<main>
<div class="about">
<h1 v-if="name">{{ name }}</h1>
<h1 v-else><img :src="$store.state.device.darkmode ? 'assets/title.dark.svg' : 'assets/title.light.svg'" alt="Misskey"></h1>
<h1 v-else><img :src="$store.state.device.darkmode ? 'assets/title.dark.svg' : 'assets/title.light.svg'" alt="%i18n:common.name%"></h1>
<p class="powerd-by" v-if="name">%i18n:@powered-by-misskey%</p>
<p class="desc" v-html="description || '%i18n:common.about%'"></p>
<a ref="signup" @click="signup">📦 %i18n:@signup%</a>
@ -32,7 +32,7 @@
<mk-nav class="nav"/>
</div>
<mk-forkit class="forkit"/>
<img src="assets/title.dark.svg" alt="Misskey">
<img src="assets/title.dark.svg" alt="%i18n:common.name%">
</div>
<div class="tl">
<mk-welcome-timeline :max="20"/>

View File

@ -1,7 +1,7 @@
<template>
<div>
<b-navbar toggleable="md" type="dark" variant="info">
<b-navbar-brand>Misskey Developers</b-navbar-brand>
<b-navbar-brand>%i18n:common.name% Developers</b-navbar-brand>
<b-navbar-nav>
<b-nav-item to="/">Home</b-nav-item>
<b-nav-item to="/apps">Apps</b-nav-item>

View File

@ -183,7 +183,7 @@ export default Vue.extend({
clearNotification() {
this.unreadCount = 0;
document.title = 'Misskey';
document.title = '%i18n:common.name%';
},
onVisibilitychange() {

View File

@ -43,7 +43,7 @@ export default Vue.extend({
window.addEventListener('popstate', this.onPopState);
},
mounted() {
document.title = 'Misskey Drive';
document.title = '%i18n:common.name% Drive';
document.documentElement.style.background = '#fff';
},
beforeDestroy() {
@ -63,7 +63,7 @@ export default Vue.extend({
(this.$refs as any).browser.openContextMenu();
},
onMoveRoot(silent) {
const title = 'Misskey Drive';
const title = '%i18n:common.name% Drive';
if (!silent) {
// Rewrite URL
@ -76,7 +76,7 @@ export default Vue.extend({
this.folder = null;
},
onOpenFolder(folder, silent) {
const title = folder.name + ' | Misskey Drive';
const title = folder.name + ' | %i18n:common.name% Drive';
if (!silent) {
// Rewrite URL
@ -89,7 +89,7 @@ export default Vue.extend({
this.folder = folder;
},
onOpenFile(file, silent) {
const title = file.name + ' | Misskey Drive';
const title = file.name + ' | %i18n:common.name% Drive';
if (!silent) {
// Rewrite URL

View File

@ -28,7 +28,7 @@ export default Vue.extend({
this.fetch();
},
mounted() {
document.title = 'Misskey | %i18n:@notifications%';
document.title = '%i18n:common.name% | %i18n:@notifications%';
},
methods: {
fetch() {

View File

@ -49,7 +49,7 @@ export default Vue.extend({
this.user = user;
this.fetching = false;
document.title = '%i18n:@followers-of%'.replace('{}', this.name) + ' | Misskey';
document.title = '%i18n:@followers-of%'.replace('{}', this.name) + ' | %i18n:common.name%';
});
},
onLoaded() {

View File

@ -48,7 +48,7 @@ export default Vue.extend({
this.user = user;
this.fetching = false;
document.title = '%i18n:@followers-of%'.replace('{}', this.name) + ' | Misskey';
document.title = '%i18n:@followers-of%'.replace('{}', this.name) + ' | %i18n:common.name%';
});
},
onLoaded() {

View File

@ -96,7 +96,7 @@ export default Vue.extend({
},
mounted() {
document.title = 'Misskey';
document.title = '%i18n:common.name%';
Progress.start();

View File

@ -47,7 +47,7 @@ export default Vue.extend({
this.user = user;
this.fetching = false;
document.title = `%i18n:@messaging%: ${Vue.filter('userName')(this.user)} | Misskey`;
document.title = `%i18n:@messaging%: ${Vue.filter('userName')(this.user)} | %i18n:common.name%`;
});
}
}

View File

@ -11,7 +11,7 @@ import getAcct from '../../../../../misc/acct/render';
export default Vue.extend({
mounted() {
document.title = 'Misskey %i18n:@messaging%';
document.title = '%i18n:common.name% %i18n:@messaging%';
},
methods: {
navigate(user) {

View File

@ -31,7 +31,7 @@ export default Vue.extend({
this.fetch();
},
mounted() {
document.title = 'Misskey';
document.title = '%i18n:common.name%';
},
methods: {
fetch() {

View File

@ -15,7 +15,7 @@ import Progress from '../../../common/scripts/loading';
export default Vue.extend({
mounted() {
document.title = 'Misskey | %i18n:@notifications%';
document.title = '%i18n:common.name% | %i18n:@notifications%';
Progress.start();
},

View File

@ -25,7 +25,7 @@ export default Vue.extend({
};
},
mounted() {
document.title = 'Misskey | %i18n:@title%';
document.title = '%i18n:common.name% | %i18n:@title%';
Progress.start();

View File

@ -34,7 +34,7 @@ export default Vue.extend({
}
},
mounted() {
document.title = `%i18n:@search%: ${this.q} | Misskey`;
document.title = `%i18n:@search%: ${this.q} | %i18n:common.name%`;
this.fetch();
},

View File

@ -142,7 +142,7 @@ export default Vue.extend({
},
mounted() {
document.title = 'Misskey | %i18n:@settings%';
document.title = '%i18n:common.name% | %i18n:@settings%';
},
methods: {

View File

@ -1,6 +1,6 @@
<template>
<div class="azibmfpleajagva420swmu4c3r7ni7iw">
<h1>Misskeyで共有</h1>
<h1>{{'%i18n:@share-with%'.split("{}")[0] + '%i18n:common.name%' + '%i18n:@share-with%'.split("{}")[1]}}</h1>
<div>
<mk-signin v-if="!$store.getters.isSignedIn"/>
<mk-post-form v-else-if="!posted" :initial-text="text" :instant="true" @posted="posted = true"/>

View File

@ -23,7 +23,7 @@ export default Vue.extend({
};
},
mounted() {
document.title = 'Misskey | %i18n:@title%';
document.title = '%i18n:common.name% | %i18n:@title%';
Progress.start();

View File

@ -106,7 +106,7 @@ export default Vue.extend({
this.fetching = false;
Progress.done();
document.title = Vue.filter('userName')(this.user) + ' | Misskey';
document.title = Vue.filter('userName')(this.user) + ' | %i18n:common.name%';
});
}
}

View File

@ -1,7 +1,7 @@
<template>
<div class="welcome">
<div>
<img :src="$store.state.device.darkmode ? 'assets/title.dark.svg' : 'assets/title.light.svg'" alt="Misskey">
<img :src="$store.state.device.darkmode ? 'assets/title.dark.svg' : 'assets/title.light.svg'" alt="%i18n:common.name%">
<p class="host">{{ host }}</p>
<div class="about">
<h2>{{ name || 'unidentified' }}</h2>

View File

@ -102,12 +102,12 @@ export default Vue.extend({
},
mounted() {
document.title = 'Misskey';
document.title = '%i18n:common.name%';
},
methods: {
hint() {
alert('ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。');
alert('%i18n:@widgets-hints%');
},
widgetFunc(id) {