0
0
This commit is contained in:
syuilo 2018-08-07 03:20:26 +09:00
parent 75c44cd349
commit d733a1b445
12 changed files with 43 additions and 51 deletions

View File

@ -11,6 +11,7 @@ common:
warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
application-authorization: "アプリの連携"
close: "閉じる"
got-it: "わかった"
customization-tips:
title: "カスタマイズのヒント"
paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。"
@ -41,13 +42,6 @@ common:
trash: "ゴミ箱"
date:
full-year: "年"
month: "月"
day: "日"
hours: "時"
minutes: "分"
weekday-short:
sunday: "日"
monday: "月"
@ -311,6 +305,8 @@ common/views/components/signin.vue:
token: "トークン"
signing-in: "やってます..."
signin: "サインイン"
or: "または"
signin-with-twitter: "Twitterでログイン"
common/views/components/signup.vue:
username: "ユーザー名"
@ -438,6 +434,18 @@ common/views/pages/follow.vue:
request-pending: "フォロー許可待ち"
follow-request: "フォロー申請"
desktop:
banner-crop-title: "バナーとして表示する部分を選択"
banner: "バナー"
uploading-banner: "新しいバナーをアップロードしています"
banner-updated: "バナーを更新しました"
choose-banner: "バナーにする画像を選択"
avatar-crop-title: "アバターとして表示する部分を選択"
avatar: "アバター"
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
notes: "Blue ... Notes"
@ -855,11 +863,10 @@ desktop/views/components/received-follow-requests-window.vue:
accept: "承認"
reject: "拒否"
desktop/views/components/user-lists-window.vue:
title: "リスト"
create-list: "リストを作成"
list-name: "リスト名"
desktop/views/components/user-preview.vue:
notes: "投稿"
@ -964,6 +971,8 @@ desktop/views/pages/user/user.profile.vue:
mute: "ミュートする"
muted: "ミュートしています"
unmute: "ミュート解除"
push-to-a-list: "リストに追加"
list-pushed: "{user}を{list}に追加しました。"
desktop/views/pages/user/user.header.vue:
posts: "投稿"

View File

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

View File

@ -12,7 +12,7 @@
</ui-input>
<ui-input v-if="user && user.twoFactorEnabled" v-model="token" type="number" required/>
<ui-button type="submit" :disabled="signing">{{ signing ? '%i18n:@signing-in%' : '%i18n:@signin%' }}</ui-button>
<p style="margin: 8px 0;">または<a :href="`${apiUrl}/signin/twitter`">Twitterでログイン</a></p>
<p style="margin: 8px 0;">%i18n:@or%<a :href="`${apiUrl}/signin/twitter`">%i18n:@signin-with-twitter%</a></p>
</form>
</template>

View File

@ -8,7 +8,7 @@ export default (os: OS) => (cb, file = null) => {
const w = os.new(CropWindow, {
image: file,
title: 'アバターとして表示する部分を選択',
title: '%i18n:desktop.avatar-crop-title%',
aspectRatio: 1 / 1
});
@ -18,11 +18,11 @@ export default (os: OS) => (cb, file = null) => {
data.append('file', blob, file.name + '.cropped.png');
os.api('drive/folders/find', {
name: 'アイコン'
name: '%i18n:desktop.avatar%'
}).then(iconFolder => {
if (iconFolder.length === 0) {
os.api('drive/folders/create', {
name: 'アイコン'
name: '%i18n:desktop.avatar%'
}).then(iconFolder => {
upload(data, iconFolder);
});
@ -41,7 +41,7 @@ export default (os: OS) => (cb, file = null) => {
const upload = (data, folder) => {
const dialog = os.new(ProgressDialog, {
title: '新しいアバターをアップロードしています'
title: '%i18n:desktop.uploading-avatar%'
});
document.body.appendChild(dialog.$el);
@ -76,10 +76,10 @@ export default (os: OS) => (cb, file = null) => {
});
os.apis.dialog({
title: '%fa:info-circle%アバターを更新しました',
text: '新しいアバターが反映されるまで時間がかかる場合があります。',
title: '%fa:info-circle% %i18n:desktop.avatar-updated%',
text: null,
actions: [{
text: 'わかった'
text: '%i18n:common.got-it%'
}]
});
@ -92,7 +92,7 @@ export default (os: OS) => (cb, file = null) => {
} else {
os.apis.chooseDriveFile({
multiple: false,
title: '%fa:image%アバターにする画像を選択'
title: '%fa:image% %i18n:desktop.choose-avatar%'
}).then(file => {
fileSelected(file);
});

View File

@ -8,7 +8,7 @@ export default (os: OS) => {
const cropImage = file => new Promise((resolve, reject) => {
const w = os.new(CropWindow, {
image: file,
title: 'バナーとして表示する部分を選択',
title: '%i18n:desktop.banner-crop-title%',
aspectRatio: 16 / 9
});
@ -18,11 +18,11 @@ export default (os: OS) => {
data.append('file', blob, file.name + '.cropped.png');
os.api('drive/folders/find', {
name: 'バナー'
name: '%i18n:desktop.banner%'
}).then(bannerFolder => {
if (bannerFolder.length === 0) {
os.api('drive/folders/create', {
name: 'バナー'
name: '%i18n:desktop.banner%'
}).then(iconFolder => {
resolve(upload(data, iconFolder));
});
@ -43,7 +43,7 @@ export default (os: OS) => {
const upload = (data, folder) => new Promise((resolve, reject) => {
const dialog = os.new(ProgressDialog, {
title: '新しいバナーをアップロードしています'
title: '%i18n:desktop.uploading-banner%'
});
document.body.appendChild(dialog.$el);
@ -79,10 +79,10 @@ export default (os: OS) => {
});
os.apis.dialog({
title: '%fa:info-circle%バナーを更新しました',
text: '新しいバナーが反映されるまで時間がかかる場合があります。',
title: '%fa:info-circle% %i18n:desktop.banner-updated%',
text: null,
actions: [{
text: 'わかった'
text: '%i18n:common.got-it%'
}]
});
@ -95,7 +95,7 @@ export default (os: OS) => {
? Promise.resolve(file)
: os.apis.chooseDriveFile({
multiple: false,
title: '%fa:image%バナーにする画像を選択'
title: '%fa:image% %i18n:desktop.choose-banner%'
});
return selectedFile

View File

@ -79,7 +79,6 @@
<script lang="ts">
import Vue from 'vue';
import dateStringify from '../../../common/scripts/date-stringify';
import parse from '../../../../../mfm/parse';
import MkPostFormWindow from './post-form-window.vue';
@ -129,7 +128,7 @@ export default Vue.extend({
: 0;
},
title(): string {
return dateStringify(this.p.createdAt);
return new Date(this.p.createdAt).toLocaleString();
},
urls(): string[] {
if (this.p.text) {

View File

@ -12,7 +12,6 @@
<script lang="ts">
import Vue from 'vue';
import dateStringify from '../../../common/scripts/date-stringify';
export default Vue.extend({
props: {
@ -28,7 +27,7 @@ export default Vue.extend({
},
computed: {
title(): string {
return dateStringify(this.note.createdAt);
return new Date(this.note.createdAt).toLocaleString();
}
}
});

View File

@ -12,13 +12,12 @@
<script lang="ts">
import Vue from 'vue';
import dateStringify from '../../../common/scripts/date-stringify';
export default Vue.extend({
props: ['note'],
computed: {
title(): string {
return dateStringify(this.note.createdAt);
return new Date(this.note.createdAt).toLocaleString();
}
}
});

View File

@ -71,7 +71,6 @@
<script lang="ts">
import Vue from 'vue';
import dateStringify from '../../../common/scripts/date-stringify';
import parse from '../../../../../mfm/parse';
import MkPostFormWindow from './post-form-window.vue';
@ -128,7 +127,7 @@ export default Vue.extend({
},
title(): string {
return dateStringify(this.p.createdAt);
return new Date(this.p.createdAt).toLocaleString();
},
urls(): string[] {

View File

@ -27,7 +27,7 @@ export default Vue.extend({
methods: {
add() {
(this as any).apis.input({
title: 'リスト名',
title: '%i18n:@list-name%',
}).then(async title => {
const list = await (this as any).api('users/lists/create', {
title

View File

@ -13,7 +13,7 @@
<span v-if="user.isMuted">%fa:eye% %i18n:@unmute%</span>
<span v-if="!user.isMuted">%fa:eye-slash% %i18n:@mute%</span>
</button>
<button class="mute ui" @click="list">%fa:list% リストに追加</button>
<button class="mute ui" @click="list">%fa:list% %i18n:@push-to-a-list%</button>
</div>
</div>
</template>
@ -76,7 +76,7 @@ export default Vue.extend({
});
(this as any).apis.dialog({
title: 'Done!',
text: `${this.user.name}${list.title}に追加しました。`
text: '%i18n:@list-pushed%'.replace('{user}', this.user.name).replace('{list}', list.title)
});
});
}

View File

@ -55,7 +55,7 @@ export default define({
}).then(data => {
this.clear();
}).catch(err => {
alert('失敗した');
alert('Something happened');
}).then(() => {
this.posting = false;
});