aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/components/favorite_button/favorite_button.js3
-rw-r--r--src/components/favorite_button/favorite_button.vue4
-rw-r--r--src/components/retweet_button/retweet_button.js3
-rw-r--r--src/components/retweet_button/retweet_button.vue4
-rw-r--r--src/components/settings/settings.js14
-rw-r--r--src/components/settings/settings.vue12
-rw-r--r--src/components/user_card_content/user_card_content.js7
-rw-r--r--src/components/user_card_content/user_card_content.vue10
-rw-r--r--src/i18n/ca.json199
-rw-r--r--src/i18n/en.json4
-rw-r--r--src/i18n/messages.js3
-rw-r--r--src/i18n/nb.json98
-rw-r--r--src/i18n/ru.json1
-rw-r--r--src/main.js4
-rw-r--r--src/modules/instance.js2
-rw-r--r--static/config.json4
-rw-r--r--static/timeago-ca.json10
17 files changed, 361 insertions, 21 deletions
diff --git a/src/components/favorite_button/favorite_button.js b/src/components/favorite_button/favorite_button.js
index 1266be90..a2b4cb65 100644
--- a/src/components/favorite_button/favorite_button.js
+++ b/src/components/favorite_button/favorite_button.js
@@ -2,6 +2,9 @@ const FavoriteButton = {
props: ['status', 'loggedIn'],
data () {
return {
+ hidePostStatsLocal: typeof this.$store.state.config.hidePostStats === 'undefined'
+ ? this.$store.state.instance.hidePostStats
+ : this.$store.state.config.hidePostStats,
animated: false
}
},
diff --git a/src/components/favorite_button/favorite_button.vue b/src/components/favorite_button/favorite_button.vue
index 1e1a6970..71cb875e 100644
--- a/src/components/favorite_button/favorite_button.vue
+++ b/src/components/favorite_button/favorite_button.vue
@@ -1,11 +1,11 @@
<template>
<div v-if="loggedIn">
<i :class='classes' class='favorite-button fav-active' @click.prevent='favorite()'/>
- <span v-if='status.fave_num > 0'>{{status.fave_num}}</span>
+ <span v-if='!hidePostStatsLocal && status.fave_num > 0'>{{status.fave_num}}</span>
</div>
<div v-else>
<i :class='classes' class='favorite-button'/>
- <span v-if='status.fave_num > 0'>{{status.fave_num}}</span>
+ <span v-if='!hidePostStatsLocal && status.fave_num > 0'>{{status.fave_num}}</span>
</div>
</template>
diff --git a/src/components/retweet_button/retweet_button.js b/src/components/retweet_button/retweet_button.js
index cafa9cbc..eb4e4b41 100644
--- a/src/components/retweet_button/retweet_button.js
+++ b/src/components/retweet_button/retweet_button.js
@@ -2,6 +2,9 @@ const RetweetButton = {
props: ['status', 'loggedIn', 'visibility'],
data () {
return {
+ hidePostStatsLocal: typeof this.$store.state.config.hidePostStats === 'undefined'
+ ? this.$store.state.instance.hidePostStats
+ : this.$store.state.config.hidePostStats,
animated: false
}
},
diff --git a/src/components/retweet_button/retweet_button.vue b/src/components/retweet_button/retweet_button.vue
index ee5722bd..5b1e64b8 100644
--- a/src/components/retweet_button/retweet_button.vue
+++ b/src/components/retweet_button/retweet_button.vue
@@ -2,7 +2,7 @@
<div v-if="loggedIn">
<template v-if="visibility !== 'private' && visibility !== 'direct'">
<i :class='classes' class='icon-retweet rt-active' v-on:click.prevent='retweet()'></i>
- <span v-if='status.repeat_num > 0'>{{status.repeat_num}}</span>
+ <span v-if='!hidePostStatsLocal && status.repeat_num > 0'>{{status.repeat_num}}</span>
</template>
<template v-else>
<i :class='classes' class='icon-lock' :title="$t('timeline.no_retweet_hint')"></i>
@@ -10,7 +10,7 @@
</div>
<div v-else-if="!loggedIn">
<i :class='classes' class='icon-retweet'></i>
- <span v-if='status.repeat_num > 0'>{{status.repeat_num}}</span>
+ <span v-if='!hidePostStatsLocal && status.repeat_num > 0'>{{status.repeat_num}}</span>
</div>
</template>
diff --git a/src/components/settings/settings.js b/src/components/settings/settings.js
index a24bc265..67110841 100644
--- a/src/components/settings/settings.js
+++ b/src/components/settings/settings.js
@@ -13,6 +13,14 @@ const settings = {
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,
@@ -56,6 +64,12 @@ const settings = {
hideAttachmentsInConvLocal (value) {
this.$store.dispatch('setOption', { name: 'hideAttachmentsInConv', value })
},
+ hidePostStatsLocal (value) {
+ this.$store.dispatch('setOption', { name: 'hidePostStats', value })
+ },
+ hideUserStatsLocal (value) {
+ this.$store.dispatch('setOption', { name: 'hideUserStats', value })
+ },
hideNsfwLocal (value) {
this.$store.dispatch('setOption', { name: 'hideNsfw', value })
},
diff --git a/src/components/settings/settings.vue b/src/components/settings/settings.vue
index 42c660a3..652bdcc1 100644
--- a/src/components/settings/settings.vue
+++ b/src/components/settings/settings.vue
@@ -138,6 +138,18 @@
<i class="icon-down-open"/>
</label>
</div>
+ <div>
+ <input type="checkbox" id="hidePostStats" v-model="hidePostStatsLocal">
+ <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')}} {{$t('settings.instance_default', { value: hideUserStatsDefault })}}
+ </label>
+ </div>
</div>
<div class="setting-item">
<p>{{$t('settings.filtering_explanation')}}</p>
diff --git a/src/components/user_card_content/user_card_content.js b/src/components/user_card_content/user_card_content.js
index 76a5577e..b5dd9b91 100644
--- a/src/components/user_card_content/user_card_content.js
+++ b/src/components/user_card_content/user_card_content.js
@@ -3,6 +3,13 @@ import { hex2rgb } from '../../services/color_convert/color_convert.js'
export default {
props: [ 'user', 'switcher', 'selected', 'hideBio' ],
+ data () {
+ return {
+ hideUserStatsLocal: typeof this.$store.state.config.hideUserStats === 'undefined'
+ ? this.$store.state.instance.hideUserStats
+ : this.$store.state.config.hideUserStats
+ }
+ },
computed: {
headingStyle () {
const color = this.$store.state.config.colors.bg
diff --git a/src/components/user_card_content/user_card_content.vue b/src/components/user_card_content/user_card_content.vue
index 59358040..84669d7f 100644
--- a/src/components/user_card_content/user_card_content.vue
+++ b/src/components/user_card_content/user_card_content.vue
@@ -17,7 +17,7 @@
<div :title="user.name" class='user-name' v-else>{{user.name}}</div>
<router-link class='user-screen-name':to="{ name: 'user-profile', params: { id: user.id } }">
<span>@{{user.screen_name}}</span><span v-if="user.locked"><i class="icon icon-lock"></i></span>
- <span class="dailyAvg">{{dailyAvg}} {{ $t('user_card.per_day') }}</span>
+ <span v-if="!hideUserStatsLocal" class="dailyAvg">{{dailyAvg}} {{ $t('user_card.per_day') }}</span>
</router-link>
</div>
</div>
@@ -91,18 +91,18 @@
</div>
</div>
<div class="panel-body profile-panel-body">
- <div class="user-counts" :class="{clickable: switcher}">
+ <div v-if="!hideUserStatsLocal || switcher" class="user-counts" :class="{clickable: switcher}">
<div class="user-count" v-on:click.prevent="setProfileView('statuses')" :class="{selected: selected === 'statuses'}">
<h5>{{ $t('user_card.statuses') }}</h5>
- <span>{{user.statuses_count}} <br></span>
+ <span v-if="!hideUserStatsLocal">{{user.statuses_count}} <br></span>
</div>
<div class="user-count" v-on:click.prevent="setProfileView('friends')" :class="{selected: selected === 'friends'}">
<h5>{{ $t('user_card.followees') }}</h5>
- <span>{{user.friends_count}}</span>
+ <span v-if="!hideUserStatsLocal">{{user.friends_count}}</span>
</div>
<div class="user-count" v-on:click.prevent="setProfileView('followers')" :class="{selected: selected === 'followers'}">
<h5>{{ $t('user_card.followers') }}</h5>
- <span>{{user.followers_count}}</span>
+ <span v-if="!hideUserStatsLocal">{{user.followers_count}}</span>
</div>
</div>
<p v-if="!hideBio && user.description_html" class="profile-bio" v-html="user.description_html"></p>
diff --git a/src/i18n/ca.json b/src/i18n/ca.json
new file mode 100644
index 00000000..fa517e22
--- /dev/null
+++ b/src/i18n/ca.json
@@ -0,0 +1,199 @@
+{
+ "chat": {
+ "title": "Xat"
+ },
+ "features_panel": {
+ "chat": "Xat",
+ "gopher": "Gopher",
+ "media_proxy": "Proxy per multimèdia",
+ "scope_options": "Opcions d'abast i visibilitat",
+ "text_limit": "Límit de text",
+ "title": "Funcionalitats",
+ "who_to_follow": "A qui seguir"
+ },
+ "finder": {
+ "error_fetching_user": "No s'ha pogut carregar l'usuari/a",
+ "find_user": "Find user"
+ },
+ "general": {
+ "apply": "Aplica",
+ "submit": "Desa"
+ },
+ "login": {
+ "login": "Inicia sessió",
+ "logout": "Tanca la sessió",
+ "password": "Contrasenya",
+ "placeholder": "p.ex.: Maria",
+ "register": "Registra't",
+ "username": "Nom d'usuari/a"
+ },
+ "nav": {
+ "chat": "Xat local públic",
+ "friend_requests": "Soŀlicituds de connexió",
+ "mentions": "Mencions",
+ "public_tl": "Flux públic del node",
+ "timeline": "Flux personal",
+ "twkn": "Flux de la xarxa coneguda"
+ },
+ "notifications": {
+ "broken_favorite": "No es coneix aquest estat. S'està cercant.",
+ "favorited_you": "ha marcat un estat teu",
+ "followed_you": "ha començat a seguir-te",
+ "load_older": "Carrega més notificacions",
+ "notifications": "Notificacions",
+ "read": "Read!",
+ "repeated_you": "ha repetit el teu estat"
+ },
+ "post_status": {
+ "account_not_locked_warning": "El teu compte no està {0}. Qualsevol persona pot seguir-te per llegir les teves entrades reservades només a seguidores.",
+ "account_not_locked_warning_link": "bloquejat",
+ "attachments_sensitive": "Marca l'adjunt com a delicat",
+ "content_type": {
+ "plain_text": "Text pla"
+ },
+ "content_warning": "Assumpte (opcional)",
+ "default": "Em sento…",
+ "direct_warning": "Aquesta entrada només serà visible per les usuràries que etiquetis",
+ "posting": "Publicació",
+ "scope": {
+ "direct": "Directa - Publica només per les usuàries etiquetades",
+ "private": "Només seguidors/es - Publica només per comptes que et segueixin",
+ "public": "Pública - Publica als fluxos públics",
+ "unlisted": "Silenciosa - No la mostris en fluxos públics"
+ }
+ },
+ "registration": {
+ "bio": "Presentació",
+ "email": "Correu",
+ "fullname": "Nom per mostrar",
+ "password_confirm": "Confirma la contrasenya",
+ "registration": "Registra't",
+ "token": "Codi d'invitació"
+ },
+ "settings": {
+ "attachmentRadius": "Adjunts",
+ "attachments": "Adjunts",
+ "autoload": "Recarrega automàticament en arribar a sota de tot.",
+ "avatar": "Avatar",
+ "avatarAltRadius": "Avatars en les notificacions",
+ "avatarRadius": "Avatars",
+ "background": "Fons de pantalla",
+ "bio": "Presentació",
+ "btnRadius": "Botons",
+ "cBlue": "Blau (respon, segueix)",
+ "cGreen": "Verd (republica)",
+ "cOrange": "Taronja (marca com a preferit)",
+ "cRed": "Vermell (canceŀla)",
+ "change_password": "Canvia la contrasenya",
+ "change_password_error": "No s'ha pogut canviar la contrasenya",
+ "changed_password": "S'ha canviat la contrasenya",
+ "collapse_subject": "Replega les entrades amb títol",
+ "confirm_new_password": "Confirma la nova contrasenya",
+ "current_avatar": "L'avatar actual",
+ "current_password": "La contrasenya actual",
+ "current_profile_banner": "El fons de perfil actual",
+ "data_import_export_tab": "Importa o exporta dades",
+ "default_vis": "Abast per defecte de les entrades",
+ "delete_account": "Esborra el compte",
+ "delete_account_description": "Esborra permanentment el teu compte i tots els missatges",
+ "delete_account_error": "No s'ha pogut esborrar el compte. Si continua el problema, contacta amb l'administració del node",
+ "delete_account_instructions": "Confirma que vols esborrar el compte escrivint la teva contrasenya aquí sota",
+ "export_theme": "Desa el tema",
+ "filtering": "Filtres",
+ "filtering_explanation": "Es silenciaran totes les entrades que continguin aquestes paraules. Separa-les per línies",
+ "follow_export": "Exporta la llista de contactes",
+ "follow_export_button": "Exporta tots els comptes que segueixes a un fitxer CSV",
+ "follow_export_processing": "S'està processant la petició. Aviat podràs descarregar el fitxer",
+ "follow_import": "Importa els contactes",
+ "follow_import_error": "No s'ha pogut importar els contactes",
+ "follows_imported": "S'han importat els contactes. Trigaran una estoneta en ser processats.",
+ "foreground": "Primer pla",
+ "general": "General",
+ "hide_attachments_in_convo": "Amaga els adjunts en les converses",
+ "hide_attachments_in_tl": "Amaga els adjunts en el flux d'entrades",
+ "import_followers_from_a_csv_file": "Importa els contactes des d'un fitxer CSV",
+ "import_theme": "Carrega un tema",
+ "inputRadius": "Caixes d'entrada de text",
+ "instance_default": "(default: {value})",
+ "interfaceLanguage": "Llengua de la interfície",
+ "invalid_theme_imported": "No s'ha entès l'arxiu carregat perquè no és un tema vàlid de Pleroma. No s'ha fet cap canvi als temes actuals.",
+ "limited_availability": "No està disponible en aquest navegador",
+ "links": "Enllaços",
+ "lock_account_description": "Restringeix el teu compte només a seguidores aprovades.",
+ "loop_video": "Reprodueix els vídeos en bucle",
+ "loop_video_silent_only": "Reprodueix en bucles només els vídeos sense so (com els \"GIF\" de Mastodon)",
+ "name": "Nom",
+ "name_bio": "Nom i presentació",
+ "new_password": "Contrasenya nova",
+ "notification_visibility": "Notifica'm quan algú",
+ "notification_visibility_follows": "Comença a seguir-me",
+ "notification_visibility_likes": "Marca com a preferida una entrada meva",
+ "notification_visibility_mentions": "Em menciona",
+ "notification_visibility_repeats": "Republica una entrada meva",
+ "no_rich_text_description": "Neteja el formatat de text de totes les entrades",
+ "nsfw_clickthrough": "Amaga el contingut NSFW darrer d'una imatge clicable",
+ "panelRadius": "Panells",
+ "pause_on_unfocused": "Pausa la reproducció en continu quan la pestanya perdi el focus",
+ "presets": "Temes",
+ "profile_background": "Fons de pantalla",
+ "profile_banner": "Fons de perfil",
+ "profile_tab": "Perfil",
+ "radii_help": "Configura l'arrodoniment de les vores (en píxels)",
+ "replies_in_timeline": "Replies in timeline",
+ "reply_link_preview": "Mostra el missatge citat en passar el ratolí per sobre de l'enllaç de resposta",
+ "reply_visibility_all": "Mostra totes les respostes",
+ "reply_visibility_following": "Mostra només les respostes a entrades meves o d'usuàries que jo segueixo",
+ "reply_visibility_self": "Mostra només les respostes a entrades meves",
+ "saving_err": "No s'ha pogut desar la configuració",
+ "saving_ok": "S'ha desat la configuració",
+ "security_tab": "Seguretat",
+ "set_new_avatar": "Canvia l'avatar",
+ "set_new_profile_background": "Canvia el fons de pantalla",
+ "set_new_profile_banner": "Canvia el fons del perfil",
+ "settings": "Configuració",
+ "stop_gifs": "Anima els GIF només en passar-hi el ratolí per sobre",
+ "streaming": "Carrega automàticament entrades noves quan estigui a dalt de tot",
+ "text": "Text",
+ "theme": "Tema",
+ "theme_help": "Personalitza els colors del tema. Escriu-los en format RGB hexadecimal (#rrggbb)",
+ "tooltipRadius": "Missatges sobreposats",
+ "user_settings": "Configuració personal",
+ "values": {
+ "false": "no",
+ "true": "sí"
+ }
+ },
+ "timeline": {
+ "collapse": "Replega",
+ "conversation": "Conversa",
+ "error_fetching": "S'ha produït un error en carregar les entrades",
+ "load_older": "Carrega entrades anteriors",
+ "no_retweet_hint": "L'entrada és només per a seguidores o és \"directa\", i per tant no es pot republicar",
+ "repeated": "republicat",
+ "show_new": "Mostra els nous",
+ "up_to_date": "Actualitzat"
+ },
+ "user_card": {
+ "approve": "Aprova",
+ "block": "Bloqueja",
+ "blocked": "Bloquejat!",
+ "deny": "Denega",
+ "follow": "Segueix",
+ "followees": "Segueixo",
+ "followers": "Seguidors/es",
+ "following": "Seguint!",
+ "follows_you": "Et segueix!",
+ "mute": "Silencia",
+ "muted": "Silenciat",
+ "per_day": "per dia",
+ "remote_follow": "Seguiment remot",
+ "statuses": "Estats"
+ },
+ "user_profile": {
+ "timeline_title": "Flux personal"
+ },
+ "who_to_follow": {
+ "more": "More",
+ "who_to_follow": "A qui seguir"
+ }
+}
diff --git a/src/i18n/en.json b/src/i18n/en.json
index 8c7360e9..8963e479 100644
--- a/src/i18n/en.json
+++ b/src/i18n/en.json
@@ -111,6 +111,8 @@
"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",
@@ -130,7 +132,7 @@
"notification_visibility_likes": "Likes",
"notification_visibility_mentions": "Mentions",
"notification_visibility_repeats": "Repeats",
- "no_rich_text_description": "Disable rich text support",
+ "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",
diff --git a/src/i18n/messages.js b/src/i18n/messages.js
index 36f4c98b..ff7e1c98 100644
--- a/src/i18n/messages.js
+++ b/src/i18n/messages.js
@@ -24,7 +24,8 @@ const messages = {
pt: require('./pt.json'),
ru: require('./ru.json'),
nb: require('./nb.json'),
- he: require('./he.json')
+ he: require('./he.json'),
+ ca: require('./ca.json')
}
export default messages
diff --git a/src/i18n/nb.json b/src/i18n/nb.json
index a95879b7..0f4dca58 100644
--- a/src/i18n/nb.json
+++ b/src/i18n/nb.json
@@ -1,6 +1,15 @@
{
"chat": {
- "title": "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",
@@ -8,7 +17,7 @@
},
"general": {
"apply": "Bruk",
- "submit": "Legg ut"
+ "submit": "Send"
},
"login": {
"login": "Logg inn",
@@ -19,29 +28,47 @@
"username": "Brukernavn"
},
"nav": {
- "chat": "Lokal Chat",
+ "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.",
- "posting": "Publiserer"
+ "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"
+ "registration": "Registrering",
+ "token": "Invitasjons-bevis"
},
"settings": {
"attachmentRadius": "Vedlegg",
@@ -57,27 +84,69 @@
"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 imported! Det vil ta litt tid å behandle de.",
- "foreground": "Framgrunn",
+ "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",
- "presets": "Forhåndsdefinerte fargekoder",
+ "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",
@@ -88,20 +157,27 @@
"theme": "Tema",
"theme_help": "Bruk heksadesimale fargekoder (#rrggbb) til å endre farge-temaet ditt.",
"tooltipRadius": "Verktøytips/advarsler",
- "user_settings": "Brukerinstillinger"
+ "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",
@@ -115,5 +191,9 @@
},
"user_profile": {
"timeline_title": "Bruker-tidslinje"
+ },
+ "who_to_follow": {
+ "more": "Mer",
+ "who_to_follow": "Hvem å følge"
}
}
diff --git a/src/i18n/ru.json b/src/i18n/ru.json
index 3a50369a..921bf67e 100644
--- a/src/i18n/ru.json
+++ b/src/i18n/ru.json
@@ -114,6 +114,7 @@
"notification_visibility_likes": "Лайки",
"notification_visibility_mentions": "Упоминания",
"notification_visibility_repeats": "Повторы",
+ "no_rich_text_description": "Убрать форматирование из всех постов",
"nsfw_clickthrough": "Включить скрытие NSFW вложений",
"panelRadius": "Панели",
"pause_on_unfocused": "Приостановить загрузку когда вкладка не в фокусе",
diff --git a/src/main.js b/src/main.js
index 367db881..1b1780df 100644
--- a/src/main.js
+++ b/src/main.js
@@ -100,6 +100,8 @@ window.fetch('/api/statusnet/config.json')
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)
@@ -113,6 +115,8 @@ window.fetch('/api/statusnet/config.json')
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 })
diff --git a/src/modules/instance.js b/src/modules/instance.js
index cb724821..d61ca842 100644
--- a/src/modules/instance.js
+++ b/src/modules/instance.js
@@ -18,6 +18,8 @@ const defaultState = {
scopeOptionsEnabled: true,
formattingOptionsEnabled: false,
collapseMessageWithSubject: false,
+ hidePostStats: false,
+ hideUserStats: false,
disableChat: false,
// Nasty stuff
diff --git a/static/config.json b/static/config.json
index 144fe951..a6eace0f 100644
--- a/static/config.json
+++ b/static/config.json
@@ -10,5 +10,7 @@
"showInstanceSpecificPanel": false,
"scopeOptionsEnabled": false,
"formattingOptionsEnabled": false,
- "collapseMessageWithSubject": false
+ "collapseMessageWithSubject": false,
+ "hidePostStats": false,
+ "hideUserStats": false
}
diff --git a/static/timeago-ca.json b/static/timeago-ca.json
new file mode 100644
index 00000000..ef782caf
--- /dev/null
+++ b/static/timeago-ca.json
@@ -0,0 +1,10 @@
+[
+ "ara mateix",
+ ["fa %s s", "fa %s s"],
+ ["fa %s min", "fa %s min"],
+ ["fa %s h", "fa %s h"],
+ ["fa %s dia", "fa %s dies"],
+ ["fa %s setm.", "fa %s setm."],
+ ["fa %s mes", "fa %s mesos"],
+ ["fa %s any", "fa %s anys"]
+]