From 155da0c6a329d1cb815f43503aca1fb6a56cf4ef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Acid=20Chicken=20=28=E7=A1=AB=E9=85=B8=E9=B6=8F=29?=
 <root@acid-chicken.com>
Date: Wed, 10 Apr 2019 20:30:00 +0900
Subject: [PATCH 1/5] Avoid roma-ji naming

---
 src/client/app/auth/views/form.vue                   |  7 ++++++-
 .../app/common/views/components/autocomplete.vue     | 10 +++++++++-
 src/client/app/common/views/components/menu.vue      | 10 +++++-----
 src/client/app/desktop/views/components/calendar.vue | 12 ++++++------
 4 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/src/client/app/auth/views/form.vue b/src/client/app/auth/views/form.vue
index 105af375b6..749a2bd487 100644
--- a/src/client/app/auth/views/form.vue
+++ b/src/client/app/auth/views/form.vue
@@ -1,7 +1,7 @@
 <template>
 <div class="form">
 	<header>
-		<h1 v-html="$t('share-access', { name: app.name })"></h1>
+		<h1 v-html="$t('share-access', { name })"></h1>
 		<img :src="app.iconUrl"/>
 	</header>
 	<div class="app">
@@ -42,6 +42,11 @@ export default Vue.extend({
 	i18n: i18n('auth/views/form.vue'),
 	props: ['session'],
 	computed: {
+		name(): string {
+			const el = document.createElement('div');
+			el.textContent = this.app.name
+			return el.innerHTML;
+		},
 		app(): any {
 			return this.session.app;
 		}
diff --git a/src/client/app/common/views/components/autocomplete.vue b/src/client/app/common/views/components/autocomplete.vue
index b66da49d7f..1aea2f1cb4 100644
--- a/src/client/app/common/views/components/autocomplete.vue
+++ b/src/client/app/common/views/components/autocomplete.vue
@@ -19,7 +19,7 @@
 			<span class="emoji" v-if="emoji.isCustomEmoji"><img :src="emoji.url" :alt="emoji.emoji"/></span>
 			<span class="emoji" v-else-if="!useOsDefaultEmojis"><img :src="emoji.url" :alt="emoji.emoji"/></span>
 			<span class="emoji" v-else>{{ emoji.emoji }}</span>
-			<span class="name" v-html="emoji.name.replace(q, `<b>${q}</b>`)"></span>
+			<span class="name">{{ beforeQ }}<b>{{ q }}</b>{{ afterQ }}</span>
 			<span class="alias" v-if="emoji.aliasOf">({{ emoji.aliasOf }})</span>
 		</li>
 	</ol>
@@ -89,6 +89,14 @@ export default Vue.extend({
 	},
 
 	computed: {
+		beforeQ(): string {
+			return this.emoji.name.split(this.q)[0];
+		},
+
+		afterQ(): string {
+			return this.emoji.name.split(this.q)[1] || '';
+		},
+
 		items(): HTMLCollection {
 			return (this.$refs.suggests as Element).children;
 		},
diff --git a/src/client/app/common/views/components/menu.vue b/src/client/app/common/views/components/menu.vue
index a2124c992d..68fa0f5e62 100644
--- a/src/client/app/common/views/components/menu.vue
+++ b/src/client/app/common/views/components/menu.vue
@@ -1,7 +1,7 @@
 <template>
 <div class="onchrpzrvnoruiaenfcqvccjfuupzzwv" :class="{ isMobile: $root.isMobile }">
 	<div class="backdrop" ref="backdrop" @click="close"></div>
-	<div class="popover" :class="{ hukidasi }" ref="popover">
+	<div class="popover" :class="{ bubble }" ref="popover">
 		<template v-for="item, i in items">
 			<div v-if="item === null"></div>
 			<button v-if="item" @click="clicked(item.action)" :tabindex="i">
@@ -28,7 +28,7 @@ export default Vue.extend({
 	},
 	data() {
 		return {
-			hukidasi: !this.$root.isMobile
+			bubble: !this.$root.isMobile
 		};
 	},
 	mounted() {
@@ -56,12 +56,12 @@ export default Vue.extend({
 
 			if (left + width - window.pageXOffset > window.innerWidth) {
 				left = window.innerWidth - width + window.pageXOffset;
-				this.hukidasi = false;
+				this.bubble = false;
 			}
 
 			if (top + height - window.pageYOffset > window.innerHeight) {
 				top = window.innerHeight - height + window.pageYOffset;
-				this.hukidasi = false;
+				this.bubble = false;
 			}
 
 			if (top < 0) {
@@ -150,7 +150,7 @@ export default Vue.extend({
 
 		$balloon-size = 16px
 
-		&.hukidasi
+		&.bubble
 			margin-top $balloon-size
 			transform-origin center -($balloon-size)
 
diff --git a/src/client/app/desktop/views/components/calendar.vue b/src/client/app/desktop/views/components/calendar.vue
index 2b4aed4423..cdeac51638 100644
--- a/src/client/app/desktop/views/components/calendar.vue
+++ b/src/client/app/desktop/views/components/calendar.vue
@@ -11,7 +11,7 @@
 		<div class="weekday"
 			v-for="(day, i) in Array(7).fill(0)"
 			:data-today="year == today.getFullYear() && month == today.getMonth() + 1 && today.getDay() == i"
-			:data-is-donichi="i == 0 || i == 6"
+			:data-is-weekend="i == 0 || i == 6"
 		>{{ weekdayText[i] }}</div>
 		</template>
 		<div v-for="n in paddingDays"></div>
@@ -19,7 +19,7 @@
 			:data-today="isToday(i + 1)"
 			:data-selected="isSelected(i + 1)"
 			:data-is-out-of-range="isOutOfRange(i + 1)"
-			:data-is-donichi="isDonichi(i + 1)"
+			:data-is-weekend="isWeekend(i + 1)"
 			@click="go(i + 1)"
 			:title="isOutOfRange(i + 1) ? null : $t('go')"
 		>
@@ -96,7 +96,7 @@ export default Vue.extend({
 				(this.start ? test < (this.start as any).getTime() : false);
 		},
 
-		isDonichi(day) {
+		isWeekend(day) {
 			const weekday = (new Date(this.year, this.month - 1, day)).getDay();
 			return weekday == 0 || weekday == 6;
 		},
@@ -199,14 +199,14 @@ export default Vue.extend({
 			&.weekday
 				color var(--calendarWeek)
 
-				&[data-is-donichi]
+				&[data-is-weekend]
 					color var(--calendarSaturdayOrSunday)
 
 				&[data-today]
 					box-shadow 0 0 0 var(--lineWidth) var(--calendarWeek) inset
 					border-radius 6px
 
-					&[data-is-donichi]
+					&[data-is-weekend]
 						box-shadow 0 0 0 var(--lineWidth) var(--calendarSaturdayOrSunday) inset
 
 			&.day
@@ -222,7 +222,7 @@ export default Vue.extend({
 				&:active > div
 					background var(--faceClearButtonActive)
 
-				&[data-is-donichi]
+				&[data-is-weekend]
 					color var(--calendarSaturdayOrSunday)
 
 				&[data-is-out-of-range]

From 65d359b57ae94ab9f53f995082dde645ebf7bf11 Mon Sep 17 00:00:00 2001
From: syuilo <syuilotan@yahoo.co.jp>
Date: Sun, 9 Jun 2019 23:07:32 +0900
Subject: [PATCH 2/5] Fix #5020

---
 src/db/redis.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/db/redis.ts b/src/db/redis.ts
index 6518cb0059..41d030149c 100644
--- a/src/db/redis.ts
+++ b/src/db/redis.ts
@@ -5,7 +5,7 @@ export default redis.createClient(
 	config.redis.port,
 	config.redis.host,
 	{
-		auth_pass: config.redis.pass,
+		password: config.redis.pass,
 		prefix: config.redis.prefix,
 		db: config.redis.db || 0
 	}

From 5bdc44c672388a2449ae5f10890686e6f0b9a615 Mon Sep 17 00:00:00 2001
From: Satsuki Yanagi <17376330+u1-liquid@users.noreply.github.com>
Date: Mon, 10 Jun 2019 01:02:33 +0900
Subject: [PATCH 3/5] :v: (#5041)

related #5020
---
 src/db/postgre.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/db/postgre.ts b/src/db/postgre.ts
index 8e2d585e99..f0f1e7eec0 100644
--- a/src/db/postgre.ts
+++ b/src/db/postgre.ts
@@ -102,7 +102,7 @@ export function initDb(justBorrow = false, sync = false, log = false) {
 				host: config.redis.host,
 				port: config.redis.port,
 				options:{
-					auth_pass: config.redis.pass,
+					password: config.redis.pass,
 					prefix: config.redis.prefix,
 					db: config.redis.db || 0
 				}

From fe2191a4911a13d5f5af0e27891343262a1bd4de Mon Sep 17 00:00:00 2001
From: syuilo <Syuilotan@yahoo.co.jp>
Date: Mon, 10 Jun 2019 11:42:06 +0900
Subject: [PATCH 4/5] New Crowdin translations (#5040)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)
---
 locales/ko-KR.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml
index f589827e72..6e4882aa1f 100644
--- a/locales/ko-KR.yml
+++ b/locales/ko-KR.yml
@@ -4,7 +4,7 @@ meta:
 common:
   misskey: "연합우주의 ⭐"
   about-title: "연합우주의 ⭐."
-  about: "Misskey를 찾아주셔서 감사합니다. Misskey는 지구에서 태어난 <b>분산 마이크로 블로그 SNS </b> 입니다. Fediverse(다양한 SNS로 구성되는 우주)에 존재하는 다른 SNS와 상호 연결되어 있습니다. 잠시 도시의 번잡함에서 벗어나 새로운 인터넷에 다이브 해 보지 않겠습니까."
+  about: "Misskey를 발견해주셔서 감사합니다! Misskey는 지구에서 태어난 <b>분산 마이크로 블로그 SNS</b> 입니다. Fediverse (다양한 SNS가 함께하는 우주) 속에 존재하고 있어서, 다른 SNS와 서로 연결되어 있습니다. 번잡한 도시에서 벗어나 새로운 인터넷에 빠져보지 않으시겠어요?"
   intro:
     title: "Misskey란?"
     about: "Misskey는 오픈소스 <b>분산형 마이크로블로그 SNS</b>입니다. 다양하고 폭넓게 커스터마이징할 수 있는 UI, 글에 대한 리액션, 파일을 관리할 수 있는 드라이브 등의 선진적인 기능을 갖추고 있습니다. 더하여 Fediverse라고 부르는 네트워크에 연결할 수 있어 다른 SNS와도 주고받을 수 있습니다. 예를 들자면, 당신이 무언가를 게시하면, 해당 게시물은 Misskey 뿐만 아니라 다른 SNS에도 전해집니다. 살짝 어떤 행성에서 다른 행성으로 전파를 발신하고 있는 모습을 상상해주세요."

From b8060a522a34ae150fb24a7fd2f07766f7836fb6 Mon Sep 17 00:00:00 2001
From: syuilo <syuilotan@yahoo.co.jp>
Date: Mon, 10 Jun 2019 11:43:45 +0900
Subject: [PATCH 5/5] 11.20.2

---
 CHANGELOG.md | 7 +++++++
 package.json | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1a2d6e0b03..f9ce55c124 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -17,6 +17,13 @@ npm i -g ts-node
 npm run migrate
 ```
 
+11.20.2 (2019/06/10)
+--------------------
+### 🐛Fixes
+* Redisにパスワードを設定している場合接続できない問題を修正
+* i18n
+* など
+
 11.20.1 (2019/06/07)
 --------------------
 ### 🐛Fixes
diff --git a/package.json b/package.json
index 75d2abd868..bc1ee7beb3 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
 {
 	"name": "misskey",
 	"author": "syuilo <i@syuilo.com>",
-	"version": "11.20.1",
+	"version": "11.20.2",
 	"codename": "daybreak",
 	"repository": {
 		"type": "git",