summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--assets/css/default.css24
-rw-r--r--config/config.example.yml10
-rw-r--r--locales/cs.json2
-rw-r--r--locales/es.json21
-rw-r--r--locales/ko.json15
-rw-r--r--src/invidious/comments.cr20
6 files changed, 63 insertions, 29 deletions
diff --git a/assets/css/default.css b/assets/css/default.css
index 42f6958f..23649f8f 100644
--- a/assets/css/default.css
+++ b/assets/css/default.css
@@ -322,6 +322,30 @@ p.video-data { margin: 0; font-weight: bold; font-size: 80%; }
/*
+ * Comments & community posts
+ */
+
+#comments {
+ max-width: 800px;
+ margin: auto;
+}
+
+.video-iframe-wrapper {
+ position: relative;
+ height: 0;
+ padding-bottom: 56.25%;
+}
+
+.video-iframe {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ border: none;
+}
+
+/*
* Footer
*/
diff --git a/config/config.example.yml b/config/config.example.yml
index 8abe1b9e..7ea80017 100644
--- a/config/config.example.yml
+++ b/config/config.example.yml
@@ -817,6 +817,16 @@ default_user_preferences:
## Default: true
##
#vr_mode: true
+
+ ##
+ ## Save the playback position
+ ## Allow to continue watching at the previous position when
+ ## watching the same video.
+ ##
+ ## Accepted values: true, false
+ ## Default: false
+ ##
+ #save_player_pos: false
# -----------------------------
# Subscription feed
diff --git a/locales/cs.json b/locales/cs.json
index 0e8610bf..d9e5b4d5 100644
--- a/locales/cs.json
+++ b/locales/cs.json
@@ -13,7 +13,7 @@
"Previous page": "Předchozí strana",
"Clear watch history?": "Smazat historii?",
"New password": "Nové heslo",
- "New passwords must match": "Hesla se musí schodovat",
+ "New passwords must match": "Hesla se musí shodovat",
"Cannot change password for Google accounts": "Nelze změnit heslo pro účty Google",
"Authorize token?": "Autorizovat token?",
"Authorize token for `x`?": "Autorizovat token pro `x`?",
diff --git a/locales/es.json b/locales/es.json
index 09f510a7..68ff0170 100644
--- a/locales/es.json
+++ b/locales/es.json
@@ -398,25 +398,24 @@
"search_filters_features_option_three_sixty": "360°",
"videoinfo_watch_on_youTube": "Ver en YouTube",
"preferences_save_player_pos_label": "Guardar posición de reproducción: ",
- "generic_views_count": "{{count}} visualización",
- "generic_views_count_plural": "{{count}} visualizaciones",
+ "generic_views_count": "{{count}} vista",
+ "generic_views_count_plural": "{{count}} vistas",
"generic_subscribers_count": "{{count}} suscriptor",
"generic_subscribers_count_plural": "{{count}} suscriptores",
"generic_subscriptions_count": "{{count}} suscripción",
"generic_subscriptions_count_plural": "{{count}} suscripciones",
- "subscriptions_unseen_notifs_count": "{{count}} notificación no vista",
- "subscriptions_unseen_notifs_count_plural": "{{count}} notificaciones no vistas",
+ "subscriptions_unseen_notifs_count": "{{count}} notificación sin ver",
+ "subscriptions_unseen_notifs_count_plural": "{{count}} notificaciones sin ver",
"generic_count_days": "{{count}} día",
"generic_count_days_plural": "{{count}} días",
"comments_view_x_replies": "Ver {{count}} respuesta",
"comments_view_x_replies_plural": "Ver {{count}} respuestas",
"generic_count_weeks": "{{count}} semana",
"generic_count_weeks_plural": "{{count}} semanas",
- "generic_playlists_count": "{{count}} lista de reproducción",
- "generic_playlists_count_plural": "{{count}} listas de reproducción",
- "generic_videos_count_0": "{{count}} video",
- "generic_videos_count_1": "{{count}} videos",
- "generic_videos_count_2": "{{count}} videos",
+ "generic_playlists_count": "{{count}} reproducción",
+ "generic_playlists_count_plural": "{{count}} reproducciones",
+ "generic_videos_count": "{{count}} video",
+ "generic_videos_count_plural": "{{count}} videos",
"generic_count_months": "{{count}} mes",
"generic_count_months_plural": "{{count}} meses",
"comments_points_count": "{{count}} punto",
@@ -469,8 +468,8 @@
"search_filters_duration_option_none": "Cualquier duración",
"search_filters_features_option_vr180": "VR180",
"search_filters_apply_button": "Aplicar filtros",
- "tokens_count": "{{count}} ficha",
- "tokens_count_plural": "{{count}} fichas",
+ "tokens_count": "{{count}} token",
+ "tokens_count_plural": "{{count}} tokens",
"search_message_use_another_instance": " También puede <a href=\"`x`\">buscar en otra instancia</a>.",
"Popular enabled: ": "¿Habilitar la sección popular? ",
"error_video_not_in_playlist": "El video que solicitaste no existe en esta lista de reproducción. <a href=\"`x`\">Haz clic aquí para acceder a la página de inicio de la lista de reproducción.</a>",
diff --git a/locales/ko.json b/locales/ko.json
index d4f3a711..2b454add 100644
--- a/locales/ko.json
+++ b/locales/ko.json
@@ -46,7 +46,7 @@
"Log in/register": "로그인/회원가입",
"Log in": "로그인",
"source": "출처",
- "JavaScript license information": "자바스크립트 라이센스 정보",
+ "JavaScript license information": "자바스크립트 라이선스 정보",
"An alternative front-end to YouTube": "유튜브의 프론트엔드 대안",
"History": "역사",
"Delete account?": "계정을 삭제 하시겠습니까?",
@@ -116,7 +116,7 @@
"Show replies": "댓글 보기",
"Hide replies": "댓글 숨기기",
"Incorrect password": "잘못된 비밀번호",
- "License: ": "라이센스: ",
+ "License: ": "라이선스: ",
"Genre: ": "장르: ",
"Editing playlist `x`": "재생목록 `x` 수정하기",
"Playlist privacy": "재생목록 공개 범위",
@@ -135,7 +135,7 @@
"Unlisted": "목록에 없음",
"Public": "공개",
"View privacy policy.": "개인정보 처리방침 보기.",
- "View JavaScript license information.": "자바스크립트 라이센스 정보 보기.",
+ "View JavaScript license information.": "자바스크립트 라이선스 정보 보기.",
"Source available here.": "소스는 여기에서 사용할 수 있습니다.",
"Log out": "로그아웃",
"search": "검색",
@@ -460,5 +460,12 @@
"channel_tab_shorts_label": "쇼츠",
"channel_tab_streams_label": "실시간 스트리밍",
"channel_tab_channels_label": "채널",
- "channel_tab_playlists_label": "재생목록"
+ "channel_tab_playlists_label": "재생목록",
+ "Standard YouTube license": "표준 유튜브 라이선스",
+ "Song: ": "제목: ",
+ "Channel Sponsor": "채널 스폰서",
+ "Album: ": "앨범: ",
+ "Music in this video": "동영상 속 음악",
+ "Artist: ": "아티스트: ",
+ "Download is disabled": "다운로드가 비활성화 되어있음"
}
diff --git a/src/invidious/comments.cr b/src/invidious/comments.cr
index ec4449f0..01556099 100644
--- a/src/invidious/comments.cr
+++ b/src/invidious/comments.cr
@@ -372,32 +372,25 @@ def template_youtube_comments(comments, locale, thin_mode, is_replies = false)
</div>
END_HTML
when "video"
- html << <<-END_HTML
- <div class="pure-g">
- <div class="pure-u-1 pure-u-md-1-2">
- <div style="position:relative;width:100%;height:0;padding-bottom:56.25%;margin-bottom:5px">
- END_HTML
-
if attachment["error"]?
html << <<-END_HTML
+ <div class="pure-g video-iframe-wrapper">
<p>#{attachment["error"]}</p>
+ </div>
END_HTML
else
html << <<-END_HTML
- <iframe id='ivplayer' style='position:absolute;width:100%;height:100%;left:0;top:0' src='/embed/#{attachment["videoId"]?}?autoplay=0' style='border:none;'></iframe>
+ <div class="pure-g video-iframe-wrapper">
+ <iframe class="video-iframe" src='/embed/#{attachment["videoId"]?}?autoplay=0'></iframe>
+ </div>
END_HTML
end
-
- html << <<-END_HTML
- </div>
- </div>
- </div>
- END_HTML
else nil # Ignore
end
end
html << <<-END_HTML
+ <p>
<span title="#{Time.unix(child["published"].as_i64).to_s(translate(locale, "%A %B %-d, %Y"))}">#{translate(locale, "`x` ago", recode_date(Time.unix(child["published"].as_i64), locale))} #{child["isEdited"] == true ? translate(locale, "(edited)") : ""}</span>
|
END_HTML
@@ -416,6 +409,7 @@ def template_youtube_comments(comments, locale, thin_mode, is_replies = false)
html << <<-END_HTML
<i class="icon ion-ios-thumbs-up"></i> #{number_with_separator(child["likeCount"])}
+ </p>
END_HTML
if child["creatorHeart"]?