This commit is contained in:
Aya Morisawa 2017-03-31 19:56:59 +09:00
parent c63ce03431
commit b736e78af2
17 changed files with 180 additions and 40 deletions

View file

@ -199,3 +199,73 @@ mobile:
loading: "Loading" loading: "Loading"
nothing-in-drive: "Nothing" nothing-in-drive: "Nothing"
folder-is-empty: "This folder is empty" folder-is-empty: "This folder is empty"
mk-follow-button:
follow: "フォロー"
unfollow: "フォロー解除"
mk-home-timeline:
empty-timeline: "表示する投稿がありません。誰かしらをフォローするなどしましょう。"
mk-notifications:
empty: "ありません!"
loading: "読み込み中"
mk-post-detail:
reply: "返信"
reaction: "リアクション"
mk-post-form:
submit: "投稿"
reply-placeholder: "この投稿への返信..."
post-placeholder: "いまどうしてる?"
attach-media-from-local: "モバイルからメディアを添付"
mk-search-posts:
empty: "「{}」に関する投稿は見つかりませんでした。"
mk-sub-post-content:
media-count: "{}個のメディア"
poll: "投票"
mk-timeline-post:
reposted-by: "{}がRepost"
mk-timeline:
loading: "読み込み中"
empty: "表示するものがありません"
load-more: "もっとみる"
mk-ui-nav:
home: "ホーム"
notifications: "通知"
messaging: "メッセージ"
live: "ライブ"
search: "検索"
drive: "ドライブ"
settings: "設定"
about: "Misskeyについて"
search: "検索"
mk-user-followers:
no-users: "フォロワーはいないようです。"
mk-user-following:
no-users: "フォロー中のユーザーはいないようです。"
mk-user-timeline:
no-posts: "このユーザーはまだ投稿していないようです。"
no-posts-with-media: "メディア付き投稿はありません。"
mk-user:
is-followed: "フォローされています"
following: "フォロー"
followers: "フォロワー"
posts: "タイムライン"
media: "メディア"
mk-users-list:
all: "すべて"
known: "知り合い"
load-more: "もっと"
loading: "読み込み中"

View file

@ -199,3 +199,73 @@ mobile:
loading: "読み込み中" loading: "読み込み中"
nothing-in-drive: "ドライブには何もありません" nothing-in-drive: "ドライブには何もありません"
folder-is-empty: "このフォルダは空です" folder-is-empty: "このフォルダは空です"
mk-follow-button:
follow: "フォロー"
unfollow: "フォロー解除"
mk-home-timeline:
empty-timeline: "表示する投稿がありません。誰かしらをフォローするなどしましょう。"
mk-notifications:
empty: "ありません!"
loading: "読み込み中"
mk-post-detail:
reply: "返信"
reaction: "リアクション"
mk-post-form:
submit: "投稿"
reply-placeholder: "この投稿への返信..."
post-placeholder: "いまどうしてる?"
attach-media-from-local: "モバイルからメディアを添付"
mk-search-posts:
empty: "「{}」に関する投稿は見つかりませんでした。"
mk-sub-post-content:
media-count: "{}個のメディア"
poll: "投票"
mk-timeline-post:
reposted-by: "{}がRepost"
mk-timeline:
loading: "読み込み中"
empty: "表示するものがありません"
load-more: "もっとみる"
mk-ui-nav:
home: "ホーム"
notifications: "通知"
messaging: "メッセージ"
live: "ライブ"
search: "検索"
drive: "ドライブ"
settings: "設定"
about: "Misskeyについて"
search: "検索"
mk-user-followers:
no-users: "フォロワーはいないようです。"
mk-user-following:
no-users: "フォロー中のユーザーはいないようです。"
mk-user-timeline:
no-posts: "このユーザーはまだ投稿していないようです。"
no-posts-with-media: "メディア付き投稿はありません。"
mk-user:
is-followed: "フォローされています"
following: "フォロー"
followers: "フォロワー"
posts: "タイムライン"
media: "メディア"
mk-users-list:
all: "すべて"
known: "知り合い"
load-more: "もっと"
loading: "読み込み中"

View file

@ -1,5 +1,5 @@
<mk-follow-button> <mk-follow-button>
<button class={ wait: wait, follow: !user.is_following, unfollow: user.is_following } if={ !init } onclick={ onclick } disabled={ wait }><i class="fa fa-minus" if={ !wait && user.is_following }></i><i class="fa fa-plus" if={ !wait && !user.is_following }></i><i class="fa fa-spinner fa-pulse fa-fw" if={ wait }></i>{ user.is_following ? 'フォロー解除' : 'フォロー' }</button> <button class={ wait: wait, follow: !user.is_following, unfollow: user.is_following } if={ !init } onclick={ onclick } disabled={ wait }><i class="fa fa-minus" if={ !wait && user.is_following }></i><i class="fa fa-plus" if={ !wait && !user.is_following }></i><i class="fa fa-spinner fa-pulse fa-fw" if={ wait }></i>{ user.is_following ? '%i18n:mobile.tags.mk-follow-button.unfollow%' : '%i18n:mobile.tags.mk-follow-button.follow%' }</button>
<div class="init" if={ init }><i class="fa fa-spinner fa-pulse fa-fw"></i></div> <div class="init" if={ init }><i class="fa fa-spinner fa-pulse fa-fw"></i></div>
<style> <style>
:scope :scope

View file

@ -1,5 +1,5 @@
<mk-home-timeline> <mk-home-timeline>
<mk-timeline ref="timeline" init={ init } more={ more } empty={ '表示する投稿がありません誰かしらをフォローするなどしましょう' }></mk-timeline> <mk-timeline ref="timeline" init={ init } more={ more } empty={ '%i18n:mobile.tags.mk-home-timeline.empty-timeline%' }></mk-timeline>
<style> <style>
:scope :scope
display block display block

View file

@ -5,8 +5,8 @@
<p class="date" if={ i != notifications.length - 1 && notification._date != notifications[i + 1]._date }><span><i class="fa fa-angle-up"></i>{ notification._datetext }</span><span><i class="fa fa-angle-down"></i>{ notifications[i + 1]._datetext }</span></p> <p class="date" if={ i != notifications.length - 1 && notification._date != notifications[i + 1]._date }><span><i class="fa fa-angle-up"></i>{ notification._datetext }</span><span><i class="fa fa-angle-down"></i>{ notifications[i + 1]._datetext }</span></p>
</virtual> </virtual>
</div> </div>
<p class="empty" if={ notifications.length == 0 && !loading }>ありません!</p> <p class="empty" if={ notifications.length == 0 && !loading }>%i18n:mobile.tags.mk-notifications.empty%</p>
<p class="loading" if={ loading }><i class="fa fa-spinner fa-pulse fa-fw"></i>読み込んでいます <p class="loading" if={ loading }><i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:mobile.tags.mk-notifications.loading%
<mk-ellipsis></mk-ellipsis> <mk-ellipsis></mk-ellipsis>
</p> </p>
<style> <style>

View file

@ -47,13 +47,13 @@
</a> </a>
<footer> <footer>
<mk-reactions-viewer post={ p }></mk-reactions-viewer> <mk-reactions-viewer post={ p }></mk-reactions-viewer>
<button onclick={ reply } title="返信"><i class="fa fa-reply"></i> <button onclick={ reply } title="%i18n:mobile.tags.mk-post-detail.reply%"><i class="fa fa-reply"></i>
<p class="count" if={ p.replies_count > 0 }>{ p.replies_count }</p> <p class="count" if={ p.replies_count > 0 }>{ p.replies_count }</p>
</button> </button>
<button onclick={ repost } title="Repost"><i class="fa fa-retweet"></i> <button onclick={ repost } title="Repost"><i class="fa fa-retweet"></i>
<p class="count" if={ p.repost_count > 0 }>{ p.repost_count }</p> <p class="count" if={ p.repost_count > 0 }>{ p.repost_count }</p>
</button> </button>
<button class={ reacted: p.my_reaction != null } onclick={ react } ref="reactButton" title="リアクション"><i class="fa fa-plus"></i> <button class={ reacted: p.my_reaction != null } onclick={ react } ref="reactButton" title="%i18n:mobile.tags.mk-post-detail.reaction%"><i class="fa fa-plus"></i>
<p class="count" if={ p.reactions_count > 0 }>{ p.reactions_count }</p> <p class="count" if={ p.reactions_count > 0 }>{ p.reactions_count }</p>
</button> </button>
<button><i class="fa fa-ellipsis-h"></i></button> <button><i class="fa fa-ellipsis-h"></i></button>

View file

@ -4,19 +4,19 @@
<button class="cancel" onclick={ cancel }><i class="fa fa-times"></i></button> <button class="cancel" onclick={ cancel }><i class="fa fa-times"></i></button>
<div> <div>
<span if={ refs.text } class="text-count { over: refs.text.value.length > 1000 }">{ 1000 - refs.text.value.length }</span> <span if={ refs.text } class="text-count { over: refs.text.value.length > 1000 }">{ 1000 - refs.text.value.length }</span>
<button class="submit" onclick={ post }>投稿</button> <button class="submit" onclick={ post }>%i18n:mobile.tags.mk-post-form.submit%</button>
</div> </div>
</div> </div>
</header> </header>
<div class="form"> <div class="form">
<mk-post-preview if={ opts.reply } post={ opts.reply }></mk-post-preview> <mk-post-preview if={ opts.reply } post={ opts.reply }></mk-post-preview>
<textarea ref="text" disabled={ wait } oninput={ update } onkeydown={ onkeydown } onpaste={ onpaste } placeholder={ opts.reply ? 'この投稿への返信...' : 'いまどうしてる' }></textarea> <textarea ref="text" disabled={ wait } oninput={ update } onkeydown={ onkeydown } onpaste={ onpaste } placeholder={ opts.reply ? '%i18n:mobile.tags.mk-post-form.reply-placeholder%' : '%i18n:mobile.tags.mk-post-form.post-placeholder%' }></textarea>
<div class="attaches" if={ files.length != 0 }> <div class="attaches" if={ files.length != 0 }>
<ul class="files" ref="attaches"> <ul class="files" ref="attaches">
<li class="file" each={ files }> <li class="file" each={ files }>
<div class="img" style="background-image: url({ url + '?thumbnail&size=64' })" title={ name }></div> <div class="img" style="background-image: url({ url + '?thumbnail&size=64' })" title={ name }></div>
</li> </li>
<li class="add" if={ files.length < 4 } title="PCからファイルを添付" onclick={ selectFile }><i class="fa fa-plus"></i></li> <li class="add" if={ files.length < 4 } title="%i18n:mobile.tags.mk-post-form.attach-media-from-local%" onclick={ selectFile }><i class="fa fa-plus"></i></li>
</ul> </ul>
</div> </div>
<mk-poll-editor if={ poll } ref="poll" ondestroy={ onPollDestroyed }></mk-poll-editor> <mk-poll-editor if={ poll } ref="poll" ondestroy={ onPollDestroyed }></mk-poll-editor>

View file

@ -1,5 +1,5 @@
<mk-search-posts> <mk-search-posts>
<mk-timeline init={ init } more={ more } empty={ '' + query + 'に関する投稿は見つかりませんでした' }></mk-timeline> <mk-timeline init={ init } more={ more } empty={ '%i18n:mobile.tags.mk-search-posts.empty%'.replace('{}', query) }></mk-timeline>
<style> <style>
:scope :scope
display block display block

View file

@ -1,11 +1,11 @@
<mk-sub-post-content> <mk-sub-post-content>
<div class="body"><a class="reply" if={ post.reply_to_id }><i class="fa fa-reply"></i></a><span ref="text"></span><a class="quote" if={ post.repost_id } href={ '/post:' + post.repost_id }>RP: ...</a></div> <div class="body"><a class="reply" if={ post.reply_to_id }><i class="fa fa-reply"></i></a><span ref="text"></span><a class="quote" if={ post.repost_id } href={ '/post:' + post.repost_id }>RP: ...</a></div>
<details if={ post.media }> <details if={ post.media }>
<summary>({ post.media.length }のメディア)</summary> <summary>({ post.media.length }のメディア)</summary>
<mk-images-viewer images={ post.media }></mk-images-viewer> <mk-images-viewer images={ post.media }></mk-images-viewer>
</details> </details>
<details if={ post.poll }> <details if={ post.poll }>
<summary>投票</summary> <summary>%i18n:mobile.tags.mk-sub-post-content.poll%</summary>
<mk-poll post={ post }></mk-poll> <mk-poll post={ post }></mk-poll>
</details> </details>
<style> <style>

View file

@ -8,7 +8,7 @@
<img class="avatar" src={ post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/> <img class="avatar" src={ post.user.avatar_url + '?thumbnail&size=64' } alt="avatar"/>
</a> </a>
<i class="fa fa-retweet"></i> <i class="fa fa-retweet"></i>
<a class="name" href={ CONFIG.url + '/' + post.user.username }>{ post.user.name }</a>がRepost <a class="name" href={ CONFIG.url + '/' + post.user.username }>{ '%i18n:mobile.tags.mk-timeline-post.reposted-by%'.replace('{}', post.user.name) }</a>
</p> </p>
<mk-time time={ post.created_at }></mk-time> <mk-time time={ post.created_at }></mk-time>
</div> </div>

View file

@ -1,9 +1,9 @@
<mk-timeline> <mk-timeline>
<div class="init" if={ init }> <div class="init" if={ init }>
<i class="fa fa-spinner fa-pulse"></i>読み込んでいます <i class="fa fa-spinner fa-pulse"></i>%i18n:mobile.tags.mk-timeline.loading%
</div> </div>
<div class="empty" if={ !init && posts.length == 0 }> <div class="empty" if={ !init && posts.length == 0 }>
<i class="fa fa-comments-o"></i>{ opts.empty || '表示するものがありません' } <i class="fa fa-comments-o"></i>{ opts.empty || '%i18n:mobile.tags.mk-timeline.empty%' }
</div> </div>
<virtual each={ post, i in posts }> <virtual each={ post, i in posts }>
<mk-timeline-post post={ post }></mk-timeline-post> <mk-timeline-post post={ post }></mk-timeline-post>
@ -14,8 +14,8 @@
</virtual> </virtual>
<footer if={ !init }> <footer if={ !init }>
<button if={ canFetchMore } onclick={ more } disabled={ fetching }> <button if={ canFetchMore } onclick={ more } disabled={ fetching }>
<span if={ !fetching }>もっとみる</span> <span if={ !fetching }>%i18n:mobile.tags.mk-timeline.load-more%</span>
<span if={ fetching }>読み込み中<mk-ellipsis></mk-ellipsis></span> <span if={ fetching }>%i18n:mobile.tags.mk-timeline.loading%<mk-ellipsis></mk-ellipsis></span>
</button> </button>
</footer> </footer>
<style> <style>

View file

@ -7,22 +7,22 @@
</a> </a>
<div class="links"> <div class="links">
<ul> <ul>
<li class="home"><a href="/"><i class="icon fa fa-home"></i>ホーム<i class="angle fa fa-angle-right"></i></a></li> <li class="home"><a href="/"><i class="icon fa fa-home"></i>%i18n:mobile.tags.mk-ui-nav.home%<i class="angle fa fa-angle-right"></i></a></li>
<li class="notifications"><a href="/i/notifications"><i class="icon fa fa-bell-o"></i>通知<i class="angle fa fa-angle-right"></i></a></li> <li class="notifications"><a href="/i/notifications"><i class="icon fa fa-bell-o"></i>%i18n:mobile.tags.mk-ui-nav.notifications%<i class="angle fa fa-angle-right"></i></a></li>
<li class="messaging"><a href="/i/messaging"><i class="icon fa fa-comments-o"></i>メッセージ<i class="angle fa fa-angle-right"></i></a></li> <li class="messaging"><a href="/i/messaging"><i class="icon fa fa-comments-o"></i>%i18n:mobile.tags.mk-ui-nav.messaging%<i class="angle fa fa-angle-right"></i></a></li>
<li class="live"><a href="//misskey.tk" target="_blank"><i class="icon fa fa-television"></i>ライブ<i class="angle fa fa-angle-right"></i></a></li> <li class="live"><a href="//misskey.tk" target="_blank"><i class="icon fa fa-television"></i>%i18n:mobile.tags.mk-ui-nav.live%<i class="angle fa fa-angle-right"></i></a></li>
</ul> </ul>
<ul> <ul>
<li class="settings"><a onclick={ search }><i class="icon fa fa-search"></i>検索<i class="angle fa fa-angle-right"></i></a></li> <li class="settings"><a onclick={ search }><i class="icon fa fa-search"></i>%i18n:mobile.tags.mk-ui-nav.search%<i class="angle fa fa-angle-right"></i></a></li>
</ul> </ul>
<ul> <ul>
<li class="settings"><a href="/i/drive"><i class="icon fa fa-cloud"></i>ドライブ<i class="angle fa fa-angle-right"></i></a></li> <li class="settings"><a href="/i/drive"><i class="icon fa fa-cloud"></i>%i18n:mobile.tags.mk-ui-nav.drive%<i class="angle fa fa-angle-right"></i></a></li>
</ul> </ul>
<ul> <ul>
<li class="settings"><a href="/i/settings"><i class="icon fa fa-cog"></i>設定<i class="angle fa fa-angle-right"></i></a></li> <li class="settings"><a href="/i/settings"><i class="icon fa fa-cog"></i>%i18n:mobile.tags.mk-ui-nav.settings%<i class="angle fa fa-angle-right"></i></a></li>
</ul> </ul>
</div> </div>
<p class="about" href={ CONFIG.aboutUrl }><a>Misskeyについて</a></p> <p class="about" href={ CONFIG.aboutUrl }><a>%i18n:mobile.tags.mk-ui-nav.about%</a></p>
</div> </div>
<style> <style>
:scope :scope
@ -36,7 +36,7 @@
width 100% width 100%
height 100% height 100%
background rgba(0, 0, 0, 0.2) background rgba(0, 0, 0, 0.2)
.body .body
position fixed position fixed
top 0 top 0
@ -122,7 +122,7 @@
this.mixin('page'); this.mixin('page');
this.search = () => { this.search = () => {
const query = window.prompt('検索'); const query = window.prompt('%i18n:mobile.tags.mk-ui-nav.search%');
if (query == null || query == '') return; if (query == null || query == '') return;
this.page('/search:' + query); this.page('/search:' + query);
}; };

View file

@ -1,5 +1,5 @@
<mk-user-followers> <mk-user-followers>
<mk-users-list ref="list" fetch={ fetch } count={ user.followers_count } you-know-count={ user.followers_you_know_count } no-users={ 'フォロワーはいないようです' }></mk-users-list> <mk-users-list ref="list" fetch={ fetch } count={ user.followers_count } you-know-count={ user.followers_you_know_count } no-users={ '%i18n:mobile.tags.mk-user-followers.no-users%' }></mk-users-list>
<style> <style>
:scope :scope
display block display block

View file

@ -1,5 +1,5 @@
<mk-user-following> <mk-user-following>
<mk-users-list ref="list" fetch={ fetch } count={ user.following_count } you-know-count={ user.following_you_know_count } no-users={ 'フォロー中のユーザーはいないようです' }></mk-users-list> <mk-users-list ref="list" fetch={ fetch } count={ user.following_count } you-know-count={ user.following_you_know_count } no-users={ '%i18n:mobile.tags.mk-user-following.no-users%' }></mk-users-list>
<style> <style>
:scope :scope
display block display block

View file

@ -1,5 +1,5 @@
<mk-user-timeline> <mk-user-timeline>
<mk-timeline ref="timeline" init={ init } more={ more } empty={ withMedia ? 'メディア付き投稿はありません' : 'このユーザーはまだ投稿していないようです' }></mk-timeline> <mk-timeline ref="timeline" init={ init } more={ more } empty={ withMedia ? '%i18n:mobile.tags.mk-user-timeline.no-posts-with-media%' : '%i18n:mobile.tags.mk-user-timeline.no-posts%' }></mk-timeline>
<style> <style>
:scope :scope
display block display block

View file

@ -12,7 +12,7 @@
<div class="title"> <div class="title">
<h1>{ user.name }</h1> <h1>{ user.name }</h1>
<span class="username">@{ user.username }</span> <span class="username">@{ user.username }</span>
<span class="followed" if={ user.is_followed }>フォローされています</span> <span class="followed" if={ user.is_followed }>%i18n:mobile.tags.mk-user.is-followed%</span>
</div> </div>
<div class="description">{ user.description }</div> <div class="description">{ user.description }</div>
<div class="info"> <div class="info">
@ -26,18 +26,18 @@
<div class="friends"> <div class="friends">
<a href="{ user.username }/following"> <a href="{ user.username }/following">
<b>{ user.following_count }</b> <b>{ user.following_count }</b>
<i>フォロー</i> <i>%i18n:mobile.tags.mk-user.following%</i>
</a> </a>
<a href="{ user.username }/followers"> <a href="{ user.username }/followers">
<b>{ user.followers_count }</b> <b>{ user.followers_count }</b>
<i>フォロワー</i> <i>%i18n:mobile.tags.mk-user.followers%</i>
</a> </a>
</div> </div>
<mk-activity-table user={ user }></mk-activity-table> <mk-activity-table user={ user }></mk-activity-table>
</div> </div>
<nav> <nav>
<a data-is-active={ page == 'posts' } onclick={ go.bind(null, 'posts') }>タイムライン</a> <a data-is-active={ page == 'posts' } onclick={ go.bind(null, 'posts') }>%i18n:mobile.tags.mk-user.posts%</a>
<a data-is-active={ page == 'media' } onclick={ go.bind(null, 'media') }>メディア</a> <a data-is-active={ page == 'media' } onclick={ go.bind(null, 'media') }>%i18n:mobile.tags.mk-user.media%</a>
</nav> </nav>
</header> </header>
<div class="body"> <div class="body">

View file

@ -1,18 +1,18 @@
<mk-users-list> <mk-users-list>
<nav> <nav>
<span data-is-active={ mode == 'all' } onclick={ setMode.bind(this, 'all') }>すべて<span>{ opts.count }</span></span> <span data-is-active={ mode == 'all' } onclick={ setMode.bind(this, 'all') }>%i18n:mobile.tags.mk-users-list.all%<span>{ opts.count }</span></span>
<!-- ↓ https://github.com/riot/riot/issues/2080--> <!-- ↓ https://github.com/riot/riot/issues/2080-->
<span if={ SIGNIN && opts.youKnowCount != '' } data-is-active={ mode == 'iknow' } onclick={ setMode.bind(this, 'iknow') }>知り合い<span>{ opts.youKnowCount }</span></span> <span if={ SIGNIN && opts.youKnowCount != '' } data-is-active={ mode == 'iknow' } onclick={ setMode.bind(this, 'iknow') }>%i18n:mobile.tags.mk-users-list.known%<span>{ opts.youKnowCount }</span></span>
</nav> </nav>
<div class="users" if={ !fetching && users.length != 0 }> <div class="users" if={ !fetching && users.length != 0 }>
<mk-user-preview each={ users } user={ this }></mk-user-preview> <mk-user-preview each={ users } user={ this }></mk-user-preview>
</div> </div>
<button class="more" if={ !fetching && next != null } onclick={ more } disabled={ moreFetching }> <button class="more" if={ !fetching && next != null } onclick={ more } disabled={ moreFetching }>
<span if={ !moreFetching }>もっと</span> <span if={ !moreFetching }>%i18n:mobile.tags.mk-users-list.load-more%</span>
<span if={ moreFetching }>読み込み中<mk-ellipsis></mk-ellipsis></span></button> <span if={ moreFetching }>%i18n:mobile.tags.mk-users-list.loading%<mk-ellipsis></mk-ellipsis></span></button>
<p class="no" if={ !fetching && users.length == 0 }>{ opts.noUsers }</p> <p class="no" if={ !fetching && users.length == 0 }>{ opts.noUsers }</p>
<p class="fetching" if={ fetching }> <p class="fetching" if={ fetching }>
<i class="fa fa-spinner fa-pulse fa-fw"></i>読み込んでいます<mk-ellipsis></mk-ellipsis> <i class="fa fa-spinner fa-pulse fa-fw"></i>%i18n:mobile.tags.mk-users-list.loading%<mk-ellipsis></mk-ellipsis>
</p> </p>
<style> <style>
:scope :scope