aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/attachment/attachment.vue4
-rw-r--r--src/components/mentions/mentions.vue2
-rw-r--r--src/i18n/messages.js222
-rw-r--r--src/main.js9
-rw-r--r--src/modules/statuses.js10
5 files changed, 236 insertions, 11 deletions
diff --git a/src/components/attachment/attachment.vue b/src/components/attachment/attachment.vue
index 870ee233..98cd97fb 100644
--- a/src/components/attachment/attachment.vue
+++ b/src/components/attachment/attachment.vue
@@ -11,7 +11,7 @@
<img class="base03-border" referrerpolicy="no-referrer" :src="attachment.large_thumb_url || attachment.url"/>
</a>
- <video v-if="type === 'video' && !hidden" :src="attachment.url" controls loop></video>
+ <video class="base03" v-if="type === 'video' && !hidden" :src="attachment.url" controls loop></video>
<audio v-if="type === 'audio'" :src="attachment.url" controls></audio>
@@ -59,6 +59,7 @@
}
video {
+ max-height: 500px;
height: 100%;
border: 1px solid;
border-radius: 5px;
@@ -103,6 +104,7 @@
.text {
flex: 2;
margin: 8px;
+ word-break: break-all;
h1 {
font-size: 14px;
margin: 0px;
diff --git a/src/components/mentions/mentions.vue b/src/components/mentions/mentions.vue
index 7af402ce..bba06da6 100644
--- a/src/components/mentions/mentions.vue
+++ b/src/components/mentions/mentions.vue
@@ -1,5 +1,5 @@
<template>
- <Timeline :title="'Mentions'" v-bind:timeline="timeline" v-bind:timeline-name="'mentions'"/>
+ <Timeline :title="$t('nav.mentions')" v-bind:timeline="timeline" v-bind:timeline-name="'mentions'"/>
</template>
<script src="./mentions.js"></script>
diff --git a/src/i18n/messages.js b/src/i18n/messages.js
index 43d77671..041d2f4d 100644
--- a/src/i18n/messages.js
+++ b/src/i18n/messages.js
@@ -244,7 +244,8 @@ const et = {
show_new: 'Näita uusi',
error_fetching: 'Viga uuenduste laadimisel',
up_to_date: 'Uuendatud',
- load_older: 'Kuva vanemaid staatuseid'
+ load_older: 'Kuva vanemaid staatuseid',
+ conversation: 'Vestlus'
},
settings: {
user_settings: 'Kasutaja sätted',
@@ -275,6 +276,28 @@ const et = {
read: 'Loe!',
followed_you: 'alustas sinu jälgimist'
},
+ login: {
+ login: 'Logi sisse',
+ username: 'Kasutajanimi',
+ password: 'Parool',
+ register: 'Registreeru',
+ logout: 'Logi välja'
+ },
+ registration: {
+ registration: 'Registreerimine',
+ fullname: 'Kuvatav nimi',
+ email: 'E-post',
+ bio: 'Bio',
+ password_confirm: 'Parooli kinnitamine'
+ },
+ post_status: {
+ posting: 'Postitan',
+ default: 'Just sõitsin elektrirongiga Tallinnast Pääskülla.'
+ },
+ finder: {
+ find_user: 'Otsi kasutajaid',
+ error_fetching_user: 'Viga kasutaja leidmisel'
+ },
general: {
submit: 'Postita'
}
@@ -291,6 +314,8 @@ const hu = {
follows_you: 'Követ téged!',
following: 'Követve!',
follow: 'Követ',
+ blocked: 'Letiltva!',
+ block: 'Letilt',
statuses: 'Állapotok',
mute: 'Némít',
muted: 'Némított',
@@ -302,7 +327,8 @@ const hu = {
show_new: 'Újak mutatása',
error_fetching: 'Hiba a frissítések beszerzésénél',
up_to_date: 'Naprakész',
- load_older: 'Régebbi állapotok betöltése'
+ load_older: 'Régebbi állapotok betöltése',
+ conversation: 'Társalgás'
},
settings: {
user_settings: 'Felhasználói beállítások',
@@ -333,11 +359,116 @@ const hu = {
read: 'Olvasva!',
followed_you: 'követ téged'
},
+ login: {
+ login: 'Bejelentkezés',
+ username: 'Felhasználó név',
+ password: 'Jelszó',
+ register: 'Feliratkozás',
+ logout: 'Kijelentkezés'
+ },
+ registration: {
+ registration: 'Feliratkozás',
+ fullname: 'Teljes név',
+ email: 'Email',
+ bio: 'Bio',
+ password_confirm: 'Jelszó megerősítése'
+ },
+ post_status: {
+ posting: 'Küldés folyamatban',
+ default: 'Most érkeztem L.A.-be'
+ },
+ finder: {
+ find_user: 'Felhasználó keresése',
+ error_fetching_user: 'Hiba felhasználó beszerzésével'
+ },
general: {
submit: 'Elküld'
}
}
+const ro = {
+ nav: {
+ timeline: 'Cronologie',
+ mentions: 'Menționări',
+ public_tl: 'Cronologie Publică',
+ twkn: 'Toată Reșeaua Cunoscută'
+ },
+ user_card: {
+ follows_you: 'Te urmărește!',
+ following: 'Urmărit!',
+ follow: 'Urmărește',
+ blocked: 'Blocat!',
+ block: 'Blochează',
+ statuses: 'Stări',
+ mute: 'Pune pe mut',
+ muted: 'Pus pe mut',
+ followers: 'Următori',
+ followees: 'Urmărește',
+ per_day: 'pe zi'
+ },
+ timeline: {
+ show_new: 'Arată cele noi',
+ error_fetching: 'Erare la preluarea actualizărilor',
+ up_to_date: 'La zi',
+ load_older: 'Încarcă stări mai vechi',
+ conversation: 'Conversație'
+ },
+ settings: {
+ user_settings: 'Setările utilizatorului',
+ name_bio: 'Nume și Bio',
+ name: 'Nume',
+ bio: 'Bio',
+ avatar: 'Avatar',
+ current_avatar: 'Avatarul curent',
+ set_new_avatar: 'Setează avatar nou',
+ profile_banner: 'Banner de profil',
+ current_profile_banner: 'Bannerul curent al profilului',
+ set_new_profile_banner: 'Setează banner nou la profil',
+ profile_background: 'Fundalul de profil',
+ set_new_profile_background: 'Setează fundal nou',
+ settings: 'Setări',
+ theme: 'Temă',
+ filtering: 'Filtru',
+ filtering_explanation: 'Toate stările care conțin aceste cuvinte vor fi puse pe mut, una pe linie',
+ attachments: 'Atașamente',
+ hide_attachments_in_tl: 'Ascunde atașamentele în cronologie',
+ hide_attachments_in_convo: 'Ascunde atașamentele în conversații',
+ nsfw_clickthrough: 'Permite ascunderea al atașamentelor NSFW',
+ autoload: 'Permite încărcarea automată când scrolat la capăt',
+ reply_link_preview: 'Permite previzualizarea linkului de răspuns la planarea de mouse'
+ },
+ notifications: {
+ notifications: 'Notificări',
+ read: 'Citit!',
+ followed_you: 'te-a urmărit'
+ },
+ login: {
+ login: 'Loghează',
+ username: 'Nume utilizator',
+ password: 'Parolă',
+ register: 'Înregistrare',
+ logout: 'Deloghează'
+ },
+ registration: {
+ registration: 'Îregistrare',
+ fullname: 'Numele întreg',
+ email: 'Email',
+ bio: 'Bio',
+ password_confirm: 'Cofirmă parola'
+ },
+ post_status: {
+ posting: 'Postează',
+ default: 'Nu de mult am aterizat în L.A.'
+ },
+ finder: {
+ find_user: 'Găsește utilizator',
+ error_fetching_user: 'Eroare la preluarea utilizatorului'
+ },
+ general: {
+ submit: 'trimite'
+ }
+}
+
const ja = {
nav: {
timeline: 'タイムライン',
@@ -617,16 +748,101 @@ const pl = {
}
}
+const es = {
+ nav: {
+ timeline: 'Línea Temporal',
+ mentions: 'Menciones',
+ public_tl: 'Línea Temporal Pública',
+ twkn: 'Toda La Red Conocida'
+ },
+ user_card: {
+ follows_you: '¡Te sigue!',
+ following: '¡Siguiendo!',
+ follow: 'Seguir',
+ blocked: '¡Bloqueado!',
+ block: 'Bloquear',
+ statuses: 'Estados',
+ mute: 'Silenciar',
+ muted: 'Silenciado',
+ followers: 'Seguidores',
+ followees: 'Siguiendo',
+ per_day: 'por día'
+ },
+ timeline: {
+ show_new: 'Mostrar lo nuevo',
+ error_fetching: 'Error al cargar las actualizaciones',
+ up_to_date: 'Actualizado',
+ load_older: 'Cargar actualizaciones anteriores',
+ conversation: 'Conversación'
+ },
+ settings: {
+ user_settings: 'Ajustes de Usuario',
+ name_bio: 'Nombre y Biografía',
+ name: 'Nombre',
+ bio: 'Biografía',
+ avatar: 'Avatar',
+ current_avatar: 'Tu avatar actual',
+ set_new_avatar: 'Cambiar avatar',
+ profile_banner: 'Cabecera del perfil',
+ current_profile_banner: 'Cabecera actual',
+ set_new_profile_banner: 'Cambiar cabecera',
+ profile_background: 'Fondo del Perfil',
+ set_new_profile_background: 'Cambiar fondo del perfil',
+ settings: 'Ajustes',
+ theme: 'Tema',
+ filtering: 'Filtros',
+ filtering_explanation: 'Todos los estados que contengan estas palabras serán silenciados, una por línea',
+ attachments: 'Adjuntos',
+ hide_attachments_in_tl: 'Ocultar adjuntos en la línea temporal',
+ hide_attachments_in_convo: 'Ocultar adjuntos en las conversaciones',
+ nsfw_clickthrough: 'Activar el clic para ocultar los adjuntos NSFW',
+ autoload: 'Activar carga automática al llegar al final de la página',
+ reply_link_preview: 'Activar la previsualización del enlace de responder al pasar el ratón por encima'
+ },
+ notifications: {
+ notifications: 'Notificaciones',
+ read: '¡Leído!',
+ followed_you: 'empezó a seguirte'
+ },
+ login: {
+ login: 'Identificación',
+ username: 'Usuario',
+ password: 'Contraseña',
+ register: 'Registrar',
+ logout: 'Salir'
+ },
+ registration: {
+ registration: 'Registro',
+ fullname: 'Nombre a mostrar',
+ email: 'Correo electrónico',
+ bio: 'Biografía',
+ password_confirm: 'Confirmación de contraseña'
+ },
+ post_status: {
+ posting: 'Publicando',
+ default: 'Acabo de aterrizar en L.A.'
+ },
+ finder: {
+ find_user: 'Encontrar usuario',
+ error_fetching_user: 'Error al buscar usuario'
+ },
+ general: {
+ submit: 'Enviar'
+ }
+}
+
const messages = {
de,
fi,
en,
et,
hu,
+ ro,
ja,
fr,
it,
- pl
+ pl,
+ es
}
export default messages
diff --git a/src/main.js b/src/main.js
index 9d2930b6..9e0b9e7c 100644
--- a/src/main.js
+++ b/src/main.js
@@ -25,12 +25,15 @@ import createPersistedState from './lib/persisted_state.js'
import messages from './i18n/messages.js'
+const currentLocale = (window.navigator.language || 'en').split('-')[0]
+
Vue.use(Vuex)
Vue.use(VueRouter)
Vue.use(VueTimeago, {
- locale: 'en-US',
+ locale: currentLocale === 'ja' ? 'ja' : 'en',
locales: {
- 'en-US': require('../static/timeago.json')
+ 'en': require('../static/timeago-en.json'),
+ 'ja': require('../static/timeago-ja.json')
}
})
Vue.use(VueI18n)
@@ -83,8 +86,6 @@ const router = new VueRouter({
}
})
-const currentLocale = (window.navigator.language || 'en').split('-')[0]
-
const i18n = new VueI18n({
locale: currentLocale,
fallbackLocale: 'en',
diff --git a/src/modules/statuses.js b/src/modules/statuses.js
index 1cafa419..5f2f8152 100644
--- a/src/modules/statuses.js
+++ b/src/modules/statuses.js
@@ -271,8 +271,14 @@ const addNewStatuses = (state, { statuses, showImmediately = false, timeline, us
let retweet
// If the retweeted status is already there, don't add the retweet
// to the timeline.
- if (timeline && find(timelineObject.statuses, {id: retweetedStatus.id})) {
- // Already have it visible, don't add to timeline, don't show.
+ if (timeline && find(timelineObject.statuses, (s) => {
+ if (s.retweeted_status) {
+ return s.id === retweetedStatus.id || s.retweeted_status.id === retweetedStatus.id
+ } else {
+ return s.id === retweetedStatus.id
+ }
+ })) {
+ // Already have it visible (either as the original or another RT), don't add to timeline, don't show.
retweet = addStatus(status, false, false)
} else {
retweet = addStatus(status, showImmediately)