forked from srxl/akkoma-fe
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma-fe into hide-statistics
This commit is contained in:
commit
4cc1ed6171
50 changed files with 2820 additions and 2257 deletions
|
@ -27,6 +27,11 @@ module.exports = {
|
|||
changeOrigin: true,
|
||||
cookieDomainRewrite: 'localhost'
|
||||
},
|
||||
'/nodeinfo': {
|
||||
target: 'http://localhost:4000/',
|
||||
changeOrigin: true,
|
||||
cookieDomainRewrite: 'localhost'
|
||||
},
|
||||
'/socket': {
|
||||
target: 'http://localhost:4000/',
|
||||
changeOrigin: true,
|
||||
|
|
22
src/App.js
22
src/App.js
|
@ -2,8 +2,9 @@ import UserPanel from './components/user_panel/user_panel.vue'
|
|||
import NavPanel from './components/nav_panel/nav_panel.vue'
|
||||
import Notifications from './components/notifications/notifications.vue'
|
||||
import UserFinder from './components/user_finder/user_finder.vue'
|
||||
import WhoToFollowPanel from './components/who_to_follow_panel/who_to_follow_panel.vue'
|
||||
import InstanceSpecificPanel from './components/instance_specific_panel/instance_specific_panel.vue'
|
||||
import FeaturesPanel from './components/features_panel/features_panel.vue'
|
||||
import WhoToFollowPanel from './components/who_to_follow_panel/who_to_follow_panel.vue'
|
||||
import ChatPanel from './components/chat_panel/chat_panel.vue'
|
||||
|
||||
export default {
|
||||
|
@ -13,8 +14,9 @@ export default {
|
|||
NavPanel,
|
||||
Notifications,
|
||||
UserFinder,
|
||||
WhoToFollowPanel,
|
||||
InstanceSpecificPanel,
|
||||
FeaturesPanel,
|
||||
WhoToFollowPanel,
|
||||
ChatPanel
|
||||
},
|
||||
data: () => ({
|
||||
|
@ -34,9 +36,9 @@ export default {
|
|||
computed: {
|
||||
currentUser () { return this.$store.state.users.currentUser },
|
||||
background () {
|
||||
return this.currentUser.background_image || this.$store.state.config.background
|
||||
return this.currentUser.background_image || this.$store.state.instance.background
|
||||
},
|
||||
enableMask () { return this.supportsMask && this.$store.state.config.logoMask },
|
||||
enableMask () { return this.supportsMask && this.$store.state.instance.logoMask },
|
||||
logoStyle () {
|
||||
return {
|
||||
'visibility': this.enableMask ? 'hidden' : 'visible'
|
||||
|
@ -44,24 +46,24 @@ export default {
|
|||
},
|
||||
logoMaskStyle () {
|
||||
return this.enableMask ? {
|
||||
'mask-image': `url(${this.$store.state.config.logo})`
|
||||
'mask-image': `url(${this.$store.state.instance.logo})`
|
||||
} : {
|
||||
'background-color': this.enableMask ? '' : 'transparent'
|
||||
}
|
||||
},
|
||||
logoBgStyle () {
|
||||
return Object.assign({
|
||||
'margin': `${this.$store.state.config.logoMargin} 0`
|
||||
'margin': `${this.$store.state.instance.logoMargin} 0`
|
||||
}, this.enableMask ? {} : {
|
||||
'background-color': this.enableMask ? '' : 'transparent'
|
||||
})
|
||||
},
|
||||
logo () { return this.$store.state.config.logo },
|
||||
logo () { return this.$store.state.instance.logo },
|
||||
style () { return { 'background-image': `url(${this.background})` } },
|
||||
sitename () { return this.$store.state.config.name },
|
||||
sitename () { return this.$store.state.instance.name },
|
||||
chat () { return this.$store.state.chat.channel.state === 'joined' },
|
||||
suggestionsEnabled () { return this.$store.state.config.suggestionsEnabled },
|
||||
showInstanceSpecificPanel () { return this.$store.state.config.showInstanceSpecificPanel }
|
||||
suggestionsEnabled () { return this.$store.state.instance.suggestionsEnabled },
|
||||
showInstanceSpecificPanel () { return this.$store.state.instance.showInstanceSpecificPanel }
|
||||
},
|
||||
methods: {
|
||||
activatePanel (panelName) {
|
||||
|
|
27
src/App.scss
27
src/App.scss
|
@ -248,6 +248,7 @@ nav {
|
|||
justify-content: center;
|
||||
flex: 0 0 auto;
|
||||
z-index: -1;
|
||||
|
||||
.mask {
|
||||
mask-repeat: no-repeat;
|
||||
mask-position: center;
|
||||
|
@ -260,7 +261,10 @@ nav {
|
|||
left: 0;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
img {
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
display: block;
|
||||
flex: 0;
|
||||
}
|
||||
|
@ -325,18 +329,35 @@ main-router {
|
|||
background-size: cover;
|
||||
padding: .6em .6em;
|
||||
text-align: left;
|
||||
font-size: 1.3em;
|
||||
line-height: 24px;
|
||||
line-height: 28px;
|
||||
background-color: $fallback--btn;
|
||||
background-color: var(--btn, $fallback--btn);
|
||||
align-items: baseline;
|
||||
|
||||
.title {
|
||||
flex: 1 0 auto;
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
.alert {
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
button {
|
||||
height: 100%;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
button, .alert {
|
||||
// height: 100%;
|
||||
line-height: 21px;
|
||||
min-height: 0;
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
margin-left: .25em;
|
||||
min-width: 1px;
|
||||
align-self: stretch;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
<user-panel></user-panel>
|
||||
<nav-panel></nav-panel>
|
||||
<instance-specific-panel v-if="showInstanceSpecificPanel"></instance-specific-panel>
|
||||
<features-panel v-if="!currentUser"></features-panel>
|
||||
<who-to-follow-panel v-if="currentUser && suggestionsEnabled"></who-to-follow-panel>
|
||||
<notifications v-if="currentUser"></notifications>
|
||||
</div>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<div class="panel-heading conversation-heading">
|
||||
<span class="title"> {{ $t('timeline.conversation') }} </span>
|
||||
<span v-if="collapsable">
|
||||
<small><a href="#" @click.prevent="$emit('toggleExpanded')">{{ $t('timeline.collapse') }}</a></small>
|
||||
<a href="#" @click.prevent="$emit('toggleExpanded')">{{ $t('timeline.collapse') }}</a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
|
|
|
@ -2,7 +2,9 @@ const FavoriteButton = {
|
|||
props: ['status', 'loggedIn'],
|
||||
data () {
|
||||
return {
|
||||
hidePostStatsLocal: this.$store.state.config.hidePostStats,
|
||||
hidePostStatsLocal: typeof this.$store.state.config.hidePostStats == 'undefined'
|
||||
? this.$store.state.instance.hidePostStats
|
||||
: this.$store.state.config.hidePostStats,
|
||||
animated: false
|
||||
}
|
||||
},
|
||||
|
|
14
src/components/features_panel/features_panel.js
Normal file
14
src/components/features_panel/features_panel.js
Normal file
|
@ -0,0 +1,14 @@
|
|||
const FeaturesPanel = {
|
||||
computed: {
|
||||
chat: function () {
|
||||
return this.$store.state.instance.chatAvailable && (!this.$store.state.chatDisabled)
|
||||
},
|
||||
gopher: function () { return this.$store.state.instance.gopherAvailable },
|
||||
whoToFollow: function () { return this.$store.state.instance.suggestionsEnabled },
|
||||
mediaProxy: function () { return this.$store.state.instance.mediaProxyAvailable },
|
||||
scopeOptions: function () { return this.$store.state.instance.scopeOptionsEnabled },
|
||||
textlimit: function () { return this.$store.state.instance.textlimit }
|
||||
}
|
||||
}
|
||||
|
||||
export default FeaturesPanel
|
29
src/components/features_panel/features_panel.vue
Normal file
29
src/components/features_panel/features_panel.vue
Normal file
|
@ -0,0 +1,29 @@
|
|||
<template>
|
||||
<div class="features-panel">
|
||||
<div class="panel panel-default base01-background">
|
||||
<div class="panel-heading timeline-heading base02-background base04">
|
||||
<div class="title">
|
||||
{{$t('features_panel.title')}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-body features-panel">
|
||||
<ul>
|
||||
<li v-if="chat">{{$t('features_panel.chat')}}</li>
|
||||
<li v-if="gopher">{{$t('features_panel.gopher')}}</li>
|
||||
<li v-if="whoToFollow">{{$t('features_panel.who_to_follow')}}</li>
|
||||
<li v-if="mediaProxy">{{$t('features_panel.media_proxy')}}</li>
|
||||
<li v-if="scopeOptions">{{$t('features_panel.scope_options')}}</li>
|
||||
<li>{{$t('features_panel.text_limit')}} = {{textlimit}}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script src="./features_panel.js" ></script>
|
||||
|
||||
<style lang="scss">
|
||||
.features-panel li {
|
||||
line-height: 24px;
|
||||
}
|
||||
</style>
|
|
@ -1,7 +1,7 @@
|
|||
const InstanceSpecificPanel = {
|
||||
computed: {
|
||||
instanceSpecificPanelContent () {
|
||||
return this.$store.state.config.instanceSpecificPanelContent
|
||||
return this.$store.state.instance.instanceSpecificPanelContent
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ const LoginForm = {
|
|||
}),
|
||||
computed: {
|
||||
loggingIn () { return this.$store.state.users.loggingIn },
|
||||
registrationOpen () { return this.$store.state.config.registrationOpen }
|
||||
registrationOpen () { return this.$store.state.instance.registrationOpen }
|
||||
},
|
||||
methods: {
|
||||
submit () {
|
||||
|
|
|
@ -22,10 +22,6 @@
|
|||
}
|
||||
|
||||
.loadmore-error {
|
||||
min-width: 6em;
|
||||
text-align: center;
|
||||
padding: 0 0.25em 0 0.25em;
|
||||
margin: 0;
|
||||
color: $fallback--fg;
|
||||
color: var(--fg, $fallback--fg);
|
||||
}
|
||||
|
|
|
@ -75,8 +75,11 @@ const PostStatusForm = {
|
|||
candidates () {
|
||||
const firstchar = this.textAtCaret.charAt(0)
|
||||
if (firstchar === '@') {
|
||||
const matchedUsers = filter(this.users, (user) => (String(user.name + user.screen_name)).toUpperCase()
|
||||
.startsWith(this.textAtCaret.slice(1).toUpperCase()))
|
||||
const query = this.textAtCaret.slice(1).toUpperCase()
|
||||
const matchedUsers = filter(this.users, (user) => {
|
||||
return user.screen_name.toUpperCase().startsWith(query) ||
|
||||
user.name && user.name.toUpperCase().startsWith(query)
|
||||
})
|
||||
if (matchedUsers.length <= 0) {
|
||||
return false
|
||||
}
|
||||
|
@ -99,7 +102,7 @@ const PostStatusForm = {
|
|||
name: '',
|
||||
utf: utf || '',
|
||||
// eslint-disable-next-line camelcase
|
||||
img: utf ? '' : this.$store.state.config.server + image_url,
|
||||
img: utf ? '' : this.$store.state.instance.server + image_url,
|
||||
highlighted: index === this.highlighted
|
||||
}))
|
||||
} else {
|
||||
|
@ -117,16 +120,16 @@ const PostStatusForm = {
|
|||
return this.$store.state.users.users
|
||||
},
|
||||
emoji () {
|
||||
return this.$store.state.config.emoji || []
|
||||
return this.$store.state.instance.emoji || []
|
||||
},
|
||||
customEmoji () {
|
||||
return this.$store.state.config.customEmoji || []
|
||||
return this.$store.state.instance.customEmoji || []
|
||||
},
|
||||
statusLength () {
|
||||
return this.newStatus.status.length
|
||||
},
|
||||
statusLengthLimit () {
|
||||
return this.$store.state.config.textlimit
|
||||
return this.$store.state.instance.textlimit
|
||||
},
|
||||
hasStatusLengthLimit () {
|
||||
return this.statusLengthLimit > 0
|
||||
|
@ -138,10 +141,10 @@ const PostStatusForm = {
|
|||
return this.hasStatusLengthLimit && (this.statusLength > this.statusLengthLimit)
|
||||
},
|
||||
scopeOptionsEnabled () {
|
||||
return this.$store.state.config.scopeOptionsEnabled
|
||||
return this.$store.state.instance.scopeOptionsEnabled
|
||||
},
|
||||
formattingOptionsEnabled () {
|
||||
return this.$store.state.config.formattingOptionsEnabled
|
||||
return this.$store.state.instance.formattingOptionsEnabled
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
|
|
@ -90,8 +90,7 @@
|
|||
</div>
|
||||
<div class="upload_settings" v-if="newStatus.files.length > 0">
|
||||
<input type="checkbox" id="filesSensitive" v-model="newStatus.nsfw">
|
||||
<label for="filesSensitive" v-if="newStatus.nsfw">{{$t('post_status.attachments_sensitive')}}</label>
|
||||
<label for="filesSensitive" v-else v-html="$t('post_status.attachments_not_sensitive')"></label>
|
||||
<label for="filesSensitive">{{$t('post_status.attachments_sensitive')}}</label>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -5,16 +5,16 @@ const registration = {
|
|||
registering: false
|
||||
}),
|
||||
created () {
|
||||
if ((!this.$store.state.config.registrationOpen && !this.token) || !!this.$store.state.users.currentUser) {
|
||||
if ((!this.$store.state.instance.registrationOpen && !this.token) || !!this.$store.state.users.currentUser) {
|
||||
this.$router.push('/main/all')
|
||||
}
|
||||
// Seems like this doesn't work at first page open for some reason
|
||||
if (this.$store.state.config.registrationOpen && this.token) {
|
||||
if (this.$store.state.instance.registrationOpen && this.token) {
|
||||
this.$router.push('/registration')
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
termsofservice () { return this.$store.state.config.tos },
|
||||
termsofservice () { return this.$store.state.instance.tos },
|
||||
token () { return this.$route.params.token }
|
||||
},
|
||||
methods: {
|
||||
|
|
|
@ -2,7 +2,9 @@ const RetweetButton = {
|
|||
props: ['status', 'loggedIn', 'visibility'],
|
||||
data () {
|
||||
return {
|
||||
hidePostStatsLocal: this.$store.state.config.hidePostStats,
|
||||
hidePostStatsLocal: typeof this.$store.state.config.hidePostStats == 'undefined'
|
||||
? this.$store.state.instance.hidePostStats
|
||||
: this.$store.state.config.hidePostStats,
|
||||
animated: false
|
||||
}
|
||||
},
|
||||
|
|
|
@ -6,23 +6,35 @@ import { filter, trim } from 'lodash'
|
|||
|
||||
const settings = {
|
||||
data () {
|
||||
const user = this.$store.state.config
|
||||
const instance = this.$store.state.instance
|
||||
|
||||
return {
|
||||
hideAttachmentsLocal: this.$store.state.config.hideAttachments,
|
||||
hideAttachmentsInConvLocal: this.$store.state.config.hideAttachmentsInConv,
|
||||
hideNsfwLocal: this.$store.state.config.hideNsfw,
|
||||
hidePostStatsLocal: this.$store.state.config.hidePostStats,
|
||||
hideUserStatsLocal: this.$store.state.config.hideUserStats,
|
||||
notificationVisibilityLocal: this.$store.state.config.notificationVisibility,
|
||||
replyVisibilityLocal: this.$store.state.config.replyVisibility,
|
||||
loopVideoLocal: this.$store.state.config.loopVideo,
|
||||
loopVideoSilentOnlyLocal: this.$store.state.config.loopVideoSilentOnly,
|
||||
muteWordsString: this.$store.state.config.muteWords.join('\n'),
|
||||
autoLoadLocal: this.$store.state.config.autoLoad,
|
||||
streamingLocal: this.$store.state.config.streaming,
|
||||
pauseOnUnfocusedLocal: this.$store.state.config.pauseOnUnfocused,
|
||||
hoverPreviewLocal: this.$store.state.config.hoverPreview,
|
||||
collapseMessageWithSubjectLocal: this.$store.state.config.collapseMessageWithSubject,
|
||||
stopGifs: this.$store.state.config.stopGifs,
|
||||
hideAttachmentsLocal: user.hideAttachments,
|
||||
hideAttachmentsInConvLocal: user.hideAttachmentsInConv,
|
||||
hideNsfwLocal: user.hideNsfw,
|
||||
hidePostStatsLocal: typeof user.hidePostStats === 'undefined'
|
||||
? instance.hidePostStats
|
||||
: user.hidePostStats,
|
||||
hidePostStatsDefault : this.$t('settings.values.' + instance.hidePostStats),
|
||||
hideUserStatsLocal: typeof user.hideUserStats === 'undefined'
|
||||
? instance.hideUserStats
|
||||
: user.hideUserStats,
|
||||
hideUserStatsDefault : this.$t('settings.values.' + instance.hideUserStats),
|
||||
notificationVisibilityLocal: user.notificationVisibility,
|
||||
replyVisibilityLocal: user.replyVisibility,
|
||||
loopVideoLocal: user.loopVideo,
|
||||
loopVideoSilentOnlyLocal: user.loopVideoSilentOnly,
|
||||
muteWordsString: user.muteWords.join('\n'),
|
||||
autoLoadLocal: user.autoLoad,
|
||||
streamingLocal: user.streaming,
|
||||
pauseOnUnfocusedLocal: user.pauseOnUnfocused,
|
||||
hoverPreviewLocal: user.hoverPreview,
|
||||
collapseMessageWithSubjectLocal: typeof user.collapseMessageWithSubject === 'undefined'
|
||||
? instance.collapseMessageWithSubject
|
||||
: user.collapseMessageWithSubject,
|
||||
collapseMessageWithSubjectDefault: this.$t('settings.values.' + instance.collapseMessageWithSubject),
|
||||
stopGifs: user.stopGifs,
|
||||
loopSilentAvailable:
|
||||
// Firefox
|
||||
Object.getOwnPropertyDescriptor(HTMLVideoElement.prototype, 'mozHasAudio') ||
|
||||
|
@ -40,6 +52,9 @@ const settings = {
|
|||
computed: {
|
||||
user () {
|
||||
return this.$store.state.users.currentUser
|
||||
},
|
||||
currentSaveStateNotice () {
|
||||
return this.$store.state.interface.settings.currentSaveStateNotice
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
|
|
@ -1,7 +1,21 @@
|
|||
<template>
|
||||
<div class="settings panel panel-default">
|
||||
<div class="panel-heading">
|
||||
{{$t('settings.settings')}}
|
||||
<div class="title">
|
||||
{{$t('settings.settings')}}
|
||||
</div>
|
||||
|
||||
<transition name="fade">
|
||||
<template v-if="currentSaveStateNotice">
|
||||
<div @click.prevent class="alert error" v-if="currentSaveStateNotice.error">
|
||||
{{ $t('settings.saving_err') }}
|
||||
</div>
|
||||
|
||||
<div @click.prevent class="alert transparent" v-if="!currentSaveStateNotice.error">
|
||||
{{ $t('settings.saving_ok') }}
|
||||
</div>
|
||||
</template>
|
||||
</transition>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<tab-switcher>
|
||||
|
@ -15,7 +29,9 @@
|
|||
<ul class="setting-list">
|
||||
<li>
|
||||
<input type="checkbox" id="collapseMessageWithSubject" v-model="collapseMessageWithSubjectLocal">
|
||||
<label for="collapseMessageWithSubject">{{$t('settings.collapse_subject')}}</label>
|
||||
<label for="collapseMessageWithSubject">
|
||||
{{$t('settings.collapse_subject')}} {{$t('settings.instance_default', { value: collapseMessageWithSubjectDefault })}}
|
||||
</label>
|
||||
</li>
|
||||
<li>
|
||||
<input type="checkbox" id="streaming" v-model="streamingLocal">
|
||||
|
@ -124,11 +140,15 @@
|
|||
</div>
|
||||
<div>
|
||||
<input type="checkbox" id="hidePostStats" v-model="hidePostStatsLocal">
|
||||
<label for="hidePostStats">{{$t('settings.hide_post_stats')}}</label>
|
||||
<label for="hidePostStats">
|
||||
{{$t('settings.hide_post_stats')}} {{$t('settings.instance_default', { value: hidePostStatsDefault })}}
|
||||
</label>
|
||||
</div>
|
||||
<div>
|
||||
<input type="checkbox" id="hideUserStats" v-model="hideUserStatsLocal">
|
||||
<label for="hideUserStats">{{$t('settings.hide_user_stats')}}</label>
|
||||
<label for="hideUserStats">
|
||||
{{$t('settings.hide_user_stats')}} {{$t('settings.instance_default', { value: hideUserStatsDefault })}}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="setting-item">
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
}
|
||||
|
||||
&.animated {
|
||||
|
|
|
@ -4,12 +4,12 @@
|
|||
<div class="title">
|
||||
{{title}}
|
||||
</div>
|
||||
<button @click.prevent="showNewStatuses" class="loadmore-button" v-if="timeline.newStatusCount > 0 && !timelineError">
|
||||
{{$t('timeline.show_new')}}{{newStatusCountStr}}
|
||||
</button>
|
||||
<div @click.prevent class="loadmore-error alert error" v-if="timelineError">
|
||||
{{$t('timeline.error_fetching')}}
|
||||
</div>
|
||||
<button @click.prevent="showNewStatuses" class="loadmore-button" v-if="timeline.newStatusCount > 0 && !timelineError">
|
||||
{{$t('timeline.show_new')}}{{newStatusCountStr}}
|
||||
</button>
|
||||
<div @click.prevent class="loadmore-text" v-if="!timeline.newStatusCount > 0 && !timelineError">
|
||||
{{$t('timeline.up_to_date')}}
|
||||
</div>
|
||||
|
@ -58,7 +58,6 @@
|
|||
|
||||
.timeline {
|
||||
.loadmore-text {
|
||||
font-size: 14px;
|
||||
opacity: 0.8;
|
||||
background-color: transparent;
|
||||
color: $fallback--faint;
|
||||
|
@ -66,11 +65,6 @@
|
|||
}
|
||||
|
||||
.loadmore-error {
|
||||
font-size: 14px;
|
||||
min-width: 6em;
|
||||
text-align: center;
|
||||
padding: 0 0.25em 0 0.25em;
|
||||
margin: 0;
|
||||
color: $fallback--fg;
|
||||
color: var(--fg, $fallback--fg);
|
||||
}
|
||||
|
|
|
@ -5,7 +5,9 @@ export default {
|
|||
props: [ 'user', 'switcher', 'selected', 'hideBio' ],
|
||||
data () {
|
||||
return {
|
||||
hideUserStatsLocal: this.$store.state.config.hideUserStats
|
||||
hideUserStatsLocal: typeof this.$store.state.config.hideUserStats === 'undefined'
|
||||
? this.$store.state.instance.hideUserStats
|
||||
: this.$store.state.config.hideUserStats
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
|
|
@ -14,8 +14,10 @@
|
|||
|
||||
<style lang="scss">
|
||||
.user-panel {
|
||||
.profile-panel-background .panel-heading {
|
||||
background: transparent;
|
||||
}
|
||||
.profile-panel-background .panel-heading {
|
||||
background: transparent;
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -7,6 +7,7 @@ const UserSettings = {
|
|||
newname: this.$store.state.users.currentUser.name,
|
||||
newbio: this.$store.state.users.currentUser.description,
|
||||
newlocked: this.$store.state.users.currentUser.locked,
|
||||
newnorichtext: this.$store.state.users.currentUser.no_rich_text,
|
||||
newdefaultScope: this.$store.state.users.currentUser.default_scope,
|
||||
followList: null,
|
||||
followImportError: false,
|
||||
|
@ -32,10 +33,10 @@ const UserSettings = {
|
|||
return this.$store.state.users.currentUser
|
||||
},
|
||||
pleromaBackend () {
|
||||
return this.$store.state.config.pleromaBackend
|
||||
return this.$store.state.instance.pleromaBackend
|
||||
},
|
||||
scopeOptionsEnabled () {
|
||||
return this.$store.state.config.scopeOptionsEnabled
|
||||
return this.$store.state.instance.scopeOptionsEnabled
|
||||
},
|
||||
vis () {
|
||||
return {
|
||||
|
@ -53,7 +54,8 @@ const UserSettings = {
|
|||
const locked = this.newlocked
|
||||
/* eslint-disable camelcase */
|
||||
const default_scope = this.newdefaultScope
|
||||
this.$store.state.api.backendInteractor.updateProfile({params: {name, description, locked, default_scope}}).then((user) => {
|
||||
const no_rich_text = this.newnorichtext
|
||||
this.$store.state.api.backendInteractor.updateProfile({params: {name, description, locked, default_scope, no_rich_text}}).then((user) => {
|
||||
if (!user.error) {
|
||||
this.$store.commit('addNewUsers', [user])
|
||||
this.$store.commit('setCurrentUser', user)
|
||||
|
|
|
@ -25,6 +25,10 @@
|
|||
<i v-on:click="changeVis('public')" class="icon-globe" :class="vis.public"></i>
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
<input type="checkbox" v-model="newnorichtext" id="account-no-rich-text">
|
||||
<label for="account-no-rich-text">{{$t('settings.no_rich_text_description')}}</label>
|
||||
</p>
|
||||
<button :disabled='newname.length <= 0' class="btn btn-default" @click="updateProfile">{{$t('general.submit')}}</button>
|
||||
</div>
|
||||
<div class="setting-item">
|
||||
|
|
|
@ -3,9 +3,10 @@ import apiService from '../../services/api/api.service.js'
|
|||
function showWhoToFollow (panel, reply) {
|
||||
var users = reply
|
||||
var cn
|
||||
var index = 0
|
||||
var random = Math.floor(Math.random() * 10)
|
||||
for (cn = random; cn < users.length; cn = cn + 10) {
|
||||
var index
|
||||
var step = 7
|
||||
cn = Math.floor(Math.random() * step)
|
||||
for (index = 0; index < 3; index++) {
|
||||
var user
|
||||
user = users[cn]
|
||||
var img
|
||||
|
@ -46,10 +47,7 @@ function showWhoToFollow (panel, reply) {
|
|||
}
|
||||
})
|
||||
}
|
||||
index = index + 1
|
||||
if (index > 2) {
|
||||
break
|
||||
}
|
||||
cn = (cn + step) % users.length
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -85,14 +83,14 @@ const WhoToFollowPanel = {
|
|||
moreUrl: function () {
|
||||
var host = window.location.hostname
|
||||
var user = this.user
|
||||
var suggestionsWeb = this.$store.state.config.suggestionsWeb
|
||||
var suggestionsWeb = this.$store.state.instance.suggestionsWeb
|
||||
var url
|
||||
url = suggestionsWeb.replace(/{{host}}/g, encodeURIComponent(host))
|
||||
url = url.replace(/{{user}}/g, encodeURIComponent(user))
|
||||
return url
|
||||
},
|
||||
suggestionsEnabled () {
|
||||
return this.$store.state.config.suggestionsEnabled
|
||||
return this.$store.state.instance.suggestionsEnabled
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<img v-bind:src="img1"/> <router-link :to="{ name: 'user-profile', params: { id: id1 } }">{{ name1 }}</router-link><br>
|
||||
<img v-bind:src="img2"/> <router-link :to="{ name: 'user-profile', params: { id: id2 } }">{{ name2 }}</router-link><br>
|
||||
<img v-bind:src="img3"/> <router-link :to="{ name: 'user-profile', params: { id: id3 } }">{{ name3 }}</router-link><br>
|
||||
<img v-bind:src="$store.state.config.logo"> <a v-bind:href="moreUrl" target="_blank">{{$t('who_to_follow.more')}}</a>
|
||||
<img v-bind:src="$store.state.instance.logo"> <a v-bind:href="moreUrl" target="_blank">{{$t('who_to_follow.more')}}</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
49
src/i18n/compare.js
Executable file
49
src/i18n/compare.js
Executable file
|
@ -0,0 +1,49 @@
|
|||
#!/usr/bin/env node
|
||||
const arg = process.argv[2]
|
||||
|
||||
if (typeof arg === 'undefined') {
|
||||
console.log('This is a very simple and tiny tool that checks en.json with any other language and')
|
||||
console.log('outputs all the things present in english but missing in foreign language.')
|
||||
console.log('')
|
||||
console.log('Usage: ./compare.js <lang> ')
|
||||
console.log(' or')
|
||||
console.log(' node ./compare.js <lang>')
|
||||
console.log('')
|
||||
console.log('Where <lang> is name of .json file containing language. For ./fi.json it should be:')
|
||||
console.log(' ./compare.js fi ')
|
||||
console.log('')
|
||||
console.log('Limitations: ')
|
||||
console.log('* This program does not work with languages left over in messages.js')
|
||||
console.log('* This program does not check for extra strings present in foreign language but missing')
|
||||
console.log(' in english.js (for now)')
|
||||
console.log('')
|
||||
console.log('There are no other arguments or options. Make an issue if you encounter a bug or want')
|
||||
console.log('some feature to be implemented. Merge requests are welcome as well.')
|
||||
return
|
||||
}
|
||||
|
||||
const english = require('./en.json')
|
||||
const foreign = require(`./${arg}.json`)
|
||||
|
||||
function walker (a, b, path = []) {
|
||||
Object.keys(a).forEach(k => {
|
||||
const aVal = a[k]
|
||||
const bVal = b[k]
|
||||
const aType = typeof aVal
|
||||
const bType = typeof bVal
|
||||
const currentPath = [...path, k]
|
||||
const article = aType[0] === 'o' ? 'an' : 'a'
|
||||
|
||||
if (bType === 'undefined') {
|
||||
console.log(`Foreign language is missing ${article} ${aType} at path ${currentPath.join('.')}`)
|
||||
} else if (aType === 'object') {
|
||||
if (bType !== 'object') {
|
||||
console.log(`Type mismatch! English has ${aType} while foreign has ${bType} at path ${currentPath.join['.']}`)
|
||||
} else {
|
||||
walker(aVal, bVal, currentPath)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
walker(english, foreign)
|
150
src/i18n/de.json
Normal file
150
src/i18n/de.json
Normal file
|
@ -0,0 +1,150 @@
|
|||
{
|
||||
"chat": {
|
||||
"title": "Chat"
|
||||
},
|
||||
"finder": {
|
||||
"error_fetching_user": "Fehler beim Suchen des Benutzers",
|
||||
"find_user": "Finde Benutzer"
|
||||
},
|
||||
"general": {
|
||||
"apply": "Anwenden",
|
||||
"submit": "Absenden"
|
||||
},
|
||||
"login": {
|
||||
"login": "Anmelden",
|
||||
"logout": "Abmelden",
|
||||
"password": "Passwort",
|
||||
"placeholder": "z.B. lain",
|
||||
"register": "Registrieren",
|
||||
"username": "Benutzername"
|
||||
},
|
||||
"nav": {
|
||||
"chat": "Lokaler Chat",
|
||||
"friend_requests": "Followanfragen",
|
||||
"mentions": "Erwähnungen",
|
||||
"public_tl": "Lokale Zeitleiste",
|
||||
"timeline": "Zeitleiste",
|
||||
"twkn": "Das gesamte Netzwerk"
|
||||
},
|
||||
"notifications": {
|
||||
"favorited_you": "favorisierte deine Nachricht",
|
||||
"followed_you": "folgt dir",
|
||||
"notifications": "Benachrichtigungen",
|
||||
"read": "Gelesen!",
|
||||
"repeated_you": "wiederholte deine Nachricht"
|
||||
},
|
||||
"post_status": {
|
||||
"account_not_locked_warning": "Dein Profil ist nicht {0}. Wer dir folgen will, kann das jederzeit tun und dann auch deine privaten Beiträge sehen.",
|
||||
"account_not_locked_warning_link": "gesperrt",
|
||||
"default": "Sitze gerade im Hofbräuhaus.",
|
||||
"direct_warning": "Dieser Beitrag wird nur für die erwähnten Nutzer sichtbar sein.",
|
||||
"posting": "Veröffentlichen",
|
||||
"scope": {
|
||||
"direct": "Direkt - Beitrag nur an erwähnte Profile",
|
||||
"private": "Nur Follower - Beitrag nur für Follower sichtbar",
|
||||
"public": "Öffentlich - Beitrag an öffentliche Zeitleisten",
|
||||
"unlisted": "Nicht gelistet - Nicht in öffentlichen Zeitleisten anzeigen"
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"bio": "Bio",
|
||||
"email": "Email",
|
||||
"fullname": "Angezeigter Name",
|
||||
"password_confirm": "Passwort bestätigen",
|
||||
"registration": "Registrierung",
|
||||
"token": "Einladungsschlüssel"
|
||||
},
|
||||
"settings": {
|
||||
"attachmentRadius": "Anhänge",
|
||||
"attachments": "Anhänge",
|
||||
"autoload": "Aktiviere automatisches Laden von älteren Beiträgen beim scrollen",
|
||||
"avatar": "Avatar",
|
||||
"avatarAltRadius": "Avatare (Benachrichtigungen)",
|
||||
"avatarRadius": "Avatare",
|
||||
"background": "Hintergrund",
|
||||
"bio": "Bio",
|
||||
"btnRadius": "Buttons",
|
||||
"cBlue": "Blau (Antworten, Folgt dir)",
|
||||
"cGreen": "Grün (Retweet)",
|
||||
"cOrange": "Orange (Favorisieren)",
|
||||
"cRed": "Rot (Abbrechen)",
|
||||
"change_password": "Passwort ändern",
|
||||
"change_password_error": "Es gab ein Problem bei der Änderung des Passworts.",
|
||||
"changed_password": "Passwort erfolgreich geändert!",
|
||||
"confirm_new_password": "Neues Passwort bestätigen",
|
||||
"current_avatar": "Dein derzeitiger Avatar",
|
||||
"current_password": "Aktuelles Passwort",
|
||||
"current_profile_banner": "Der derzeitige Banner deines Profils",
|
||||
"delete_account": "Account löschen",
|
||||
"delete_account_description": "Lösche deinen Account und alle deine Nachrichten unwiderruflich.",
|
||||
"delete_account_error": "Es ist ein Fehler beim löschen deines Accounts aufgetreten. Tritt dies weiterhin auf, wende dich an den Administrator der Instanz.",
|
||||
"delete_account_instructions": "Tippe dein Passwort unten in das Feld ein, um die Löschung deines Accounts zu bestätigen.",
|
||||
"export_theme": "Farbschema speichern",
|
||||
"filtering": "Filter",
|
||||
"filtering_explanation": "Alle Beiträge die diese Wörter enthalten werden ausgeblendet. Ein Wort pro Zeile.",
|
||||
"follow_export": "Follower exportieren",
|
||||
"follow_export_button": "Liste (.csv) erstellen",
|
||||
"follow_export_processing": "In Bearbeitung. Die Liste steht gleich zum herunterladen bereit.",
|
||||
"follow_import": "Followers importieren",
|
||||
"follow_import_error": "Fehler beim importieren der Follower",
|
||||
"follows_imported": "Followers importiert! Die Bearbeitung kann eine Zeit lang dauern.",
|
||||
"foreground": "Vordergrund",
|
||||
"hide_attachments_in_convo": "Anhänge in Unterhaltungen ausblenden",
|
||||
"hide_attachments_in_tl": "Anhänge in der Zeitleiste ausblenden",
|
||||
"import_followers_from_a_csv_file": "Importiere Follower, denen du folgen möchtest, aus einer CSV-Datei",
|
||||
"import_theme": "Farbschema laden",
|
||||
"inputRadius": "Eingabefelder",
|
||||
"invalid_theme_imported": "Die ausgewählte Datei ist kein unterstütztes Pleroma-Theme. Keine Änderungen wurden vorgenommen.",
|
||||
"links": "Links",
|
||||
"lock_account_description": "Sperre deinen Account, um neue Follower zu genehmigen oder abzulehnen",
|
||||
"name": "Name",
|
||||
"name_bio": "Name & Bio",
|
||||
"new_password": "Neues Passwort",
|
||||
"nsfw_clickthrough": "Aktiviere ausblendbares Overlay für Anhänge, die als NSFW markiert sind",
|
||||
"panelRadius": "Panel",
|
||||
"presets": "Voreinstellungen",
|
||||
"profile_background": "Profil Hintergrund",
|
||||
"profile_banner": "Profil Banner",
|
||||
"radii_help": "Kantenrundung (in Pixel) der Oberfläche anpassen",
|
||||
"reply_link_preview": "Aktiviere reply-link Vorschau bei Maus-Hover",
|
||||
"set_new_avatar": "Setze einen neuen Avatar",
|
||||
"set_new_profile_background": "Setze einen neuen Hintergrund für dein Profil",
|
||||
"set_new_profile_banner": "Setze einen neuen Banner für dein Profil",
|
||||
"settings": "Einstellungen",
|
||||
"stop_gifs": "Play-on-hover GIFs",
|
||||
"streaming": "Aktiviere automatisches Laden (Streaming) von neuen Beiträgen",
|
||||
"text": "Text",
|
||||
"theme": "Farbschema",
|
||||
"theme_help": "Benutze HTML Farbcodes (#rrggbb) um dein Farbschema anzupassen",
|
||||
"tooltipRadius": "Tooltips/Warnungen",
|
||||
"user_settings": "Benutzereinstellungen"
|
||||
},
|
||||
"timeline": {
|
||||
"collapse": "Einklappen",
|
||||
"conversation": "Unterhaltung",
|
||||
"error_fetching": "Fehler beim Laden",
|
||||
"load_older": "Lade ältere Beiträge",
|
||||
"repeated": "wiederholte",
|
||||
"show_new": "Zeige Neuere",
|
||||
"up_to_date": "Aktuell"
|
||||
},
|
||||
"user_card": {
|
||||
"approve": "Genehmigen",
|
||||
"block": "Blockieren",
|
||||
"blocked": "Blockiert!",
|
||||
"deny": "Ablehnen",
|
||||
"follow": "Folgen",
|
||||
"followees": "Folgt",
|
||||
"followers": "Followers",
|
||||
"following": "Folgst du!",
|
||||
"follows_you": "Folgt dir!",
|
||||
"mute": "Stummschalten",
|
||||
"muted": "Stummgeschaltet",
|
||||
"per_day": "pro Tag",
|
||||
"remote_follow": "Folgen",
|
||||
"statuses": "Beiträge"
|
||||
},
|
||||
"user_profile": {
|
||||
"timeline_title": "Beiträge"
|
||||
}
|
||||
}
|
201
src/i18n/en.json
Normal file
201
src/i18n/en.json
Normal file
|
@ -0,0 +1,201 @@
|
|||
{
|
||||
"chat": {
|
||||
"title": "Chat"
|
||||
},
|
||||
"features_panel": {
|
||||
"chat": "Chat",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "Media proxy",
|
||||
"scope_options": "Scope options",
|
||||
"text_limit": "Text limit",
|
||||
"title": "Features",
|
||||
"who_to_follow": "Who to follow"
|
||||
},
|
||||
"finder": {
|
||||
"error_fetching_user": "Error fetching user",
|
||||
"find_user": "Find user"
|
||||
},
|
||||
"general": {
|
||||
"apply": "Apply",
|
||||
"submit": "Submit"
|
||||
},
|
||||
"login": {
|
||||
"login": "Log in",
|
||||
"logout": "Log out",
|
||||
"password": "Password",
|
||||
"placeholder": "e.g. lain",
|
||||
"register": "Register",
|
||||
"username": "Username"
|
||||
},
|
||||
"nav": {
|
||||
"chat": "Local Chat",
|
||||
"friend_requests": "Follow Requests",
|
||||
"mentions": "Mentions",
|
||||
"public_tl": "Public Timeline",
|
||||
"timeline": "Timeline",
|
||||
"twkn": "The Whole Known Network"
|
||||
},
|
||||
"notifications": {
|
||||
"broken_favorite": "Unknown status, searching for it...",
|
||||
"favorited_you": "favorited your status",
|
||||
"followed_you": "followed you",
|
||||
"load_older": "Load older notifications",
|
||||
"notifications": "Notifications",
|
||||
"read": "Read!",
|
||||
"repeated_you": "repeated your status"
|
||||
},
|
||||
"post_status": {
|
||||
"account_not_locked_warning": "Your account is not {0}. Anyone can follow you to view your follower-only posts.",
|
||||
"account_not_locked_warning_link": "locked",
|
||||
"attachments_sensitive": "Mark attachments as sensitive",
|
||||
"content_type": {
|
||||
"plain_text": "Plain text"
|
||||
},
|
||||
"content_warning": "Subject (optional)",
|
||||
"default": "Just landed in L.A.",
|
||||
"direct_warning": "This post will only be visible to all the mentioned users.",
|
||||
"posting": "Posting",
|
||||
"scope": {
|
||||
"direct": "Direct - Post to mentioned users only",
|
||||
"private": "Followers-only - Post to followers only",
|
||||
"public": "Public - Post to public timelines",
|
||||
"unlisted": "Unlisted - Do not post to public timelines"
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"bio": "Bio",
|
||||
"email": "Email",
|
||||
"fullname": "Display name",
|
||||
"password_confirm": "Password confirmation",
|
||||
"registration": "Registration",
|
||||
"token": "Invite token"
|
||||
},
|
||||
"settings": {
|
||||
"attachmentRadius": "Attachments",
|
||||
"attachments": "Attachments",
|
||||
"autoload": "Enable automatic loading when scrolled to the bottom",
|
||||
"avatar": "Avatar",
|
||||
"avatarAltRadius": "Avatars (Notifications)",
|
||||
"avatarRadius": "Avatars",
|
||||
"background": "Background",
|
||||
"bio": "Bio",
|
||||
"btnRadius": "Buttons",
|
||||
"cBlue": "Blue (Reply, follow)",
|
||||
"cGreen": "Green (Retweet)",
|
||||
"cOrange": "Orange (Favorite)",
|
||||
"cRed": "Red (Cancel)",
|
||||
"change_password": "Change Password",
|
||||
"change_password_error": "There was an issue changing your password.",
|
||||
"changed_password": "Password changed successfully!",
|
||||
"collapse_subject": "Collapse posts with subjects",
|
||||
"confirm_new_password": "Confirm new password",
|
||||
"current_avatar": "Your current avatar",
|
||||
"current_password": "Current password",
|
||||
"current_profile_banner": "Your current profile banner",
|
||||
"data_import_export_tab": "Data Import / Export",
|
||||
"default_vis": "Default visibility scope",
|
||||
"delete_account": "Delete Account",
|
||||
"delete_account_description": "Permanently delete your account and all your messages.",
|
||||
"delete_account_error": "There was an issue deleting your account. If this persists please contact your instance administrator.",
|
||||
"delete_account_instructions": "Type your password in the input below to confirm account deletion.",
|
||||
"export_theme": "Save preset",
|
||||
"filtering": "Filtering",
|
||||
"filtering_explanation": "All statuses containing these words will be muted, one per line",
|
||||
"follow_export": "Follow export",
|
||||
"follow_export_button": "Export your follows to a csv file",
|
||||
"follow_export_processing": "Processing, you'll soon be asked to download your file",
|
||||
"follow_import": "Follow import",
|
||||
"follow_import_error": "Error importing followers",
|
||||
"follows_imported": "Follows imported! Processing them will take a while.",
|
||||
"foreground": "Foreground",
|
||||
"general": "General",
|
||||
"hide_attachments_in_convo": "Hide attachments in conversations",
|
||||
"hide_attachments_in_tl": "Hide attachments in timeline",
|
||||
"hide_post_stats": "Hide post statistics (e.g. the number of favorites)",
|
||||
"hide_user_stats": "Hide user statistics (e.g. the number of followers)",
|
||||
"import_followers_from_a_csv_file": "Import follows from a csv file",
|
||||
"import_theme": "Load preset",
|
||||
"inputRadius": "Input fields",
|
||||
"instance_default": "(default: {value})",
|
||||
"interfaceLanguage": "Interface language",
|
||||
"invalid_theme_imported": "The selected file is not a supported Pleroma theme. No changes to your theme were made.",
|
||||
"limited_availability": "Unavailable in your browser",
|
||||
"links": "Links",
|
||||
"lock_account_description": "Restrict your account to approved followers only",
|
||||
"loop_video": "Loop videos",
|
||||
"loop_video_silent_only": "Loop only videos without sound (i.e. Mastodon's \"gifs\")",
|
||||
"name": "Name",
|
||||
"name_bio": "Name & Bio",
|
||||
"new_password": "New password",
|
||||
"notification_visibility": "Types of notifications to show",
|
||||
"notification_visibility_follows": "Follows",
|
||||
"notification_visibility_likes": "Likes",
|
||||
"notification_visibility_mentions": "Mentions",
|
||||
"notification_visibility_repeats": "Repeats",
|
||||
"no_rich_text_description": "Strip rich text formatting from all posts",
|
||||
"nsfw_clickthrough": "Enable clickthrough NSFW attachment hiding",
|
||||
"panelRadius": "Panels",
|
||||
"pause_on_unfocused": "Pause streaming when tab is not focused",
|
||||
"presets": "Presets",
|
||||
"profile_background": "Profile Background",
|
||||
"profile_banner": "Profile Banner",
|
||||
"profile_tab": "Profile",
|
||||
"radii_help": "Set up interface edge rounding (in pixels)",
|
||||
"replies_in_timeline": "Replies in timeline",
|
||||
"reply_link_preview": "Enable reply-link preview on mouse hover",
|
||||
"reply_visibility_all": "Show all replies",
|
||||
"reply_visibility_following": "Only show replies directed at me or users I'm following",
|
||||
"reply_visibility_self": "Only show replies directed at me",
|
||||
"saving_err": "Error saving settings",
|
||||
"saving_ok": "Settings saved",
|
||||
"security_tab": "Security",
|
||||
"set_new_avatar": "Set new avatar",
|
||||
"set_new_profile_background": "Set new profile background",
|
||||
"set_new_profile_banner": "Set new profile banner",
|
||||
"settings": "Settings",
|
||||
"stop_gifs": "Play-on-hover GIFs",
|
||||
"streaming": "Enable automatic streaming of new posts when scrolled to the top",
|
||||
"text": "Text",
|
||||
"theme": "Theme",
|
||||
"theme_help": "Use hex color codes (#rrggbb) to customize your color theme.",
|
||||
"tooltipRadius": "Tooltips/alerts",
|
||||
"user_settings": "User Settings",
|
||||
"values": {
|
||||
"false": "no",
|
||||
"true": "yes"
|
||||
}
|
||||
},
|
||||
"timeline": {
|
||||
"collapse": "Collapse",
|
||||
"conversation": "Conversation",
|
||||
"error_fetching": "Error fetching updates",
|
||||
"load_older": "Load older statuses",
|
||||
"no_retweet_hint": "Post is marked as followers-only or direct and cannot be repeated",
|
||||
"repeated": "repeated",
|
||||
"show_new": "Show new",
|
||||
"up_to_date": "Up-to-date"
|
||||
},
|
||||
"user_card": {
|
||||
"approve": "Approve",
|
||||
"block": "Block",
|
||||
"blocked": "Blocked!",
|
||||
"deny": "Deny",
|
||||
"follow": "Follow",
|
||||
"followees": "Following",
|
||||
"followers": "Followers",
|
||||
"following": "Following!",
|
||||
"follows_you": "Follows you!",
|
||||
"mute": "Mute",
|
||||
"muted": "Muted",
|
||||
"per_day": "per day",
|
||||
"remote_follow": "Remote follow",
|
||||
"statuses": "Statuses"
|
||||
},
|
||||
"user_profile": {
|
||||
"timeline_title": "User Timeline"
|
||||
},
|
||||
"who_to_follow": {
|
||||
"more": "More",
|
||||
"who_to_follow": "Who to follow"
|
||||
}
|
||||
}
|
119
src/i18n/eo.json
Normal file
119
src/i18n/eo.json
Normal file
|
@ -0,0 +1,119 @@
|
|||
{
|
||||
"chat": {
|
||||
"title": "Babilejo"
|
||||
},
|
||||
"finder": {
|
||||
"error_fetching_user": "Eraro alportante uzanton",
|
||||
"find_user": "Trovi uzanton"
|
||||
},
|
||||
"general": {
|
||||
"apply": "Apliki",
|
||||
"submit": "Sendi"
|
||||
},
|
||||
"login": {
|
||||
"login": "Ensaluti",
|
||||
"logout": "Elsaluti",
|
||||
"password": "Pasvorto",
|
||||
"placeholder": "ekz. lain",
|
||||
"register": "Registriĝi",
|
||||
"username": "Salutnomo"
|
||||
},
|
||||
"nav": {
|
||||
"chat": "Loka babilejo",
|
||||
"mentions": "Mencioj",
|
||||
"public_tl": "Publika tempolinio",
|
||||
"timeline": "Tempolinio",
|
||||
"twkn": "La tuta konata reto"
|
||||
},
|
||||
"notifications": {
|
||||
"favorited_you": "ŝatis vian staton",
|
||||
"followed_you": "ekabonis vin",
|
||||
"notifications": "Sciigoj",
|
||||
"read": "Legite!",
|
||||
"repeated_you": "ripetis vian staton"
|
||||
},
|
||||
"post_status": {
|
||||
"default": "Ĵus alvenis al la Universala Kongreso!",
|
||||
"posting": "Afiŝante"
|
||||
},
|
||||
"registration": {
|
||||
"bio": "Priskribo",
|
||||
"email": "Retpoŝtadreso",
|
||||
"fullname": "Vidiga nomo",
|
||||
"password_confirm": "Konfirmo de pasvorto",
|
||||
"registration": "Registriĝo"
|
||||
},
|
||||
"settings": {
|
||||
"attachmentRadius": "Kunsendaĵoj",
|
||||
"attachments": "Kunsendaĵoj",
|
||||
"autoload": "Ŝalti memfaran ŝarĝadon ĉe subo de paĝo",
|
||||
"avatar": "Profilbildo",
|
||||
"avatarAltRadius": "Profilbildoj (sciigoj)",
|
||||
"avatarRadius": "Profilbildoj",
|
||||
"background": "Fono",
|
||||
"bio": "Priskribo",
|
||||
"btnRadius": "Butonoj",
|
||||
"cBlue": "Blua (Respondo, abono)",
|
||||
"cGreen": "Verda (Kunhavigo)",
|
||||
"cOrange": "Oranĝa (Ŝato)",
|
||||
"cRed": "Ruĝa (Nuligo)",
|
||||
"current_avatar": "Via nuna profilbildo",
|
||||
"current_profile_banner": "Via nuna profila rubando",
|
||||
"filtering": "Filtrado",
|
||||
"filtering_explanation": "Ĉiuj statoj kun tiuj ĉi vortoj silentiĝos, po unu linie",
|
||||
"follow_import": "Abona enporto",
|
||||
"follow_import_error": "Eraro enportante abonojn",
|
||||
"follows_imported": "Abonoj enportiĝis! Traktado daŭros iom.",
|
||||
"foreground": "Malfono",
|
||||
"hide_attachments_in_convo": "Kaŝi kunsendaĵojn en interparoloj",
|
||||
"hide_attachments_in_tl": "Kaŝi kunsendaĵojn en tempolinio",
|
||||
"import_followers_from_a_csv_file": "Enporti abonojn el CSV-dosiero",
|
||||
"links": "Ligiloj",
|
||||
"name": "Nomo",
|
||||
"name_bio": "Nomo kaj priskribo",
|
||||
"nsfw_clickthrough": "Ŝalti traklakan kaŝon de konsternaj kunsendaĵoj",
|
||||
"panelRadius": "Paneloj",
|
||||
"presets": "Antaŭagordoj",
|
||||
"profile_background": "Profila fono",
|
||||
"profile_banner": "Profila rubando",
|
||||
"radii_help": "Agordi fasadan rondigon de randoj (rastrumere)",
|
||||
"reply_link_preview": "Ŝalti respond-ligilan antaŭvidon dum ŝvebo",
|
||||
"set_new_avatar": "Agordi novan profilbildon",
|
||||
"set_new_profile_background": "Agordi novan profilan fonon",
|
||||
"set_new_profile_banner": "Agordi novan profilan rubandon",
|
||||
"settings": "Agordoj",
|
||||
"stop_gifs": "Movi GIF-bildojn dum ŝvebo",
|
||||
"streaming": "Ŝalti memfaran fluigon de novaj afiŝoj ĉe la supro de la paĝo",
|
||||
"text": "Teksto",
|
||||
"theme": "Etoso",
|
||||
"theme_help": "Uzu deksesumajn kolorkodojn (#rrvvbb) por adapti vian koloran etoson.",
|
||||
"tooltipRadius": "Ŝpruchelpiloj/avertoj",
|
||||
"user_settings": "Uzantaj agordoj"
|
||||
},
|
||||
"timeline": {
|
||||
"collapse": "Maletendi",
|
||||
"conversation": "Interparolo",
|
||||
"error_fetching": "Eraro dum ĝisdatigo",
|
||||
"load_older": "Montri pli malnovajn statojn",
|
||||
"repeated": "ripetata",
|
||||
"show_new": "Montri novajn",
|
||||
"up_to_date": "Ĝisdata"
|
||||
},
|
||||
"user_card": {
|
||||
"block": "Bari",
|
||||
"blocked": "Barita!",
|
||||
"follow": "Aboni",
|
||||
"followees": "Abonatoj",
|
||||
"followers": "Abonantoj",
|
||||
"following": "Abonanta!",
|
||||
"follows_you": "Abonas vin!",
|
||||
"mute": "Silentigi",
|
||||
"muted": "Silentigitaj",
|
||||
"per_day": "tage",
|
||||
"remote_follow": "Fore aboni",
|
||||
"statuses": "Statoj"
|
||||
},
|
||||
"user_profile": {
|
||||
"timeline_title": "Uzanta tempolinio"
|
||||
}
|
||||
}
|
100
src/i18n/es.json
Normal file
100
src/i18n/es.json
Normal file
|
@ -0,0 +1,100 @@
|
|||
{
|
||||
"chat": {
|
||||
"title": "Chat"
|
||||
},
|
||||
"finder": {
|
||||
"error_fetching_user": "Error al buscar usuario",
|
||||
"find_user": "Encontrar usuario"
|
||||
},
|
||||
"general": {
|
||||
"apply": "Aplicar",
|
||||
"submit": "Enviar"
|
||||
},
|
||||
"login": {
|
||||
"login": "Identificación",
|
||||
"logout": "Salir",
|
||||
"password": "Contraseña",
|
||||
"placeholder": "p.ej. lain",
|
||||
"register": "Registrar",
|
||||
"username": "Usuario"
|
||||
},
|
||||
"nav": {
|
||||
"chat": "Chat Local",
|
||||
"mentions": "Menciones",
|
||||
"public_tl": "Línea Temporal Pública",
|
||||
"timeline": "Línea Temporal",
|
||||
"twkn": "Toda La Red Conocida"
|
||||
},
|
||||
"notifications": {
|
||||
"followed_you": "empezó a seguirte",
|
||||
"notifications": "Notificaciones",
|
||||
"read": "¡Leído!"
|
||||
},
|
||||
"post_status": {
|
||||
"default": "Acabo de aterrizar en L.A.",
|
||||
"posting": "Publicando"
|
||||
},
|
||||
"registration": {
|
||||
"bio": "Biografía",
|
||||
"email": "Correo electrónico",
|
||||
"fullname": "Nombre a mostrar",
|
||||
"password_confirm": "Confirmación de contraseña",
|
||||
"registration": "Registro"
|
||||
},
|
||||
"settings": {
|
||||
"attachments": "Adjuntos",
|
||||
"autoload": "Activar carga automática al llegar al final de la página",
|
||||
"avatar": "Avatar",
|
||||
"background": "Segundo plano",
|
||||
"bio": "Biografía",
|
||||
"current_avatar": "Tu avatar actual",
|
||||
"current_profile_banner": "Cabecera actual",
|
||||
"filtering": "Filtros",
|
||||
"filtering_explanation": "Todos los estados que contengan estas palabras serán silenciados, una por línea",
|
||||
"follow_import": "Importar personas que tú sigues",
|
||||
"follow_import_error": "Error al importal el archivo",
|
||||
"follows_imported": "¡Importado! Procesarlos llevará tiempo.",
|
||||
"foreground": "Primer plano",
|
||||
"hide_attachments_in_convo": "Ocultar adjuntos en las conversaciones",
|
||||
"hide_attachments_in_tl": "Ocultar adjuntos en la línea temporal",
|
||||
"import_followers_from_a_csv_file": "Importar personas que tú sigues apartir de un archivo csv",
|
||||
"links": "Links",
|
||||
"name": "Nombre",
|
||||
"name_bio": "Nombre y Biografía",
|
||||
"nsfw_clickthrough": "Activar el clic para ocultar los adjuntos NSFW",
|
||||
"presets": "Por defecto",
|
||||
"profile_background": "Fondo del Perfil",
|
||||
"profile_banner": "Cabecera del perfil",
|
||||
"reply_link_preview": "Activar la previsualización del enlace de responder al pasar el ratón por encima",
|
||||
"set_new_avatar": "Cambiar avatar",
|
||||
"set_new_profile_background": "Cambiar fondo del perfil",
|
||||
"set_new_profile_banner": "Cambiar cabecera",
|
||||
"settings": "Ajustes",
|
||||
"streaming": "Habilite la transmisión automática de nuevas publicaciones cuando se desplaza hacia la parte superior",
|
||||
"text": "Texto",
|
||||
"theme": "Tema",
|
||||
"theme_help": "Use códigos de color hexadecimales (#rrggbb) para personalizar su tema de colores.",
|
||||
"user_settings": "Ajustes de Usuario"
|
||||
},
|
||||
"timeline": {
|
||||
"conversation": "Conversación",
|
||||
"error_fetching": "Error al cargar las actualizaciones",
|
||||
"load_older": "Cargar actualizaciones anteriores",
|
||||
"show_new": "Mostrar lo nuevo",
|
||||
"up_to_date": "Actualizado"
|
||||
},
|
||||
"user_card": {
|
||||
"block": "Bloquear",
|
||||
"blocked": "¡Bloqueado!",
|
||||
"follow": "Seguir",
|
||||
"followees": "Siguiendo",
|
||||
"followers": "Seguidores",
|
||||
"following": "¡Siguiendo!",
|
||||
"follows_you": "¡Te sigue!",
|
||||
"mute": "Silenciar",
|
||||
"muted": "Silenciado",
|
||||
"per_day": "por día",
|
||||
"remote_follow": "Seguir",
|
||||
"statuses": "Estados"
|
||||
}
|
||||
}
|
83
src/i18n/et.json
Normal file
83
src/i18n/et.json
Normal file
|
@ -0,0 +1,83 @@
|
|||
{
|
||||
"finder": {
|
||||
"error_fetching_user": "Viga kasutaja leidmisel",
|
||||
"find_user": "Otsi kasutajaid"
|
||||
},
|
||||
"general": {
|
||||
"submit": "Postita"
|
||||
},
|
||||
"login": {
|
||||
"login": "Logi sisse",
|
||||
"logout": "Logi välja",
|
||||
"password": "Parool",
|
||||
"placeholder": "nt lain",
|
||||
"register": "Registreeru",
|
||||
"username": "Kasutajanimi"
|
||||
},
|
||||
"nav": {
|
||||
"mentions": "Mainimised",
|
||||
"public_tl": "Avalik Ajajoon",
|
||||
"timeline": "Ajajoon",
|
||||
"twkn": "Kogu Teadaolev Võrgustik"
|
||||
},
|
||||
"notifications": {
|
||||
"followed_you": "alustas sinu jälgimist",
|
||||
"notifications": "Teavitused",
|
||||
"read": "Loe!"
|
||||
},
|
||||
"post_status": {
|
||||
"default": "Just sõitsin elektrirongiga Tallinnast Pääskülla.",
|
||||
"posting": "Postitan"
|
||||
},
|
||||
"registration": {
|
||||
"bio": "Bio",
|
||||
"email": "E-post",
|
||||
"fullname": "Kuvatav nimi",
|
||||
"password_confirm": "Parooli kinnitamine",
|
||||
"registration": "Registreerimine"
|
||||
},
|
||||
"settings": {
|
||||
"attachments": "Manused",
|
||||
"autoload": "Luba ajajoone automaatne uuendamine kui ajajoon on põhja keritud",
|
||||
"avatar": "Profiilipilt",
|
||||
"bio": "Bio",
|
||||
"current_avatar": "Sinu praegune profiilipilt",
|
||||
"current_profile_banner": "Praegune profiilibänner",
|
||||
"filtering": "Sisu filtreerimine",
|
||||
"filtering_explanation": "Kõiki staatuseid, mis sisaldavad neid sõnu, ei kuvata. Üks sõna reale.",
|
||||
"hide_attachments_in_convo": "Peida manused vastlustes",
|
||||
"hide_attachments_in_tl": "Peida manused ajajoonel",
|
||||
"name": "Nimi",
|
||||
"name_bio": "Nimi ja Bio",
|
||||
"nsfw_clickthrough": "Peida tööks-mittesobivad(NSFW) manuste hiireklõpsu taha",
|
||||
"profile_background": "Profiilitaust",
|
||||
"profile_banner": "Profiilibänner",
|
||||
"reply_link_preview": "Luba algpostituse kuvamine vastustes",
|
||||
"set_new_avatar": "Vali uus profiilipilt",
|
||||
"set_new_profile_background": "Vali uus profiilitaust",
|
||||
"set_new_profile_banner": "Vali uus profiilibänner",
|
||||
"settings": "Sätted",
|
||||
"theme": "Teema",
|
||||
"user_settings": "Kasutaja sätted"
|
||||
},
|
||||
"timeline": {
|
||||
"conversation": "Vestlus",
|
||||
"error_fetching": "Viga uuenduste laadimisel",
|
||||
"load_older": "Kuva vanemaid staatuseid",
|
||||
"show_new": "Näita uusi",
|
||||
"up_to_date": "Uuendatud"
|
||||
},
|
||||
"user_card": {
|
||||
"block": "Blokeeri",
|
||||
"blocked": "Blokeeritud!",
|
||||
"follow": "Jälgi",
|
||||
"followees": "Jälgitavaid",
|
||||
"followers": "Jälgijaid",
|
||||
"following": "Jälgin!",
|
||||
"follows_you": "Jälgib sind!",
|
||||
"mute": "Vaigista",
|
||||
"muted": "Vaigistatud",
|
||||
"per_day": "päevas",
|
||||
"statuses": "Staatuseid"
|
||||
}
|
||||
}
|
93
src/i18n/fi.json
Normal file
93
src/i18n/fi.json
Normal file
|
@ -0,0 +1,93 @@
|
|||
{
|
||||
"finder": {
|
||||
"error_fetching_user": "Virhe hakiessa käyttäjää",
|
||||
"find_user": "Hae käyttäjä"
|
||||
},
|
||||
"general": {
|
||||
"apply": "Aseta",
|
||||
"submit": "Lähetä"
|
||||
},
|
||||
"login": {
|
||||
"login": "Kirjaudu sisään",
|
||||
"logout": "Kirjaudu ulos",
|
||||
"password": "Salasana",
|
||||
"placeholder": "esim. lain",
|
||||
"register": "Rekisteröidy",
|
||||
"username": "Käyttäjänimi"
|
||||
},
|
||||
"nav": {
|
||||
"mentions": "Maininnat",
|
||||
"public_tl": "Julkinen Aikajana",
|
||||
"timeline": "Aikajana",
|
||||
"twkn": "Koko Tunnettu Verkosto"
|
||||
},
|
||||
"notifications": {
|
||||
"favorited_you": "tykkäsi viestistäsi",
|
||||
"followed_you": "seuraa sinua",
|
||||
"notifications": "Ilmoitukset",
|
||||
"read": "Lue!",
|
||||
"repeated_you": "toisti viestisi"
|
||||
},
|
||||
"post_status": {
|
||||
"default": "Tulin juuri saunasta.",
|
||||
"posting": "Lähetetään"
|
||||
},
|
||||
"registration": {
|
||||
"bio": "Kuvaus",
|
||||
"email": "Sähköposti",
|
||||
"fullname": "Koko nimi",
|
||||
"password_confirm": "Salasanan vahvistaminen",
|
||||
"registration": "Rekisteröityminen"
|
||||
},
|
||||
"settings": {
|
||||
"attachments": "Liitteet",
|
||||
"autoload": "Lataa vanhempia viestejä automaattisesti ruudun pohjalla",
|
||||
"avatar": "Profiilikuva",
|
||||
"background": "Tausta",
|
||||
"bio": "Kuvaus",
|
||||
"current_avatar": "Nykyinen profiilikuvasi",
|
||||
"current_profile_banner": "Nykyinen julisteesi",
|
||||
"filtering": "Suodatus",
|
||||
"filtering_explanation": "Kaikki viestit, jotka sisältävät näitä sanoja, suodatetaan. Yksi sana per rivi.",
|
||||
"foreground": "Korostus",
|
||||
"hide_attachments_in_convo": "Piilota liitteet keskusteluissa",
|
||||
"hide_attachments_in_tl": "Piilota liitteet aikajanalla",
|
||||
"links": "Linkit",
|
||||
"name": "Nimi",
|
||||
"name_bio": "Nimi ja kuvaus",
|
||||
"nsfw_clickthrough": "Piilota NSFW liitteet klikkauksen taakse.",
|
||||
"presets": "Valmiit teemat",
|
||||
"profile_background": "Taustakuva",
|
||||
"profile_banner": "Juliste",
|
||||
"reply_link_preview": "Keskusteluiden vastauslinkkien esikatselu",
|
||||
"set_new_avatar": "Aseta uusi profiilikuva",
|
||||
"set_new_profile_background": "Aseta uusi taustakuva",
|
||||
"set_new_profile_banner": "Aseta uusi juliste",
|
||||
"settings": "Asetukset",
|
||||
"streaming": "Näytä uudet viestit automaattisesti ollessasi ruudun huipulla",
|
||||
"text": "Teksti",
|
||||
"theme": "Teema",
|
||||
"theme_help": "Käytä heksadesimaalivärejä muokataksesi väriteemaasi.",
|
||||
"user_settings": "Käyttäjän asetukset"
|
||||
},
|
||||
"timeline": {
|
||||
"collapse": "Sulje",
|
||||
"conversation": "Keskustelu",
|
||||
"error_fetching": "Virhe ladatessa viestejä",
|
||||
"load_older": "Lataa vanhempia viestejä",
|
||||
"repeated": "toisti",
|
||||
"show_new": "Näytä uudet",
|
||||
"up_to_date": "Ajantasalla"
|
||||
},
|
||||
"user_card": {
|
||||
"follow": "Seuraa",
|
||||
"followees": "Seuraa",
|
||||
"followers": "Seuraajat",
|
||||
"following": "Seuraat!",
|
||||
"follows_you": "Seuraa sinua!",
|
||||
"mute": "Hiljennä",
|
||||
"muted": "Hiljennetty",
|
||||
"per_day": "päivässä",
|
||||
"statuses": "Viestit"
|
||||
}
|
||||
}
|
199
src/i18n/fr.json
Normal file
199
src/i18n/fr.json
Normal file
|
@ -0,0 +1,199 @@
|
|||
{
|
||||
"chat": {
|
||||
"title": "Chat"
|
||||
},
|
||||
"features_panel": {
|
||||
"chat": "Chat",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "Proxy média",
|
||||
"scope_options": "Options de visibilité",
|
||||
"text_limit": "Limite du texte",
|
||||
"title": "Caractéristiques",
|
||||
"who_to_follow": "Qui s'abonner"
|
||||
},
|
||||
"finder": {
|
||||
"error_fetching_user": "Erreur lors de la recherche de l'utilisateur",
|
||||
"find_user": "Chercher un utilisateur"
|
||||
},
|
||||
"general": {
|
||||
"apply": "Appliquer",
|
||||
"submit": "Envoyer"
|
||||
},
|
||||
"login": {
|
||||
"login": "Connexion",
|
||||
"logout": "Déconnexion",
|
||||
"password": "Mot de passe",
|
||||
"placeholder": "p.e. lain",
|
||||
"register": "S'inscrire",
|
||||
"username": "Identifiant"
|
||||
},
|
||||
"nav": {
|
||||
"chat": "Chat local",
|
||||
"friend_requests": "Demandes d'ami",
|
||||
"mentions": "Notifications",
|
||||
"public_tl": "Statuts locaux",
|
||||
"timeline": "Journal",
|
||||
"twkn": "Le réseau connu"
|
||||
},
|
||||
"notifications": {
|
||||
"broken_favorite": "Chargement d'un message inconnu ...",
|
||||
"favorited_you": "a aimé votre statut",
|
||||
"followed_you": "a commencé à vous suivre",
|
||||
"load_older": "Charger les notifications précédentes",
|
||||
"notifications": "Notifications",
|
||||
"read": "Lu !",
|
||||
"repeated_you": "a partagé votre statut"
|
||||
},
|
||||
"post_status": {
|
||||
"account_not_locked_warning": "Votre compte n'est pas {0}. N'importe qui peut vous suivre pour voir vos billets en Abonné·e·s uniquement.",
|
||||
"account_not_locked_warning_link": "verrouillé",
|
||||
"attachments_sensitive": "Marquer le média comme sensible",
|
||||
"content_type": {
|
||||
"plain_text": "Texte brut"
|
||||
},
|
||||
"content_warning": "Sujet (optionnel)",
|
||||
"default": "Écrivez ici votre prochain statut.",
|
||||
"direct_warning": "Ce message sera visible à toutes les personnes mentionnées.",
|
||||
"posting": "Envoi en cours",
|
||||
"scope": {
|
||||
"direct": "Direct - N'envoyer qu'aux personnes mentionnées",
|
||||
"private": "Abonné·e·s uniquement - Seul·e·s vos abonné·e·s verront vos billets",
|
||||
"public": "Publique - Afficher dans les fils publics",
|
||||
"unlisted": "Non-Listé - Ne pas afficher dans les fils publics"
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"bio": "Biographie",
|
||||
"email": "Adresse email",
|
||||
"fullname": "Pseudonyme",
|
||||
"password_confirm": "Confirmation du mot de passe",
|
||||
"registration": "Inscription",
|
||||
"token": "Jeton d'invitation"
|
||||
},
|
||||
"settings": {
|
||||
"attachmentRadius": "Pièces jointes",
|
||||
"attachments": "Pièces jointes",
|
||||
"autoload": "Charger la suite automatiquement une fois le bas de la page atteint",
|
||||
"avatar": "Avatar",
|
||||
"avatarAltRadius": "Avatars (Notifications)",
|
||||
"avatarRadius": "Avatars",
|
||||
"background": "Arrière-plan",
|
||||
"bio": "Biographie",
|
||||
"btnRadius": "Boutons",
|
||||
"cBlue": "Bleu (Répondre, suivre)",
|
||||
"cGreen": "Vert (Partager)",
|
||||
"cOrange": "Orange (Aimer)",
|
||||
"cRed": "Rouge (Annuler)",
|
||||
"change_password": "Changez votre mot de passe",
|
||||
"change_password_error": "Il y a eu un problème pour changer votre mot de passe.",
|
||||
"changed_password": "Mot de passe changé avec succès!",
|
||||
"collapse_subject": "Réduire les messages avec des sujets",
|
||||
"confirm_new_password": "Confirmation du nouveau mot de passe",
|
||||
"current_avatar": "Avatar actuel",
|
||||
"current_password": "Mot de passe actuel",
|
||||
"current_profile_banner": "Bannière de profil actuelle",
|
||||
"data_import_export_tab": "Import / Export des Données",
|
||||
"default_vis": "Portée de visibilité par défaut",
|
||||
"delete_account": "Supprimer le compte",
|
||||
"delete_account_description": "Supprimer définitivement votre compte et tous vos statuts.",
|
||||
"delete_account_error": "Il y a eu un problème lors de la tentative de suppression de votre compte. Si le problème persiste, contactez l'administrateur de cette instance.",
|
||||
"delete_account_instructions": "Indiquez votre mot de passe ci-dessous pour confirmer la suppression de votre compte.",
|
||||
"export_theme": "Enregistrer le thème",
|
||||
"filtering": "Filtre",
|
||||
"filtering_explanation": "Tous les statuts contenant ces mots seront masqués. Un mot par ligne.",
|
||||
"follow_export": "Exporter les abonnements",
|
||||
"follow_export_button": "Exporter les abonnements en csv",
|
||||
"follow_export_processing": "Exportation en cours…",
|
||||
"follow_import": "Importer des abonnements",
|
||||
"follow_import_error": "Erreur lors de l'importation des abonnements.",
|
||||
"follows_imported": "Abonnements importés ! Le traitement peut prendre un moment.",
|
||||
"foreground": "Premier plan",
|
||||
"general": "Général",
|
||||
"hide_attachments_in_convo": "Masquer les pièces jointes dans les conversations",
|
||||
"hide_attachments_in_tl": "Masquer les pièces jointes dans le journal",
|
||||
"import_followers_from_a_csv_file": "Importer des abonnements depuis un fichier csv",
|
||||
"import_theme": "Charger le thème",
|
||||
"inputRadius": "Champs de texte",
|
||||
"instance_default": "(default: {value})",
|
||||
"interfaceLanguage": "Langue de l'interface",
|
||||
"invalid_theme_imported": "Le fichier sélectionné n'est pas un thème Pleroma pris en charge. Aucun changement n'a été apporté à votre thème.",
|
||||
"limited_availability": "Non disponible dans votre navigateur",
|
||||
"links": "Liens",
|
||||
"lock_account_description": "Limitez votre compte aux abonnés acceptés uniquement",
|
||||
"loop_video": "Vidéos en boucle",
|
||||
"loop_video_silent_only": "Boucle uniquement les vidéos sans le son (les «gifs» de Mastodon)",
|
||||
"name": "Nom",
|
||||
"name_bio": "Nom & Bio",
|
||||
"new_password": "Nouveau mot de passe",
|
||||
"no_rich_text_description": "Ne formatez pas le texte",
|
||||
"notification_visibility": "Types de notifications à afficher",
|
||||
"notification_visibility_follows": "Abonnements",
|
||||
"notification_visibility_likes": "J’aime",
|
||||
"notification_visibility_mentions": "Mentionnés",
|
||||
"notification_visibility_repeats": "Partages",
|
||||
"nsfw_clickthrough": "Masquer les images marquées comme contenu adulte ou sensible",
|
||||
"panelRadius": "Fenêtres",
|
||||
"pause_on_unfocused": "Suspendre le streaming lorsque l'onglet n'est pas centré",
|
||||
"presets": "Thèmes prédéfinis",
|
||||
"profile_background": "Image de fond",
|
||||
"profile_banner": "Bannière de profil",
|
||||
"profile_tab": "Profil",
|
||||
"radii_help": "Vous pouvez ici choisir le niveau d'arrondi des angles de l'interface (en pixels)",
|
||||
"replies_in_timeline": "Réponses au journal",
|
||||
"reply_link_preview": "Afficher un aperçu lors du survol de liens vers une réponse",
|
||||
"reply_visibility_all": "Montrer toutes les réponses",
|
||||
"reply_visibility_following": "Afficher uniquement les réponses adressées à moi ou aux utilisateurs que je suis",
|
||||
"reply_visibility_self": "Afficher uniquement les réponses adressées à moi",
|
||||
"saving_err": "Erreur lors de l'enregistrement des paramètres",
|
||||
"saving_ok": "Paramètres enregistrés",
|
||||
"security_tab": "Sécurité",
|
||||
"set_new_avatar": "Changer d'avatar",
|
||||
"set_new_profile_background": "Changer d'image de fond",
|
||||
"set_new_profile_banner": "Changer de bannière",
|
||||
"settings": "Paramètres",
|
||||
"stop_gifs": "N'animer les GIFS que lors du survol du curseur de la souris",
|
||||
"streaming": "Charger automatiquement les nouveaux statuts lorsque vous êtes au haut de la page",
|
||||
"text": "Texte",
|
||||
"theme": "Thème",
|
||||
"theme_help": "Spécifiez des codes couleur hexadécimaux (#aabbcc) pour personnaliser les couleurs du thème",
|
||||
"tooltipRadius": "Info-bulles/alertes ",
|
||||
"user_settings": "Paramètres utilisateur",
|
||||
"values": {
|
||||
"false": "non",
|
||||
"true": "oui"
|
||||
}
|
||||
},
|
||||
"timeline": {
|
||||
"collapse": "Fermer",
|
||||
"conversation": "Conversation",
|
||||
"error_fetching": "Erreur en cherchant les mises à jour",
|
||||
"load_older": "Afficher plus",
|
||||
"no_retweet_hint": "Le message est marqué en abonnés-seulement ou direct et ne peut pas être répété",
|
||||
"repeated": "a partagé",
|
||||
"show_new": "Afficher plus",
|
||||
"up_to_date": "À jour"
|
||||
},
|
||||
"user_card": {
|
||||
"approve": "Accepter",
|
||||
"block": "Bloquer",
|
||||
"blocked": "Bloqué",
|
||||
"deny": "Rejeter",
|
||||
"follow": "Suivre",
|
||||
"followees": "Suivis",
|
||||
"followers": "Vous suivent",
|
||||
"following": "Suivi !",
|
||||
"follows_you": "Vous suit !",
|
||||
"mute": "Masquer",
|
||||
"muted": "Masqué",
|
||||
"per_day": "par jour",
|
||||
"remote_follow": "Suivre d'une autre instance",
|
||||
"statuses": "Statuts"
|
||||
},
|
||||
"user_profile": {
|
||||
"timeline_title": "Journal de l'utilisateur"
|
||||
},
|
||||
"who_to_follow": {
|
||||
"more": "Plus",
|
||||
"who_to_follow": "Qui s'abonner"
|
||||
}
|
||||
}
|
190
src/i18n/he.json
Normal file
190
src/i18n/he.json
Normal file
|
@ -0,0 +1,190 @@
|
|||
{
|
||||
"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": "התחבר",
|
||||
"logout": "התנתק",
|
||||
"password": "סיסמה",
|
||||
"placeholder": "למשל lain",
|
||||
"register": "הירשם",
|
||||
"username": "שם המשתמש"
|
||||
},
|
||||
"nav": {
|
||||
"chat": "צ'אט מקומי",
|
||||
"friend_requests": "בקשות עקיבה",
|
||||
"mentions": "אזכורים",
|
||||
"public_tl": "ציר הזמן הציבורי",
|
||||
"timeline": "ציר הזמן",
|
||||
"twkn": "כל הרשת הידועה"
|
||||
},
|
||||
"notifications": {
|
||||
"broken_favorite": "סטאטוס לא ידוע, מחפש...",
|
||||
"favorited_you": "אהב את הסטטוס שלך",
|
||||
"followed_you": "עקב אחריך!",
|
||||
"load_older": "טען התראות ישנות",
|
||||
"notifications": "התראות",
|
||||
"read": "קרא!",
|
||||
"repeated_you": "חזר על הסטטוס שלך"
|
||||
},
|
||||
"post_status": {
|
||||
"account_not_locked_warning": "המשתמש שלך אינו {0}. כל אחד יכול לעקוב אחריך ולראות את ההודעות לעוקבים-בלבד שלך.",
|
||||
"account_not_locked_warning_link": "נעול",
|
||||
"attachments_sensitive": "סמן מסמכים מצורפים כלא בטוחים לצפייה",
|
||||
"content_type": {
|
||||
"plain_text": "טקסט פשוט"
|
||||
},
|
||||
"content_warning": "נושא (נתון לבחירה)",
|
||||
"default": "הרגע נחת ב-ל.א.",
|
||||
"direct_warning": "הודעה זו תהיה זמינה רק לאנשים המוזכרים.",
|
||||
"posting": "מפרסם",
|
||||
"scope": {
|
||||
"direct": "ישיר - שלח לאנשים המוזכרים בלבד",
|
||||
"private": "עוקבים-בלבד - שלח לעוקבים בלבד",
|
||||
"public": "ציבורי - שלח לציר הזמן הציבורי",
|
||||
"unlisted": "מחוץ לרשימה - אל תשלח לציר הזמן הציבורי"
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"bio": "אודות",
|
||||
"email": "אימייל",
|
||||
"fullname": "שם תצוגה",
|
||||
"password_confirm": "אישור סיסמה",
|
||||
"registration": "הרשמה",
|
||||
"token": "טוקן הזמנה"
|
||||
},
|
||||
"settings": {
|
||||
"attachmentRadius": "צירופים",
|
||||
"attachments": "צירופים",
|
||||
"autoload": "החל טעינה אוטומטית בגלילה לתחתית הדף",
|
||||
"avatar": "תמונת פרופיל",
|
||||
"avatarAltRadius": "תמונות פרופיל (התראות)",
|
||||
"avatarRadius": "תמונות פרופיל",
|
||||
"background": "רקע",
|
||||
"bio": "אודות",
|
||||
"btnRadius": "כפתורים",
|
||||
"cBlue": "כחול (תגובה, עקיבה)",
|
||||
"cGreen": "ירוק (חזרה)",
|
||||
"cOrange": "כתום (לייק)",
|
||||
"cRed": "אדום (ביטול)",
|
||||
"change_password": "שנה סיסמה",
|
||||
"change_password_error": "הייתה בעיה בשינוי סיסמתך.",
|
||||
"changed_password": "סיסמה שונתה בהצלחה!",
|
||||
"collapse_subject": "מזער הודעות עם נושאים",
|
||||
"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": "חזית",
|
||||
"hide_attachments_in_convo": "החבא צירופים בשיחות",
|
||||
"hide_attachments_in_tl": "החבא צירופים בציר הזמן",
|
||||
"import_followers_from_a_csv_file": "ייבא את הנעקבים שלך מקובץ csv",
|
||||
"import_theme": "טען ערכים",
|
||||
"inputRadius": "שדות קלט",
|
||||
"interfaceLanguage": "שפת הממשק",
|
||||
"invalid_theme_imported": "הקובץ הנבחר אינו תמה הנתמכת ע\"י פלרומה. שום שינויים לא נעשו לתמה שלך.",
|
||||
"limited_availability": "לא זמין בדפדפן שלך",
|
||||
"links": "לינקים",
|
||||
"lock_account_description": "הגבל את המשתמש לעוקבים מאושרים בלבד",
|
||||
"loop_video": "נגן סרטונים ללא הפסקה",
|
||||
"loop_video_silent_only": "נגן רק סרטונים חסרי קול ללא הפסקה",
|
||||
"name": "שם",
|
||||
"name_bio": "שם ואודות",
|
||||
"new_password": "סיסמה חדשה",
|
||||
"notification_visibility": "סוג ההתראות שתרצו לראות",
|
||||
"notification_visibility_follows": "עקיבות",
|
||||
"notification_visibility_likes": "לייקים",
|
||||
"notification_visibility_mentions": "אזכורים",
|
||||
"notification_visibility_repeats": "חזרות",
|
||||
"nsfw_clickthrough": "החל החבאת צירופים לא בטוחים לצפיה בעת עבודה בעזרת לחיצת עכבר",
|
||||
"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": "הראה תגובות שמופנות אליי בלבד",
|
||||
"security_tab": "ביטחון",
|
||||
"set_new_avatar": "קבע תמונת פרופיל חדשה",
|
||||
"set_new_profile_background": "קבע רקע פרופיל חדש",
|
||||
"set_new_profile_banner": "קבע כרזת פרופיל חדשה",
|
||||
"settings": "הגדרות",
|
||||
"stop_gifs": "נגן-בעת-ריחוף GIFs",
|
||||
"streaming": "החל זרימת הודעות אוטומטית בעת גלילה למעלה הדף",
|
||||
"text": "טקסט",
|
||||
"theme": "תמה",
|
||||
"theme_help": "השתמש בקודי צבע הקס (#אדום-אדום-ירוק-ירוק-כחול-כחול) על מנת להתאים אישית את תמת הצבע שלך.",
|
||||
"tooltipRadius": "טולטיפ \\ התראות",
|
||||
"user_settings": "הגדרות משתמש"
|
||||
},
|
||||
"timeline": {
|
||||
"collapse": "מוטט",
|
||||
"conversation": "שיחה",
|
||||
"error_fetching": "שגיאה בהבאת הודעות",
|
||||
"load_older": "טען סטטוסים חדשים",
|
||||
"no_retweet_hint": "ההודעה מסומנת כ\"לעוקבים-בלבד\" ולא ניתן לחזור עליה",
|
||||
"repeated": "חזר",
|
||||
"show_new": "הראה חדש",
|
||||
"up_to_date": "עדכני"
|
||||
},
|
||||
"user_card": {
|
||||
"approve": "אשר",
|
||||
"block": "חסימה",
|
||||
"blocked": "חסום!",
|
||||
"deny": "דחה",
|
||||
"follow": "עקוב",
|
||||
"followees": "נעקבים",
|
||||
"followers": "עוקבים",
|
||||
"following": "עוקב!",
|
||||
"follows_you": "עוקב אחריך!",
|
||||
"mute": "השתק",
|
||||
"muted": "מושתק",
|
||||
"per_day": "ליום",
|
||||
"remote_follow": "עקיבה מרחוק",
|
||||
"statuses": "סטטוסים"
|
||||
},
|
||||
"user_profile": {
|
||||
"timeline_title": "ציר זמן המשתמש"
|
||||
},
|
||||
"who_to_follow": {
|
||||
"more": "עוד",
|
||||
"who_to_follow": "אחרי מי לעקוב"
|
||||
}
|
||||
}
|
83
src/i18n/hu.json
Normal file
83
src/i18n/hu.json
Normal file
|
@ -0,0 +1,83 @@
|
|||
{
|
||||
"finder": {
|
||||
"error_fetching_user": "Hiba felhasználó beszerzésével",
|
||||
"find_user": "Felhasználó keresése"
|
||||
},
|
||||
"general": {
|
||||
"submit": "Elküld"
|
||||
},
|
||||
"login": {
|
||||
"login": "Bejelentkezés",
|
||||
"logout": "Kijelentkezés",
|
||||
"password": "Jelszó",
|
||||
"placeholder": "e.g. lain",
|
||||
"register": "Feliratkozás",
|
||||
"username": "Felhasználó név"
|
||||
},
|
||||
"nav": {
|
||||
"mentions": "Említéseim",
|
||||
"public_tl": "Publikus Idővonal",
|
||||
"timeline": "Idővonal",
|
||||
"twkn": "Az Egész Ismert Hálózat"
|
||||
},
|
||||
"notifications": {
|
||||
"followed_you": "követ téged",
|
||||
"notifications": "Értesítések",
|
||||
"read": "Olvasva!"
|
||||
},
|
||||
"post_status": {
|
||||
"default": "Most érkeztem L.A.-be",
|
||||
"posting": "Küldés folyamatban"
|
||||
},
|
||||
"registration": {
|
||||
"bio": "Bio",
|
||||
"email": "Email",
|
||||
"fullname": "Teljes név",
|
||||
"password_confirm": "Jelszó megerősítése",
|
||||
"registration": "Feliratkozás"
|
||||
},
|
||||
"settings": {
|
||||
"attachments": "Csatolmányok",
|
||||
"autoload": "Autoatikus betöltés engedélyezése lap aljára görgetéskor",
|
||||
"avatar": "Avatár",
|
||||
"bio": "Bio",
|
||||
"current_avatar": "Jelenlegi avatár",
|
||||
"current_profile_banner": "Jelenlegi profil banner",
|
||||
"filtering": "Szűrés",
|
||||
"filtering_explanation": "Minden tartalom mely ezen szavakat tartalmazza némítva lesz, soronként egy",
|
||||
"hide_attachments_in_convo": "Csatolmányok elrejtése a társalgásokban",
|
||||
"hide_attachments_in_tl": "Csatolmányok elrejtése az idővonalon",
|
||||
"name": "Név",
|
||||
"name_bio": "Név és Bio",
|
||||
"nsfw_clickthrough": "NSFW átkattintási tartalom elrejtésének engedélyezése",
|
||||
"profile_background": "Profil háttérkép",
|
||||
"profile_banner": "Profil Banner",
|
||||
"reply_link_preview": "Válasz-link előzetes mutatása egér rátételkor",
|
||||
"set_new_avatar": "Új avatár",
|
||||
"set_new_profile_background": "Új profil háttér beállítása",
|
||||
"set_new_profile_banner": "Új profil banner",
|
||||
"settings": "Beállítások",
|
||||
"theme": "Téma",
|
||||
"user_settings": "Felhasználói beállítások"
|
||||
},
|
||||
"timeline": {
|
||||
"conversation": "Társalgás",
|
||||
"error_fetching": "Hiba a frissítések beszerzésénél",
|
||||
"load_older": "Régebbi állapotok betöltése",
|
||||
"show_new": "Újak mutatása",
|
||||
"up_to_date": "Naprakész"
|
||||
},
|
||||
"user_card": {
|
||||
"block": "Letilt",
|
||||
"blocked": "Letiltva!",
|
||||
"follow": "Követ",
|
||||
"followees": "Követettek",
|
||||
"followers": "Követők",
|
||||
"following": "Követve!",
|
||||
"follows_you": "Követ téged!",
|
||||
"mute": "Némít",
|
||||
"muted": "Némított",
|
||||
"per_day": "naponta",
|
||||
"statuses": "Állapotok"
|
||||
}
|
||||
}
|
57
src/i18n/it.json
Normal file
57
src/i18n/it.json
Normal file
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"general": {
|
||||
"submit": "Invia"
|
||||
},
|
||||
"nav": {
|
||||
"mentions": "Menzioni",
|
||||
"public_tl": "Sequenza temporale pubblica",
|
||||
"timeline": "Sequenza temporale",
|
||||
"twkn": "L'intiera rete conosciuta"
|
||||
},
|
||||
"notifications": {
|
||||
"followed_you": "ti ha seguito",
|
||||
"notifications": "Notifiche",
|
||||
"read": "Leggi!"
|
||||
},
|
||||
"settings": {
|
||||
"attachments": "Allegati",
|
||||
"autoload": "Abilita caricamento automatico quando si raggiunge il fondo schermo",
|
||||
"avatar": "Avatar",
|
||||
"bio": "Introduzione",
|
||||
"current_avatar": "Il tuo attuale avatar",
|
||||
"current_profile_banner": "Sfondo attuale",
|
||||
"filtering": "Filtri",
|
||||
"filtering_explanation": "Filtra via le notifiche che contengono le seguenti parole (inserisci rigo per rigo le parole di innesco)",
|
||||
"hide_attachments_in_convo": "Nascondi gli allegati presenti nelle conversazioni",
|
||||
"hide_attachments_in_tl": "Nascondi gli allegati presenti nella sequenza temporale",
|
||||
"name": "Nome",
|
||||
"name_bio": "Nome & Introduzione",
|
||||
"nsfw_clickthrough": "Abilita la trasparenza degli allegati NSFW",
|
||||
"profile_background": "Sfondo della tua pagina",
|
||||
"profile_banner": "Sfondo del tuo profilo",
|
||||
"reply_link_preview": "Ability il reply-link preview al passaggio del mouse",
|
||||
"set_new_avatar": "Scegli un nuovo avatar",
|
||||
"set_new_profile_background": "Scegli un nuovo sfondo per la tua pagina",
|
||||
"set_new_profile_banner": "Scegli un nuovo sfondo per il tuo profilo",
|
||||
"settings": "Settaggi",
|
||||
"theme": "Tema",
|
||||
"user_settings": "Configurazione dell'utente"
|
||||
},
|
||||
"timeline": {
|
||||
"error_fetching": "Errori nel prelievo aggiornamenti",
|
||||
"load_older": "Carica messaggi più vecchi",
|
||||
"show_new": "Mostra nuovi",
|
||||
"up_to_date": "Aggiornato"
|
||||
},
|
||||
"user_card": {
|
||||
"follow": "Segui",
|
||||
"followees": "Chi stai seguendo",
|
||||
"followers": "Chi ti segue",
|
||||
"following": "Lo stai seguendo!",
|
||||
"follows_you": "Ti segue!",
|
||||
"mute": "Ammutolisci",
|
||||
"muted": "Ammutoliti",
|
||||
"per_day": "al giorno",
|
||||
"statuses": "Messaggi"
|
||||
}
|
||||
}
|
199
src/i18n/ja.json
Normal file
199
src/i18n/ja.json
Normal file
|
@ -0,0 +1,199 @@
|
|||
{
|
||||
"chat": {
|
||||
"title": "チャット"
|
||||
},
|
||||
"features_panel": {
|
||||
"chat": "チャット",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "メディアプロクシ",
|
||||
"scope_options": "こうかいはんいせんたく",
|
||||
"text_limit": "もじのかず",
|
||||
"title": "ゆうこうなきのう",
|
||||
"who_to_follow": "おすすめユーザー"
|
||||
},
|
||||
"finder": {
|
||||
"error_fetching_user": "ユーザーけんさくがエラーになりました。",
|
||||
"find_user": "ユーザーをさがす"
|
||||
},
|
||||
"general": {
|
||||
"apply": "てきよう",
|
||||
"submit": "そうしん"
|
||||
},
|
||||
"login": {
|
||||
"login": "ログイン",
|
||||
"logout": "ログアウト",
|
||||
"password": "パスワード",
|
||||
"placeholder": "れい: lain",
|
||||
"register": "はじめる",
|
||||
"username": "ユーザーめい"
|
||||
},
|
||||
"nav": {
|
||||
"chat": "ローカルチャット",
|
||||
"friend_requests": "フォローリクエスト",
|
||||
"mentions": "メンション",
|
||||
"public_tl": "パブリックタイムライン",
|
||||
"timeline": "タイムライン",
|
||||
"twkn": "つながっているすべてのネットワーク"
|
||||
},
|
||||
"notifications": {
|
||||
"broken_favorite": "ステータスがみつかりません。さがしています...",
|
||||
"favorited_you": "あなたのステータスがおきにいりされました",
|
||||
"followed_you": "フォローされました",
|
||||
"load_older": "ふるいつうちをみる",
|
||||
"notifications": "つうち",
|
||||
"read": "よんだ!",
|
||||
"repeated_you": "あなたのステータスがリピートされました"
|
||||
},
|
||||
"post_status": {
|
||||
"account_not_locked_warning": "あなたのアカウントは {0} ではありません。あなたをフォローすれば、だれでも、フォロワーげんていのステータスをよむことができます。",
|
||||
"account_not_locked_warning_link": "ロックされたアカウント",
|
||||
"attachments_sensitive": "ファイルをNSFWにする",
|
||||
"content_type": {
|
||||
"plain_text": "プレーンテキスト"
|
||||
},
|
||||
"content_warning": "せつめい (かかなくてもよい)",
|
||||
"default": "はねだくうこうに、つきました。",
|
||||
"direct_warning": "このステータスは、メンションされたユーザーだけが、よむことができます。",
|
||||
"posting": "とうこう",
|
||||
"scope": {
|
||||
"direct": "ダイレクト: メンションされたユーザーのみにとどきます。",
|
||||
"private": "フォロワーげんてい: フォロワーのみにとどきます。",
|
||||
"public": "パブリック: パブリックタイムラインにとどきます。",
|
||||
"unlisted": "アンリステッド: パブリックタイムラインにとどきません。"
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"bio": "プロフィール",
|
||||
"email": "Eメール",
|
||||
"fullname": "スクリーンネーム",
|
||||
"password_confirm": "パスワードのかくにん",
|
||||
"registration": "はじめる",
|
||||
"token": "しょうたいトークン"
|
||||
},
|
||||
"settings": {
|
||||
"attachmentRadius": "ファイル",
|
||||
"attachments": "ファイル",
|
||||
"autoload": "したにスクロールしたとき、じどうてきによみこむ。",
|
||||
"avatar": "アバター",
|
||||
"avatarAltRadius": "つうちのアバター",
|
||||
"avatarRadius": "アバター",
|
||||
"background": "バックグラウンド",
|
||||
"bio": "プロフィール",
|
||||
"btnRadius": "ボタン",
|
||||
"cBlue": "リプライとフォロー",
|
||||
"cGreen": "リピート",
|
||||
"cOrange": "おきにいり",
|
||||
"cRed": "キャンセル",
|
||||
"change_password": "パスワードをかえる",
|
||||
"change_password_error": "パスワードをかえることが、できなかったかもしれません。",
|
||||
"changed_password": "パスワードが、かわりました!",
|
||||
"collapse_subject": "せつめいのあるとうこうをたたむ",
|
||||
"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": "これらのことばをふくむすべてのものがミュートされます。1ぎょうに1つのことばをかいてください。",
|
||||
"follow_export": "フォローのエクスポート",
|
||||
"follow_export_button": "エクスポート",
|
||||
"follow_export_processing": "おまちください。まもなくファイルをダウンロードできます。",
|
||||
"follow_import": "フォローインポート",
|
||||
"follow_import_error": "フォローのインポートがエラーになりました。",
|
||||
"follows_imported": "フォローがインポートされました! すこしじかんがかかるかもしれません。",
|
||||
"foreground": "フォアグラウンド",
|
||||
"general": "ぜんぱん",
|
||||
"hide_attachments_in_convo": "スレッドのファイルをかくす",
|
||||
"hide_attachments_in_tl": "タイムラインのファイルをかくす",
|
||||
"import_followers_from_a_csv_file": "CSVファイルからフォローをインポートする",
|
||||
"import_theme": "ロード",
|
||||
"inputRadius": "インプットフィールド",
|
||||
"instance_default": "(デフォルト: {value})",
|
||||
"interfaceLanguage": "インターフェースのことば",
|
||||
"invalid_theme_imported": "このファイルはPleromaのテーマではありません。テーマはへんこうされませんでした。",
|
||||
"limited_availability": "あなたのブラウザではできません",
|
||||
"links": "リンク",
|
||||
"lock_account_description": "あなたがみとめたひとだけ、あなたのアカウントをフォローできます",
|
||||
"loop_video": "ビデオをくりかえす",
|
||||
"loop_video_silent_only": "おとのないビデオだけくりかえす",
|
||||
"name": "なまえ",
|
||||
"name_bio": "なまえとプロフィール",
|
||||
"new_password": "あたらしいパスワード",
|
||||
"notification_visibility": "ひょうじするつうち",
|
||||
"notification_visibility_follows": "フォロー",
|
||||
"notification_visibility_likes": "おきにいり",
|
||||
"notification_visibility_mentions": "メンション",
|
||||
"notification_visibility_repeats": "リピート",
|
||||
"no_rich_text_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": "セキュリティ",
|
||||
"set_new_avatar": "あたらしいアバターをせっていする",
|
||||
"set_new_profile_background": "あたらしいプロフィールのバックグラウンドをせっていする",
|
||||
"set_new_profile_banner": "あたらしいプロフィールバナーを設定する",
|
||||
"settings": "せってい",
|
||||
"stop_gifs": "カーソルをかさねたとき、GIFをうごかす",
|
||||
"streaming": "うえまでスクロールしたとき、じどうてきにストリーミングする",
|
||||
"text": "もじ",
|
||||
"theme": "テーマ",
|
||||
"theme_help": "カラーテーマをカスタマイズできます",
|
||||
"tooltipRadius": "ツールチップとアラート",
|
||||
"user_settings": "ユーザーせってい",
|
||||
"values": {
|
||||
"false": "いいえ",
|
||||
"true": "はい"
|
||||
}
|
||||
},
|
||||
"timeline": {
|
||||
"collapse": "たたむ",
|
||||
"conversation": "スレッド",
|
||||
"error_fetching": "よみこみがエラーになりました",
|
||||
"load_older": "ふるいステータス",
|
||||
"no_retweet_hint": "とうこうを「フォロワーのみ」または「ダイレクト」にすると、リピートできなくなります",
|
||||
"repeated": "リピート",
|
||||
"show_new": "よみこみ",
|
||||
"up_to_date": "さいしん"
|
||||
},
|
||||
"user_card": {
|
||||
"approve": "うけいれ",
|
||||
"block": "ブロック",
|
||||
"blocked": "ブロックしています!",
|
||||
"deny": "おことわり",
|
||||
"follow": "フォロー",
|
||||
"followees": "フォロー",
|
||||
"followers": "フォロワー",
|
||||
"following": "フォローしています!",
|
||||
"follows_you": "フォローされました!",
|
||||
"mute": "ミュート",
|
||||
"muted": "ミュートしています!",
|
||||
"per_day": "/日",
|
||||
"remote_follow": "リモートフォロー",
|
||||
"statuses": "ステータス"
|
||||
},
|
||||
"user_profile": {
|
||||
"timeline_title": "ユーザータイムライン"
|
||||
},
|
||||
"who_to_follow": {
|
||||
"more": "くわしく",
|
||||
"who_to_follow": "おすすめユーザー"
|
||||
}
|
||||
}
|
2065
src/i18n/messages.js
2065
src/i18n/messages.js
File diff suppressed because it is too large
Load diff
199
src/i18n/nb.json
Normal file
199
src/i18n/nb.json
Normal file
|
@ -0,0 +1,199 @@
|
|||
{
|
||||
"chat": {
|
||||
"title": "Nettprat"
|
||||
},
|
||||
"features_panel": {
|
||||
"chat": "Nettprat",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "Media proxy",
|
||||
"scope_options": "Velg mottakere",
|
||||
"text_limit": "Tekst-grense",
|
||||
"title": "Egenskaper",
|
||||
"who_to_follow": "Hvem å følge"
|
||||
},
|
||||
"finder": {
|
||||
"error_fetching_user": "Feil ved henting av bruker",
|
||||
"find_user": "Finn bruker"
|
||||
},
|
||||
"general": {
|
||||
"apply": "Bruk",
|
||||
"submit": "Send"
|
||||
},
|
||||
"login": {
|
||||
"login": "Logg inn",
|
||||
"logout": "Logg ut",
|
||||
"password": "Passord",
|
||||
"placeholder": "f. eks lain",
|
||||
"register": "Registrer",
|
||||
"username": "Brukernavn"
|
||||
},
|
||||
"nav": {
|
||||
"chat": "Lokal nettprat",
|
||||
"friend_requests": "Følgeforespørsler",
|
||||
"mentions": "Nevnt",
|
||||
"public_tl": "Offentlig Tidslinje",
|
||||
"timeline": "Tidslinje",
|
||||
"twkn": "Det hele kjente nettverket"
|
||||
},
|
||||
"notifications": {
|
||||
"broken_favorite": "Ukjent status, leter etter den...",
|
||||
"favorited_you": "likte din status",
|
||||
"followed_you": "fulgte deg",
|
||||
"load_older": "Last eldre varsler",
|
||||
"notifications": "Varslinger",
|
||||
"read": "Les!",
|
||||
"repeated_you": "Gjentok din status"
|
||||
},
|
||||
"post_status": {
|
||||
"account_not_locked_warning": "Kontoen din er ikke {0}. Hvem som helst kan følge deg for å se dine statuser til følgere",
|
||||
"account_not_locked_warning_link": "låst",
|
||||
"attachments_sensitive": "Merk vedlegg som sensitive",
|
||||
"content_type": {
|
||||
"plain_text": "Klar tekst"
|
||||
},
|
||||
"content_warning": "Tema (valgfritt)",
|
||||
"default": "Landet akkurat i L.A.",
|
||||
"direct_warning": "Denne statusen vil kun bli sett av nevnte brukere",
|
||||
"posting": "Publiserer",
|
||||
"scope": {
|
||||
"direct": "Direkte, publiser bare til nevnte brukere",
|
||||
"private": "Bare følgere, publiser bare til brukere som følger deg",
|
||||
"public": "Offentlig, publiser til offentlige tidslinjer",
|
||||
"unlisted": "Uoppført, ikke publiser til offentlige tidslinjer"
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"bio": "Biografi",
|
||||
"email": "Epost-adresse",
|
||||
"fullname": "Visningsnavn",
|
||||
"password_confirm": "Bekreft passord",
|
||||
"registration": "Registrering",
|
||||
"token": "Invitasjons-bevis"
|
||||
},
|
||||
"settings": {
|
||||
"attachmentRadius": "Vedlegg",
|
||||
"attachments": "Vedlegg",
|
||||
"autoload": "Automatisk lasting når du blar ned til bunnen",
|
||||
"avatar": "Profilbilde",
|
||||
"avatarAltRadius": "Profilbilde (Varslinger)",
|
||||
"avatarRadius": "Profilbilde",
|
||||
"background": "Bakgrunn",
|
||||
"bio": "Biografi",
|
||||
"btnRadius": "Knapper",
|
||||
"cBlue": "Blå (Svar, følg)",
|
||||
"cGreen": "Grønn (Gjenta)",
|
||||
"cOrange": "Oransje (Lik)",
|
||||
"cRed": "Rød (Avbryt)",
|
||||
"change_password": "Endre passord",
|
||||
"change_password_error": "Feil ved endring av passord",
|
||||
"changed_password": "Passord endret",
|
||||
"collapse_subject": "Sammenfold statuser med tema",
|
||||
"confirm_new_password": "Bekreft nytt passord",
|
||||
"current_avatar": "Ditt nåværende profilbilde",
|
||||
"current_password": "Nåværende passord",
|
||||
"current_profile_banner": "Din nåværende profil-banner",
|
||||
"data_import_export_tab": "Data import / eksport",
|
||||
"default_vis": "Standard visnings-omfang",
|
||||
"delete_account": "Slett konto",
|
||||
"delete_account_description": "Slett din konto og alle dine statuser",
|
||||
"delete_account_error": "Det oppsto et problem ved sletting av kontoen din, hvis dette problemet forblir kontakt din administrator",
|
||||
"delete_account_instructions": "Skriv inn ditt passord i feltet nedenfor for å bekrefte sletting av konto",
|
||||
"export_theme": "Lagre tema",
|
||||
"filtering": "Filtrering",
|
||||
"filtering_explanation": "Alle statuser som inneholder disse ordene vil bli dempet, en kombinasjon av tegn per linje",
|
||||
"follow_export": "Eksporter følginger",
|
||||
"follow_export_button": "Eksporter følgingene dine til en .csv fil",
|
||||
"follow_export_processing": "Jobber, du vil snart bli spurt om å laste ned filen din.",
|
||||
"follow_import": "Importer følginger",
|
||||
"follow_import_error": "Feil ved importering av følginger.",
|
||||
"follows_imported": "Følginger importert! Behandling vil ta litt tid.",
|
||||
"foreground": "Forgrunn",
|
||||
"general": "Generell",
|
||||
"hide_attachments_in_convo": "Gjem vedlegg i samtaler",
|
||||
"hide_attachments_in_tl": "Gjem vedlegg på tidslinje",
|
||||
"import_followers_from_a_csv_file": "Importer følginger fra en csv fil",
|
||||
"import_theme": "Last tema",
|
||||
"inputRadius": "Input felt",
|
||||
"instance_default": "(standard: {value})",
|
||||
"interfaceLanguage": "Grensesnitt-språk",
|
||||
"invalid_theme_imported": "Den valgte filen er ikke ett støttet Pleroma-tema, ingen endringer til ditt tema ble gjort",
|
||||
"limited_availability": "Ikke tilgjengelig i din nettleser",
|
||||
"links": "Linker",
|
||||
"lock_account_description": "Begrens din konto til bare godkjente følgere",
|
||||
"loop_video": "Gjenta videoer",
|
||||
"loop_video_silent_only": "Gjenta bare videoer uten lyd, (for eksempel Mastodon sine \"gifs\")",
|
||||
"name": "Navn",
|
||||
"name_bio": "Navn & Biografi",
|
||||
"new_password": "Nytt passord",
|
||||
"notification_visibility": "Typer varsler som skal vises",
|
||||
"notification_visibility_follows": "Følginger",
|
||||
"notification_visibility_likes": "Likes",
|
||||
"notification_visibility_mentions": "Nevnt",
|
||||
"notification_visibility_repeats": "Gjentakelser",
|
||||
"no_rich_text_description": "Fjern all formatering fra statuser",
|
||||
"nsfw_clickthrough": "Krev trykk for å vise statuser som kan være upassende",
|
||||
"panelRadius": "Panel",
|
||||
"pause_on_unfocused": "Stopp henting av poster når vinduet ikke er i fokus",
|
||||
"presets": "Forhåndsdefinerte tema",
|
||||
"profile_background": "Profil-bakgrunn",
|
||||
"profile_banner": "Profil-banner",
|
||||
"profile_tab": "Profil",
|
||||
"radii_help": "Bestem hvor runde hjørnene i brukergrensesnittet skal være (i piksler)",
|
||||
"replies_in_timeline": "Svar på tidslinje",
|
||||
"reply_link_preview": "Vis en forhåndsvisning når du holder musen over svar til en status",
|
||||
"reply_visibility_all": "Vis alle svar",
|
||||
"reply_visibility_following": "Vis bare svar som er til meg eller folk jeg følger",
|
||||
"reply_visibility_self": "Vis bare svar som er til meg",
|
||||
"saving_err": "Feil ved lagring av innstillinger",
|
||||
"saving_ok": "Innstillinger lagret",
|
||||
"security_tab": "Sikkerhet",
|
||||
"set_new_avatar": "Rediger profilbilde",
|
||||
"set_new_profile_background": "Rediger profil-bakgrunn",
|
||||
"set_new_profile_banner": "Sett ny profil-banner",
|
||||
"settings": "Innstillinger",
|
||||
"stop_gifs": "Spill av GIFs når du holder over dem",
|
||||
"streaming": "Automatisk strømming av nye statuser når du har bladd til toppen",
|
||||
"text": "Tekst",
|
||||
"theme": "Tema",
|
||||
"theme_help": "Bruk heksadesimale fargekoder (#rrggbb) til å endre farge-temaet ditt.",
|
||||
"tooltipRadius": "Verktøytips/advarsler",
|
||||
"user_settings": "Brukerinstillinger",
|
||||
"values": {
|
||||
"false": "nei",
|
||||
"true": "ja"
|
||||
}
|
||||
},
|
||||
"timeline": {
|
||||
"collapse": "Sammenfold",
|
||||
"conversation": "Samtale",
|
||||
"error_fetching": "Feil ved henting av oppdateringer",
|
||||
"load_older": "Last eldre statuser",
|
||||
"no_retweet_hint": "Status er markert som bare til følgere eller direkte og kan ikke gjentas",
|
||||
"repeated": "gjentok",
|
||||
"show_new": "Vis nye",
|
||||
"up_to_date": "Oppdatert"
|
||||
},
|
||||
"user_card": {
|
||||
"approve": "Godkjenn",
|
||||
"block": "Blokker",
|
||||
"blocked": "Blokkert!",
|
||||
"deny": "Avslå",
|
||||
"follow": "Følg",
|
||||
"followees": "Følger",
|
||||
"followers": "Følgere",
|
||||
"following": "Følger!",
|
||||
"follows_you": "Følger deg!",
|
||||
"mute": "Demp",
|
||||
"muted": "Dempet",
|
||||
"per_day": "per dag",
|
||||
"remote_follow": "Følg eksternt",
|
||||
"statuses": "Statuser"
|
||||
},
|
||||
"user_profile": {
|
||||
"timeline_title": "Bruker-tidslinje"
|
||||
},
|
||||
"who_to_follow": {
|
||||
"more": "Mer",
|
||||
"who_to_follow": "Hvem å følge"
|
||||
}
|
||||
}
|
134
src/i18n/oc.json
Normal file
134
src/i18n/oc.json
Normal file
|
@ -0,0 +1,134 @@
|
|||
{
|
||||
"chat": {
|
||||
"title": "Messatjariá"
|
||||
},
|
||||
"finder": {
|
||||
"error_fetching_user": "Error pendent la recèrca d’un utilizaire",
|
||||
"find_user": "Cercar un utilizaire"
|
||||
},
|
||||
"general": {
|
||||
"apply": "Aplicar",
|
||||
"submit": "Mandar"
|
||||
},
|
||||
"login": {
|
||||
"login": "Connexion",
|
||||
"logout": "Desconnexion",
|
||||
"password": "Senhal",
|
||||
"placeholder": "e.g. lain",
|
||||
"register": "Se marcar",
|
||||
"username": "Nom d’utilizaire"
|
||||
},
|
||||
"nav": {
|
||||
"chat": "Chat local",
|
||||
"mentions": "Notificacions",
|
||||
"public_tl": "Estatuts locals",
|
||||
"timeline": "Flux d’actualitat",
|
||||
"twkn": "Lo malhum conegut"
|
||||
},
|
||||
"notifications": {
|
||||
"favorited_you": "a aimat vòstre estatut",
|
||||
"followed_you": "vos a seguit",
|
||||
"notifications": "Notficacions",
|
||||
"read": "Legit!",
|
||||
"repeated_you": "a repetit your vòstre estatut"
|
||||
},
|
||||
"post_status": {
|
||||
"content_warning": "Avís de contengut (opcional)",
|
||||
"default": "Escrivètz aquí vòstre estatut.",
|
||||
"posting": "Mandadís"
|
||||
},
|
||||
"registration": {
|
||||
"bio": "Biografia",
|
||||
"email": "Adreça de corrièl",
|
||||
"fullname": "Nom complèt",
|
||||
"password_confirm": "Confirmar lo senhal",
|
||||
"registration": "Inscripcion"
|
||||
},
|
||||
"settings": {
|
||||
"attachmentRadius": "Pèças juntas",
|
||||
"attachments": "Pèças juntas",
|
||||
"autoload": "Activar lo cargament automatic un còp arribat al cap de la pagina",
|
||||
"avatar": "Avatar",
|
||||
"avatarAltRadius": "Avatars (Notificacions)",
|
||||
"avatarRadius": "Avatars",
|
||||
"background": "Rèire plan",
|
||||
"bio": "Biografia",
|
||||
"btnRadius": "Botons",
|
||||
"cBlue": "Blau (Respondre, seguir)",
|
||||
"cGreen": "Verd (Repartajar)",
|
||||
"cOrange": "Irange (Aimar)",
|
||||
"cRed": "Roge (Anullar)",
|
||||
"change_password": "Cambiar lo senhal",
|
||||
"change_password_error": "Una error s’es producha en cambiant lo senhal.",
|
||||
"changed_password": "Senhal corrèctament cambiat",
|
||||
"confirm_new_password": "Confirmatz lo nòu senhal",
|
||||
"current_avatar": "Vòstre avatar actual",
|
||||
"current_password": "Senhal actual",
|
||||
"current_profile_banner": "Bandièra actuala del perfil",
|
||||
"delete_account": "Suprimir lo compte",
|
||||
"delete_account_description": "Suprimir vòstre compte e los messatges per sempre.",
|
||||
"delete_account_error": "Una error s’es producha en suprimir lo compte. S’aquò ten d’arribar mercés de contactar vòstre administrador d’instància.",
|
||||
"delete_account_instructions": "Picatz vòstre senhal dins lo camp tèxte çai-jos per confirmar la supression del compte.",
|
||||
"filtering": "Filtre",
|
||||
"filtering_explanation": "Totes los estatuts amb aqueles mots seràn en silenci, un mot per linha.",
|
||||
"follow_export": "Exportar los abonaments",
|
||||
"follow_export_button": "Exportar vòstres abonaments dins un fichièr csv",
|
||||
"follow_export_processing": "Tractament, vos demandarem lèu de telecargar lo fichièr",
|
||||
"follow_import": "Importar los abonaments",
|
||||
"follow_import_error": "Error en important los seguidors",
|
||||
"follows_imported": "Seguidors importats. Lo tractament pòt trigar una estona.",
|
||||
"foreground": "Endavant",
|
||||
"hide_attachments_in_convo": "Rescondre las pèças juntas dins las conversacions",
|
||||
"hide_attachments_in_tl": "Rescondre las pèças juntas",
|
||||
"import_followers_from_a_csv_file": "Importar los seguidors d’un fichièr csv",
|
||||
"inputRadius": "Camps tèxte",
|
||||
"links": "Ligams",
|
||||
"name": "Nom",
|
||||
"name_bio": "Nom & Bio",
|
||||
"new_password": "Nòu senhal",
|
||||
"nsfw_clickthrough": "Activar lo clic per mostrar los imatges marcats coma pels adults o sensibles",
|
||||
"panelRadius": "Panèls",
|
||||
"presets": "Pre-enregistrats",
|
||||
"profile_background": "Imatge de fons",
|
||||
"profile_banner": "Bandièra del perfil",
|
||||
"radii_help": "Configurar los caires arredondits de l’interfàcia (en pixèls)",
|
||||
"reply_link_preview": "Activar l’apercebut en passar la mirga",
|
||||
"set_new_avatar": "Cambiar l’avatar",
|
||||
"set_new_profile_background": "Cambiar l’imatge de fons",
|
||||
"set_new_profile_banner": "Cambiar de bandièra",
|
||||
"settings": "Paramètres",
|
||||
"stop_gifs": "Lançar los GIFs al subrevòl",
|
||||
"streaming": "Activar lo cargament automatic dels novèls estatus en anar amont",
|
||||
"text": "Tèxte",
|
||||
"theme": "Tèma",
|
||||
"theme_help": "Emplegatz los còdis de color hex (#rrggbb) per personalizar vòstre tèma de color.",
|
||||
"tooltipRadius": "Astúcias/Alèrta",
|
||||
"user_settings": "Paramètres utilizaire"
|
||||
},
|
||||
"timeline": {
|
||||
"collapse": "Tampar",
|
||||
"conversation": "Conversacion",
|
||||
"error_fetching": "Error en cercant de mesas a jorn",
|
||||
"load_older": "Ne veire mai",
|
||||
"repeated": "repetit",
|
||||
"show_new": "Ne veire mai",
|
||||
"up_to_date": "A jorn"
|
||||
},
|
||||
"user_card": {
|
||||
"block": "Blocar",
|
||||
"blocked": "Blocat",
|
||||
"follow": "Seguir",
|
||||
"followees": "Abonaments",
|
||||
"followers": "Seguidors",
|
||||
"following": "Seguit!",
|
||||
"follows_you": "Vos sèc!",
|
||||
"mute": "Amagar",
|
||||
"muted": "Amagat",
|
||||
"per_day": "per jorn",
|
||||
"remote_follow": "Seguir a distància",
|
||||
"statuses": "Estatuts"
|
||||
},
|
||||
"user_profile": {
|
||||
"timeline_title": "Flux utilizaire"
|
||||
}
|
||||
}
|
133
src/i18n/pl.json
Normal file
133
src/i18n/pl.json
Normal file
|
@ -0,0 +1,133 @@
|
|||
{
|
||||
"chat": {
|
||||
"title": "Czat"
|
||||
},
|
||||
"finder": {
|
||||
"error_fetching_user": "Błąd przy pobieraniu profilu",
|
||||
"find_user": "Znajdź użytkownika"
|
||||
},
|
||||
"general": {
|
||||
"apply": "Zastosuj",
|
||||
"submit": "Wyślij"
|
||||
},
|
||||
"login": {
|
||||
"login": "Zaloguj",
|
||||
"logout": "Wyloguj",
|
||||
"password": "Hasło",
|
||||
"placeholder": "n.p. lain",
|
||||
"register": "Zarejestruj",
|
||||
"username": "Użytkownik"
|
||||
},
|
||||
"nav": {
|
||||
"chat": "Lokalny czat",
|
||||
"mentions": "Wzmianki",
|
||||
"public_tl": "Publiczna oś czasu",
|
||||
"timeline": "Oś czasu",
|
||||
"twkn": "Cała znana sieć"
|
||||
},
|
||||
"notifications": {
|
||||
"favorited_you": "dodał twój status do ulubionych",
|
||||
"followed_you": "obserwuje cię",
|
||||
"notifications": "Powiadomienia",
|
||||
"read": "Przeczytane!",
|
||||
"repeated_you": "powtórzył twój status"
|
||||
},
|
||||
"post_status": {
|
||||
"default": "Właśnie wróciłem z kościoła",
|
||||
"posting": "Wysyłanie"
|
||||
},
|
||||
"registration": {
|
||||
"bio": "Bio",
|
||||
"email": "Email",
|
||||
"fullname": "Wyświetlana nazwa profilu",
|
||||
"password_confirm": "Potwierdzenie hasła",
|
||||
"registration": "Rejestracja"
|
||||
},
|
||||
"settings": {
|
||||
"attachmentRadius": "Załączniki",
|
||||
"attachments": "Załączniki",
|
||||
"autoload": "Włącz automatyczne ładowanie po przewinięciu do końca strony",
|
||||
"avatar": "Awatar",
|
||||
"avatarAltRadius": "Awatary (powiadomienia)",
|
||||
"avatarRadius": "Awatary",
|
||||
"background": "Tło",
|
||||
"bio": "Bio",
|
||||
"btnRadius": "Przyciski",
|
||||
"cBlue": "Niebieski (odpowiedz, obserwuj)",
|
||||
"cGreen": "Zielony (powtórzenia)",
|
||||
"cOrange": "Pomarańczowy (ulubione)",
|
||||
"cRed": "Czerwony (anuluj)",
|
||||
"change_password": "Zmień hasło",
|
||||
"change_password_error": "Podczas zmiany hasła wystąpił problem.",
|
||||
"changed_password": "Hasło zmienione poprawnie!",
|
||||
"confirm_new_password": "Potwierdź nowe hasło",
|
||||
"current_avatar": "Twój obecny awatar",
|
||||
"current_password": "Obecne hasło",
|
||||
"current_profile_banner": "Twój obecny banner profilu",
|
||||
"delete_account": "Usuń konto",
|
||||
"delete_account_description": "Trwale usuń konto i wszystkie posty.",
|
||||
"delete_account_error": "Wystąpił problem z usuwaniem twojego konta. Jeżeli problem powtarza się, poinformuj administratora swojej instancji.",
|
||||
"delete_account_instructions": "Wprowadź swoje hasło w poniższe pole aby potwierdzić usunięcie konta.",
|
||||
"filtering": "Filtrowanie",
|
||||
"filtering_explanation": "Wszystkie statusy zawierające te słowa będą wyciszone. Jedno słowo na linijkę.",
|
||||
"follow_export": "Eksport obserwowanych",
|
||||
"follow_export_button": "Eksportuj swoją listę obserwowanych do pliku CSV",
|
||||
"follow_export_processing": "Przetwarzanie, wkrótce twój plik zacznie się ściągać.",
|
||||
"follow_import": "Import obserwowanych",
|
||||
"follow_import_error": "Błąd przy importowaniu obserwowanych",
|
||||
"follows_imported": "Obserwowani zaimportowani! Przetwarzanie może trochę potrwać.",
|
||||
"foreground": "Pierwszy plan",
|
||||
"hide_attachments_in_convo": "Ukryj załączniki w rozmowach",
|
||||
"hide_attachments_in_tl": "Ukryj załączniki w osi czasu",
|
||||
"import_followers_from_a_csv_file": "Importuj obserwowanych z pliku CSV",
|
||||
"inputRadius": "Pola tekstowe",
|
||||
"links": "Łącza",
|
||||
"name": "Imię",
|
||||
"name_bio": "Imię i bio",
|
||||
"new_password": "Nowe hasło",
|
||||
"nsfw_clickthrough": "Włącz domyślne ukrywanie załączników o treści nieprzyzwoitej (NSFW)",
|
||||
"panelRadius": "Panele",
|
||||
"presets": "Gotowe motywy",
|
||||
"profile_background": "Tło profilu",
|
||||
"profile_banner": "Banner profilu",
|
||||
"radii_help": "Ustaw zaokrąglenie krawędzi interfejsu (w pikselach)",
|
||||
"reply_link_preview": "Włącz dymek z podglądem postu po najechaniu na znak odpowiedzi",
|
||||
"set_new_avatar": "Ustaw nowy awatar",
|
||||
"set_new_profile_background": "Ustaw nowe tło profilu",
|
||||
"set_new_profile_banner": "Ustaw nowy banner profilu",
|
||||
"settings": "Ustawienia",
|
||||
"stop_gifs": "Odtwarzaj GIFy po najechaniu kursorem",
|
||||
"streaming": "Włącz automatycznie strumieniowanie nowych postów gdy na początku strony",
|
||||
"text": "Tekst",
|
||||
"theme": "Motyw",
|
||||
"theme_help": "Użyj kolorów w notacji szesnastkowej (#rrggbb), by stworzyć swój motyw.",
|
||||
"tooltipRadius": "Etykiety/alerty",
|
||||
"user_settings": "Ustawienia użytkownika"
|
||||
},
|
||||
"timeline": {
|
||||
"collapse": "Zwiń",
|
||||
"conversation": "Rozmowa",
|
||||
"error_fetching": "Błąd pobierania",
|
||||
"load_older": "Załaduj starsze statusy",
|
||||
"repeated": "powtórzono",
|
||||
"show_new": "Pokaż nowe",
|
||||
"up_to_date": "Na bieżąco"
|
||||
},
|
||||
"user_card": {
|
||||
"block": "Zablokuj",
|
||||
"blocked": "Zablokowany!",
|
||||
"follow": "Obserwuj",
|
||||
"followees": "Obserwowani",
|
||||
"followers": "Obserwujący",
|
||||
"following": "Obserwowany!",
|
||||
"follows_you": "Obserwuje cię!",
|
||||
"mute": "Wycisz",
|
||||
"muted": "Wyciszony",
|
||||
"per_day": "dziennie",
|
||||
"remote_follow": "Zdalna obserwacja",
|
||||
"statuses": "Statusy"
|
||||
},
|
||||
"user_profile": {
|
||||
"timeline_title": "Oś czasu użytkownika"
|
||||
}
|
||||
}
|
117
src/i18n/pt.json
Normal file
117
src/i18n/pt.json
Normal file
|
@ -0,0 +1,117 @@
|
|||
{
|
||||
"chat": {
|
||||
"title": "Chat"
|
||||
},
|
||||
"finder": {
|
||||
"error_fetching_user": "Erro procurando usuário",
|
||||
"find_user": "Buscar usuário"
|
||||
},
|
||||
"general": {
|
||||
"apply": "Aplicar",
|
||||
"submit": "Enviar"
|
||||
},
|
||||
"login": {
|
||||
"login": "Entrar",
|
||||
"logout": "Sair",
|
||||
"password": "Senha",
|
||||
"placeholder": "p.e. lain",
|
||||
"register": "Registrar",
|
||||
"username": "Usuário"
|
||||
},
|
||||
"nav": {
|
||||
"chat": "Chat local",
|
||||
"mentions": "Menções",
|
||||
"public_tl": "Linha do tempo pública",
|
||||
"timeline": "Linha do tempo",
|
||||
"twkn": "Toda a rede conhecida"
|
||||
},
|
||||
"notifications": {
|
||||
"favorited_you": "favoritou sua postagem",
|
||||
"followed_you": "seguiu você",
|
||||
"notifications": "Notificações",
|
||||
"read": "Lido!",
|
||||
"repeated_you": "repetiu sua postagem"
|
||||
},
|
||||
"post_status": {
|
||||
"default": "Acabei de chegar no Rio!",
|
||||
"posting": "Publicando"
|
||||
},
|
||||
"registration": {
|
||||
"bio": "Biografia",
|
||||
"email": "Correio eletrônico",
|
||||
"fullname": "Nome para exibição",
|
||||
"password_confirm": "Confirmação de senha",
|
||||
"registration": "Registro"
|
||||
},
|
||||
"settings": {
|
||||
"attachmentRadius": "Anexos",
|
||||
"attachments": "Anexos",
|
||||
"autoload": "Habilitar carregamento automático quando a rolagem chegar ao fim.",
|
||||
"avatar": "Avatar",
|
||||
"avatarAltRadius": "Avatares (Notificações)",
|
||||
"avatarRadius": "Avatares",
|
||||
"background": "Plano de Fundo",
|
||||
"bio": "Biografia",
|
||||
"btnRadius": "Botões",
|
||||
"cBlue": "Azul (Responder, seguir)",
|
||||
"cGreen": "Verde (Repetir)",
|
||||
"cOrange": "Laranja (Favoritar)",
|
||||
"cRed": "Vermelho (Cancelar)",
|
||||
"current_avatar": "Seu avatar atual",
|
||||
"current_profile_banner": "Sua capa de perfil atual",
|
||||
"filtering": "Filtragem",
|
||||
"filtering_explanation": "Todas as postagens contendo estas palavras serão silenciadas, uma por linha.",
|
||||
"follow_import": "Importar seguidas",
|
||||
"follow_import_error": "Erro ao importar seguidores",
|
||||
"follows_imported": "Seguidores importados! O processamento pode demorar um pouco.",
|
||||
"foreground": "Primeiro Plano",
|
||||
"hide_attachments_in_convo": "Ocultar anexos em conversas",
|
||||
"hide_attachments_in_tl": "Ocultar anexos na linha do tempo.",
|
||||
"import_followers_from_a_csv_file": "Importe seguidores a partir de um arquivo CSV",
|
||||
"links": "Links",
|
||||
"name": "Nome",
|
||||
"name_bio": "Nome & Biografia",
|
||||
"nsfw_clickthrough": "Habilitar clique para ocultar anexos NSFW",
|
||||
"panelRadius": "Paineis",
|
||||
"presets": "Predefinições",
|
||||
"profile_background": "Plano de fundo de perfil",
|
||||
"profile_banner": "Capa de perfil",
|
||||
"radii_help": "Arredondar arestas da interface (em píxeis)",
|
||||
"reply_link_preview": "Habilitar a pré-visualização de link de respostas ao passar o mouse.",
|
||||
"set_new_avatar": "Alterar avatar",
|
||||
"set_new_profile_background": "Alterar o plano de fundo de perfil",
|
||||
"set_new_profile_banner": "Alterar capa de perfil",
|
||||
"settings": "Configurações",
|
||||
"stop_gifs": "Reproduzir GIFs ao passar o cursor em cima",
|
||||
"streaming": "Habilitar o fluxo automático de postagens quando ao topo da página",
|
||||
"text": "Texto",
|
||||
"theme": "Tema",
|
||||
"theme_help": "Use cores em código hexadecimal (#rrggbb) para personalizar seu esquema de cores.",
|
||||
"tooltipRadius": "Dicass/alertas",
|
||||
"user_settings": "Configurações de Usuário"
|
||||
},
|
||||
"timeline": {
|
||||
"conversation": "Conversa",
|
||||
"error_fetching": "Erro buscando atualizações",
|
||||
"load_older": "Carregar postagens antigas",
|
||||
"show_new": "Mostrar novas",
|
||||
"up_to_date": "Atualizado"
|
||||
},
|
||||
"user_card": {
|
||||
"block": "Bloquear",
|
||||
"blocked": "Bloqueado!",
|
||||
"follow": "Seguir",
|
||||
"followees": "Seguindo",
|
||||
"followers": "Seguidores",
|
||||
"following": "Seguindo!",
|
||||
"follows_you": "Segue você!",
|
||||
"mute": "Silenciar",
|
||||
"muted": "Silenciado",
|
||||
"per_day": "por dia",
|
||||
"remote_follow": "Seguidor Remoto",
|
||||
"statuses": "Postagens"
|
||||
},
|
||||
"user_profile": {
|
||||
"timeline_title": "Linha do tempo do usuário"
|
||||
}
|
||||
}
|
83
src/i18n/ro.json
Normal file
83
src/i18n/ro.json
Normal file
|
@ -0,0 +1,83 @@
|
|||
{
|
||||
"finder": {
|
||||
"error_fetching_user": "Eroare la preluarea utilizatorului",
|
||||
"find_user": "Găsește utilizator"
|
||||
},
|
||||
"general": {
|
||||
"submit": "trimite"
|
||||
},
|
||||
"login": {
|
||||
"login": "Loghează",
|
||||
"logout": "Deloghează",
|
||||
"password": "Parolă",
|
||||
"placeholder": "d.e. lain",
|
||||
"register": "Înregistrare",
|
||||
"username": "Nume utilizator"
|
||||
},
|
||||
"nav": {
|
||||
"mentions": "Menționări",
|
||||
"public_tl": "Cronologie Publică",
|
||||
"timeline": "Cronologie",
|
||||
"twkn": "Toată Reșeaua Cunoscută"
|
||||
},
|
||||
"notifications": {
|
||||
"followed_you": "te-a urmărit",
|
||||
"notifications": "Notificări",
|
||||
"read": "Citit!"
|
||||
},
|
||||
"post_status": {
|
||||
"default": "Nu de mult am aterizat în L.A.",
|
||||
"posting": "Postează"
|
||||
},
|
||||
"registration": {
|
||||
"bio": "Bio",
|
||||
"email": "Email",
|
||||
"fullname": "Numele întreg",
|
||||
"password_confirm": "Cofirmă parola",
|
||||
"registration": "Îregistrare"
|
||||
},
|
||||
"settings": {
|
||||
"attachments": "Atașamente",
|
||||
"autoload": "Permite încărcarea automată când scrolat la capăt",
|
||||
"avatar": "Avatar",
|
||||
"bio": "Bio",
|
||||
"current_avatar": "Avatarul curent",
|
||||
"current_profile_banner": "Bannerul curent al profilului",
|
||||
"filtering": "Filtru",
|
||||
"filtering_explanation": "Toate stările care conțin aceste cuvinte vor fi puse pe mut, una pe linie",
|
||||
"hide_attachments_in_convo": "Ascunde atașamentele în conversații",
|
||||
"hide_attachments_in_tl": "Ascunde atașamentele în cronologie",
|
||||
"name": "Nume",
|
||||
"name_bio": "Nume și Bio",
|
||||
"nsfw_clickthrough": "Permite ascunderea al atașamentelor NSFW",
|
||||
"profile_background": "Fundalul de profil",
|
||||
"profile_banner": "Banner de profil",
|
||||
"reply_link_preview": "Permite previzualizarea linkului de răspuns la planarea de mouse",
|
||||
"set_new_avatar": "Setează avatar nou",
|
||||
"set_new_profile_background": "Setează fundal nou",
|
||||
"set_new_profile_banner": "Setează banner nou la profil",
|
||||
"settings": "Setări",
|
||||
"theme": "Temă",
|
||||
"user_settings": "Setările utilizatorului"
|
||||
},
|
||||
"timeline": {
|
||||
"conversation": "Conversație",
|
||||
"error_fetching": "Erare la preluarea actualizărilor",
|
||||
"load_older": "Încarcă stări mai vechi",
|
||||
"show_new": "Arată cele noi",
|
||||
"up_to_date": "La zi"
|
||||
},
|
||||
"user_card": {
|
||||
"block": "Blochează",
|
||||
"blocked": "Blocat!",
|
||||
"follow": "Urmărește",
|
||||
"followees": "Urmărește",
|
||||
"followers": "Următori",
|
||||
"following": "Urmărit!",
|
||||
"follows_you": "Te urmărește!",
|
||||
"mute": "Pune pe mut",
|
||||
"muted": "Pus pe mut",
|
||||
"per_day": "pe zi",
|
||||
"statuses": "Stări"
|
||||
}
|
||||
}
|
171
src/i18n/ru.json
Normal file
171
src/i18n/ru.json
Normal file
|
@ -0,0 +1,171 @@
|
|||
{
|
||||
"chat": {
|
||||
"title": "Чат"
|
||||
},
|
||||
"finder": {
|
||||
"error_fetching_user": "Пользователь не найден",
|
||||
"find_user": "Найти пользователя"
|
||||
},
|
||||
"general": {
|
||||
"apply": "Применить",
|
||||
"submit": "Отправить"
|
||||
},
|
||||
"login": {
|
||||
"login": "Войти",
|
||||
"logout": "Выйти",
|
||||
"password": "Пароль",
|
||||
"placeholder": "e.c. lain",
|
||||
"register": "Зарегистрироваться",
|
||||
"username": "Имя пользователя"
|
||||
},
|
||||
"nav": {
|
||||
"chat": "Локальный чат",
|
||||
"mentions": "Упоминания",
|
||||
"public_tl": "Публичная лента",
|
||||
"timeline": "Лента",
|
||||
"twkn": "Федеративная лента"
|
||||
},
|
||||
"notifications": {
|
||||
"broken_favorite": "Неизвестный статус, ищем...",
|
||||
"favorited_you": "нравится ваш статус",
|
||||
"followed_you": "начал(а) читать вас",
|
||||
"load_older": "Загрузить старые уведомления",
|
||||
"notifications": "Уведомления",
|
||||
"read": "Прочесть",
|
||||
"repeated_you": "повторил(а) ваш статус"
|
||||
},
|
||||
"post_status": {
|
||||
"account_not_locked_warning": "Ваш аккаунт не {0}. Кто угодно может зафоловить вас чтобы прочитать посты только для подписчиков",
|
||||
"account_not_locked_warning_link": "залочен",
|
||||
"attachments_sensitive": "Вложения содержат чувствительный контент",
|
||||
"content_warning": "Тема (не обязательно)",
|
||||
"default": "Что нового?",
|
||||
"direct_warning": "Этот пост будет видет только упомянутым пользователям",
|
||||
"posting": "Отправляется",
|
||||
"scope": {
|
||||
"direct": "Личное - этот пост видят только те кто в нём упомянут",
|
||||
"private": "Для подписчиков - этот пост видят только подписчики",
|
||||
"public": "Публичный - этот пост виден всем",
|
||||
"unlisted": "Непубличный - этот пост не виден на публичных лентах"
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"bio": "Описание",
|
||||
"email": "Email",
|
||||
"fullname": "Отображаемое имя",
|
||||
"password_confirm": "Подтверждение пароля",
|
||||
"registration": "Регистрация",
|
||||
"token": "Код приглашения"
|
||||
},
|
||||
"settings": {
|
||||
"attachmentRadius": "Прикреплённые файлы",
|
||||
"attachments": "Вложения",
|
||||
"autoload": "Включить автоматическую загрузку при прокрутке вниз",
|
||||
"avatar": "Аватар",
|
||||
"avatarAltRadius": "Аватары в уведомлениях",
|
||||
"avatarRadius": "Аватары",
|
||||
"background": "Фон",
|
||||
"bio": "Описание",
|
||||
"btnRadius": "Кнопки",
|
||||
"cBlue": "Ответить, читать",
|
||||
"cGreen": "Повторить",
|
||||
"cOrange": "Нравится",
|
||||
"cRed": "Отменить",
|
||||
"change_password": "Сменить пароль",
|
||||
"change_password_error": "Произошла ошибка при попытке изменить пароль.",
|
||||
"changed_password": "Пароль изменён успешно.",
|
||||
"collapse_subject": "Сворачивать посты с темой",
|
||||
"confirm_new_password": "Подтверждение нового пароля",
|
||||
"current_avatar": "Текущий аватар",
|
||||
"current_password": "Текущий пароль",
|
||||
"current_profile_banner": "Текущий баннер профиля",
|
||||
"data_import_export_tab": "Импорт / Экспорт данных",
|
||||
"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": "Прятать вложения в ленте",
|
||||
"import_followers_from_a_csv_file": "Импортировать читаемых из файла .csv",
|
||||
"import_theme": "Загрузить Тему",
|
||||
"inputRadius": "Поля ввода",
|
||||
"interfaceLanguage": "Язык интерфейса",
|
||||
"limited_availability": "Не доступно в вашем браузере",
|
||||
"links": "Ссылки",
|
||||
"lock_account_description": "Аккаунт доступен только подтверждённым подписчикам",
|
||||
"loop_video": "Зациливать видео",
|
||||
"loop_video_silent_only": "Зацикливать только беззвучные видео (т.е. \"гифки\" с Mastodon)",
|
||||
"name": "Имя",
|
||||
"name_bio": "Имя и описание",
|
||||
"new_password": "Новый пароль",
|
||||
"notification_visibility": "Показывать уведомления",
|
||||
"notification_visibility_follows": "Подписки",
|
||||
"notification_visibility_likes": "Лайки",
|
||||
"notification_visibility_mentions": "Упоминания",
|
||||
"notification_visibility_repeats": "Повторы",
|
||||
"no_rich_text_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": "Показывать только ответы мне",
|
||||
"security_tab": "Безопасность",
|
||||
"set_new_avatar": "Загрузить новый аватар",
|
||||
"set_new_profile_background": "Загрузить новый фон профиля",
|
||||
"set_new_profile_banner": "Загрузить новый баннер профиля",
|
||||
"settings": "Настройки",
|
||||
"stop_gifs": "Проигрывать GIF анимации только при наведении",
|
||||
"streaming": "Включить автоматическую загрузку новых сообщений при прокрутке вверх",
|
||||
"text": "Текст",
|
||||
"theme": "Тема",
|
||||
"theme_help": "Используйте шестнадцатеричные коды цветов (#rrggbb) для настройки темы.",
|
||||
"tooltipRadius": "Всплывающие подсказки/уведомления",
|
||||
"user_settings": "Настройки пользователя"
|
||||
},
|
||||
"timeline": {
|
||||
"collapse": "Свернуть",
|
||||
"conversation": "Разговор",
|
||||
"error_fetching": "Ошибка при обновлении",
|
||||
"load_older": "Загрузить старые статусы",
|
||||
"no_retweet_hint": "Пост помечен как \"только для подписчиков\" или \"личное\" и поэтому не может быть повторён",
|
||||
"repeated": "повторил(а)",
|
||||
"show_new": "Показать новые",
|
||||
"up_to_date": "Обновлено"
|
||||
},
|
||||
"user_card": {
|
||||
"block": "Заблокировать",
|
||||
"blocked": "Заблокирован",
|
||||
"follow": "Читать",
|
||||
"followees": "Читаемые",
|
||||
"followers": "Читатели",
|
||||
"following": "Читаю",
|
||||
"follows_you": "Читает вас",
|
||||
"mute": "Игнорировать",
|
||||
"muted": "Игнорирую",
|
||||
"per_day": "в день",
|
||||
"remote_follow": "Читать удалённо",
|
||||
"statuses": "Статусы"
|
||||
},
|
||||
"user_profile": {
|
||||
"timeline_title": "Лента пользователя"
|
||||
}
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
import merge from 'lodash.merge'
|
||||
import objectPath from 'object-path'
|
||||
import localforage from 'localforage'
|
||||
import { throttle, each } from 'lodash'
|
||||
import { each } from 'lodash'
|
||||
|
||||
let loaded = false
|
||||
|
||||
|
@ -12,18 +12,18 @@ const defaultReducer = (state, paths) => (
|
|||
}, {})
|
||||
)
|
||||
|
||||
const saveImmedeatelyActions = [
|
||||
'markNotificationsAsSeen',
|
||||
'clearCurrentUser',
|
||||
'setCurrentUser',
|
||||
'setHighlight',
|
||||
'setOption'
|
||||
]
|
||||
|
||||
const defaultStorage = (() => {
|
||||
return localforage
|
||||
})()
|
||||
|
||||
const defaultSetState = (key, state, storage) => {
|
||||
if (!loaded) {
|
||||
console.log('waiting for old state to be loaded...')
|
||||
} else {
|
||||
return storage.setItem(key, state)
|
||||
}
|
||||
}
|
||||
|
||||
export default function createPersistedState ({
|
||||
key = 'vuex-lz',
|
||||
paths = [],
|
||||
|
@ -31,7 +31,14 @@ export default function createPersistedState ({
|
|||
let value = storage.getItem(key)
|
||||
return value
|
||||
},
|
||||
setState = throttle(defaultSetState, 60000),
|
||||
setState = (key, state, storage) => {
|
||||
if (!loaded) {
|
||||
console.log('waiting for old state to be loaded...')
|
||||
return Promise.resolve()
|
||||
} else {
|
||||
return storage.setItem(key, state)
|
||||
}
|
||||
},
|
||||
reducer = defaultReducer,
|
||||
storage = defaultStorage,
|
||||
subscriber = store => handler => store.subscribe(handler)
|
||||
|
@ -72,7 +79,20 @@ export default function createPersistedState ({
|
|||
|
||||
subscriber(store)((mutation, state) => {
|
||||
try {
|
||||
setState(key, reducer(state, paths), storage)
|
||||
if (saveImmedeatelyActions.includes(mutation.type)) {
|
||||
setState(key, reducer(state, paths), storage)
|
||||
.then(success => {
|
||||
if (typeof success !== 'undefined') {
|
||||
if (mutation.type === 'setOption') {
|
||||
store.dispatch('settingsSaved', { success })
|
||||
}
|
||||
}
|
||||
}, error => {
|
||||
if (mutation.type === 'setOption') {
|
||||
store.dispatch('settingsSaved', { error })
|
||||
}
|
||||
})
|
||||
}
|
||||
} catch (e) {
|
||||
console.log("Couldn't persist state:")
|
||||
console.log(e)
|
||||
|
|
211
src/main.js
211
src/main.js
|
@ -14,6 +14,8 @@ import Registration from './components/registration/registration.vue'
|
|||
import UserSettings from './components/user_settings/user_settings.vue'
|
||||
import FollowRequests from './components/follow_requests/follow_requests.vue'
|
||||
|
||||
import interfaceModule from './modules/interface.js'
|
||||
import instanceModule from './modules/instance.js'
|
||||
import statusesModule from './modules/statuses.js'
|
||||
import usersModule from './modules/users.js'
|
||||
import apiModule from './modules/api.js'
|
||||
|
@ -45,25 +47,7 @@ Vue.use(VueChatScroll)
|
|||
|
||||
const persistedStateOptions = {
|
||||
paths: [
|
||||
'config.collapseMessageWithSubject',
|
||||
'config.hideAttachments',
|
||||
'config.hideAttachmentsInConv',
|
||||
'config.hidePostStats',
|
||||
'config.hideUserStats',
|
||||
'config.hideNsfw',
|
||||
'config.replyVisibility',
|
||||
'config.notificationVisibility',
|
||||
'config.autoLoad',
|
||||
'config.hoverPreview',
|
||||
'config.streaming',
|
||||
'config.muteWords',
|
||||
'config.customTheme',
|
||||
'config.highlight',
|
||||
'config.loopVideo',
|
||||
'config.loopVideoSilentOnly',
|
||||
'config.pauseOnUnfocused',
|
||||
'config.stopGifs',
|
||||
'config.interfaceLanguage',
|
||||
'config',
|
||||
'users.lastLoginName',
|
||||
'statuses.notifications.maxSavedId'
|
||||
]
|
||||
|
@ -71,6 +55,8 @@ const persistedStateOptions = {
|
|||
|
||||
const store = new Vuex.Store({
|
||||
modules: {
|
||||
interface: interfaceModule,
|
||||
instance: instanceModule,
|
||||
statuses: statusesModule,
|
||||
users: usersModule,
|
||||
api: apiModule,
|
||||
|
@ -94,102 +80,104 @@ window.fetch('/api/statusnet/config.json')
|
|||
.then((data) => {
|
||||
const {name, closed: registrationClosed, textlimit, server} = data.site
|
||||
|
||||
store.dispatch('setOption', { name: 'name', value: name })
|
||||
store.dispatch('setOption', { name: 'registrationOpen', value: (registrationClosed === '0') })
|
||||
store.dispatch('setOption', { name: 'textlimit', value: parseInt(textlimit) })
|
||||
store.dispatch('setOption', { name: 'server', value: server })
|
||||
store.dispatch('setInstanceOption', { name: 'name', value: name })
|
||||
store.dispatch('setInstanceOption', { name: 'registrationOpen', value: (registrationClosed === '0') })
|
||||
store.dispatch('setInstanceOption', { name: 'textlimit', value: parseInt(textlimit) })
|
||||
store.dispatch('setInstanceOption', { name: 'server', value: server })
|
||||
|
||||
var apiConfig = data.site.pleromafe
|
||||
|
||||
window.fetch('/static/config.json')
|
||||
.then((res) => res.json())
|
||||
.then((data) => {
|
||||
var staticConfig = data
|
||||
// This takes static config and overrides properties that are present in apiConfig
|
||||
var config = Object.assign({}, staticConfig, apiConfig)
|
||||
.then((res) => res.json())
|
||||
.catch((err) => {
|
||||
console.warn('Failed to load static/config.json, continuing without it.')
|
||||
console.warn(err)
|
||||
return {}
|
||||
})
|
||||
.then((staticConfig) => {
|
||||
// This takes static config and overrides properties that are present in apiConfig
|
||||
var config = Object.assign({}, staticConfig, apiConfig)
|
||||
|
||||
var theme = (config.theme)
|
||||
var background = (config.background)
|
||||
var logo = (config.logo)
|
||||
var logoMask = (typeof config.logoMask === 'undefined' ? true : config.logoMask)
|
||||
var logoMargin = (typeof config.logoMargin === 'undefined' ? 0 : config.logoMargin)
|
||||
var redirectRootNoLogin = (config.redirectRootNoLogin)
|
||||
var redirectRootLogin = (config.redirectRootLogin)
|
||||
var chatDisabled = (config.chatDisabled)
|
||||
var showWhoToFollowPanel = (config.showWhoToFollowPanel)
|
||||
var whoToFollowProvider = (config.whoToFollowProvider)
|
||||
var whoToFollowLink = (config.whoToFollowLink)
|
||||
var showInstanceSpecificPanel = (config.showInstanceSpecificPanel)
|
||||
var scopeOptionsEnabled = (config.scopeOptionsEnabled)
|
||||
var formattingOptionsEnabled = (config.formattingOptionsEnabled)
|
||||
var collapseMessageWithSubject = (config.collapseMessageWithSubject)
|
||||
var hidePostStats = (config.hidePostStats)
|
||||
var hideUserStats = (config.hideUserStats)
|
||||
var theme = (config.theme)
|
||||
var background = (config.background)
|
||||
var hidePostStats = (config.hidePostStats)
|
||||
var hideUserStats = (config.hideUserStats)
|
||||
var logo = (config.logo)
|
||||
var logoMask = (typeof config.logoMask === 'undefined' ? true : config.logoMask)
|
||||
var logoMargin = (typeof config.logoMargin === 'undefined' ? 0 : config.logoMargin)
|
||||
var redirectRootNoLogin = (config.redirectRootNoLogin)
|
||||
var redirectRootLogin = (config.redirectRootLogin)
|
||||
var chatDisabled = (config.chatDisabled)
|
||||
var showInstanceSpecificPanel = (config.showInstanceSpecificPanel)
|
||||
var scopeOptionsEnabled = (config.scopeOptionsEnabled)
|
||||
var formattingOptionsEnabled = (config.formattingOptionsEnabled)
|
||||
var collapseMessageWithSubject = (config.collapseMessageWithSubject)
|
||||
|
||||
store.dispatch('setOption', { name: 'theme', value: theme })
|
||||
store.dispatch('setOption', { name: 'background', value: background })
|
||||
store.dispatch('setOption', { name: 'logo', value: logo })
|
||||
store.dispatch('setOption', { name: 'logoMask', value: logoMask })
|
||||
store.dispatch('setOption', { name: 'logoMargin', value: logoMargin })
|
||||
store.dispatch('setOption', { name: 'showWhoToFollowPanel', value: showWhoToFollowPanel })
|
||||
store.dispatch('setOption', { name: 'whoToFollowProvider', value: whoToFollowProvider })
|
||||
store.dispatch('setOption', { name: 'whoToFollowLink', value: whoToFollowLink })
|
||||
store.dispatch('setOption', { name: 'showInstanceSpecificPanel', value: showInstanceSpecificPanel })
|
||||
store.dispatch('setOption', { name: 'scopeOptionsEnabled', value: scopeOptionsEnabled })
|
||||
store.dispatch('setOption', { name: 'formattingOptionsEnabled', value: formattingOptionsEnabled })
|
||||
store.dispatch('setOption', { name: 'collapseMessageWithSubject', value: collapseMessageWithSubject })
|
||||
store.dispatch('setOption', { name: 'hidePostStats', value: hidePostStats })
|
||||
store.dispatch('setOption', { name: 'hideUserStats', value: hideUserStats })
|
||||
if (chatDisabled) {
|
||||
store.dispatch('disableChat')
|
||||
}
|
||||
|
||||
const routes = [
|
||||
{ name: 'root',
|
||||
path: '/',
|
||||
redirect: to => {
|
||||
return (store.state.users.currentUser ? redirectRootLogin : redirectRootNoLogin) || '/main/all'
|
||||
}},
|
||||
{ path: '/main/all', component: PublicAndExternalTimeline },
|
||||
{ path: '/main/public', component: PublicTimeline },
|
||||
{ path: '/main/friends', component: FriendsTimeline },
|
||||
{ path: '/tag/:tag', component: TagTimeline },
|
||||
{ name: 'conversation', path: '/notice/:id', component: ConversationPage, meta: { dontScroll: true } },
|
||||
{ name: 'user-profile', path: '/users/:id', component: UserProfile },
|
||||
{ name: 'mentions', path: '/:username/mentions', component: Mentions },
|
||||
{ name: 'settings', path: '/settings', component: Settings },
|
||||
{ name: 'registration', path: '/registration', component: Registration },
|
||||
{ name: 'registration', path: '/registration/:token', component: Registration },
|
||||
{ name: 'friend-requests', path: '/friend-requests', component: FollowRequests },
|
||||
{ name: 'user-settings', path: '/user-settings', component: UserSettings }
|
||||
]
|
||||
|
||||
const router = new VueRouter({
|
||||
mode: 'history',
|
||||
routes,
|
||||
scrollBehavior: (to, from, savedPosition) => {
|
||||
if (to.matched.some(m => m.meta.dontScroll)) {
|
||||
return false
|
||||
}
|
||||
return savedPosition || { x: 0, y: 0 }
|
||||
store.dispatch('setInstanceOption', { name: 'theme', value: theme })
|
||||
store.dispatch('setInstanceOption', { name: 'background', value: background })
|
||||
store.dispatch('setInstanceOption', { name: 'hidePostStats', value: hidePostStats })
|
||||
store.dispatch('setInstanceOption', { name: 'hideUserStats', value: hideUserStats })
|
||||
store.dispatch('setInstanceOption', { name: 'logo', value: logo })
|
||||
store.dispatch('setInstanceOption', { name: 'logoMask', value: logoMask })
|
||||
store.dispatch('setInstanceOption', { name: 'logoMargin', value: logoMargin })
|
||||
store.dispatch('setInstanceOption', { name: 'redirectRootNoLogin', value: redirectRootNoLogin })
|
||||
store.dispatch('setInstanceOption', { name: 'redirectRootLogin', value: redirectRootLogin })
|
||||
store.dispatch('setInstanceOption', { name: 'showInstanceSpecificPanel', value: showInstanceSpecificPanel })
|
||||
store.dispatch('setInstanceOption', { name: 'scopeOptionsEnabled', value: scopeOptionsEnabled })
|
||||
store.dispatch('setInstanceOption', { name: 'formattingOptionsEnabled', value: formattingOptionsEnabled })
|
||||
store.dispatch('setInstanceOption', { name: 'collapseMessageWithSubject', value: collapseMessageWithSubject })
|
||||
if (chatDisabled) {
|
||||
store.dispatch('disableChat')
|
||||
}
|
||||
})
|
||||
|
||||
/* eslint-disable no-new */
|
||||
new Vue({
|
||||
router,
|
||||
store,
|
||||
i18n,
|
||||
el: '#app',
|
||||
render: h => h(App)
|
||||
const routes = [
|
||||
{ name: 'root',
|
||||
path: '/',
|
||||
redirect: to => {
|
||||
return (store.state.users.currentUser
|
||||
? store.state.instance.redirectRootLogin
|
||||
: store.state.instance.redirectRootNoLogin) || '/main/all'
|
||||
}},
|
||||
{ path: '/main/all', component: PublicAndExternalTimeline },
|
||||
{ path: '/main/public', component: PublicTimeline },
|
||||
{ path: '/main/friends', component: FriendsTimeline },
|
||||
{ path: '/tag/:tag', component: TagTimeline },
|
||||
{ name: 'conversation', path: '/notice/:id', component: ConversationPage, meta: { dontScroll: true } },
|
||||
{ name: 'user-profile', path: '/users/:id', component: UserProfile },
|
||||
{ name: 'mentions', path: '/:username/mentions', component: Mentions },
|
||||
{ name: 'settings', path: '/settings', component: Settings },
|
||||
{ name: 'registration', path: '/registration', component: Registration },
|
||||
{ name: 'registration', path: '/registration/:token', component: Registration },
|
||||
{ name: 'friend-requests', path: '/friend-requests', component: FollowRequests },
|
||||
{ name: 'user-settings', path: '/user-settings', component: UserSettings }
|
||||
]
|
||||
|
||||
const router = new VueRouter({
|
||||
mode: 'history',
|
||||
routes,
|
||||
scrollBehavior: (to, from, savedPosition) => {
|
||||
if (to.matched.some(m => m.meta.dontScroll)) {
|
||||
return false
|
||||
}
|
||||
return savedPosition || { x: 0, y: 0 }
|
||||
}
|
||||
})
|
||||
|
||||
/* eslint-disable no-new */
|
||||
new Vue({
|
||||
router,
|
||||
store,
|
||||
i18n,
|
||||
el: '#app',
|
||||
render: h => h(App)
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
window.fetch('/static/terms-of-service.html')
|
||||
.then((res) => res.text())
|
||||
.then((html) => {
|
||||
store.dispatch('setOption', { name: 'tos', value: html })
|
||||
store.dispatch('setInstanceOption', { name: 'tos', value: html })
|
||||
})
|
||||
|
||||
window.fetch('/api/pleroma/emoji.json')
|
||||
|
@ -200,11 +188,11 @@ window.fetch('/api/pleroma/emoji.json')
|
|||
const emoji = Object.keys(values).map((key) => {
|
||||
return { shortcode: key, image_url: values[key] }
|
||||
})
|
||||
store.dispatch('setOption', { name: 'customEmoji', value: emoji })
|
||||
store.dispatch('setOption', { name: 'pleromaBackend', value: true })
|
||||
store.dispatch('setInstanceOption', { name: 'customEmoji', value: emoji })
|
||||
store.dispatch('setInstanceOption', { name: 'pleromaBackend', value: true })
|
||||
},
|
||||
(failure) => {
|
||||
store.dispatch('setOption', { name: 'pleromaBackend', value: false })
|
||||
store.dispatch('setInstanceOption', { name: 'pleromaBackend', value: false })
|
||||
}
|
||||
),
|
||||
(error) => console.log(error)
|
||||
|
@ -216,19 +204,24 @@ window.fetch('/static/emoji.json')
|
|||
const emoji = Object.keys(values).map((key) => {
|
||||
return { shortcode: key, image_url: false, 'utf': values[key] }
|
||||
})
|
||||
store.dispatch('setOption', { name: 'emoji', value: emoji })
|
||||
store.dispatch('setInstanceOption', { name: 'emoji', value: emoji })
|
||||
})
|
||||
|
||||
window.fetch('/instance/panel.html')
|
||||
.then((res) => res.text())
|
||||
.then((html) => {
|
||||
store.dispatch('setOption', { name: 'instanceSpecificPanelContent', value: html })
|
||||
store.dispatch('setInstanceOption', { name: 'instanceSpecificPanelContent', value: html })
|
||||
})
|
||||
|
||||
window.fetch('/nodeinfo/2.0.json')
|
||||
.then((res) => res.json())
|
||||
.then((data) => {
|
||||
const suggestions = data.metadata.suggestions
|
||||
store.dispatch('setOption', { name: 'suggestionsEnabled', value: suggestions.enabled })
|
||||
store.dispatch('setOption', { name: 'suggestionsWeb', value: suggestions.web })
|
||||
const metadata = data.metadata
|
||||
store.dispatch('setInstanceOption', { name: 'mediaProxyAvailable', value: data.metadata.mediaProxy })
|
||||
store.dispatch('setInstanceOption', { name: 'chatAvailable', value: data.metadata.chat })
|
||||
store.dispatch('setInstanceOption', { name: 'gopherAvailable', value: data.metadata.gopher })
|
||||
|
||||
const suggestions = metadata.suggestions
|
||||
store.dispatch('setInstanceOption', { name: 'suggestionsEnabled', value: suggestions.enabled })
|
||||
store.dispatch('setInstanceOption', { name: 'suggestionsWeb', value: suggestions.web })
|
||||
})
|
||||
|
|
|
@ -4,13 +4,10 @@ import StyleSetter from '../services/style_setter/style_setter.js'
|
|||
const browserLocale = (window.navigator.language || 'en').split('-')[0]
|
||||
|
||||
const defaultState = {
|
||||
name: 'Pleroma FE',
|
||||
colors: {},
|
||||
collapseMessageWithSubject: false,
|
||||
hideAttachments: false,
|
||||
hideAttachmentsInConv: false,
|
||||
hidePostStats: false,
|
||||
hideUserStats: false,
|
||||
hideNsfw: true,
|
||||
loopVideo: true,
|
||||
loopVideoSilentOnly: true,
|
||||
|
@ -47,18 +44,12 @@ const config = {
|
|||
}
|
||||
},
|
||||
actions: {
|
||||
setPageTitle ({state}, option = '') {
|
||||
document.title = `${option} ${state.name}`
|
||||
},
|
||||
setHighlight ({ commit, dispatch }, { user, color, type }) {
|
||||
commit('setHighlight', {user, color, type})
|
||||
},
|
||||
setOption ({ commit, dispatch }, { name, value }) {
|
||||
commit('setOption', {name, value})
|
||||
switch (name) {
|
||||
case 'name':
|
||||
dispatch('setPageTitle')
|
||||
break
|
||||
case 'theme':
|
||||
StyleSetter.setPreset(value, commit)
|
||||
break
|
||||
|
|
65
src/modules/instance.js
Normal file
65
src/modules/instance.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
import { set } from 'vue'
|
||||
import StyleSetter from '../services/style_setter/style_setter.js'
|
||||
|
||||
const defaultState = {
|
||||
// Stuff from static/config.json and apiConfig
|
||||
name: 'Pleroma FE',
|
||||
registrationOpen: true,
|
||||
textlimit: 5000,
|
||||
server: 'http://localhost:4040/',
|
||||
theme: 'pleroma-dark',
|
||||
background: '/static/aurora_borealis.jpg',
|
||||
logo: '/static/logo.png',
|
||||
logoMask: true,
|
||||
logoMargin: '.2em',
|
||||
redirectRootNoLogin: '/main/all',
|
||||
redirectRootLogin: '/main/friends',
|
||||
showInstanceSpecificPanel: false,
|
||||
scopeOptionsEnabled: true,
|
||||
formattingOptionsEnabled: false,
|
||||
collapseMessageWithSubject: false,
|
||||
hidePostStats: false,
|
||||
hideUserStats: false,
|
||||
disableChat: false,
|
||||
|
||||
// Nasty stuff
|
||||
pleromaBackend: true,
|
||||
emoji: [],
|
||||
customEmoji: [],
|
||||
|
||||
// Feature-set, apparently, not everything here is reported...
|
||||
mediaProxyAvailable: false,
|
||||
chatAvailable: false,
|
||||
gopherAvailable: false,
|
||||
suggestionsEnabled: false,
|
||||
suggestionsWeb: '',
|
||||
|
||||
// Html stuff
|
||||
instanceSpecificPanelContent: '',
|
||||
tos: ''
|
||||
}
|
||||
|
||||
const instance = {
|
||||
state: defaultState,
|
||||
mutations: {
|
||||
setInstanceOption (state, { name, value }) {
|
||||
if (typeof value !== 'undefined') {
|
||||
set(state, name, value)
|
||||
}
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
setInstanceOption ({ commit, dispatch }, { name, value }) {
|
||||
commit('setInstanceOption', {name, value})
|
||||
switch (name) {
|
||||
case 'name':
|
||||
dispatch('setPageTitle')
|
||||
break
|
||||
case 'theme':
|
||||
StyleSetter.setPreset(value, commit)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default instance
|
36
src/modules/interface.js
Normal file
36
src/modules/interface.js
Normal file
|
@ -0,0 +1,36 @@
|
|||
import { set, delete as del } from 'vue'
|
||||
|
||||
const defaultState = {
|
||||
settings: {
|
||||
currentSaveStateNotice: null,
|
||||
noticeClearTimeout: null
|
||||
}
|
||||
}
|
||||
|
||||
const interfaceMod = {
|
||||
state: defaultState,
|
||||
mutations: {
|
||||
settingsSaved (state, { success, error }) {
|
||||
if (success) {
|
||||
if (state.noticeClearTimeout) {
|
||||
clearTimeout(state.noticeClearTimeout)
|
||||
}
|
||||
set(state.settings, 'currentSaveStateNotice', { error: false, data: success })
|
||||
set(state.settings, 'noticeClearTimeout',
|
||||
setTimeout(() => del(state.settings, 'currentSaveStateNotice'), 2000))
|
||||
} else {
|
||||
set(state.settings, 'currentSaveStateNotice', { error: true, errorData: error })
|
||||
}
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
setPageTitle ({ rootState }, option = '') {
|
||||
document.title = `${option} ${rootState.instance.name}`
|
||||
},
|
||||
settingsSaved ({ commit, dispatch }, { success, error }) {
|
||||
commit('settingsSaved', { success, error })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default interfaceMod
|
|
@ -133,13 +133,11 @@ const updateBanner = ({credentials, params}) => {
|
|||
const updateProfile = ({credentials, params}) => {
|
||||
let url = PROFILE_UPDATE_URL
|
||||
|
||||
console.log(params)
|
||||
|
||||
const form = new FormData()
|
||||
|
||||
each(params, (value, key) => {
|
||||
/* Always include description and locked, because it might be empty or false */
|
||||
if (key === 'description' || key === 'locked' || value) {
|
||||
/* Always include description, no_rich_text and locked, because it might be empty or false */
|
||||
if (key === 'description' || key === 'locked' || key === 'no_rich_text' || value) {
|
||||
form.append(key, value)
|
||||
}
|
||||
})
|
||||
|
@ -335,7 +333,14 @@ const fetchTimeline = ({timeline, credentials, since = false, until = false, use
|
|||
const queryString = map(params, (param) => `${param[0]}=${param[1]}`).join('&')
|
||||
url += `?${queryString}`
|
||||
|
||||
return fetch(url, { headers: authHeaders(credentials) }).then((data) => data.json())
|
||||
return fetch(url, { headers: authHeaders(credentials) })
|
||||
.then((data) => {
|
||||
if (data.ok) {
|
||||
return data
|
||||
}
|
||||
throw new Error('Error fetching timeline')
|
||||
})
|
||||
.then((data) => data.json())
|
||||
}
|
||||
|
||||
const verifyCredentials = (user) => {
|
||||
|
|
Loading…
Reference in a new issue