some moar i18n
Signed-off-by: Marcin Mikołajczak <me@m4sk.in>
This commit is contained in:
		
							parent
							
								
									46a953a9d8
								
							
						
					
					
						commit
						fd1eea21d2
					
				
					 11 changed files with 78 additions and 34 deletions
				
			
		| 
						 | 
					@ -724,6 +724,16 @@ mobile/views/components/drive.vue:
 | 
				
			||||||
  load-more: "もっと読み込む"
 | 
					  load-more: "もっと読み込む"
 | 
				
			||||||
  nothing-in-drive: "ドライブには何もありません"
 | 
					  nothing-in-drive: "ドライブには何もありません"
 | 
				
			||||||
  folder-is-empty: "このフォルダは空です"
 | 
					  folder-is-empty: "このフォルダは空です"
 | 
				
			||||||
 | 
					  prompt: "何をしますか?(数字を入力してください): <1 → ファイルをアップロード | 2 → ファイルをURLでアップロード | 3 → フォルダ作成 | 4 → このフォルダ名を変更 | 5 → このフォルダを移動 | 6 → このフォルダを削除>"
 | 
				
			||||||
 | 
					  deletion-alert: "ごめんなさい!フォルダの削除は未実装です...。"
 | 
				
			||||||
 | 
					  folder-name: "フォルダー名"
 | 
				
			||||||
 | 
					  root-rename-alert: "現在いる場所はルートで、フォルダではないため名前の変更はできません。名前を変更したいフォルダに移動してからやってください。"
 | 
				
			||||||
 | 
					  root-move-alert: "現在いる場所はルートで、フォルダではないため移動はできません。移動したいフォルダに移動してからやってください。"
 | 
				
			||||||
 | 
					  url-prompt: "アップロードしたいファイルのURL"
 | 
				
			||||||
 | 
					  uploading: "アップロードをリクエストしました。アップロードが完了するまで時間がかかる場合があります。"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mobile/views/components/drive-file-detail.vue:
 | 
				
			||||||
 | 
					  rename: "名前を変更"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mobile/views/components/drive-file-chooser.vue:
 | 
					mobile/views/components/drive-file-chooser.vue:
 | 
				
			||||||
  select-file: "ファイルを選択"
 | 
					  select-file: "ファイルを選択"
 | 
				
			||||||
| 
						 | 
					@ -742,26 +752,60 @@ mobile/views/components/follow-button.vue:
 | 
				
			||||||
  follow: "フォロー"
 | 
					  follow: "フォロー"
 | 
				
			||||||
  unfollow: "フォロー解除"
 | 
					  unfollow: "フォロー解除"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mobile/views/components/friends-maker.vue:
 | 
				
			||||||
 | 
					  title: "気になるユーザーをフォロー"
 | 
				
			||||||
 | 
					  empty: "おすすめのユーザーは見つかりませんでした。"
 | 
				
			||||||
 | 
					  fetching: "読み込んでいます"
 | 
				
			||||||
 | 
					  refresh: "もっと見る"
 | 
				
			||||||
 | 
					  close: "閉じる"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mobile/views/components/note.vue:
 | 
					mobile/views/components/note.vue:
 | 
				
			||||||
  reposted-by: "{}がRenote"
 | 
					  reposted-by: "{}がRenote"
 | 
				
			||||||
 | 
					  more: "もっと見る"
 | 
				
			||||||
 | 
					  less: "隠す"
 | 
				
			||||||
 | 
					  hidden: "この投稿は非公開です"
 | 
				
			||||||
 | 
					  location: "位置情報"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mobile/views/components/note-detail.vue:
 | 
					mobile/views/components/note-detail.vue:
 | 
				
			||||||
  reply: "返信"
 | 
					  reply: "返信"
 | 
				
			||||||
  reaction: "リアクション"
 | 
					  reaction: "リアクション"
 | 
				
			||||||
 | 
					  is-renote: "がRenote"
 | 
				
			||||||
 | 
					  hidden: "この投稿は非公開です"
 | 
				
			||||||
 | 
					  location: "位置情報"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mobile/views/components/note-preview.vue:
 | 
				
			||||||
 | 
					  admin: "admin"
 | 
				
			||||||
 | 
					  bot: "bot"
 | 
				
			||||||
 | 
					  cat: "cat"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mobile/views/components/note-sub.vue:
 | 
				
			||||||
 | 
					  admin: "admin"
 | 
				
			||||||
 | 
					  bot: "bot"
 | 
				
			||||||
 | 
					  cat: "cat"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mobile/views/components/notes.vue:
 | 
				
			||||||
 | 
					  failed: "読み込みに失敗しました。"
 | 
				
			||||||
 | 
					  retry: "リトライ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mobile/views/components/notifications.vue:
 | 
					mobile/views/components/notifications.vue:
 | 
				
			||||||
  more: "もっと見る"
 | 
					  more: "もっと見る"
 | 
				
			||||||
  empty: "ありません!"
 | 
					  empty: "ありません!"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mobile/views/components/post-form.vue:
 | 
					mobile/views/components/post-form.vue:
 | 
				
			||||||
 | 
					  add-visible-user: "ユーザーを追加"
 | 
				
			||||||
  submit: "投稿"
 | 
					  submit: "投稿"
 | 
				
			||||||
  reply: "返信"
 | 
					  reply: "返信"
 | 
				
			||||||
  renote: "Renote"
 | 
					  renote: "Renote"
 | 
				
			||||||
  renote-placeholder: "この投稿を引用... (オプション)"
 | 
					  renote-placeholder: "この投稿を引用... (オプション)"
 | 
				
			||||||
  reply-placeholder: "この投稿への返信..."
 | 
					  reply-placeholder: "この投稿への返信..."
 | 
				
			||||||
  note-placeholder: "いまどうしてる?"
 | 
					  note-placeholder: "いまどうしてる?"
 | 
				
			||||||
 | 
					  cw-placeholder: "内容への注釈 (オプション)"
 | 
				
			||||||
 | 
					  location-alert: "お使いの端末は位置情報に対応していません"
 | 
				
			||||||
 | 
					  error: "エラー"
 | 
				
			||||||
 | 
					  username-prompt: "ユーザー名を入力してください"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mobile/views/components/sub-note-content.vue:
 | 
					mobile/views/components/sub-note-content.vue:
 | 
				
			||||||
 | 
					  hidden: "この投稿は非公開です"
 | 
				
			||||||
  media-count: "{}個のメディア"
 | 
					  media-count: "{}個のメディア"
 | 
				
			||||||
  poll: "投票"
 | 
					  poll: "投票"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -93,7 +93,7 @@ export default Vue.extend({
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	methods: {
 | 
						methods: {
 | 
				
			||||||
		rename() {
 | 
							rename() {
 | 
				
			||||||
			const name = window.prompt('名前を変更', this.file.name);
 | 
								const name = window.prompt('%i18n:@rename%', this.file.name);
 | 
				
			||||||
			if (name == null || name == '' || name == this.file.name) return;
 | 
								if (name == null || name == '' || name == this.file.name) return;
 | 
				
			||||||
			(this as any).api('drive/files/update', {
 | 
								(this as any).api('drive/files/update', {
 | 
				
			||||||
				fileId: this.file.id,
 | 
									fileId: this.file.id,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -372,7 +372,7 @@ export default Vue.extend({
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		openContextMenu() {
 | 
							openContextMenu() {
 | 
				
			||||||
			const fn = window.prompt('何をしますか?(数字を入力してください): <1 → ファイルをアップロード | 2 → ファイルをURLでアップロード | 3 → フォルダ作成 | 4 → このフォルダ名を変更 | 5 → このフォルダを移動 | 6 → このフォルダを削除>');
 | 
								const fn = window.prompt('%i18n:@prompt%');
 | 
				
			||||||
			if (fn == null || fn == '') return;
 | 
								if (fn == null || fn == '') return;
 | 
				
			||||||
			switch (fn) {
 | 
								switch (fn) {
 | 
				
			||||||
				case '1':
 | 
									case '1':
 | 
				
			||||||
| 
						 | 
					@ -391,7 +391,7 @@ export default Vue.extend({
 | 
				
			||||||
					this.moveFolder();
 | 
										this.moveFolder();
 | 
				
			||||||
					break;
 | 
										break;
 | 
				
			||||||
				case '6':
 | 
									case '6':
 | 
				
			||||||
					alert('ごめんなさい!フォルダの削除は未実装です...。');
 | 
										alert('%i18n:@deletion-alert%');
 | 
				
			||||||
					break;
 | 
										break;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
| 
						 | 
					@ -401,7 +401,7 @@ export default Vue.extend({
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		createFolder() {
 | 
							createFolder() {
 | 
				
			||||||
			const name = window.prompt('フォルダー名');
 | 
								const name = window.prompt('%i18n:@folder-name%');
 | 
				
			||||||
			if (name == null || name == '') return;
 | 
								if (name == null || name == '') return;
 | 
				
			||||||
			(this as any).api('drive/folders/create', {
 | 
								(this as any).api('drive/folders/create', {
 | 
				
			||||||
				name: name,
 | 
									name: name,
 | 
				
			||||||
| 
						 | 
					@ -413,10 +413,10 @@ export default Vue.extend({
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		renameFolder() {
 | 
							renameFolder() {
 | 
				
			||||||
			if (this.folder == null) {
 | 
								if (this.folder == null) {
 | 
				
			||||||
				alert('現在いる場所はルートで、フォルダではないため名前の変更はできません。名前を変更したいフォルダに移動してからやってください。');
 | 
									alert('%i18n:@root-rename-alert%');
 | 
				
			||||||
				return;
 | 
									return;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			const name = window.prompt('フォルダー名', this.folder.name);
 | 
								const name = window.prompt('%i18n:@folder-name%', this.folder.name);
 | 
				
			||||||
			if (name == null || name == '') return;
 | 
								if (name == null || name == '') return;
 | 
				
			||||||
			(this as any).api('drive/folders/update', {
 | 
								(this as any).api('drive/folders/update', {
 | 
				
			||||||
				name: name,
 | 
									name: name,
 | 
				
			||||||
| 
						 | 
					@ -428,7 +428,7 @@ export default Vue.extend({
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		moveFolder() {
 | 
							moveFolder() {
 | 
				
			||||||
			if (this.folder == null) {
 | 
								if (this.folder == null) {
 | 
				
			||||||
				alert('現在いる場所はルートで、フォルダではないため移動はできません。移動したいフォルダに移動してからやってください。');
 | 
									alert('%i18n:@root-move-alert%');
 | 
				
			||||||
				return;
 | 
									return;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			(this as any).apis.chooseDriveFolder().then(folder => {
 | 
								(this as any).apis.chooseDriveFolder().then(folder => {
 | 
				
			||||||
| 
						 | 
					@ -442,13 +442,13 @@ export default Vue.extend({
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		urlUpload() {
 | 
							urlUpload() {
 | 
				
			||||||
			const url = window.prompt('アップロードしたいファイルのURL');
 | 
								const url = window.prompt('%i18n:@url-prompt%');
 | 
				
			||||||
			if (url == null || url == '') return;
 | 
								if (url == null || url == '') return;
 | 
				
			||||||
			(this as any).api('drive/files/upload_from_url', {
 | 
								(this as any).api('drive/files/upload_from_url', {
 | 
				
			||||||
				url: url,
 | 
									url: url,
 | 
				
			||||||
				folderId: this.folder ? this.folder.id : undefined
 | 
									folderId: this.folder ? this.folder.id : undefined
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
			alert('アップロードをリクエストしました。アップロードが完了するまで時間がかかる場合があります。');
 | 
								alert('%i18n:@uploading%');
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		onChangeLocalFile() {
 | 
							onChangeLocalFile() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,13 +1,13 @@
 | 
				
			||||||
<template>
 | 
					<template>
 | 
				
			||||||
<div class="mk-friends-maker">
 | 
					<div class="mk-friends-maker">
 | 
				
			||||||
	<p class="title">気になるユーザーをフォロー:</p>
 | 
						<p class="title">%i18n:@title%:</p>
 | 
				
			||||||
	<div class="users" v-if="!fetching && users.length > 0">
 | 
						<div class="users" v-if="!fetching && users.length > 0">
 | 
				
			||||||
		<mk-user-card v-for="user in users" :key="user.id" :user="user"/>
 | 
							<mk-user-card v-for="user in users" :key="user.id" :user="user"/>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<p class="empty" v-if="!fetching && users.length == 0">おすすめのユーザーは見つかりませんでした。</p>
 | 
						<p class="empty" v-if="!fetching && users.length == 0">%i18n:@empty%</p>
 | 
				
			||||||
	<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%読み込んでいます<mk-ellipsis/></p>
 | 
						<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:@fetching%<mk-ellipsis/></p>
 | 
				
			||||||
	<a class="refresh" @click="refresh">もっと見る</a>
 | 
						<a class="refresh" @click="refresh">%i18n:@refresh%</a>
 | 
				
			||||||
	<button class="close" @click="close" title="閉じる">%fa:times%</button>
 | 
						<button class="close" @click="close" title="%i18n:@close%">%fa:times%</button>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,7 +17,7 @@
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div class="renote" v-if="isRenote">
 | 
						<div class="renote" v-if="isRenote">
 | 
				
			||||||
		<p>
 | 
							<p>
 | 
				
			||||||
			<mk-avatar class="avatar" :user="note.user"/>%fa:retweet%<router-link class="name" :to="note.user | userPage">{{ note.user | userName }}</router-link>がRenote
 | 
								<mk-avatar class="avatar" :user="note.user"/>%fa:retweet%<router-link class="name" :to="note.user | userPage">{{ note.user | userName }}</router-link>%i18n:@is-renote%
 | 
				
			||||||
		</p>
 | 
							</p>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<article>
 | 
						<article>
 | 
				
			||||||
| 
						 | 
					@ -30,7 +30,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:@hidden%)</span>
 | 
				
			||||||
				<mk-note-html v-if="p.text" :text="p.text" :i="$store.state.i"/>
 | 
									<mk-note-html v-if="p.text" :text="p.text" :i="$store.state.i"/>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<div class="tags" v-if="p.tags && p.tags.length > 0">
 | 
								<div class="tags" v-if="p.tags && p.tags.length > 0">
 | 
				
			||||||
| 
						 | 
					@ -41,7 +41,7 @@
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<mk-poll v-if="p.poll" :note="p"/>
 | 
								<mk-poll v-if="p.poll" :note="p"/>
 | 
				
			||||||
			<mk-url-preview v-for="url in urls" :url="url" :key="url"/>
 | 
								<mk-url-preview v-for="url in urls" :url="url" :key="url"/>
 | 
				
			||||||
			<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"/>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,9 +5,9 @@
 | 
				
			||||||
		<header>
 | 
							<header>
 | 
				
			||||||
			<mk-avatar class="avatar" :user="note.user" v-if="$store.state.device.postStyle == 'smart'"/>
 | 
								<mk-avatar class="avatar" :user="note.user" v-if="$store.state.device.postStyle == 'smart'"/>
 | 
				
			||||||
			<router-link class="name" :to="note.user | userPage">{{ note.user | userName }}</router-link>
 | 
								<router-link class="name" :to="note.user | userPage">{{ note.user | userName }}</router-link>
 | 
				
			||||||
			<span class="is-admin" v-if="note.user.isAdmin">admin</span>
 | 
								<span class="is-admin" v-if="note.user.isAdmin">%i18n:@admin%</span>
 | 
				
			||||||
			<span class="is-bot" v-if="note.user.isBot">bot</span>
 | 
								<span class="is-bot" v-if="note.user.isBot">%i18n:@bot%</span>
 | 
				
			||||||
			<span class="is-cat" v-if="note.user.isCat">cat</span>
 | 
								<span class="is-cat" v-if="note.user.isCat">%i18n:@cat%</span>
 | 
				
			||||||
			<span class="username"><mk-acct :user="note.user"/></span>
 | 
								<span class="username"><mk-acct :user="note.user"/></span>
 | 
				
			||||||
			<router-link class="time" :to="note | notePage">
 | 
								<router-link class="time" :to="note | notePage">
 | 
				
			||||||
				<mk-time :time="note.createdAt"/>
 | 
									<mk-time :time="note.createdAt"/>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,9 +5,9 @@
 | 
				
			||||||
		<header>
 | 
							<header>
 | 
				
			||||||
			<mk-avatar class="avatar" :user="note.user" v-if="$store.state.device.postStyle == 'smart'"/>
 | 
								<mk-avatar class="avatar" :user="note.user" v-if="$store.state.device.postStyle == 'smart'"/>
 | 
				
			||||||
			<router-link class="name" :to="note.user | userPage">{{ note.user | userName }}</router-link>
 | 
								<router-link class="name" :to="note.user | userPage">{{ note.user | userName }}</router-link>
 | 
				
			||||||
			<span class="is-admin" v-if="note.user.isAdmin">admin</span>
 | 
								<span class="is-admin" v-if="note.user.isAdmin">%i18n:@admin%</span>
 | 
				
			||||||
			<span class="is-bot" v-if="note.user.isBot">bot</span>
 | 
								<span class="is-bot" v-if="note.user.isBot">%i18n:@bot%</span>
 | 
				
			||||||
			<span class="is-cat" v-if="note.user.isCat">cat</span>
 | 
								<span class="is-cat" v-if="note.user.isCat">%i18n:@cat%</span>
 | 
				
			||||||
			<span class="username"><mk-acct :user="note.user"/></span>
 | 
								<span class="username"><mk-acct :user="note.user"/></span>
 | 
				
			||||||
			<div class="info">
 | 
								<div class="info">
 | 
				
			||||||
				<span class="mobile" v-if="note.viaMobile">%fa:mobile-alt%</span>
 | 
									<span class="mobile" v-if="note.viaMobile">%fa:mobile-alt%</span>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,11 +37,11 @@
 | 
				
			||||||
			<div class="body">
 | 
								<div class="body">
 | 
				
			||||||
				<p v-if="p.cw != null" class="cw">
 | 
									<p v-if="p.cw != null" class="cw">
 | 
				
			||||||
					<span class="text" v-if="p.cw != ''">{{ p.cw }}</span>
 | 
										<span class="text" v-if="p.cw != ''">{{ p.cw }}</span>
 | 
				
			||||||
					<span class="toggle" @click="showContent = !showContent">{{ showContent ? '隠す' : 'もっと見る' }}</span>
 | 
										<span class="toggle" @click="showContent = !showContent">{{ showContent ? '%i18n:@less%' : '%i18n:@more%' }}</span>
 | 
				
			||||||
				</p>
 | 
									</p>
 | 
				
			||||||
				<div class="content" v-show="p.cw == null || showContent">
 | 
									<div class="content" v-show="p.cw == null || showContent">
 | 
				
			||||||
					<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:@hidden%)</span>
 | 
				
			||||||
						<a class="reply" v-if="p.reply">%fa:reply%</a>
 | 
											<a class="reply" v-if="p.reply">%fa:reply%</a>
 | 
				
			||||||
						<mk-note-html v-if="p.text && !canHideText(p)" :text="p.text" :i="$store.state.i" :class="$style.text"/>
 | 
											<mk-note-html v-if="p.text && !canHideText(p)" :text="p.text" :i="$store.state.i" :class="$style.text"/>
 | 
				
			||||||
						<a class="rp" v-if="p.renote != null">RP:</a>
 | 
											<a class="rp" v-if="p.renote != null">RP:</a>
 | 
				
			||||||
| 
						 | 
					@ -54,7 +54,7 @@
 | 
				
			||||||
						<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>
 | 
				
			||||||
					<mk-url-preview v-for="url in urls" :url="url" :key="url"/>
 | 
										<mk-url-preview v-for="url in urls" :url="url" :key="url"/>
 | 
				
			||||||
					<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"/>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,8 +9,8 @@
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<div v-if="!fetching && requestInitPromise != null">
 | 
						<div v-if="!fetching && requestInitPromise != null">
 | 
				
			||||||
		<p>読み込みに失敗しました。</p>
 | 
							<p>%i18n:@failed%</p>
 | 
				
			||||||
		<button @click="resolveInitPromise">リトライ</button>
 | 
							<button @click="resolveInitPromise">%i18n:@retry%</button>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<transition-group name="mk-notes" class="transition">
 | 
						<transition-group name="mk-notes" class="transition">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,9 +17,9 @@
 | 
				
			||||||
		<mk-note-preview v-if="renote" :note="renote"/>
 | 
							<mk-note-preview v-if="renote" :note="renote"/>
 | 
				
			||||||
		<div v-if="visibility == 'specified'" class="visibleUsers">
 | 
							<div v-if="visibility == 'specified'" class="visibleUsers">
 | 
				
			||||||
			<span v-for="u in visibleUsers">{{ u | userName }}<a @click="removeVisibleUser(u)">[x]</a></span>
 | 
								<span v-for="u in visibleUsers">{{ u | userName }}<a @click="removeVisibleUser(u)">[x]</a></span>
 | 
				
			||||||
			<a @click="addVisibleUser">+ユーザーを追加</a>
 | 
								<a @click="addVisibleUser">+%i18n:@add-visible-user%</a>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<input v-show="useCw" v-model="cw" placeholder="内容への注釈 (オプション)">
 | 
							<input v-show="useCw" v-model="cw" placeholder="%i18n:@cw-placeholder%">
 | 
				
			||||||
		<textarea v-model="text" ref="text" :disabled="posting" :placeholder="reply ? '%i18n:@reply-placeholder%' : renote ? '%i18n:@renote-placeholder%' : '%i18n:@note-placeholder%'"></textarea>
 | 
							<textarea v-model="text" ref="text" :disabled="posting" :placeholder="reply ? '%i18n:@reply-placeholder%' : renote ? '%i18n:@renote-placeholder%' : '%i18n:@note-placeholder%'"></textarea>
 | 
				
			||||||
		<div class="attaches" v-show="files.length != 0">
 | 
							<div class="attaches" v-show="files.length != 0">
 | 
				
			||||||
			<x-draggable class="files" :list="files" :options="{ animation: 150 }">
 | 
								<x-draggable class="files" :list="files" :options="{ animation: 150 }">
 | 
				
			||||||
| 
						 | 
					@ -141,14 +141,14 @@ export default Vue.extend({
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		setGeo() {
 | 
							setGeo() {
 | 
				
			||||||
			if (navigator.geolocation == null) {
 | 
								if (navigator.geolocation == null) {
 | 
				
			||||||
				alert('お使いの端末は位置情報に対応していません');
 | 
									alert('%i18n:@location-alert%');
 | 
				
			||||||
				return;
 | 
									return;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			navigator.geolocation.getCurrentPosition(pos => {
 | 
								navigator.geolocation.getCurrentPosition(pos => {
 | 
				
			||||||
				this.geo = pos.coords;
 | 
									this.geo = pos.coords;
 | 
				
			||||||
			}, err => {
 | 
								}, err => {
 | 
				
			||||||
				alert('エラー: ' + err.message);
 | 
									alert('%i18n:@error%: ' + err.message);
 | 
				
			||||||
			}, {
 | 
								}, {
 | 
				
			||||||
				enableHighAccuracy: true
 | 
									enableHighAccuracy: true
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
| 
						 | 
					@ -171,7 +171,7 @@ export default Vue.extend({
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		addVisibleUser() {
 | 
							addVisibleUser() {
 | 
				
			||||||
			(this as any).apis.input({
 | 
								(this as any).apis.input({
 | 
				
			||||||
				title: 'ユーザー名を入力してください'
 | 
									title: '%i18n:@username-prompt%'
 | 
				
			||||||
			}).then(username => {
 | 
								}).then(username => {
 | 
				
			||||||
				(this as any).api('users/show', {
 | 
									(this as any).api('users/show', {
 | 
				
			||||||
					username
 | 
										username
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
<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 v-if="note.text" :text="note.text" :i="$store.state.i"/>
 | 
							<mk-note-html v-if="note.text" :text="note.text" :i="$store.state.i"/>
 | 
				
			||||||
		<a class="rp" v-if="note.renoteId">RP: ...</a>
 | 
							<a class="rp" v-if="note.renoteId">RP: ...</a>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue