moar and moar i18n

Signed-off-by: Marcin Mikołajczak <me@m4sk.in>
This commit is contained in:
Marcin Mikołajczak 2018-05-19 23:36:26 +02:00
parent 0f6edf7340
commit 5771a87ed0
12 changed files with 89 additions and 36 deletions

View File

@ -191,6 +191,16 @@ common/views/widgets/server.vue:
title: "サーバー情報" title: "サーバー情報"
toggle: "表示を切り替え" toggle: "表示を切り替え"
commons/views/widgets/visibility-chooser.vue:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
desktop/views/components/activity.chart.vue: desktop/views/components/activity.chart.vue:
total: "Black ... Total" total: "Black ... Total"
notes: "Blue ... Notes" notes: "Blue ... Notes"
@ -340,6 +350,14 @@ desktop/views/components/messaging-room-window.vue:
desktop/views/components/messaging-window.vue: desktop/views/components/messaging-window.vue:
title: "メッセージ" title: "メッセージ"
desktop/views/components/note-detail.vue:
more: "会話をもっと読み込む"
private: "(この投稿は非公開です)"
is-renote: "がRenote"
location: "位置情報"
renote: "Renote"
add-reaction: "リアクション"
desktop/views/components/note-detail.sub.vue: desktop/views/components/note-detail.sub.vue:
private: "(この投稿は非公開です)" private: "(この投稿は非公開です)"
@ -536,6 +554,11 @@ desktop/views/components/settings.profile.vue:
birthday: "誕生日" birthday: "誕生日"
save: "保存" save: "保存"
desktop/views/components/sub-note-content.vue:
hidden: "(この投稿は非公開です)"
media: "つのメディア"
poll: "投票"
desktop/views/components/taskmanager.vue: desktop/views/components/taskmanager.vue:
title: "タスクマネージャ" title: "タスクマネージャ"
@ -583,6 +606,22 @@ desktop/views/components/users-list.vue:
load-more: "もっと" load-more: "もっと"
fetching: "読み込んでいます" fetching: "読み込んでいます"
desktop/views/components/users-list-item.vue:
followed: "フォローされています"
desktop/views/components/window.vue:
popout: "ポップアウト"
close: "閉じる"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/favorites.vue:
more: "さらに読み込む"
desktop/views/pages/home-customize.vue:
title: "ホームのカスタマイズ"
desktop/views/pages/note.vue: desktop/views/pages/note.vue:
prev: "前の投稿" prev: "前の投稿"
next: "次の投稿" next: "次の投稿"
@ -593,6 +632,11 @@ desktop/views/pages/selectdrive.vue:
cancel: "キャンセル" cancel: "キャンセル"
upload: "PCからドライブにファイルをアップロード" upload: "PCからドライブにファイルをアップロード"
desktop/views/pages/user-list.users.vue:
users: "ユーザー"
add-user: "ユーザーを追加"
username: "ユーザー名"
desktop/views/pages/user/user.followers-you-know.vue: desktop/views/pages/user/user.followers-you-know.vue:
title: "知り合いのフォロワー" title: "知り合いのフォロワー"
loading: "読み込み中" loading: "読み込み中"
@ -625,6 +669,12 @@ desktop/views/pages/user/user.profile.vue:
muted: "ミュートしています" muted: "ミュートしています"
unmute: "ミュート解除" unmute: "ミュート解除"
desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
with-media: "メディア"
empty: "このユーザーはまだ何も投稿していないようです。"
desktop/views/widgets/messaging.vue: desktop/views/widgets/messaging.vue:
title: "メッセージ" title: "メッセージ"
@ -642,6 +692,10 @@ desktop/views/widgets/post-form.vue:
note: "投稿" note: "投稿"
placeholder: "いまどうしてる?" placeholder: "いまどうしてる?"
desktop/views/widgets/profile.vue:
update-banner: "クリックでバナー編集"
update-avatar: "クリックでアバター編集"
desktop/views/widgets/trends.vue: desktop/views/widgets/trends.vue:
title: "トレンド" title: "トレンド"
refresh: "他を見る" refresh: "他を見る"

View File

@ -5,34 +5,34 @@
<div @click="choose('public')" :class="{ active: v == 'public' }"> <div @click="choose('public')" :class="{ active: v == 'public' }">
<div>%fa:globe%</div> <div>%fa:globe%</div>
<div> <div>
<span>公開</span> <span>%i18n:@public%</span>
</div> </div>
</div> </div>
<div @click="choose('home')" :class="{ active: v == 'home' }"> <div @click="choose('home')" :class="{ active: v == 'home' }">
<div>%fa:home%</div> <div>%fa:home%</div>
<div> <div>
<span>ホーム</span> <span>%i18n:@home%</span>
<span>ホームタイムラインにのみ公開</span> <span>%i18n:@home-desc%</span>
</div> </div>
</div> </div>
<div @click="choose('followers')" :class="{ active: v == 'followers' }"> <div @click="choose('followers')" :class="{ active: v == 'followers' }">
<div>%fa:unlock%</div> <div>%fa:unlock%</div>
<div> <div>
<span>フォロワー</span> <span>%i18n:@followers%</span>
<span>自分のフォロワーにのみ公開</span> <span>%i18n:@followers-desc%</span>
</div> </div>
</div> </div>
<div @click="choose('specified')" :class="{ active: v == 'specified' }"> <div @click="choose('specified')" :class="{ active: v == 'specified' }">
<div>%fa:envelope%</div> <div>%fa:envelope%</div>
<div> <div>
<span>ダイレクト</span> <span>%i18n:@specified%</span>
<span>指定したユーザーにのみ公開</span> <span>%i18n:@specified-desc%</span>
</div> </div>
</div> </div>
<div @click="choose('private')" :class="{ active: v == 'private' }"> <div @click="choose('private')" :class="{ active: v == 'private' }">
<div>%fa:lock%</div> <div>%fa:lock%</div>
<div> <div>
<span>非公開</span> <span>%i18n:@private%</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -3,7 +3,7 @@
<button <button
class="read-more" class="read-more"
v-if="p.reply && p.reply.replyId && context.length == 0" v-if="p.reply && p.reply.replyId && context.length == 0"
title="会話をもっと読み込む" title="%i18n:@more%"
@click="fetchContext" @click="fetchContext"
:disabled="contextFetching" :disabled="contextFetching"
> >
@ -21,7 +21,7 @@
<mk-avatar class="avatar" :user="note.user"/> <mk-avatar class="avatar" :user="note.user"/>
%fa:retweet% %fa:retweet%
<router-link class="name" :href="note.user | userPage">{{ note.user | userName }}</router-link> <router-link class="name" :href="note.user | userPage">{{ note.user | userName }}</router-link>
がRenote %i18n:@is-renote%
</p> </p>
</div> </div>
<article> <article>
@ -35,7 +35,7 @@
</header> </header>
<div class="body"> <div class="body">
<div class="text"> <div class="text">
<span v-if="p.isHidden" style="opacity: 0.5">(この投稿は非公開です)</span> <span v-if="p.isHidden" style="opacity: 0.5">%i18n:@private%</span>
<mk-note-html v-if="p.text" :text="p.text" :i="os.i"/> <mk-note-html v-if="p.text" :text="p.text" :i="os.i"/>
</div> </div>
<div class="media" v-if="p.media.length > 0"> <div class="media" v-if="p.media.length > 0">
@ -46,7 +46,7 @@
<div class="tags" v-if="p.tags && p.tags.length > 0"> <div class="tags" v-if="p.tags && p.tags.length > 0">
<router-link v-for="tag in p.tags" :key="tag" :to="`/search?q=#${tag}`">{{ tag }}</router-link> <router-link v-for="tag in p.tags" :key="tag" :to="`/search?q=#${tag}`">{{ tag }}</router-link>
</div> </div>
<a class="location" v-if="p.geo" :href="`http://maps.google.com/maps?q=${p.geo.coordinates[1]},${p.geo.coordinates[0]}`" target="_blank">%fa:map-marker-alt% 位置情報</a> <a class="location" v-if="p.geo" :href="`http://maps.google.com/maps?q=${p.geo.coordinates[1]},${p.geo.coordinates[0]}`" target="_blank">%fa:map-marker-alt% %i18n:@location%</a>
<div class="map" v-if="p.geo" ref="map"></div> <div class="map" v-if="p.geo" ref="map"></div>
<div class="renote" v-if="p.renote"> <div class="renote" v-if="p.renote">
<mk-note-preview :note="p.renote"/> <mk-note-preview :note="p.renote"/>
@ -54,15 +54,15 @@
</div> </div>
<footer> <footer>
<mk-reactions-viewer :note="p"/> <mk-reactions-viewer :note="p"/>
<button @click="reply" title="返信"> <button @click="reply" title="">
<template v-if="p.reply">%fa:reply-all%</template> <template v-if="p.reply">%fa:reply-all%</template>
<template v-else>%fa:reply%</template> <template v-else>%fa:reply%</template>
<p class="count" v-if="p.repliesCount > 0">{{ p.repliesCount }}</p> <p class="count" v-if="p.repliesCount > 0">{{ p.repliesCount }}</p>
</button> </button>
<button @click="renote" title="Renote"> <button @click="renote" title="%i18n:@renote%>
%fa:retweet%<p class="count" v-if="p.renoteCount > 0">{{ p.renoteCount }}</p> %fa:retweet%<p class="count" v-if="p.renoteCount > 0">{{ p.renoteCount }}</p>
</button> </button>
<button :class="{ reacted: p.myReaction != null }" @click="react" ref="reactButton" title="リアクション"> <button :class="{ reacted: p.myReaction != null }" @click="react" ref="reactButton" title="%i18n:@add-reaction%">
%fa:plus%<p class="count" v-if="p.reactions_count > 0">{{ p.reactions_count }}</p> %fa:plus%<p class="count" v-if="p.reactions_count > 0">{{ p.reactions_count }}</p>
</button> </button>
<button @click="menu" ref="menuButton"> <button @click="menu" ref="menuButton">

View File

@ -1,17 +1,17 @@
<template> <template>
<div class="mk-sub-note-content"> <div class="mk-sub-note-content">
<div class="body"> <div class="body">
<span v-if="note.isHidden" style="opacity: 0.5">(この投稿は非公開です)</span> <span v-if="note.isHidden" style="opacity: 0.5">%i18n:@hidden%</span>
<a class="reply" v-if="note.replyId">%fa:reply%</a> <a class="reply" v-if="note.replyId">%fa:reply%</a>
<mk-note-html :text="note.text" :i="os.i"/> <mk-note-html :text="note.text" :i="os.i"/>
<a class="rp" v-if="note.renoteId" :href="`/note:${note.renoteId}`">RP: ...</a> <a class="rp" v-if="note.renoteId" :href="`/note:${note.renoteId}`">RP: ...</a>
</div> </div>
<details v-if="note.media.length > 0"> <details v-if="note.media.length > 0">
<summary>({{ note.media.length }}つのメディア)</summary> <summary>({{ note.media.length }}%i18n:@media%)</summary>
<mk-media-list :media-list="note.media"/> <mk-media-list :media-list="note.media"/>
</details> </details>
<details v-if="note.poll"> <details v-if="note.poll">
<summary>投票</summary> <summary>%i18n:@poll%</summary>
<mk-poll :note="note"/> <mk-poll :note="note"/>
</details> </details>
</div> </div>

View File

@ -7,7 +7,7 @@
<span class="username">@{{ user | acct }}</span> <span class="username">@{{ user | acct }}</span>
</header> </header>
<div class="body"> <div class="body">
<p class="followed" v-if="user.isFollowed">フォローされています</p> <p class="followed" v-if="user.isFollowed">%i18n:@followed%</p>
<div class="description">{{ user.description }}</div> <div class="description">{{ user.description }}</div>
</div> </div>
</div> </div>

View File

@ -9,8 +9,8 @@
> >
<h1><slot name="header"></slot></h1> <h1><slot name="header"></slot></h1>
<div> <div>
<button class="popout" v-if="popoutUrl" @mousedown.stop="() => {}" @click="popout" title="ポップアウト">%fa:R window-restore%</button> <button class="popout" v-if="popoutUrl" @mousedown.stop="() => {}" @click="popout" title="%i18n:@popout%">%fa:R window-restore%</button>
<button class="close" v-if="canClose" @mousedown.stop="() => {}" @click="close" title="閉じる">%fa:times%</button> <button class="close" v-if="canClose" @mousedown.stop="() => {}" @click="close" title="%i18n:@close%">%fa:times%</button>
</div> </div>
</header> </header>
<div class="content"> <div class="content">

View File

@ -16,11 +16,11 @@ export default Vue.extend({
this.folder = this.$route.params.folder; this.folder = this.$route.params.folder;
}, },
mounted() { mounted() {
document.title = 'Misskey Drive'; document.title = '%i18n:@title%';
}, },
methods: { methods: {
onMoveRoot() { onMoveRoot() {
const title = 'Misskey Drive'; const title = '%i18n:@title%';
// Rewrite URL // Rewrite URL
history.pushState(null, title, '/i/drive'); history.pushState(null, title, '/i/drive');
@ -28,7 +28,7 @@ export default Vue.extend({
document.title = title; document.title = title;
}, },
onOpenFolder(folder) { onOpenFolder(folder) {
const title = folder.name + ' | Misskey Drive'; const title = folder.name + ' | %i18n:@title%';
// Rewrite URL // Rewrite URL
history.pushState(null, title, '/i/drive/folder/' + folder.id); history.pushState(null, title, '/i/drive/folder/' + folder.id);
@ -49,4 +49,3 @@ export default Vue.extend({
> .mk-drive > .mk-drive
height 100% height 100%
</style> </style>

View File

@ -4,7 +4,7 @@
<template v-for="favorite in favorites"> <template v-for="favorite in favorites">
<mk-note-detail :note="favorite.note" :key="favorite.note.id"/> <mk-note-detail :note="favorite.note" :key="favorite.note.id"/>
</template> </template>
<a v-if="existMore" @click="more">さらに読み込む</a> <a v-if="existMore" @click="more">%i18n:@more%</a>
</main> </main>
</mk-ui> </mk-ui>
</template> </template>

View File

@ -6,7 +6,7 @@
import Vue from 'vue'; import Vue from 'vue';
export default Vue.extend({ export default Vue.extend({
mounted() { mounted() {
document.title = 'Misskey - ホームのカスタマイズ'; document.title = 'Misskey - %i18n:@title%';
} }
}); });
</script> </script>

View File

@ -1,8 +1,8 @@
<template> <template>
<div> <div>
<mk-widget-container> <mk-widget-container>
<template slot="header">%fa:users% ユーザー</template> <template slot="header">%fa:users% %i18n:@users%</template>
<button slot="func" title="ユーザーを追加" @click="add">%fa:plus%</button> <button slot="func" title="%i18n:@add-user%" @click="add">%fa:plus%</button>
<div data-id="d0b63759-a822-4556-a5ce-373ab966e08a"> <div data-id="d0b63759-a822-4556-a5ce-373ab966e08a">
<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw% %i18n:common.loading%<mk-ellipsis/></p> <p class="fetching" v-if="fetching">%fa:spinner .pulse .fw% %i18n:common.loading%<mk-ellipsis/></p>
@ -48,7 +48,7 @@ export default Vue.extend({
methods: { methods: {
add() { add() {
(this as any).apis.input({ (this as any).apis.input({
title: 'ユーザー名', title: '%i18n:@username%',
}).then(async username => { }).then(async username => {
const user = await (this as any).api('users/show', { const user = await (this as any).api('users/show', {
username username

View File

@ -1,15 +1,15 @@
<template> <template>
<div class="timeline"> <div class="timeline">
<header> <header>
<span :data-active="mode == 'default'" @click="mode = 'default'">投稿</span> <span :data-active="mode == 'default'" @click="mode = 'default'">%i18n:@default%</span>
<span :data-active="mode == 'with-replies'" @click="mode = 'with-replies'">投稿と返信</span> <span :data-active="mode == 'with-replies'" @click="mode = 'with-replies'">%i18n:@with-replies%</span>
<span :data-active="mode == 'with-media'" @click="mode = 'with-media'">メディア</span> <span :data-active="mode == 'with-media'" @click="mode = 'with-media'">%i18n:@with-media%</span>
</header> </header>
<div class="loading" v-if="fetching"> <div class="loading" v-if="fetching">
<mk-ellipsis-icon/> <mk-ellipsis-icon/>
</div> </div>
<mk-notes ref="timeline" :more="existMore ? more : null"> <mk-notes ref="timeline" :more="existMore ? more : null">
<p class="empty" slot="empty">%fa:R comments%このユーザーはまだ何も投稿していないようです</p> <p class="empty" slot="empty">%fa:R comments%%i18n:@empty%</p>
</mk-notes> </mk-notes>
</div> </div>
</template> </template>

View File

@ -5,12 +5,12 @@
> >
<div class="banner" <div class="banner"
:style="os.i.bannerUrl ? `background-image: url(${os.i.bannerUrl}?thumbnail&size=256)` : ''" :style="os.i.bannerUrl ? `background-image: url(${os.i.bannerUrl}?thumbnail&size=256)` : ''"
title="クリックでバナー編集" title="%i18n:@update-banner%"
@click="os.apis.updateBanner" @click="os.apis.updateBanner"
></div> ></div>
<mk-avatar class="avatar" :user="os.i" <mk-avatar class="avatar" :user="os.i"
@click="os.apis.updateAvatar" @click="os.apis.updateAvatar"
title="クリックでアバター編集" title="%i18n:@update-avatar%"
/> />
<router-link class="name" :to="os.i | userPage">{{ os.i | userName }}</router-link> <router-link class="name" :to="os.i | userPage">{{ os.i | userName }}</router-link>
<p class="username">@{{ os.i | acct }}</p> <p class="username">@{{ os.i | acct }}</p>