summaryrefslogtreecommitdiff
path: root/src/web/app
diff options
context:
space:
mode:
authorAya Morisawa <AyaMorisawa4869@gmail.com>2017-03-31 23:33:43 +0900
committerAya Morisawa <AyaMorisawa4869@gmail.com>2017-03-31 23:33:43 +0900
commit8e8dfb88fbdb1e6a07ebdb130345aba5376bda63 (patch)
tree505ef14566845e0151fe7d56b5181b87187748f3 /src/web/app
parentFix bug (diff)
downloadmisskey-8e8dfb88fbdb1e6a07ebdb130345aba5376bda63.tar.gz
misskey-8e8dfb88fbdb1e6a07ebdb130345aba5376bda63.tar.bz2
misskey-8e8dfb88fbdb1e6a07ebdb130345aba5376bda63.zip
WIP #332
Diffstat (limited to 'src/web/app')
-rw-r--r--src/web/app/common/tags/authorized-apps.tag2
-rw-r--r--src/web/app/common/tags/error.tag11
-rw-r--r--src/web/app/common/tags/forkit.tag2
-rw-r--r--src/web/app/common/tags/messaging/form.tag8
-rw-r--r--src/web/app/common/tags/messaging/index.tag6
-rw-r--r--src/web/app/common/tags/messaging/message.tag6
-rw-r--r--src/web/app/common/tags/messaging/room.tag8
-rw-r--r--src/web/app/common/tags/poll-editor.tag10
-rw-r--r--src/web/app/common/tags/poll.tag10
-rw-r--r--src/web/app/common/tags/signin.tag6
-rw-r--r--src/web/app/common/tags/signup.tag40
-rw-r--r--src/web/app/common/tags/special-message.tag4
-rw-r--r--src/web/app/common/tags/twitter-setting.tag8
-rw-r--r--src/web/app/common/tags/uploader.tag2
14 files changed, 59 insertions, 64 deletions
diff --git a/src/web/app/common/tags/authorized-apps.tag b/src/web/app/common/tags/authorized-apps.tag
index 14795e49da..0078a18636 100644
--- a/src/web/app/common/tags/authorized-apps.tag
+++ b/src/web/app/common/tags/authorized-apps.tag
@@ -1,5 +1,5 @@
<mk-authorized-apps>
- <p class="none" if={ !fetching && apps.length == 0 }>連携しているアプリケーションはありません。</p>
+ <p class="none" if={ !fetching && apps.length == 0 }>%i18n:common.tags.mk-authorized-apps.no-apps%</p>
<div class="apps" if={ apps.length != 0 }>
<div each={ app in apps }>
<p><b>{ app.name }</b></p>
diff --git a/src/web/app/common/tags/error.tag b/src/web/app/common/tags/error.tag
index 42d7642827..c7491d1c43 100644
--- a/src/web/app/common/tags/error.tag
+++ b/src/web/app/common/tags/error.tag
@@ -1,9 +1,9 @@
<mk-error>
<!--i: i.fa.fa-times-circle-->
<img src="/assets/error.jpg" alt=""/>
- <h1>サーバーに接続できません</h1>
- <p class="text">インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから<a onclick={ retry }>再度お試し</a>ください。</p>
- <p class="thanks">いつもMisskeyをご利用いただきありがとうございます。</p>
+ <h1>%i18n:common.tags.mk-error.title%</h1>
+ <p class="text">%i18n:common.tags.mk-error.description%</p>
+ <p class="thanks">%i18n:common.tags.mk-error.thanks%</p>
<style>
:scope
position fixed
@@ -52,9 +52,4 @@
border-top solid 1px #eee
</style>
- <script>
- this.retry = () => {
- location.reload()
- }
- </script>
</mk-error>
diff --git a/src/web/app/common/tags/forkit.tag b/src/web/app/common/tags/forkit.tag
index 98d29c26bc..55d5731081 100644
--- a/src/web/app/common/tags/forkit.tag
+++ b/src/web/app/common/tags/forkit.tag
@@ -1,4 +1,4 @@
-<mk-forkit><a href="https://github.com/syuilo/misskey" target="_blank" title="View source on Github" aria-label="View source on Github">
+<mk-forkit><a href="https://github.com/syuilo/misskey" target="_blank" title="%i18n:common.tags.mk-forkit.open-github-link%" aria-label="%i18n:common.tags.mk-forkit.open-github-link%">
<svg width="80" height="80" viewBox="0 0 250 250" aria-hidden="aria-hidden">
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
<path class="octo-arm" d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor"></path>
diff --git a/src/web/app/common/tags/messaging/form.tag b/src/web/app/common/tags/messaging/form.tag
index 41a3599f68..9bbb10320b 100644
--- a/src/web/app/common/tags/messaging/form.tag
+++ b/src/web/app/common/tags/messaging/form.tag
@@ -1,14 +1,14 @@
<mk-messaging-form>
- <textarea ref="text" onkeypress={ onkeypress } onpaste={ onpaste } placeholder="ここにメッセージを入力"></textarea>
+ <textarea ref="text" onkeypress={ onkeypress } onpaste={ onpaste } placeholder="%i18n:common.tags.mk-messaging-form.placeholder%"></textarea>
<div class="files"></div>
<mk-uploader ref="uploader"></mk-uploader>
- <button class="send" onclick={ send } disabled={ sending } title="メッセージを送信">
+ <button class="send" onclick={ send } disabled={ sending } title="%i18n:common.tags.mk-messaging-form.send%">
<i class="fa fa-paper-plane" if={ !sending }></i><i class="fa fa-spinner fa-spin" if={ sending }></i>
</button>
- <button class="attach-from-local" type="button" title="PCから画像を添付する">
+ <button class="attach-from-local" type="button" title="%i18n:common.tags.mk-messaging-form.attach-from-local%">
<i class="fa fa-upload"></i>
</button>
- <button class="attach-from-drive" type="button" title="アルバムから画像を添付する">
+ <button class="attach-from-drive" type="button" title="%i18n:common.tags.mk-messaging-form.atach-from-drive%">
<i class="fa fa-folder-open"></i>
</button>
<input name="file" type="file" accept="image/*"/>
diff --git a/src/web/app/common/tags/messaging/index.tag b/src/web/app/common/tags/messaging/index.tag
index 8677c9c7c6..b73c543068 100644
--- a/src/web/app/common/tags/messaging/index.tag
+++ b/src/web/app/common/tags/messaging/index.tag
@@ -2,7 +2,7 @@
<div class="search">
<div class="form">
<label for="search-input"><i class="fa fa-search"></i></label>
- <input ref="search" type="search" oninput={ search } onkeydown={ onSearchKeydown } placeholder="ユーザーを探す"/>
+ <input ref="search" type="search" oninput={ search } onkeydown={ onSearchKeydown } placeholder="%i18n:common.tags.mk-messaging.search-user%"/>
</div>
<div class="result">
<ol class="users" if={ searchResult.length > 0 } ref="searchResult">
@@ -25,13 +25,13 @@
<mk-time time={ created_at }></mk-time>
</header>
<div class="body">
- <p class="text"><span class="me" if={ is_me }>あなた:</span>{ text }</p>
+ <p class="text"><span class="me" if={ is_me }>%i18n:common.tags.mk-messaging.you%:</span>{ text }</p>
</div>
</div>
</a>
</virtual>
</div>
- <p class="no-history" if={ history.length == 0 }>履歴はありません。<br/>ユーザーを検索して、いつでもメッセージを送受信できます。</p>
+ <p class="no-history" if={ history.length == 0 }>%i18n:common.tags.mk-messaging.no-history%</p>
<style>
:scope
display block
diff --git a/src/web/app/common/tags/messaging/message.tag b/src/web/app/common/tags/messaging/message.tag
index 21c601157c..a221fc0604 100644
--- a/src/web/app/common/tags/messaging/message.tag
+++ b/src/web/app/common/tags/messaging/message.tag
@@ -1,14 +1,14 @@
<mk-messaging-message data-is-me={ message.is_me }><a class="avatar-anchor" href={ CONFIG.url + '/' + message.user.username } title={ message.user.username } target="_blank"><img class="avatar" src={ message.user.avatar_url + '?thumbnail&size=64' } alt=""/></a>
<div class="content-container">
<div class="balloon">
- <p class="read" if={ message.is_me && message.is_read }>既読</p>
- <button class="delete-button" if={ message.is_me } title="メッセージを削除"><img src="/assets/desktop/messaging/delete.png" alt="Delete"/></button>
+ <p class="read" if={ message.is_me && message.is_read }>%i18n:common.tags.mk-messaging-message.is-read%</p>
+ <button class="delete-button" if={ message.is_me } title="%i18n:common.tags.mk-messaging-message.delete%"><img src="/assets/desktop/messaging/delete.png" alt="Delete"/></button>
<div class="content" if={ !message.is_deleted }>
<div ref="text"></div>
<div class="image" if={ message.file }><img src={ message.file.url } alt="image" title={ message.file.name }/></div>
</div>
<div class="content" if={ message.is_deleted }>
- <p class="is-deleted">このメッセージは削除されました</p>
+ <p class="is-deleted">%i18n:common.tags.mk-messaging-message.deleted%</p>
</div>
</div>
<footer>
diff --git a/src/web/app/common/tags/messaging/room.tag b/src/web/app/common/tags/messaging/room.tag
index d34a019fe0..72deb20823 100644
--- a/src/web/app/common/tags/messaging/room.tag
+++ b/src/web/app/common/tags/messaging/room.tag
@@ -1,7 +1,7 @@
<mk-messaging-room>
<div class="stream">
- <p class="init" if={ init }><i class="fa fa-spinner fa-spin"></i>読み込み中</p>
- <p class="empty" if={ !init && messages.length == 0 }><i class="fa fa-info-circle"></i>このユーザーと話したことはありません</p>
+ <p class="init" if={ init }><i class="fa fa-spinner fa-spin"></i>%i18n:common.tags.mk-messaging-room.loading%</p>
+ <p class="empty" if={ !init && messages.length == 0 }><i class="fa fa-info-circle"></i>%i18n:common.tags.mk-messaging-room.empty%</p>
<virtual each={ message, i in messages }>
<mk-messaging-message message={ message }></mk-messaging-message>
<p class="date" if={ i != messages.length - 1 && message._date != messages[i + 1]._date }><span>{ messages[i + 1]._datetext }</span></p>
@@ -9,7 +9,7 @@
</div>
<footer>
<div ref="notifications"></div>
- <div class="grippie" title="ドラッグしてフォームの広さを調整"></div>
+ <div class="grippie" title="%i18n:common.tags.mk-messaging-room.resize-form%"></div>
<mk-messaging-form user={ user }></mk-messaging-form>
</footer>
<style>
@@ -186,7 +186,7 @@
this.scrollToBottom();
} else if (message.user_id != this.I.id) {
// Notify
- this.notify('新しいメッセージがあります');
+ this.notify('%i18n:common.tags.mk-messaging-room.new-message%');
}
};
diff --git a/src/web/app/common/tags/poll-editor.tag b/src/web/app/common/tags/poll-editor.tag
index 447486ec8e..f07575ab45 100644
--- a/src/web/app/common/tags/poll-editor.tag
+++ b/src/web/app/common/tags/poll-editor.tag
@@ -1,17 +1,17 @@
<mk-poll-editor>
<p class="caution" if={ choices.length < 2 }>
- <i class="fa fa-exclamation-triangle"></i>投票には、選択肢が最低2つ必要です
+ <i class="fa fa-exclamation-triangle"></i>%i18n:common.tags.mk-poll-editor.no-only-one-choice%
</p>
<ul ref="choices">
<li each={ choice, i in choices }>
- <input value={ choice } oninput={ oninput.bind(null, i) } placeholder={ '選択肢' + (i + 1) }>
- <button onclick={ remove.bind(null, i) } title="この選択肢を削除">
+ <input value={ choice } oninput={ oninput.bind(null, i) } placeholder={ '%i18n:common.tags.mk-poll-editor.choice-n%'.replace('{}', i + 1) }>
+ <button onclick={ remove.bind(null, i) } title="%i18n:common.tags.mk-poll-editor.remove%">
<i class="fa fa-times"></i>
</button>
</li>
</ul>
- <button class="add" if={ choices.length < 10 } onclick={ add }>+選択肢を追加</button>
- <button class="destroy" onclick={ destroy } title="投票を破棄">
+ <button class="add" if={ choices.length < 10 } onclick={ add }>%i18n:common.tags.mk-poll-editor.add%/button>
+ <button class="destroy" onclick={ destroy } title="%i18n:common.tags.mk-poll-editor.destroy%">
<i class="fa fa-times"></i>
</button>
<style>
diff --git a/src/web/app/common/tags/poll.tag b/src/web/app/common/tags/poll.tag
index ce006e5e02..8ab899652e 100644
--- a/src/web/app/common/tags/poll.tag
+++ b/src/web/app/common/tags/poll.tag
@@ -1,19 +1,19 @@
<mk-poll data-is-voted={ isVoted }>
<ul>
- <li each={ poll.choices } onclick={ vote.bind(null, id) } class={ voted: voted } title={ !parent.isVoted ? '「' + text + '」に投票する' : '' }>
+ <li each={ poll.choices } onclick={ vote.bind(null, id) } class={ voted: voted } title={ !parent.isVoted ? '%i18n:common.tags.mk-poll.%'.replace('{}', '%i18n:common.tags.mk-poll.vote-to%') : '' }>
<div class="backdrop" style={ 'width:' + (parent.result ? (votes / parent.total * 100) : 0) + '%' }></div>
<span>
<i class="fa fa-check" if={ is_voted }></i>
{ text }
- <span class="votes" if={ parent.result }>({ votes }票)</span>
+ <span class="votes" if={ parent.result }>({ '%i18n:common.tags.mk-poll.vote-count%'.replace('{}', votes) })</span>
</span>
</li>
</ul>
<p if={ total > 0 }>
- <span>{ total }人が投票</span>
+ <span>{ '%i18n:common.tags.mk-poll.total-users%'.replace('{}', total) }</span>
- <a if={ !isVoted } onclick={ toggleResult }>{ result ? '投票する' : '結果を見る' }</a>
- <span if={ isVoted }>投票済み</span>
+ <a if={ !isVoted } onclick={ toggleResult }>{ result ? '%i18n:common.tags.mk-poll.vote%' : '%i18n:common.tags.mk-poll.show-result%' }</a>
+ <span if={ isVoted }>%i18n:common.tags.mk-poll.voted%</span>
</p>
<style>
:scope
diff --git a/src/web/app/common/tags/signin.tag b/src/web/app/common/tags/signin.tag
index c44ae3d6ee..d369c0621c 100644
--- a/src/web/app/common/tags/signin.tag
+++ b/src/web/app/common/tags/signin.tag
@@ -1,12 +1,12 @@
<mk-signin>
<form class={ signing: signing } onsubmit={ onsubmit }>
<label class="user-name">
- <input ref="username" type="text" pattern="^[a-zA-Z0-9-]+$" placeholder="ユーザー名" autofocus="autofocus" required="required" oninput={ oninput }/><i class="fa fa-at"></i>
+ <input ref="username" type="text" pattern="^[a-zA-Z0-9-]+$" placeholder="%i18n:common.tags.mk-signin.username%" autofocus="autofocus" required="required" oninput={ oninput }/><i class="fa fa-at"></i>
</label>
<label class="password">
- <input ref="password" type="password" placeholder="パスワード" required="required"/><i class="fa fa-lock"></i>
+ <input ref="password" type="password" placeholder="%i18n:common.tags.mk-signin.password%" required="required"/><i class="fa fa-lock"></i>
</label>
- <button type="submit" disabled={ signing }>{ signing ? 'やっています...' : 'サインイン' }</button>
+ <button type="submit" disabled={ signing }>{ signing ? '%i18n:common.tags.mk-signin.signing-in%' : '%i18n:common.tags.mk-signin.signin%' }</button>
</form>
<style>
:scope
diff --git a/src/web/app/common/tags/signup.tag b/src/web/app/common/tags/signup.tag
index 9f81801694..e4cc842ade 100644
--- a/src/web/app/common/tags/signup.tag
+++ b/src/web/app/common/tags/signup.tag
@@ -1,42 +1,42 @@
<mk-signup>
<form onsubmit={ onsubmit } autocomplete="off">
<label class="username">
- <p class="caption"><i class="fa fa-at"></i>ユーザー名</p>
+ <p class="caption"><i class="fa fa-at"></i>%i18n:common.tags.mk-signup.username%</p>
<input ref="username" type="text" pattern="^[a-zA-Z0-9-]{3,20}$" placeholder="a~z、A~Z、0~9、-" autocomplete="off" required="required" onkeyup={ onChangeUsername }/>
<p class="profile-page-url-preview" if={ refs.username.value != '' && username-state != 'invalidFormat' && username-state != 'minRange' && username-state != 'maxRange' }>{ CONFIG.url + '/' + refs.username.value }</p>
- <p class="info" if={ usernameState == 'wait' } style="color:#999"><i class="fa fa-fw fa-spinner fa-pulse"></i>確認しています...</p>
- <p class="info" if={ usernameState == 'ok' } style="color:#3CB7B5"><i class="fa fa-fw fa-check"></i>利用できます</p>
- <p class="info" if={ usernameState == 'unavailable' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>既に利用されています</p>
- <p class="info" if={ usernameState == 'error' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>通信エラー</p>
- <p class="info" if={ usernameState == 'invalid-format' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>a~z、A~Z、0~9、-(ハイフン)が使えます</p>
- <p class="info" if={ usernameState == 'min-range' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>3文字以上でお願いします!</p>
- <p class="info" if={ usernameState == 'max-range' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>20文字以内でお願いします</p>
+ <p class="info" if={ usernameState == 'wait' } style="color:#999"><i class="fa fa-fw fa-spinner fa-pulse"></i>%i18n:common.tags.mk-signup.checking%</p>
+ <p class="info" if={ usernameState == 'ok' } style="color:#3CB7B5"><i class="fa fa-fw fa-check"></i>%i18n:common.tags.mk-signup.available%</p>
+ <p class="info" if={ usernameState == 'unavailable' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>%i18n:common.tags.mk-signup.unavailable%</p>
+ <p class="info" if={ usernameState == 'error' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>%i18n:common.tags.mk-signup.error%</p>
+ <p class="info" if={ usernameState == 'invalid-format' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>%i18n:common.tags.mk-signup.invalid-format%</p>
+ <p class="info" if={ usernameState == 'min-range' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>3%i18n:common.tags.mk-signup.too-short%</p>
+ <p class="info" if={ usernameState == 'max-range' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>%i18n:common.tags.mk-signup.too-long%</p>
</label>
<label class="password">
- <p class="caption"><i class="fa fa-lock"></i>パスワード</p>
- <input ref="password" type="password" placeholder="8文字以上を推奨します" autocomplete="off" required="required" onkeyup={ onChangePassword }/>
+ <p class="caption"><i class="fa fa-lock"></i>%i18n:common.tags.mk-signup.password%</p>
+ <input ref="password" type="password" placeholder="%i18n:common.tags.mk-signup.password-placeholder%" autocomplete="off" required="required" onkeyup={ onChangePassword }/>
<div class="meter" if={ passwordStrength != '' } data-strength={ passwordStrength }>
<div class="value" ref="passwordMetar"></div>
</div>
- <p class="info" if={ passwordStrength == 'low' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>弱いパスワード</p>
- <p class="info" if={ passwordStrength == 'medium' } style="color:#3CB7B5"><i class="fa fa-fw fa-check"></i>まあまあのパスワード</p>
- <p class="info" if={ passwordStrength == 'high' } style="color:#3CB7B5"><i class="fa fa-fw fa-check"></i>強いパスワード</p>
+ <p class="info" if={ passwordStrength == 'low' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>%i18n:common.tags.mk-signup.weak-password%</p>
+ <p class="info" if={ passwordStrength == 'medium' } style="color:#3CB7B5"><i class="fa fa-fw fa-check"></i>%i18n:common.tags.mk-signup.normal-password%</p>
+ <p class="info" if={ passwordStrength == 'high' } style="color:#3CB7B5"><i class="fa fa-fw fa-check"></i>%i18n:common.tags.mk-signup.strong-password%</p>
</label>
<label class="retype-password">
- <p class="caption"><i class="fa fa-lock"></i>パスワード(再入力)</p>
- <input ref="passwordRetype" type="password" placeholder="確認のため再入力してください" autocomplete="off" required="required" onkeyup={ onChangePasswordRetype }/>
- <p class="info" if={ passwordRetypeState == 'match' } style="color:#3CB7B5"><i class="fa fa-fw fa-check"></i>確認されました</p>
- <p class="info" if={ passwordRetypeState == 'not-match' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>一致していません</p>
+ <p class="caption"><i class="fa fa-lock"></i>%i18n:common.tags.mk-signup.password%(%i18n:common.tags.mk-signup.retype%)</p>
+ <input ref="passwordRetype" type="password" placeholder="%i18n:common.tags.mk-signup.retype-placeholder%" autocomplete="off" required="required" onkeyup={ onChangePasswordRetype }/>
+ <p class="info" if={ passwordRetypeState == 'match' } style="color:#3CB7B5"><i class="fa fa-fw fa-check"></i>%i18n:common.tags.mk-signup.password-matched%</p>
+ <p class="info" if={ passwordRetypeState == 'not-match' } style="color:#FF1161"><i class="fa fa-fw fa-exclamation-triangle"></i>%i18n:common.tags.mk-signup.password-not-matched%</p>
</label>
<label class="recaptcha">
- <p class="caption"><i class="fa fa-toggle-on" if={ recaptchaed }></i><i class="fa fa-toggle-off" if={ !recaptchaed }></i>認証</p>
+ <p class="caption"><i class="fa fa-toggle-on" if={ recaptchaed }></i><i class="fa fa-toggle-off" if={ !recaptchaed }></i>%i18n:common.tags.mk-signup.recaptcha%</p>
<div if={ recaptcha } class="g-recaptcha" data-callback="onRecaptchaed" data-expired-callback="onRecaptchaExpired" data-sitekey={ recaptcha.siteKey }></div>
</label>
<label class="agree-tou">
<input name="agree-tou" type="checkbox" autocomplete="off" required="required"/>
<p><a href={ CONFIG.aboutUrl + '/tou' } target="_blank">利用規約</a>に同意する</p>
</label>
- <button onclick={ onsubmit }>アカウント作成</button>
+ <button onclick={ onsubmit }>%i18n:common.tags.mk-signup.create%</button>
</form>
<style>
:scope
@@ -295,7 +295,7 @@
location.href = '/';
});
}).catch(() => {
- alert('何らかの原因によりアカウントの作成に失敗しました。再度お試しください。');
+ alert('%i18n:common.tags.mk-signup.some-error%');
grecaptcha.reset();
this.recaptchaed = false;
diff --git a/src/web/app/common/tags/special-message.tag b/src/web/app/common/tags/special-message.tag
index 41bd5fe32a..6643b1324a 100644
--- a/src/web/app/common/tags/special-message.tag
+++ b/src/web/app/common/tags/special-message.tag
@@ -1,6 +1,6 @@
<mk-special-message>
- <p if={ m == 1 && d == 1 }>Happy New Year! </p>
- <p if={ m == 12 && d == 25 }>Merry Christmas!</p>
+ <p if={ m == 1 && d == 1 }>%i18n:common.tags.mk-special-message.new-year%</p>
+ <p if={ m == 12 && d == 25 }>%i18n:common.tags.mk-special-message.christmas%</p>
<style>
:scope
display block
diff --git a/src/web/app/common/tags/twitter-setting.tag b/src/web/app/common/tags/twitter-setting.tag
index 6996c45b4d..143553bd0e 100644
--- a/src/web/app/common/tags/twitter-setting.tag
+++ b/src/web/app/common/tags/twitter-setting.tag
@@ -1,10 +1,10 @@
<mk-twitter-setting>
- <p>お使いのTwitterアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでTwitterアカウント情報が表示されるようになったり、Twitterを用いた便利なサインインを利用できるようになります。<a href={ CONFIG.aboutUrl + '/link-to-twitter' } target="_blank">詳細...</a></p>
- <p class="account" if={ I.twitter } title={ 'Twitter ID: ' + I.twitter.user_id }>次のTwitterアカウントに接続されています: <a href={ 'https://twitter.com/' + I.twitter.screen_name } target="_blank">@{ I.twitter.screen_name }</a></p>
+ <p>%i18n:common.tags.mk-twitter-setting.description%<a href={ CONFIG.aboutUrl + '/link-to-twitter' } target="_blank">%i18n:common.tags.mk-twitter-setting.detail%</a></p>
+ <p class="account" if={ I.twitter } title={ 'Twitter ID: ' + I.twitter.user_id }>%i18n:common.tags.mk-twitter-setting.connected-to%: <a href={ 'https://twitter.com/' + I.twitter.screen_name } target="_blank">@{ I.twitter.screen_name }</a></p>
<p>
- <a href={ CONFIG.apiUrl + '/connect/twitter' } target="_blank">{ I.twitter ? '再接続する' : 'Twitterと接続する' }</a>
+ <a href={ CONFIG.apiUrl + '/connect/twitter' } target="_blank">{ I.twitter ? '%i18n:common.tags.mk-twitter-setting.reconnect%' : '%i18n:common.tags.mk-twitter-setting.connect%' }</a>
<span if={ I.twitter }> or </span>
- <a href={ CONFIG.apiUrl + '/disconnect/twitter' } target="_blank" if={ I.twitter }>切断する</a>
+ <a href={ CONFIG.apiUrl + '/disconnect/twitter' } target="_blank" if={ I.twitter }>%i18n:common.tags.mk-twitter-setting.disconnect%</a>
</p>
<p class="id" if={ I.twitter }>Twitter ID: { I.twitter.user_id }</p>
<style>
diff --git a/src/web/app/common/tags/uploader.tag b/src/web/app/common/tags/uploader.tag
index 845cd9d127..bf55967c08 100644
--- a/src/web/app/common/tags/uploader.tag
+++ b/src/web/app/common/tags/uploader.tag
@@ -3,7 +3,7 @@
<li each={ uploads }>
<div class="img" style="background-image: url({ img })"></div>
<p class="name"><i class="fa fa-spinner fa-pulse"></i>{ name }</p>
- <p class="status"><span class="initing" if={ progress == undefined }>待機中
+ <p class="status"><span class="initing" if={ progress == undefined }>%i18n:common.tags.mk-uploader.waiting%
<mk-ellipsis></mk-ellipsis></span><span class="kb" if={ progress != undefined }>{ String(Math.floor(progress.value / 1024)).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,') }<i>KB</i> / { String(Math.floor(progress.max / 1024)).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,') }<i>KB</i></span><span class="percentage" if={ progress != undefined }>{ Math.floor((progress.value / progress.max) * 100) }</span></p>
<progress if={ progress != undefined && progress.value != progress.max } value={ progress.value } max={ progress.max }></progress>
<div class="progress initing" if={ progress == undefined }></div>