forked from AkkomaGang/akkoma-fe
Merge dev fix conflicts
This commit is contained in:
commit
8761e039d0
17 changed files with 1987 additions and 628 deletions
|
@ -16,6 +16,7 @@ import Notifications from 'components/notifications/notifications.vue'
|
||||||
import UserPanel from 'components/user_panel/user_panel.vue'
|
import UserPanel from 'components/user_panel/user_panel.vue'
|
||||||
import LoginForm from 'components/login_form/login_form.vue'
|
import LoginForm from 'components/login_form/login_form.vue'
|
||||||
import ChatPanel from 'components/chat_panel/chat_panel.vue'
|
import ChatPanel from 'components/chat_panel/chat_panel.vue'
|
||||||
|
import WhoToFollow from 'components/who_to_follow/who_to_follow.vue'
|
||||||
import About from 'components/about/about.vue'
|
import About from 'components/about/about.vue'
|
||||||
|
|
||||||
export default (store) => {
|
export default (store) => {
|
||||||
|
@ -47,6 +48,7 @@ export default (store) => {
|
||||||
{ name: 'chat', path: '/chat', component: ChatPanel, props: () => ({ floating: false }) },
|
{ name: 'chat', path: '/chat', component: ChatPanel, props: () => ({ floating: false }) },
|
||||||
{ name: 'oauth-callback', path: '/oauth-callback', component: OAuthCallback, props: (route) => ({ code: route.query.code }) },
|
{ name: 'oauth-callback', path: '/oauth-callback', component: OAuthCallback, props: (route) => ({ code: route.query.code }) },
|
||||||
{ name: 'user-search', path: '/user-search', component: UserSearch, props: (route) => ({ query: route.query.query }) },
|
{ name: 'user-search', path: '/user-search', component: UserSearch, props: (route) => ({ query: route.query.query }) },
|
||||||
|
{ name: 'who-to-follow', path: '/who-to-follow', component: WhoToFollow },
|
||||||
{ name: 'about', path: '/about', component: About },
|
{ name: 'about', path: '/about', component: About },
|
||||||
{ name: 'user-profile', path: '/(users/)?:name', component: UserProfile }
|
{ name: 'user-profile', path: '/(users/)?:name', component: UserProfile }
|
||||||
]
|
]
|
||||||
|
|
|
@ -26,6 +26,9 @@ const Attachment = {
|
||||||
usePlaceHolder () {
|
usePlaceHolder () {
|
||||||
return this.size === 'hide' || this.type === 'unknown'
|
return this.size === 'hide' || this.type === 'unknown'
|
||||||
},
|
},
|
||||||
|
referrerpolicy () {
|
||||||
|
return this.$store.state.instance.mediaProxyAvailable ? '' : 'no-referrer'
|
||||||
|
},
|
||||||
type () {
|
type () {
|
||||||
return fileTypeService.fileType(this.attachment.mimetype)
|
return fileTypeService.fileType(this.attachment.mimetype)
|
||||||
},
|
},
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
:href="attachment.url" target="_blank"
|
:href="attachment.url" target="_blank"
|
||||||
:title="attachment.description"
|
:title="attachment.description"
|
||||||
>
|
>
|
||||||
<StillImage :class="{'small': isSmall}" referrerpolicy="no-referrer" :mimetype="attachment.mimetype" :src="attachment.large_thumb_url || attachment.url"/>
|
<StillImage :class="{'small': isSmall}" referrerpolicy="referrerPolicy" :mimetype="attachment.mimetype" :src="attachment.large_thumb_url || attachment.url"/>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a class="video-container"
|
<a class="video-container"
|
||||||
|
|
|
@ -23,6 +23,9 @@ const SideDrawer = {
|
||||||
},
|
},
|
||||||
unseenNotificationsCount () {
|
unseenNotificationsCount () {
|
||||||
return this.unseenNotifications.length
|
return this.unseenNotifications.length
|
||||||
|
},
|
||||||
|
suggestionsEnabled () {
|
||||||
|
return this.$store.state.instance.suggestionsEnabled
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
@ -62,12 +62,17 @@
|
||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li @click="toggleDrawer">
|
<li @click="toggleDrawer">
|
||||||
<router-link :to="{ name: 'user-search'}">
|
<router-link :to="{ name: 'user-search' }">
|
||||||
{{ $t("nav.user_search") }}
|
{{ $t("nav.user_search") }}
|
||||||
</router-link>
|
</router-link>
|
||||||
</li>
|
</li>
|
||||||
|
<li v-if="currentUser && suggestionsEnabled" @click="toggleDrawer">
|
||||||
|
<router-link :to="{ name: 'who-to-follow' }">
|
||||||
|
{{ $t("nav.who_to_follow") }}
|
||||||
|
</router-link>
|
||||||
|
</li>
|
||||||
<li @click="toggleDrawer">
|
<li @click="toggleDrawer">
|
||||||
<router-link :to="{ name: 'settings'}">
|
<router-link :to="{ name: 'settings' }">
|
||||||
{{ $t("settings.settings") }}
|
{{ $t("settings.settings") }}
|
||||||
</router-link>
|
</router-link>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -118,19 +118,7 @@ const Status = {
|
||||||
return lengthScore > 20
|
return lengthScore > 20
|
||||||
},
|
},
|
||||||
isReply () {
|
isReply () {
|
||||||
if (this.status.in_reply_to_status_id) {
|
return !!this.status.in_reply_to_status_id
|
||||||
return true
|
|
||||||
}
|
|
||||||
// For private replies where we can't see the OP, in_reply_to_status_id will be null.
|
|
||||||
// So instead, check that the post starts with a @mention.
|
|
||||||
if (this.status.visibility === 'private') {
|
|
||||||
var textBody = this.status.text
|
|
||||||
if (this.status.summary !== null) {
|
|
||||||
textBody = textBody.substring(this.status.summary.length, textBody.length)
|
|
||||||
}
|
|
||||||
return textBody.startsWith('@')
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
},
|
},
|
||||||
hideReply () {
|
hideReply () {
|
||||||
if (this.$store.state.config.replyVisibility === 'all') {
|
if (this.$store.state.config.replyVisibility === 'all') {
|
||||||
|
|
|
@ -88,7 +88,7 @@
|
||||||
<div :class="{'tall-status': hideTallStatus}" class="status-content-wrapper">
|
<div :class="{'tall-status': hideTallStatus}" class="status-content-wrapper">
|
||||||
<a class="tall-status-hider" :class="{ 'tall-status-hider_focused': isFocused }" v-if="hideTallStatus" href="#" @click.prevent="toggleShowMore">Show more</a>
|
<a class="tall-status-hider" :class="{ 'tall-status-hider_focused': isFocused }" v-if="hideTallStatus" href="#" @click.prevent="toggleShowMore">Show more</a>
|
||||||
<div @click.prevent="linkClicked" class="status-content media-body" v-html="status.statusnet_html" v-if="!hideSubjectStatus"></div>
|
<div @click.prevent="linkClicked" class="status-content media-body" v-html="status.statusnet_html" v-if="!hideSubjectStatus"></div>
|
||||||
<div @click.prevent="linkClicked" class="status-content media-body" v-html="status.summary" v-else></div>
|
<div @click.prevent="linkClicked" class="status-content media-body" v-html="status.summary_html" v-else></div>
|
||||||
<a v-if="hideSubjectStatus" href="#" class="cw-status-hider" @click.prevent="toggleShowMore">Show more</a>
|
<a v-if="hideSubjectStatus" href="#" class="cw-status-hider" @click.prevent="toggleShowMore">Show more</a>
|
||||||
<a v-if="showingMore" href="#" class="status-unhider" @click.prevent="toggleShowMore">Show less</a>
|
<a v-if="showingMore" href="#" class="status-unhider" @click.prevent="toggleShowMore">Show less</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
48
src/components/who_to_follow/who_to_follow.js
Normal file
48
src/components/who_to_follow/who_to_follow.js
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
import apiService from '../../services/api/api.service.js'
|
||||||
|
import UserCard from '../user_card/user_card.vue'
|
||||||
|
|
||||||
|
const WhoToFollow = {
|
||||||
|
components: {
|
||||||
|
UserCard
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
users: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted () {
|
||||||
|
this.getWhoToFollow()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
showWhoToFollow (reply) {
|
||||||
|
reply.forEach((i, index) => {
|
||||||
|
const user = {
|
||||||
|
id: 0,
|
||||||
|
name: i.display_name,
|
||||||
|
screen_name: i.acct,
|
||||||
|
profile_image_url: i.avatar || '/images/avi.png'
|
||||||
|
}
|
||||||
|
this.users.push(user)
|
||||||
|
|
||||||
|
this.$store.state.api.backendInteractor.externalProfile(user.screen_name)
|
||||||
|
.then((externalUser) => {
|
||||||
|
if (!externalUser.error) {
|
||||||
|
this.$store.commit('addNewUsers', [externalUser])
|
||||||
|
user.id = externalUser.id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getWhoToFollow () {
|
||||||
|
const credentials = this.$store.state.users.currentUser.credentials
|
||||||
|
if (credentials) {
|
||||||
|
apiService.suggestions({credentials: credentials})
|
||||||
|
.then((reply) => {
|
||||||
|
this.showWhoToFollow(reply)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default WhoToFollow
|
15
src/components/who_to_follow/who_to_follow.vue
Normal file
15
src/components/who_to_follow/who_to_follow.vue
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<template>
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
{{$t('who_to_follow.who_to_follow')}}
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<user-card v-for="user in users" :key="user.id" :user="user" :showFollows="true"></user-card>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script src="./who_to_follow.js"></script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
</style>
|
|
@ -50,14 +50,6 @@ const WhoToFollowPanel = {
|
||||||
user: function () {
|
user: function () {
|
||||||
return this.$store.state.users.currentUser.screen_name
|
return this.$store.state.users.currentUser.screen_name
|
||||||
},
|
},
|
||||||
moreUrl: function () {
|
|
||||||
const host = window.location.hostname
|
|
||||||
const user = this.user
|
|
||||||
const suggestionsWeb = this.$store.state.instance.suggestionsWeb
|
|
||||||
const url = suggestionsWeb.replace(/{{host}}/g, encodeURIComponent(host))
|
|
||||||
.replace(/{{user}}/g, encodeURIComponent(user))
|
|
||||||
return url
|
|
||||||
},
|
|
||||||
suggestionsEnabled () {
|
suggestionsEnabled () {
|
||||||
return this.$store.state.instance.suggestionsEnabled
|
return this.$store.state.instance.suggestionsEnabled
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
{{user.name}}
|
{{user.name}}
|
||||||
</router-link><br />
|
</router-link><br />
|
||||||
</span>
|
</span>
|
||||||
<img v-bind:src="$store.state.instance.logo"> <a v-bind:href="moreUrl" target="_blank">{{$t('who_to_follow.more')}}</a>
|
<img v-bind:src="$store.state.instance.logo"> <router-link :to="{ name: 'who-to-follow' }">{{$t('who_to_follow.more')}}</router-link>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
"timeline": "Timeline",
|
"timeline": "Timeline",
|
||||||
"twkn": "The Whole Known Network",
|
"twkn": "The Whole Known Network",
|
||||||
"user_search": "User Search",
|
"user_search": "User Search",
|
||||||
|
"who_to_follow": "Who to follow",
|
||||||
"preferences": "Preferences"
|
"preferences": "Preferences"
|
||||||
},
|
},
|
||||||
"notifications": {
|
"notifications": {
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
"username": "ユーザーめい"
|
"username": "ユーザーめい"
|
||||||
},
|
},
|
||||||
"nav": {
|
"nav": {
|
||||||
|
"about": "これはなに?",
|
||||||
"back": "もどる",
|
"back": "もどる",
|
||||||
"chat": "ローカルチャット",
|
"chat": "ローカルチャット",
|
||||||
"friend_requests": "フォローリクエスト",
|
"friend_requests": "フォローリクエスト",
|
||||||
|
@ -38,6 +39,7 @@
|
||||||
"timeline": "タイムライン",
|
"timeline": "タイムライン",
|
||||||
"twkn": "つながっているすべてのネットワーク",
|
"twkn": "つながっているすべてのネットワーク",
|
||||||
"user_search": "ユーザーをさがす",
|
"user_search": "ユーザーをさがす",
|
||||||
|
"who_to_follow": "おすすめユーザー",
|
||||||
"preferences": "せってい"
|
"preferences": "せってい"
|
||||||
},
|
},
|
||||||
"notifications": {
|
"notifications": {
|
||||||
|
@ -50,6 +52,7 @@
|
||||||
"repeated_you": "あなたのステータスがリピートされました"
|
"repeated_you": "あなたのステータスがリピートされました"
|
||||||
},
|
},
|
||||||
"post_status": {
|
"post_status": {
|
||||||
|
"new_status": "とうこうする",
|
||||||
"account_not_locked_warning": "あなたのアカウントは {0} ではありません。あなたをフォローすれば、だれでも、フォロワーげんていのステータスをよむことができます。",
|
"account_not_locked_warning": "あなたのアカウントは {0} ではありません。あなたをフォローすれば、だれでも、フォロワーげんていのステータスをよむことができます。",
|
||||||
"account_not_locked_warning_link": "ロックされたアカウント",
|
"account_not_locked_warning_link": "ロックされたアカウント",
|
||||||
"attachments_sensitive": "ファイルをNSFWにする",
|
"attachments_sensitive": "ファイルをNSFWにする",
|
||||||
|
|
370
src/i18n/ko.json
Normal file
370
src/i18n/ko.json
Normal file
|
@ -0,0 +1,370 @@
|
||||||
|
{
|
||||||
|
"chat": {
|
||||||
|
"title": "챗"
|
||||||
|
},
|
||||||
|
"features_panel": {
|
||||||
|
"chat": "챗",
|
||||||
|
"gopher": "고퍼",
|
||||||
|
"media_proxy": "미디어 프록시",
|
||||||
|
"scope_options": "범위 옵션",
|
||||||
|
"text_limit": "텍스트 제한",
|
||||||
|
"title": "기능",
|
||||||
|
"who_to_follow": "팔로우 추천"
|
||||||
|
},
|
||||||
|
"finder": {
|
||||||
|
"error_fetching_user": "사용자 정보 불러오기 실패",
|
||||||
|
"find_user": "사용자 찾기"
|
||||||
|
},
|
||||||
|
"general": {
|
||||||
|
"apply": "적용",
|
||||||
|
"submit": "보내기"
|
||||||
|
},
|
||||||
|
"login": {
|
||||||
|
"login": "로그인",
|
||||||
|
"description": "OAuth로 로그인",
|
||||||
|
"logout": "로그아웃",
|
||||||
|
"password": "암호",
|
||||||
|
"placeholder": "예시: lain",
|
||||||
|
"register": "가입",
|
||||||
|
"username": "사용자 이름"
|
||||||
|
},
|
||||||
|
"nav": {
|
||||||
|
"about": "About",
|
||||||
|
"back": "뒤로",
|
||||||
|
"chat": "로컬 챗",
|
||||||
|
"friend_requests": "팔로우 요청",
|
||||||
|
"mentions": "멘션",
|
||||||
|
"dms": "다이렉트 메시지",
|
||||||
|
"public_tl": "공개 타임라인",
|
||||||
|
"timeline": "타임라인",
|
||||||
|
"twkn": "모든 알려진 네트워크",
|
||||||
|
"user_search": "사용자 검색",
|
||||||
|
"preferences": "환경설정"
|
||||||
|
},
|
||||||
|
"notifications": {
|
||||||
|
"broken_favorite": "알 수 없는 게시물입니다, 검색 합니다...",
|
||||||
|
"favorited_you": "당신의 게시물을 즐겨찾기",
|
||||||
|
"followed_you": "당신을 팔로우",
|
||||||
|
"load_older": "오래 된 알림 불러오기",
|
||||||
|
"notifications": "알림",
|
||||||
|
"read": "읽음!",
|
||||||
|
"repeated_you": "당신의 게시물을 리핏"
|
||||||
|
},
|
||||||
|
"post_status": {
|
||||||
|
"new_status": "새 게시물 게시",
|
||||||
|
"account_not_locked_warning": "당신의 계정은 {0} 상태가 아닙니다. 누구나 당신을 팔로우 하고 팔로워 전용 게시물을 볼 수 있습니다.",
|
||||||
|
"account_not_locked_warning_link": "잠김",
|
||||||
|
"attachments_sensitive": "첨부물을 민감함으로 설정",
|
||||||
|
"content_type": {
|
||||||
|
"plain_text": "평문"
|
||||||
|
},
|
||||||
|
"content_warning": "주제 (필수 아님)",
|
||||||
|
"default": "LA에 도착!",
|
||||||
|
"direct_warning": "이 게시물을 멘션 된 사용자들에게만 보여집니다",
|
||||||
|
"posting": "게시",
|
||||||
|
"scope": {
|
||||||
|
"direct": "다이렉트 - 멘션 된 사용자들에게만",
|
||||||
|
"private": "팔로워 전용 - 팔로워들에게만",
|
||||||
|
"public": "공개 - 공개 타임라인으로",
|
||||||
|
"unlisted": "비공개 - 공개 타임라인에 게시 안 함"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"registration": {
|
||||||
|
"bio": "소개",
|
||||||
|
"email": "이메일",
|
||||||
|
"fullname": "표시 되는 이름",
|
||||||
|
"password_confirm": "암호 확인",
|
||||||
|
"registration": "가입하기",
|
||||||
|
"token": "초대 토큰",
|
||||||
|
"captcha": "캡차",
|
||||||
|
"new_captcha": "이미지를 클릭해서 새로운 캡차",
|
||||||
|
"validations": {
|
||||||
|
"username_required": "공백으로 둘 수 없습니다",
|
||||||
|
"fullname_required": "공백으로 둘 수 없습니다",
|
||||||
|
"email_required": "공백으로 둘 수 없습니다",
|
||||||
|
"password_required": "공백으로 둘 수 없습니다",
|
||||||
|
"password_confirmation_required": "공백으로 둘 수 없습니다",
|
||||||
|
"password_confirmation_match": "패스워드와 일치해야 합니다"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"attachmentRadius": "첨부물",
|
||||||
|
"attachments": "첨부물",
|
||||||
|
"autoload": "최하단에 도착하면 자동으로 로드 활성화",
|
||||||
|
"avatar": "아바타",
|
||||||
|
"avatarAltRadius": "아바타 (알림)",
|
||||||
|
"avatarRadius": "아바타",
|
||||||
|
"background": "배경",
|
||||||
|
"bio": "소개",
|
||||||
|
"btnRadius": "버튼",
|
||||||
|
"cBlue": "파랑 (답글, 팔로우)",
|
||||||
|
"cGreen": "초록 (리트윗)",
|
||||||
|
"cOrange": "주황 (즐겨찾기)",
|
||||||
|
"cRed": "빨강 (취소)",
|
||||||
|
"change_password": "암호 바꾸기",
|
||||||
|
"change_password_error": "암호를 바꾸는 데 몇 가지 문제가 있습니다.",
|
||||||
|
"changed_password": "암호를 바꾸었습니다!",
|
||||||
|
"collapse_subject": "주제를 가진 게시물 접기",
|
||||||
|
"composing": "작성",
|
||||||
|
"confirm_new_password": "새 패스워드 확인",
|
||||||
|
"current_avatar": "현재 아바타",
|
||||||
|
"current_password": "현재 패스워드",
|
||||||
|
"current_profile_banner": "현재 프로필 배너",
|
||||||
|
"data_import_export_tab": "데이터 불러오기 / 내보내기",
|
||||||
|
"default_vis": "기본 공개 범위",
|
||||||
|
"delete_account": "계정 삭제",
|
||||||
|
"delete_account_description": "계정과 메시지를 영구히 삭제.",
|
||||||
|
"delete_account_error": "계정을 삭제하는데 문제가 있습니다. 계속 발생한다면 인스턴스 관리자에게 문의하세요.",
|
||||||
|
"delete_account_instructions": "계정 삭제를 확인하기 위해 아래에 패스워드 입력.",
|
||||||
|
"export_theme": "프리셋 저장",
|
||||||
|
"filtering": "필터링",
|
||||||
|
"filtering_explanation": "아래의 단어를 가진 게시물들은 뮤트 됩니다, 한 줄에 하나씩 적으세요",
|
||||||
|
"follow_export": "팔로우 내보내기",
|
||||||
|
"follow_export_button": "팔로우 목록을 csv로 내보내기",
|
||||||
|
"follow_export_processing": "진행 중입니다, 곧 다운로드 가능해 질 것입니다",
|
||||||
|
"follow_import": "팔로우 불러오기",
|
||||||
|
"follow_import_error": "팔로우 불러오기 실패",
|
||||||
|
"follows_imported": "팔로우 목록을 불러왔습니다! 처리에는 시간이 걸립니다.",
|
||||||
|
"foreground": "전경",
|
||||||
|
"general": "일반",
|
||||||
|
"hide_attachments_in_convo": "대화의 첨부물 숨기기",
|
||||||
|
"hide_attachments_in_tl": "타임라인의 첨부물 숨기기",
|
||||||
|
"hide_isp": "인스턴스 전용 패널 숨기기",
|
||||||
|
"preload_images": "이미지 미리 불러오기",
|
||||||
|
"hide_post_stats": "게시물 통계 숨기기 (즐겨찾기 수 등)",
|
||||||
|
"hide_user_stats": "사용자 통계 숨기기 (팔로워 수 등)",
|
||||||
|
"import_followers_from_a_csv_file": "csv 파일에서 팔로우 목록 불러오기",
|
||||||
|
"import_theme": "프리셋 불러오기",
|
||||||
|
"inputRadius": "입력 칸",
|
||||||
|
"checkboxRadius": "체크박스",
|
||||||
|
"instance_default": "(기본: {value})",
|
||||||
|
"instance_default_simple": "(기본)",
|
||||||
|
"interface": "인터페이스",
|
||||||
|
"interfaceLanguage": "인터페이스 언어",
|
||||||
|
"invalid_theme_imported": "선택한 파일은 지원하는 플레로마 테마가 아닙니다. 아무런 변경도 일어나지 않았습니다.",
|
||||||
|
"limited_availability": "이 브라우저에서 사용 불가",
|
||||||
|
"links": "링크",
|
||||||
|
"lock_account_description": "계정을 승인 된 팔로워들로 제한",
|
||||||
|
"loop_video": "비디오 반복재생",
|
||||||
|
"loop_video_silent_only": "소리가 없는 비디오만 반복 재생 (마스토돈의 \"gifs\" 같은 것들)",
|
||||||
|
"name": "이름",
|
||||||
|
"name_bio": "이름 & 소개",
|
||||||
|
"new_password": "새 암호",
|
||||||
|
"notification_visibility": "보여 줄 알림 종류",
|
||||||
|
"notification_visibility_follows": "팔로우",
|
||||||
|
"notification_visibility_likes": "좋아함",
|
||||||
|
"notification_visibility_mentions": "멘션",
|
||||||
|
"notification_visibility_repeats": "반복",
|
||||||
|
"no_rich_text_description": "모든 게시물의 서식을 지우기",
|
||||||
|
"hide_network_description": "내 팔로우와 팔로워를 숨기기",
|
||||||
|
"nsfw_clickthrough": "NSFW 이미지 \"클릭해서 보이기\"를 활성화",
|
||||||
|
"panelRadius": "패널",
|
||||||
|
"pause_on_unfocused": "탭이 활성 상태가 아닐 때 스트리밍 멈추기",
|
||||||
|
"presets": "프리셋",
|
||||||
|
"profile_background": "프로필 배경",
|
||||||
|
"profile_banner": "프로필 배너",
|
||||||
|
"profile_tab": "프로필",
|
||||||
|
"radii_help": "인터페이스 모서리 둥글기 (픽셀 단위)",
|
||||||
|
"replies_in_timeline": "답글을 타임라인에",
|
||||||
|
"reply_link_preview": "마우스를 올려서 답글 링크 미리보기 활성화",
|
||||||
|
"reply_visibility_all": "모든 답글 보기",
|
||||||
|
"reply_visibility_following": "나에게 직접 오는 답글이나 내가 팔로우 중인 사람에게서 오는 답글만 표시",
|
||||||
|
"reply_visibility_self": "나에게 직접 전송 된 답글만 보이기",
|
||||||
|
"saving_err": "설정 저장 실패",
|
||||||
|
"saving_ok": "설정 저장 됨",
|
||||||
|
"security_tab": "보안",
|
||||||
|
"scope_copy": "답글을 달 때 공개 범위 따라가리 (다이렉트 메시지는 언제나 따라감)",
|
||||||
|
"set_new_avatar": "새 아바타 설정",
|
||||||
|
"set_new_profile_background": "새 프로필 배경 설정",
|
||||||
|
"set_new_profile_banner": "새 프로필 배너 설정",
|
||||||
|
"settings": "설정",
|
||||||
|
"subject_input_always_show": "항상 주제 칸 보이기",
|
||||||
|
"subject_line_behavior": "답글을 달 때 주제 복사하기",
|
||||||
|
"subject_line_email": "이메일처럼: \"re: 주제\"",
|
||||||
|
"subject_line_mastodon": "마스토돈처럼: 그대로 복사",
|
||||||
|
"subject_line_noop": "복사 안 함",
|
||||||
|
"stop_gifs": "GIF파일에 마우스를 올려서 재생",
|
||||||
|
"streaming": "최상단에 도달하면 자동으로 새 게시물 스트리밍",
|
||||||
|
"text": "텍스트",
|
||||||
|
"theme": "테마",
|
||||||
|
"theme_help": "16진수 색상코드(#rrggbb)를 사용해 색상 테마를 커스터마이즈.",
|
||||||
|
"theme_help_v2_1": "체크박스를 통해 몇몇 컴포넌트의 색상과 불투명도를 조절 가능, \"모두 지우기\" 버튼으로 덮어 씌운 것을 모두 취소.",
|
||||||
|
"theme_help_v2_2": "몇몇 입력칸 밑의 아이콘은 전경/배경 대비 관련 표시등입니다, 마우스를 올려 자세한 정보를 볼 수 있습니다. 투명도 대비 표시등이 가장 최악의 경우를 나타낸다는 것을 유의하세요.",
|
||||||
|
"tooltipRadius": "툴팁/경고",
|
||||||
|
"user_settings": "사용자 설정",
|
||||||
|
"values": {
|
||||||
|
"false": "아니오",
|
||||||
|
"true": "네"
|
||||||
|
},
|
||||||
|
"notifications": "알림",
|
||||||
|
"enable_web_push_notifications": "웹 푸시 알림 활성화",
|
||||||
|
"style": {
|
||||||
|
"switcher": {
|
||||||
|
"keep_color": "색상 유지",
|
||||||
|
"keep_shadows": "그림자 유지",
|
||||||
|
"keep_opacity": "불투명도 유지",
|
||||||
|
"keep_roundness": "둥글기 유지",
|
||||||
|
"keep_fonts": "글자체 유지",
|
||||||
|
"save_load_hint": "\"유지\" 옵션들은 다른 테마를 고르거나 불러 올 때 현재 설정 된 옵션들을 건드리지 않게 합니다, 테마를 내보내기 할 때도 이 옵션에 따라 저장합니다. 아무 것도 체크 되지 않았다면 모든 설정을 내보냅니다.",
|
||||||
|
"reset": "초기화",
|
||||||
|
"clear_all": "모두 지우기",
|
||||||
|
"clear_opacity": "불투명도 지우기"
|
||||||
|
},
|
||||||
|
"common": {
|
||||||
|
"color": "색상",
|
||||||
|
"opacity": "불투명도",
|
||||||
|
"contrast": {
|
||||||
|
"hint": "대비율이 {ratio}입니다, 이것은 {context} {level}",
|
||||||
|
"level": {
|
||||||
|
"aa": "AA등급 가이드라인에 부합합니다 (최소한도)",
|
||||||
|
"aaa": "AAA등급 가이드라인에 부합합니다 (권장)",
|
||||||
|
"bad": "아무런 가이드라인 등급에도 미치지 못합니다"
|
||||||
|
},
|
||||||
|
"context": {
|
||||||
|
"18pt": "큰 (18pt 이상) 텍스트에 대해",
|
||||||
|
"text": "텍스트에 대해"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"common_colors": {
|
||||||
|
"_tab_label": "일반",
|
||||||
|
"main": "일반 색상",
|
||||||
|
"foreground_hint": "\"고급\" 탭에서 더 자세한 설정이 가능합니다",
|
||||||
|
"rgbo": "아이콘, 강조, 배지"
|
||||||
|
},
|
||||||
|
"advanced_colors": {
|
||||||
|
"_tab_label": "고급",
|
||||||
|
"alert": "주의 배경",
|
||||||
|
"alert_error": "에러",
|
||||||
|
"badge": "배지 배경",
|
||||||
|
"badge_notification": "알림",
|
||||||
|
"panel_header": "패널 헤더",
|
||||||
|
"top_bar": "상단 바",
|
||||||
|
"borders": "테두리",
|
||||||
|
"buttons": "버튼",
|
||||||
|
"inputs": "입력칸",
|
||||||
|
"faint_text": "흐려진 텍스트"
|
||||||
|
},
|
||||||
|
"radii": {
|
||||||
|
"_tab_label": "둥글기"
|
||||||
|
},
|
||||||
|
"shadows": {
|
||||||
|
"_tab_label": "그림자와 빛",
|
||||||
|
"component": "컴포넌트",
|
||||||
|
"override": "덮어쓰기",
|
||||||
|
"shadow_id": "그림자 #{value}",
|
||||||
|
"blur": "흐리기",
|
||||||
|
"spread": "퍼지기",
|
||||||
|
"inset": "안쪽으로",
|
||||||
|
"hint": "그림자에는 CSS3 변수를 --variable을 통해 색상 값으로 사용할 수 있습니다. 불투명도에는 적용 되지 않습니다.",
|
||||||
|
"filter_hint": {
|
||||||
|
"always_drop_shadow": "경고, 이 그림자는 브라우저가 지원하는 경우 항상 {0}을 사용합니다.",
|
||||||
|
"drop_shadow_syntax": "{0}는 {1} 파라미터와 {2} 키워드를 지원하지 않습니다.",
|
||||||
|
"avatar_inset": "안쪽과 안쪽이 아닌 그림자를 모두 설정하는 경우 투명 아바타에서 예상치 못 한 결과가 나올 수 있다는 것에 주의해 주세요.",
|
||||||
|
"spread_zero": "퍼지기가 0보다 큰 그림자는 0으로 설정한 것과 동일하게 보여집니다",
|
||||||
|
"inset_classic": "안쪽 그림자는 {0}를 사용합니다"
|
||||||
|
},
|
||||||
|
"components": {
|
||||||
|
"panel": "패널",
|
||||||
|
"panelHeader": "패널 헤더",
|
||||||
|
"topBar": "상단 바",
|
||||||
|
"avatar": "사용자 아바타 (프로필 뷰에서)",
|
||||||
|
"avatarStatus": "사용자 아바타 (게시물에서)",
|
||||||
|
"popup": "팝업과 툴팁",
|
||||||
|
"button": "버튼",
|
||||||
|
"buttonHover": "버튼 (마우스 올렸을 때)",
|
||||||
|
"buttonPressed": "버튼 (눌렸을 때)",
|
||||||
|
"buttonPressedHover": "Button (마우스 올림 + 눌림)",
|
||||||
|
"input": "입력칸"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fonts": {
|
||||||
|
"_tab_label": "글자체",
|
||||||
|
"help": "인터페이스의 요소에 사용 될 글자체를 고르세요. \"커스텀\"은 시스템에 있는 폰트 이름을 정확히 입력해야 합니다.",
|
||||||
|
"components": {
|
||||||
|
"interface": "인터페이스",
|
||||||
|
"input": "입력칸",
|
||||||
|
"post": "게시물 텍스트",
|
||||||
|
"postCode": "게시물의 고정폭 텍스트 (서식 있는 텍스트)"
|
||||||
|
},
|
||||||
|
"family": "글자체 이름",
|
||||||
|
"size": "크기 (px 단위)",
|
||||||
|
"weight": "굵기",
|
||||||
|
"custom": "커스텀"
|
||||||
|
},
|
||||||
|
"preview": {
|
||||||
|
"header": "미리보기",
|
||||||
|
"content": "내용",
|
||||||
|
"error": "에러 예시",
|
||||||
|
"button": "버튼",
|
||||||
|
"text": "더 많은 {0} 그리고 {1}",
|
||||||
|
"mono": "내용",
|
||||||
|
"input": "LA에 막 도착!",
|
||||||
|
"faint_link": "도움 되는 설명서",
|
||||||
|
"fine_print": "우리의 {0} 를 읽고 도움 되지 않는 것들을 배우자!",
|
||||||
|
"header_faint": "이건 괜찮아",
|
||||||
|
"checkbox": "나는 약관을 대충 훑어보았습니다",
|
||||||
|
"link": "작고 귀여운 링크"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"timeline": {
|
||||||
|
"collapse": "접기",
|
||||||
|
"conversation": "대화",
|
||||||
|
"error_fetching": "업데이트 불러오기 실패",
|
||||||
|
"load_older": "더 오래 된 게시물 불러오기",
|
||||||
|
"no_retweet_hint": "팔로워 전용, 다이렉트 메시지는 반복할 수 없습니다",
|
||||||
|
"repeated": "반복 됨",
|
||||||
|
"show_new": "새로운 것 보기",
|
||||||
|
"up_to_date": "최신 상태"
|
||||||
|
},
|
||||||
|
"user_card": {
|
||||||
|
"approve": "승인",
|
||||||
|
"block": "차단",
|
||||||
|
"blocked": "차단 됨!",
|
||||||
|
"deny": "거부",
|
||||||
|
"follow": "팔로우",
|
||||||
|
"follow_sent": "요청 보내짐!",
|
||||||
|
"follow_progress": "요청 중…",
|
||||||
|
"follow_again": "요청을 다시 보낼까요?",
|
||||||
|
"follow_unfollow": "팔로우 중지",
|
||||||
|
"followees": "팔로우 중",
|
||||||
|
"followers": "팔로워",
|
||||||
|
"following": "팔로우 중!",
|
||||||
|
"follows_you": "당신을 팔로우 합니다!",
|
||||||
|
"its_you": "당신입니다!",
|
||||||
|
"mute": "침묵",
|
||||||
|
"muted": "침묵 됨",
|
||||||
|
"per_day": " / 하루",
|
||||||
|
"remote_follow": "원격 팔로우",
|
||||||
|
"statuses": "게시물"
|
||||||
|
},
|
||||||
|
"user_profile": {
|
||||||
|
"timeline_title": "사용자 타임라인"
|
||||||
|
},
|
||||||
|
"who_to_follow": {
|
||||||
|
"more": "더 보기",
|
||||||
|
"who_to_follow": "팔로우 추천"
|
||||||
|
},
|
||||||
|
"tool_tip": {
|
||||||
|
"media_upload": "미디어 업로드",
|
||||||
|
"repeat": "반복",
|
||||||
|
"reply": "답글",
|
||||||
|
"favorite": "즐겨찾기",
|
||||||
|
"user_settings": "사용자 설정"
|
||||||
|
},
|
||||||
|
"upload":{
|
||||||
|
"error": {
|
||||||
|
"base": "업로드 실패.",
|
||||||
|
"file_too_big": "파일이 너무 커요 [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]",
|
||||||
|
"default": "잠시 후에 다시 시도해 보세요"
|
||||||
|
},
|
||||||
|
"file_size_units": {
|
||||||
|
"B": "바이트",
|
||||||
|
"KiB": "키비바이트",
|
||||||
|
"MiB": "메비바이트",
|
||||||
|
"GiB": "기비바이트",
|
||||||
|
"TiB": "테비바이트"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -22,6 +22,7 @@ const messages = {
|
||||||
hu: require('./hu.json'),
|
hu: require('./hu.json'),
|
||||||
it: require('./it.json'),
|
it: require('./it.json'),
|
||||||
ja: require('./ja.json'),
|
ja: require('./ja.json'),
|
||||||
|
ko: require('./ko.json'),
|
||||||
nb: require('./nb.json'),
|
nb: require('./nb.json'),
|
||||||
oc: require('./oc.json'),
|
oc: require('./oc.json'),
|
||||||
pl: require('./pl.json'),
|
pl: require('./pl.json'),
|
||||||
|
|
BIN
static/logo.png
BIN
static/logo.png
Binary file not shown.
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.3 KiB |
Loading…
Reference in a new issue