mirror of
https://github.com/iv-org/invidious.git
synced 2024-11-13 16:57:05 +05:30
Compare commits
66 Commits
e2cb750141
...
6f46beffb6
Author | SHA1 | Date | |
---|---|---|---|
|
6f46beffb6 | ||
|
b99dabd9f6 | ||
|
8d30ac2c71 | ||
|
d87ab6bbd1 | ||
|
a88a723de3 | ||
|
d5f5490aee | ||
|
82d797b74e | ||
|
97895a491a | ||
|
0ac9367322 | ||
|
d3830f7870 | ||
|
3cfcc16403 | ||
|
171c0a0814 | ||
|
82ac9a8609 | ||
|
7c79ee7cc2 | ||
|
f6e09250cd | ||
|
0fecde6917 | ||
|
66f5b12ecd | ||
|
77f57714ea | ||
|
d9afe38504 | ||
|
3af11d800c | ||
|
d72531d843 | ||
|
ecfcad8d1c | ||
|
d63b15dc1c | ||
|
edb69d601e | ||
|
51562f4b24 | ||
|
76f045b8d7 | ||
|
46eaa0f9b8 | ||
|
56bccaba77 | ||
|
4e8d03221b | ||
|
5d46eba6f2 | ||
|
d3eedab545 | ||
|
cd43997bba | ||
|
fead7603e6 | ||
|
486b5b363c | ||
|
2b3619e489 | ||
|
7a95cb43ef | ||
|
e09a7de5c7 | ||
|
79d1aaff1a | ||
|
d7a5ca8fff | ||
|
542d4fe553 | ||
|
33df8249f1 | ||
|
4e7fd7ac3b | ||
|
8912e2448d | ||
|
98f1e4170b | ||
|
b384133dc9 | ||
|
1961fc3b11 | ||
|
2e649363d2 | ||
|
53e8a5d62d | ||
|
a021b93063 | ||
|
d9df90b5e3 | ||
|
cec3cfba77 | ||
|
de918b9234 | ||
|
5e899d73a9 | ||
|
f247b2f862 | ||
|
bd34659ff6 | ||
|
f1baeef4bc | ||
|
157c4c3e98 | ||
|
b2133c6b2c | ||
|
9980c0e00f | ||
|
aa96cf3453 | ||
|
41c978d350 | ||
|
cff25a7b25 | ||
|
5b11ca22d0 | ||
|
6db4a46c5f | ||
|
824cc1a5aa | ||
|
bf470704a5 |
@ -38,6 +38,9 @@ Style/RedundantBegin:
|
||||
Style/RedundantReturn:
|
||||
Enabled: false
|
||||
|
||||
Style/RedundantNext:
|
||||
Enabled: false
|
||||
|
||||
Style/ParenthesesAroundCondition:
|
||||
Enabled: false
|
||||
|
||||
|
2
.github/CODEOWNERS
vendored
2
.github/CODEOWNERS
vendored
@ -6,7 +6,7 @@ docker/ @unixfox
|
||||
kubernetes/ @unixfox
|
||||
|
||||
README.md @thefrenchghosty
|
||||
config/config.example.yml @thefrenchghosty @SamantazFox @unixfox
|
||||
config/config.example.yml @SamantazFox @unixfox
|
||||
|
||||
scripts/ @syeopite
|
||||
shards.lock @syeopite
|
||||
|
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
@ -117,7 +117,7 @@ jobs:
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
file: docker/Dockerfile.arm64
|
||||
file: docker/Dockerfile.arm64-musl-cross
|
||||
platforms: linux/arm64/v8
|
||||
build-args: release=0
|
||||
|
||||
|
34
CHANGELOG.md
34
CHANGELOG.md
@ -1,5 +1,39 @@
|
||||
# CHANGELOG
|
||||
|
||||
## vX.Y.0 (future)
|
||||
|
||||
|
||||
### Full list of pull requests merged since the last release (newest first)
|
||||
|
||||
* Search: Fix 'youtu.be' URLs in sanitizer ([#4894], by @SamantazFox)
|
||||
* Ameba: Disable Style/RedundantNext rule ([#4888], thanks @syeopite)
|
||||
* Playlists: Fix 'invalid byte sequence' error when subscribing ([#4887], thanks @DmitrySandalov)
|
||||
* Parse more metadata badges for SearchVideos ([#4863], thanks @ChunkyProgrammer)
|
||||
* Translations update from Hosted Weblate ([#4862], thanks to our many translators)
|
||||
* Videos: Convert URL before putting result into cache ([#4850], by @SamantazFox)
|
||||
* HTML: Add error message to "search issues on GitHub" link ([#4652], thanks @tracedgod)
|
||||
* Preferences: Add option to control preloading of video data ([#4122], thanks @Nerdmind)
|
||||
* Performance: Improve speed of automatic instance redirection ([#4193], thanks @syeopite)
|
||||
* Remove myself from CODEOWNERS on the config file ([#4942], by @TheFrenchGhosty)
|
||||
* Update latest version WEB_CREATOR + fix comment web embed ([#4930], thanks @unixfox)
|
||||
* use WEB_CREATOR when po_token with WEB_EMBED as a fallback ([#4928], thanks @unixfox)
|
||||
* Revert "use web screen embed for fixing potoken functionality"
|
||||
* use web screen embed for fixing potoken functionality ([#4923], thanks @unixfox)
|
||||
|
||||
[#4122]: https://github.com/iv-org/invidious/pull/4122
|
||||
[#4193]: https://github.com/iv-org/invidious/pull/4193
|
||||
[#4652]: https://github.com/iv-org/invidious/pull/4652
|
||||
[#4850]: https://github.com/iv-org/invidious/pull/4850
|
||||
[#4862]: https://github.com/iv-org/invidious/pull/4862
|
||||
[#4863]: https://github.com/iv-org/invidious/pull/4863
|
||||
[#4887]: https://github.com/iv-org/invidious/pull/4887
|
||||
[#4888]: https://github.com/iv-org/invidious/pull/4888
|
||||
[#4894]: https://github.com/iv-org/invidious/pull/4894
|
||||
[#4923]: https://github.com/iv-org/invidious/pull/4923
|
||||
[#4928]: https://github.com/iv-org/invidious/pull/4928
|
||||
[#4930]: https://github.com/iv-org/invidious/pull/4930
|
||||
[#4942]: https://github.com/iv-org/invidious/pull/4942
|
||||
|
||||
|
||||
## v2.20240825.2 (2024-08-26)
|
||||
|
||||
|
101
Makefile
101
Makefile
@ -9,6 +9,7 @@ NO_DBG_SYMBOLS := 0
|
||||
|
||||
|
||||
FLAGS ?=
|
||||
LDFLAGS ?=
|
||||
|
||||
|
||||
ifeq ($(RELEASE), 1)
|
||||
@ -17,6 +18,7 @@ endif
|
||||
|
||||
ifeq ($(STATIC), 1)
|
||||
FLAGS += --static
|
||||
LDFLAGS += -static
|
||||
endif
|
||||
|
||||
|
||||
@ -31,6 +33,13 @@ ifeq ($(API_ONLY), 1)
|
||||
endif
|
||||
|
||||
|
||||
#FLAGS += --progress --stats --error-trace
|
||||
|
||||
|
||||
LIBS_SSL = $(shell command -v pkg-config > /dev/null && pkg-config --libs --silence-errors libssl || printf %s '-lssl -lcrypto')
|
||||
LIBS_CRYPTO = $(shell command -v pkg-config > /dev/null && pkg-config --libs --silence-errors libcrypto || printf %s '-lcrypto')
|
||||
|
||||
|
||||
# -----------------------
|
||||
# Main
|
||||
# -----------------------
|
||||
@ -40,19 +49,80 @@ all: invidious
|
||||
get-libs:
|
||||
shards install --production
|
||||
|
||||
# TODO: add support for ARM64 via cross-compilation
|
||||
invidious: get-libs
|
||||
crystal build src/invidious.cr $(FLAGS) --progress --stats --error-trace
|
||||
|
||||
crystal build src/invidious.cr $(FLAGS)
|
||||
|
||||
run: invidious
|
||||
./invidious
|
||||
|
||||
|
||||
# -----------------------
|
||||
# Development
|
||||
# Cross-compilation (Host)
|
||||
# -----------------------
|
||||
|
||||
# Supported cross-sompilation targets:
|
||||
# - amd64-glibc (x86_64-linux-gnu)
|
||||
# - amd64-musl (x86_64-linux-musl)
|
||||
# - arm64-glibc (aarch64-linux-gnu)
|
||||
# - arm64-musl (aarch64-linux-musl)
|
||||
# - armhf (arm-linux-gnueabihf)
|
||||
|
||||
invidious-cross-amd64-glibc:
|
||||
crystal build src/invidious.cr $(FLAGS) -Duse_pcre -Dskip_videojs_download \
|
||||
--cross-compile --target='x86_64-linux-gnu' -o invidious-amd64-glibc
|
||||
|
||||
invidious-cross-amd64-musl:
|
||||
crystal build src/invidious.cr $(FLAGS) -Duse_pcre -Dskip_videojs_download \
|
||||
--cross-compile --target='x86_64-linux-musl' -o invidious-amd64-musl
|
||||
|
||||
|
||||
invidious-cross-arm64-glibc:
|
||||
crystal build src/invidious.cr $(FLAGS) -Duse_pcre -Dskip_videojs_download \
|
||||
--cross-compile --target='aarch64-linux-gnu' -o invidious-arm64-glibc
|
||||
|
||||
invidious-cross-arm64-musl:
|
||||
crystal build src/invidious.cr $(FLAGS) -Duse_pcre -Dskip_videojs_download \
|
||||
--cross-compile --target='aarch64-linux-musl' -o invidious-arm64-musl
|
||||
|
||||
|
||||
invidious-cross-armhf:
|
||||
crystal build src/invidious.cr $(FLAGS) -Duse_pcre -Dskip_videojs_download \
|
||||
--cross-compile --target='arm-linux-gnueabihf' -o invidious-armhf
|
||||
|
||||
|
||||
# Build everything at once
|
||||
invidious-cross-all: invidious-cross-amd64-glibc
|
||||
invidious-cross-all: invidious-cross-amd64-musl
|
||||
invidious-cross-all: invidious-cross-arm64-glibc
|
||||
invidious-cross-all: invidious-cross-arm64-musl
|
||||
invidious-cross-all: invidious-cross-armhf
|
||||
|
||||
|
||||
# -----------------------
|
||||
# Cross-compilation (Target)
|
||||
# -----------------------
|
||||
|
||||
invidious-amd64-glibc:
|
||||
invidious-arm64-glibc:
|
||||
cc "$@.o" -o "$@" -rdynamic $(LDFLAGS) \
|
||||
-lyaml -lxml2 -lsqlite3 -lz -llzma $(LIBS_SSL) $(LIBS_CRYPTO) \
|
||||
-lpcre -lm -lgc -lpthread -levent -lrt -lpthread -ldl
|
||||
|
||||
invidious-amd64-musl:
|
||||
invidious-arm64-musl:
|
||||
cc "$@.o" -o "$@" -rdynamic $(LDFLAGS) \
|
||||
-lyaml -lxml2 -lsqlite3 -lz -llzma $(LIBS_SSL) $(LIBS_CRYPTO) \
|
||||
-lpcre -lgc -levent
|
||||
|
||||
invidious-armhf:
|
||||
cc "$@.o" -o "$@" -rdynamic $(LDFLAGS) \
|
||||
-lyaml -lxml2 -lsqlite3 -lz -llzma $(LIBS_SSL) $(LIBS_CRYPTO) \
|
||||
-lpcre -lm -lgc -lpthread -levent -lpthread -ldl
|
||||
|
||||
|
||||
# -----------------------
|
||||
# Development
|
||||
# -----------------------
|
||||
|
||||
format:
|
||||
crystal tool format
|
||||
@ -77,7 +147,7 @@ verify:
|
||||
# -----------------------
|
||||
|
||||
clean:
|
||||
rm invidious
|
||||
rm -f invidious invidious-*
|
||||
|
||||
distclean: clean
|
||||
rm -rf libs
|
||||
@ -111,9 +181,28 @@ help:
|
||||
@echo ""
|
||||
@echo " API_ONLY Build invidious without a GUI (Default: 0)"
|
||||
@echo " NO_DBG_SYMBOLS Strip debug symbols (Default: 0)"
|
||||
|
||||
@echo ""
|
||||
@echo ""
|
||||
@echo "Cross-compiling"
|
||||
@echo ""
|
||||
@echo "To cross compile, run 'make invidious-cross-{arch}' on the build host,"
|
||||
@echo "then move the .o file to the target host and run 'make invidious-{arch}'"
|
||||
@echo "on there (requires crystal and all the dependencies to be installed)"
|
||||
@echo ""
|
||||
@echo "Note: If 'STATIC=1' was used on the build host, then it MUST be used on"
|
||||
@echo " 'the target host too!"
|
||||
@echo ""
|
||||
@echo "Supported cross-sompilation archs:"
|
||||
@echo " - amd64-glibc (x86_64-linux-gnu)"
|
||||
@echo " - amd64-musl (x86_64-linux-musl)"
|
||||
@echo " - arm64-glibc (aarch64-linux-gnu)"
|
||||
@echo " - arm64-musl (aarch64-linux-musl)"
|
||||
@echo " - armhf (arm-linux-gnueabihf)"
|
||||
|
||||
|
||||
# No targets generates an output named after themselves
|
||||
.PHONY: all get-libs build amd64 run
|
||||
.PHONY: format test verify clean distclean help
|
||||
.PHONY: invidious-cross-amd64-glibc invidious-cross-amd64-musl
|
||||
.PHONY: invidious-cross-arm64-glibc invidious-cross-arm64-musl
|
||||
.PHONY: invidious-cross-armhf
|
||||
|
@ -3,7 +3,6 @@ var player_data = JSON.parse(document.getElementById('player_data').textContent)
|
||||
var video_data = JSON.parse(document.getElementById('video_data').textContent);
|
||||
|
||||
var options = {
|
||||
preload: 'auto',
|
||||
liveui: true,
|
||||
playbackRates: [0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0],
|
||||
controlBar: {
|
||||
|
@ -707,6 +707,22 @@ default_user_preferences:
|
||||
# Video player behavior
|
||||
# -----------------------------
|
||||
|
||||
##
|
||||
## This option controls the value of the HTML5 <video> element's
|
||||
## "preload" attribute.
|
||||
##
|
||||
## If set to 'false', no video data will be loaded until the user
|
||||
## explicitly starts the video by clicking the "Play" button.
|
||||
## If set to 'true', the web browser will buffer some video data
|
||||
## while the page is loading.
|
||||
##
|
||||
## See: https://www.w3schools.com/tags/att_video_preload.asp
|
||||
##
|
||||
## Accepted values: true, false
|
||||
## Default: true
|
||||
##
|
||||
#preload: true
|
||||
|
||||
##
|
||||
## Automatically play videos on page load.
|
||||
##
|
||||
|
35
docker/Dockerfile.arm64-musl-cross
Normal file
35
docker/Dockerfile.arm64-musl-cross
Normal file
@ -0,0 +1,35 @@
|
||||
FROM alpine:3.18 AS builder
|
||||
|
||||
RUN apk add --no-cache gcc make yaml-static libxml2-static sqlite-static zlib-static \
|
||||
xz-static openssl-libs-static openssl-dev pcre-dev pcre2-dev gc-dev libevent-static musl-dev
|
||||
|
||||
ARG release
|
||||
|
||||
COPY ./Makefile .
|
||||
COPY ./invidious-arm64-musl.o .
|
||||
|
||||
RUN make invidious-arm64-musl STATIC=1
|
||||
|
||||
|
||||
FROM alpine:3.18
|
||||
|
||||
RUN apk add --no-cache librsvg ttf-opensans tini
|
||||
WORKDIR /invidious
|
||||
|
||||
RUN addgroup -g 1000 -S invidious && \
|
||||
adduser -u 1000 -S invidious -G invidious
|
||||
|
||||
COPY --chown=invidious ./config/ ./config/
|
||||
RUN mv -n config/config.example.yml config/config.yml
|
||||
RUN sed -i 's/host: \(127.0.0.1\|localhost\)/host: invidious-db/' config/config.yml
|
||||
|
||||
COPY ./locales/ ./locales/
|
||||
COPY ./assets ./assets/
|
||||
RUN chmod o+rX -R ./assets ./config ./locales
|
||||
|
||||
COPY --from=builder /invidious-arm64-musl .
|
||||
|
||||
EXPOSE 3000
|
||||
USER invidious
|
||||
ENTRYPOINT ["/sbin/tini", "--"]
|
||||
CMD [ "/invidious/invidious-arm64-musl" ]
|
@ -483,7 +483,7 @@
|
||||
"comments_view_x_replies_3": "عرض رد {{count}}",
|
||||
"comments_view_x_replies_4": "عرض الردود {{count}}",
|
||||
"comments_view_x_replies_5": "عرض رد {{count}}",
|
||||
"search_message_use_another_instance": " يمكنك أيضًا البحث عن <a href=\"`x`\"> في مثيل آخر </a>.",
|
||||
"search_message_use_another_instance": "يمكنك أيضًا البحث عن <a href=\"`x`\"> في مثيل آخر </a>.",
|
||||
"comments_points_count_0": "{{count}} نقطة",
|
||||
"comments_points_count_1": "نقطة واحدة",
|
||||
"comments_points_count_2": "نقطتان",
|
||||
|
@ -471,7 +471,7 @@
|
||||
"search_filters_title": "Filtry",
|
||||
"search_filters_duration_option_medium": "Střední (4 - 20 minut)",
|
||||
"search_filters_duration_option_long": "Dlouhá (> 20 minut)",
|
||||
"search_message_use_another_instance": " Můžete také <a href=\"`x`\">hledat na jiné instanci</a>.",
|
||||
"search_message_use_another_instance": "Můžete také <a href=\"`x`\">hledat na jiné instanci</a>.",
|
||||
"search_filters_features_label": "Vlastnosti",
|
||||
"search_filters_features_option_three_sixty": "360°",
|
||||
"search_filters_features_option_vr180": "VR180",
|
||||
|
@ -47,6 +47,7 @@
|
||||
"Preferences": "Einstellungen",
|
||||
"preferences_category_player": "Wiedergabeeinstellungen",
|
||||
"preferences_video_loop_label": "Immer wiederholen: ",
|
||||
"preferences_preload_label": "Videodaten vorladen: ",
|
||||
"preferences_autoplay_label": "Automatisch abspielen: ",
|
||||
"preferences_continue_label": "Immer automatisch nächstes Video abspielen: ",
|
||||
"preferences_continue_autoplay_label": "Nächstes Video automatisch abspielen: ",
|
||||
@ -322,7 +323,7 @@
|
||||
"channel_tab_community_label": "Gemeinschaft",
|
||||
"search_filters_sort_option_relevance": "Relevanz",
|
||||
"search_filters_sort_option_rating": "Bewertung",
|
||||
"search_filters_sort_option_date": "Datum",
|
||||
"search_filters_sort_option_date": "Hochladedatum",
|
||||
"search_filters_sort_option_views": "Aufrufe",
|
||||
"search_filters_type_label": "Inhaltstyp",
|
||||
"search_filters_duration_label": "Dauer",
|
||||
@ -454,7 +455,7 @@
|
||||
"Portuguese (auto-generated)": "Portugiesisch (automatisch generiert)",
|
||||
"search_filters_title": "Filtern",
|
||||
"search_message_change_filters_or_query": "Versuchen Sie, Ihre Suchanfrage zu erweitern und/oder die Filter zu ändern.",
|
||||
"search_message_use_another_instance": " Sie können auch <a href=\"`x`\">auf einer anderen Instanz suchen</a>.",
|
||||
"search_message_use_another_instance": "Sie können auch <a href=\"`x`\">auf einer anderen Instanz suchen</a>.",
|
||||
"Popular enabled: ": "„Beliebt“-Seite aktiviert: ",
|
||||
"search_message_no_results": "Keine Ergebnisse gefunden.",
|
||||
"search_filters_duration_option_medium": "Mittel (4 - 20 Minuten)",
|
||||
@ -493,5 +494,8 @@
|
||||
"Add to playlist": "Einer Wiedergabeliste hinzufügen",
|
||||
"Search for videos": "Nach Videos suchen",
|
||||
"toggle_theme": "Thema wechseln",
|
||||
"Add to playlist: ": "Einer Wiedergabeliste hinzufügen: "
|
||||
"Add to playlist: ": "Einer Wiedergabeliste hinzufügen: ",
|
||||
"carousel_go_to": "Zu Folie `x` gehen",
|
||||
"carousel_slide": "Folie {{current}} von {{total}}",
|
||||
"carousel_skip": "Karussell überspringen"
|
||||
}
|
||||
|
@ -489,5 +489,10 @@
|
||||
"search_filters_date_label": "Ημερομηνία αναφόρτωσης",
|
||||
"Search for videos": "Αναζήτηση βίντεο",
|
||||
"The Popular feed has been disabled by the administrator.": "Η δημοφιλής ροή έχει απενεργοποιηθεί από τον διαχειριστή.",
|
||||
"Answer": "Απάντηση"
|
||||
"Answer": "Απάντηση",
|
||||
"Add to playlist": "Λίιστα αναπαραγωγής",
|
||||
"Add to playlist: ": "Λίστα αναπαραγωγής: ",
|
||||
"carousel_slide": "Εικόνα {{current}}απο {{total}}",
|
||||
"carousel_go_to": "Πήγαινε στην εικόνα`x`",
|
||||
"toggle_theme": "Αλλαγή θέματος"
|
||||
}
|
||||
|
@ -71,6 +71,7 @@
|
||||
"Preferences": "Preferences",
|
||||
"preferences_category_player": "Player preferences",
|
||||
"preferences_video_loop_label": "Always loop: ",
|
||||
"preferences_preload_label": "Preload video data: ",
|
||||
"preferences_autoplay_label": "Autoplay: ",
|
||||
"preferences_continue_label": "Play next by default: ",
|
||||
"preferences_continue_autoplay_label": "Autoplay next video: ",
|
||||
@ -190,7 +191,7 @@
|
||||
"Switch Invidious Instance": "Switch Invidious Instance",
|
||||
"search_message_no_results": "No results found.",
|
||||
"search_message_change_filters_or_query": "Try widening your search query and/or changing the filters.",
|
||||
"search_message_use_another_instance": " You can also <a href=\"`x`\">search on another instance</a>.",
|
||||
"search_message_use_another_instance": "You can also <a href=\"`x`\">search on another instance</a>.",
|
||||
"Hide annotations": "Hide annotations",
|
||||
"Show annotations": "Show annotations",
|
||||
"Genre: ": "Genre: ",
|
||||
@ -422,7 +423,7 @@
|
||||
"search_filters_title": "Filters",
|
||||
"search_filters_date_label": "Upload date",
|
||||
"search_filters_date_option_none": "Any date",
|
||||
"search_filters_date_option_hour": "Last Hour",
|
||||
"search_filters_date_option_hour": "Last hour",
|
||||
"search_filters_date_option_today": "Today",
|
||||
"search_filters_date_option_week": "This week",
|
||||
"search_filters_date_option_month": "This month",
|
||||
@ -454,7 +455,7 @@
|
||||
"search_filters_sort_label": "Sort By",
|
||||
"search_filters_sort_option_relevance": "Relevance",
|
||||
"search_filters_sort_option_rating": "Rating",
|
||||
"search_filters_sort_option_date": "Upload Date",
|
||||
"search_filters_sort_option_date": "Upload date",
|
||||
"search_filters_sort_option_views": "View count",
|
||||
"search_filters_apply_button": "Apply selected filters",
|
||||
"Current version: ": "Current version: ",
|
||||
|
@ -478,7 +478,7 @@
|
||||
"tokens_count_0": "{{count}} token",
|
||||
"tokens_count_1": "{{count}} tokens",
|
||||
"tokens_count_2": "{{count}} tokens",
|
||||
"search_message_use_another_instance": " También puede <a href=\"`x`\">buscar en otra instancia</a>.",
|
||||
"search_message_use_another_instance": "También puedes <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>",
|
||||
"channel_tab_streams_label": "Directos",
|
||||
|
@ -360,7 +360,7 @@
|
||||
"search_filters_duration_label": "مدت",
|
||||
"search_filters_features_label": "ویژگیها",
|
||||
"search_filters_sort_label": "به ترتیب",
|
||||
"search_filters_date_option_hour": "یک ساعت گذشته",
|
||||
"search_filters_date_option_hour": "ساعت گذشته",
|
||||
"search_filters_date_option_today": "امروز",
|
||||
"search_filters_date_option_week": "این هفته",
|
||||
"search_filters_date_option_month": "این ماه",
|
||||
@ -461,7 +461,7 @@
|
||||
"Song: ": "آهنگ: ",
|
||||
"Channel Sponsor": "اسپانسر کانال",
|
||||
"Standard YouTube license": "پروانه استاندارد YouTube",
|
||||
"search_message_use_another_instance": " شما همچنین میتوانید <a href=\"`x`\">در نمونه دیگر هم جستجو کنید</a>.",
|
||||
"search_message_use_another_instance": "همچنین میتوانید <a href=\"`x`\">در نمونهای دیگر هم جستوجو کنید</a>.",
|
||||
"Download is disabled": "دریافت غیرفعال است",
|
||||
"crash_page_before_reporting": "پیش از گزارش ایراد، مطمئنید شوید که:",
|
||||
"playlist_button_add_items": "افزودن ویدیو",
|
||||
|
@ -484,7 +484,7 @@
|
||||
"search_filters_duration_option_medium": "Moyenne (de 4 à 20 minutes)",
|
||||
"search_filters_apply_button": "Appliquer les filtres",
|
||||
"search_message_no_results": "Aucun résultat.",
|
||||
"search_message_use_another_instance": " Vous pouvez également <a href=\"`x`\">effectuer votre recherche sur une autre instance</a>.",
|
||||
"search_message_use_another_instance": "Vous pouvez également <a href=\"`x`\">effectuer votre recherche sur une autre instance</a>.",
|
||||
"search_filters_type_option_all": "Tous les types",
|
||||
"search_filters_date_label": "Date d'ajout",
|
||||
"search_filters_features_option_vr180": "VR180",
|
||||
|
@ -449,30 +449,30 @@
|
||||
"Cantonese (Hong Kong)": "Kantonski (Hong Kong)",
|
||||
"Chinese": "Kineski",
|
||||
"Chinese (Taiwan)": "Kineski (Tajvan)",
|
||||
"Dutch (auto-generated)": "Nizozemski (automatski generiran)",
|
||||
"French (auto-generated)": "Francuski (automatski generiran)",
|
||||
"Indonesian (auto-generated)": "Indonezijski (automatski generiran)",
|
||||
"Dutch (auto-generated)": "Nizozemski (automatski generirano)",
|
||||
"French (auto-generated)": "Francuski (automatski generirano)",
|
||||
"Indonesian (auto-generated)": "Indonezijski (automatski generirano)",
|
||||
"Interlingue": "Interlingua",
|
||||
"Japanese (auto-generated)": "Japanski (automatski generiran)",
|
||||
"Russian (auto-generated)": "Ruski (automatski generiran)",
|
||||
"Turkish (auto-generated)": "Turski (automatski generiran)",
|
||||
"Vietnamese (auto-generated)": "Vijetnamski (automatski generiran)",
|
||||
"Japanese (auto-generated)": "Japanski (automatski generirano)",
|
||||
"Russian (auto-generated)": "Ruski (automatski generirano)",
|
||||
"Turkish (auto-generated)": "Turski (automatski generirano)",
|
||||
"Vietnamese (auto-generated)": "Vijetnamski (automatski generirano)",
|
||||
"Spanish (Spain)": "Španjolski (Španjolska)",
|
||||
"Italian (auto-generated)": "Talijanski (automatski generiran)",
|
||||
"Italian (auto-generated)": "Talijanski (automatski generirano)",
|
||||
"Portuguese (Brazil)": "Portugalski (Brazil)",
|
||||
"Spanish (Mexico)": "Španjolski (Meksiko)",
|
||||
"German (auto-generated)": "Njemački (automatski generiran)",
|
||||
"German (auto-generated)": "Njemački (automatski generirano)",
|
||||
"Chinese (China)": "Kineski (Kina)",
|
||||
"Chinese (Hong Kong)": "Kineski (Hong Kong)",
|
||||
"Korean (auto-generated)": "Korejski (automatski generiran)",
|
||||
"Portuguese (auto-generated)": "Portugalski (automatski generiran)",
|
||||
"Spanish (auto-generated)": "Španjolski (automatski generiran)",
|
||||
"Korean (auto-generated)": "Korejski (automatski generirano)",
|
||||
"Portuguese (auto-generated)": "Portugalski (automatski generirano)",
|
||||
"Spanish (auto-generated)": "Španjolski (automatski generirano)",
|
||||
"preferences_watch_history_label": "Aktiviraj povijest gledanja: ",
|
||||
"search_filters_title": "Filtri",
|
||||
"search_filters_date_option_none": "Bilo koji datum",
|
||||
"search_filters_date_label": "Datum prijenosa",
|
||||
"search_message_no_results": "Nema rezultata.",
|
||||
"search_message_use_another_instance": " Također možeš <a href=\"`x`\">tražiti na jednoj drugoj instanci</a>.",
|
||||
"search_message_use_another_instance": "Također možeš <a href=\"`x`\">tražiti na jednoj drugoj instanci</a>.",
|
||||
"search_message_change_filters_or_query": "Pokušaj proširiti upit za pretragu i/ili promijeni filtre.",
|
||||
"search_filters_features_option_vr180": "VR180",
|
||||
"search_filters_duration_option_none": "Bilo koje duljine",
|
||||
|
@ -7,7 +7,7 @@
|
||||
"invidious": "Invidious",
|
||||
"Image CAPTCHA": "Imagine CAPTCHA",
|
||||
"newest": "plus nove",
|
||||
"generic_button_save": "Salvar",
|
||||
"generic_button_save": "Salveguardar",
|
||||
"Dark mode: ": "Modo obscur: ",
|
||||
"preferences_dark_mode_label": "Thema: ",
|
||||
"preferences_category_subscription": "Preferentias de subscription",
|
||||
@ -23,7 +23,7 @@
|
||||
"light": "clar",
|
||||
"No": "Non",
|
||||
"youtube": "YouTube",
|
||||
"LIVE": "IN DIRECTE",
|
||||
"LIVE": "IN DIRECTO",
|
||||
"reddit": "Reddit",
|
||||
"preferences_category_player": "Preferentias de reproductor",
|
||||
"Preferences": "Preferentias",
|
||||
|
@ -396,7 +396,7 @@
|
||||
"toggle_theme": "Víxla þema",
|
||||
"carousel_skip": "Sleppa hringekjunni",
|
||||
"preferences_quality_option_medium": "Miðlungs",
|
||||
"search_message_use_another_instance": " Þú getur líka <a href=\"`x`\">leitað á öðrum netþjóni</a>.",
|
||||
"search_message_use_another_instance": "Þú getur líka <a href=\"`x`\">leitað á öðrum netþjóni</a>.",
|
||||
"footer_source_code": "Grunnkóði",
|
||||
"English (United Kingdom)": "Enska (Bretland)",
|
||||
"English (United States)": "Enska (Bandarísk)",
|
||||
|
@ -449,7 +449,7 @@
|
||||
"Portuguese (Brazil)": "Portoghese (Brasile)",
|
||||
"preferences_watch_history_label": "Attiva cronologia di riproduzione: ",
|
||||
"French (auto-generated)": "Francese (generati automaticamente)",
|
||||
"search_message_use_another_instance": " Puoi anche <a href=\"`x`\">cercare in un'altra istanza</a>.",
|
||||
"search_message_use_another_instance": "Puoi anche <a href=\"`x`\">cercare in un'altra istanza</a>.",
|
||||
"search_message_no_results": "Nessun risultato trovato.",
|
||||
"search_message_change_filters_or_query": "Prova ad ampliare la ricerca e/o modificare i filtri.",
|
||||
"English (United States)": "Inglese (Stati Uniti)",
|
||||
|
@ -363,7 +363,7 @@
|
||||
"search_filters_features_option_location": "場所",
|
||||
"search_filters_features_option_hdr": "HDR",
|
||||
"Current version: ": "現在のバージョン: ",
|
||||
"next_steps_error_message": "以下をお試してください: ",
|
||||
"next_steps_error_message": "以下をお試しください: ",
|
||||
"next_steps_error_message_refresh": "再読み込み",
|
||||
"next_steps_error_message_go_to_youtube": "YouTubeを開く",
|
||||
"search_filters_duration_option_short": "4分未満",
|
||||
@ -396,7 +396,7 @@
|
||||
"download_subtitles": "字幕 - `x` (.vtt)",
|
||||
"search_filters_features_option_purchased": "購入済み",
|
||||
"preferences_quality_option_dash": "DASH (適応的画質)",
|
||||
"preferences_quality_dash_option_worst": "最悪",
|
||||
"preferences_quality_dash_option_worst": "最低",
|
||||
"preferences_quality_dash_option_best": "最高",
|
||||
"videoinfo_started_streaming_x_ago": "`x`前に配信を開始",
|
||||
"videoinfo_watch_on_youTube": "YouTubeで視聴",
|
||||
@ -434,7 +434,7 @@
|
||||
"crash_page_switch_instance": "<a href=\"`x`\">別のインスタンスを使用</a>を試す",
|
||||
"crash_page_read_the_faq": "<a href=\"`x`\">よくある質問 (FAQ)</a> を読む",
|
||||
"Popular enabled: ": "人気動画を有効化 ",
|
||||
"search_message_use_another_instance": " <a href=\"`x`\">別のインスタンス上での検索</a>も可能です。",
|
||||
"search_message_use_another_instance": "<a href=\"`x`\">別のインスタンス上での検索</a>も可能です。",
|
||||
"search_filters_apply_button": "選択したフィルターを適用",
|
||||
"user_saved_playlists": "`x`個の保存済みの再生リスト",
|
||||
"crash_page_you_found_a_bug": "Invidious のバグのようです!",
|
||||
|
@ -18,8 +18,8 @@
|
||||
"preferences_related_videos_label": "관련 동영상 보기: ",
|
||||
"Fallback captions: ": "대체 자막: ",
|
||||
"preferences_captions_label": "기본 자막: ",
|
||||
"reddit": "Reddit",
|
||||
"youtube": "YouTube",
|
||||
"reddit": "레딧",
|
||||
"youtube": "유튜브",
|
||||
"preferences_comments_label": "기본 댓글: ",
|
||||
"preferences_volume_label": "플레이어 볼륨: ",
|
||||
"preferences_quality_label": "선호하는 비디오 품질: ",
|
||||
@ -48,7 +48,7 @@
|
||||
"An alternative front-end to YouTube": "유튜브의 프론트엔드 대안",
|
||||
"History": "시청 기록",
|
||||
"Delete account?": "계정을 삭제 하시겠습니까?",
|
||||
"Export data as JSON": "JSON으로 데이터 내보내기",
|
||||
"Export data as JSON": "인비디어스 데이터 내보내기 (.json)",
|
||||
"Export subscriptions as OPML (for NewPipe & FreeTube)": "OPML로 구독 내보내기 (뉴파이프 및 프리튜브)",
|
||||
"Export subscriptions as OPML": "OPML로 구독 내보내기",
|
||||
"Export": "내보내기",
|
||||
@ -78,10 +78,10 @@
|
||||
"Subscribe": "구독",
|
||||
"Unsubscribe": "구독 취소",
|
||||
"LIVE": "실시간",
|
||||
"generic_views_count_0": "조회수 {{count}}회",
|
||||
"generic_videos_count_0": "동영상 {{count}}개",
|
||||
"generic_playlists_count_0": "재생목록 {{count}}개",
|
||||
"generic_subscribers_count_0": "구독자 {{count}}명",
|
||||
"generic_views_count_0": "{{count}} 조회수",
|
||||
"generic_videos_count_0": "{{count}} 동영상",
|
||||
"generic_playlists_count_0": "{{count}} 재생목록",
|
||||
"generic_subscribers_count_0": "{{count}} 구독자",
|
||||
"generic_subscriptions_count_0": "{{count}} 구독",
|
||||
"search_filters_type_option_playlist": "재생목록",
|
||||
"Korean": "한국어",
|
||||
@ -109,14 +109,14 @@
|
||||
"This channel does not exist.": "이 채널은 존재하지 않습니다.",
|
||||
"Deleted or invalid channel": "삭제되었거나 더 이상 존재하지 않는 채널",
|
||||
"channel:`x`": "채널:`x`",
|
||||
"Show replies": "댓글 보이기",
|
||||
"Show replies": "댓글 보기",
|
||||
"Hide replies": "댓글 숨기기",
|
||||
"Incorrect password": "잘못된 비밀번호",
|
||||
"License: ": "라이선스: ",
|
||||
"Genre: ": "장르: ",
|
||||
"Editing playlist `x`": "재생목록 `x` 수정하기",
|
||||
"Playlist privacy": "재생목록 공개 범위",
|
||||
"Watch on YouTube": "YouTube에서 보기",
|
||||
"Watch on YouTube": "유튜브에서 보기",
|
||||
"Show less": "간략히",
|
||||
"Show more": "더보기",
|
||||
"Title": "제목",
|
||||
@ -125,7 +125,7 @@
|
||||
"Delete playlist": "재생목록 삭제",
|
||||
"Delete playlist `x`?": "재생목록 `x` 를 삭제하시겠습니까?",
|
||||
"Updated `x` ago": "`x` 전에 업데이트됨",
|
||||
"Released under the AGPLv3 on Github.": "GitHub에 AGPLv3 으로 배포됩니다.",
|
||||
"Released under the AGPLv3 on Github.": "깃허브에 AGPLv3 으로 배포됩니다.",
|
||||
"View all playlists": "모든 재생목록 보기",
|
||||
"Private": "비공개",
|
||||
"Unlisted": "목록에 없음",
|
||||
@ -135,12 +135,12 @@
|
||||
"Source available here.": "소스는 여기에서 사용할 수 있습니다.",
|
||||
"Log out": "로그아웃",
|
||||
"search": "검색",
|
||||
"subscriptions_unseen_notifs_count_0": "읽지 않은 알림 {{count}}개",
|
||||
"subscriptions_unseen_notifs_count_0": "{{count}} 읽지 않은 알림",
|
||||
"Subscriptions": "구독",
|
||||
"revoke": "철회",
|
||||
"unsubscribe": "구독 취소",
|
||||
"Import/export": "가져오기/내보내기",
|
||||
"tokens_count_0": "토큰 {{count}}개",
|
||||
"tokens_count_0": "{{count}} 토큰",
|
||||
"Token": "토큰",
|
||||
"Token manager": "토큰 관리자",
|
||||
"Subscription manager": "구독 관리자",
|
||||
@ -163,7 +163,7 @@
|
||||
"Clear watch history": "시청 기록 지우기",
|
||||
"preferences_category_data": "데이터 설정",
|
||||
"`x` is live": "`x` 이(가) 라이브 중입니다",
|
||||
"`x` uploaded a video": "`x` 이(가) 동영상을 게시했습니다",
|
||||
"`x` uploaded a video": "`x` 동영상 게시됨",
|
||||
"Enable web notifications": "웹 알림 활성화",
|
||||
"preferences_notifications_only_label": "알림만 표시 (있는 경우): ",
|
||||
"preferences_unseen_only_label": "시청하지 않은 것만 표시: ",
|
||||
@ -241,7 +241,7 @@
|
||||
"Could not create mix.": "믹스를 생성할 수 없습니다.",
|
||||
"`x` ago": "`x` 전",
|
||||
"comments_view_x_replies_0": "답글 {{count}}개 보기",
|
||||
"View Reddit comments": "Reddit 댓글 보기",
|
||||
"View Reddit comments": "레딧 댓글 보기",
|
||||
"Engagement: ": "약속: ",
|
||||
"Wilson score: ": "Wilson Score: ",
|
||||
"Family friendly? ": "전연령 영상입니까? ",
|
||||
@ -267,8 +267,8 @@
|
||||
"Bulgarian": "불가리아어",
|
||||
"Bosnian": "보스니아어",
|
||||
"Belarusian": "벨라루스어",
|
||||
"View more comments on Reddit": "Reddit에서 댓글 더 보기",
|
||||
"View YouTube comments": "YouTube 댓글 보기",
|
||||
"View more comments on Reddit": "레딧에서 댓글 더 보기",
|
||||
"View YouTube comments": "유튜브 댓글 보기",
|
||||
"Hi! Looks like you have JavaScript turned off. Click here to view comments, keep in mind they may take a bit longer to load.": "자바스크립트가 꺼져 있는 것 같습니다! 댓글을 보려면 여기를 클릭하세요. 댓글을 로드하는 데 시간이 조금 더 걸릴 수 있습니다.",
|
||||
"Shared `x`": "`x` 업로드",
|
||||
"Whitelisted regions: ": "차단되지 않은 지역: ",
|
||||
@ -289,7 +289,7 @@
|
||||
"Empty playlist": "재생목록 비어 있음",
|
||||
"Show annotations": "주석 보이기",
|
||||
"Hide annotations": "주석 숨기기",
|
||||
"Switch Invidious Instance": "Invidious 인스턴스 변경",
|
||||
"Switch Invidious Instance": "인비디어스 인스턴스 변경",
|
||||
"Spanish": "스페인어",
|
||||
"Southern Sotho": "소토어",
|
||||
"Somali": "소말리어",
|
||||
@ -329,7 +329,7 @@
|
||||
"Swedish": "스웨덴어",
|
||||
"Spanish (Latin America)": "스페인어 (라틴 아메리카)",
|
||||
"comments_points_count_0": "{{count}} 포인트",
|
||||
"Invidious Private Feed for `x`": "`x` 에 대한 Invidious 비공개 피드",
|
||||
"Invidious Private Feed for `x`": "`x` 에 대한 인비디어스 비공개 피드",
|
||||
"Premieres `x`": "최초 공개 `x`",
|
||||
"Premieres in `x`": "`x` 후 최초 공개",
|
||||
"next_steps_error_message": "다음 방법을 시도해 보세요: ",
|
||||
@ -408,7 +408,7 @@
|
||||
"preferences_quality_dash_option_1080p": "1080p",
|
||||
"preferences_quality_dash_option_worst": "최저",
|
||||
"preferences_watch_history_label": "시청 기록 저장: ",
|
||||
"invidious": "Invidious",
|
||||
"invidious": "인비디어스",
|
||||
"preferences_quality_option_small": "낮음",
|
||||
"preferences_quality_dash_option_auto": "자동",
|
||||
"preferences_quality_dash_option_480p": "480p",
|
||||
@ -453,7 +453,7 @@
|
||||
"channel_tab_streams_label": "실시간 스트리밍",
|
||||
"channel_tab_channels_label": "채널",
|
||||
"channel_tab_playlists_label": "재생목록",
|
||||
"Standard YouTube license": "표준 YouTube 라이선스",
|
||||
"Standard YouTube license": "표준 유튜브 라이선스",
|
||||
"Song: ": "제목: ",
|
||||
"Channel Sponsor": "채널 스폰서",
|
||||
"Album: ": "앨범: ",
|
||||
|
@ -322,13 +322,13 @@
|
||||
"channel_tab_community_label": "Gemenskap",
|
||||
"search_filters_sort_option_relevance": "relevans",
|
||||
"search_filters_sort_option_rating": "vurdering",
|
||||
"search_filters_sort_option_date": "dato",
|
||||
"search_filters_sort_option_date": "Opplastingsdato",
|
||||
"search_filters_sort_option_views": "visninger",
|
||||
"search_filters_type_label": "innholdstype",
|
||||
"search_filters_duration_label": "varighet",
|
||||
"search_filters_features_label": "funksjoner",
|
||||
"search_filters_sort_label": "sorter",
|
||||
"search_filters_date_option_hour": "time",
|
||||
"search_filters_date_option_hour": "Siste time",
|
||||
"search_filters_date_option_today": "i dag",
|
||||
"search_filters_date_option_week": "uke",
|
||||
"search_filters_date_option_month": "måned",
|
||||
@ -459,7 +459,7 @@
|
||||
"search_message_no_results": "Resultatløst.",
|
||||
"search_filters_type_option_all": "Alle typer",
|
||||
"search_filters_duration_option_none": "Enhver varighet",
|
||||
"search_message_use_another_instance": " Du kan også <a href=\"`x`\">søke på en annen instans</a>.",
|
||||
"search_message_use_another_instance": "Du kan også <a href=\"`x`\">søke på en annen instans</a>.",
|
||||
"search_filters_date_label": "Opplastningsdato",
|
||||
"search_filters_apply_button": "Bruk valgte filtre",
|
||||
"search_filters_date_option_none": "Siden begynnelsen",
|
||||
@ -494,5 +494,7 @@
|
||||
"carousel_slide": "Lysark {{current}} av {{total}}",
|
||||
"carousel_skip": "Hopp over karusellen",
|
||||
"Add to playlist": "Legg til i spilleliste",
|
||||
"Add to playlist: ": "Legg til i spilleliste: "
|
||||
"Add to playlist: ": "Legg til i spilleliste: ",
|
||||
"The Popular feed has been disabled by the administrator.": "Populært-kilden er koblet ut av administratoren.",
|
||||
"toggle_theme": "Endre utseende"
|
||||
}
|
||||
|
@ -317,13 +317,13 @@
|
||||
"channel_tab_community_label": "Gemeenschap",
|
||||
"search_filters_sort_option_relevance": "relevantie",
|
||||
"search_filters_sort_option_rating": "beoordeling",
|
||||
"search_filters_sort_option_date": "datum",
|
||||
"search_filters_sort_option_date": "Upload datum",
|
||||
"search_filters_sort_option_views": "keren bekeken",
|
||||
"search_filters_type_label": "Type inhoud",
|
||||
"search_filters_duration_label": "duur",
|
||||
"search_filters_features_label": "eigenschappen",
|
||||
"search_filters_sort_label": "sorteren",
|
||||
"search_filters_date_option_hour": "uur",
|
||||
"search_filters_date_option_hour": "Laatste uur",
|
||||
"search_filters_date_option_today": "vandaag",
|
||||
"search_filters_date_option_week": "week",
|
||||
"search_filters_date_option_month": "maand",
|
||||
@ -357,7 +357,7 @@
|
||||
"footer_original_source_code": "Originele bron-code",
|
||||
"footer_modfied_source_code": "Gewijzigde bron-code",
|
||||
"adminprefs_modified_source_code_url_label": "URL naar gewijzigde bron-code-opslagplaats",
|
||||
"next_steps_error_message": "Daarna moet u proberen om: ",
|
||||
"next_steps_error_message": "Waarna u zou kunnen proberen om: ",
|
||||
"footer_source_code": "Bron-code",
|
||||
"search_filters_duration_option_long": "Lang (> 20 minuten)",
|
||||
"preferences_quality_option_dash": "DASH (adaptieve kwaliteit)",
|
||||
@ -450,7 +450,7 @@
|
||||
"Chinese (Hong Kong)": "Chinees (Hongkong)",
|
||||
"Korean (auto-generated)": "Koreaans (automatisch gegenereerd)",
|
||||
"search_filters_apply_button": "Geselecteerde filters toepassen",
|
||||
"search_message_use_another_instance": " Je kan ook <a href=\"`x`\">zoeken op een andere instantie</a>.",
|
||||
"search_message_use_another_instance": "Je kan ook <a href=\"`x`\">zoeken op een andere instantie</a>.",
|
||||
"Cantonese (Hong Kong)": "Kantonees (Hongkong)",
|
||||
"Chinese (China)": "Chinees (China)",
|
||||
"crash_page_read_the_faq": "de <a href=\"`x`\">veelgestelde vragen (FAQ)</a> gelezen hebt",
|
||||
@ -477,7 +477,7 @@
|
||||
"Song: ": "Lied: ",
|
||||
"generic_channels_count": "{{count}} kanaal",
|
||||
"generic_channels_count_plural": "{{count}} kanalen",
|
||||
"Popular enabled: ": "Populair geactiveerd: ",
|
||||
"Popular enabled: ": "Populair ingeschakeld: ",
|
||||
"channel_tab_playlists_label": "Afspeellijsten",
|
||||
"generic_button_edit": "Bewerken",
|
||||
"Music in this video": "Muziek in deze video",
|
||||
|
@ -478,7 +478,7 @@
|
||||
"search_filters_date_label": "Data przesłania",
|
||||
"search_filters_features_option_vr180": "VR180",
|
||||
"search_filters_date_option_none": "Dowolna data",
|
||||
"search_message_use_another_instance": " Możesz także <a href=\"`x`\">wyszukać w innej instancji</a>.",
|
||||
"search_message_use_another_instance": "Możesz także <a href=\"`x`\">wyszukać w innej instancji</a>.",
|
||||
"search_filters_type_option_all": "Dowolny typ",
|
||||
"search_filters_duration_option_none": "Dowolna długość",
|
||||
"search_filters_duration_option_medium": "Średnia (4-20 minut)",
|
||||
|
@ -474,7 +474,7 @@
|
||||
"Spanish (auto-generated)": "Espanhol (gerado automaticamente)",
|
||||
"Spanish (Mexico)": "Espanhol (México)",
|
||||
"search_filters_duration_option_none": "Qualquer duração",
|
||||
"search_message_use_another_instance": " Você também pode <a href=\"`x`\">pesquisar em outra instância</a>.",
|
||||
"search_message_use_another_instance": "Você também pode <a href=\"`x`\">pesquisar em outra instância</a>.",
|
||||
"Spanish (Spain)": "Espanhol (Espanha)",
|
||||
"Turkish (auto-generated)": "Turco (gerado automaticamente)",
|
||||
"search_filters_duration_option_medium": "Médio (4 - 20 minutos)",
|
||||
|
@ -448,7 +448,7 @@
|
||||
"Chinese (Taiwan)": "Chinês (Taiwan)",
|
||||
"search_message_no_results": "Nenhum resultado encontrado.",
|
||||
"search_message_change_filters_or_query": "Tente alargar os termos genéricos da pesquisa e/ou alterar os filtros.",
|
||||
"search_message_use_another_instance": " Também pode <a href=\"`x`\">pesquisar noutra instância</a>.",
|
||||
"search_message_use_another_instance": "Também pode <a href=\"`x`\">pesquisar noutra instância</a>.",
|
||||
"English (United Kingdom)": "Inglês (Reino Unido)",
|
||||
"English (United States)": "Inglês (Estados Unidos)",
|
||||
"Cantonese (Hong Kong)": "Cantonês (Hong Kong)",
|
||||
@ -508,7 +508,7 @@
|
||||
"toggle_theme": "Trocar tema",
|
||||
"Add to playlist": "Adicionar à lista de reprodução",
|
||||
"Add to playlist: ": "Adicionar à lista de reprodução: ",
|
||||
"Answer": "Resposta",
|
||||
"Answer": "Responder",
|
||||
"Search for videos": "Procurar vídeos",
|
||||
"carousel_slide": "Diapositivo {{current}} de{{total}}",
|
||||
"carousel_skip": "Ignorar carrossel",
|
||||
|
@ -509,6 +509,9 @@
|
||||
"Add to playlist: ": "Добавить в плейлист: ",
|
||||
"Answer": "Ответить",
|
||||
"Search for videos": "Поиск видео",
|
||||
"The Popular feed has been disabled by the administrator.": "Популярная лента была отключена администратором.",
|
||||
"toggle_theme": "Переключатель тем"
|
||||
"The Popular feed has been disabled by the administrator.": "Лента популярного была отключена администратором.",
|
||||
"toggle_theme": "Переключатель тем",
|
||||
"carousel_slide": "Пролистано {{current}} из {{total}}",
|
||||
"carousel_skip": "Пропустить всё",
|
||||
"carousel_go_to": "Перейти к странице `x`"
|
||||
}
|
||||
|
@ -257,13 +257,13 @@
|
||||
"Video mode": "Mënyrë video",
|
||||
"channel_tab_videos_label": "Video",
|
||||
"search_filters_sort_option_rating": "Vlerësim",
|
||||
"search_filters_sort_option_date": "Datë Ngarkimi",
|
||||
"search_filters_sort_option_date": "Datë ngarkimi",
|
||||
"search_filters_sort_option_views": "Numër parjesh",
|
||||
"search_filters_type_label": "Lloj",
|
||||
"search_filters_duration_label": "Kohëzgjatje",
|
||||
"search_filters_features_label": "Veçori",
|
||||
"search_filters_sort_label": "Renditi Sipas",
|
||||
"search_filters_date_option_hour": "Orën e Fundit",
|
||||
"search_filters_date_option_hour": "Orën e fundit",
|
||||
"search_filters_date_option_today": "Sot",
|
||||
"search_filters_duration_option_long": "E gjatë (> 20 minuta)",
|
||||
"search_filters_features_option_hd": "HD",
|
||||
@ -435,14 +435,14 @@
|
||||
"tokens_count_plural": "{{count}} tokenë",
|
||||
"preferences_save_player_pos_label": "Mba mend pozicionin e luajtjes: ",
|
||||
"Import Invidious data": "Importoni të dhëna JSON Invidious",
|
||||
"Import YouTube subscriptions": "Importoni pajtime YouTube/OPML",
|
||||
"Import YouTube subscriptions": "Importoni pajtime YouTube CSV ose OPML",
|
||||
"Export data as JSON": "Eksportoji të dhënat Invidious si JSON",
|
||||
"preferences_vr_mode_label": "Video me ndërveprim 360 gradë (lyp WebGL): ",
|
||||
"Shared `x`": "Ndarë me të tjerë më `x`",
|
||||
"search_filters_title": "Filtra",
|
||||
"Popular enabled: ": "Me populloret të aktivizuara: ",
|
||||
"error_video_not_in_playlist": "Videoja e kërkuar s’ekziston në këtë luajlistë. <a href=\"`x`\">Klikoni këtu për faqen hyrëse të luajlistës.</a>",
|
||||
"search_message_use_another_instance": " Mundeni edhe të <a href=\"`x`\">kërkoni në një instancë tjetër</a>.",
|
||||
"search_message_use_another_instance": "Mundeni edhe të <a href=\"`x`\">kërkoni në një instancë tjetër</a>.",
|
||||
"search_filters_date_label": "Datë ngarkimi",
|
||||
"preferences_watch_history_label": "Aktivizo historik parjesh: ",
|
||||
< |