mirror of
https://github.com/streamyfin/streamyfin.git
synced 2026-06-01 11:38:26 +01:00
Compare commits
17 Commits
feat/playe
...
chore/i18n
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f325d04666 | ||
|
|
ac2bb104e4 | ||
|
|
5d3648e875 | ||
|
|
8def6d3d46 | ||
|
|
e8f21a879c | ||
|
|
badbce34e1 | ||
|
|
32c99de874 | ||
|
|
c232e433bf | ||
|
|
07e2faff07 | ||
|
|
8507699cdd | ||
|
|
21fb056586 | ||
|
|
1d79b513f3 | ||
|
|
863dffd944 | ||
|
|
6aa0868bfd | ||
|
|
6b7ee0514f | ||
|
|
c663bd0413 | ||
|
|
52e6f56220 |
25
.eas/build/android-production-apk.yml
Normal file
25
.eas/build/android-production-apk.yml
Normal file
@@ -0,0 +1,25 @@
|
||||
# Custom EAS Build config for Android phone APK (downloadable artifact).
|
||||
# Same bun-forcing flow as android-production.yml, but builds an APK
|
||||
# (assembleRelease) instead of an AAB — for sideloading / GitHub artifact.
|
||||
# Referenced from eas.json: build.production-apk.android.config
|
||||
build:
|
||||
name: Android phone APK (bun)
|
||||
steps:
|
||||
- eas/checkout
|
||||
|
||||
- run:
|
||||
name: Install dependencies (bun, frozen)
|
||||
command: bun install --frozen-lockfile
|
||||
|
||||
- run:
|
||||
name: Prebuild (Android, bun)
|
||||
command: bunx expo prebuild --platform android --no-install
|
||||
|
||||
- eas/configure_android_version
|
||||
- eas/inject_android_credentials
|
||||
|
||||
- eas/run_gradle:
|
||||
inputs:
|
||||
command: :app:assembleRelease
|
||||
|
||||
- eas/find_and_upload_build_artifacts
|
||||
27
.eas/build/android-production-tv.yml
Normal file
27
.eas/build/android-production-tv.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
# Custom EAS Build config for Android TV APK (downloadable artifact).
|
||||
# Same bun-forcing flow, with EXPO_TV=1 (set via the profile env in
|
||||
# eas.json) so prebuild generates the TV variant. Builds an APK for
|
||||
# sideloading onto Android TV devices.
|
||||
# Referenced from eas.json: build.production-apk-tv.android.config
|
||||
build:
|
||||
name: Android TV APK (bun)
|
||||
steps:
|
||||
- eas/checkout
|
||||
|
||||
- run:
|
||||
name: Install dependencies (bun, frozen)
|
||||
command: bun install --frozen-lockfile
|
||||
|
||||
# EXPO_TV=1 comes from the profile env, so prebuild targets Android TV.
|
||||
- run:
|
||||
name: Prebuild (Android TV, bun)
|
||||
command: bunx expo prebuild --platform android --no-install
|
||||
|
||||
- eas/configure_android_version
|
||||
- eas/inject_android_credentials
|
||||
|
||||
- eas/run_gradle:
|
||||
inputs:
|
||||
command: :app:assembleRelease
|
||||
|
||||
- eas/find_and_upload_build_artifacts
|
||||
38
.eas/build/android-production.yml
Normal file
38
.eas/build/android-production.yml
Normal file
@@ -0,0 +1,38 @@
|
||||
# Custom EAS Build config for Android (production AAB).
|
||||
#
|
||||
# Why this exists: EAS's managed build can't detect Bun's text lockfile
|
||||
# (bun.lock) and falls back to yarn, which breaks our install. The managed
|
||||
# steps `eas/install_node_modules` and `eas/prebuild` both use "the package
|
||||
# manager detected based on your project", so we replace them with explicit
|
||||
# `bun` commands. Everything else uses EAS's built-in functions so we still
|
||||
# get remote versioning, credentials, and artifact upload.
|
||||
#
|
||||
# Referenced from eas.json: build.production.android.config = android-production.yml
|
||||
build:
|
||||
name: Android production (bun)
|
||||
steps:
|
||||
- eas/checkout
|
||||
|
||||
- run:
|
||||
name: Install dependencies (bun, frozen)
|
||||
command: bun install --frozen-lockfile
|
||||
|
||||
# android/ is gitignored, so generate native code fresh. --no-install
|
||||
# because deps are already installed above; bunx keeps it on bun.
|
||||
- run:
|
||||
name: Prebuild (Android, bun)
|
||||
command: bunx expo prebuild --platform android --no-install
|
||||
|
||||
# Applies the EAS-resolved remote versionCode/versionName (autoIncrement
|
||||
# in eas.json) into the freshly prebuilt android/ project.
|
||||
- eas/configure_android_version
|
||||
|
||||
# Injects the remote Android keystore / signing config.
|
||||
- eas/inject_android_credentials
|
||||
|
||||
# Build the Play Store app bundle (.aab).
|
||||
- eas/run_gradle:
|
||||
inputs:
|
||||
command: :app:bundleRelease
|
||||
|
||||
- eas/find_and_upload_build_artifacts
|
||||
44
.eas/build/ios-production.yml
Normal file
44
.eas/build/ios-production.yml
Normal file
@@ -0,0 +1,44 @@
|
||||
# Custom EAS Build config for iOS + tvOS (App Store), forcing bun.
|
||||
#
|
||||
# Shared by both the iPhone profile (production) and the tvOS profile
|
||||
# (production_tv). The profile decides the rest:
|
||||
# - production_tv sets EXPO_TV=1 (env) so prebuild targets tvOS, and
|
||||
# credentialsSource: local (EAS can't manage tvOS creds remotely).
|
||||
# - production uses remote-managed iOS credentials.
|
||||
#
|
||||
# Like the Android configs, this replaces eas/install_node_modules and
|
||||
# eas/prebuild (both auto-detect the wrong package manager) with explicit
|
||||
# bun commands, and keeps EAS built-ins for credentials/version/fastlane.
|
||||
build:
|
||||
name: iOS/tvOS App Store (bun)
|
||||
steps:
|
||||
- eas/checkout
|
||||
|
||||
- run:
|
||||
name: Install dependencies (bun, frozen)
|
||||
command: bun install --frozen-lockfile
|
||||
|
||||
- eas/resolve_apple_team_id_from_credentials:
|
||||
id: resolve_team
|
||||
|
||||
# android/ + ios/ are gitignored, so generate native code fresh.
|
||||
# EXPO_TV (from the profile env) selects iPhone vs tvOS. --no-install
|
||||
# skips JS + pod install; we install pods explicitly below with bun deps.
|
||||
- run:
|
||||
name: Prebuild (iOS/tvOS, bun)
|
||||
command: bunx expo prebuild --platform ios --no-install
|
||||
|
||||
- run:
|
||||
name: Install CocoaPods
|
||||
working_directory: ./ios
|
||||
command: pod install
|
||||
|
||||
- eas/configure_ios_credentials
|
||||
- eas/configure_ios_version
|
||||
|
||||
- eas/generate_gymfile_from_template:
|
||||
inputs:
|
||||
credentials: ${ eas.job.secrets.buildCredentials }
|
||||
|
||||
- eas/run_fastlane
|
||||
- eas/find_and_upload_build_artifacts
|
||||
1
.github/workflows/linting.yml
vendored
1
.github/workflows/linting.yml
vendored
@@ -97,6 +97,7 @@ jobs:
|
||||
- "check"
|
||||
- "format"
|
||||
- "typecheck"
|
||||
- "i18n:check"
|
||||
|
||||
steps:
|
||||
- name: "📥 Checkout PR code"
|
||||
|
||||
134
.github/workflows/release.yml
vendored
134
.github/workflows/release.yml
vendored
@@ -1,9 +1,14 @@
|
||||
name: 🚀 Release (EAS Build + Submit)
|
||||
name: 🚀 Release (EAS build + submit)
|
||||
|
||||
# Cloud EAS build + auto-submit for iOS, tvOS and Android on merge to main.
|
||||
# A manual approval gate (the `production` GitHub Environment) pauses the run
|
||||
# before any build/submit starts. Configure required reviewers on that
|
||||
# environment in repo Settings → Environments → production.
|
||||
# On merge to main (gated by the `production` GitHub Environment approval),
|
||||
# build all targets on EAS in parallel via custom bun build configs:
|
||||
# 1. iOS phone → App Store (auto-submit)
|
||||
# 2. tvOS → App Store (auto-submit)
|
||||
# 3. Android AAB → Google Play (auto-submit)
|
||||
# 4. Android phone APK→ downloadable artifact
|
||||
# 5. Android TV APK → downloadable artifact
|
||||
# Note: EAS queues builds based on your plan's concurrency; parallel jobs
|
||||
# here just submit them — EAS may still run them serially.
|
||||
|
||||
concurrency:
|
||||
group: release-${{ github.ref }}
|
||||
@@ -23,7 +28,7 @@ jobs:
|
||||
- name: ✅ Release approved
|
||||
run: echo "Release approved for ${{ github.sha }}"
|
||||
|
||||
release:
|
||||
build:
|
||||
name: 🚀 ${{ matrix.name }}
|
||||
needs: approve
|
||||
runs-on: ubuntu-24.04
|
||||
@@ -36,12 +41,25 @@ jobs:
|
||||
- name: 🍎 iOS
|
||||
platform: ios
|
||||
profile: production
|
||||
submit: true
|
||||
- name: 📺 tvOS
|
||||
platform: ios
|
||||
profile: production_tv
|
||||
- name: 🤖 Android
|
||||
submit: true
|
||||
- name: 🤖 Android AAB
|
||||
platform: android
|
||||
profile: production
|
||||
submit: true
|
||||
- name: 🤖 Android APK
|
||||
platform: android
|
||||
profile: production-apk
|
||||
submit: false
|
||||
artifact_name: streamyfin-android-phone-apk
|
||||
- name: 📺 Android TV APK
|
||||
platform: android
|
||||
profile: production-apk-tv
|
||||
submit: false
|
||||
artifact_name: streamyfin-android-tv-apk
|
||||
|
||||
steps:
|
||||
- name: 📥 Checkout code
|
||||
@@ -76,10 +94,8 @@ jobs:
|
||||
token: ${{ secrets.EXPO_TOKEN }}
|
||||
eas-cache: true
|
||||
|
||||
# tvOS uses local credentials (EAS can't manage tvOS provisioning
|
||||
# remotely, including the TopShelf extension target). Restore the
|
||||
# gitignored credentials.json + cert + profiles from secrets so the
|
||||
# cloud build can sign with `credentialsSource: local`.
|
||||
# tvOS uses credentialsSource: local — restore the gitignored
|
||||
# credentials.json + cert + provisioning profiles from secrets.
|
||||
- name: 🔐 Restore tvOS signing credentials
|
||||
if: matrix.profile == 'production_tv'
|
||||
env:
|
||||
@@ -94,10 +110,14 @@ jobs:
|
||||
echo "$TVOS_APP_PROFILE_BASE64" | base64 -d > profiles/Streamyfin_tvOS_App_Store.mobileprovision
|
||||
echo "$TVOS_TOPSHELF_PROFILE_BASE64" | base64 -d > profiles/Streamyfin_TopShelf_tvOS_App_Store.mobileprovision
|
||||
|
||||
# iOS + tvOS submit upload to App Store Connect with an ASC API key.
|
||||
# EAS reads it from EXPO_ASC_API_KEY_PATH / EXPO_ASC_KEY_ID /
|
||||
# EXPO_ASC_ISSUER_ID (set on the build step below). Write the .p8,
|
||||
# tolerating either raw-PEM or base64-encoded secret content.
|
||||
# Android Play submit needs the Google Play service account JSON.
|
||||
- name: 🔐 Restore Google Play service account
|
||||
if: matrix.platform == 'android' && matrix.submit
|
||||
env:
|
||||
GOOGLE_SERVICE_ACCOUNT_KEY: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_KEY }}
|
||||
run: printf '%s' "$GOOGLE_SERVICE_ACCOUNT_KEY" > google-service-account.json
|
||||
|
||||
# App Store Connect API key for iOS/tvOS submit (raw-PEM or base64).
|
||||
- name: 🔐 Restore App Store Connect API key
|
||||
if: matrix.platform == 'ios'
|
||||
env:
|
||||
@@ -109,18 +129,11 @@ jobs:
|
||||
printf '%s' "$APPLE_KEY_CONTENT" | base64 -d > "$RUNNER_TEMP/asc_api_key.p8"
|
||||
fi
|
||||
|
||||
# Android submit needs a Google Play service account JSON. eas.json's
|
||||
# submit.production.android.serviceAccountKeyPath points at this file.
|
||||
- name: 🔐 Restore Google Play service account
|
||||
if: matrix.platform == 'android'
|
||||
env:
|
||||
GOOGLE_SERVICE_ACCOUNT_KEY: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_KEY }}
|
||||
run: printf '%s' "$GOOGLE_SERVICE_ACCOUNT_KEY" > google-service-account.json
|
||||
|
||||
# ── Submit builds: cloud build + auto-submit to the store ──
|
||||
- name: 🚀 Build & submit (${{ matrix.name }})
|
||||
if: matrix.submit
|
||||
env:
|
||||
EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }}
|
||||
# Consumed by eas submit for iOS/tvOS; ignored for Android.
|
||||
EXPO_ASC_API_KEY_PATH: ${{ runner.temp }}/asc_api_key.p8
|
||||
EXPO_ASC_KEY_ID: ${{ secrets.APPLE_KEY_ID }}
|
||||
EXPO_ASC_ISSUER_ID: ${{ secrets.APPLE_KEY_ISSUER_ID }}
|
||||
@@ -129,4 +142,75 @@ jobs:
|
||||
--platform ${{ matrix.platform }} \
|
||||
--profile ${{ matrix.profile }} \
|
||||
--auto-submit \
|
||||
--non-interactive
|
||||
--non-interactive \
|
||||
--wait
|
||||
|
||||
# ── Artifact builds: cloud build, then download + upload the APK ──
|
||||
- name: 🏗️ Build artifact (${{ matrix.name }})
|
||||
if: ${{ !matrix.submit }}
|
||||
env:
|
||||
EXPO_TOKEN: ${{ secrets.EXPO_TOKEN }}
|
||||
run: |
|
||||
eas build \
|
||||
--platform ${{ matrix.platform }} \
|
||||
--profile ${{ matrix.profile }} \
|
||||
--non-interactive \
|
||||
--wait \
|
||||
--json > build-result.json
|
||||
URL=$(node -e "const b=require('./build-result.json'); const x=Array.isArray(b)?b[0]:b; console.log(x.artifacts.applicationArchiveUrl)")
|
||||
echo "Downloading artifact: $URL"
|
||||
curl -fL "$URL" -o "${{ matrix.artifact_name }}.apk"
|
||||
|
||||
- name: 📤 Upload APK artifact (${{ matrix.name }})
|
||||
if: ${{ !matrix.submit }}
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
with:
|
||||
name: ${{ matrix.artifact_name }}
|
||||
path: ${{ matrix.artifact_name }}.apk
|
||||
retention-days: 14
|
||||
|
||||
# Draft a GitHub Release with the two APKs attached. The tag comes from the
|
||||
# merged-in app version (app.json → expo.version), NOT the auto-incremented
|
||||
# build number — so cutting a release is a deliberate version bump via PR.
|
||||
github-release:
|
||||
name: 📦 Draft GitHub Release
|
||||
needs: build
|
||||
if: ${{ !cancelled() }}
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
contents: write
|
||||
actions: read # required for `gh run download` to list/fetch this run's artifacts
|
||||
steps:
|
||||
- name: 📥 Checkout code
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
show-progress: false
|
||||
|
||||
- name: 📦 Download APK artifacts from this run
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
mkdir -p apks
|
||||
gh run download ${{ github.run_id }} --name streamyfin-android-phone-apk --dir apks
|
||||
gh run download ${{ github.run_id }} --name streamyfin-android-tv-apk --dir apks
|
||||
ls -la apks
|
||||
|
||||
- name: 📝 Draft release (tag = app.json version, not auto-bumped)
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
VERSION=$(node -e "console.log(require('./app.json').expo.version)")
|
||||
TAG="v$VERSION"
|
||||
echo "Release tag from merged app version: $TAG"
|
||||
if gh release view "$TAG" >/dev/null 2>&1; then
|
||||
echo "Release $TAG exists — updating APK assets"
|
||||
gh release upload "$TAG" apks/*.apk --clobber
|
||||
else
|
||||
echo "Creating draft release $TAG"
|
||||
gh release create "$TAG" \
|
||||
--draft \
|
||||
--generate-notes \
|
||||
--title "$TAG" \
|
||||
apks/*.apk
|
||||
fi
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -76,6 +76,9 @@ modules/background-downloader/android/build/*
|
||||
|
||||
# ios:unsigned-build Artifacts
|
||||
build/
|
||||
# but keep EAS custom build configs (the generic build/ rule above matches .eas/build/)
|
||||
!.eas/build/
|
||||
!.eas/build/**
|
||||
.claude/
|
||||
.agents/skills/**
|
||||
skills-lock.json
|
||||
|
||||
@@ -6,6 +6,7 @@ import {
|
||||
BottomSheetTextInput,
|
||||
BottomSheetView,
|
||||
} from "@gorhom/bottom-sheet";
|
||||
import type { BottomSheetModalMethods } from "@gorhom/bottom-sheet/lib/typescript/types";
|
||||
import { useQuery } from "@tanstack/react-query";
|
||||
import { Image } from "expo-image";
|
||||
import { useLocalSearchParams, useNavigation } from "expo-router";
|
||||
@@ -76,7 +77,7 @@ const MobilePage: React.FC = () => {
|
||||
const [issueMessage, setIssueMessage] = useState<string>();
|
||||
const [requestBody, _setRequestBody] = useState<MediaRequestBody>();
|
||||
const [issueTypeDropdownOpen, setIssueTypeDropdownOpen] = useState(false);
|
||||
const advancedReqModalRef = useRef<BottomSheetModal>(null);
|
||||
const advancedReqModalRef = useRef<BottomSheetModalMethods>(null);
|
||||
const bottomSheetModalRef = useRef<BottomSheetModal>(null);
|
||||
|
||||
const {
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import { Ionicons } from "@expo/vector-icons";
|
||||
import { BottomSheetScrollView } from "@gorhom/bottom-sheet";
|
||||
import React, { useEffect } from "react";
|
||||
import { Platform, StyleSheet, TouchableOpacity, View } from "react-native";
|
||||
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
||||
import React, { useEffect, useState } from "react";
|
||||
import {
|
||||
MeasuredTriggerHost,
|
||||
OptionGroupCard,
|
||||
ToggleSwitch,
|
||||
} from "@/components/common/dropdownShared";
|
||||
type LayoutChangeEvent,
|
||||
Platform,
|
||||
StyleSheet,
|
||||
TouchableOpacity,
|
||||
View,
|
||||
} from "react-native";
|
||||
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
||||
import { Text } from "@/components/common/Text";
|
||||
import { useGlobalModal } from "@/providers/GlobalModalProvider";
|
||||
|
||||
@@ -15,7 +16,7 @@ import { useGlobalModal } from "@/providers/GlobalModalProvider";
|
||||
// A static top-level import evaluates requireNativeModule('ExpoUI') at module
|
||||
// load and crashes the entire route tree on tvOS (expo-router requires every
|
||||
// route file). Load it lazily and only off-TV; TV never renders these.
|
||||
const { Button, Menu } = Platform.isTV
|
||||
const { Button, Host, Menu } = Platform.isTV
|
||||
? ({} as typeof import("@expo/ui/swift-ui"))
|
||||
: require("@expo/ui/swift-ui");
|
||||
const { disabled } = Platform.isTV
|
||||
@@ -71,6 +72,16 @@ interface PlatformDropdownProps {
|
||||
};
|
||||
}
|
||||
|
||||
const ToggleSwitch: React.FC<{ value: boolean }> = ({ value }) => (
|
||||
<View
|
||||
className={`w-12 h-7 rounded-full ${value ? "bg-purple-600" : "bg-neutral-600"} flex-row items-center`}
|
||||
>
|
||||
<View
|
||||
className={`w-5 h-5 rounded-full bg-white shadow-md transform transition-transform ${value ? "translate-x-6" : "translate-x-1"}`}
|
||||
/>
|
||||
</View>
|
||||
);
|
||||
|
||||
const OptionItem: React.FC<{ option: Option; isLast?: boolean }> = ({
|
||||
option,
|
||||
isLast,
|
||||
@@ -110,15 +121,28 @@ const OptionItem: React.FC<{ option: Option; isLast?: boolean }> = ({
|
||||
};
|
||||
|
||||
const OptionGroupComponent: React.FC<{ group: OptionGroup }> = ({ group }) => (
|
||||
<OptionGroupCard title={group.title}>
|
||||
{group.options.map((option, index) => (
|
||||
<OptionItem
|
||||
key={index}
|
||||
option={option}
|
||||
isLast={index === group.options.length - 1}
|
||||
/>
|
||||
))}
|
||||
</OptionGroupCard>
|
||||
<View className='mb-6'>
|
||||
{group.title && (
|
||||
<Text className='text-lg font-semibold mb-3 text-neutral-300'>
|
||||
{group.title}
|
||||
</Text>
|
||||
)}
|
||||
<View
|
||||
style={{
|
||||
borderRadius: 12,
|
||||
overflow: "hidden",
|
||||
}}
|
||||
className='bg-neutral-800 rounded-xl overflow-hidden'
|
||||
>
|
||||
{group.options.map((option, index) => (
|
||||
<OptionItem
|
||||
key={index}
|
||||
option={option}
|
||||
isLast={index === group.options.length - 1}
|
||||
/>
|
||||
))}
|
||||
</View>
|
||||
</View>
|
||||
);
|
||||
|
||||
const BottomSheetContent: React.FC<{
|
||||
@@ -193,6 +217,24 @@ const PlatformDropdownComponent = ({
|
||||
}: PlatformDropdownProps) => {
|
||||
const { showModal, hideModal, isVisible } = useGlobalModal();
|
||||
|
||||
// @expo/ui's <Host> (SDK 55) fills its available space by default, and
|
||||
// `matchContents` doesn't help here: it reports the native Menu's size via
|
||||
// setStyleSize and overrides any explicit size. Instead we measure the
|
||||
// trigger's intrinsic size in plain RN (off-layout) and pin it on the Host.
|
||||
const [triggerSize, setTriggerSize] = useState<{
|
||||
width: number;
|
||||
height: number;
|
||||
} | null>(null);
|
||||
|
||||
const handleMeasureTrigger = (e: LayoutChangeEvent) => {
|
||||
const { width, height } = e.nativeEvent.layout;
|
||||
setTriggerSize((prev) =>
|
||||
prev && prev.width === width && prev.height === height
|
||||
? prev
|
||||
: { width, height },
|
||||
);
|
||||
};
|
||||
|
||||
// Handle controlled open state for Android
|
||||
useEffect(() => {
|
||||
if (Platform.OS === "android" && controlledOpen === true) {
|
||||
@@ -223,42 +265,82 @@ const PlatformDropdownComponent = ({
|
||||
}, [isVisible, controlledOpen, controlledOnOpenChange]);
|
||||
|
||||
if (Platform.OS === "ios" && !Platform.isTV) {
|
||||
// Pin the wrapper to the measured trigger size. @expo/ui's <Host> (SDK 55)
|
||||
// fills its parent and reports its own size via setStyleSize, so it can't
|
||||
// size itself to content. If the wrapper has no size, the Host's `flex: 1`
|
||||
// height depends on the parent while the parent depends on the Host — a
|
||||
// circular dependency that collapses to 0 for any selector nested more than
|
||||
// one level deep (so only the first, shallowest dropdown stays visible).
|
||||
// Giving the wrapper the measured size breaks the cycle; the Host then
|
||||
// fills a concrete box.
|
||||
return (
|
||||
<MeasuredTriggerHost
|
||||
trigger={trigger}
|
||||
hostStyle={expoUIConfig?.hostStyle}
|
||||
>
|
||||
<Menu label={trigger}>
|
||||
{groups.flatMap((group, groupIndex) => {
|
||||
// Check if this group has radio options
|
||||
const radioOptions = group.options.filter(
|
||||
(opt) => opt.type === "radio",
|
||||
) as RadioOption[];
|
||||
const toggleOptions = group.options.filter(
|
||||
(opt) => opt.type === "toggle",
|
||||
) as ToggleOption[];
|
||||
const actionOptions = group.options.filter(
|
||||
(opt) => opt.type === "action",
|
||||
) as ActionOption[];
|
||||
<View style={triggerSize ?? { opacity: 0 }}>
|
||||
{/* Hidden measurer: lays the trigger out off-flow to capture its
|
||||
intrinsic size. Absolutely positioned WITHOUT right/bottom so it
|
||||
sizes to the trigger's content rather than to its parent. */}
|
||||
<View
|
||||
style={{ position: "absolute", top: 0, left: 0, opacity: 0 }}
|
||||
pointerEvents='none'
|
||||
aria-hidden
|
||||
onLayout={handleMeasureTrigger}
|
||||
>
|
||||
{trigger}
|
||||
</View>
|
||||
<Host style={[StyleSheet.absoluteFill, expoUIConfig?.hostStyle as any]}>
|
||||
<Menu label={trigger}>
|
||||
{groups.flatMap((group, groupIndex) => {
|
||||
// Check if this group has radio options
|
||||
const radioOptions = group.options.filter(
|
||||
(opt) => opt.type === "radio",
|
||||
) as RadioOption[];
|
||||
const toggleOptions = group.options.filter(
|
||||
(opt) => opt.type === "toggle",
|
||||
) as ToggleOption[];
|
||||
const actionOptions = group.options.filter(
|
||||
(opt) => opt.type === "action",
|
||||
) as ActionOption[];
|
||||
|
||||
const items = [];
|
||||
const items = [];
|
||||
|
||||
// Group radio options under a submenu ONLY if there's a title
|
||||
// Otherwise render as individual buttons
|
||||
if (radioOptions.length > 0) {
|
||||
if (group.title) {
|
||||
// Use a nested Menu as a submenu for grouped options. This
|
||||
// reads as "Title: Selected" and expands to the choices on
|
||||
// tap, keeping the nested look while staying a dropdown.
|
||||
// (Menu opens on a single tap and nests cleanly; ContextMenu
|
||||
// would require a long-press and read as a context menu.)
|
||||
const selectedOption = radioOptions.find((opt) => opt.selected);
|
||||
const displayTitle = selectedOption
|
||||
? `${group.title}: ${selectedOption.label}`
|
||||
: group.title;
|
||||
items.push(
|
||||
<Menu key={`submenu-${groupIndex}`} label={displayTitle}>
|
||||
{radioOptions.map((option, optionIndex) => (
|
||||
// Group radio options under a submenu ONLY if there's a title
|
||||
// Otherwise render as individual buttons
|
||||
if (radioOptions.length > 0) {
|
||||
if (group.title) {
|
||||
// Use a nested Menu as a submenu for grouped options. This
|
||||
// reads as "Title: Selected" and expands to the choices on
|
||||
// tap, keeping the nested look while staying a dropdown.
|
||||
// (Menu opens on a single tap and nests cleanly; ContextMenu
|
||||
// would require a long-press and read as a context menu.)
|
||||
const selectedOption = radioOptions.find(
|
||||
(opt) => opt.selected,
|
||||
);
|
||||
const displayTitle = selectedOption
|
||||
? `${group.title}: ${selectedOption.label}`
|
||||
: group.title;
|
||||
items.push(
|
||||
<Menu key={`submenu-${groupIndex}`} label={displayTitle}>
|
||||
{radioOptions.map((option, optionIndex) => (
|
||||
<Button
|
||||
key={`radio-${groupIndex}-${optionIndex}`}
|
||||
label={option.label}
|
||||
systemImage={
|
||||
option.selected ? "checkmark.circle.fill" : "circle"
|
||||
}
|
||||
modifiers={
|
||||
option.disabled ? [disabled(true)] : undefined
|
||||
}
|
||||
onPress={() => {
|
||||
option.onPress();
|
||||
onOptionSelect?.(option.value);
|
||||
}}
|
||||
/>
|
||||
))}
|
||||
</Menu>,
|
||||
);
|
||||
} else {
|
||||
// Render radio options as direct buttons
|
||||
radioOptions.forEach((option, optionIndex) => {
|
||||
items.push(
|
||||
<Button
|
||||
key={`radio-${groupIndex}-${optionIndex}`}
|
||||
label={option.label}
|
||||
@@ -272,67 +354,49 @@ const PlatformDropdownComponent = ({
|
||||
option.onPress();
|
||||
onOptionSelect?.(option.value);
|
||||
}}
|
||||
/>
|
||||
))}
|
||||
</Menu>,
|
||||
);
|
||||
} else {
|
||||
// Render radio options as direct buttons
|
||||
radioOptions.forEach((option, optionIndex) => {
|
||||
items.push(
|
||||
<Button
|
||||
key={`radio-${groupIndex}-${optionIndex}`}
|
||||
label={option.label}
|
||||
systemImage={
|
||||
option.selected ? "checkmark.circle.fill" : "circle"
|
||||
}
|
||||
modifiers={option.disabled ? [disabled(true)] : undefined}
|
||||
onPress={() => {
|
||||
option.onPress();
|
||||
onOptionSelect?.(option.value);
|
||||
}}
|
||||
/>,
|
||||
);
|
||||
});
|
||||
/>,
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Add Buttons for toggle options
|
||||
toggleOptions.forEach((option, optionIndex) => {
|
||||
items.push(
|
||||
<Button
|
||||
key={`toggle-${groupIndex}-${optionIndex}`}
|
||||
label={option.label}
|
||||
systemImage={
|
||||
option.value ? "checkmark.circle.fill" : "circle"
|
||||
}
|
||||
modifiers={option.disabled ? [disabled(true)] : undefined}
|
||||
onPress={() => {
|
||||
option.onToggle();
|
||||
onOptionSelect?.(option.value);
|
||||
}}
|
||||
/>,
|
||||
);
|
||||
});
|
||||
// Add Buttons for toggle options
|
||||
toggleOptions.forEach((option, optionIndex) => {
|
||||
items.push(
|
||||
<Button
|
||||
key={`toggle-${groupIndex}-${optionIndex}`}
|
||||
label={option.label}
|
||||
systemImage={
|
||||
option.value ? "checkmark.circle.fill" : "circle"
|
||||
}
|
||||
modifiers={option.disabled ? [disabled(true)] : undefined}
|
||||
onPress={() => {
|
||||
option.onToggle();
|
||||
onOptionSelect?.(option.value);
|
||||
}}
|
||||
/>,
|
||||
);
|
||||
});
|
||||
|
||||
// Add Buttons for action options (no icon)
|
||||
actionOptions.forEach((option, optionIndex) => {
|
||||
items.push(
|
||||
<Button
|
||||
key={`action-${groupIndex}-${optionIndex}`}
|
||||
label={option.label}
|
||||
modifiers={option.disabled ? [disabled(true)] : undefined}
|
||||
onPress={() => {
|
||||
option.onPress();
|
||||
}}
|
||||
/>,
|
||||
);
|
||||
});
|
||||
// Add Buttons for action options (no icon)
|
||||
actionOptions.forEach((option, optionIndex) => {
|
||||
items.push(
|
||||
<Button
|
||||
key={`action-${groupIndex}-${optionIndex}`}
|
||||
label={option.label}
|
||||
modifiers={option.disabled ? [disabled(true)] : undefined}
|
||||
onPress={() => {
|
||||
option.onPress();
|
||||
}}
|
||||
/>,
|
||||
);
|
||||
});
|
||||
|
||||
return items;
|
||||
})}
|
||||
</Menu>
|
||||
</MeasuredTriggerHost>
|
||||
return items;
|
||||
})}
|
||||
</Menu>
|
||||
</Host>
|
||||
</View>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -74,6 +74,9 @@ function ChapterListComponent({
|
||||
transparent
|
||||
animationType='slide'
|
||||
onRequestClose={onClose}
|
||||
// iOS defaults <Modal> to portrait-only; without this it rotates the app
|
||||
// back to portrait when opened from the landscape player. Android ignores it.
|
||||
supportedOrientations={["portrait", "landscape"]}
|
||||
>
|
||||
<Pressable onPress={onClose} style={styles.backdrop}>
|
||||
<Pressable onPress={(e) => e.stopPropagation()} style={styles.sheet}>
|
||||
|
||||
@@ -2,6 +2,7 @@ import { useActionSheet } from "@expo/react-native-action-sheet";
|
||||
import type { BaseItemDto } from "@jellyfin/sdk/lib/generated-client/models";
|
||||
import { useSegments } from "expo-router";
|
||||
import { type PropsWithChildren, useCallback } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import {
|
||||
Platform,
|
||||
TouchableOpacity,
|
||||
@@ -149,6 +150,7 @@ export const TouchableItemRouter: React.FC<PropsWithChildren<Props>> = ({
|
||||
children,
|
||||
...props
|
||||
}) => {
|
||||
const { t } = useTranslation();
|
||||
const segments = useSegments();
|
||||
const { showActionSheetWithOptions } = useActionSheet();
|
||||
const markAsPlayedStatus = useMarkAsPlayed([item]);
|
||||
@@ -182,11 +184,13 @@ export const TouchableItemRouter: React.FC<PropsWithChildren<Props>> = ({
|
||||
return;
|
||||
|
||||
const options: string[] = [
|
||||
"Mark as Played",
|
||||
"Mark as Not Played",
|
||||
isFavorite ? "Unmark as Favorite" : "Mark as Favorite",
|
||||
...(isOffline ? ["Delete Download"] : []),
|
||||
"Cancel",
|
||||
t("common.mark_as_played"),
|
||||
t("common.mark_as_not_played"),
|
||||
isFavorite
|
||||
? t("music.track_options.remove_from_favorites")
|
||||
: t("music.track_options.add_to_favorites"),
|
||||
...(isOffline ? [t("home.downloads.delete_download")] : []),
|
||||
t("common.cancel"),
|
||||
];
|
||||
const cancelButtonIndex = options.length - 1;
|
||||
const destructiveButtonIndex = isOffline
|
||||
@@ -219,6 +223,7 @@ export const TouchableItemRouter: React.FC<PropsWithChildren<Props>> = ({
|
||||
isOffline,
|
||||
deleteFile,
|
||||
item.Id,
|
||||
t,
|
||||
]);
|
||||
|
||||
if (
|
||||
|
||||
@@ -1,142 +0,0 @@
|
||||
// Shared internals for PlatformDropdown and PlayerSettingsPopover.
|
||||
// Both components host SwiftUI content (Menu / Popover) inside @expo/ui's
|
||||
// <Host>, both render an Android bottom-sheet card for the same three core
|
||||
// option types (radio / toggle / action), and both wear the same wrapper
|
||||
// boilerplate. This module is the single source of truth for those pieces.
|
||||
//
|
||||
// What lives here:
|
||||
// - useTriggerSize() — measures the RN trigger's intrinsic size
|
||||
// - MeasuredTriggerHost — pins <Host> to that measured size (workaround
|
||||
// for @expo/ui SDK 55 sizing behaviour; see notes below)
|
||||
// - ToggleSwitch — the small purple switch used in the Android sheet
|
||||
// - OptionGroupCard — the rounded dark card with optional title that
|
||||
// wraps a group's option rows on Android
|
||||
//
|
||||
// What deliberately doesn't live here:
|
||||
// - The iOS rendering — PlatformDropdown uses a Menu, PlayerSettingsPopover
|
||||
// uses a hand-styled Popover. Nothing meaningful to share.
|
||||
// - The Android per-row renderers — PlatformDropdown handles 3 option types,
|
||||
// PlayerSettingsPopover handles 6 (adds slider/stepper/subgroup). Forcing
|
||||
// a shared abstraction would couple them. Each owns its own OptionItem.
|
||||
|
||||
import React, { useCallback, useState } from "react";
|
||||
import {
|
||||
type LayoutChangeEvent,
|
||||
Platform,
|
||||
StyleSheet,
|
||||
View,
|
||||
} from "react-native";
|
||||
import { Text } from "@/components/common/Text";
|
||||
|
||||
// @expo/ui's SwiftUI native module (ExpoUI) does not exist in tvOS builds.
|
||||
// A static top-level import evaluates requireNativeModule('ExpoUI') at module
|
||||
// load and crashes the entire route tree on tvOS. Load it lazily and only
|
||||
// off-TV; both consumers also gate rendering on Platform.OS === "ios".
|
||||
const { Host } = Platform.isTV
|
||||
? ({} as typeof import("@expo/ui/swift-ui"))
|
||||
: require("@expo/ui/swift-ui");
|
||||
|
||||
type TriggerSize = { width: number; height: number };
|
||||
|
||||
/**
|
||||
* Measures and remembers the intrinsic size of a RN trigger view so the
|
||||
* surrounding <Host> can be pinned to a concrete box.
|
||||
*
|
||||
* Returns `[size, handleLayout]` — pass `handleLayout` to a hidden,
|
||||
* absolutely-positioned mirror of the trigger and use `size` as the
|
||||
* wrapper's `style` once measured.
|
||||
*/
|
||||
export function useTriggerSize(): [
|
||||
TriggerSize | null,
|
||||
(e: LayoutChangeEvent) => void,
|
||||
] {
|
||||
const [size, setSize] = useState<TriggerSize | null>(null);
|
||||
const onLayout = useCallback((e: LayoutChangeEvent) => {
|
||||
const { width, height } = e.nativeEvent.layout;
|
||||
setSize((prev) =>
|
||||
prev && prev.width === width && prev.height === height
|
||||
? prev
|
||||
: { width, height },
|
||||
);
|
||||
}, []);
|
||||
return [size, onLayout];
|
||||
}
|
||||
|
||||
interface MeasuredTriggerHostProps {
|
||||
trigger: React.ReactNode;
|
||||
hostStyle?: any;
|
||||
children: React.ReactNode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Pins @expo/ui's <Host> to the trigger's measured size.
|
||||
*
|
||||
* @expo/ui's <Host> (SDK 55) fills its parent and reports its own size via
|
||||
* `setStyleSize`, so it can't size itself to content. If the wrapper has no
|
||||
* size, the Host's `flex: 1` height depends on the parent while the parent
|
||||
* depends on the Host — a circular dependency that collapses to 0 for any
|
||||
* dropdown nested more than one level deep (so only the first, shallowest
|
||||
* dropdown on screen stays visible).
|
||||
*
|
||||
* Giving the wrapper the measured trigger size breaks the cycle; the Host
|
||||
* then fills a concrete box.
|
||||
*/
|
||||
export const MeasuredTriggerHost: React.FC<MeasuredTriggerHostProps> = ({
|
||||
trigger,
|
||||
hostStyle,
|
||||
children,
|
||||
}) => {
|
||||
const [size, handleMeasure] = useTriggerSize();
|
||||
return (
|
||||
<View style={size ?? { opacity: 0 }}>
|
||||
{/* Hidden measurer: lays the trigger out off-flow to capture its
|
||||
intrinsic size. Absolutely positioned WITHOUT right/bottom so it
|
||||
sizes to the trigger's content rather than to its parent. */}
|
||||
<View
|
||||
style={{ position: "absolute", top: 0, left: 0, opacity: 0 }}
|
||||
pointerEvents='none'
|
||||
aria-hidden
|
||||
onLayout={handleMeasure}
|
||||
>
|
||||
{trigger}
|
||||
</View>
|
||||
<Host style={[StyleSheet.absoluteFill, hostStyle as any]}>
|
||||
{children}
|
||||
</Host>
|
||||
</View>
|
||||
);
|
||||
};
|
||||
|
||||
/** Small pill switch used by Android sheet rows. */
|
||||
export const ToggleSwitch: React.FC<{ value: boolean }> = ({ value }) => (
|
||||
<View
|
||||
className={`w-12 h-7 rounded-full ${value ? "bg-purple-600" : "bg-neutral-600"} flex-row items-center`}
|
||||
>
|
||||
<View
|
||||
className={`w-5 h-5 rounded-full bg-white shadow-md transform transition-transform ${value ? "translate-x-6" : "translate-x-1"}`}
|
||||
/>
|
||||
</View>
|
||||
);
|
||||
|
||||
/**
|
||||
* Rounded dark card with an optional title above it. Wraps a group's option
|
||||
* rows in the Android bottom sheet.
|
||||
*/
|
||||
export const OptionGroupCard: React.FC<{
|
||||
title?: string;
|
||||
children: React.ReactNode;
|
||||
}> = ({ title, children }) => (
|
||||
<View className='mb-6'>
|
||||
{title && (
|
||||
<Text className='text-lg font-semibold mb-3 text-neutral-300'>
|
||||
{title}
|
||||
</Text>
|
||||
)}
|
||||
<View
|
||||
style={{ borderRadius: 12, overflow: "hidden" }}
|
||||
className='bg-neutral-800 rounded-xl overflow-hidden'
|
||||
>
|
||||
{children}
|
||||
</View>
|
||||
</View>
|
||||
);
|
||||
@@ -37,7 +37,20 @@ export const ItemPeopleSections: React.FC<Props> = ({ item, ...props }) => {
|
||||
return { ...item, People: people } as BaseItemDto;
|
||||
}, [item, people]);
|
||||
|
||||
const topPeople = useMemo(() => people.slice(0, 3), [people]);
|
||||
// Jellyfin can list the same person several times (e.g. an actor also
|
||||
// credited as writer). Dedupe by Id so the same actor section isn't rendered
|
||||
// twice and we still surface 3 distinct people.
|
||||
const topPeople = useMemo(() => {
|
||||
const seen = new Set<string>();
|
||||
const unique: BaseItemPerson[] = [];
|
||||
for (const person of people) {
|
||||
if (!person.Id || seen.has(person.Id)) continue;
|
||||
seen.add(person.Id);
|
||||
unique.push(person);
|
||||
if (unique.length >= 3) break;
|
||||
}
|
||||
return unique;
|
||||
}, [people]);
|
||||
|
||||
const renderActorSection = useCallback(
|
||||
(person: BaseItemPerson, idx: number, total: number) => {
|
||||
|
||||
@@ -229,7 +229,7 @@ export const LibraryOptionsSheet: React.FC<Props> = ({
|
||||
/>
|
||||
</OptionGroup>
|
||||
|
||||
<OptionGroup title='Options'>
|
||||
<OptionGroup title={t("library.options.options_title")}>
|
||||
<ToggleItem
|
||||
label={t("library.options.show_titles")}
|
||||
value={settings.showTitles}
|
||||
|
||||
@@ -3,6 +3,10 @@ import { useLocalSearchParams } from "expo-router";
|
||||
import { useCallback, useMemo, useRef } from "react";
|
||||
import { Platform, View } from "react-native";
|
||||
import { BITRATES } from "@/components/BitrateSelector";
|
||||
import {
|
||||
type OptionGroup,
|
||||
PlatformDropdown,
|
||||
} from "@/components/PlatformDropdown";
|
||||
import { PLAYBACK_SPEEDS } from "@/components/PlaybackSpeedSelector";
|
||||
import useRouter from "@/hooks/useAppRouter";
|
||||
import { useOfflineMode } from "@/providers/OfflineModeProvider";
|
||||
@@ -10,10 +14,20 @@ import { useSettings } from "@/utils/atoms/settings";
|
||||
import { usePlayerContext } from "../contexts/PlayerContext";
|
||||
import { useVideoContext } from "../contexts/VideoContext";
|
||||
import { PlaybackSpeedScope } from "../utils/playback-speed-settings";
|
||||
import {
|
||||
type OptionGroup,
|
||||
PlayerSettingsPopover,
|
||||
} from "./PlayerSettingsPopover";
|
||||
|
||||
// Subtitle scale presets (direct multiplier values)
|
||||
const SUBTITLE_SCALE_PRESETS = [
|
||||
{ label: "0.1x", value: 0.1 },
|
||||
{ label: "0.25x", value: 0.25 },
|
||||
{ label: "0.5x", value: 0.5 },
|
||||
{ label: "0.75x", value: 0.75 },
|
||||
{ label: "1.0x", value: 1.0 },
|
||||
{ label: "1.25x", value: 1.25 },
|
||||
{ label: "1.5x", value: 1.5 },
|
||||
{ label: "2.0x", value: 2.0 },
|
||||
{ label: "2.5x", value: 2.5 },
|
||||
{ label: "3.0x", value: 3.0 },
|
||||
] as const;
|
||||
|
||||
interface DropdownViewProps {
|
||||
playbackSpeed?: number;
|
||||
@@ -88,7 +102,6 @@ const DropdownView = ({
|
||||
if (!isOffline) {
|
||||
groups.push({
|
||||
title: "Quality",
|
||||
icon: "gauge.with.dots.needle.50percent",
|
||||
options:
|
||||
BITRATES?.map((bitrate) => ({
|
||||
type: "radio" as const,
|
||||
@@ -100,41 +113,29 @@ const DropdownView = ({
|
||||
});
|
||||
}
|
||||
|
||||
// Subtitles section. iOS: tap the `...` opens a SwiftUI Popover with the
|
||||
// section header "SUBTITLES" + a Track row (Menu) + a Size row (native
|
||||
// Slider). Android: same shape in a bottom-sheet — tap the "Track" row to
|
||||
// expand the list inline, Size shows a Material 3 Slider.
|
||||
// Subtitle Section
|
||||
if (subtitleTracks && subtitleTracks.length > 0) {
|
||||
groups.push({
|
||||
title: "Subtitles",
|
||||
options: [
|
||||
{
|
||||
type: "subgroup" as const,
|
||||
label: "Track",
|
||||
icon: "captions.bubble",
|
||||
options: subtitleTracks.map((sub) => ({
|
||||
type: "radio" as const,
|
||||
label: sub.name,
|
||||
value: sub.index.toString(),
|
||||
selected: subtitleIndex === sub.index.toString(),
|
||||
onPress: () => sub.setTrack(),
|
||||
})),
|
||||
},
|
||||
{
|
||||
type: "slider" as const,
|
||||
label: "Size",
|
||||
icon: "textformat.size",
|
||||
value: Math.round((settings.mpvSubtitleScale ?? 1.0) * 10) / 10,
|
||||
step: 0.1,
|
||||
min: 0.1,
|
||||
max: 3.0,
|
||||
format: (v: number) => `${v.toFixed(1)}x`,
|
||||
onValueChange: (value: number) =>
|
||||
updateSettings({
|
||||
mpvSubtitleScale: Math.round(value * 10) / 10,
|
||||
}),
|
||||
},
|
||||
],
|
||||
options: subtitleTracks.map((sub) => ({
|
||||
type: "radio" as const,
|
||||
label: sub.name,
|
||||
value: sub.index.toString(),
|
||||
selected: subtitleIndex === sub.index.toString(),
|
||||
onPress: () => sub.setTrack(),
|
||||
})),
|
||||
});
|
||||
|
||||
// Subtitle Scale Section
|
||||
groups.push({
|
||||
title: "Subtitle Scale",
|
||||
options: SUBTITLE_SCALE_PRESETS.map((preset) => ({
|
||||
type: "radio" as const,
|
||||
label: preset.label,
|
||||
value: preset.value.toString(),
|
||||
selected: (settings.mpvSubtitleScale ?? 1.0) === preset.value,
|
||||
onPress: () => updateSettings({ mpvSubtitleScale: preset.value }),
|
||||
})),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -142,7 +143,6 @@ const DropdownView = ({
|
||||
if (audioTracks && audioTracks.length > 0) {
|
||||
groups.push({
|
||||
title: "Audio",
|
||||
icon: "speaker.wave.2",
|
||||
options: audioTracks.map((track) => ({
|
||||
type: "radio" as const,
|
||||
label: track.name,
|
||||
@@ -157,7 +157,6 @@ const DropdownView = ({
|
||||
if (setPlaybackSpeed) {
|
||||
groups.push({
|
||||
title: "Speed",
|
||||
icon: "speedometer",
|
||||
options: PLAYBACK_SPEEDS.map((speed) => ({
|
||||
type: "radio" as const,
|
||||
label: speed.label,
|
||||
@@ -177,7 +176,6 @@ const DropdownView = ({
|
||||
label: showTechnicalInfo
|
||||
? "Hide Technical Info"
|
||||
: "Show Technical Info",
|
||||
icon: "info.circle",
|
||||
onPress: onToggleTechnicalInfo,
|
||||
},
|
||||
],
|
||||
@@ -218,7 +216,7 @@ const DropdownView = ({
|
||||
if (Platform.isTV) return null;
|
||||
|
||||
return (
|
||||
<PlayerSettingsPopover
|
||||
<PlatformDropdown
|
||||
title='Playback Options'
|
||||
groups={optionGroups}
|
||||
trigger={trigger}
|
||||
|
||||
@@ -1,930 +0,0 @@
|
||||
import { Ionicons } from "@expo/vector-icons";
|
||||
import { BottomSheetScrollView } from "@gorhom/bottom-sheet";
|
||||
import React, { useEffect, useState } from "react";
|
||||
import { Platform, StyleSheet, TouchableOpacity, View } from "react-native";
|
||||
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
||||
import {
|
||||
MeasuredTriggerHost,
|
||||
OptionGroupCard,
|
||||
ToggleSwitch,
|
||||
} from "@/components/common/dropdownShared";
|
||||
import { Text } from "@/components/common/Text";
|
||||
import type {
|
||||
ActionOption as BaseActionOption,
|
||||
RadioOption as BaseRadioOption,
|
||||
ToggleOption as BaseToggleOption,
|
||||
} from "@/components/PlatformDropdown";
|
||||
import { useGlobalModal } from "@/providers/GlobalModalProvider";
|
||||
|
||||
// Player-only popover/sheet. Shares no rendering with `PlatformDropdown`:
|
||||
// that component is used by ~20 callers (settings, season pickers,
|
||||
// bitrate/audio/subtitle selectors, …) and must keep its small native
|
||||
// Menu look. This one targets the in-player `...` button and is allowed to
|
||||
// (a) host a real slider, (b) wear the Swift-mock visual style, and
|
||||
// (c) carry SF Symbol icons per row.
|
||||
//
|
||||
// Common boilerplate (trigger measurement, ToggleSwitch, Android option-card
|
||||
// shell) lives in @/components/common/dropdownShared and is reused with
|
||||
// PlatformDropdown.
|
||||
//
|
||||
// @expo/ui's SwiftUI native module (ExpoUI) does not exist in tvOS builds.
|
||||
// A static top-level import evaluates requireNativeModule('ExpoUI') at module
|
||||
// load and crashes the entire route tree on tvOS (expo-router requires every
|
||||
// route file). Load it lazily and only off-TV; TV never renders these.
|
||||
const {
|
||||
Button,
|
||||
HStack,
|
||||
Image: SwiftImage,
|
||||
Menu,
|
||||
Popover,
|
||||
Rectangle: SwiftRectangle,
|
||||
Slider: SwiftSlider,
|
||||
Spacer,
|
||||
Stepper,
|
||||
Text: SwiftText,
|
||||
Toggle: SwiftToggle,
|
||||
VStack,
|
||||
} = Platform.isTV
|
||||
? ({} as typeof import("@expo/ui/swift-ui"))
|
||||
: require("@expo/ui/swift-ui");
|
||||
const {
|
||||
buttonStyle,
|
||||
disabled,
|
||||
font,
|
||||
foregroundStyle,
|
||||
frame,
|
||||
opacity,
|
||||
padding,
|
||||
tint,
|
||||
} = Platform.isTV
|
||||
? ({} as typeof import("@expo/ui/swift-ui/modifiers"))
|
||||
: require("@expo/ui/swift-ui/modifiers");
|
||||
// Android-side Material 3 slider. Lives in @expo/ui/community/slider and is a
|
||||
// drop-in for react-native-community/slider on Android (and SwiftUI Slider on
|
||||
// iOS, but we use the swift-ui Slider directly inside the popover instead).
|
||||
const { Slider: CommunitySlider } = Platform.isTV
|
||||
? ({} as typeof import("@expo/ui/community/slider"))
|
||||
: require("@expo/ui/community/slider");
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Option model
|
||||
// ---------------------------------------------------------------------------
|
||||
// Reuses PlatformDropdown's three base option types (so the 20+ shared callers
|
||||
// and the player popover stay in sync on shape), then adds:
|
||||
// - `icon?: string` on every variant — SF Symbol shown in the iOS popover
|
||||
// - Slider / Stepper / Subgroup variants for the player's extra controls
|
||||
|
||||
type WithIcon = { icon?: string };
|
||||
|
||||
export type RadioOption<T = any> = BaseRadioOption<T> & WithIcon;
|
||||
export type ToggleOption = BaseToggleOption & WithIcon;
|
||||
export type ActionOption = BaseActionOption & WithIcon;
|
||||
|
||||
export type StepperOption = {
|
||||
type: "stepper";
|
||||
label: string;
|
||||
value: number;
|
||||
step: number;
|
||||
min: number;
|
||||
max: number;
|
||||
onValueChange: (value: number) => void;
|
||||
/** Optional value formatter for the displayed number. */
|
||||
format?: (value: number) => string;
|
||||
disabled?: boolean;
|
||||
} & WithIcon;
|
||||
|
||||
export type SliderOption = {
|
||||
type: "slider";
|
||||
label: string;
|
||||
value: number;
|
||||
step: number;
|
||||
min: number;
|
||||
max: number;
|
||||
onValueChange: (value: number) => void;
|
||||
/** Optional value formatter for the displayed number. */
|
||||
format?: (value: number) => string;
|
||||
disabled?: boolean;
|
||||
} & WithIcon;
|
||||
|
||||
/**
|
||||
* A row that itself opens a nested dropdown. On iOS this renders as a
|
||||
* SwiftUI `Menu` inside the popover (label = subgroup name, value =
|
||||
* currently-selected child); on Android the row expands inline to show its
|
||||
* options when tapped (and collapses again on a second tap).
|
||||
*/
|
||||
export type SubgroupOption = {
|
||||
type: "subgroup";
|
||||
label: string;
|
||||
options: Option[];
|
||||
disabled?: boolean;
|
||||
} & WithIcon;
|
||||
|
||||
export type Option =
|
||||
| RadioOption
|
||||
| ToggleOption
|
||||
| ActionOption
|
||||
| StepperOption
|
||||
| SliderOption
|
||||
| SubgroupOption;
|
||||
|
||||
export type OptionGroup = {
|
||||
title?: string;
|
||||
options: Option[];
|
||||
/**
|
||||
* Optional SF Symbol used for the group's row in the iOS popover when the
|
||||
* entire group is compressed to a single Menu (e.g. radio-only groups).
|
||||
*/
|
||||
icon?: string;
|
||||
};
|
||||
|
||||
interface PlayerSettingsPopoverProps {
|
||||
trigger?: React.ReactNode;
|
||||
title?: string;
|
||||
groups: OptionGroup[];
|
||||
open?: boolean;
|
||||
onOpenChange?: (open: boolean) => void;
|
||||
onOptionSelect?: (value?: any) => void;
|
||||
expoUIConfig?: {
|
||||
hostStyle?: any;
|
||||
};
|
||||
bottomSheetConfig?: {
|
||||
enableDynamicSizing?: boolean;
|
||||
enablePanDownToClose?: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Android bottom-sheet renderers
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
const StepperControl: React.FC<{
|
||||
option: StepperOption;
|
||||
}> = ({ option }) => {
|
||||
const display = option.format
|
||||
? option.format(option.value)
|
||||
: option.value.toString();
|
||||
const canDecrement = option.value > option.min;
|
||||
const canIncrement = option.value < option.max;
|
||||
|
||||
const decrement = () => {
|
||||
if (option.disabled) return;
|
||||
const next = Math.max(option.min, option.value - option.step);
|
||||
if (next !== option.value) option.onValueChange(next);
|
||||
};
|
||||
const increment = () => {
|
||||
if (option.disabled) return;
|
||||
const next = Math.min(option.max, option.value + option.step);
|
||||
if (next !== option.value) option.onValueChange(next);
|
||||
};
|
||||
|
||||
return (
|
||||
<View className='flex flex-row items-center'>
|
||||
<TouchableOpacity
|
||||
onPress={decrement}
|
||||
disabled={!canDecrement || option.disabled}
|
||||
className={`w-8 h-8 bg-neutral-700 rounded-l-lg flex items-center justify-center ${!canDecrement || option.disabled ? "opacity-40" : ""}`}
|
||||
>
|
||||
<Text className='text-white'>-</Text>
|
||||
</TouchableOpacity>
|
||||
<View className='h-8 px-3 bg-neutral-700 flex items-center justify-center'>
|
||||
<Text className='text-white'>{display}</Text>
|
||||
</View>
|
||||
<TouchableOpacity
|
||||
onPress={increment}
|
||||
disabled={!canIncrement || option.disabled}
|
||||
className={`w-8 h-8 bg-neutral-700 rounded-r-lg flex items-center justify-center ${!canIncrement || option.disabled ? "opacity-40" : ""}`}
|
||||
>
|
||||
<Text className='text-white'>+</Text>
|
||||
</TouchableOpacity>
|
||||
</View>
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
* Android: full-width Material 3 slider inside the bottom sheet, with a
|
||||
* label/value row above the track. The slider lives below the touch target so
|
||||
* dragging it doesn't accidentally collapse the sheet.
|
||||
*/
|
||||
const SliderControl: React.FC<{
|
||||
option: SliderOption;
|
||||
}> = ({ option }) => {
|
||||
const display = option.format
|
||||
? option.format(option.value)
|
||||
: option.value.toString();
|
||||
return (
|
||||
<View className='flex-1 px-4 py-3'>
|
||||
<View className='flex flex-row items-center justify-between mb-2'>
|
||||
<Text className='text-white'>{option.label}</Text>
|
||||
<Text className='text-neutral-400'>{display}</Text>
|
||||
</View>
|
||||
<CommunitySlider
|
||||
value={option.value}
|
||||
minimumValue={option.min}
|
||||
maximumValue={option.max}
|
||||
step={option.step}
|
||||
onValueChange={option.onValueChange}
|
||||
disabled={option.disabled}
|
||||
style={{ width: "100%", height: 40 }}
|
||||
/>
|
||||
</View>
|
||||
);
|
||||
};
|
||||
|
||||
const OptionItem: React.FC<{ option: Option; isLast?: boolean }> = ({
|
||||
option,
|
||||
isLast,
|
||||
}) => {
|
||||
const [expanded, setExpanded] = useState(false);
|
||||
|
||||
const isToggle = option.type === "toggle";
|
||||
const isAction = option.type === "action";
|
||||
const isStepper = option.type === "stepper";
|
||||
const isSlider = option.type === "slider";
|
||||
const isSubgroup = option.type === "subgroup";
|
||||
|
||||
if (isSlider) {
|
||||
return (
|
||||
<>
|
||||
<SliderControl option={option} />
|
||||
{!isLast && (
|
||||
<View
|
||||
style={{ height: StyleSheet.hairlineWidth }}
|
||||
className='bg-neutral-700 mx-4'
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
const handlePress = isToggle
|
||||
? option.onToggle
|
||||
: isSubgroup
|
||||
? () => setExpanded((v) => !v)
|
||||
: isStepper
|
||||
? undefined
|
||||
: (option as RadioOption | ActionOption).onPress;
|
||||
|
||||
const selectedChild = isSubgroup
|
||||
? (option.options.find(
|
||||
(o): o is RadioOption => o.type === "radio" && o.selected,
|
||||
) ?? undefined)
|
||||
: undefined;
|
||||
|
||||
return (
|
||||
<>
|
||||
<TouchableOpacity
|
||||
onPress={handlePress}
|
||||
disabled={option.disabled || isStepper}
|
||||
activeOpacity={isStepper ? 1 : 0.2}
|
||||
className={`px-4 py-3 flex flex-row items-center justify-between ${option.disabled ? "opacity-50" : ""}`}
|
||||
>
|
||||
<Text className='flex-1 text-white'>{option.label}</Text>
|
||||
{isToggle ? (
|
||||
<ToggleSwitch value={option.value} />
|
||||
) : isStepper ? (
|
||||
<StepperControl option={option} />
|
||||
) : isSubgroup ? (
|
||||
<View className='flex flex-row items-center'>
|
||||
{selectedChild && (
|
||||
<Text className='text-neutral-400 mr-2'>
|
||||
{selectedChild.label}
|
||||
</Text>
|
||||
)}
|
||||
<Ionicons
|
||||
name={expanded ? "chevron-up" : "chevron-down"}
|
||||
size={20}
|
||||
color='#9ca3af'
|
||||
/>
|
||||
</View>
|
||||
) : isAction ? null : (option as RadioOption).selected ? (
|
||||
<Ionicons name='checkmark-circle' size={24} color='#9333ea' />
|
||||
) : (
|
||||
<Ionicons name='ellipse-outline' size={24} color='#6b7280' />
|
||||
)}
|
||||
</TouchableOpacity>
|
||||
|
||||
{isSubgroup && expanded && (
|
||||
<View className='pl-4 bg-neutral-900'>
|
||||
{option.options.map((child, childIndex) => (
|
||||
<OptionItem
|
||||
key={childIndex}
|
||||
option={child}
|
||||
isLast={childIndex === option.options.length - 1}
|
||||
/>
|
||||
))}
|
||||
</View>
|
||||
)}
|
||||
|
||||
{!isLast && (
|
||||
<View
|
||||
style={{ height: StyleSheet.hairlineWidth }}
|
||||
className='bg-neutral-700 mx-4'
|
||||
/>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
const OptionGroupComponent: React.FC<{ group: OptionGroup }> = ({ group }) => (
|
||||
<OptionGroupCard title={group.title}>
|
||||
{group.options.map((option, index) => (
|
||||
<OptionItem
|
||||
key={index}
|
||||
option={option}
|
||||
isLast={index === group.options.length - 1}
|
||||
/>
|
||||
))}
|
||||
</OptionGroupCard>
|
||||
);
|
||||
|
||||
const BottomSheetContent: React.FC<{
|
||||
title?: string;
|
||||
groups: OptionGroup[];
|
||||
onOptionSelect?: (value?: any) => void;
|
||||
onClose?: () => void;
|
||||
}> = ({ title, groups, onOptionSelect, onClose }) => {
|
||||
const insets = useSafeAreaInsets();
|
||||
|
||||
// Recursively wrap options so radio/action presses also call
|
||||
// onOptionSelect/onClose, including options nested inside subgroups.
|
||||
const wrapOption = (option: Option): Option => {
|
||||
if (option.type === "radio") {
|
||||
return {
|
||||
...option,
|
||||
onPress: () => {
|
||||
option.onPress();
|
||||
onOptionSelect?.(option.value);
|
||||
onClose?.();
|
||||
},
|
||||
};
|
||||
}
|
||||
if (option.type === "toggle") {
|
||||
return {
|
||||
...option,
|
||||
onToggle: () => {
|
||||
option.onToggle();
|
||||
onOptionSelect?.(option.value);
|
||||
},
|
||||
};
|
||||
}
|
||||
if (option.type === "action") {
|
||||
return {
|
||||
...option,
|
||||
onPress: () => {
|
||||
option.onPress();
|
||||
onClose?.();
|
||||
},
|
||||
};
|
||||
}
|
||||
if (option.type === "subgroup") {
|
||||
return { ...option, options: option.options.map(wrapOption) };
|
||||
}
|
||||
return option;
|
||||
};
|
||||
|
||||
const wrappedGroups = groups.map((group) => ({
|
||||
...group,
|
||||
options: group.options.map(wrapOption),
|
||||
}));
|
||||
|
||||
return (
|
||||
<BottomSheetScrollView
|
||||
className='px-4 pb-8 pt-2'
|
||||
style={{
|
||||
paddingLeft: Math.max(16, insets.left),
|
||||
paddingRight: Math.max(16, insets.right),
|
||||
}}
|
||||
>
|
||||
{title && <Text className='font-bold text-2xl mb-6'>{title}</Text>}
|
||||
{wrappedGroups.map((group, index) => (
|
||||
<OptionGroupComponent key={index} group={group} />
|
||||
))}
|
||||
</BottomSheetScrollView>
|
||||
);
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Component
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
const PlayerSettingsPopoverComponent = ({
|
||||
trigger,
|
||||
title,
|
||||
groups,
|
||||
open: controlledOpen,
|
||||
onOpenChange: controlledOnOpenChange,
|
||||
onOptionSelect,
|
||||
expoUIConfig,
|
||||
bottomSheetConfig,
|
||||
}: PlayerSettingsPopoverProps) => {
|
||||
const { showModal, hideModal, isVisible } = useGlobalModal();
|
||||
|
||||
// Android: controlled open routes through the global bottom-sheet modal.
|
||||
useEffect(() => {
|
||||
if (Platform.OS === "android" && controlledOpen === true) {
|
||||
showModal(
|
||||
<BottomSheetContent
|
||||
title={title}
|
||||
groups={groups}
|
||||
onOptionSelect={onOptionSelect}
|
||||
onClose={() => {
|
||||
hideModal();
|
||||
controlledOnOpenChange?.(false);
|
||||
}}
|
||||
/>,
|
||||
{
|
||||
snapPoints: ["90%"],
|
||||
enablePanDownToClose: bottomSheetConfig?.enablePanDownToClose ?? true,
|
||||
},
|
||||
);
|
||||
}
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [controlledOpen]);
|
||||
|
||||
useEffect(() => {
|
||||
if (Platform.OS === "android" && controlledOpen === true && !isVisible) {
|
||||
controlledOnOpenChange?.(false);
|
||||
}
|
||||
}, [isVisible, controlledOpen, controlledOnOpenChange]);
|
||||
|
||||
// Internal open state for the iOS popover. Synced both ways with
|
||||
// `controlledOpen` when controlled.
|
||||
const [iosOpen, setIosOpen] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
if (Platform.OS === "ios" && controlledOpen !== undefined) {
|
||||
setIosOpen(controlledOpen);
|
||||
}
|
||||
}, [controlledOpen]);
|
||||
|
||||
const handleIosOpenChange = (value: boolean) => {
|
||||
setIosOpen(value);
|
||||
controlledOnOpenChange?.(value);
|
||||
};
|
||||
|
||||
if (Platform.OS === "ios" && !Platform.isTV) {
|
||||
const closePopover = () => handleIosOpenChange(false);
|
||||
|
||||
// ---- Swift-mock styled popover body ----
|
||||
// Mirrors the reference Swift `PlayerSettingsViewController` design:
|
||||
// - small-caps section headers with a hairline rule to the trailing edge
|
||||
// - 44pt rows with leading SF Symbol, 15pt title, trailing value + glyph
|
||||
// - real native Slider rows for slider options
|
||||
// Radio-only titled groups (Quality/Audio/Speed) are compressed to a
|
||||
// single Menu row whose label is a styled HStack — tapping opens the
|
||||
// selection menu without changing the panel's height.
|
||||
|
||||
type IconName = string | undefined;
|
||||
|
||||
const MENU_CHEVRON = "chevron.up.chevron.down" as const;
|
||||
const TERTIARY = {
|
||||
type: "hierarchical" as const,
|
||||
style: "tertiary" as const,
|
||||
};
|
||||
const SECONDARY = {
|
||||
type: "hierarchical" as const,
|
||||
style: "secondary" as const,
|
||||
};
|
||||
|
||||
/** 24pt-wide leading icon slot. Renders a transparent placeholder when
|
||||
* no icon is set so titles stay aligned across rows. */
|
||||
const renderIcon = (icon: IconName) => (
|
||||
<SwiftImage
|
||||
systemName={(icon ?? "circle") as any}
|
||||
size={18}
|
||||
modifiers={[
|
||||
frame({ width: 24, alignment: "leading" }),
|
||||
foregroundStyle(SECONDARY),
|
||||
...(icon ? [] : [opacity(0)]),
|
||||
]}
|
||||
/>
|
||||
);
|
||||
|
||||
/** Small-caps section header + thin separator that fills the row width. */
|
||||
const renderSectionHeader = (sectionTitle: string, key: string) => (
|
||||
<HStack
|
||||
key={key}
|
||||
spacing={10}
|
||||
alignment='center'
|
||||
modifiers={[frame({ height: 28 })]}
|
||||
>
|
||||
<SwiftText
|
||||
modifiers={[
|
||||
font({ size: 11, weight: "semibold" }),
|
||||
foregroundStyle(TERTIARY),
|
||||
]}
|
||||
>
|
||||
{sectionTitle.toUpperCase()}
|
||||
</SwiftText>
|
||||
<SwiftRectangle
|
||||
modifiers={[frame({ height: 1 }), foregroundStyle(TERTIARY)]}
|
||||
/>
|
||||
</HStack>
|
||||
);
|
||||
|
||||
/** Bare hairline used to close out a multi-row titled section. */
|
||||
const renderDivider = (key: string) => (
|
||||
<SwiftRectangle
|
||||
key={key}
|
||||
modifiers={[
|
||||
frame({ height: 1 }),
|
||||
foregroundStyle(TERTIARY),
|
||||
padding({ vertical: 2 }),
|
||||
]}
|
||||
/>
|
||||
);
|
||||
|
||||
/** Render menu-safe children (radio/action) inside a SwiftUI Menu. */
|
||||
const renderMenuChild = (option: Option, key: string): any => {
|
||||
if (option.type === "radio") {
|
||||
return (
|
||||
<Button
|
||||
key={key}
|
||||
label={option.label}
|
||||
systemImage={
|
||||
(option.selected ? "checkmark.circle.fill" : "circle") as any
|
||||
}
|
||||
modifiers={option.disabled ? [disabled(true)] : undefined}
|
||||
onPress={() => {
|
||||
option.onPress();
|
||||
onOptionSelect?.(option.value);
|
||||
closePopover();
|
||||
}}
|
||||
/>
|
||||
);
|
||||
}
|
||||
if (option.type === "action") {
|
||||
return (
|
||||
<Button
|
||||
key={key}
|
||||
label={option.label}
|
||||
modifiers={option.disabled ? [disabled(true)] : undefined}
|
||||
onPress={() => {
|
||||
option.onPress();
|
||||
closePopover();
|
||||
}}
|
||||
/>
|
||||
);
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
/** Row that opens a SwiftUI Menu on tap. Used for compressed radio
|
||||
* groups and for subgroup options inside a multi-row section. */
|
||||
const renderMenuRow = ({
|
||||
key,
|
||||
icon,
|
||||
title: rowTitle,
|
||||
valueLabel,
|
||||
children,
|
||||
}: {
|
||||
key: string;
|
||||
icon: IconName;
|
||||
title: string;
|
||||
valueLabel?: string;
|
||||
children: any;
|
||||
}) => (
|
||||
<Menu
|
||||
key={key}
|
||||
label={
|
||||
<HStack
|
||||
spacing={10}
|
||||
alignment='center'
|
||||
modifiers={[frame({ height: 44 })]}
|
||||
>
|
||||
{renderIcon(icon)}
|
||||
<SwiftText modifiers={[font({ size: 15 })]}>{rowTitle}</SwiftText>
|
||||
<Spacer />
|
||||
{valueLabel ? (
|
||||
<SwiftText
|
||||
modifiers={[font({ size: 13 }), foregroundStyle(SECONDARY)]}
|
||||
>
|
||||
{valueLabel}
|
||||
</SwiftText>
|
||||
) : null}
|
||||
<SwiftImage
|
||||
systemName={MENU_CHEVRON as any}
|
||||
size={12}
|
||||
modifiers={[foregroundStyle(TERTIARY)]}
|
||||
/>
|
||||
</HStack>
|
||||
}
|
||||
>
|
||||
{children}
|
||||
</Menu>
|
||||
);
|
||||
|
||||
const renderSliderRow = (option: SliderOption, key: string) => {
|
||||
const display = option.format
|
||||
? option.format(option.value)
|
||||
: option.value.toString();
|
||||
return (
|
||||
<HStack
|
||||
key={key}
|
||||
spacing={10}
|
||||
alignment='center'
|
||||
modifiers={[frame({ height: 44 })]}
|
||||
>
|
||||
{renderIcon(option.icon)}
|
||||
<SwiftText
|
||||
modifiers={[
|
||||
font({ size: 15 }),
|
||||
frame({ width: 64, alignment: "leading" }),
|
||||
]}
|
||||
>
|
||||
{option.label}
|
||||
</SwiftText>
|
||||
<SwiftSlider
|
||||
value={option.value}
|
||||
min={option.min}
|
||||
max={option.max}
|
||||
step={option.step}
|
||||
modifiers={option.disabled ? [disabled(true)] : undefined}
|
||||
onValueChange={option.onValueChange}
|
||||
/>
|
||||
<SwiftText
|
||||
modifiers={[
|
||||
font({ size: 13, design: "monospaced" }),
|
||||
foregroundStyle(SECONDARY),
|
||||
frame({ width: 44, alignment: "trailing" }),
|
||||
]}
|
||||
>
|
||||
{display}
|
||||
</SwiftText>
|
||||
</HStack>
|
||||
);
|
||||
};
|
||||
|
||||
const renderStepperRow = (option: StepperOption, key: string) => {
|
||||
const display = option.format
|
||||
? option.format(option.value)
|
||||
: option.value.toString();
|
||||
return (
|
||||
<HStack
|
||||
key={key}
|
||||
spacing={10}
|
||||
alignment='center'
|
||||
modifiers={[frame({ height: 44 })]}
|
||||
>
|
||||
{renderIcon(option.icon)}
|
||||
<SwiftText modifiers={[font({ size: 15 })]}>{option.label}</SwiftText>
|
||||
<Spacer />
|
||||
<Stepper
|
||||
label={display}
|
||||
value={option.value}
|
||||
step={option.step}
|
||||
min={option.min}
|
||||
max={option.max}
|
||||
modifiers={option.disabled ? [disabled(true)] : undefined}
|
||||
onValueChange={option.onValueChange}
|
||||
/>
|
||||
</HStack>
|
||||
);
|
||||
};
|
||||
|
||||
const renderToggleRow = (option: ToggleOption, key: string) => (
|
||||
<HStack
|
||||
key={key}
|
||||
spacing={10}
|
||||
alignment='center'
|
||||
modifiers={[frame({ height: 44 })]}
|
||||
>
|
||||
{renderIcon(option.icon)}
|
||||
<SwiftText modifiers={[font({ size: 15 })]}>{option.label}</SwiftText>
|
||||
<Spacer />
|
||||
<SwiftToggle
|
||||
label=''
|
||||
value={option.value}
|
||||
modifiers={option.disabled ? [disabled(true)] : undefined}
|
||||
onValueChange={() => {
|
||||
option.onToggle();
|
||||
onOptionSelect?.(option.value);
|
||||
}}
|
||||
/>
|
||||
</HStack>
|
||||
);
|
||||
|
||||
const renderActionRow = (option: ActionOption, key: string) => (
|
||||
<Button
|
||||
key={key}
|
||||
modifiers={[
|
||||
buttonStyle("plain"),
|
||||
...(option.disabled ? [disabled(true)] : []),
|
||||
]}
|
||||
onPress={() => {
|
||||
option.onPress();
|
||||
closePopover();
|
||||
}}
|
||||
>
|
||||
<HStack
|
||||
spacing={10}
|
||||
alignment='center'
|
||||
modifiers={[frame({ height: 44 })]}
|
||||
>
|
||||
{renderIcon(option.icon)}
|
||||
<SwiftText modifiers={[font({ size: 15 })]}>{option.label}</SwiftText>
|
||||
<Spacer />
|
||||
</HStack>
|
||||
</Button>
|
||||
);
|
||||
|
||||
/** Render one Option as its own row inside a mixed (non-compressed)
|
||||
* section. */
|
||||
const renderOptionRow = (option: Option, key: string): any => {
|
||||
if (option.type === "slider") return renderSliderRow(option, key);
|
||||
if (option.type === "stepper") return renderStepperRow(option, key);
|
||||
if (option.type === "toggle") return renderToggleRow(option, key);
|
||||
if (option.type === "action") return renderActionRow(option, key);
|
||||
if (option.type === "subgroup") {
|
||||
const selectedChild = option.options.find(
|
||||
(o): o is RadioOption => o.type === "radio" && o.selected,
|
||||
);
|
||||
return renderMenuRow({
|
||||
key,
|
||||
icon: option.icon,
|
||||
title: option.label,
|
||||
valueLabel: selectedChild?.label,
|
||||
children: option.options.map((child, idx) =>
|
||||
renderMenuChild(child, `${key}-c${idx}`),
|
||||
),
|
||||
});
|
||||
}
|
||||
if (option.type === "radio") {
|
||||
return (
|
||||
<Button
|
||||
key={key}
|
||||
modifiers={[
|
||||
buttonStyle("plain"),
|
||||
...(option.disabled ? [disabled(true)] : []),
|
||||
]}
|
||||
onPress={() => {
|
||||
option.onPress();
|
||||
onOptionSelect?.(option.value);
|
||||
closePopover();
|
||||
}}
|
||||
>
|
||||
<HStack
|
||||
spacing={10}
|
||||
alignment='center'
|
||||
modifiers={[frame({ height: 44 })]}
|
||||
>
|
||||
{renderIcon(option.icon)}
|
||||
<SwiftText modifiers={[font({ size: 15 })]}>
|
||||
{option.label}
|
||||
</SwiftText>
|
||||
<Spacer />
|
||||
{option.selected ? (
|
||||
<SwiftImage
|
||||
systemName={"checkmark" as any}
|
||||
size={14}
|
||||
modifiers={[foregroundStyle(SECONDARY)]}
|
||||
/>
|
||||
) : null}
|
||||
</HStack>
|
||||
</Button>
|
||||
);
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
/**
|
||||
* Render an entire OptionGroup.
|
||||
* - Titled group with only radio (or radio + action) options →
|
||||
* compressed to a single Menu row.
|
||||
* - Titled group containing slider/toggle/stepper/subgroup →
|
||||
* section header + individual rows.
|
||||
* - Untitled group → individual rows, no header.
|
||||
*/
|
||||
const renderGroup = (group: OptionGroup, groupIndex: number): any[] => {
|
||||
if (group.options.length === 0) return [];
|
||||
|
||||
const onlyMenuSafe = group.options.every(
|
||||
(o) => o.type === "radio" || o.type === "action",
|
||||
);
|
||||
|
||||
if (group.title && onlyMenuSafe) {
|
||||
const selectedRadio = group.options.find(
|
||||
(o): o is RadioOption => o.type === "radio" && o.selected,
|
||||
);
|
||||
return [
|
||||
renderMenuRow({
|
||||
key: `group-${groupIndex}`,
|
||||
icon: group.icon,
|
||||
title: group.title,
|
||||
valueLabel: selectedRadio?.label,
|
||||
children: group.options.map((opt, idx) =>
|
||||
renderMenuChild(opt, `g${groupIndex}-c${idx}`),
|
||||
),
|
||||
}),
|
||||
];
|
||||
}
|
||||
|
||||
const rows: any[] = [];
|
||||
if (group.title) {
|
||||
rows.push(renderSectionHeader(group.title, `header-${groupIndex}`));
|
||||
}
|
||||
group.options.forEach((opt, idx) => {
|
||||
rows.push(renderOptionRow(opt, `g${groupIndex}-o${idx}`));
|
||||
});
|
||||
return rows;
|
||||
};
|
||||
|
||||
return (
|
||||
<MeasuredTriggerHost
|
||||
trigger={trigger}
|
||||
hostStyle={expoUIConfig?.hostStyle}
|
||||
>
|
||||
<Popover
|
||||
isPresented={iosOpen}
|
||||
onIsPresentedChange={handleIosOpenChange}
|
||||
arrowEdge='top'
|
||||
>
|
||||
<Popover.Trigger>
|
||||
{/* Wrap the RN trigger view in a SwiftUI Button so tap handling
|
||||
is captured at the SwiftUI layer (matches the codebase
|
||||
pattern in SearchTabButtons.tsx). */}
|
||||
<Button
|
||||
modifiers={[buttonStyle("plain")]}
|
||||
onPress={() => handleIosOpenChange(true)}
|
||||
>
|
||||
{trigger}
|
||||
</Button>
|
||||
</Popover.Trigger>
|
||||
<Popover.Content>
|
||||
{/* Bare VStack — no Form/List chrome — so the panel reads as
|
||||
the Swift mock's floating glass card. The popover itself
|
||||
supplies the material background; we just stack rows
|
||||
inside. Width pinned to ~320pt; height >= 480pt. */}
|
||||
<VStack
|
||||
spacing={0}
|
||||
alignment='leading'
|
||||
modifiers={[
|
||||
padding({ horizontal: 18, top: 12, bottom: 12 }),
|
||||
frame({
|
||||
minWidth: 300,
|
||||
idealWidth: 320,
|
||||
maxWidth: 360,
|
||||
minHeight: 480,
|
||||
idealHeight: 520,
|
||||
}),
|
||||
// Tint cascades to all child controls — Slider track, Menu
|
||||
// checkmark, Stepper ± buttons, Toggle — so one modifier
|
||||
// paints the whole popover white instead of system blue.
|
||||
tint("white"),
|
||||
]}
|
||||
>
|
||||
{groups.flatMap((group, groupIndex) => {
|
||||
const rows = renderGroup(group, groupIndex);
|
||||
if (rows.length === 0) return [];
|
||||
// After a multi-row titled section (Subtitles), append a
|
||||
// bare hairline divider so it's clearly separated from
|
||||
// the next group below.
|
||||
const isMultiRow =
|
||||
!!group.title &&
|
||||
!group.options.every(
|
||||
(o) => o.type === "radio" || o.type === "action",
|
||||
);
|
||||
const hasNext = groupIndex < groups.length - 1;
|
||||
return isMultiRow && hasNext
|
||||
? [...rows, renderDivider(`footer-${groupIndex}`)]
|
||||
: rows;
|
||||
})}
|
||||
</VStack>
|
||||
</Popover.Content>
|
||||
</Popover>
|
||||
</MeasuredTriggerHost>
|
||||
);
|
||||
}
|
||||
|
||||
// Android: open the bottom sheet directly on press (uncontrolled mode).
|
||||
const handlePress = () => {
|
||||
showModal(
|
||||
<BottomSheetContent
|
||||
title={title}
|
||||
groups={groups}
|
||||
onOptionSelect={onOptionSelect}
|
||||
onClose={hideModal}
|
||||
/>,
|
||||
{
|
||||
snapPoints: ["90%"],
|
||||
enablePanDownToClose: bottomSheetConfig?.enablePanDownToClose ?? true,
|
||||
},
|
||||
);
|
||||
};
|
||||
|
||||
return (
|
||||
<TouchableOpacity onPress={handlePress} activeOpacity={0.7}>
|
||||
{trigger || <Text className='text-white'>Open Menu</Text>}
|
||||
</TouchableOpacity>
|
||||
);
|
||||
};
|
||||
|
||||
// Memoize to prevent unnecessary re-renders when parent re-renders.
|
||||
export const PlayerSettingsPopover = React.memo(
|
||||
PlayerSettingsPopoverComponent,
|
||||
(prevProps, nextProps) =>
|
||||
prevProps.title === nextProps.title &&
|
||||
prevProps.open === nextProps.open &&
|
||||
prevProps.groups === nextProps.groups &&
|
||||
prevProps.trigger === nextProps.trigger,
|
||||
);
|
||||
15
eas.json
15
eas.json
@@ -56,7 +56,11 @@
|
||||
"environment": "production",
|
||||
"autoIncrement": true,
|
||||
"android": {
|
||||
"image": "latest"
|
||||
"image": "latest",
|
||||
"config": "android-production.yml"
|
||||
},
|
||||
"ios": {
|
||||
"config": "ios-production.yml"
|
||||
}
|
||||
},
|
||||
"production-apk": {
|
||||
@@ -65,7 +69,8 @@
|
||||
"autoIncrement": true,
|
||||
"android": {
|
||||
"buildType": "apk",
|
||||
"image": "latest"
|
||||
"image": "latest",
|
||||
"config": "android-production-apk.yml"
|
||||
}
|
||||
},
|
||||
"production-apk-tv": {
|
||||
@@ -74,7 +79,8 @@
|
||||
"autoIncrement": true,
|
||||
"android": {
|
||||
"buildType": "apk",
|
||||
"image": "latest"
|
||||
"image": "latest",
|
||||
"config": "android-production-tv.yml"
|
||||
},
|
||||
"env": {
|
||||
"EXPO_TV": "1"
|
||||
@@ -88,7 +94,8 @@
|
||||
"EXPO_TV": "1"
|
||||
},
|
||||
"ios": {
|
||||
"credentialsSource": "local"
|
||||
"credentialsSource": "local",
|
||||
"config": "ios-production.yml"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -1,46 +1,20 @@
|
||||
plugins {
|
||||
id 'com.android.library'
|
||||
id 'kotlin-android'
|
||||
}
|
||||
apply plugin: 'expo-module-gradle-plugin'
|
||||
|
||||
group = 'expo.modules.backgrounddownloader'
|
||||
version = '1.0.0'
|
||||
|
||||
def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
|
||||
def kotlinVersion = findProperty('android.kotlinVersion') ?: '1.9.25'
|
||||
|
||||
apply from: expoModulesCorePlugin
|
||||
|
||||
applyKotlinExpoModulesCorePlugin()
|
||||
useDefaultAndroidSdkVersions()
|
||||
useCoreDependencies()
|
||||
useExpoPublishing()
|
||||
expoModule {
|
||||
canBePublished false
|
||||
}
|
||||
|
||||
android {
|
||||
namespace "expo.modules.backgrounddownloader"
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_17
|
||||
targetCompatibility JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = "17"
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
abortOnError false
|
||||
defaultConfig {
|
||||
versionCode 1
|
||||
versionName "1.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
|
||||
implementation "com.squareup.okhttp3:okhttp:4.12.0"
|
||||
}
|
||||
|
||||
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
|
||||
kotlinOptions {
|
||||
jvmTarget = "17"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { MpvPlayerViewProps } from "./MpvPlayer.types";
|
||||
|
||||
export default function MpvPlayerView(props: MpvPlayerViewProps) {
|
||||
const url = props.source?.url ?? "";
|
||||
const { t } = useTranslation();
|
||||
return (
|
||||
<div>
|
||||
<iframe
|
||||
title='MPV Player'
|
||||
title={t("player.mpv_player_title")}
|
||||
style={{ flex: 1 }}
|
||||
src={url}
|
||||
onLoad={() => props.onLoad?.({ nativeEvent: { url } })}
|
||||
|
||||
@@ -22,7 +22,9 @@
|
||||
"lint": "biome check --write --unsafe --max-diagnostics 1000",
|
||||
"format": "biome format --write .",
|
||||
"doctor": "expo-doctor",
|
||||
"test": "bun run typecheck && bun run lint && bun run format && bun run doctor",
|
||||
"i18n:check": "bun scripts/check-i18n-keys.mjs",
|
||||
"i18n:fix-unused": "bun scripts/check-i18n-keys.mjs --fix-unused",
|
||||
"test": "bun run typecheck && bun run lint && bun run format && bun run i18n:check && bun run doctor",
|
||||
"postinstall": "patch-package"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
@@ -4,9 +4,16 @@ const { withEntitlementsPlist } = require("expo/config-plugins");
|
||||
* Expo config plugin to add User Management entitlement for tvOS profile linking
|
||||
*/
|
||||
const withTVUserManagement = (config) => {
|
||||
// Only add for tvOS builds. The entitlement is restricted by Apple and must
|
||||
// be present in the provisioning profile, so injecting it into mobile builds
|
||||
// breaks signing ("Entitlement ... not found and could not be included in
|
||||
// profile"). The entitlement is only needed for tvOS
|
||||
// TVUserManager.currentUserIdentifier.
|
||||
if (process.env.EXPO_TV !== "1") {
|
||||
return config;
|
||||
}
|
||||
|
||||
return withEntitlementsPlist(config, (config) => {
|
||||
// Only add for tvOS builds (check if building for TV)
|
||||
// The entitlement is needed for TVUserManager.currentUserIdentifier to work
|
||||
config.modResults["com.apple.developer.user-management"] = [
|
||||
"runs-as-current-user",
|
||||
];
|
||||
|
||||
@@ -69,6 +69,13 @@ const initialApi = (() => {
|
||||
|
||||
const initialUser = (() => {
|
||||
try {
|
||||
// Only return a stored user if we also have a token. Otherwise the
|
||||
// user atom would be populated while the api atom is null (e.g. after
|
||||
// a logout that left stale user JSON in storage), which causes
|
||||
// useProtectedRoute to keep us inside the (auth) group instead of
|
||||
// redirecting to /login.
|
||||
const token = storage.getString("token");
|
||||
if (!token) return null;
|
||||
const userStr = storage.getString("user");
|
||||
if (userStr) {
|
||||
return JSON.parse(userStr) as UserDto;
|
||||
@@ -402,6 +409,7 @@ export const JellyfinProvider: React.FC<{ children: ReactNode }> = ({
|
||||
);
|
||||
|
||||
storage.remove("token");
|
||||
storage.remove("user");
|
||||
clearTVDiscoverySafely();
|
||||
setUser(null);
|
||||
setApi(null);
|
||||
|
||||
268
scripts/check-i18n-keys.mjs
Normal file
268
scripts/check-i18n-keys.mjs
Normal file
@@ -0,0 +1,268 @@
|
||||
#!/usr/bin/env bun
|
||||
/**
|
||||
* i18n key checker for Streamyfin.
|
||||
*
|
||||
* Detects:
|
||||
* - MISSING keys: a static `t("a.b.c")` / `i18nKey="a.b.c"` referenced in the code
|
||||
* that does not exist in the source locale (translations/en.json). These are bugs —
|
||||
* the app renders the raw key. Always fails CI.
|
||||
* - UNUSED (dead) keys: a key in the source locale that is referenced nowhere in the
|
||||
* code, neither statically nor via a detected dynamic prefix (`t(`a.b.${x}`)`).
|
||||
* These are dead weight that also clutter every locale on Crowdin.
|
||||
*
|
||||
* Dynamic usage is handled conservatively:
|
||||
* - `t(`prefix.${x}`)` -> every key starting with `prefix.` is considered used.
|
||||
* - `t(`${x}`)` -> fully dynamic, reported for manual review, never used to
|
||||
* whitelist keys (in Streamyfin these are user-defined section
|
||||
* titles, not translation keys).
|
||||
* - Edge cases the static scan cannot see can be allow-listed in the config file.
|
||||
*
|
||||
* Usage:
|
||||
* bun scripts/check-i18n-keys.mjs # report + exit 1 on missing OR unused
|
||||
* bun scripts/check-i18n-keys.mjs --unused=warn # exit 1 only on missing; unused = warning
|
||||
* bun scripts/check-i18n-keys.mjs --unused=off # ignore unused entirely
|
||||
* bun scripts/check-i18n-keys.mjs --json # machine-readable output
|
||||
* bun scripts/check-i18n-keys.mjs --fix-unused # remove dead keys from en.json (Crowdin syncs the rest)
|
||||
*/
|
||||
|
||||
import {
|
||||
existsSync,
|
||||
readdirSync,
|
||||
readFileSync,
|
||||
statSync,
|
||||
writeFileSync,
|
||||
} from "node:fs";
|
||||
import { extname, join, relative } from "node:path";
|
||||
|
||||
const ROOT = process.cwd();
|
||||
const args = process.argv.slice(2);
|
||||
const flag = (name, def) => {
|
||||
const a = args.find((x) => x === `--${name}` || x.startsWith(`--${name}=`));
|
||||
if (!a) return def;
|
||||
const [, v] = a.split("=");
|
||||
return v === undefined ? true : v;
|
||||
};
|
||||
const UNUSED_MODE = String(flag("unused", "error")); // error | warn | off
|
||||
const JSON_OUT = !!flag("json", false);
|
||||
const FIX_UNUSED = !!flag("fix-unused", false);
|
||||
|
||||
// ---- config ----
|
||||
const CONFIG_PATH = join(ROOT, "scripts", "i18n-keys.config.json");
|
||||
const DEFAULT_CONFIG = {
|
||||
localesDir: "translations",
|
||||
sourceLocale: "en",
|
||||
// Scan the whole repo by default so keys referenced outside the obvious dirs
|
||||
// (e.g. packages/, key constants in utils/atoms) are not wrongly flagged as dead.
|
||||
srcDirs: ["."],
|
||||
srcExtensions: [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"],
|
||||
excludeDirs: [
|
||||
"node_modules",
|
||||
"ios",
|
||||
"android",
|
||||
".expo",
|
||||
".git",
|
||||
"dist",
|
||||
"build",
|
||||
"translations",
|
||||
"scripts",
|
||||
],
|
||||
// Keys (or glob-ish prefixes ending with .* or *) known to be used dynamically / externally.
|
||||
ignoreUnused: [],
|
||||
};
|
||||
const config = existsSync(CONFIG_PATH)
|
||||
? { ...DEFAULT_CONFIG, ...JSON.parse(readFileSync(CONFIG_PATH, "utf8")) }
|
||||
: DEFAULT_CONFIG;
|
||||
|
||||
// ---- helpers ----
|
||||
const flatten = (obj, prefix = "", out = {}) => {
|
||||
for (const [k, v] of Object.entries(obj)) {
|
||||
const key = prefix ? `${prefix}.${k}` : k;
|
||||
if (v && typeof v === "object" && !Array.isArray(v)) flatten(v, key, out);
|
||||
else out[key] = v;
|
||||
}
|
||||
return out;
|
||||
};
|
||||
|
||||
const globMatch = (key, pattern) => {
|
||||
if (pattern.endsWith(".*"))
|
||||
return key === pattern.slice(0, -2) || key.startsWith(pattern.slice(0, -1));
|
||||
if (pattern.endsWith("*")) return key.startsWith(pattern.slice(0, -1));
|
||||
return key === pattern;
|
||||
};
|
||||
|
||||
const walk = (dir, files = []) => {
|
||||
let entries;
|
||||
try {
|
||||
entries = readdirSync(dir);
|
||||
} catch {
|
||||
return files;
|
||||
}
|
||||
for (const name of entries) {
|
||||
const full = join(dir, name);
|
||||
let st;
|
||||
try {
|
||||
st = statSync(full);
|
||||
} catch {
|
||||
continue;
|
||||
}
|
||||
if (st.isDirectory()) {
|
||||
if (config.excludeDirs.includes(name)) continue;
|
||||
walk(full, files);
|
||||
} else if (config.srcExtensions.includes(extname(name))) {
|
||||
files.push(full);
|
||||
}
|
||||
}
|
||||
return files;
|
||||
};
|
||||
|
||||
// ---- load source keys ----
|
||||
const sourcePath = join(ROOT, config.localesDir, `${config.sourceLocale}.json`);
|
||||
const sourceKeys = Object.keys(
|
||||
flatten(JSON.parse(readFileSync(sourcePath, "utf8"))),
|
||||
);
|
||||
const sourceKeySet = new Set(sourceKeys);
|
||||
|
||||
// ---- scan code ----
|
||||
const STATIC_RE = /\bt\(\s*(['"])((?:\\.|(?!\1).)+?)\1/g; // t("a.b") / t('a.b')
|
||||
const TPL_STATIC_RE = /\bt\(\s*`([^`$]+)`/g; // t(`a.b`) no interpolation
|
||||
const TPL_DYN_RE = /\bt\(\s*`([^`$]*)\$\{/g; // t(`a.b.${x}`) -> prefix "a.b."
|
||||
const I18NKEY_RE = /\bi18nKey\s*=\s*(?:\{\s*)?(['"])((?:\\.|(?!\1).)+?)\1/g; // <Trans i18nKey="a.b">
|
||||
const KEY_SHAPE = /^[A-Za-z0-9_]+(\.[A-Za-z0-9_]+)+$/; // dotted key, e.g. home.x.y
|
||||
|
||||
const usedStatic = new Set(); // keys passed to t(...) / i18nKey — used for MISSING detection
|
||||
const dynamicPrefixes = new Set();
|
||||
const fullyDynamic = []; // { file, line }
|
||||
let codeBlob = ""; // all (comment-stripped) source text — searched for delimited key literals
|
||||
|
||||
// Strip comments so keys mentioned in comments (e.g. `// t("old.key")`) are not counted as
|
||||
// usage. Block comments and JSX {/* */} are blanked (preserving newlines for line numbers);
|
||||
// line comments are only stripped when `//` follows start/whitespace/punctuation, which keeps
|
||||
// `://` inside string URLs intact.
|
||||
const stripComments = (src) =>
|
||||
src
|
||||
.replace(/\/\*[\s\S]*?\*\//g, (m) => m.replace(/[^\n]/g, " "))
|
||||
.replace(/(^|[\s;{}()[\],=>])\/\/[^\n]*/g, (_m, p) => p);
|
||||
|
||||
const files = config.srcDirs.flatMap((d) =>
|
||||
walk(join(ROOT, d === "." ? "" : d) || ROOT),
|
||||
);
|
||||
for (const file of files) {
|
||||
const text = readFileSync(file, "utf8");
|
||||
const clean = stripComments(text);
|
||||
codeBlob += `\n${clean}`;
|
||||
for (const m of clean.matchAll(STATIC_RE)) usedStatic.add(m[2]);
|
||||
for (const m of clean.matchAll(TPL_STATIC_RE)) usedStatic.add(m[1]);
|
||||
for (const m of clean.matchAll(I18NKEY_RE)) usedStatic.add(m[2]);
|
||||
for (const m of clean.matchAll(TPL_DYN_RE)) {
|
||||
const prefix = m[1];
|
||||
if (prefix?.includes(".")) dynamicPrefixes.add(prefix);
|
||||
else {
|
||||
const idx = clean.slice(0, m.index).split("\n").length;
|
||||
fullyDynamic.push({ file: relative(ROOT, file), line: idx });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const prefixList = [...dynamicPrefixes];
|
||||
// A key counts as used if its EXACT delimited literal ("k" / 'k' / `k`) appears anywhere in
|
||||
// the code (covers t("k"), <Trans i18nKey>, and keys stored as bare string constants in
|
||||
// arrays/config then resolved via t(variable)), or it is reached via a dynamic prefix, or
|
||||
// explicitly allow-listed. Delimited search avoids substring false-matches (e.g. a.b vs a.b_c).
|
||||
const literalUsed = (key) =>
|
||||
codeBlob.includes(`"${key}"`) ||
|
||||
codeBlob.includes(`'${key}'`) ||
|
||||
codeBlob.includes(`\`${key}\``);
|
||||
const isUsed = (key) =>
|
||||
literalUsed(key) ||
|
||||
prefixList.some((p) => key.startsWith(p)) ||
|
||||
config.ignoreUnused.some((g) => globMatch(key, g));
|
||||
|
||||
// ---- compute ----
|
||||
const unused = sourceKeys.filter((k) => !isUsed(k)).sort();
|
||||
// Static references are always validated, even under a dynamic prefix: a dynamic prefix only
|
||||
// affects the UNUSED calculation, never MISSING.
|
||||
const missing = [...usedStatic]
|
||||
.filter((k) => KEY_SHAPE.test(k) && !sourceKeySet.has(k))
|
||||
.sort();
|
||||
|
||||
// ---- optional fix: strip dead keys from the source locale (en.json) ----
|
||||
const removeKey = (obj, parts) => {
|
||||
const [head, ...rest] = parts;
|
||||
if (!(head in obj)) return;
|
||||
if (rest.length === 0) {
|
||||
delete obj[head];
|
||||
return;
|
||||
}
|
||||
removeKey(obj[head], rest);
|
||||
if (
|
||||
obj[head] &&
|
||||
typeof obj[head] === "object" &&
|
||||
Object.keys(obj[head]).length === 0
|
||||
)
|
||||
delete obj[head];
|
||||
};
|
||||
if (FIX_UNUSED && unused.length) {
|
||||
// Only edit the SOURCE locale (en.json). Crowdin owns the target locales and removes
|
||||
// the keys from them automatically on the next sync once they disappear from the source.
|
||||
const data = JSON.parse(readFileSync(sourcePath, "utf8"));
|
||||
for (const key of unused) removeKey(data, key.split("."));
|
||||
writeFileSync(sourcePath, `${JSON.stringify(data, null, 2)}\n`);
|
||||
console.log(
|
||||
`🧹 Removed ${unused.length} dead key(s) from ${config.sourceLocale}.json (Crowdin will sync the other locales).`,
|
||||
);
|
||||
}
|
||||
|
||||
// ---- report ----
|
||||
if (JSON_OUT) {
|
||||
console.log(
|
||||
JSON.stringify(
|
||||
{
|
||||
sourceKeys: sourceKeys.length,
|
||||
missing,
|
||||
unused,
|
||||
dynamicPrefixes: prefixList,
|
||||
fullyDynamic,
|
||||
},
|
||||
null,
|
||||
2,
|
||||
),
|
||||
);
|
||||
} else {
|
||||
console.log(
|
||||
`🔑 i18n key check — source: ${relative(ROOT, sourcePath)} (${sourceKeys.length} keys), scanned ${files.length} files`,
|
||||
);
|
||||
if (prefixList.length)
|
||||
console.log(
|
||||
` dynamic prefixes treated as used: ${prefixList.map((p) => `${p}*`).join(", ")}`,
|
||||
);
|
||||
if (fullyDynamic.length)
|
||||
console.log(
|
||||
` ⚠️ ${fullyDynamic.length} fully-dynamic t(\`\${…}\`) call(s) (not key-based, manual review): ${fullyDynamic.map((d) => `${d.file}:${d.line}`).join(", ")}`,
|
||||
);
|
||||
|
||||
if (missing.length) {
|
||||
console.log(
|
||||
`\n❌ MISSING keys (used in code, absent from ${config.sourceLocale}.json) — ${missing.length}:`,
|
||||
);
|
||||
for (const k of missing) console.log(` - ${k}`);
|
||||
} else console.log("\n✅ No missing keys.");
|
||||
|
||||
if (UNUSED_MODE !== "off") {
|
||||
if (unused.length) {
|
||||
console.log(
|
||||
`\n${UNUSED_MODE === "error" ? "❌" : "⚠️ "} UNUSED keys (in ${config.sourceLocale}.json, referenced nowhere) — ${unused.length}:`,
|
||||
);
|
||||
for (const k of unused) console.log(` - ${k}`);
|
||||
console.log(
|
||||
`\n → remove with: bun scripts/check-i18n-keys.mjs --fix-unused`,
|
||||
);
|
||||
console.log(
|
||||
` → or allow-list a dynamic key in scripts/i18n-keys.config.json ("ignoreUnused").`,
|
||||
);
|
||||
} else console.log("\n✅ No unused keys.");
|
||||
}
|
||||
}
|
||||
|
||||
const fail =
|
||||
missing.length > 0 || (UNUSED_MODE === "error" && unused.length > 0);
|
||||
process.exit(fail ? 1 : 0);
|
||||
43
scripts/i18n-keys.config.json
Normal file
43
scripts/i18n-keys.config.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"localesDir": "translations",
|
||||
"sourceLocale": "en",
|
||||
"srcDirs": [
|
||||
"app",
|
||||
"components",
|
||||
"hooks",
|
||||
"providers",
|
||||
"utils",
|
||||
"modules",
|
||||
"packages",
|
||||
"constants"
|
||||
],
|
||||
"srcExtensions": [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs"],
|
||||
"excludeDirs": [
|
||||
"node_modules",
|
||||
"ios",
|
||||
"android",
|
||||
".expo",
|
||||
".git",
|
||||
"dist",
|
||||
"build",
|
||||
"translations"
|
||||
],
|
||||
"_ignoreUnusedNote": "Keys for planned features that are intentionally kept in en.json but not yet wired in code. They are exempt from the unused-key check until implemented. Remove an entry once its feature ships and uses the key.",
|
||||
"ignoreUnused": [
|
||||
"watchlists.add_to_watchlist",
|
||||
"watchlists.remove_from_watchlist",
|
||||
"watchlists.create_one_first",
|
||||
"watchlists.no_compatible_watchlists",
|
||||
"pin.confirm_pin",
|
||||
"pin.pins_dont_match",
|
||||
"player.search_subtitles",
|
||||
"player.subtitle_search",
|
||||
"player.subtitle_download_hint",
|
||||
"player.subtitle_tracks",
|
||||
"player.using_jellyfin_server",
|
||||
"player.swipe_down_settings",
|
||||
"player.stopPlayback",
|
||||
"player.stopPlayingTitle",
|
||||
"player.stopPlayingConfirm"
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,9 @@
|
||||
"error_title": "Error",
|
||||
"login_title": "Inicia sessió",
|
||||
"login_to_title": "Inicia sessió a",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Nom d'usuari",
|
||||
"password_placeholder": "Contrasenya",
|
||||
"login_button": "Inicia sessió",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Oops!",
|
||||
"error_message": "Alguna cosa ha anat malament.\nTanqueu la sessió i torneu-la a iniciar.",
|
||||
"continue_watching": "Continua veient",
|
||||
"continue": "Continue",
|
||||
"next_up": "A continuació",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "Afegit recentment a {{libraryName}}",
|
||||
"suggested_movies": "Pel·lícules suggerides",
|
||||
"suggested_episodes": "Episodis suggerits",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Benvingut a Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Un client gratuït i de codi obert per a Jellyfin.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Configuració",
|
||||
"log_out_button": "Tanca sessió",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categories"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Appearance",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"hide_remote_session_button": "Hide Remote Session Button",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Durada del rebobinat",
|
||||
"seconds_unit": "s"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Gesture Controls",
|
||||
"horizontal_swipe_skip": "Horizontal Swipe to Skip",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Cap",
|
||||
"OnlyForced": "Només els forçats"
|
||||
},
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"bold_text": "Bold Text",
|
||||
"colors": {
|
||||
"Black": "Black",
|
||||
"Gray": "Gray",
|
||||
"Silver": "Silver",
|
||||
"White": "White",
|
||||
"Maroon": "Maroon",
|
||||
"Red": "Red",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Yellow",
|
||||
"Olive": "Olive",
|
||||
"Green": "Green",
|
||||
"Teal": "Teal",
|
||||
"Lime": "Lime",
|
||||
"Purple": "Purple",
|
||||
"Navy": "Navy",
|
||||
"Blue": "Blue",
|
||||
"Aqua": "Aqua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Cap",
|
||||
"Thin": "Thin",
|
||||
"Normal": "Normal",
|
||||
"Thick": "Thick"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Altres",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Desconeguda"
|
||||
},
|
||||
"safe_area_in_controls": "Àrea segura als controls",
|
||||
"video_player": "Reproductor de vídeo",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Experimental + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Mostrar enllaços del menú personalitzats",
|
||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||
"hide_libraries": "Oculta biblioteques",
|
||||
"select_liraries_you_want_to_hide": "Seleccioneu les biblioteques que voleu ocultar de la pestanya Biblioteca i de les seccions de la pàgina d'inici.",
|
||||
"disable_haptic_feedback": "Desactiva la resposta hàptica",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Nombre màxim d'episodis de reproducció automàtica",
|
||||
"disabled": "Desactivat"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Descàrregues"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Mostra més sobre Marlin.",
|
||||
"save_button": "Desa",
|
||||
"toasts": {
|
||||
"saved": "Desat",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "Desat"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Suprimeix tots els fitxers descarregats",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Exporta registres",
|
||||
"click_for_more_info": "Feu clic per obtenir més informació",
|
||||
"level": "Nivell",
|
||||
"no_logs_available": "No hi ha registres disponibles",
|
||||
"delete_all_logs": "Suprimeix tots els registres"
|
||||
"no_logs_available": "No hi ha registres disponibles"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Idiomes",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "Sistema"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Error en suprimir fitxers",
|
||||
"background_downloads_enabled": "Descàrregues en segon pla activades",
|
||||
"background_downloads_disabled": "Descàrregues en segon pla desactivades"
|
||||
"error_deleting_files": "Error en suprimir fitxers"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Descàrregues",
|
||||
"tvseries": "Sèries",
|
||||
"movies": "Pel·lícules",
|
||||
"queue": "Cua",
|
||||
"other_media": "Other media",
|
||||
"queue_hint": "La cua i les descàrregues es perdran en reiniciar l'aplicació",
|
||||
"no_items_in_queue": "No hi ha elements a la cua",
|
||||
"no_downloaded_items": "No hi ha elements descarregats",
|
||||
"delete_all_movies_button": "Suprimeix totes les pel·lícules",
|
||||
"delete_all_tvseries_button": "Suprimeix totes les sèries",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "L'actualització nova requereix que el contingut es torni a descarregar. Suprimiu tot el contingut descarregat i torneu-ho a provar.",
|
||||
"back": "Enrere",
|
||||
"delete": "Suprimeix",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Alguna cosa ha anat malament",
|
||||
"could_not_get_stream_url_from_jellyfin": "No s'ha pogut obtenir l'URL del flux de Jellyfin",
|
||||
"eta": "ETA {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "No s'han pogut suprimir totes les sèries",
|
||||
"deleted_media_successfully": "Deleted other media Successfully!",
|
||||
"failed_to_delete_media": "Failed to Delete other media",
|
||||
"download_deleted": "Download Deleted",
|
||||
"download_cancelled": "Descàrrega cancel·lada",
|
||||
"could_not_delete_download": "Could Not Delete Download",
|
||||
"download_paused": "Download Paused",
|
||||
"could_not_pause_download": "Could Not Pause Download",
|
||||
"download_resumed": "Download Resumed",
|
||||
"could_not_resume_download": "Could Not Resume Download",
|
||||
"download_completed": "Descàrrega completada",
|
||||
"download_failed": "Download Failed",
|
||||
"download_failed_for_item": "Ha fallat la descàrrega per a {{item}} - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} is already downloading",
|
||||
"all_files_deleted": "All Downloads Deleted Successfully",
|
||||
"files_deleted_by_type": "{{count}} {{type}} deleted",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Tots els fitxers, carpetes i treballs s'han suprimit correctament",
|
||||
"failed_to_clean_cache_directory": "Failed to clean cache directory",
|
||||
"could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}",
|
||||
"go_to_downloads": "Ves a les descàrregues",
|
||||
"file_deleted": "{{item}} deleted"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Select",
|
||||
"no_trailer_available": "No trailer available",
|
||||
"video": "Vídeo",
|
||||
"audio": "Àudio",
|
||||
"subtitle": "Subtítols",
|
||||
"play": "Play",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "None",
|
||||
"track": "Track",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Cerca...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "pel·lícules",
|
||||
"series": "sèries",
|
||||
"boxsets": "col·leccions",
|
||||
"playlists": "Playlists",
|
||||
"items": "elements"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Cartell",
|
||||
"cover": "Coberta",
|
||||
"show_titles": "Mostrar títols",
|
||||
"show_stats": "Mostrar estadístiques"
|
||||
"show_stats": "Mostrar estadístiques",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Gèneres",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Ordenar per",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "Ordre",
|
||||
"tags": "Etiquetes"
|
||||
"tags": "Etiquetes",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "No hi ha enllaços"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Error",
|
||||
"failed_to_get_stream_url": "No s'ha pogut obtenir l'URL del flux",
|
||||
"an_error_occured_while_playing_the_video": "S'ha produït un error en reproduir el vídeo. Consulteu els registres a la configuració.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "No s'ha pogut crear un flux per a Chromecast",
|
||||
"message_from_server": "Missatge del servidor: {{message}}",
|
||||
"next_episode": "Episodi següent",
|
||||
"refresh_tracks": "Actualitzar pistes",
|
||||
"audio_tracks": "Pistes d'àudio:",
|
||||
"playback_state": "Estat de reproducció:",
|
||||
"index": "Índex:",
|
||||
"continue_watching": "Continuar veient",
|
||||
"go_back": "Enrere",
|
||||
"downloaded_file_title": "You have this file downloaded",
|
||||
"downloaded_file_message": "Do you want to play the downloaded file?",
|
||||
"downloaded_file_yes": "Yes",
|
||||
"downloaded_file_no": "No",
|
||||
"downloaded_file_cancel": "Cancel"
|
||||
"downloaded_file_cancel": "Cancel",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "A continuació",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Sèries",
|
||||
"seasons": "Temporades",
|
||||
"season": "Temporada",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "No hi ha episodis per a aquesta temporada",
|
||||
"overview": "Descripció general",
|
||||
"more_with": "Més amb {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Media Options",
|
||||
"quality": "Qualitat",
|
||||
"audio": "Àudio",
|
||||
"subtitles": "Subtítols",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Mostra més",
|
||||
"show_less": "Mostra menys",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Va aparèixer a",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "No s'ha pogut carregar l'element",
|
||||
"none": "Cap",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Descarrega {{item_count}} elements",
|
||||
"download_unwatched_only": "Unwatched Only",
|
||||
"download_button": "Descarrega"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Següent",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Pel·lícules",
|
||||
"sports": "Esports",
|
||||
"for_kids": "Infantil",
|
||||
"news": "Notícies"
|
||||
"news": "Notícies",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Confirma",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Decline",
|
||||
"requested_by": "Requested by {{user}}",
|
||||
"unknown_user": "Unknown User",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "El servidor Jellyseerr no compleix els requisits mínims de versió! Actualitzeu-lo almenys a la versió 2.0.0",
|
||||
"jellyseerr_test_failed": "Ha fallat la prova de Jellyseerr. Torneu-ho a provar.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Cercar",
|
||||
"library": "Biblioteca",
|
||||
"custom_links": "Enllaços personalitzats",
|
||||
"favorites": "Preferits"
|
||||
"favorites": "Preferits",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Chyba",
|
||||
"login_title": "Přihlásit se",
|
||||
"login_to_title": "Přihlásit se do",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Uživatelské jméno",
|
||||
"password_placeholder": "Heslo",
|
||||
"login_button": "Přihlásit se",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Jejda!",
|
||||
"error_message": "Něco se pokazilo.\nOdhlaste se a znovu se prosím.",
|
||||
"continue_watching": "Pokračovat ve sledování",
|
||||
"continue": "Continue",
|
||||
"next_up": "Další nahoru",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "Nedávno přidané v {{libraryName}}",
|
||||
"suggested_movies": "Navrhované filmy",
|
||||
"suggested_episodes": "Navrhované epizody",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Vítejte v Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Volný a Open-Source klient pro Jellyfin.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Nastavení",
|
||||
"log_out_button": "Odhlásit se",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categories"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Appearance",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"hide_remote_session_button": "Hide Remote Session Button",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Délka zpětného větru",
|
||||
"seconds_unit": "s"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Ovládání gest",
|
||||
"horizontal_swipe_skip": "Horizontální přejetím přeskočit",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Nic",
|
||||
"OnlyForced": "Pouze vynucené"
|
||||
},
|
||||
"text_color": "Barva textu",
|
||||
"background_color": "Barva pozadí",
|
||||
"outline_color": "Barva obrysu",
|
||||
"outline_thickness": "Obrys tloušťky",
|
||||
"background_opacity": "Průhlednost pozadí",
|
||||
"outline_opacity": "Průhlednost obrysu",
|
||||
"bold_text": "Bold Text",
|
||||
"colors": {
|
||||
"Black": "Černý",
|
||||
"Gray": "Šedá",
|
||||
"Silver": "Stříbro",
|
||||
"White": "Bílý",
|
||||
"Maroon": "Maroon",
|
||||
"Red": "Červená",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Žlutá",
|
||||
"Olive": "Olivy",
|
||||
"Green": "Zelená",
|
||||
"Teal": "Modrozelený",
|
||||
"Lime": "Světle zelená",
|
||||
"Purple": "Fialová",
|
||||
"Navy": "Námořní loď",
|
||||
"Blue": "Modrá",
|
||||
"Aqua": "Aqua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Nic",
|
||||
"Thin": "Tenké",
|
||||
"Normal": "Normální",
|
||||
"Thick": "Tlustá"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Ostatní",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Neznámý"
|
||||
},
|
||||
"safe_area_in_controls": "Bezpečná oblast v ovládání",
|
||||
"video_player": "Video přehrávač",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (experimentální + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Zobrazit vlastní Menu odkazy",
|
||||
"show_large_home_carousel": "Zobrazit velký přehled (beta)",
|
||||
"hide_libraries": "Skrýt knihovny",
|
||||
"select_liraries_you_want_to_hide": "Vyberte knihovny, které chcete skrýt v záložce Knihovna a v sekcích domovské stránky.",
|
||||
"disable_haptic_feedback": "Zakázat Haptickou zpětnou vazbu",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Maximální počet automatických přehrávání epizod",
|
||||
"disabled": "Zakázáno"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Stahování"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Přečtěte si více o Marlinu.",
|
||||
"save_button": "Uložit",
|
||||
"toasts": {
|
||||
"saved": "Uloženo",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "Uloženo"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Odstranit všechny stažené soubory",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Exportovat protokoly",
|
||||
"click_for_more_info": "Klikněte pro více informací",
|
||||
"level": "Úrovně",
|
||||
"no_logs_available": "Žádné protokoly nejsou k dispozici",
|
||||
"delete_all_logs": "Odstranit všechny logy"
|
||||
"no_logs_available": "Žádné protokoly nejsou k dispozici"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Jazyky",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "Systém"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Chyba při mazání souborů",
|
||||
"background_downloads_enabled": "Stahování na pozadí povoleno",
|
||||
"background_downloads_disabled": "Stahování na pozadí zakázáno"
|
||||
"error_deleting_files": "Chyba při mazání souborů"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Stahování",
|
||||
"tvseries": "Televizní série",
|
||||
"movies": "Filmy",
|
||||
"queue": "Fronta",
|
||||
"other_media": "Ostatní média",
|
||||
"queue_hint": "Fronta a stahování budou ztraceny při restartu aplikace",
|
||||
"no_items_in_queue": "Žádné položky ve frontě",
|
||||
"no_downloaded_items": "Žádné stažené položky",
|
||||
"delete_all_movies_button": "Odstranit všechny filmy",
|
||||
"delete_all_tvseries_button": "Odstranit všechny TV-série",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "Nová aktualizace vyžaduje opětovné stažení obsahu. Odstraňte prosím veškerý stažený obsah a zkuste to znovu.",
|
||||
"back": "Zpět",
|
||||
"delete": "Vymazat",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Něco se pokazilo",
|
||||
"could_not_get_stream_url_from_jellyfin": "Nelze získat URL streamu z Jellyfin",
|
||||
"eta": "ETA {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Nepodařilo se odstranit všechny TV-série",
|
||||
"deleted_media_successfully": "Ostatní média úspěšně smazána!",
|
||||
"failed_to_delete_media": "Nepodařilo se odstranit ostatní média",
|
||||
"download_deleted": "Stahování smazáno",
|
||||
"download_cancelled": "Download Cancelled",
|
||||
"could_not_delete_download": "Stahování nelze odstranit",
|
||||
"download_paused": "Stahování pozastaveno",
|
||||
"could_not_pause_download": "Nelze pozastavit stahování",
|
||||
"download_resumed": "Stahování obnoveno",
|
||||
"could_not_resume_download": "Nelze pokračovat v stahování",
|
||||
"download_completed": "Stahování dokončeno",
|
||||
"download_failed": "Download Failed",
|
||||
"download_failed_for_item": "Stahování se nezdařilo pro {{item}} - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} is already downloading",
|
||||
"all_files_deleted": "All Downloads Deleted Successfully",
|
||||
"files_deleted_by_type": "{{count}} {{type}} deleted",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Všechny soubory, složky a úlohy byly úspěšně odstraněny",
|
||||
"failed_to_clean_cache_directory": "Nepodařilo se vyčistit adresář mezipaměti",
|
||||
"could_not_get_download_url_for_item": "Nelze získat URL pro stažení {{itemName}}",
|
||||
"go_to_downloads": "Přejít na stahování",
|
||||
"file_deleted": "{{item}} deleted"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Vybrat",
|
||||
"no_trailer_available": "Přípojné vozidlo není k dispozici",
|
||||
"video": "Video",
|
||||
"audio": "Zvuk",
|
||||
"subtitle": "Podtitulek",
|
||||
"play": "Hrát",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "None",
|
||||
"track": "Track",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Hledat...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "Filmy",
|
||||
"series": "Série",
|
||||
"boxsets": "Sada boxů",
|
||||
"playlists": "Playlists",
|
||||
"items": "Položky"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Plakát",
|
||||
"cover": "Kryt",
|
||||
"show_titles": "Zobrazit názvy",
|
||||
"show_stats": "Zobrazit statistiky"
|
||||
"show_stats": "Zobrazit statistiky",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Genres",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Seřadit podle",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "Řazení",
|
||||
"tags": "Štítky"
|
||||
"tags": "Štítky",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Žádné odkazy"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Chyba",
|
||||
"failed_to_get_stream_url": "Nepodařilo se získat URL streamu",
|
||||
"an_error_occured_while_playing_the_video": "Při přehrávání videa došlo k chybě. Zkontrolujte logy v nastavení.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Nelze vytvořit stream pro Chromecast",
|
||||
"message_from_server": "Zpráva od serveru: {{message}}",
|
||||
"next_episode": "Další epizoda",
|
||||
"refresh_tracks": "Obnovit skladby",
|
||||
"audio_tracks": "Zvukové stopy:",
|
||||
"playback_state": "Stav přehrávání:",
|
||||
"index": "Index:",
|
||||
"continue_watching": "Pokračovat ve sledování",
|
||||
"go_back": "Zpět",
|
||||
"downloaded_file_title": "You have this file downloaded",
|
||||
"downloaded_file_message": "Do you want to play the downloaded file?",
|
||||
"downloaded_file_yes": "Yes",
|
||||
"downloaded_file_no": "No",
|
||||
"downloaded_file_cancel": "Cancel"
|
||||
"downloaded_file_cancel": "Cancel",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Další nahoru",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Série",
|
||||
"seasons": "Série",
|
||||
"season": "Sezóna",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "Žádné epizody pro tuto sezónu",
|
||||
"overview": "Přehled",
|
||||
"more_with": "Více s {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Media Options",
|
||||
"quality": "Kvalita",
|
||||
"audio": "Zvuk",
|
||||
"subtitles": "Podtitulek",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Zobrazit více",
|
||||
"show_less": "Zobrazit méně",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Zobrazeno v",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Nelze načíst položku",
|
||||
"none": "Nic",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Stáhnout položky {{item_count}}",
|
||||
"download_unwatched_only": "Pouze nezhlédnuté",
|
||||
"download_button": "Stáhnout"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Další",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Filmy",
|
||||
"sports": "Sporty",
|
||||
"for_kids": "Pro děti",
|
||||
"news": "Novinky"
|
||||
"news": "Novinky",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Potvrdit",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Decline",
|
||||
"requested_by": "Requested by {{user}}",
|
||||
"unknown_user": "Unknown User",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Seerr server nesplňuje minimální požadavky na verzi! Aktualizujte prosím alespoň na 2.0.0",
|
||||
"jellyseerr_test_failed": "Seerr test se nezdařil. Zkuste to prosím znovu.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Hledat",
|
||||
"library": "Knihovna",
|
||||
"custom_links": "Vlastní odkazy",
|
||||
"favorites": "Oblíbené"
|
||||
"favorites": "Oblíbené",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Fejl",
|
||||
"login_title": "Log ind",
|
||||
"login_to_title": "Log ind på",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Brugernavn",
|
||||
"password_placeholder": "Adgangskode",
|
||||
"login_button": "Log ind",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Ups!",
|
||||
"error_message": "Noget gik galt.\nLog venligst ud og ind igen.",
|
||||
"continue_watching": "Fortsæt med at se",
|
||||
"continue": "Continue",
|
||||
"next_up": "Næste",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "Senest tilføjet i {{libraryName}}",
|
||||
"suggested_movies": "Foreslåede film",
|
||||
"suggested_episodes": "Foreslåede episoder",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Velkommen til Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "En gratis og open-source klient til Jellyfin.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Indstillinger",
|
||||
"log_out_button": "Log ud",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categories"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Appearance",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"hide_remote_session_button": "Hide Remote Session Button",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Spol tilbage længde",
|
||||
"seconds_unit": "s"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Bevægelsesstyring",
|
||||
"horizontal_swipe_skip": "Vandret Stryg for at springe over",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Ingen",
|
||||
"OnlyForced": "Kun tvungne undertekster"
|
||||
},
|
||||
"text_color": "Tekst Farve",
|
||||
"background_color": "Baggrunds Farve",
|
||||
"outline_color": "Omrids Farve",
|
||||
"outline_thickness": "Omrids Tykkelse",
|
||||
"background_opacity": "Baggrunds Gennemsigtighed",
|
||||
"outline_opacity": "Omrids Gennemsigtighed",
|
||||
"bold_text": "Bold Text",
|
||||
"colors": {
|
||||
"Black": "Sort",
|
||||
"Gray": "Grå",
|
||||
"Silver": "Sølv",
|
||||
"White": "Hvid",
|
||||
"Maroon": "Maroon",
|
||||
"Red": "Rød",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Gul",
|
||||
"Olive": "Oliven",
|
||||
"Green": "Grøn",
|
||||
"Teal": "Grønblåt",
|
||||
"Lime": "Limegrøn",
|
||||
"Purple": "Lilla",
|
||||
"Navy": "Flåden",
|
||||
"Blue": "Blå",
|
||||
"Aqua": "Aqua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Ingen",
|
||||
"Thin": "Tynd",
|
||||
"Normal": "Normal",
|
||||
"Thick": "Tyk"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Andet",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Ukendt"
|
||||
},
|
||||
"safe_area_in_controls": "Sikkert område i kontroller",
|
||||
"video_player": "Videospiller",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Eksperimentel + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Vis tilpassede menulinks",
|
||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||
"hide_libraries": "Skjul biblioteker",
|
||||
"select_liraries_you_want_to_hide": "Vælg de biblioteker, du ønsker at skjule fra fanen Bibliotek og startside sektionerne.",
|
||||
"disable_haptic_feedback": "Deaktiver haptisk feedback",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Maks. Auto Afspil Episode Antal",
|
||||
"disabled": "Deaktiveret"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Downloads"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Læs mere om Marlin.",
|
||||
"save_button": "Gem",
|
||||
"toasts": {
|
||||
"saved": "Gemt",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "Gemt"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Slet alle downloadede filer",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Eksporter logfiler",
|
||||
"click_for_more_info": "Klik for mere info",
|
||||
"level": "Niveau",
|
||||
"no_logs_available": "Ingen logfiler tilgængelige",
|
||||
"delete_all_logs": "Slet alle logfiler"
|
||||
"no_logs_available": "Ingen logfiler tilgængelige"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Sprog",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "System"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Fejl ved sletning af filer",
|
||||
"background_downloads_enabled": "Baggrundsdownloads aktiveret",
|
||||
"background_downloads_disabled": "Baggrundsdownloads deaktiveret"
|
||||
"error_deleting_files": "Fejl ved sletning af filer"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Downloads",
|
||||
"tvseries": "TV-serier",
|
||||
"movies": "Film",
|
||||
"queue": "Kø",
|
||||
"other_media": "Andre medier",
|
||||
"queue_hint": "Kø og downloads vil gå tabt ved genstart af appen",
|
||||
"no_items_in_queue": "Ingen elementer i køen",
|
||||
"no_downloaded_items": "Ingen downloadede elementer",
|
||||
"delete_all_movies_button": "Slet alle film",
|
||||
"delete_all_tvseries_button": "Slet alle TV-serier",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "Den nye opdatering kræver, at indhold downloades igen. Fjern venligst alt downloadet indhold og prøv igen.",
|
||||
"back": "Tilbage",
|
||||
"delete": "Slet",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Noget gik galt",
|
||||
"could_not_get_stream_url_from_jellyfin": "Kunne ikke hente stream URL'en fra Jellyfin",
|
||||
"eta": "ETA {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Kunne ikke slette alle TV-serier",
|
||||
"deleted_media_successfully": "Slettede andre medier med succes!",
|
||||
"failed_to_delete_media": "Kunne ikke slette andre medier",
|
||||
"download_deleted": "Download Slettet",
|
||||
"download_cancelled": "Download afbrudt",
|
||||
"could_not_delete_download": "Kunne Ikke Slette Download",
|
||||
"download_paused": "Download Pauset",
|
||||
"could_not_pause_download": "Kunne Ikke Pause Download",
|
||||
"download_resumed": "Download Genoprettet",
|
||||
"could_not_resume_download": "Kunne Ikke Genoptage Download",
|
||||
"download_completed": "Download fuldført",
|
||||
"download_failed": "Download Failed",
|
||||
"download_failed_for_item": "Download mislykkedes for {{item}} - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} is already downloading",
|
||||
"all_files_deleted": "All Downloads Deleted Successfully",
|
||||
"files_deleted_by_type": "{{count}} {{type}} deleted",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Alle filer, mapper og jobs blev slettet med succes",
|
||||
"failed_to_clean_cache_directory": "Kunne ikke rense cache-mappe",
|
||||
"could_not_get_download_url_for_item": "Kunne ikke hente download URL til {{itemName}}",
|
||||
"go_to_downloads": "Gå til downloads",
|
||||
"file_deleted": "{{item}} deleted"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Vælg",
|
||||
"no_trailer_available": "Intet påhængskøretøj tilgængeligt",
|
||||
"video": "Video",
|
||||
"audio": "Lyd",
|
||||
"subtitle": "Undertekster",
|
||||
"play": "Afspil",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "None",
|
||||
"track": "Track",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Søg...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "film",
|
||||
"series": "serier",
|
||||
"boxsets": "box sæt",
|
||||
"playlists": "Playlists",
|
||||
"items": "elementer"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Plakat",
|
||||
"cover": "Omslag",
|
||||
"show_titles": "Vis titler",
|
||||
"show_stats": "Vis statistik"
|
||||
"show_stats": "Vis statistik",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Genrer",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Sortér efter",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "Sorteringsrækkefølge",
|
||||
"tags": "Mærker"
|
||||
"tags": "Mærker",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Ingen links"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Fejl",
|
||||
"failed_to_get_stream_url": "Kunne ikke hente stream URL'en",
|
||||
"an_error_occured_while_playing_the_video": "Der opstod en fejl under afspilning af videoen. Tjek logfilerne i indstillinger.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Kunne ikke oprette en stream til Chromecast",
|
||||
"message_from_server": "Besked fra server: {{message}}",
|
||||
"next_episode": "Næste episode",
|
||||
"refresh_tracks": "Opdater spor",
|
||||
"audio_tracks": "Lydspor:",
|
||||
"playback_state": "Afspilningstilstand:",
|
||||
"index": "Indeks:",
|
||||
"continue_watching": "Fortsæt med at se",
|
||||
"go_back": "Gå Tilbage",
|
||||
"downloaded_file_title": "You have this file downloaded",
|
||||
"downloaded_file_message": "Do you want to play the downloaded file?",
|
||||
"downloaded_file_yes": "Yes",
|
||||
"downloaded_file_no": "No",
|
||||
"downloaded_file_cancel": "Cancel"
|
||||
"downloaded_file_cancel": "Cancel",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Næste",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Serier",
|
||||
"seasons": "Sæsoner",
|
||||
"season": "Sæson",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "Ingen episoder for denne sæson",
|
||||
"overview": "Oversigt",
|
||||
"more_with": "Mere med {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Media Options",
|
||||
"quality": "Kvalitet",
|
||||
"audio": "Lyd",
|
||||
"subtitles": "Undertekster",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Vis mere",
|
||||
"show_less": "Vis mindre",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Medvirket i",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Kunne ikke indlæse elementet",
|
||||
"none": "Ingen",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Download {{item_count}} elementer",
|
||||
"download_unwatched_only": "Kun Usete",
|
||||
"download_button": "Hent"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Næste",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Film",
|
||||
"sports": "Sport",
|
||||
"for_kids": "For børn",
|
||||
"news": "Nyheder"
|
||||
"news": "Nyheder",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Bekræft",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Decline",
|
||||
"requested_by": "Requested by {{user}}",
|
||||
"unknown_user": "Unknown User",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Jellyseerr serveren opfylder ikke minimumskravene! Opdater venligst til mindst 2.0.0",
|
||||
"jellyseerr_test_failed": "Jellyseerr test mislykkedes. Prøv venligst igen.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Søg",
|
||||
"library": "Bibliotek",
|
||||
"custom_links": "Tilpassede links",
|
||||
"favorites": "Favoritter"
|
||||
"favorites": "Favoritter",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Fehler",
|
||||
"login_title": "Anmelden",
|
||||
"login_to_title": "Anmelden bei",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Benutzername",
|
||||
"password_placeholder": "Passwort",
|
||||
"login_button": "Anmelden",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} Konten",
|
||||
"select_account": "Konto auswählen",
|
||||
"add_account": "Konto hinzufügen",
|
||||
"remove_account_description": "Hiermit werden die gespeicherten Zugangsdaten für {{username}} entfernt."
|
||||
"remove_account_description": "Hiermit werden die gespeicherten Zugangsdaten für {{username}} entfernt.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Konto speichern",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Ups!",
|
||||
"error_message": "Etwas ist schiefgelaufen.\nBitte melde dich ab und wieder an.",
|
||||
"continue_watching": "Weiterschauen",
|
||||
"continue": "Continue",
|
||||
"next_up": "Als nächstes",
|
||||
"continue_and_next_up": "\"Weiterschauen\" und \"Als Nächstes\"",
|
||||
"recently_added_in": "Kürzlich hinzugefügt in {{libraryName}}",
|
||||
"suggested_movies": "Empfohlene Filme",
|
||||
"suggested_episodes": "Empfohlene Episoden",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Willkommen bei Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Ein kostenloser und Open-Source-Client für Jellyfin.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Einstellungen",
|
||||
"log_out_button": "Abmelden",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Kategorien"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Aussehen",
|
||||
"merge_next_up_continue_watching": "\"Weiterschauen\" und \"Als Nächstes\" kombinieren",
|
||||
"hide_remote_session_button": "Button für Remote-Sitzung ausblenden"
|
||||
"hide_remote_session_button": "Button für Remote-Sitzung ausblenden",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Netzwerk",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Rückspullänge",
|
||||
"seconds_unit": "s"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Gestensteuerung",
|
||||
"horizontal_swipe_skip": "Horizontal Wischen zum Überspringen",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Keine",
|
||||
"OnlyForced": "Nur erzwungene"
|
||||
},
|
||||
"text_color": "Textfarbe",
|
||||
"background_color": "Hintergrundfarbe",
|
||||
"outline_color": "Konturfarbe",
|
||||
"outline_thickness": "Konturdicke",
|
||||
"background_opacity": "Hintergrundtransparenz",
|
||||
"outline_opacity": "Konturtransparenz",
|
||||
"bold_text": "Fettgedruckter Text",
|
||||
"colors": {
|
||||
"Black": "Schwarz",
|
||||
"Gray": "Grau",
|
||||
"Silver": "Silber",
|
||||
"White": "Weiß",
|
||||
"Maroon": "Rotbraun",
|
||||
"Red": "Rot",
|
||||
"Fuchsia": "Magenta",
|
||||
"Yellow": "Gelb",
|
||||
"Olive": "Olivgrün",
|
||||
"Green": "Grün",
|
||||
"Teal": "Türkis",
|
||||
"Lime": "Hellgrün",
|
||||
"Purple": "Lila",
|
||||
"Navy": "Marineblau",
|
||||
"Blue": "Blau",
|
||||
"Aqua": "Himmelblau"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Keine",
|
||||
"Thin": "Dünn",
|
||||
"Normal": "Normal",
|
||||
"Thick": "Dick"
|
||||
},
|
||||
"subtitle_color": "Untertitelfarbe",
|
||||
"subtitle_background_color": "Hintergrundfarbe",
|
||||
"subtitle_font": "Untertitel-Schriftart",
|
||||
"ksplayer_title": "KSPlayer Einstellungen",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Hardwarebeschleunigung für Video Decoding verwenden. Deaktivieren wenn Wiedergabeprobleme auftreten."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Untertitel-Einstellungen",
|
||||
"hint": "Anpassen des Untertitel-Erscheinungsbildes für VLC. Änderungen werden bei der nächsten Wiedergabe übernommen.",
|
||||
"text_color": "Schriftfarbe",
|
||||
"background_color": "Hintergrundfarbe",
|
||||
"background_opacity": "Hintergrundtransparenz",
|
||||
"outline_color": "Konturfarbe",
|
||||
"outline_opacity": "Konturtransparenz",
|
||||
"outline_thickness": "Konturdicke",
|
||||
"bold": "Fettgedruckter Text",
|
||||
"margin": "Unterer Abstand"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Videoplayer",
|
||||
"video_player": "Videoplayer",
|
||||
"video_player_description": "Videoplayer auf iOS auswählen.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Sonstiges",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Unbekannt"
|
||||
},
|
||||
"safe_area_in_controls": "Sicherer Bereich in den Steuerungen",
|
||||
"video_player": "Videoplayer",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Experimentell + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Benutzerdefinierte Menülinks anzeigen",
|
||||
"show_large_home_carousel": "Zeige große Startseiten-Übersicht (Beta)",
|
||||
"hide_libraries": "Bibliotheken ausblenden",
|
||||
"select_liraries_you_want_to_hide": "Bibliotheken auswählen die aus dem Bibliothekstab und der Startseite ausgeblendet werden sollen.",
|
||||
"disable_haptic_feedback": "Haptisches Feedback deaktivieren",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Maximale automatisch abzuspielende Episodenanzahl",
|
||||
"disabled": "Deaktiviert"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Downloads"
|
||||
},
|
||||
"music": {
|
||||
"title": "Musik",
|
||||
"playback_title": "Wiedergabe",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Erfahre mehr über Marlin.",
|
||||
"save_button": "Speichern",
|
||||
"toasts": {
|
||||
"saved": "Gespeichert",
|
||||
"refreshed": "Einstellungen vom Server aktualisiert"
|
||||
},
|
||||
"refresh_from_server": "Einstellungen vom Server aktualisieren"
|
||||
"saved": "Gespeichert"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Streamystats aktivieren",
|
||||
"disable_streamystats": "Streamystats deaktivieren",
|
||||
"enable_search": "Zum Suchen verwenden",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "URL für den Streamystats-Server eingeben.",
|
||||
"read_more_about_streamystats": "Mehr über Streamystats erfahren.",
|
||||
"save_button": "Speichern",
|
||||
"save": "Gespeichert",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Startseitenbereiche",
|
||||
"enable_movie_recommendations": "Filmempfehlungen",
|
||||
"enable_series_recommendations": "Serienempfehlungen",
|
||||
"enable_promoted_watchlists": "Empfohlene Merklisten",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Einstellungen vom Server aktualisieren"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Merklisten-Integration aktivieren",
|
||||
"watchlist_button": "Merklisten-Integration umschalten"
|
||||
"watchlist_enabler": "Merklisten-Integration aktivieren"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Alle heruntergeladenen Dateien löschen",
|
||||
"music_cache_title": "Musik-Cache",
|
||||
"music_cache_description": "Beim Anhören Titel automatisch in den Cache laden um bessere Wiedergabe und Offline-Wiedergabe zu ermöglichen",
|
||||
"enable_music_cache": "Musik-Cache aktivieren",
|
||||
"clear_music_cache": "Musik-Cache leeren",
|
||||
"music_cache_size": "{{size}} gechached",
|
||||
"music_cache_cleared": "Musik-Cache geleert",
|
||||
"delete_all_downloaded_songs": "Alle heruntergeladenen Titel löschen",
|
||||
"downloaded_songs_size": "{{size}} heruntergeladen",
|
||||
"downloaded_songs_deleted": "Heruntergeladene Titel gelöscht"
|
||||
"downloaded_songs_deleted": "Heruntergeladene Titel gelöscht",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Einführung",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Logs exportieren",
|
||||
"click_for_more_info": "Für mehr Informationen klicken",
|
||||
"level": "Level",
|
||||
"no_logs_available": "Keine Logs verfügbar",
|
||||
"delete_all_logs": "Alle Logs löschen"
|
||||
"no_logs_available": "Keine Logs verfügbar"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Sprachen",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "System"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Fehler beim Löschen von Dateien",
|
||||
"background_downloads_enabled": "Hintergrunddownloads aktiviert",
|
||||
"background_downloads_disabled": "Hintergrunddownloads deaktiviert"
|
||||
"error_deleting_files": "Fehler beim Löschen von Dateien"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Downloads",
|
||||
"tvseries": "Serien",
|
||||
"movies": "Filme",
|
||||
"queue": "Warteschlange",
|
||||
"other_media": "Andere Medien",
|
||||
"queue_hint": "Warteschlange und aktive Downloads gehen verloren wenn die App neu gestartet wird",
|
||||
"no_items_in_queue": "Keine Elemente in der Warteschlange",
|
||||
"no_downloaded_items": "Keine heruntergeladenen Elemente",
|
||||
"delete_all_movies_button": "Alle Filme löschen",
|
||||
"delete_all_tvseries_button": "Alle Serien löschen",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "Die neue App-Version erfordert das erneute Herunterladen von Filmen und Serien. Bitte lösche alle heruntergeladenen Elemente und starte den Download erneut.",
|
||||
"back": "Zurück",
|
||||
"delete": "Löschen",
|
||||
"delete_download": "Download löschen",
|
||||
"something_went_wrong": "Etwas ist schiefgelaufen",
|
||||
"could_not_get_stream_url_from_jellyfin": "Konnte keine Stream-URL von Jellyfin erhalten",
|
||||
"eta": "ETA {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Fehler beim Löschen aller Serien",
|
||||
"deleted_media_successfully": "Andere Medien erfolgreich gelöscht!",
|
||||
"failed_to_delete_media": "Fehler beim Löschen anderer Medien",
|
||||
"download_deleted": "Download gelöscht",
|
||||
"download_cancelled": "Download abgebrochen",
|
||||
"could_not_delete_download": "Download konnte nicht gelöscht werden",
|
||||
"download_paused": "Download pausiert",
|
||||
"could_not_pause_download": "Download konnte nicht angehalten werden",
|
||||
"download_resumed": "Download fortgesetzt",
|
||||
"could_not_resume_download": "Download konnte nicht fortgesetzt werden",
|
||||
"download_completed": "Download abgeschlossen",
|
||||
"download_failed": "Download fehlgeschlagen",
|
||||
"download_failed_for_item": "Download für {{item}} fehlgeschlagen - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} Lädt",
|
||||
"all_files_deleted": "Alle Downloads gelöscht",
|
||||
"files_deleted_by_type": "{{count}} {{type}} gelöscht",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Alle Dateien, Ordner und Jobs erfolgreich gelöscht",
|
||||
"failed_to_clean_cache_directory": "Fehler beim Bereinigen des Cache-Verzeichnisses",
|
||||
"could_not_get_download_url_for_item": "Download-URL für {{itemName}} konnte nicht geladen werden",
|
||||
"go_to_downloads": "Zu Downloads gehen",
|
||||
"file_deleted": "{{item}} gelöscht"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Auswählen",
|
||||
"no_trailer_available": "Kein Trailer verfügbar",
|
||||
"video": "Video",
|
||||
"audio": "Audio",
|
||||
"subtitle": "Untertitel",
|
||||
"play": "Abspielen",
|
||||
"mark_as_played": "Als gesehen markieren",
|
||||
"mark_as_not_played": "Als ungesehen markieren",
|
||||
"none": "Keine",
|
||||
"track": "Spur",
|
||||
"cancel": "Abbrechen",
|
||||
"delete": "Löschen",
|
||||
"ok": "OK",
|
||||
"remove": "Entfernen",
|
||||
"next": "Weiter",
|
||||
"back": "Zurück",
|
||||
"continue": "Fortsetzen",
|
||||
"verifying": "Verifiziere..."
|
||||
"verifying": "Verifiziere...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Suchen...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "Filme",
|
||||
"series": "Serien",
|
||||
"boxsets": "Boxsets",
|
||||
"playlists": "Playlists",
|
||||
"items": "Elemente"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Poster",
|
||||
"cover": "Cover",
|
||||
"show_titles": "Titel anzeigen",
|
||||
"show_stats": "Statistiken anzeigen"
|
||||
"show_stats": "Statistiken anzeigen",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Genres",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Sortieren nach",
|
||||
"filter_by": "Filtern nach",
|
||||
"sort_order": "Sortierreihenfolge",
|
||||
"tags": "Tags"
|
||||
"tags": "Tags",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Keine Links"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Fehler",
|
||||
"failed_to_get_stream_url": "Fehler beim Abrufen der Stream-URL",
|
||||
"an_error_occured_while_playing_the_video": "Ein Fehler ist beim Abspielen des Videos aufgetreten. Logs in den Einstellungen überprüfen.",
|
||||
@@ -598,10 +598,6 @@
|
||||
"could_not_create_stream_for_chromecast": "Konnte keinen Stream für Chromecast erstellen",
|
||||
"message_from_server": "Nachricht vom Server: {{message}}",
|
||||
"next_episode": "Nächste Episode",
|
||||
"refresh_tracks": "Spuren aktualisieren",
|
||||
"audio_tracks": "Audiospuren:",
|
||||
"playback_state": "Wiedergabestatus:",
|
||||
"index": "Index:",
|
||||
"continue_watching": "Fortsetzen",
|
||||
"go_back": "Zurück",
|
||||
"downloaded_file_title": "Diese Datei wurde bereits heruntergeladen",
|
||||
@@ -609,7 +605,34 @@
|
||||
"downloaded_file_yes": "Ja",
|
||||
"downloaded_file_no": "Nein",
|
||||
"downloaded_file_cancel": "Abbrechen",
|
||||
"ends_at": "Endet um {{time}}"
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Endet um {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Als Nächstes",
|
||||
@@ -618,6 +641,11 @@
|
||||
"series": "Serien",
|
||||
"seasons": "Staffeln",
|
||||
"season": "Staffel",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "Keine Episoden für diese Staffel",
|
||||
"overview": "Überblick",
|
||||
"more_with": "Mehr mit {{name}}",
|
||||
@@ -628,10 +656,20 @@
|
||||
"media_options": "Medienoptionen",
|
||||
"quality": "Qualität",
|
||||
"audio": "Audio",
|
||||
"subtitles": "Untertitel",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Mehr anzeigen",
|
||||
"show_less": "Weniger anzeigen",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Erschien in",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Konnte Element nicht laden",
|
||||
"none": "Keine",
|
||||
"download": {
|
||||
@@ -642,7 +680,13 @@
|
||||
"download_x_item": "{{item_count}} Elemente herunterladen",
|
||||
"download_unwatched_only": "Nur Ungesehene",
|
||||
"download_button": "Herunterladen"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Nächste",
|
||||
@@ -653,7 +697,18 @@
|
||||
"movies": "Filme",
|
||||
"sports": "Sport",
|
||||
"for_kids": "Für Kinder",
|
||||
"news": "Nachrichten"
|
||||
"news": "Nachrichten",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Bestätigen",
|
||||
@@ -698,6 +753,12 @@
|
||||
"decline": "Ablehnen",
|
||||
"requested_by": "Angefragt von {{user}}",
|
||||
"unknown_user": "Unbekannter Nutzer",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Seerr-Server erfüllt nicht die minimalen Versionsanforderungen. Bitte den Seerr-Server auf mindestens 2.0.0 aktualisieren.",
|
||||
"jellyseerr_test_failed": "Seerr-Test fehlgeschlagen. Bitte erneut versuchen.",
|
||||
@@ -717,7 +778,8 @@
|
||||
"search": "Suche",
|
||||
"library": "Bibliothek",
|
||||
"custom_links": "Links",
|
||||
"favorites": "Favoriten"
|
||||
"favorites": "Favoriten",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Musik",
|
||||
@@ -728,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "Titel"
|
||||
},
|
||||
"filters": {
|
||||
"all": "Alle"
|
||||
},
|
||||
"recently_added": "Kürzlich hinzugefügt",
|
||||
"recently_played": "Vor kurzem gehört",
|
||||
"frequently_played": "Oft gehört",
|
||||
"explore": "Entdecken",
|
||||
"top_tracks": "Top-Titel",
|
||||
"play": "Abspielen",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -842,5 +900,35 @@
|
||||
"show": "Nur diese Serie",
|
||||
"all": "Alle (Standard)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Σφάλμα",
|
||||
"login_title": "Σύνδεση",
|
||||
"login_to_title": "Συνδεθείτε στο",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Όνομα Χρήστη",
|
||||
"password_placeholder": "Κωδικός",
|
||||
"login_button": "Σύνδεση",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Ωχ!",
|
||||
"error_message": "Something went wrong.\nPlease log out and in again.",
|
||||
"continue_watching": "Συνέχεια Παρακολούθησης",
|
||||
"continue": "Continue",
|
||||
"next_up": "Επόμενο Επάνω",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "Προστέθηκε πρόσφατα στο {{libraryName}}",
|
||||
"suggested_movies": "Προτεινόμενες Ταινίες",
|
||||
"suggested_episodes": "Προτεινόμενα Επεισόδια",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Καλώς ήρθατε στο Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Ένας ελεύθερος και ανοιχτού κώδικα πελάτης για τη ζελυφίνη.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Ρυθμίσεις",
|
||||
"log_out_button": "Αποσύνδεση",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categories"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Appearance",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"hide_remote_session_button": "Hide Remote Session Button",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Επαναφορά Μήκους",
|
||||
"seconds_unit": "ίνα"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Έλεγχοι Χειρονομιών",
|
||||
"horizontal_swipe_skip": "Οριζόντια σάρωση για παράλειψη",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Κανένα",
|
||||
"OnlyForced": "Μόνο"
|
||||
},
|
||||
"text_color": "Χρώμα Κειμένου",
|
||||
"background_color": "Χρώμα Φόντου",
|
||||
"outline_color": "Χρώμα Περιγράμματος",
|
||||
"outline_thickness": "Πάχος Περιγράμματος",
|
||||
"background_opacity": "Αδιαφάνεια Φόντου",
|
||||
"outline_opacity": "Αδιαφάνεια Περιγράμματος",
|
||||
"bold_text": "Bold Text",
|
||||
"colors": {
|
||||
"Black": "Μαύρο",
|
||||
"Gray": "Γκρι",
|
||||
"Silver": "Ασημένιο",
|
||||
"White": "Λευκό",
|
||||
"Maroon": "Μαρώ",
|
||||
"Red": "Κόκκινο",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Κίτρινο",
|
||||
"Olive": "Ελιές",
|
||||
"Green": "Πράσινο",
|
||||
"Teal": "Τιρκουάζ",
|
||||
"Lime": "Άσβεστος",
|
||||
"Purple": "Μωβ",
|
||||
"Navy": "Ναυτικό",
|
||||
"Blue": "Μπλε",
|
||||
"Aqua": "Νερό"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Κανένα",
|
||||
"Thin": "Λεπτό",
|
||||
"Normal": "Κανονικό",
|
||||
"Thick": "Παχύ"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Άλλο",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Άγνωστο"
|
||||
},
|
||||
"safe_area_in_controls": "Ασφαλής περιοχή σε χειριστήρια",
|
||||
"video_player": "Αναπαραγωγέας Βίντεο",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Πειραματική + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Εμφάνιση Προσαρμοσμένων Συνδέσμων Μενού",
|
||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||
"hide_libraries": "Απόκρυψη Βιβλιοθηκών",
|
||||
"select_liraries_you_want_to_hide": "Επιλέξτε τις βιβλιοθήκες που θέλετε να αποκρύψετε από την καρτέλα της Βιβλιοθήκης και τις ενότητες της αρχικής σελίδας.",
|
||||
"disable_haptic_feedback": "Απενεργοποίηση Απτικής Ανατροφοδότησης",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Μέγιστο Πλήθος Επεισόδιο Αυτόματου Παιχνιδιού",
|
||||
"disabled": "Απενεργοποιημένο"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Λήψεις"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Διαβάστε Περισσότερα Σχετικά Με Marlin.",
|
||||
"save_button": "Αποθήκευση",
|
||||
"toasts": {
|
||||
"saved": "Αποθηκεύτηκε",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "Αποθηκεύτηκε"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Διαγραφή Όλων Των Ληφθέντων Αρχείων",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Εξαγωγή Αρχείων Καταγραφής",
|
||||
"click_for_more_info": "Κάντε κλικ για περισσότερες πληροφορίες",
|
||||
"level": "Επίπεδο",
|
||||
"no_logs_available": "Δεν Υπάρχουν Διαθέσιμα Αρχεία Καταγραφής",
|
||||
"delete_all_logs": "Διαγραφή Όλων Των Καταγραφών"
|
||||
"no_logs_available": "Δεν Υπάρχουν Διαθέσιμα Αρχεία Καταγραφής"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Γλώσσες",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "Σύστημα"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Σφάλμα Διαγραφής Αρχείων",
|
||||
"background_downloads_enabled": "Οι λήψεις στο παρασκήνιο ενεργοποιήθηκαν",
|
||||
"background_downloads_disabled": "Οι λήψεις παρασκηνίου απενεργοποιήθηκαν"
|
||||
"error_deleting_files": "Σφάλμα Διαγραφής Αρχείων"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Λήψεις",
|
||||
"tvseries": "Τηλεόραση-Σειρά",
|
||||
"movies": "Ταινίες",
|
||||
"queue": "Ουρά",
|
||||
"other_media": "Άλλα μέσα",
|
||||
"queue_hint": "Ουρά και λήψεις θα χαθούν κατά την επανεκκίνηση της εφαρμογής",
|
||||
"no_items_in_queue": "Δεν υπάρχουν αντικείμενα στην ουρά",
|
||||
"no_downloaded_items": "Δεν Έχουν Ληφθεί Αντικείμενα",
|
||||
"delete_all_movies_button": "Διαγραφή Όλων Των Ταινιών",
|
||||
"delete_all_tvseries_button": "Διαγραφή Όλων Των Τηλεοπτικών Σειρών",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "Η νέα ενημέρωση απαιτεί λήψη περιεχομένου ξανά. Καταργήστε όλο το κατεβασμένο περιεχόμενο και προσπαθήστε ξανά.",
|
||||
"back": "Πίσω",
|
||||
"delete": "Διαγραφή",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Κάτι Πήγε Λάθος",
|
||||
"could_not_get_stream_url_from_jellyfin": "Αδυναμία λήψης του URL ροής από το Jellyfin",
|
||||
"eta": "ETA {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Αποτυχία διαγραφής Όλων των TV-Series",
|
||||
"deleted_media_successfully": "Διαγράφηκε άλλο μέσο επιτυχώς!",
|
||||
"failed_to_delete_media": "Αποτυχία διαγραφής άλλων πολυμέσων",
|
||||
"download_deleted": "Η Λήψη Διαγράφηκε",
|
||||
"download_cancelled": "Download Cancelled",
|
||||
"could_not_delete_download": "Αδυναμία Διαγραφής Λήψης",
|
||||
"download_paused": "Λήψη Σε Παύση",
|
||||
"could_not_pause_download": "Αδυναμία Παύσης Λήψης",
|
||||
"download_resumed": "Συνέχιση Λήψης",
|
||||
"could_not_resume_download": "Αδυναμία Συνέχισης Λήψης",
|
||||
"download_completed": "Η Λήψη Ολοκληρώθηκε",
|
||||
"download_failed": "Download Failed",
|
||||
"download_failed_for_item": "Η λήψη απέτυχε για το {{item}} - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} is already downloading",
|
||||
"all_files_deleted": "All Downloads Deleted Successfully",
|
||||
"files_deleted_by_type": "{{count}} {{type}} deleted",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Όλα τα αρχεία, οι φάκελοι και οι εργασίες διαγράφηκαν με επιτυχία",
|
||||
"failed_to_clean_cache_directory": "Αποτυχία καθαρισμού φακέλου προσωρινής μνήμης",
|
||||
"could_not_get_download_url_for_item": "Αδυναμία λήψης του URL λήψης για το {{itemName}}",
|
||||
"go_to_downloads": "Μετάβαση στις λήψεις",
|
||||
"file_deleted": "{{item}} deleted"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Επιλογή",
|
||||
"no_trailer_available": "Δεν υπάρχει διαθέσιμο ρυμουλκούμενο",
|
||||
"video": "Βίντεο",
|
||||
"audio": "Ήχος",
|
||||
"subtitle": "Υπότιτλος",
|
||||
"play": "Αναπαραγωγή",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "None",
|
||||
"track": "Track",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Αναζήτηση...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "Ταινίες",
|
||||
"series": "Σειρά",
|
||||
"boxsets": "Σύνολα Πλαισίων",
|
||||
"playlists": "Playlists",
|
||||
"items": "Στοιχεία"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Αφίσα",
|
||||
"cover": "Εξώφυλλο",
|
||||
"show_titles": "Εμφάνιση Τίτλων",
|
||||
"show_stats": "Εμφάνιση Στατιστικών"
|
||||
"show_stats": "Εμφάνιση Στατιστικών",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Genres",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Ταξινόμηση Κατά",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "Σειρά Ταξινόμησης",
|
||||
"tags": "Ετικέτες"
|
||||
"tags": "Ετικέτες",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Δεν Υπάρχουν Σύνδεσμοι"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Σφάλμα",
|
||||
"failed_to_get_stream_url": "Αποτυχία λήψης του URL ροής",
|
||||
"an_error_occured_while_playing_the_video": "Παρουσιάστηκε σφάλμα κατά την αναπαραγωγή του βίντεο. Ελέγξτε τα αρχεία καταγραφής στις ρυθμίσεις.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Αδυναμία δημιουργίας ροής για το Chromecast",
|
||||
"message_from_server": "Μήνυμα από το διακομιστή: {{message}}",
|
||||
"next_episode": "Επόμενο Επεισόδιο",
|
||||
"refresh_tracks": "Ανανέωση Κομματιών",
|
||||
"audio_tracks": "Κομμάτια Ήχου:",
|
||||
"playback_state": "Κατάσταση Αναπαραγωγής:",
|
||||
"index": "Δείκτης:",
|
||||
"continue_watching": "Συνέχεια Παρακολούθησης",
|
||||
"go_back": "Μετάβαση Πίσω",
|
||||
"downloaded_file_title": "You have this file downloaded",
|
||||
"downloaded_file_message": "Do you want to play the downloaded file?",
|
||||
"downloaded_file_yes": "Yes",
|
||||
"downloaded_file_no": "No",
|
||||
"downloaded_file_cancel": "Cancel"
|
||||
"downloaded_file_cancel": "Cancel",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Επόμενο Επάνω",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Σειρά",
|
||||
"seasons": "Περίοδοι",
|
||||
"season": "Σεζόν",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "Δεν υπάρχουν επεισόδια για αυτή τη σεζόν",
|
||||
"overview": "Επισκόπηση",
|
||||
"more_with": "More with {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Media Options",
|
||||
"quality": "Ποιότητα",
|
||||
"audio": "Ήχος",
|
||||
"subtitles": "Υπότιτλος",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Εμφάνιση Περισσότερων",
|
||||
"show_less": "Εμφάνιση Λιγότερων",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Εμφανίστηκε Σε",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Αδύνατη Η Φόρτωση Του Στοιχείου",
|
||||
"none": "Κανένα",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Λήψη Αντικειμένων {{item_count}}",
|
||||
"download_unwatched_only": "Μόνο Χωρίς Παρακολούθηση",
|
||||
"download_button": "Λήψη"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Επόμενο",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Ταινίες",
|
||||
"sports": "Αθλητισμός",
|
||||
"for_kids": "Για Παιδιά",
|
||||
"news": "Νέα"
|
||||
"news": "Νέα",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Επιβεβαίωση",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Decline",
|
||||
"requested_by": "Requested by {{user}}",
|
||||
"unknown_user": "Unknown User",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Ο διακομιστής Seerr δεν πληροί τις ελάχιστες απαιτήσεις έκδοσης! Παρακαλούμε ενημερώστε τουλάχιστον σε 2.0.0",
|
||||
"jellyseerr_test_failed": "Ο έλεγχος Seerr απέτυχε. Παρακαλώ προσπαθήστε ξανά.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Αναζήτηση",
|
||||
"library": "Βιβλιοθήκη",
|
||||
"custom_links": "Προσαρμοσμένοι Σύνδεσμοι",
|
||||
"favorites": "Αγαπημένα"
|
||||
"favorites": "Αγαπημένα",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,7 +25,8 @@
|
||||
"there_is_a_server_error": "There is a server error",
|
||||
"an_unexpected_error_occured_did_you_enter_the_correct_url": "An unexpected error occurred. Did you enter the server URL correctly?",
|
||||
"too_old_server_text": "Unsupported Jellyfin Server Discovered",
|
||||
"too_old_server_description": "Please update Jellyfin to the latest version"
|
||||
"too_old_server_description": "Please update Jellyfin to the latest version",
|
||||
"login": "Log In"
|
||||
},
|
||||
"server": {
|
||||
"enter_url_to_jellyfin_server": "Enter the URL to your Jellyfin server",
|
||||
@@ -100,7 +101,6 @@
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "Recently Added in {{libraryName}}",
|
||||
"suggested_movies": "Suggested Movies",
|
||||
"suggested_episodes": "Suggested Episodes",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Welcome to Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "A Free and Open-Source Client for Jellyfin.",
|
||||
@@ -261,43 +261,6 @@
|
||||
"None": "None",
|
||||
"OnlyForced": "OnlyForced"
|
||||
},
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"bold_text": "Bold Text",
|
||||
"colors": {
|
||||
"Black": "Black",
|
||||
"Gray": "Gray",
|
||||
"Silver": "Silver",
|
||||
"White": "White",
|
||||
"Maroon": "Maroon",
|
||||
"Red": "Red",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Yellow",
|
||||
"Olive": "Olive",
|
||||
"Green": "Green",
|
||||
"Teal": "Teal",
|
||||
"Lime": "Lime",
|
||||
"Purple": "Purple",
|
||||
"Navy": "Navy",
|
||||
"Blue": "Blue",
|
||||
"Aqua": "Aqua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "None",
|
||||
"Thin": "Thin",
|
||||
"Normal": "Normal",
|
||||
"Thick": "Thick"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.",
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
@@ -315,25 +278,6 @@
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Other",
|
||||
"video_orientation": "Video Orientation",
|
||||
@@ -351,13 +295,7 @@
|
||||
"UNKNOWN": "Unknown"
|
||||
},
|
||||
"safe_area_in_controls": "Safe Area in Controls",
|
||||
"video_player": "Video Player",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Experimental + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Show Custom Menu Links",
|
||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||
"hide_libraries": "Hide Libraries",
|
||||
"select_liraries_you_want_to_hide": "Select the libraries you want to hide from the Library tab and home page sections.",
|
||||
"disable_haptic_feedback": "Disable Haptic Feedback",
|
||||
@@ -367,9 +305,6 @@
|
||||
"max_auto_play_episode_count": "Max Auto Play Episode Count",
|
||||
"disabled": "Disabled"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Downloads"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -413,23 +348,18 @@
|
||||
"read_more_about_marlin": "Read More About Marlin.",
|
||||
"save_button": "Save",
|
||||
"toasts": {
|
||||
"saved": "Saved",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "Saved"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -445,8 +375,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -457,7 +386,6 @@
|
||||
"delete_all_downloaded_files": "Delete All Downloaded Files",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
@@ -467,8 +395,6 @@
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_success": "Cache Cleared",
|
||||
"clear_all_cache_success_desc": "All cache has been cleared successfully.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
@@ -481,8 +407,7 @@
|
||||
"export_logs": "Export Logs",
|
||||
"click_for_more_info": "Click for More Info",
|
||||
"level": "Level",
|
||||
"no_logs_available": "No Logs Available",
|
||||
"delete_all_logs": "Delete All Logs"
|
||||
"no_logs_available": "No Logs Available"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Languages",
|
||||
@@ -490,15 +415,12 @@
|
||||
"system": "System"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Error Deleting Files",
|
||||
"background_downloads_enabled": "Background downloads enabled",
|
||||
"background_downloads_disabled": "Background downloads disabled"
|
||||
"error_deleting_files": "Error Deleting Files"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"description": "Auto logout after inactivity",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
@@ -508,6 +430,10 @@
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Dashboard",
|
||||
"sessions_title": "Sessions"
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -518,10 +444,7 @@
|
||||
"downloads_title": "Downloads",
|
||||
"tvseries": "TV-Series",
|
||||
"movies": "Movies",
|
||||
"queue": "Queue",
|
||||
"other_media": "Other media",
|
||||
"queue_hint": "Queue and downloads will be lost on app restart",
|
||||
"no_items_in_queue": "No Items in Queue",
|
||||
"no_downloaded_items": "No Downloaded Items",
|
||||
"delete_all_movies_button": "Delete All Movies",
|
||||
"delete_all_tvseries_button": "Delete All TV-Series",
|
||||
@@ -534,6 +457,7 @@
|
||||
"new_app_version_requires_re_download_description": "The new update requires content to be downloaded again. Please remove all downloaded content and try again.",
|
||||
"back": "Back",
|
||||
"delete": "Delete",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Something Went Wrong",
|
||||
"could_not_get_stream_url_from_jellyfin": "Could not get the stream URL from Jellyfin",
|
||||
"eta": "ETA {{eta}}",
|
||||
@@ -545,13 +469,8 @@
|
||||
"failed_to_delete_all_tvseries": "Failed to Delete All TV-Series",
|
||||
"deleted_media_successfully": "Deleted other media Successfully!",
|
||||
"failed_to_delete_media": "Failed to Delete other media",
|
||||
"download_deleted": "Download Deleted",
|
||||
"download_cancelled": "Download Cancelled",
|
||||
"could_not_delete_download": "Could Not Delete Download",
|
||||
"download_paused": "Download Paused",
|
||||
"could_not_pause_download": "Could Not Pause Download",
|
||||
"download_resumed": "Download Resumed",
|
||||
"could_not_resume_download": "Could Not Resume Download",
|
||||
"download_completed": "Download Completed",
|
||||
"download_failed": "Download Failed",
|
||||
"download_failed_for_item": "Download failed for {{item}} - {{error}}",
|
||||
@@ -561,10 +480,7 @@
|
||||
"item_already_downloading": "{{item}} is already downloading",
|
||||
"all_files_deleted": "All Downloads Deleted Successfully",
|
||||
"files_deleted_by_type": "{{count}} {{type}} deleted",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "All files, folders, and jobs deleted successfully",
|
||||
"failed_to_clean_cache_directory": "Failed to clean cache directory",
|
||||
"could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}",
|
||||
"go_to_downloads": "Go to Downloads",
|
||||
"file_deleted": "{{item}} deleted"
|
||||
}
|
||||
}
|
||||
@@ -577,19 +493,22 @@
|
||||
"audio": "Audio",
|
||||
"subtitle": "Subtitle",
|
||||
"play": "Play",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "None",
|
||||
"track": "Track",
|
||||
"cancel": "Cancel",
|
||||
"stop": "Stop",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login",
|
||||
"refresh": "Refresh"
|
||||
"episodes": "Episodes",
|
||||
"movies": "Movies",
|
||||
"loading": "Loading…",
|
||||
"seeAll": "See all"
|
||||
},
|
||||
"search": {
|
||||
"search": "Search...",
|
||||
@@ -649,7 +568,8 @@
|
||||
"poster": "Poster",
|
||||
"cover": "Cover",
|
||||
"show_titles": "Show Titles",
|
||||
"show_stats": "Show Stats"
|
||||
"show_stats": "Show Stats",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Genres",
|
||||
@@ -679,6 +599,7 @@
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Error",
|
||||
"failed_to_get_stream_url": "Failed to get the stream URL",
|
||||
"an_error_occured_while_playing_the_video": "An error occurred while playing the video. Check logs in settings.",
|
||||
@@ -686,10 +607,6 @@
|
||||
"could_not_create_stream_for_chromecast": "Could not create a stream for Chromecast",
|
||||
"message_from_server": "Message from Server: {{message}}",
|
||||
"next_episode": "Next Episode",
|
||||
"refresh_tracks": "Refresh Tracks",
|
||||
"audio_tracks": "Audio Tracks:",
|
||||
"playback_state": "Playback State:",
|
||||
"index": "Index:",
|
||||
"continue_watching": "Continue Watching",
|
||||
"go_back": "Go Back",
|
||||
"downloaded_file_title": "You have this file downloaded",
|
||||
@@ -718,7 +635,8 @@
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
"downloaded": "Downloaded",
|
||||
"missing_parameters": "Missing playback parameters"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
@@ -756,7 +674,6 @@
|
||||
"show_more": "Show More",
|
||||
"show_less": "Show Less",
|
||||
"left": "left",
|
||||
"more_info": "More Info",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
@@ -779,7 +696,8 @@
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
"continue_from": "Continue from {{time}}",
|
||||
"no_data_available": "No data available"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Next",
|
||||
@@ -883,13 +801,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -1023,7 +937,6 @@
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"pair_with_phone_description": "Scan the QR code displayed on your TV to log in",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
"next_up": "Sekva",
|
||||
"recently_added_in": "Ĵus Aldonita en {{libraryName}}",
|
||||
"suggested_movies": "Sugestitaj Filmoj",
|
||||
"suggested_episodes": "Sugestitaj Epizodoj",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Bonvenon al Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Senpaga kaj malfermfonta kliento por Jellyfin.",
|
||||
@@ -128,11 +127,6 @@
|
||||
"UNKNOWN": "Nekonata"
|
||||
},
|
||||
"safe_area_in_controls": "Sekura areo en kontroloj",
|
||||
"video_player": "Video-ludilo",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Eksperimenta + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Montri Proprajn Menuajn Ligilojn",
|
||||
"hide_libraries": "Kaŝi Bibliotekojn",
|
||||
"select_liraries_you_want_to_hide": "Elektu la bibliotekojn, kiujn vi volas kaŝi de la Biblioteka langeto kaj hejmpaĝaj sekcioj.",
|
||||
@@ -140,7 +134,6 @@
|
||||
"default_quality": "Defaŭlta kvalito"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Elŝutoj",
|
||||
"optimized_versions_server": "Optimumigitaj versioj servilo",
|
||||
"save_button": "Konservi",
|
||||
"optimized_server": "Optimumigita Servilo",
|
||||
@@ -205,8 +198,7 @@
|
||||
"export_logs": "Eksporti protokolojn",
|
||||
"click_for_more_info": "Klaku por pli da informoj",
|
||||
"level": "Nivelo",
|
||||
"no_logs_available": "Neniuj protokoloj disponeblaj",
|
||||
"delete_all_logs": "Forigi ĉiujn protokolojn"
|
||||
"no_logs_available": "Neniuj protokoloj disponeblaj"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Lingvoj",
|
||||
@@ -216,8 +208,6 @@
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Eraro forigante dosierojn",
|
||||
"background_downloads_enabled": "Fonaj elŝutoj ebligitaj",
|
||||
"background_downloads_disabled": "Fonaj elŝutoj malŝaltitaj",
|
||||
"connected": "Konektita",
|
||||
"could_not_connect": "Ne povis konekti",
|
||||
"invalid_url": "Nevalida URL"
|
||||
@@ -231,9 +221,6 @@
|
||||
"downloads_title": "Elŝutoj",
|
||||
"tvseries": "Televidaj serioj",
|
||||
"movies": "Filmoj",
|
||||
"queue": "Vico",
|
||||
"queue_hint": "Vico kaj elŝutoj perdiĝos ĉe aplikaĵa rekomenco",
|
||||
"no_items_in_queue": "Neniuj eroj en vico",
|
||||
"no_downloaded_items": "Neniuj elŝutitaj eroj",
|
||||
"delete_all_movies_button": "Forigi ĉiujn Filmojn",
|
||||
"delete_all_tvseries_button": "Forigi ĉiujn Televidajn Seriojn",
|
||||
@@ -269,9 +256,7 @@
|
||||
"no_response_received_from_server": "Neniu respondo ricevita de la servilo",
|
||||
"error_setting_up_the_request": "Eraro starigante la peton",
|
||||
"failed_to_start_download_for_item_unexpected_error": "Malsukcesis komenci elŝutadon por {{item}}: Neatendita eraro",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Ĉiuj dosieroj, dosierujoj kaj taskoj sukcese forigitaj",
|
||||
"an_error_occured_while_deleting_files_and_jobs": "Eraro okazis dum forigo de dosieroj kaj taskoj",
|
||||
"go_to_downloads": "Iri al elŝutoj"
|
||||
"an_error_occured_while_deleting_files_and_jobs": "Eraro okazis dum forigo de dosieroj kaj taskoj"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -365,12 +350,8 @@
|
||||
"video_has_finished_playing": "Video finis ludi!",
|
||||
"no_video_source": "Neniu video-fonto...",
|
||||
"next_episode": "Sekva Epizodo",
|
||||
"refresh_tracks": "Refreŝigi Trakojn",
|
||||
"subtitle_tracks": "Subtekstaj Trakoj:",
|
||||
"audio_tracks": "Aŭdiaj Trakoj:",
|
||||
"playback_state": "Ludada Stato:",
|
||||
"no_data_available": "Neniuj datumoj disponeblaj",
|
||||
"index": "Indekso:"
|
||||
"no_data_available": "Neniuj datumoj disponeblaj"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Sekva",
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Error",
|
||||
"login_title": "Iniciar sesión",
|
||||
"login_to_title": "Iniciar sesión en",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Nombre de usuario",
|
||||
"password_placeholder": "Contraseña",
|
||||
"login_button": "Iniciar sesión",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} cuentas",
|
||||
"select_account": "Seleccione una cuenta",
|
||||
"add_account": "Añadir cuenta",
|
||||
"remove_account_description": "Esto eliminará las credenciales guardadas para {{username}}."
|
||||
"remove_account_description": "Esto eliminará las credenciales guardadas para {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Guardar Cuenta",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "¡Vaya!",
|
||||
"error_message": "Algo ha salido mal.\nPor favor, cierra la sesión y vuelve a iniciar.",
|
||||
"continue_watching": "Seguir viendo",
|
||||
"continue": "Continue",
|
||||
"next_up": "A continuación",
|
||||
"continue_and_next_up": "Continuar y siguiente",
|
||||
"recently_added_in": "Recientemente añadido en {{libraryName}}",
|
||||
"suggested_movies": "Películas sugeridas",
|
||||
"suggested_episodes": "Episodios sugeridos",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Bienvenido a Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Un cliente gratuito y de código abierto para Jellyfin.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Configuración",
|
||||
"log_out_button": "Cerrar sesión",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categorías"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Apariencia",
|
||||
"merge_next_up_continue_watching": "Fusionar continuar viendo y siguiente",
|
||||
"hide_remote_session_button": "Ocultar botón de sesión remota"
|
||||
"hide_remote_session_button": "Ocultar botón de sesión remota",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Cadena",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Longitud de retroceso",
|
||||
"seconds_unit": "s"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Controles de gestos",
|
||||
"horizontal_swipe_skip": "Deslizar horizontal para omitir",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Nada",
|
||||
"OnlyForced": "Solo forzados"
|
||||
},
|
||||
"text_color": "Color del texto",
|
||||
"background_color": "Color de fondo",
|
||||
"outline_color": "Color de salida",
|
||||
"outline_thickness": "Grosor exterior",
|
||||
"background_opacity": "Opacidad de fondo",
|
||||
"outline_opacity": "Opacidad exterior",
|
||||
"bold_text": "Texto en negrita",
|
||||
"colors": {
|
||||
"Black": "Negro",
|
||||
"Gray": "Gris",
|
||||
"Silver": "Plata",
|
||||
"White": "Blanco",
|
||||
"Maroon": "Granate",
|
||||
"Red": "Rojo",
|
||||
"Fuchsia": "Fucsia",
|
||||
"Yellow": "Amarillo",
|
||||
"Olive": "Oliva",
|
||||
"Green": "Verde",
|
||||
"Teal": "Cereal",
|
||||
"Lime": "Lima",
|
||||
"Purple": "Morado",
|
||||
"Navy": "Naval",
|
||||
"Blue": "Azul",
|
||||
"Aqua": "Agua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Ninguno",
|
||||
"Thin": "Ligero",
|
||||
"Normal": "Normal",
|
||||
"Thick": "Grosor"
|
||||
},
|
||||
"subtitle_color": "Color de los Subtítulos",
|
||||
"subtitle_background_color": "Color del fondo",
|
||||
"subtitle_font": "Fuente de los subtítulos",
|
||||
"ksplayer_title": "Ajustes de KSPlayer",
|
||||
"hardware_decode": "Decodificación de hardware",
|
||||
"hardware_decode_description": "Utilizar la aceleración de hardware para la decodificación de vídeo. Deshabilite si experimenta problemas de reproducción."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "Configuración de subtítulos VLC",
|
||||
"hint": "Personalizar la apariencia de los subtítulos para el reproductor VLC. Los cambios tendrán efecto en la próxima reproducción.",
|
||||
"text_color": "Color del texto",
|
||||
"background_color": "Color del fondo",
|
||||
"background_opacity": "Opacidad del fondo",
|
||||
"outline_color": "Color del contorno",
|
||||
"outline_opacity": "Opacidad del contorno",
|
||||
"outline_thickness": "Grosor del contorno",
|
||||
"bold": "Texto en negrita",
|
||||
"margin": "Margen inferior"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Reproductor de vídeo",
|
||||
"video_player": "Reproductor de vídeo",
|
||||
"video_player_description": "Elige qué reproductor de vídeo en iOS",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Otros",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Desconocida"
|
||||
},
|
||||
"safe_area_in_controls": "Área segura en controles",
|
||||
"video_player": "Reproductor de vídeo",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Experimental + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Mostrar enlaces de menú personalizados",
|
||||
"show_large_home_carousel": "Mostrar carrusel del menú principal grande (beta)",
|
||||
"hide_libraries": "Ocultar bibliotecas",
|
||||
"select_liraries_you_want_to_hide": "Selecciona las bibliotecas que quieres ocultar de la pestaña Bibliotecas y de Inicio.",
|
||||
"disable_haptic_feedback": "Desactivar feedback háptico",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Máximo número de episodios de Auto Play",
|
||||
"disabled": "Deshabilitado"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Descargas"
|
||||
},
|
||||
"music": {
|
||||
"title": "Música",
|
||||
"playback_title": "Reproducir",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Leer más sobre Marlin.",
|
||||
"save_button": "Guardar",
|
||||
"toasts": {
|
||||
"saved": "Guardado",
|
||||
"refreshed": "Ajustes del servidor actualizados"
|
||||
},
|
||||
"refresh_from_server": "Actualizar ajustes del servidor"
|
||||
"saved": "Guardado"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Habilitar Streamystats",
|
||||
"disable_streamystats": "Deshabilitar Streamystats",
|
||||
"enable_search": "Usar para la búsqueda",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.ejemplo.com",
|
||||
"streamystats_search_hint": "Introduzca la URL para su servidor Streamystats. La URL debe incluir http o https y opcionalmente el puerto.",
|
||||
"read_more_about_streamystats": "Leer más sobre Streamystats.",
|
||||
"save_button": "Guardar",
|
||||
"save": "Guardar",
|
||||
"features_title": "Características",
|
||||
"home_sections_title": "Secciones de inicio",
|
||||
"enable_movie_recommendations": "Recomendaciones de películas",
|
||||
"enable_series_recommendations": "Recomendaciones de series",
|
||||
"enable_promoted_watchlists": "Listas promocionadas",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Actualizar ajustes desde el servidor"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Habilitar la integración de la lista de seguimiento",
|
||||
"watchlist_button": "Activar o desactivar la integración de la lista de seguimiento"
|
||||
"watchlist_enabler": "Habilitar la integración de la lista de seguimiento"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Eliminar todos los archivos descargados",
|
||||
"music_cache_title": "Caché de música",
|
||||
"music_cache_description": "Cachear automáticamente las canciones mientras escuchas una reproducción más suave y soporte sin conexión",
|
||||
"enable_music_cache": "Activar Caché de Música",
|
||||
"clear_music_cache": "Borrar Caché de Música",
|
||||
"music_cache_size": "Caché {{Tamaño}}",
|
||||
"music_cache_cleared": "Caché de música eliminado",
|
||||
"delete_all_downloaded_songs": "Eliminar todas las descargas",
|
||||
"downloaded_songs_size": "{{tamaño}} descargado",
|
||||
"downloaded_songs_deleted": "Canciones descargadas eliminadas"
|
||||
"downloaded_songs_deleted": "Canciones descargadas eliminadas",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Export logs",
|
||||
"click_for_more_info": "Click for more info",
|
||||
"level": "Nivel",
|
||||
"no_logs_available": "No hay registros disponibles",
|
||||
"delete_all_logs": "Eliminar todos los registros"
|
||||
"no_logs_available": "No hay registros disponibles"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Idiomas",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "Sistema"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Error al eliminar archivos",
|
||||
"background_downloads_enabled": "Descargas en segundo plano habilitadas",
|
||||
"background_downloads_disabled": "Descargas en segundo plano deshabilitadas"
|
||||
"error_deleting_files": "Error al eliminar archivos"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Descargas",
|
||||
"tvseries": "Series",
|
||||
"movies": "Películas",
|
||||
"queue": "Cola",
|
||||
"other_media": "Otros medios",
|
||||
"queue_hint": "La cola de series y películas se perderá al reiniciar la app",
|
||||
"no_items_in_queue": "No hay ítems en la cola",
|
||||
"no_downloaded_items": "No hay ítems descargados",
|
||||
"delete_all_movies_button": "Eliminar todas las películas",
|
||||
"delete_all_tvseries_button": "Eliminar todas las series",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "La nueva actualización requiere volver a descargar el contenido. Por favor, elimina todo el código descargado y vuélvelo a intentar.",
|
||||
"back": "Atrás",
|
||||
"delete": "Borrar",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Algo ha salido mal",
|
||||
"could_not_get_stream_url_from_jellyfin": "No se pudo obtener la URL del stream de Jellyfin",
|
||||
"eta": "{{eta}} restante",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Error al eliminar todas las series",
|
||||
"deleted_media_successfully": "¡Otros medios eliminados con éxito!",
|
||||
"failed_to_delete_media": "Error al eliminar otros medios",
|
||||
"download_deleted": "Descarga eliminada",
|
||||
"download_cancelled": "Descarga cancelada",
|
||||
"could_not_delete_download": "No se pudo eliminar la descarga",
|
||||
"download_paused": "Descarga pausada",
|
||||
"could_not_pause_download": "No se pudo pausar la descarga",
|
||||
"download_resumed": "Descarga rebatida",
|
||||
"could_not_resume_download": "No se pudo reiniciar la descarga",
|
||||
"download_completed": "Descarga completada",
|
||||
"download_failed": "Descarga fallida",
|
||||
"download_failed_for_item": "Descarga fallida para {{item}} - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} ya está descargando",
|
||||
"all_files_deleted": "Todas las descargas eliminadas correctamente",
|
||||
"files_deleted_by_type": "{{count}} {{type}} eliminado",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Todos los archivos, carpetas y trabajos eliminados con éxito",
|
||||
"failed_to_clean_cache_directory": "Error al limpiar el directorio de caché",
|
||||
"could_not_get_download_url_for_item": "No se pudo obtener la URL de descarga para {{itemName}}",
|
||||
"go_to_downloads": "Ir a descargas",
|
||||
"file_deleted": "{{item}} eliminado"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Seleccionar",
|
||||
"no_trailer_available": "No hay tráiler disponible",
|
||||
"video": "Vídeo",
|
||||
"audio": "Audio",
|
||||
"subtitle": "Subtítulos",
|
||||
"play": "Jugar",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "Nada",
|
||||
"track": "Pista",
|
||||
"cancel": "Cancelar",
|
||||
"delete": "Borrar",
|
||||
"ok": "Aceptar",
|
||||
"remove": "Eliminar",
|
||||
"next": "Siguiente",
|
||||
"back": "Atrás",
|
||||
"continue": "Continuar",
|
||||
"verifying": "Verificando..."
|
||||
"verifying": "Verificando...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Buscar...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "Películas",
|
||||
"series": "Series",
|
||||
"boxsets": "Colecciones",
|
||||
"playlists": "Playlists",
|
||||
"items": "Elementos"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Póster",
|
||||
"cover": "Portada",
|
||||
"show_titles": "Mostrar títulos",
|
||||
"show_stats": "Mostrar estadísticas"
|
||||
"show_stats": "Mostrar estadísticas",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Géneros",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Ordenar por",
|
||||
"filter_by": "Filtrar por",
|
||||
"sort_order": "Ordenar",
|
||||
"tags": "Etiquetas"
|
||||
"tags": "Etiquetas",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Sin enlaces"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Error",
|
||||
"failed_to_get_stream_url": "Error al obtener la URL del Steam",
|
||||
"an_error_occured_while_playing_the_video": "Ha ocurrido un error al reproducir el vídeo. Comprueba los registros en la configuración.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "No se pudo crear el Steam para Chromecast",
|
||||
"message_from_server": "Mensaje del servidor: {{message}}",
|
||||
"next_episode": "Siguiente episodio",
|
||||
"refresh_tracks": "Refrescar pistas",
|
||||
"audio_tracks": "Pistas de audio:",
|
||||
"playback_state": "Estado de la reproducción:",
|
||||
"index": "Índice:",
|
||||
"continue_watching": "Continuar viendo",
|
||||
"go_back": "Volver",
|
||||
"downloaded_file_title": "Ya tienes este archivo descargado",
|
||||
"downloaded_file_message": "¿Quieres reproducir el archivo descargado?",
|
||||
"downloaded_file_yes": "Sí",
|
||||
"downloaded_file_no": "No",
|
||||
"downloaded_file_cancel": "Cancelar"
|
||||
"downloaded_file_cancel": "Cancelar",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "A continuación",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Series",
|
||||
"seasons": "Temporadas",
|
||||
"season": "Temporada",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "No hay episodios para esta temporada",
|
||||
"overview": "Resumen",
|
||||
"more_with": "Más con {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Opciones de medios",
|
||||
"quality": "Calidad",
|
||||
"audio": "Audio",
|
||||
"subtitles": "Subtítulos",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Mostrar más",
|
||||
"show_less": "Mostrar menos",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Apareció en",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "No se pudo cargar el ítem",
|
||||
"none": "Ninguno",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Descargar {{item_count}} ítems",
|
||||
"download_unwatched_only": "No visto",
|
||||
"download_button": "Descargar"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Siguiente",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Películas",
|
||||
"sports": "Deportes",
|
||||
"for_kids": "Para niños",
|
||||
"news": "Noticias"
|
||||
"news": "Noticias",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Confirmar",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Rechazar",
|
||||
"requested_by": "Solicitado por {{user}}",
|
||||
"unknown_user": "Usuario desconocido",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "¡Jellyseer no cumple con los requisitos! Por favor, actualízalo al menos a la versión 2.0.0.",
|
||||
"jellyseerr_test_failed": "La prueba de Jellyseerr ha fallado. Por favor inténtalo de nuevo.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Buscar",
|
||||
"library": "Bibliotecas",
|
||||
"custom_links": "Enlaces personalizados",
|
||||
"favorites": "Favoritos"
|
||||
"favorites": "Favoritos",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Música",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Listas de reproducción",
|
||||
"tracks": "Canciones"
|
||||
},
|
||||
"filters": {
|
||||
"all": "Todas"
|
||||
},
|
||||
"recently_added": "Recientemente añadido",
|
||||
"recently_played": "Reproducidos Recientemente",
|
||||
"frequently_played": "Reproducido con frecuencia",
|
||||
"explore": "Explorar",
|
||||
"top_tracks": "Canciones Populares",
|
||||
"play": "Reproducir",
|
||||
"shuffle": "Aleatorio",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "Este programa",
|
||||
"all": "Todos los medios (por defecto)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Virhe",
|
||||
"login_title": "Kirjaudu sisään",
|
||||
"login_to_title": "Kirjaudu sisään palveluun",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Käyttäjätunnus",
|
||||
"password_placeholder": "Salasana",
|
||||
"login_button": "Kirjaudu sisään",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Ups!",
|
||||
"error_message": "Jotain meni pieleen.\nKirjaudu ulos ja takaisin sisään.",
|
||||
"continue_watching": "Jatka katsomista",
|
||||
"continue": "Continue",
|
||||
"next_up": "Seuraavaksi",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "Äskettäin lisätty {{libraryName}}-kirjastoon",
|
||||
"suggested_movies": "Ehdotetut elokuvat",
|
||||
"suggested_episodes": "Ehdotetut jaksot",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Tervetuloa Streamyfiniin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Ilmainen ja avoimen lähdekoodin asiakas Jellyfinille.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Asetukset",
|
||||
"log_out_button": "Kirjaudu ulos",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Kategoriat"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Ulkoasu",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"hide_remote_session_button": "Hide Remote Session Button",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Taaksepäin hyppäämisen pituus",
|
||||
"seconds_unit": "s"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Ele Ohjaus",
|
||||
"horizontal_swipe_skip": "Ohita vaakatasossa pyyhkäisemällä",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Ei mitään",
|
||||
"OnlyForced": "Vain pakotettu"
|
||||
},
|
||||
"text_color": "Tekstin väri",
|
||||
"background_color": "Taustaväri",
|
||||
"outline_color": "Ääriviivan väri",
|
||||
"outline_thickness": "Ääriviivan paksuus",
|
||||
"background_opacity": "Taustan läpinäkyvyys",
|
||||
"outline_opacity": "Ääriviivan Läpinäkyvyys",
|
||||
"bold_text": "Lihavoi teksti",
|
||||
"colors": {
|
||||
"Black": "Musta",
|
||||
"Gray": "Harmaa",
|
||||
"Silver": "Hopea",
|
||||
"White": "Valkoinen",
|
||||
"Maroon": "Maroon",
|
||||
"Red": "Punainen",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Keltainen",
|
||||
"Olive": "Oliivit",
|
||||
"Green": "Vihreä",
|
||||
"Teal": "Sinappi",
|
||||
"Lime": "Limea",
|
||||
"Purple": "Violetti",
|
||||
"Navy": "Laiva",
|
||||
"Blue": "Sininen",
|
||||
"Aqua": "Vesi"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Ei mitään",
|
||||
"Thin": "Ohut",
|
||||
"Normal": "Normaali",
|
||||
"Thick": "Paksu"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Muut",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Tuntematon"
|
||||
},
|
||||
"safe_area_in_controls": "Turvallinen alue ohjaimissa",
|
||||
"video_player": "Videosoitin",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Kokeellinen + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Näytä mukautetut valikkolinkit",
|
||||
"show_large_home_carousel": "Näytä suuri kotikaruselli (beta)",
|
||||
"hide_libraries": "Piilota kirjastot",
|
||||
"select_liraries_you_want_to_hide": "Valitse kirjastot, jotka haluat piilottaa Kirjasto-välilehdeltä ja etusivun osioista.",
|
||||
"disable_haptic_feedback": "Poista haptinen palautteet käytöstä",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Automaattisten Toistojaksojen Maksimimäärä",
|
||||
"disabled": "Pois Käytöstä"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Lataukset"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Lue lisää Marlinista.",
|
||||
"save_button": "Tallenna",
|
||||
"toasts": {
|
||||
"saved": "Tallennettu",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "Tallennettu"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Poista kaikki ladatut tiedostot",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Esittely",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Vie lokit",
|
||||
"click_for_more_info": "Napsauta lisätietoja varten",
|
||||
"level": "Taso",
|
||||
"no_logs_available": "Ei lokitietoja saatavilla",
|
||||
"delete_all_logs": "Poista kaikki lokit"
|
||||
"no_logs_available": "Ei lokitietoja saatavilla"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Kielet",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "Järjestelmä"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Virhe tiedostojen poistamisessa",
|
||||
"background_downloads_enabled": "Taustalataukset käytössä",
|
||||
"background_downloads_disabled": "Taustalataukset pois käytöstä"
|
||||
"error_deleting_files": "Virhe tiedostojen poistamisessa"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Lataukset",
|
||||
"tvseries": "TV-sarjat",
|
||||
"movies": "Elokuvat",
|
||||
"queue": "Jonot",
|
||||
"other_media": "Muu media",
|
||||
"queue_hint": "Jonot ja lataukset menetetään sovelluksen uudelleenkäynnistyksen yhteydessä",
|
||||
"no_items_in_queue": "Ei kohteita jonossa",
|
||||
"no_downloaded_items": "Ei ladattuja kohteita",
|
||||
"delete_all_movies_button": "Poista kaikki elokuvat",
|
||||
"delete_all_tvseries_button": "Poista kaikki TV-sarjat",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "Uusi päivitys vaatii sisällön lataamista uudelleen. Poista kaikki ladattu sisältö ja yritä uudelleen.",
|
||||
"back": "Takaisin",
|
||||
"delete": "Poista",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Jotain meni pieleen",
|
||||
"could_not_get_stream_url_from_jellyfin": "Ei voitu saada suoratoiston URL:ia Jellyfinilta",
|
||||
"eta": "Arvio {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Kaikkien TV-sarjojen poistaminen epäonnistui",
|
||||
"deleted_media_successfully": "Muu media poistettu onnistuneesti!",
|
||||
"failed_to_delete_media": "Muiden medioiden poistaminen epäonnistui",
|
||||
"download_deleted": "Lataus Poistettu",
|
||||
"download_cancelled": "Lataus peruutettu",
|
||||
"could_not_delete_download": "Latausta Ei Voitu Poistaa",
|
||||
"download_paused": "Lataus Keskeytetty",
|
||||
"could_not_pause_download": "Latausta Ei Voitu Keskeyttää",
|
||||
"download_resumed": "Lataus Jatketaan",
|
||||
"could_not_resume_download": "Latausta Ei Voitu Jatkaa.",
|
||||
"download_completed": "Lataus valmis",
|
||||
"download_failed": "Lataus epäonnistui",
|
||||
"download_failed_for_item": "Lataus epäonnistui kohteelle {{item}} - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} is already downloading",
|
||||
"all_files_deleted": "Kaikki lataukset poistettu onnistuneesti",
|
||||
"files_deleted_by_type": "{{count}} {{type}} poistettu",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Kaikki tiedostot, kansiot ja tehtävät poistettu onnistuneesti",
|
||||
"failed_to_clean_cache_directory": "Välimuistin hakemiston puhdistus epäonnistui",
|
||||
"could_not_get_download_url_for_item": "Latauksen URL-osoitetta ei voitu ladata {{itemName}}",
|
||||
"go_to_downloads": "Siirry latauksiin",
|
||||
"file_deleted": "{{item}} poistettu"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Valitse",
|
||||
"no_trailer_available": "Perävaunua ei saatavilla",
|
||||
"video": "Video",
|
||||
"audio": "Ääni",
|
||||
"subtitle": "Tekstitys",
|
||||
"play": "Toista",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "Ei mitään",
|
||||
"track": "Track",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Haku...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "elokuvat",
|
||||
"series": "sarjat",
|
||||
"boxsets": "bokset",
|
||||
"playlists": "Playlists",
|
||||
"items": "kohteet"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Juliste",
|
||||
"cover": "Kansi",
|
||||
"show_titles": "Näytä otsikot",
|
||||
"show_stats": "Näytä tilastot"
|
||||
"show_stats": "Näytä tilastot",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Genret",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Lajittele",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "Lajittelujärjestys",
|
||||
"tags": "Tunnisteet"
|
||||
"tags": "Tunnisteet",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Ei Linkkejä"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Virhe",
|
||||
"failed_to_get_stream_url": "Lähetyksen URL-osoitteen haku epäonnistui",
|
||||
"an_error_occured_while_playing_the_video": "Videon toiston yhteydessä tapahtui virhe. Tarkista lokit asetuksista.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Suoratoistoa ei voitu luoda Chromecastia varten",
|
||||
"message_from_server": "Viesti palvelimelta: {{message}}",
|
||||
"next_episode": "Seuraava Jakso",
|
||||
"refresh_tracks": "Päivitä Kappaleet",
|
||||
"audio_tracks": "Ääni Kappaleet:",
|
||||
"playback_state": "Toiston Tila:",
|
||||
"index": "Indeksi:",
|
||||
"continue_watching": "Jatka katsomista",
|
||||
"go_back": "Siirry Takaisin",
|
||||
"downloaded_file_title": "Tämä tiedosto on ladattuna",
|
||||
"downloaded_file_message": "Haluatko toistaa ladatun tiedoston?",
|
||||
"downloaded_file_yes": "Kyllä",
|
||||
"downloaded_file_no": "Ei",
|
||||
"downloaded_file_cancel": "Peruuta"
|
||||
"downloaded_file_cancel": "Peruuta",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Seuraavaksi",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Sarjat",
|
||||
"seasons": "Kaudet",
|
||||
"season": "Kausi",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "Ei jaksoja tälle kaudelle",
|
||||
"overview": "Yleiskatsaus",
|
||||
"more_with": "Enemmän {{name}} kanssa",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Media-asetukset",
|
||||
"quality": "Laatu",
|
||||
"audio": "Ääni",
|
||||
"subtitles": "Tekstitys",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Näytä Lisää",
|
||||
"show_less": "Näytä Vähemmän",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Esiintyy Sisään",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Kohdetta Ei Voitu Ladata",
|
||||
"none": "Ei mitään",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Lataa {{item_count}} Kohteita",
|
||||
"download_unwatched_only": "Vain Katsomattomat",
|
||||
"download_button": "Lataa"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Seuraava",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Elokuvat",
|
||||
"sports": "Urheilu",
|
||||
"for_kids": "Lapsille",
|
||||
"news": "Uutiset"
|
||||
"news": "Uutiset",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Vahvista",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Hylkää",
|
||||
"requested_by": "Käyttäjän {{user}} pyynnöstä",
|
||||
"unknown_user": "Tuntematon käyttäjä",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Jellyseerr-palvelin ei täytä vähimmäisversiovaatimuksia! Päivitä vähintään versioon 2.0.0",
|
||||
"jellyseerr_test_failed": "Jellyseerr-testi epäonnistui. Yritä uudelleen.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Haku",
|
||||
"library": "Kirjasto",
|
||||
"custom_links": "Mukautetut linkit",
|
||||
"favorites": "Suosikit"
|
||||
"favorites": "Suosikit",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,9 @@
|
||||
"error_title": "שגיאה",
|
||||
"login_title": "התחבר",
|
||||
"login_to_title": "התחבר אל",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "שם משתמש",
|
||||
"password_placeholder": "סיסמה",
|
||||
"login_button": "התחבר",
|
||||
@@ -39,10 +42,16 @@
|
||||
"please_login_again": "Your saved session has expired. Please log in again.",
|
||||
"remove_saved_login": "Remove Saved Login",
|
||||
"remove_saved_login_description": "This will remove your saved credentials for this server. You'll need to enter your username and password again next time.",
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"accounts_count": "{{count}} חשבונות",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "אופס!",
|
||||
"error_message": "קרתה תקלה. אנא התנתק והתחבר מחדש.",
|
||||
"continue_watching": "המשך לצפות",
|
||||
"continue": "Continue",
|
||||
"next_up": "הבא בתור",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "התווסף לאחרונה ב-{{libraryName}}",
|
||||
"suggested_movies": "סרטים מוצעים",
|
||||
"suggested_episodes": "פרקים מוצעים",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "ברוך הבא ל-Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "קליינט חינמי ובקוד פתוח לשרתי Jellyfin.",
|
||||
@@ -109,19 +118,34 @@
|
||||
"settings": {
|
||||
"settings_title": "הגדרות",
|
||||
"log_out_button": "התנתק",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categories"
|
||||
"title": "קטגוריות"
|
||||
},
|
||||
"playback_controls": {
|
||||
"title": "Playback & Controls"
|
||||
},
|
||||
"audio_subtitles": {
|
||||
"title": "Audio & Subtitles"
|
||||
"title": "שמע וכתוביות"
|
||||
},
|
||||
"appearance": {
|
||||
"title": "Appearance",
|
||||
"title": "מראה",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"hide_remote_session_button": "Hide Remote Session Button",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "אורך הזזה אחורה",
|
||||
"seconds_unit": "שנ'"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "פקדי מחוות",
|
||||
"horizontal_swipe_skip": "החלקה אופקית לדילוג",
|
||||
@@ -188,7 +228,7 @@
|
||||
"hide_brightness_slider_description": "Hide the brightness slider in the video player"
|
||||
},
|
||||
"audio": {
|
||||
"audio_title": "אודיו",
|
||||
"audio_title": "שמע",
|
||||
"set_audio_track": "בחר רצועת שמע מהפריט הקודם",
|
||||
"audio_language": "שפת שמע",
|
||||
"audio_hint": "בחר שפת שמע אוטומטית.",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "ללא",
|
||||
"OnlyForced": "רק כפוי"
|
||||
},
|
||||
"text_color": "צבע הטקסט",
|
||||
"background_color": "צבע רקע",
|
||||
"outline_color": "צבע קו מתאר",
|
||||
"outline_thickness": "עובי קו מתאר",
|
||||
"background_opacity": "שקיפות רקע",
|
||||
"outline_opacity": "אטימות קו מתאר",
|
||||
"bold_text": "טקסט בולט",
|
||||
"colors": {
|
||||
"Black": "שחור",
|
||||
"Gray": "אפור",
|
||||
"Silver": "כסף",
|
||||
"White": "לבן",
|
||||
"Maroon": "חום ערמוני",
|
||||
"Red": "אדום",
|
||||
"Fuchsia": "פוקסיה",
|
||||
"Yellow": "צהוב",
|
||||
"Olive": "זית",
|
||||
"Green": "ירוק",
|
||||
"Teal": "תכלת",
|
||||
"Lime": "ירוק ליים",
|
||||
"Purple": "סגול",
|
||||
"Navy": "כחול כהה",
|
||||
"Blue": "כחול",
|
||||
"Aqua": "כחול בהיר"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "ללא",
|
||||
"Thin": "דק",
|
||||
"Normal": "רגיל",
|
||||
"Thick": "עבה"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "אחר",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "לא ידוע"
|
||||
},
|
||||
"safe_area_in_controls": "איזור בטוח בפקדים",
|
||||
"video_player": "נגן וידאו",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (ניסיוני + נגן בתוך נגן)"
|
||||
},
|
||||
"show_custom_menu_links": "הצג קישורים לתפריטים מותאמים אישית",
|
||||
"show_large_home_carousel": "הצג קרוסלה גדולה במסך הבית (בטא)",
|
||||
"hide_libraries": "הסתר ספריות",
|
||||
"select_liraries_you_want_to_hide": "בחר את הספריות שתרצה להסתיר ממסך הספריות וגם ממסך הבית.",
|
||||
"disable_haptic_feedback": "בטל משוב רטט",
|
||||
@@ -310,11 +304,8 @@
|
||||
"max_auto_play_episode_count": "כמות פרקים מקסימלית לניגון אוטומטי",
|
||||
"disabled": "כבוי"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "הורדות"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"title": "מוזיקה",
|
||||
"playback_title": "Playback",
|
||||
"playback_description": "Configure how music is played.",
|
||||
"prefer_downloaded": "Prefer Downloaded Songs",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "קרא עוד על Marlin.",
|
||||
"save_button": "שמור",
|
||||
"toasts": {
|
||||
"saved": "נשמר",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "נשמר"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,16 +385,19 @@
|
||||
"delete_all_downloaded_files": "מחק את כל הקבצים שהורדו",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
"title": "הקדמה",
|
||||
"show_intro": "הצג פתיח",
|
||||
"reset_intro": "אפס פתיח"
|
||||
},
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "ייצוא לוגים",
|
||||
"click_for_more_info": "לחץ למידע נוסף",
|
||||
"level": "רמה",
|
||||
"no_logs_available": "אין לוגים זמינים",
|
||||
"delete_all_logs": "מחק את כל הלוגים"
|
||||
"no_logs_available": "אין לוגים זמינים"
|
||||
},
|
||||
"languages": {
|
||||
"title": "שפות",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "מערכת"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "שגיאה במחיקת קבצים",
|
||||
"background_downloads_enabled": "הורדה ברקע מופעלת",
|
||||
"background_downloads_disabled": "הורדה ברקע כבויה"
|
||||
"error_deleting_files": "שגיאה במחיקת קבצים"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "הורדות",
|
||||
"tvseries": "סדרות",
|
||||
"movies": "סרטים",
|
||||
"queue": "תוֹר",
|
||||
"other_media": "תוכן אחר",
|
||||
"queue_hint": "התור וההורדות יאבדו בפתיחה מחדש של האפליקציה",
|
||||
"no_items_in_queue": "אין פרטים בתור",
|
||||
"no_downloaded_items": "אין פריטים שהורדו",
|
||||
"delete_all_movies_button": "מחק את כל הסרטים",
|
||||
"delete_all_tvseries_button": "מחק את כל הסדרות",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "הגרסה החדשה דורשת לתוכן לרדת מחדש. אנא מחק את כל התוכן שכבר הורדת ונסה שוב.",
|
||||
"back": "חזרה",
|
||||
"delete": "מחק",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "משהו השתבש",
|
||||
"could_not_get_stream_url_from_jellyfin": "לא היה ניתן להגיע לקישור הזרם מהשרת Jellyfin",
|
||||
"eta": "זמן משוער {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "נכשל במחיקת כל הסדרות",
|
||||
"deleted_media_successfully": "כל שאר התוכן נמחק בהצלחה!",
|
||||
"failed_to_delete_media": "נכשל במחיקת שאר התוכן",
|
||||
"download_deleted": "ההורדה נמחקה",
|
||||
"download_cancelled": "ההורדה בוטלה",
|
||||
"could_not_delete_download": "לא היה ניתן למחוק את ההורדה",
|
||||
"download_paused": "ההורדה נעצרה",
|
||||
"could_not_pause_download": "לא היה ניתן לעצור את ההורדה",
|
||||
"download_resumed": "ההורדה חודשה",
|
||||
"could_not_resume_download": "לא היה ניתן לחדש את ההורדה",
|
||||
"download_completed": "ההורדה הושלמה",
|
||||
"download_failed": "ההורדה נכשלה",
|
||||
"download_failed_for_item": "ההורדה נכשלה עבור {{item}} - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} כבר נמצא בהורדה",
|
||||
"all_files_deleted": "כל ההורדות נמחקו בהצלחה",
|
||||
"files_deleted_by_type": "{{count}} {{type}} נמחקו",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "כל הקבצים, התיקיות והעבודות נמחקו בהצלחה",
|
||||
"failed_to_clean_cache_directory": "נכשל בניסיון למחוק את תיקיית המטמון",
|
||||
"could_not_get_download_url_for_item": "לא היה ניתן להשיג את קישור ההורדה של {{itemName}}",
|
||||
"go_to_downloads": "עבור להורדות",
|
||||
"file_deleted": "{{item}} נמחק"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "בחר",
|
||||
"no_trailer_available": "אין טריילר זמין",
|
||||
"video": "וידאו",
|
||||
"audio": "אודיו",
|
||||
"audio": "שמע",
|
||||
"subtitle": "כתובית",
|
||||
"play": "נגן",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "ללא",
|
||||
"track": "Track",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "חפש...",
|
||||
@@ -521,9 +513,9 @@
|
||||
"episodes": "פרקים",
|
||||
"collections": "אוספים",
|
||||
"actors": "שחקנים",
|
||||
"artists": "Artists",
|
||||
"albums": "Albums",
|
||||
"songs": "Songs",
|
||||
"artists": "אומנים",
|
||||
"albums": "אלבומים",
|
||||
"songs": "שירים",
|
||||
"playlists": "Playlists",
|
||||
"request_movies": "סרטים מבוקשים",
|
||||
"request_series": "סדרות מבוקשים",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "סרטים",
|
||||
"series": "סדרות",
|
||||
"boxsets": "אוסף",
|
||||
"playlists": "Playlists",
|
||||
"items": "פריטים"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "פוסטר",
|
||||
"cover": "עטיפה",
|
||||
"show_titles": "הצג כותרות",
|
||||
"show_stats": "הצג סטטיסטיקה"
|
||||
"show_stats": "הצג סטטיסטיקה",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "סגנונות",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "מיין לפי",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "סדר מיון",
|
||||
"tags": "תגים"
|
||||
"tags": "תגים",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "אין קישורים"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "שגיאה",
|
||||
"failed_to_get_stream_url": "נכשל בהשגת קישור הזרם",
|
||||
"an_error_occured_while_playing_the_video": "קרתה תקלה במהלך הניגון של הקובץ. בדוק את הלוגים בהגדרות.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "נכשל ביצירת זרם עבור Chromecast",
|
||||
"message_from_server": "הודעה מהשרת: {{message}}",
|
||||
"next_episode": "הפרק הבא",
|
||||
"refresh_tracks": "רענן רצועות",
|
||||
"audio_tracks": "רצועות שמע:",
|
||||
"playback_state": "מצב ניגון:",
|
||||
"index": "מיקום:",
|
||||
"continue_watching": "המשך לצפות",
|
||||
"go_back": "חזור",
|
||||
"downloaded_file_title": "You have this file downloaded",
|
||||
"downloaded_file_message": "Do you want to play the downloaded file?",
|
||||
"downloaded_file_yes": "Yes",
|
||||
"downloaded_file_no": "No",
|
||||
"downloaded_file_cancel": "Cancel"
|
||||
"downloaded_file_yes": "כן",
|
||||
"downloaded_file_no": "לא",
|
||||
"downloaded_file_cancel": "Cancel",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "הבא בתור",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "סדרות",
|
||||
"seasons": "עונות",
|
||||
"season": "עונה",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "אין פרקים בעונה זו",
|
||||
"overview": "סקירה",
|
||||
"more_with": "עוד עם {{name}}",
|
||||
@@ -626,11 +655,21 @@
|
||||
"more_details": "פרטים נוספים",
|
||||
"media_options": "Media Options",
|
||||
"quality": "איכות",
|
||||
"audio": "אודיו",
|
||||
"subtitles": "כתובית",
|
||||
"audio": "שמע",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "הצג עוד",
|
||||
"show_less": "הצג פחות",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "הופיע ב-",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "נכשל בטעינת פריט",
|
||||
"none": "ללא",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "הורד {{item_count}} פריטים",
|
||||
"download_unwatched_only": "רק שלא נצפו",
|
||||
"download_button": "הורד"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "הבא",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "סרטים",
|
||||
"sports": "ספורט",
|
||||
"for_kids": "לילדים",
|
||||
"news": "חדשות"
|
||||
"news": "חדשות",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "אשר",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Decline",
|
||||
"requested_by": "Requested by {{user}}",
|
||||
"unknown_user": "Unknown User",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "שרת ה-Seerr לא תואם את הגרסה המינימלית הנרדת! אנא עדכן לפחות לגרסה 2.0.0",
|
||||
"jellyseerr_test_failed": "בדיקת ה-Seerr נכשלה. אנא נסה שוב.",
|
||||
@@ -716,24 +778,21 @@
|
||||
"search": "חיפוש",
|
||||
"library": "ספריה",
|
||||
"custom_links": "קישורים מותאמים אישית",
|
||||
"favorites": "מועדפים"
|
||||
"favorites": "מועדפים",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"title": "מוזיקה",
|
||||
"tabs": {
|
||||
"suggestions": "Suggestions",
|
||||
"albums": "Albums",
|
||||
"albums": "אלבומים",
|
||||
"artists": "Artists",
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -798,9 +857,9 @@
|
||||
"delete_button": "Delete",
|
||||
"remove_button": "Remove",
|
||||
"cancel_button": "Cancel",
|
||||
"name_label": "Name",
|
||||
"name_label": "שם",
|
||||
"name_placeholder": "Enter watchlist name",
|
||||
"description_label": "Description",
|
||||
"description_label": "תיאור",
|
||||
"description_placeholder": "Enter description (optional)",
|
||||
"is_public_label": "Public Watchlist",
|
||||
"is_public_description": "Allow others to view this watchlist",
|
||||
@@ -817,10 +876,10 @@
|
||||
"remove_from_watchlist": "Remove from Watchlist",
|
||||
"select_watchlist": "Select Watchlist",
|
||||
"create_new": "Create New Watchlist",
|
||||
"item": "item",
|
||||
"items": "items",
|
||||
"public": "Public",
|
||||
"private": "Private",
|
||||
"item": "פריט",
|
||||
"items": "פריטים",
|
||||
"public": "ציבורי",
|
||||
"private": "פרטי",
|
||||
"you": "You",
|
||||
"by_owner": "By another user",
|
||||
"not_found": "Watchlist not found",
|
||||
@@ -835,11 +894,41 @@
|
||||
"playback_speed": {
|
||||
"title": "Playback Speed",
|
||||
"apply_to": "Apply To",
|
||||
"speed": "Speed",
|
||||
"speed": "מהירות",
|
||||
"scope": {
|
||||
"media": "This media only",
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Hiba",
|
||||
"login_title": "Bejelentkezés",
|
||||
"login_to_title": "Bejelentkezés ide",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Felhasználónév",
|
||||
"password_placeholder": "Jelszó",
|
||||
"login_button": "Bejelentkezés",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Hoppá!",
|
||||
"error_message": "Valami nem stimmel.\nKérjük, jelentkezz ki, majd újra be.",
|
||||
"continue_watching": "Nézd Tovább",
|
||||
"continue": "Continue",
|
||||
"next_up": "Következő",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "Új a(z) {{libraryName}} könyvtárban",
|
||||
"suggested_movies": "Javasolt Filmek",
|
||||
"suggested_episodes": "Javasolt Epizódok",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Üdvözöljük a Streamyfinben",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Egy Ingyenes és Nyílt Forráskódú Jellyfin Kliens.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Beállítások",
|
||||
"log_out_button": "Kijelentkezés",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categories"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Appearance",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"hide_remote_session_button": "Hide Remote Session Button",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Visszatekerés Hossza",
|
||||
"seconds_unit": "mp"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Gesztusvezérlés",
|
||||
"horizontal_swipe_skip": "Vízszintes Húzás Ugráshoz",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Nincs",
|
||||
"OnlyForced": "Csak Kényszerített"
|
||||
},
|
||||
"text_color": "Szövegszín",
|
||||
"background_color": "Háttérszín",
|
||||
"outline_color": "Körvonal színe",
|
||||
"outline_thickness": "Körvonal Vastagsága",
|
||||
"background_opacity": "Háttér Áttetszőség",
|
||||
"outline_opacity": "Körvonal Áttetszőség",
|
||||
"bold_text": "Félkövér Szöveg",
|
||||
"colors": {
|
||||
"Black": "Fekete",
|
||||
"Gray": "Szürke",
|
||||
"Silver": "Ezüst",
|
||||
"White": "Fehér",
|
||||
"Maroon": "Sötétvörös",
|
||||
"Red": "Piros",
|
||||
"Fuchsia": "Fukszia",
|
||||
"Yellow": "Sárga",
|
||||
"Olive": "Oliva",
|
||||
"Green": "Zöld",
|
||||
"Teal": "Türkiz",
|
||||
"Lime": "Lime",
|
||||
"Purple": "Lila",
|
||||
"Navy": "Sötétkék",
|
||||
"Blue": "Kék",
|
||||
"Aqua": "Türkizkék"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Nincs",
|
||||
"Thin": "Vékony",
|
||||
"Normal": "Normál",
|
||||
"Thick": "Vastag"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Egyéb",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Ismeretlen"
|
||||
},
|
||||
"safe_area_in_controls": "Biztonsági Sáv a Vezérlőkben",
|
||||
"video_player": "Videólejátszó",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Kísérleti + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Egyéni Menülinkek Megjelenítése",
|
||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||
"hide_libraries": "Könyvtárak Elrejtése",
|
||||
"select_liraries_you_want_to_hide": "Válaszd ki azokat a könyvtárakat, amelyeket el szeretnél rejteni a Könyvtár fülön és a kezdőlapon.",
|
||||
"disable_haptic_feedback": "Haptikus Visszajelzés Letiltása",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Max. Auto. Epizódlejátszás",
|
||||
"disabled": "Letiltva"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Letöltések"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Tudj Meg Többet a Marlinról",
|
||||
"save_button": "Mentés",
|
||||
"toasts": {
|
||||
"saved": "Mentve",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "Mentve"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Minden Letöltött Fájl Törlése",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Naplók Exportálása",
|
||||
"click_for_more_info": "Kattints a Részletekért",
|
||||
"level": "Szint",
|
||||
"no_logs_available": "Nincsenek Naplók",
|
||||
"delete_all_logs": "Összes Napló Törlése"
|
||||
"no_logs_available": "Nincsenek Naplók"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Nyelvek",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "Rendszer"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Hiba a Fájlok Törlésekor",
|
||||
"background_downloads_enabled": "Background downloads enabled",
|
||||
"background_downloads_disabled": "Background downloads disabled"
|
||||
"error_deleting_files": "Hiba a Fájlok Törlésekor"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Letöltések",
|
||||
"tvseries": "Sorozatok",
|
||||
"movies": "Filmek",
|
||||
"queue": "Sor",
|
||||
"other_media": "Other media",
|
||||
"queue_hint": "A sor és a letöltések az alkalmazás újraindításakor elvesznek",
|
||||
"no_items_in_queue": "Nincs Elem a Sorban",
|
||||
"no_downloaded_items": "Nincsenek Letöltött Elemek",
|
||||
"delete_all_movies_button": "Összes Film Törlése",
|
||||
"delete_all_tvseries_button": "Összes Sorozat Törlése",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "Az új frissítéshez az összes tartalmat újra le kell tölteni. Kérjük, töröld az összes letöltött tartalmat, majd próbáld újra.",
|
||||
"back": "Vissza",
|
||||
"delete": "Törlés",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Hiba Történt",
|
||||
"could_not_get_stream_url_from_jellyfin": "Nem sikerült lekérni a stream URL-t a Jellyfinből",
|
||||
"eta": "Várható Idő: {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Nem Sikerült Törölni Az Összes Sorozatot",
|
||||
"deleted_media_successfully": "Deleted other media Successfully!",
|
||||
"failed_to_delete_media": "Failed to Delete other media",
|
||||
"download_deleted": "Letöltés Törölve",
|
||||
"download_cancelled": "Download Cancelled",
|
||||
"could_not_delete_download": "Nem Sikerült Törölni a Letöltést",
|
||||
"download_paused": "Letöltés Szüneteltetve",
|
||||
"could_not_pause_download": "Nem Sikerült Szüneteltetni a Letöltést",
|
||||
"download_resumed": "Letöltés Folytatva",
|
||||
"could_not_resume_download": "Nem Sikerült Folytatni a Letöltést",
|
||||
"download_completed": "Letöltés Befejezve",
|
||||
"download_failed": "Download Failed",
|
||||
"download_failed_for_item": "A(z) {{item}} letöltése sikertelen - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} is already downloading",
|
||||
"all_files_deleted": "All Downloads Deleted Successfully",
|
||||
"files_deleted_by_type": "{{count}} {{type}} deleted",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Minden fájl, mappa és feladat sikeresen törölve",
|
||||
"failed_to_clean_cache_directory": "Failed to clean cache directory",
|
||||
"could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}",
|
||||
"go_to_downloads": "Ugrás a Letöltésekhez",
|
||||
"file_deleted": "{{item}} deleted"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Select",
|
||||
"no_trailer_available": "No trailer available",
|
||||
"video": "Videó",
|
||||
"audio": "Hang",
|
||||
"subtitle": "Felirat",
|
||||
"play": "Play",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "None",
|
||||
"track": "Track",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Keresés...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "Filmek",
|
||||
"series": "Sorozatok",
|
||||
"boxsets": "Gyűjtemények",
|
||||
"playlists": "Playlists",
|
||||
"items": "Elemek"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Poszter",
|
||||
"cover": "Borító",
|
||||
"show_titles": "Címek Megjelenítése",
|
||||
"show_stats": "Statisztikák Megjelenítése"
|
||||
"show_stats": "Statisztikák Megjelenítése",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Műfajok",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Rendezés",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "Rendezés Iránya",
|
||||
"tags": "Címkék"
|
||||
"tags": "Címkék",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Nincsenek Linkek"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Hiba",
|
||||
"failed_to_get_stream_url": "Nem sikerült lekérni a stream URL-t",
|
||||
"an_error_occured_while_playing_the_video": "Hiba történt a videó lejátszása közben. Ellenőrizd a naplókat a beállításokban.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "A Chromecast stream létrehozása sikertelen volt",
|
||||
"message_from_server": "Üzenet a szervertől: {{message}}",
|
||||
"next_episode": "Következő Epizód",
|
||||
"refresh_tracks": "Sávok Frissítése",
|
||||
"audio_tracks": "Hangsávok:",
|
||||
"playback_state": "Lejátszás Állapota:",
|
||||
"index": "Index:",
|
||||
"continue_watching": "Folytatás",
|
||||
"go_back": "Vissza",
|
||||
"downloaded_file_title": "You have this file downloaded",
|
||||
"downloaded_file_message": "Do you want to play the downloaded file?",
|
||||
"downloaded_file_yes": "Yes",
|
||||
"downloaded_file_no": "No",
|
||||
"downloaded_file_cancel": "Cancel"
|
||||
"downloaded_file_cancel": "Cancel",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Következő",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Sorozat",
|
||||
"seasons": "Évadok",
|
||||
"season": "Évad",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "Ehhez az évadhoz nincs epizód",
|
||||
"overview": "Áttekintés",
|
||||
"more_with": "További {{name}} Alkotások",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Media Options",
|
||||
"quality": "Minőség",
|
||||
"audio": "Hang",
|
||||
"subtitles": "Felirat",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Több Megjelenítése",
|
||||
"show_less": "Kevesebb Megjelenítése",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Megjelent:",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Nem Sikerült Betölteni az Elemet",
|
||||
"none": "Nincs",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "{{item_count}} Elem Letöltése",
|
||||
"download_unwatched_only": "Csak Nem Megtekintett",
|
||||
"download_button": "Letöltés"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Következő",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Filmek",
|
||||
"sports": "Sport",
|
||||
"for_kids": "Gyerekeknek",
|
||||
"news": "Hírek"
|
||||
"news": "Hírek",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Megerősítés",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Decline",
|
||||
"requested_by": "Requested by {{user}}",
|
||||
"unknown_user": "Unknown User",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "A Jellyseerr szerver nem felel meg a minimum verziókövetelményeknek! Kérlek frissítsd legalább 2.0.0-ra.",
|
||||
"jellyseerr_test_failed": "A Jellyseerr teszt sikertelen. Próbáld újra.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Keresés",
|
||||
"library": "Könyvtár",
|
||||
"custom_links": "Egyéni Linkek",
|
||||
"favorites": "Kedvencek"
|
||||
"favorites": "Kedvencek",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Errore",
|
||||
"login_title": "Accesso",
|
||||
"login_to_title": "Accedi a",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Nome utente",
|
||||
"password_placeholder": "Password",
|
||||
"login_button": "Accedi",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Ops!",
|
||||
"error_message": "Qualcosa è andato storto. \nEffetturare il logout e riaccedere.",
|
||||
"continue_watching": "Continua a guardare",
|
||||
"continue": "Continue",
|
||||
"next_up": "Prossimo",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "Aggiunti di recente a {{libraryName}}",
|
||||
"suggested_movies": "Film consigliati",
|
||||
"suggested_episodes": "Episodi consigliati",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Benvenuto a Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Un client gratuito e open-source per Jellyfin.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Impostazioni",
|
||||
"log_out_button": "Esci",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categorie"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Aspetto",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"hide_remote_session_button": "Hide Remote Session Button",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -136,7 +160,7 @@
|
||||
"not_connected_to_wifi": "Not connected to WiFi",
|
||||
"no_networks_configured": "No networks configured",
|
||||
"add_network_hint": "Add your home WiFi network to enable auto-switching",
|
||||
"current_wifi": "Current WiFi",
|
||||
"current_wifi": "WiFi Attuale",
|
||||
"using_url": "Sta utilizzando",
|
||||
"local": "Local URL",
|
||||
"remote": "Remote URL",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Lunghezza del riavvolgimento",
|
||||
"seconds_unit": "secondi"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Controlli Gesture",
|
||||
"horizontal_swipe_skip": "Scorrimento orizzontale per saltare",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Nessuno",
|
||||
"OnlyForced": "Solo forzati"
|
||||
},
|
||||
"text_color": "Colore Del Testo",
|
||||
"background_color": "Colore Di Sfondo",
|
||||
"outline_color": "Colore Contorno",
|
||||
"outline_thickness": "Spessore Contorno",
|
||||
"background_opacity": "Opacità Dello Sfondo",
|
||||
"outline_opacity": "Opacità Contorno",
|
||||
"bold_text": "Bold Text",
|
||||
"colors": {
|
||||
"Black": "Nero",
|
||||
"Gray": "Grigio",
|
||||
"Silver": "Argento",
|
||||
"White": "Bianco",
|
||||
"Maroon": "Maroon",
|
||||
"Red": "Rosso",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Giallo",
|
||||
"Olive": "Olive",
|
||||
"Green": "Verde",
|
||||
"Teal": "Teal",
|
||||
"Lime": "Lime",
|
||||
"Purple": "Viola",
|
||||
"Navy": "Marina",
|
||||
"Blue": "Blu",
|
||||
"Aqua": "Aqua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Nessuno",
|
||||
"Thin": "Sottile",
|
||||
"Normal": "Normale",
|
||||
"Thick": "Spessa"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Altro",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Sconosciuto"
|
||||
},
|
||||
"safe_area_in_controls": "Area sicura per i controlli",
|
||||
"video_player": "Video player",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Sperimentale + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Mostra i link del menu personalizzato",
|
||||
"show_large_home_carousel": "Mostra Carosello Grande nella Home (beta)",
|
||||
"hide_libraries": "Nascondi Librerie",
|
||||
"select_liraries_you_want_to_hide": "Selezionate le librerie che volete nascondere dalla scheda Libreria e dalle sezioni della pagina iniziale.",
|
||||
"disable_haptic_feedback": "Disabilita il feedback aptico",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Numero Massimo Di Episodi Riproduzione Automatica",
|
||||
"disabled": "Disabilitato"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Scaricamento"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Leggi di più su Marlin.",
|
||||
"save_button": "Salva",
|
||||
"toasts": {
|
||||
"saved": "Salvato",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "Salvato"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Cancella Tutti i File Scaricati",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Export logs",
|
||||
"click_for_more_info": "Click for more info",
|
||||
"level": "Livello",
|
||||
"no_logs_available": "Nessun log disponibile",
|
||||
"delete_all_logs": "Cancella tutti i log"
|
||||
"no_logs_available": "Nessun log disponibile"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Lingue",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "Sistema"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Errore nella cancellazione dei file",
|
||||
"background_downloads_enabled": "Scaricamento in background abilitato",
|
||||
"background_downloads_disabled": "Scaricamento in background disabilitato"
|
||||
"error_deleting_files": "Errore nella cancellazione dei file"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Scaricati",
|
||||
"tvseries": "Serie TV",
|
||||
"movies": "Film",
|
||||
"queue": "Coda",
|
||||
"other_media": "Altri supporti",
|
||||
"queue_hint": "La coda e gli elementi scaricati saranno persi con il riavvio dell'app",
|
||||
"no_items_in_queue": "Nessun elemento in coda",
|
||||
"no_downloaded_items": "Nessun elemento scaricato",
|
||||
"delete_all_movies_button": "Cancella tutti i film",
|
||||
"delete_all_tvseries_button": "Cancella tutte le serie TV",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "Il nuovo aggiornamento richiede di scaricare nuovamente i contenuti. Rimuovere tutti i contenuti scaricati e riprovare.",
|
||||
"back": "Indietro",
|
||||
"delete": "Cancella",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Qualcosa è andato storto",
|
||||
"could_not_get_stream_url_from_jellyfin": "Impossibile ottenere l'URL del flusso da Jellyfin",
|
||||
"eta": "Tempo stimato di completamento {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Impossibile eliminare tutte le serie TV",
|
||||
"deleted_media_successfully": "Eliminato altri supporti con successo!",
|
||||
"failed_to_delete_media": "Impossibile eliminare altri media",
|
||||
"download_deleted": "Download Eliminato",
|
||||
"download_cancelled": "Scaricamento annullato",
|
||||
"could_not_delete_download": "Impossibile Eliminare Il Download",
|
||||
"download_paused": "Download In Pausa",
|
||||
"could_not_pause_download": "Impossibile Sbloccare Il Download",
|
||||
"download_resumed": "Download Ripreso",
|
||||
"could_not_resume_download": "Impossibile Riprendere Il Download",
|
||||
"download_completed": "Scaricamento completato",
|
||||
"download_failed": "Scaricamento non riuscito",
|
||||
"download_failed_for_item": "Scaricamento fallito per {{item}} - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} è già in download",
|
||||
"all_files_deleted": "Tutti i Download Eliminati con Successo",
|
||||
"files_deleted_by_type": "{{count}} {{type}} cancellati",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Tutti i file, le cartelle e i processi sono stati eliminati con successo.",
|
||||
"failed_to_clean_cache_directory": "Pulizia della directory della cache non riuscita",
|
||||
"could_not_get_download_url_for_item": "Impossibile ottenere l'URL di download per {{itemName}}",
|
||||
"go_to_downloads": "Vai agli elementi scaricati",
|
||||
"file_deleted": "{{item}} cancellato"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Seleziona",
|
||||
"no_trailer_available": "Nessun trailer disponibile",
|
||||
"video": "Video",
|
||||
"audio": "Audio",
|
||||
"subtitle": "Sottotitoli",
|
||||
"play": "Gioca",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "Nulla",
|
||||
"track": "Traccia",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Cerca...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "film",
|
||||
"series": "serie TV",
|
||||
"boxsets": "cofanetti",
|
||||
"playlists": "Playlists",
|
||||
"items": "elementi"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Poster",
|
||||
"cover": "Copertina",
|
||||
"show_titles": "Mostra titoli",
|
||||
"show_stats": "Mostra statistiche"
|
||||
"show_stats": "Mostra statistiche",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Generi",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Ordina per",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "Criterio di ordinamento",
|
||||
"tags": "Tag"
|
||||
"tags": "Tag",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Nessun link"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Errore",
|
||||
"failed_to_get_stream_url": "Impossibile ottenere l'URL dello stream",
|
||||
"an_error_occured_while_playing_the_video": "Si è verificato un errore durante la riproduzione del video. Controllare i log nelle impostazioni.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Impossibile creare uno stream per Chromecast",
|
||||
"message_from_server": "Messaggio dal server",
|
||||
"next_episode": "Prossimo Episodio",
|
||||
"refresh_tracks": "Aggiorna tracce",
|
||||
"audio_tracks": "Tracce audio:",
|
||||
"playback_state": "Stato della riproduzione:",
|
||||
"index": "Indice:",
|
||||
"continue_watching": "Continua a guardare",
|
||||
"go_back": "Indietro",
|
||||
"downloaded_file_title": "You have this file downloaded",
|
||||
"downloaded_file_message": "Do you want to play the downloaded file?",
|
||||
"downloaded_file_yes": "Yes",
|
||||
"downloaded_file_no": "No",
|
||||
"downloaded_file_cancel": "Cancel"
|
||||
"downloaded_file_cancel": "Cancel",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Il prossimo",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Serie",
|
||||
"seasons": "Stagioni",
|
||||
"season": "Stagione",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "Nessun episodio per questa stagione",
|
||||
"overview": "Panoramica",
|
||||
"more_with": "Altri con {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Opzioni Media",
|
||||
"quality": "Qualità",
|
||||
"audio": "Audio",
|
||||
"subtitles": "Sottotitoli",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Mostra di più",
|
||||
"show_less": "Mostra di meno",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Apparso in",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Impossibile caricare l'elemento",
|
||||
"none": "Nessuno",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Scarica {{item_count}} elementi",
|
||||
"download_unwatched_only": "Solo Non Visti",
|
||||
"download_button": "Scarica"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Prossimo",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Film",
|
||||
"sports": "Sport",
|
||||
"for_kids": "Per Bambini",
|
||||
"news": "Notiziari"
|
||||
"news": "Notiziari",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Conferma",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Rifiuta",
|
||||
"requested_by": "Richiesto da {{user}}",
|
||||
"unknown_user": "Utente Sconosciuto",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Il server Jellyseerr non soddisfa i requisiti minimi di versione! Aggiornare almeno alla versione 2.0.0.",
|
||||
"jellyseerr_test_failed": "Il test di Jellyseerr non è riuscito. Riprovare.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Cerca",
|
||||
"library": "Libreria",
|
||||
"custom_links": "Collegamenti personalizzati",
|
||||
"favorites": "Preferiti"
|
||||
"favorites": "Preferiti",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "エラー",
|
||||
"login_title": "ログイン",
|
||||
"login_to_title": "ログイン先",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "ユーザー名",
|
||||
"password_placeholder": "パスワード",
|
||||
"login_button": "ログイン",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "おっと!",
|
||||
"error_message": "何か問題が発生しました。\nログアウトして再度ログインしてください。",
|
||||
"continue_watching": "続きを見る",
|
||||
"continue": "Continue",
|
||||
"next_up": "次の動画",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "{{libraryName}}に最近追加された",
|
||||
"suggested_movies": "おすすめ映画",
|
||||
"suggested_episodes": "おすすめエピソード",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Streamyfinへようこそ",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Jellyfinのためのフリーでオープンソースのクライアント。",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "設定",
|
||||
"log_out_button": "ログアウト",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "カテゴリ"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Appearance",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"hide_remote_session_button": "Hide Remote Session Button",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "巻き戻しの長さ",
|
||||
"seconds_unit": "s"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "ジェスチャーコントロール",
|
||||
"horizontal_swipe_skip": "水平方向にスワイプしてスキップ",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "なし",
|
||||
"OnlyForced": "強制のみ"
|
||||
},
|
||||
"text_color": "テキストの色",
|
||||
"background_color": "背景色",
|
||||
"outline_color": "アウトラインの色",
|
||||
"outline_thickness": "概要 厚さ",
|
||||
"background_opacity": "背景の透明度",
|
||||
"outline_opacity": "アウトラインの透明度",
|
||||
"bold_text": "Bold Text",
|
||||
"colors": {
|
||||
"Black": "ブラック",
|
||||
"Gray": "グレー",
|
||||
"Silver": "シルバー",
|
||||
"White": "白",
|
||||
"Maroon": "Maroon",
|
||||
"Red": "赤",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "黄色",
|
||||
"Olive": "オリーブ",
|
||||
"Green": "緑",
|
||||
"Teal": "ティール",
|
||||
"Lime": "黄緑",
|
||||
"Purple": "パープル",
|
||||
"Navy": "海軍format@@0",
|
||||
"Blue": "青",
|
||||
"Aqua": "Aqua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "なし",
|
||||
"Thin": "細いです",
|
||||
"Normal": "標準",
|
||||
"Thick": "濃厚な"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "その他",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "不明"
|
||||
},
|
||||
"safe_area_in_controls": "コントロールの安全エリア",
|
||||
"video_player": "Video player",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Experimental + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "カスタムメニューのリンクを表示",
|
||||
"show_large_home_carousel": "大きなヒーロー(Beta)",
|
||||
"hide_libraries": "ライブラリを非表示",
|
||||
"select_liraries_you_want_to_hide": "ライブラリタブとホームページセクションから非表示にするライブラリを選択します。",
|
||||
"disable_haptic_feedback": "触覚フィードバックを無効にする",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "自動再生エピソードの最大数",
|
||||
"disabled": "無効"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "ダウンロード"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Marlinについて詳しく読む。",
|
||||
"save_button": "保存",
|
||||
"toasts": {
|
||||
"saved": "保存しました",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "保存しました"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "すべてのダウンロードファイルを削除",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "イントロ",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Export logs",
|
||||
"click_for_more_info": "Click for more info",
|
||||
"level": "レベル",
|
||||
"no_logs_available": "ログがありません",
|
||||
"delete_all_logs": "すべてのログを削除"
|
||||
"no_logs_available": "ログがありません"
|
||||
},
|
||||
"languages": {
|
||||
"title": "言語",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "システム"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "ファイルの削除エラー",
|
||||
"background_downloads_enabled": "バックグラウンドでのダウンロードは有効です",
|
||||
"background_downloads_disabled": "バックグラウンドでのダウンロードは無効です"
|
||||
"error_deleting_files": "ファイルの削除エラー"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "ダウンロード",
|
||||
"tvseries": "TVシリーズ",
|
||||
"movies": "映画",
|
||||
"queue": "キュー",
|
||||
"other_media": "その他のメディア",
|
||||
"queue_hint": "アプリを再起動するとキューとダウンロードは失われます",
|
||||
"no_items_in_queue": "キューにアイテムがありません",
|
||||
"no_downloaded_items": "ダウンロードしたアイテムはありません",
|
||||
"delete_all_movies_button": "すべての映画を削除",
|
||||
"delete_all_tvseries_button": "すべてのシリーズを削除",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "新しいアップデートではコンテンツを再度ダウンロードする必要があります。ダウンロードしたコンテンツをすべて削除してもう一度お試しください。",
|
||||
"back": "戻る",
|
||||
"delete": "削除",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "問題が発生しました",
|
||||
"could_not_get_stream_url_from_jellyfin": "JellyfinからストリームURLを取得できませんでした",
|
||||
"eta": "ETA {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "すべてのシリーズを削除できませんでした",
|
||||
"deleted_media_successfully": "他のメディアを削除しました!",
|
||||
"failed_to_delete_media": "他のメディアの削除に失敗しました",
|
||||
"download_deleted": "ダウンロードが削除されました",
|
||||
"download_cancelled": "ダウンロードをキャンセルしました",
|
||||
"could_not_delete_download": "ダウンロードを削除できませんでした",
|
||||
"download_paused": "ダウンロードを一時停止しました",
|
||||
"could_not_pause_download": "ダウンロードを一時停止できませんでした",
|
||||
"download_resumed": "ダウンロード再開",
|
||||
"could_not_resume_download": "ダウンロードを再開できませんでした",
|
||||
"download_completed": "ダウンロードが完了しました",
|
||||
"download_failed": "ダウンロードに失敗しました",
|
||||
"download_failed_for_item": "{{item}}のダウンロードに失敗しました - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} is already downloading",
|
||||
"all_files_deleted": "All Downloads Deleted Successfully",
|
||||
"files_deleted_by_type": "{{count}} {{type}} deleted",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "すべてのファイル、フォルダ、ジョブが正常に削除されました",
|
||||
"failed_to_clean_cache_directory": "キャッシュディレクトリのクリーンアップに失敗しました",
|
||||
"could_not_get_download_url_for_item": "{{itemName}} のダウンロードURLを取得できませんでした",
|
||||
"go_to_downloads": "ダウンロードに移動",
|
||||
"file_deleted": "{{item}} deleted"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "選択",
|
||||
"no_trailer_available": "トレーラーがありません",
|
||||
"video": "映像",
|
||||
"audio": "音声",
|
||||
"subtitle": "字幕",
|
||||
"play": "再生",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "None",
|
||||
"track": "Track",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "検索...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "映画",
|
||||
"series": "シリーズ",
|
||||
"boxsets": "ボックスセット",
|
||||
"playlists": "Playlists",
|
||||
"items": "アイテム"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "ポスター",
|
||||
"cover": "カバー",
|
||||
"show_titles": "タイトルの表示",
|
||||
"show_stats": "統計を表示"
|
||||
"show_stats": "統計を表示",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "ジャンル",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "ソート",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "ソート順",
|
||||
"tags": "タグ"
|
||||
"tags": "タグ",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "リンクがありません"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "エラー",
|
||||
"failed_to_get_stream_url": "ストリームURLを取得できませんでした",
|
||||
"an_error_occured_while_playing_the_video": "動画の再生中にエラーが発生しました。設定でログを確認してください。",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Chromecastのストリームを作成できませんでした",
|
||||
"message_from_server": "サーバーからのメッセージ",
|
||||
"next_episode": "次のエピソード",
|
||||
"refresh_tracks": "トラックを更新",
|
||||
"audio_tracks": "音声トラック:",
|
||||
"playback_state": "再生状態:",
|
||||
"index": "インデックス:",
|
||||
"continue_watching": "視聴を続ける",
|
||||
"go_back": "戻る",
|
||||
"downloaded_file_title": "You have this file downloaded",
|
||||
"downloaded_file_message": "Do you want to play the downloaded file?",
|
||||
"downloaded_file_yes": "Yes",
|
||||
"downloaded_file_no": "No",
|
||||
"downloaded_file_cancel": "Cancel"
|
||||
"downloaded_file_cancel": "Cancel",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "次",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "シリーズ",
|
||||
"seasons": "シーズン",
|
||||
"season": "シーズン",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "このシーズンのエピソードはありません",
|
||||
"overview": "ストーリー",
|
||||
"more_with": "{{name}}の詳細",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Media Options",
|
||||
"quality": "画質",
|
||||
"audio": "音声",
|
||||
"subtitles": "字幕",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "もっと見る",
|
||||
"show_less": "少なく表示",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "出演作品",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "アイテムを読み込めませんでした",
|
||||
"none": "なし",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "{{item_count}}のアイテムをダウンロード",
|
||||
"download_unwatched_only": "未視聴のみ",
|
||||
"download_button": "ダウンロード"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "次",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "映画",
|
||||
"sports": "スポーツ",
|
||||
"for_kids": "子供向け",
|
||||
"news": "ニュース"
|
||||
"news": "ニュース",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "確認",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Decline",
|
||||
"requested_by": "Requested by {{user}}",
|
||||
"unknown_user": "Unknown User",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Jellyseerrサーバーは最小バージョン要件を満たしていません。少なくとも 2.0.0 に更新してください。",
|
||||
"jellyseerr_test_failed": "Jellyseerrテストに失敗しました。もう一度お試しください。",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "検索",
|
||||
"library": "ライブラリ",
|
||||
"custom_links": "カスタムリンク",
|
||||
"favorites": "お気に入り"
|
||||
"favorites": "お気に入り",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,187 +1,227 @@
|
||||
{
|
||||
"login": {
|
||||
"username_required": "Username Is Required",
|
||||
"error_title": "Error",
|
||||
"login_title": "Log In",
|
||||
"login_to_title": "Log in to",
|
||||
"username_placeholder": "Username",
|
||||
"password_placeholder": "Password",
|
||||
"login_button": "Log In",
|
||||
"quick_connect": "Quick Connect",
|
||||
"enter_code_to_login": "Enter code {{code}} to login",
|
||||
"failed_to_initiate_quick_connect": "Failed to initiate Quick Connect",
|
||||
"got_it": "Got It",
|
||||
"connection_failed": "Connection Failed",
|
||||
"could_not_connect_to_server": "Could not connect to the server. Please check the URL and your network connection.",
|
||||
"an_unexpected_error_occured": "An Unexpected Error Occurred",
|
||||
"change_server": "Change Server",
|
||||
"invalid_username_or_password": "Invalid Username or Password",
|
||||
"user_does_not_have_permission_to_log_in": "User does not have permission to log in",
|
||||
"server_is_taking_too_long_to_respond_try_again_later": "Server is taking too long to respond, try again later",
|
||||
"server_received_too_many_requests_try_again_later": "Server received too many requests, try again later.",
|
||||
"there_is_a_server_error": "There is a server error",
|
||||
"an_unexpected_error_occured_did_you_enter_the_correct_url": "An unexpected error occurred. Did you enter the server URL correctly?",
|
||||
"username_required": "사용자 이름이 필요합니다",
|
||||
"error_title": "오류",
|
||||
"login_title": "로그인",
|
||||
"login_to_title": "다음 서비스에 연결 중",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "사용자 이름",
|
||||
"password_placeholder": "비밀번호",
|
||||
"login_button": "로그인",
|
||||
"quick_connect": "퀵 커넥트",
|
||||
"enter_code_to_login": "로그인 하기 위해 코드{{code}}를 입력하세요",
|
||||
"failed_to_initiate_quick_connect": "Quick Connect 연결을 시작하는 데 실패했습니다",
|
||||
"got_it": "성공",
|
||||
"connection_failed": "연결 실패",
|
||||
"could_not_connect_to_server": "서버에 연결되지 않았습니다. URL과 네트워크 상태를 확인하세요.",
|
||||
"an_unexpected_error_occured": "예기치 않은 오류가 발생했습니다",
|
||||
"change_server": "서버 변경",
|
||||
"invalid_username_or_password": "잘못된 아이디 혹은 비밀번호입니다",
|
||||
"user_does_not_have_permission_to_log_in": "로그인 하기 위한 권한이 없습니다",
|
||||
"server_is_taking_too_long_to_respond_try_again_later": "서버 응답이 너무 느립니다. 나중에 다시 시도하세요",
|
||||
"server_received_too_many_requests_try_again_later": "서버가 너무 많은 요청을 받았습니다. 나중에 다시 시도하세요.",
|
||||
"there_is_a_server_error": "서버 에러",
|
||||
"an_unexpected_error_occured_did_you_enter_the_correct_url": "예기치 않은 오류가 발생했습니다. 서버 URL을 올바르게 입력하셨습니까?",
|
||||
"too_old_server_text": "Unsupported Jellyfin Server Discovered",
|
||||
"too_old_server_description": "Please update Jellyfin to the latest version"
|
||||
},
|
||||
"server": {
|
||||
"enter_url_to_jellyfin_server": "Enter the URL to your Jellyfin server",
|
||||
"server_url_placeholder": "http(s)://your-server.com",
|
||||
"connect_button": "Connect",
|
||||
"previous_servers": "Previous Servers",
|
||||
"clear_button": "Clear all",
|
||||
"swipe_to_remove": "Swipe to remove",
|
||||
"search_for_local_servers": "Search for Local Servers",
|
||||
"searching": "Searching...",
|
||||
"servers": "Servers",
|
||||
"saved": "Saved",
|
||||
"session_expired": "Session Expired",
|
||||
"please_login_again": "Your saved session has expired. Please log in again.",
|
||||
"remove_saved_login": "Remove Saved Login",
|
||||
"remove_saved_login_description": "This will remove your saved credentials for this server. You'll need to enter your username and password again next time.",
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"connect_button": "연결",
|
||||
"previous_servers": "이전 서버",
|
||||
"clear_button": "모두 지우기",
|
||||
"swipe_to_remove": "스와이프해서 지우기",
|
||||
"search_for_local_servers": "로컬 서버 찾기",
|
||||
"searching": "찾는 중...",
|
||||
"servers": "서버",
|
||||
"saved": "저장됨",
|
||||
"session_expired": "세션 만료됨",
|
||||
"please_login_again": "사용자 세션이 만료되었습니다. 다시 로그인하십시오.",
|
||||
"remove_saved_login": "저장된 로그인 정보 삭제",
|
||||
"remove_saved_login_description": "해당 서버에 저장된 자격 증명이 삭제됩니다. 다음에 접속할 때는 사용자 이름과 비밀번호를 다시 입력해야 합니다.",
|
||||
"accounts_count": "{{count}} 계정",
|
||||
"select_account": "계정 선택",
|
||||
"add_account": "계정 추가",
|
||||
"remove_account_description": "{{username}}에 저장된 자격 증명이 삭제됩니다.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
"save_for_later": "Save this account",
|
||||
"security_option": "Security Option",
|
||||
"no_protection": "No protection",
|
||||
"no_protection_desc": "Quick login without authentication",
|
||||
"pin_code": "PIN code",
|
||||
"pin_code_desc": "4-digit PIN required when switching",
|
||||
"password": "Re-enter password",
|
||||
"password_desc": "Password required when switching",
|
||||
"save_button": "Save",
|
||||
"cancel_button": "Cancel"
|
||||
"title": "계정 저장",
|
||||
"save_for_later": "이 계정 저장",
|
||||
"security_option": "보안 설정",
|
||||
"no_protection": "보안 없음",
|
||||
"no_protection_desc": "인증 없이 빠른 로그인",
|
||||
"pin_code": "PIN 코드",
|
||||
"pin_code_desc": "전환하려면 4자리 PIN 필요함",
|
||||
"password": "암호 확인",
|
||||
"password_desc": "전환하려면 비밀번호 필요함",
|
||||
"save_button": "저장",
|
||||
"cancel_button": "취소"
|
||||
},
|
||||
"pin": {
|
||||
"enter_pin": "Enter PIN",
|
||||
"enter_pin_for": "Enter PIN for {{username}}",
|
||||
"enter_4_digits": "Enter 4 digits",
|
||||
"invalid_pin": "Invalid PIN",
|
||||
"setup_pin": "Set Up PIN",
|
||||
"confirm_pin": "Confirm PIN",
|
||||
"pins_dont_match": "PINs don't match",
|
||||
"forgot_pin": "Forgot PIN?",
|
||||
"forgot_pin_desc": "Your saved credentials will be removed"
|
||||
"enter_pin": "PIN 입력",
|
||||
"enter_pin_for": "{{username}} PIN 입력",
|
||||
"enter_4_digits": "4자리 입력",
|
||||
"invalid_pin": "잘못된 PIN",
|
||||
"setup_pin": "PIN 설정",
|
||||
"confirm_pin": "PIN 확인",
|
||||
"pins_dont_match": "PIN이 일치하지 않습니다",
|
||||
"forgot_pin": "PIN을 잊으셨나요?",
|
||||
"forgot_pin_desc": "저장된 계정 정보가 삭제됩니다"
|
||||
},
|
||||
"password": {
|
||||
"enter_password": "Enter Password",
|
||||
"enter_password_for": "Enter password for {{username}}",
|
||||
"invalid_password": "Invalid password"
|
||||
"enter_password": "비밀번호 입력",
|
||||
"enter_password_for": "{{username}}의 비밀번호 입력",
|
||||
"invalid_password": "잘못된 비밀번호"
|
||||
},
|
||||
"home": {
|
||||
"checking_server_connection": "Checking server connection...",
|
||||
"no_internet": "No Internet",
|
||||
"no_items": "No Items",
|
||||
"no_internet_message": "No worries, you can still watch\ndownloaded content.",
|
||||
"checking_server_connection": "서버 연결 체크중...",
|
||||
"no_internet": "인터넷에 연결되지 않음",
|
||||
"no_items": "항목 없음",
|
||||
"no_internet_message": "걱정마세요. 다운로드 된 컨텐츠는 여전히 볼 수 있습니다.",
|
||||
"checking_server_connection_message": "Checking connection to server",
|
||||
"go_to_downloads": "Go to Downloads",
|
||||
"retry": "Retry",
|
||||
"server_unreachable": "Server Unreachable",
|
||||
"server_unreachable_message": "Could not reach the server.\nPlease check your network connection.",
|
||||
"oops": "Oops!",
|
||||
"error_message": "Something went wrong.\nPlease log out and in again.",
|
||||
"continue_watching": "Continue Watching",
|
||||
"next_up": "Next Up",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "Recently Added in {{libraryName}}",
|
||||
"suggested_movies": "Suggested Movies",
|
||||
"suggested_episodes": "Suggested Episodes",
|
||||
"retry": "재시도",
|
||||
"server_unreachable": "서버에 연결할 수 없음",
|
||||
"server_unreachable_message": "서버에 연결할 수 없습니다. 네트워크 상태를 체크하세요.",
|
||||
"oops": "이런!",
|
||||
"error_message": "문제가 발생했습니다.\n로그아웃 후 다시 로그인해 주세요.",
|
||||
"continue_watching": "이어서 보기",
|
||||
"continue": "Continue",
|
||||
"next_up": "다음 시청",
|
||||
"continue_and_next_up": "이어서 보기 & 다음 시청",
|
||||
"recently_added_in": "최근에 추가된 {{libraryName}}",
|
||||
"suggested_movies": "추천 영화",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Welcome to Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "A Free and Open-Source Client for Jellyfin.",
|
||||
"features_title": "Features",
|
||||
"features_description": "Streamyfin has a bunch of features and integrates with a wide array of software which you can find in the settings menu, these include:",
|
||||
"jellyseerr_feature_description": "Connect to your Seerr instance and request movies directly in the app.",
|
||||
"downloads_feature_title": "Downloads",
|
||||
"downloads_feature_description": "Download movies and tv-shows to view offline. Use either the default method or install the optimize server to download files in the background.",
|
||||
"chromecast_feature_description": "Cast movies and tv-shows to your Chromecast devices.",
|
||||
"centralised_settings_plugin_title": "Centralised Settings Plugin",
|
||||
"centralised_settings_plugin_description": "Configure settings from a centralised location on your Jellyfin server. All client settings for all users will be synced automatically.",
|
||||
"done_button": "Done",
|
||||
"go_to_settings_button": "Go to Settings",
|
||||
"read_more": "Read More"
|
||||
"welcome_to_streamyfin": "스트리미핀에 오신 것을 환영합니다",
|
||||
"a_free_and_open_source_client_for_jellyfin": "젤리핀을 위한 무료 오픈소스 클라이언트입니다.",
|
||||
"features_title": "기능",
|
||||
"features_description": "스트리미핀은 다양한 기능을 제공하며 설정 메뉴에서 확인할 수 있는 여러 소프트웨어와 통합됩니다. 이러한 소프트웨어에는 다음이 포함됩니다:",
|
||||
"jellyseerr_feature_description": "Seerr 인스턴스에 연결하여 앱에서 직접 영화를 요청할 수 있습니다.",
|
||||
"downloads_feature_title": "다운로드된 컨텐츠",
|
||||
"downloads_feature_description": "오프라인으로 보기위해 다운로드 하세요. 기본 다운로드 방식을 사용하거나, 백그라운드에서 파일을 다운로드하는 최적화 서버를 설치할 수 있습니다.",
|
||||
"chromecast_feature_description": "영화와 TV 프로그램을 Chromecast 기기로 전송하기",
|
||||
"centralised_settings_plugin_title": "중앙 설정 플러그인",
|
||||
"centralised_settings_plugin_description": "Jellyfin 서버의 중앙 집중식 위치에서 설정을 구성합니다. 모든 사용자의 모든 클라이언트 설정이 자동으로 동기화됩니다.",
|
||||
"done_button": "확인",
|
||||
"go_to_settings_button": "설정으로 이동",
|
||||
"read_more": "자세히 보기"
|
||||
},
|
||||
"settings": {
|
||||
"settings_title": "Settings",
|
||||
"log_out_button": "Log Out",
|
||||
"settings_title": "설정",
|
||||
"log_out_button": "로그아웃",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categories"
|
||||
"title": "카테고리"
|
||||
},
|
||||
"playback_controls": {
|
||||
"title": "Playback & Controls"
|
||||
"title": "재생 & 컨트롤"
|
||||
},
|
||||
"audio_subtitles": {
|
||||
"title": "Audio & Subtitles"
|
||||
"title": "오디오 & 자막"
|
||||
},
|
||||
"appearance": {
|
||||
"title": "Appearance",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"title": "화면 스타일",
|
||||
"merge_next_up_continue_watching": "[이어보기]와 [다음 보기] 합치기",
|
||||
"hide_remote_session_button": "원격 세션 버튼 숨기기",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
"local_network": "Local Network",
|
||||
"auto_switch_enabled": "Auto-switch when at home",
|
||||
"auto_switch_description": "Automatically switch to local URL when connected to home WiFi",
|
||||
"local_url": "Local URL",
|
||||
"local_url_hint": "Enter your local server address (e.g., http://192.168.1.100:8096)",
|
||||
"title": "네트워크",
|
||||
"local_network": "로컬 네트워크",
|
||||
"auto_switch_enabled": "홈 네트워크 자동 전환",
|
||||
"auto_switch_description": "홈 WiFi에 연결되었을 때 로컬 URL로 자동 전환",
|
||||
"local_url": "로컬 URL",
|
||||
"local_url_hint": "로컬 서버 주소를 입력하세요 (e.g., http://192.168.1.100:8096)",
|
||||
"local_url_placeholder": "http://192.168.1.100:8096",
|
||||
"home_wifi_networks": "Home WiFi Networks",
|
||||
"add_current_network": "Add \"{{ssid}}\"",
|
||||
"not_connected_to_wifi": "Not connected to WiFi",
|
||||
"no_networks_configured": "No networks configured",
|
||||
"add_network_hint": "Add your home WiFi network to enable auto-switching",
|
||||
"current_wifi": "Current WiFi",
|
||||
"using_url": "Using",
|
||||
"local": "Local URL",
|
||||
"remote": "Remote URL",
|
||||
"not_connected": "Not connected",
|
||||
"current_server": "Current Server",
|
||||
"remote_url": "Remote URL",
|
||||
"active_url": "Active URL",
|
||||
"not_configured": "Not configured",
|
||||
"network_added": "Network added",
|
||||
"network_already_added": "Network already added",
|
||||
"no_wifi_connected": "Not connected to WiFi",
|
||||
"permission_denied": "Location permission denied",
|
||||
"permission_denied_explanation": "Location permission is required to detect WiFi network for auto-switching. Please enable it in Settings."
|
||||
"home_wifi_networks": "홈 WiFi 네트워크",
|
||||
"add_current_network": "\"{{ssid}}\" 추가",
|
||||
"not_connected_to_wifi": "WiFi에 연결되지 않음",
|
||||
"no_networks_configured": "구성된 네트워크가 없습니다",
|
||||
"add_network_hint": "자동 전환을 위한 홈 WiFi 추가",
|
||||
"current_wifi": "현재 WiFi",
|
||||
"using_url": "사용중",
|
||||
"local": "로컬 URL",
|
||||
"remote": "원격 URL",
|
||||
"not_connected": "연결되지 않았습니다",
|
||||
"current_server": "현재 서버",
|
||||
"remote_url": "원격 URL",
|
||||
"active_url": "현재 사용 중인 URL",
|
||||
"not_configured": "설정되지 않음",
|
||||
"network_added": "네트워크 추가됨",
|
||||
"network_already_added": "네트워크 이미 추가됨",
|
||||
"no_wifi_connected": "WiFi에 연결되지 않음",
|
||||
"permission_denied": "위치 권한이 거부되었습니다",
|
||||
"permission_denied_explanation": "자동 전환 Wi-Fi 네트워크를 감지하려면 위치 권한이 필요합니다. 설정에서 위치 권한을 활성화해 주세요."
|
||||
},
|
||||
"user_info": {
|
||||
"user_info_title": "User Info",
|
||||
"user": "User",
|
||||
"server": "Server",
|
||||
"token": "Token",
|
||||
"app_version": "App Version"
|
||||
"user_info_title": "사용자 정보",
|
||||
"user": "사용자",
|
||||
"server": "서버",
|
||||
"token": "토큰",
|
||||
"app_version": "앱 버전"
|
||||
},
|
||||
"quick_connect": {
|
||||
"quick_connect_title": "Quick Connect",
|
||||
"authorize_button": "Authorize Quick Connect",
|
||||
"enter_the_quick_connect_code": "Enter the quick connect code...",
|
||||
"success": "Success",
|
||||
"quick_connect_autorized": "Quick Connect Authorized",
|
||||
"error": "Error",
|
||||
"invalid_code": "Invalid Code",
|
||||
"authorize": "Authorize"
|
||||
"quick_connect_title": "퀵 커넥트",
|
||||
"authorize_button": "퀵 커넥트 승인",
|
||||
"enter_the_quick_connect_code": "퀵 커넥트 코드 입력...",
|
||||
"success": "성공",
|
||||
"quick_connect_autorized": "퀵 커넥트 승인됨",
|
||||
"error": "오류",
|
||||
"invalid_code": "유효하지 않은 코드",
|
||||
"authorize": "승인"
|
||||
},
|
||||
"media_controls": {
|
||||
"media_controls_title": "Media Controls",
|
||||
"forward_skip_length": "Forward Skip Length",
|
||||
"rewind_length": "Rewind Length",
|
||||
"seconds_unit": "s"
|
||||
"media_controls_title": "미디어 컨트롤",
|
||||
"forward_skip_length": "앞으로 건너뛸 시간",
|
||||
"rewind_length": "뒤로 되감을 시간",
|
||||
"seconds_unit": "초"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Gesture Controls",
|
||||
"horizontal_swipe_skip": "Horizontal Swipe to Skip",
|
||||
"horizontal_swipe_skip_description": "Swipe left/right when controls are hidden to skip",
|
||||
"left_side_brightness": "Left Side Brightness Control",
|
||||
"left_side_brightness_description": "Swipe up/down on left side to adjust brightness",
|
||||
"right_side_volume": "Right Side Volume Control",
|
||||
"right_side_volume_description": "Swipe up/down on right side to adjust volume",
|
||||
"gesture_controls_title": "제스처 제어",
|
||||
"horizontal_swipe_skip": "좌/우로 스와이프하여 건너뛰기",
|
||||
"horizontal_swipe_skip_description": "컨트롤 숨김상태에서 좌/우로 스와이프하여 건너뛰기",
|
||||
"left_side_brightness": "왼쪽 영역 밝기 조정 컨트롤",
|
||||
"left_side_brightness_description": "왼쪽 영역을 위/아래 스와이프하여 밝기 조절",
|
||||
"right_side_volume": "오른쪽 영역 볼륨 컨트롤",
|
||||
"right_side_volume_description": "오른족 영역을 위/아래로 스와이프 하여 볼륨 조절",
|
||||
"hide_volume_slider": "Hide Volume Slider",
|
||||
"hide_volume_slider_description": "Hide the volume slider in the video player",
|
||||
"hide_brightness_slider": "Hide Brightness Slider",
|
||||
@@ -196,7 +236,7 @@
|
||||
"language": "Language",
|
||||
"transcode_mode": {
|
||||
"title": "Audio Transcoding",
|
||||
"description": "Controls how surround audio (7.1, TrueHD, DTS-HD) is handled",
|
||||
"description": "서라운드 오디오(7.1, TrueHD, DTS-HD)를 어떻게 처리할지 설정합니다",
|
||||
"auto": "Auto",
|
||||
"stereo": "Force Stereo",
|
||||
"5_1": "Allow 5.1",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "None",
|
||||
"OnlyForced": "OnlyForced"
|
||||
},
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"bold_text": "Bold Text",
|
||||
"colors": {
|
||||
"Black": "Black",
|
||||
"Gray": "Gray",
|
||||
"Silver": "Silver",
|
||||
"White": "White",
|
||||
"Maroon": "Maroon",
|
||||
"Red": "Red",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Yellow",
|
||||
"Olive": "Olive",
|
||||
"Green": "Green",
|
||||
"Teal": "Teal",
|
||||
"Lime": "Lime",
|
||||
"Purple": "Purple",
|
||||
"Navy": "Navy",
|
||||
"Blue": "Blue",
|
||||
"Aqua": "Aqua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "None",
|
||||
"Thin": "Thin",
|
||||
"Normal": "Normal",
|
||||
"Thick": "Thick"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Other",
|
||||
@@ -288,20 +288,14 @@
|
||||
"PORTRAIT_UP": "Portrait Up",
|
||||
"PORTRAIT_DOWN": "Portrait Down",
|
||||
"LANDSCAPE": "Landscape",
|
||||
"LANDSCAPE_LEFT": "Landscape Left",
|
||||
"LANDSCAPE_RIGHT": "Landscape Right",
|
||||
"LANDSCAPE_LEFT": "왼쪽 가로 모드",
|
||||
"LANDSCAPE_RIGHT": "오른쪽 가로 모드",
|
||||
"OTHER": "Other",
|
||||
"UNKNOWN": "Unknown"
|
||||
},
|
||||
"safe_area_in_controls": "Safe Area in Controls",
|
||||
"video_player": "Video Player",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Experimental + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Show Custom Menu Links",
|
||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||
"hide_libraries": "Hide Libraries",
|
||||
"safe_area_in_controls": "컨트롤 안전 영역",
|
||||
"show_custom_menu_links": "사용자 지정 메뉴 링크 표시",
|
||||
"hide_libraries": "라이브러리 숨기기",
|
||||
"select_liraries_you_want_to_hide": "Select the libraries you want to hide from the Library tab and home page sections.",
|
||||
"disable_haptic_feedback": "Disable Haptic Feedback",
|
||||
"default_quality": "Default Quality",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Max Auto Play Episode Count",
|
||||
"disabled": "Disabled"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Downloads"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -334,79 +325,76 @@
|
||||
"password": "Password",
|
||||
"password_placeholder": "Enter password for Jellyfin user {{username}}",
|
||||
"login_button": "Login",
|
||||
"total_media_requests": "Total Media Requests",
|
||||
"movie_quota_limit": "Movie Quota Limit",
|
||||
"movie_quota_days": "Movie Quota Days",
|
||||
"total_media_requests": "전체 미디어 요청 수",
|
||||
"movie_quota_limit": "영화 요청 한도",
|
||||
"movie_quota_days": "영화 요청 제한 기간",
|
||||
"tv_quota_limit": "TV Quota Limit",
|
||||
"tv_quota_days": "TV Quota Days",
|
||||
"reset_jellyseerr_config_button": "Reset Seerr Config",
|
||||
"tv_quota_days": "TV 요청 제한 기간",
|
||||
"reset_jellyseerr_config_button": "Seerr 설정 초기화",
|
||||
"unlimited": "Unlimited",
|
||||
"plus_n_more": "+{{n}} More",
|
||||
"plus_n_more": "+{{n}}개 더",
|
||||
"order_by": {
|
||||
"DEFAULT": "Default",
|
||||
"VOTE_COUNT_AND_AVERAGE": "Vote count and average",
|
||||
"VOTE_COUNT_AND_AVERAGE": "평균 평점 및 투표 수",
|
||||
"POPULARITY": "Popularity"
|
||||
}
|
||||
},
|
||||
"marlin_search": {
|
||||
"enable_marlin_search": "Enable Marlin Search",
|
||||
"enable_marlin_search": "Marlin 검색 활성화",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://domain.org:port",
|
||||
"server_url_placeholder": "http(s)://도메인:포트",
|
||||
"marlin_search_hint": "Enter the URL for the Marlin server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_marlin": "Read More About Marlin.",
|
||||
"save_button": "Save",
|
||||
"toasts": {
|
||||
"saved": "Saved",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "Saved"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
"hide_watchlists_tab": "Hide Watchlists Tab",
|
||||
"home_sections_hint": "Show personalized recommendations and promoted watchlists from Streamystats on the home page.",
|
||||
"enable_series_recommendations": "시리즈 추천",
|
||||
"enable_promoted_watchlists": "추천 관심 목록",
|
||||
"hide_watchlists_tab": "관심 목록 탭 숨기기",
|
||||
"home_sections_hint": "홈 페이지에서 Streamystats의 개인 맞춤 추천 및 추천 관심 목록을 표시합니다.",
|
||||
"recommended_movies": "Recommended Movies",
|
||||
"recommended_series": "Recommended Series",
|
||||
"recommended_series": "추천 시리즈",
|
||||
"toasts": {
|
||||
"saved": "Saved",
|
||||
"refreshed": "Settings refreshed from server",
|
||||
"disabled": "Streamystats disabled"
|
||||
"refreshed": "서버에서 설정을 새로고침했습니다",
|
||||
"disabled": "Streamystats 비활성화됨"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"refresh_from_server": "서버에서 설정 새로고침"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "관심 목록 통합 기능 활성화"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
"storage_title": "Storage",
|
||||
"app_usage": "App {{usedSpace}}%",
|
||||
"device_usage": "Device {{availableSpace}}%",
|
||||
"app_usage": "앱 {{usedSpace}}",
|
||||
"device_usage": "디바이스 {{availableSpace}}%",
|
||||
"size_used": "{{used}} of {{total}} Used",
|
||||
"delete_all_downloaded_files": "Delete All Downloaded Files",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"music_cache_cleared": "음악 캐시가 삭제되었습니다",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "다운로드한 노래가 삭제되었습니다",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Export Logs",
|
||||
"click_for_more_info": "Click for More Info",
|
||||
"level": "Level",
|
||||
"no_logs_available": "No Logs Available",
|
||||
"delete_all_logs": "Delete All Logs"
|
||||
"no_logs_available": "No Logs Available"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Languages",
|
||||
@@ -427,23 +414,32 @@
|
||||
"system": "System"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Error Deleting Files",
|
||||
"background_downloads_enabled": "Background downloads enabled",
|
||||
"background_downloads_disabled": "Background downloads disabled"
|
||||
"error_deleting_files": "Error Deleting Files"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
"title": "Sessions",
|
||||
"no_active_sessions": "No Active Sessions"
|
||||
"no_active_sessions": "세션 비활성화"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Downloads",
|
||||
"tvseries": "TV-Series",
|
||||
"movies": "Movies",
|
||||
"queue": "Queue",
|
||||
"other_media": "Other media",
|
||||
"queue_hint": "Queue and downloads will be lost on app restart",
|
||||
"no_items_in_queue": "No Items in Queue",
|
||||
"no_downloaded_items": "No Downloaded Items",
|
||||
"delete_all_movies_button": "Delete All Movies",
|
||||
"delete_all_tvseries_button": "Delete All TV-Series",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "The new update requires content to be downloaded again. Please remove all downloaded content and try again.",
|
||||
"back": "Back",
|
||||
"delete": "Delete",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Something Went Wrong",
|
||||
"could_not_get_stream_url_from_jellyfin": "Could not get the stream URL from Jellyfin",
|
||||
"eta": "ETA {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Failed to Delete All TV-Series",
|
||||
"deleted_media_successfully": "Deleted other media Successfully!",
|
||||
"failed_to_delete_media": "Failed to Delete other media",
|
||||
"download_deleted": "Download Deleted",
|
||||
"download_cancelled": "Download Cancelled",
|
||||
"could_not_delete_download": "Could Not Delete Download",
|
||||
"download_paused": "Download Paused",
|
||||
"could_not_pause_download": "Could Not Pause Download",
|
||||
"download_resumed": "Download Resumed",
|
||||
"could_not_resume_download": "Could Not Resume Download",
|
||||
"download_completed": "Download Completed",
|
||||
"download_failed": "Download Failed",
|
||||
"download_failed_for_item": "Download failed for {{item}} - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} is already downloading",
|
||||
"all_files_deleted": "All Downloads Deleted Successfully",
|
||||
"files_deleted_by_type": "{{count}} {{type}} deleted",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "All files, folders, and jobs deleted successfully",
|
||||
"failed_to_clean_cache_directory": "Failed to clean cache directory",
|
||||
"could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}",
|
||||
"go_to_downloads": "Go to Downloads",
|
||||
"file_deleted": "{{item}} deleted"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Select",
|
||||
"no_trailer_available": "No trailer available",
|
||||
"video": "Video",
|
||||
"audio": "Audio",
|
||||
"subtitle": "Subtitle",
|
||||
"play": "Play",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "None",
|
||||
"track": "Track",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Search...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"boxsets": "Box Sets",
|
||||
"playlists": "Playlists",
|
||||
"items": "Items"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Poster",
|
||||
"cover": "Cover",
|
||||
"show_titles": "Show Titles",
|
||||
"show_stats": "Show Stats"
|
||||
"show_stats": "Show Stats",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Genres",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Sort By",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "Sort Order",
|
||||
"tags": "Tags"
|
||||
"tags": "Tags",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "No Links"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Error",
|
||||
"failed_to_get_stream_url": "Failed to get the stream URL",
|
||||
"an_error_occured_while_playing_the_video": "An error occurred while playing the video. Check logs in settings.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Could not create a stream for Chromecast",
|
||||
"message_from_server": "Message from Server: {{message}}",
|
||||
"next_episode": "Next Episode",
|
||||
"refresh_tracks": "Refresh Tracks",
|
||||
"audio_tracks": "Audio Tracks:",
|
||||
"playback_state": "Playback State:",
|
||||
"index": "Index:",
|
||||
"continue_watching": "Continue Watching",
|
||||
"go_back": "Go Back",
|
||||
"downloaded_file_title": "You have this file downloaded",
|
||||
"downloaded_file_message": "Do you want to play the downloaded file?",
|
||||
"downloaded_file_yes": "Yes",
|
||||
"downloaded_file_no": "No",
|
||||
"downloaded_file_cancel": "Cancel"
|
||||
"downloaded_file_cancel": "Cancel",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Next Up",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Series",
|
||||
"seasons": "Seasons",
|
||||
"season": "Season",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "No episodes for this season",
|
||||
"overview": "Overview",
|
||||
"more_with": "More with {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Media Options",
|
||||
"quality": "Quality",
|
||||
"audio": "Audio",
|
||||
"subtitles": "Subtitle",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Show More",
|
||||
"show_less": "Show Less",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Appeared In",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Could Not Load Item",
|
||||
"none": "None",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Download {{item_count}} Items",
|
||||
"download_unwatched_only": "Unwatched Only",
|
||||
"download_button": "Download"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Next",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Movies",
|
||||
"sports": "Sports",
|
||||
"for_kids": "For Kids",
|
||||
"news": "News"
|
||||
"news": "News",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Confirm",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Decline",
|
||||
"requested_by": "Requested by {{user}}",
|
||||
"unknown_user": "Unknown User",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Seerr server does not meet minimum version requirements! Please update to at least 2.0.0",
|
||||
"jellyseerr_test_failed": "Seerr test failed. Please try again.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Search",
|
||||
"library": "Library",
|
||||
"custom_links": "Custom Links",
|
||||
"favorites": "Favorites"
|
||||
"favorites": "Favorites",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
"next_up": "Neste",
|
||||
"recently_added_in": "Nylig lagt til i {{libraryName}}",
|
||||
"suggested_movies": "Foreslåtte filmer",
|
||||
"suggested_episodes": "Foreslåtte episoder",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Velkommen til Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "En gratis og åpen kildekode-klient for Jellyfin.",
|
||||
@@ -128,11 +127,6 @@
|
||||
"UNKNOWN": "Ukjent"
|
||||
},
|
||||
"safe_area_in_controls": "Trygt område i kontrollene",
|
||||
"video_player": "Videospiller",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Eksperimentell + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Vis Tilpassede Meny Linker",
|
||||
"hide_libraries": "Skjul biblioteker",
|
||||
"select_liraries_you_want_to_hide": "Velg bibliotekene du vil skjule fra Bibliotek-fanen og hjemmesidedelene.",
|
||||
@@ -140,7 +134,6 @@
|
||||
"default_quality": "Standardkvalitet"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Nedlastinger",
|
||||
"optimized_versions_server": "Optimaliserte versjoner server",
|
||||
"save_button": "Lagre",
|
||||
"optimized_server": "Optimalisert Server",
|
||||
@@ -205,8 +198,7 @@
|
||||
"export_logs": "Eksporter logger",
|
||||
"click_for_more_info": "Klikk for mer informasjon",
|
||||
"level": "Nivå",
|
||||
"no_logs_available": "Ingen logger tilgjengelig",
|
||||
"delete_all_logs": "Slett alle logger"
|
||||
"no_logs_available": "Ingen logger tilgjengelig"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Språk",
|
||||
@@ -216,8 +208,6 @@
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Feil ved sletting av filer",
|
||||
"background_downloads_enabled": "Bakgrunnsnedlastinger aktivert",
|
||||
"background_downloads_disabled": "Bakgrunnsnedlastinger deaktivert",
|
||||
"connected": "Tilkoblet",
|
||||
"could_not_connect": "Kunne ikke koble til",
|
||||
"invalid_url": "Ugyldig URL"
|
||||
@@ -231,9 +221,6 @@
|
||||
"downloads_title": "Nedlastinger",
|
||||
"tvseries": "TV-serier",
|
||||
"movies": "Filmer",
|
||||
"queue": "Kø",
|
||||
"queue_hint": "Kø og nedlastinger vil gå tapt ved omstart av appen",
|
||||
"no_items_in_queue": "Ingen elementer i køen",
|
||||
"no_downloaded_items": "Ingen nedlastede elementer",
|
||||
"delete_all_movies_button": "Slett alle filmer",
|
||||
"delete_all_tvseries_button": "Slett alle TV-serier",
|
||||
@@ -269,9 +256,7 @@
|
||||
"no_response_received_from_server": "Ingen respons mottatt fra serveren",
|
||||
"error_setting_up_the_request": "Feil under oppsett av forespørselen",
|
||||
"failed_to_start_download_for_item_unexpected_error": "Kunne ikke starte nedlasting for {{item}}: Uventet feil",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Alle filer, mapper og jobber ble slettet",
|
||||
"an_error_occured_while_deleting_files_and_jobs": "En feil oppstod under sletting av filer og jobber",
|
||||
"go_to_downloads": "Gå til nedlastinger"
|
||||
"an_error_occured_while_deleting_files_and_jobs": "En feil oppstod under sletting av filer og jobber"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -365,12 +350,8 @@
|
||||
"video_has_finished_playing": "Videoen har avsluttet avspilling!",
|
||||
"no_video_source": "Ingen videosource...",
|
||||
"next_episode": "Neste episode",
|
||||
"refresh_tracks": "Oppdater spor",
|
||||
"subtitle_tracks": "Undertekstspor:",
|
||||
"audio_tracks": "Lydspor:",
|
||||
"playback_state": "Avspillingsstatus:",
|
||||
"no_data_available": "Ingen data tilgjengelig",
|
||||
"index": "Indeks:"
|
||||
"no_data_available": "Ingen data tilgjengelig"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Neste opp",
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Fout",
|
||||
"login_title": "Aanmelden",
|
||||
"login_to_title": "Aanmelden bij",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Gebruikersnaam",
|
||||
"password_placeholder": "Wachtwoord",
|
||||
"login_button": "Aanmelden",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Account selecteren",
|
||||
"add_account": "Account toevoegen",
|
||||
"remove_account_description": "Hiermee worden de opgeslagen inloggegevens voor {{username}} verwijderd."
|
||||
"remove_account_description": "Hiermee worden de opgeslagen inloggegevens voor {{username}} verwijderd.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Account opslaan",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Oeps!",
|
||||
"error_message": "Er ging iets fout\nProbeer opnieuw in te loggen.",
|
||||
"continue_watching": "Verder Kijken",
|
||||
"continue": "Continue",
|
||||
"next_up": "Volgende",
|
||||
"continue_and_next_up": "Doorgaan & Volgende",
|
||||
"recently_added_in": "Recent toegevoegd in {{libraryName}}",
|
||||
"suggested_movies": "Voorgestelde films",
|
||||
"suggested_episodes": "Voorgestelde Afleveringen",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Welkom bij Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Een gratis en open-source client voor Jellyfin.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Instellingen",
|
||||
"log_out_button": "Afmelden",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categorieën"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Weergave",
|
||||
"merge_next_up_continue_watching": "Doorgaan met kijken & Volgende samenvoegen",
|
||||
"hide_remote_session_button": "Verberg Knop voor Externe Sessie"
|
||||
"hide_remote_session_button": "Verberg Knop voor Externe Sessie",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Netwerk",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Duur terugspoelen",
|
||||
"seconds_unit": "s"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Gebaar Bediening",
|
||||
"horizontal_swipe_skip": "Horizontale Swipe om over te slaan",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Geen",
|
||||
"OnlyForced": "Alleen Geforceerd"
|
||||
},
|
||||
"text_color": "Tekst kleur",
|
||||
"background_color": "Achtergrond Kleur",
|
||||
"outline_color": "Kleur omlijning",
|
||||
"outline_thickness": "Dikte omlijning",
|
||||
"background_opacity": "Transparantie achtergrond",
|
||||
"outline_opacity": "Doorzichtigheid omlijning",
|
||||
"bold_text": "Bold Text",
|
||||
"colors": {
|
||||
"Black": "Zwart",
|
||||
"Gray": "Grijs",
|
||||
"Silver": "Zilver",
|
||||
"White": "Wit",
|
||||
"Maroon": "Kastanjebruin",
|
||||
"Red": "Rood",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Geel",
|
||||
"Olive": "Olijf",
|
||||
"Green": "Groen",
|
||||
"Teal": "Groenblauw",
|
||||
"Lime": "Lichtgroen",
|
||||
"Purple": "Paars",
|
||||
"Navy": "Marine",
|
||||
"Blue": "Blauw",
|
||||
"Aqua": "Aqua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Geen",
|
||||
"Thin": "Dun",
|
||||
"Normal": "normaal",
|
||||
"Thick": "Dikke"
|
||||
},
|
||||
"subtitle_color": "Kleur ondertiteling",
|
||||
"subtitle_background_color": "Achtergrondkleur",
|
||||
"subtitle_font": "Lettertype ondertitels",
|
||||
"ksplayer_title": "KSPlayer Instellingen",
|
||||
"hardware_decode": "Hardware Acceleratie",
|
||||
"hardware_decode_description": "Gebruik hardware acceleratie voor video-decodering. Uitschakelen als u problemen met afspelen ondervindt."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC ondertitel instellingen",
|
||||
"hint": "Aanpassen van ondertiteling voor VLC-speler. Wijzigingen worden toegepast bij het afspelen.",
|
||||
"text_color": "Tekstkleur",
|
||||
"background_color": "Achtergrondkleur",
|
||||
"background_opacity": "Doorzichtigheid achtergrond",
|
||||
"outline_color": "Kleur omlijning",
|
||||
"outline_opacity": "Omtrek opaciteit",
|
||||
"outline_thickness": "Omtrek dikte",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Videospeler",
|
||||
"video_player": "Videospeler",
|
||||
"video_player_description": "Kies welke videospeler gebruikt moet worden op iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Andere",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Onbekend"
|
||||
},
|
||||
"safe_area_in_controls": "Veilig gebied in bedieningen",
|
||||
"video_player": "Video player",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Experimentele + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Aangepaste menulinks tonen",
|
||||
"show_large_home_carousel": "Toon grote carrousel op startpagina (bèta)",
|
||||
"hide_libraries": "Verberg Bibliotheken",
|
||||
"select_liraries_you_want_to_hide": "Selecteer de bibliotheken die je wil verbergen van de Bibliotheektab en hoofdpagina onderdelen.",
|
||||
"disable_haptic_feedback": "Haptische feedback uitschakelen",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Max Automatisch Aflevering Aantal",
|
||||
"disabled": "Uitgeschakeld"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Downloads"
|
||||
},
|
||||
"music": {
|
||||
"title": "Muziek",
|
||||
"playback_title": "Afspelen",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Lees meer over Marlin.",
|
||||
"save_button": "Opslaan",
|
||||
"toasts": {
|
||||
"saved": "Opgeslagen",
|
||||
"refreshed": "Instellingen zijn vernieuwd vanaf server"
|
||||
},
|
||||
"refresh_from_server": "Ververs Instellingen van Server"
|
||||
"saved": "Opgeslagen"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Streamystats inschakelen",
|
||||
"disable_streamystats": "Streamystats Uitschakelen",
|
||||
"enable_search": "Gebruik voor Zoeken",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Vul de URL van de Streamystats server in. De URL moet http of https bevatten en optioneel de poort.",
|
||||
"read_more_about_streamystats": "Lees Meer over Streamystats.",
|
||||
"save_button": "Opslaan",
|
||||
"save": "Opslaan",
|
||||
"features_title": "Functies",
|
||||
"home_sections_title": "Thuis Secties",
|
||||
"enable_movie_recommendations": "Film Aanbevelingen",
|
||||
"enable_series_recommendations": "Series Aanbevelingen",
|
||||
"enable_promoted_watchlists": "Gepromote Kijklijst",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Verwijder alle gedownloade bestanden",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} gecached",
|
||||
"music_cache_cleared": "Muziek cache gewist",
|
||||
"delete_all_downloaded_songs": "Verwijder alle gedownloade liedjes",
|
||||
"downloaded_songs_size": "{{size}} gedownload",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Export logs",
|
||||
"click_for_more_info": "Klik voor meer info",
|
||||
"level": "Niveau",
|
||||
"no_logs_available": "Geen logs beschikbaar",
|
||||
"delete_all_logs": "Alle logs verwijderen"
|
||||
"no_logs_available": "Geen logs beschikbaar"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Talen",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "Systeem"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Fout bij het verwijderen van bestanden",
|
||||
"background_downloads_enabled": "Downloads op de achtergrond ingeschakeld",
|
||||
"background_downloads_disabled": "Downloads op de achtergrond uitgeschakeld"
|
||||
"error_deleting_files": "Fout bij het verwijderen van bestanden"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Downloads",
|
||||
"tvseries": "Series",
|
||||
"movies": "Films",
|
||||
"queue": "Wachtrij",
|
||||
"other_media": "Andere media",
|
||||
"queue_hint": "Wachtrij en downloads verdwijnen bij een herstart van de app",
|
||||
"no_items_in_queue": "Geen items in wachtrij",
|
||||
"no_downloaded_items": "Geen gedownloade items",
|
||||
"delete_all_movies_button": "Verwijder alle films",
|
||||
"delete_all_tvseries_button": "Verwijder alle Series",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "Voor de nieuwe update moet de content opnieuw worden gedownload. Verwijder alle gedownloade content en probeer het opnieuw.",
|
||||
"back": "Terug",
|
||||
"delete": "Verwijder",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Er ging iets mis",
|
||||
"could_not_get_stream_url_from_jellyfin": "Kon de URL van de stream niet krijgen van Jellyfin",
|
||||
"eta": "ETA {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Alle series zijn niet verwijderd",
|
||||
"deleted_media_successfully": "Andere media succesvol verwijderd!",
|
||||
"failed_to_delete_media": "Verwijderen van andere media mislukt",
|
||||
"download_deleted": "Download verwijderd",
|
||||
"download_cancelled": "Download geannuleerd",
|
||||
"could_not_delete_download": "Kon download niet verwijderen",
|
||||
"download_paused": "Download gepauzeerd",
|
||||
"could_not_pause_download": "Kan niet pauzeren download",
|
||||
"download_resumed": "Download hervat",
|
||||
"could_not_resume_download": "Kon de download niet hervatten",
|
||||
"download_completed": "Download afgerond",
|
||||
"download_failed": "Download Mislukt",
|
||||
"download_failed_for_item": "Download gefaald voor {{item}} - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} wordt al gedownload",
|
||||
"all_files_deleted": "Alle Bestanden Succesvol Gedownload",
|
||||
"files_deleted_by_type": "{{count}} {{type}} verwijderd",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Alle bestanden, mappen en taken succesvol verwijderd",
|
||||
"failed_to_clean_cache_directory": "Opschonen cachemap mislukt",
|
||||
"could_not_get_download_url_for_item": "Kan download-URL voor {{itemName}} niet ophalen",
|
||||
"go_to_downloads": "Ga naar downloads",
|
||||
"file_deleted": "{{item}} verwijderd"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Selecteren",
|
||||
"no_trailer_available": "Geen trailer beschikbaar",
|
||||
"video": "Video",
|
||||
"audio": "Audio",
|
||||
"subtitle": "Ondertitel",
|
||||
"play": "Afspelen",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "Geen",
|
||||
"track": "Spoor",
|
||||
"cancel": "Annuleren",
|
||||
"delete": "Verwijderen",
|
||||
"ok": "Oké",
|
||||
"remove": "Verwijderen",
|
||||
"next": "Volgende",
|
||||
"back": "Terug",
|
||||
"continue": "Doorgaan",
|
||||
"verifying": "Verifiëren..."
|
||||
"verifying": "Verifiëren...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Zoek...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "Films",
|
||||
"series": "Series",
|
||||
"boxsets": "Boxsets",
|
||||
"playlists": "Playlists",
|
||||
"items": "items"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Poster",
|
||||
"cover": "Omslag",
|
||||
"show_titles": "Toon titels",
|
||||
"show_stats": "Toon statistieken"
|
||||
"show_stats": "Toon statistieken",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Genres",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Sorteren op",
|
||||
"filter_by": "Filteren op",
|
||||
"sort_order": "Sorteer volgorde",
|
||||
"tags": "Labels"
|
||||
"tags": "Labels",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Geen links"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Fout",
|
||||
"failed_to_get_stream_url": "De stream-URL kon niet worden verkregen",
|
||||
"an_error_occured_while_playing_the_video": "Er is een fout opgetreden tijdens het afspelen van de video. Controleer de logs in de instellingen.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Kon geen stream maken voor Chromecast",
|
||||
"message_from_server": "Bericht van de server",
|
||||
"next_episode": "Volgende Aflevering",
|
||||
"refresh_tracks": "Tracks verversen",
|
||||
"audio_tracks": "Audio Tracks:",
|
||||
"playback_state": "Afspeelstatus:",
|
||||
"index": "Index:",
|
||||
"continue_watching": "Verder kijken",
|
||||
"go_back": "Terug",
|
||||
"downloaded_file_title": "Je hebt dit bestand gedownload",
|
||||
"downloaded_file_message": "Wil je het gedownloade bestand afspelen?",
|
||||
"downloaded_file_yes": "Ja",
|
||||
"downloaded_file_no": "Nee",
|
||||
"downloaded_file_cancel": "Annuleren"
|
||||
"downloaded_file_cancel": "Annuleren",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Volgende",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Series",
|
||||
"seasons": "Seizoenen",
|
||||
"season": "Seizoen",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "Geen afleveringen voor dit seizoen",
|
||||
"overview": "Overzicht",
|
||||
"more_with": "Meer met {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Media opties",
|
||||
"quality": "Kwaliteit",
|
||||
"audio": "Audio",
|
||||
"subtitles": "Ondertitel",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Toon meer",
|
||||
"show_less": "Toon minder",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Verschenen in",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Kon item niet laden",
|
||||
"none": "Geen",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Download {{item_count}} items",
|
||||
"download_unwatched_only": "Alleen niet bekeken",
|
||||
"download_button": "Downloaden"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Volgende ",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Films",
|
||||
"sports": "Sport",
|
||||
"for_kids": "Voor kinderen",
|
||||
"news": "Nieuws"
|
||||
"news": "Nieuws",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Bevestig",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Weigeren",
|
||||
"requested_by": "Aangevraagd door {{user}}",
|
||||
"unknown_user": "Onbekende gebruiker",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Jellyseerr server voldoet niet aan de minimale versievereisten! Update naar minimaal 2.0.0",
|
||||
"jellyseerr_test_failed": "Jellyseerr test mislukt. Probeer opnieuw.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Zoeken",
|
||||
"library": "Bibliotheek",
|
||||
"custom_links": "Aangepaste links",
|
||||
"favorites": "Favorieten"
|
||||
"favorites": "Favorieten",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Muziek",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Afspeellijsten",
|
||||
"tracks": "Nummers"
|
||||
},
|
||||
"filters": {
|
||||
"all": "Alle"
|
||||
},
|
||||
"recently_added": "Recent toegevoegd",
|
||||
"recently_played": "Onlangs afgespeeld",
|
||||
"frequently_played": "Vaak afgespeeld",
|
||||
"explore": "Ontdek",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Afspelen",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "Deze serie",
|
||||
"all": "Alle media (standaard)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
"next_up": "Neste",
|
||||
"recently_added_in": "Nyleg lagt til i {{libraryName}}",
|
||||
"suggested_movies": "Foreslåtte filmar",
|
||||
"suggested_episodes": "Foreslåtte episodar",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Velkommen til Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Ein gratis og open kjeldekode-klient for Jellyfin.",
|
||||
@@ -128,11 +127,6 @@
|
||||
"UNKNOWN": "Ukjent"
|
||||
},
|
||||
"safe_area_in_controls": "Trygt område i kontrollane",
|
||||
"video_player": "Videospelar",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Eksperimentell + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Vis Tilpassede Meny Linker",
|
||||
"hide_libraries": "Skjul bibliotek",
|
||||
"select_liraries_you_want_to_hide": "Vel biblioteka du vil skjula frå Bibliotek-fanen og nettsidedelane.",
|
||||
@@ -140,7 +134,6 @@
|
||||
"default_quality": "Standardkvalitet"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Nedlastingar",
|
||||
"optimized_versions_server": "Optimaliserte versjonar servar",
|
||||
"save_button": "Lagre",
|
||||
"optimized_server": "Optimalisert Servar",
|
||||
@@ -205,8 +198,7 @@
|
||||
"export_logs": "Eksporter loggar",
|
||||
"click_for_more_info": "Klikk for meir informasjon",
|
||||
"level": "Nivå",
|
||||
"no_logs_available": "Ingen loggar tilgjengelege",
|
||||
"delete_all_logs": "Slett alle loggar"
|
||||
"no_logs_available": "Ingen loggar tilgjengelege"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Språk",
|
||||
@@ -216,8 +208,6 @@
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Feil ved sletting av filer",
|
||||
"background_downloads_enabled": "Bakgrunnsnedlastingar aktiverte",
|
||||
"background_downloads_disabled": "Bakgrunnsnedlastingar deaktiverte",
|
||||
"connected": "Tilkopla",
|
||||
"could_not_connect": "Kunne ikkje kopla til",
|
||||
"invalid_url": "Ugyldig URL"
|
||||
@@ -231,9 +221,6 @@
|
||||
"downloads_title": "Nedlastingar",
|
||||
"tvseries": "TV-seriar",
|
||||
"movies": "Filmar",
|
||||
"queue": "Kø",
|
||||
"queue_hint": "Kø og nedlastingar vil gå tapt ved omstart av appen",
|
||||
"no_items_in_queue": "Ingen element i køen",
|
||||
"no_downloaded_items": "Ingen nedlasta element",
|
||||
"delete_all_movies_button": "Slett alle filmar",
|
||||
"delete_all_tvseries_button": "Slett alle TV-seriar",
|
||||
@@ -269,9 +256,7 @@
|
||||
"no_response_received_from_server": "Ingen respons motteken frå serveren",
|
||||
"error_setting_up_the_request": "Feil under oppsett av førespurnaden",
|
||||
"failed_to_start_download_for_item_unexpected_error": "Kunne ikkje starta nedlasting for {{item}}: Uventa feil",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Alle filer, mapper og jobbar vart sletta",
|
||||
"an_error_occured_while_deleting_files_and_jobs": "Ein feil oppstod under sletting av filer og jobbar",
|
||||
"go_to_downloads": "Gå til nedlastingar"
|
||||
"an_error_occured_while_deleting_files_and_jobs": "Ein feil oppstod under sletting av filer og jobbar"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -365,12 +350,8 @@
|
||||
"video_has_finished_playing": "Videoen er ferdig avspelt!",
|
||||
"no_video_source": "Ingen videokjelde...",
|
||||
"next_episode": "Neste episode",
|
||||
"refresh_tracks": "Oppdater spor",
|
||||
"subtitle_tracks": "Undertekstspor:",
|
||||
"audio_tracks": "Lydspor:",
|
||||
"playback_state": "Avspelingstatus:",
|
||||
"no_data_available": "Ingen data tilgjengelege",
|
||||
"index": "Indeks:"
|
||||
"no_data_available": "Ingen data tilgjengelege"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Neste opp",
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Feil",
|
||||
"login_title": "Logg inn",
|
||||
"login_to_title": "Logg inn i",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Brukernavn",
|
||||
"password_placeholder": "Passord",
|
||||
"login_button": "Logg inn",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Oisann!",
|
||||
"error_message": "Noe gikk galt.\nVennligst logg ut og inn igjen.",
|
||||
"continue_watching": "Fortsett å se",
|
||||
"continue": "Continue",
|
||||
"next_up": "Neste opp",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "Nylig lagt til i {{libraryName}}",
|
||||
"suggested_movies": "Foreslåtte filmer",
|
||||
"suggested_episodes": "Foreslåtte episoder",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Velkommen til Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "En gratis og Open-Source klient for Jellyfin.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Innstillinger",
|
||||
"log_out_button": "Logg ut",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categories"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Appearance",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"hide_remote_session_button": "Hide Remote Session Button",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Omspar lengde",
|
||||
"seconds_unit": "S"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Gest kontroller",
|
||||
"horizontal_swipe_skip": "Vannrett sveip for å hoppe over",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Ingen",
|
||||
"OnlyForced": "Enkelt"
|
||||
},
|
||||
"text_color": "Tekst farge",
|
||||
"background_color": "Bakgrunnsfarge",
|
||||
"outline_color": "Omrissets farge",
|
||||
"outline_thickness": "Omriss Tykkelse",
|
||||
"background_opacity": "Bakgrunns gjennomsiktighet",
|
||||
"outline_opacity": "Omrissets gjennomsiktighet",
|
||||
"bold_text": "Bold Text",
|
||||
"colors": {
|
||||
"Black": "Svart",
|
||||
"Gray": "Grå",
|
||||
"Silver": "Sølv",
|
||||
"White": "Hvit",
|
||||
"Maroon": "Rødbrun",
|
||||
"Red": "Rød",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Gul",
|
||||
"Olive": "Olivengrønn",
|
||||
"Green": "Grønn",
|
||||
"Teal": "Blågrønn",
|
||||
"Lime": "Limegrønn",
|
||||
"Purple": "Lilla",
|
||||
"Navy": "Marineblå",
|
||||
"Blue": "Blå",
|
||||
"Aqua": "Vann"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Ingen",
|
||||
"Thin": "Tynn",
|
||||
"Normal": "Vanlig",
|
||||
"Thick": "Tykk"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Annet",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Ukjent"
|
||||
},
|
||||
"safe_area_in_controls": "Sikker sone i kontroller",
|
||||
"video_player": "Video Spiller",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (eksperimentell + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Vis tilpassede menylenker",
|
||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||
"hide_libraries": "Skjul biblioteker",
|
||||
"select_liraries_you_want_to_hide": "Velg bibliotekene du vil skjule deg for Biblioteket og avsnittene for hjemmesider.",
|
||||
"disable_haptic_feedback": "Deaktiver Haptisk tilbakemelding",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Maks automatisk avspilling Episode Telling",
|
||||
"disabled": "Deaktivert"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Nedlastinger"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Les mer om Marlin.",
|
||||
"save_button": "Lagre",
|
||||
"toasts": {
|
||||
"saved": "Lagret",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "Lagret"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Slett alle nedlastede filer",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Eksportlogger",
|
||||
"click_for_more_info": "Klikk for mer info",
|
||||
"level": "Nivå",
|
||||
"no_logs_available": "Ingen logger tilgjengelig",
|
||||
"delete_all_logs": "Slett alle loggene"
|
||||
"no_logs_available": "Ingen logger tilgjengelig"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Språk",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "Systemadministrasjon"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Feil ved sletting av filer",
|
||||
"background_downloads_enabled": "Nedlastinger av bakgrunn aktivert",
|
||||
"background_downloads_disabled": "Bakgrunnsnedlastinger deaktivert"
|
||||
"error_deleting_files": "Feil ved sletting av filer"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Nedlastinger",
|
||||
"tvseries": "TV-Serier",
|
||||
"movies": "Filmer",
|
||||
"queue": "Kø",
|
||||
"other_media": "Andre medier",
|
||||
"queue_hint": "Kø og nedlastinger vil gå tapt når appen startes på nytt",
|
||||
"no_items_in_queue": "Ingen elementer i køen",
|
||||
"no_downloaded_items": "Ingen nedlastede elementer",
|
||||
"delete_all_movies_button": "Slett alle filmer",
|
||||
"delete_all_tvseries_button": "Slett alle TV-Serier",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "Den nye oppdateringen krever at innholdet lastes ned på nytt. Fjern alt nedlastet innhold og prøv på nytt.",
|
||||
"back": "Tilbake",
|
||||
"delete": "Slett",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Noe gikk galt",
|
||||
"could_not_get_stream_url_from_jellyfin": "Kunne ikke hente stream-URL fra Jellyfin",
|
||||
"eta": "ETA {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Kunne ikke slette alle TV-Serier",
|
||||
"deleted_media_successfully": "Slettet andre media vellykket!",
|
||||
"failed_to_delete_media": "Kunne ikke slette andre medier",
|
||||
"download_deleted": "Nedlasting slettet",
|
||||
"download_cancelled": "Download Cancelled",
|
||||
"could_not_delete_download": "Kunne ikke slette nedlasting",
|
||||
"download_paused": "Last ned Pauset",
|
||||
"could_not_pause_download": "Kunne ikke pause nedlasting",
|
||||
"download_resumed": "Nedlastingen er gjenopptatt",
|
||||
"could_not_resume_download": "Kunne ikke fortsette nedlasting",
|
||||
"download_completed": "Nedlasting fullført",
|
||||
"download_failed": "Download Failed",
|
||||
"download_failed_for_item": "Nedlasting feilet for {{item}} – {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} is already downloading",
|
||||
"all_files_deleted": "All Downloads Deleted Successfully",
|
||||
"files_deleted_by_type": "{{count}} {{type}} deleted",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Alle filer, mapper og jobber slettet",
|
||||
"failed_to_clean_cache_directory": "Klarte ikke å tømme mellomlagermappen",
|
||||
"could_not_get_download_url_for_item": "Kunne ikke hente nedlastings-URL for {{itemName}}",
|
||||
"go_to_downloads": "Gå til nedlastinger",
|
||||
"file_deleted": "{{item}} deleted"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Velg",
|
||||
"no_trailer_available": "Ingen trailer tilgjengelig",
|
||||
"video": "Video",
|
||||
"audio": "Lyd",
|
||||
"subtitle": "Undertittel",
|
||||
"play": "Spill",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "None",
|
||||
"track": "Track",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Søk...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "Filmer",
|
||||
"series": "Serier",
|
||||
"boxsets": "Boks sett",
|
||||
"playlists": "Playlists",
|
||||
"items": "Elementer"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Plakat",
|
||||
"cover": "Omslag",
|
||||
"show_titles": "Vis titler",
|
||||
"show_stats": "Vis statistikk"
|
||||
"show_stats": "Vis statistikk",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Genres",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Sorter etter",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "Sorter etter",
|
||||
"tags": "Tagger"
|
||||
"tags": "Tagger",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Ingen lenke"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Feil",
|
||||
"failed_to_get_stream_url": "Kan ikke hente nettadressen for stream",
|
||||
"an_error_occured_while_playing_the_video": "En feil oppstod under video. Sjekk loggene i innstillingene.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Kan ikke opprette en strøm for Chromecast",
|
||||
"message_from_server": "Melding fra tjener: {{message}}",
|
||||
"next_episode": "Neste Episode",
|
||||
"refresh_tracks": "Oppdater sporing",
|
||||
"audio_tracks": "Lyd Tracks:",
|
||||
"playback_state": "Avspillingsstatus:",
|
||||
"index": "Indeks:",
|
||||
"continue_watching": "Fortsett å se",
|
||||
"go_back": "Gå tilbake",
|
||||
"downloaded_file_title": "You have this file downloaded",
|
||||
"downloaded_file_message": "Do you want to play the downloaded file?",
|
||||
"downloaded_file_yes": "Yes",
|
||||
"downloaded_file_no": "No",
|
||||
"downloaded_file_cancel": "Cancel"
|
||||
"downloaded_file_cancel": "Cancel",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Neste opp",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Serier",
|
||||
"seasons": "Sesonger",
|
||||
"season": "Sesong",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "Ingen episoder for denne sesongen",
|
||||
"overview": "Oversikt",
|
||||
"more_with": "Mer med {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Media Options",
|
||||
"quality": "Kvalitet",
|
||||
"audio": "Lyd",
|
||||
"subtitles": "Undertittel",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Vis mer",
|
||||
"show_less": "Vis mindre",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Ble brukt i",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Kan ikke laste inn produkt",
|
||||
"none": "Ingen",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Last ned {{item_count}} Objekter",
|
||||
"download_unwatched_only": "Bare usette",
|
||||
"download_button": "Nedlasting"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Neste",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Filmer",
|
||||
"sports": "Sport",
|
||||
"for_kids": "For barn",
|
||||
"news": "Nyheter"
|
||||
"news": "Nyheter",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Bekreft",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Decline",
|
||||
"requested_by": "Requested by {{user}}",
|
||||
"unknown_user": "Unknown User",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Seerr server oppfyller ikke minimumskravene til versjoner! Vennligst oppdater til minst 2.0.0",
|
||||
"jellyseerr_test_failed": "Seerr-test mislyktes. Vennligst prøv på nytt.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Søk",
|
||||
"library": "Bibliotek",
|
||||
"custom_links": "Egendefinerte lenker",
|
||||
"favorites": "Favoritter"
|
||||
"favorites": "Favoritter",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Błąd",
|
||||
"login_title": "Zaloguj się",
|
||||
"login_to_title": "Zaloguj się do",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Nazwa użytkownika",
|
||||
"password_placeholder": "Hasło",
|
||||
"login_button": "Zaloguj się",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} kont",
|
||||
"select_account": "Wybierz konto",
|
||||
"add_account": "Dodaj konto",
|
||||
"remove_account_description": "Spowoduje to usunięcie zapisanych danych logowania dla {{username}}."
|
||||
"remove_account_description": "Spowoduje to usunięcie zapisanych danych logowania dla {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Zapisz konto",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Ups!",
|
||||
"error_message": "Coś poszło nie tak.\nWyloguj się i zaloguj ponownie.",
|
||||
"continue_watching": "Kontynuuj oglądanie",
|
||||
"continue": "Continue",
|
||||
"next_up": "Następne w kolejce",
|
||||
"continue_and_next_up": "Oglądaj dalej i Następne",
|
||||
"recently_added_in": "Ostatnio dodano w {{libraryName}}",
|
||||
"suggested_movies": "Sugerowane filmy",
|
||||
"suggested_episodes": "Sugerowane odcinki",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Witamy w Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Darmowy i otwartoźródłowy klient dla Jellyfin.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Ustawienia",
|
||||
"log_out_button": "Wyloguj się",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Kategorie"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Wygląd",
|
||||
"merge_next_up_continue_watching": "Połącz Oglądaj dalej i Następne",
|
||||
"hide_remote_session_button": "Ukryj przycisk Zdalnej Sesji"
|
||||
"hide_remote_session_button": "Ukryj przycisk Zdalnej Sesji",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Długość przewijania do tyłu",
|
||||
"seconds_unit": "s"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Sterowanie gestami",
|
||||
"horizontal_swipe_skip": "Przesuń w poziomie, aby pominąć",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Brak",
|
||||
"OnlyForced": "Tylko wymuszone"
|
||||
},
|
||||
"text_color": "Kolor tekstu",
|
||||
"background_color": "Kolor tła",
|
||||
"outline_color": "Kolor konturu",
|
||||
"outline_thickness": "Grubość konturu",
|
||||
"background_opacity": "Przezroczystość tła",
|
||||
"outline_opacity": "Przezroczystość konturu",
|
||||
"bold_text": "Tekst pogrubiony",
|
||||
"colors": {
|
||||
"Black": "Czarny",
|
||||
"Gray": "Szary",
|
||||
"Silver": "Srebro",
|
||||
"White": "Biały",
|
||||
"Maroon": "Bordowy",
|
||||
"Red": "Czerwony",
|
||||
"Fuchsia": "Fuksja",
|
||||
"Yellow": "Żółty",
|
||||
"Olive": "Oliwki",
|
||||
"Green": "Zielony",
|
||||
"Teal": "Turkusowy",
|
||||
"Lime": "Limonkowy",
|
||||
"Purple": "Fioletowy",
|
||||
"Navy": "Granatowy",
|
||||
"Blue": "Niebieski",
|
||||
"Aqua": "Aqua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Brak",
|
||||
"Thin": "Cienka",
|
||||
"Normal": "Normalny",
|
||||
"Thick": "Gruba"
|
||||
},
|
||||
"subtitle_color": "Kolor napisów",
|
||||
"subtitle_background_color": "Kolor tła",
|
||||
"subtitle_font": "Czcionka napisów",
|
||||
"ksplayer_title": "Ustawienia KSPlayer",
|
||||
"hardware_decode": "Dekodowanie sprzętowe",
|
||||
"hardware_decode_description": "Używaj akceleracji sprzętowej dla dekodowania wideo. Wyłącz, jeśli doświadczasz problemów z odtwarzaniem."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "Ustawienia napisów VLC",
|
||||
"hint": "Personalizuj wygląd napisów dla odtwarzacza VLC. Zmiany zajdą przy następnym odtwarzaniu.",
|
||||
"text_color": "Kolor tekstu",
|
||||
"background_color": "Kolor tła",
|
||||
"background_opacity": "Przezroczystość tła",
|
||||
"outline_color": "Kolor obrysu",
|
||||
"outline_opacity": "Przezroczystość obrysu",
|
||||
"outline_thickness": "Grubość obrysu",
|
||||
"bold": "Pogrubiony tekst",
|
||||
"margin": "Dolny margines"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Odtwarzacz wideo",
|
||||
"video_player": "Odtwarzacz wideo",
|
||||
"video_player_description": "Wybierz którego odtwarzacza wideo używać w iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Inne",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Nieznana"
|
||||
},
|
||||
"safe_area_in_controls": "Bezpieczny obszar w kontrolkach",
|
||||
"video_player": "Odtwarzacz wideo",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Eksperymentalny + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Pokaż niestandardowe odnośniki w menu",
|
||||
"show_large_home_carousel": "Wyświetl Dużą Karuzelę na ekranie głównym (beta)",
|
||||
"hide_libraries": "Ukryj biblioteki",
|
||||
"select_liraries_you_want_to_hide": "Wybierz biblioteki, które chcesz ukryć na karcie Biblioteka i w sekcjach strony głównej.",
|
||||
"disable_haptic_feedback": "Wyłącz wibracje",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Maksymalna liczba odcinków automatycznego odtwarzania",
|
||||
"disabled": "Wyłączone"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Pobieranie"
|
||||
},
|
||||
"music": {
|
||||
"title": "Muzyka",
|
||||
"playback_title": "Odtwarzanie",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Dowiedz się więcej o Marlin.",
|
||||
"save_button": "Zapisz",
|
||||
"toasts": {
|
||||
"saved": "Zapisano",
|
||||
"refreshed": "Ustawienia odświeżone z serwera"
|
||||
},
|
||||
"refresh_from_server": "Odśwież ustawienia z serwera"
|
||||
"saved": "Zapisano"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Włącz Streamystats",
|
||||
"disable_streamystats": "Wyłącz Streamystats",
|
||||
"enable_search": "Używaj do wyszukiwania",
|
||||
"url": "Adres URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Wprowadź adres URL dla twojego serwera Streamystats. URL powinien zawierać http lub https i opcjonalnie port.",
|
||||
"read_more_about_streamystats": "Dowiedz się więcej o Streamystats.",
|
||||
"save_button": "Zapisz",
|
||||
"save": "Zapisz",
|
||||
"features_title": "Funkcje",
|
||||
"home_sections_title": "Sekcja główna",
|
||||
"enable_movie_recommendations": "Rekomendacje filmów",
|
||||
"enable_series_recommendations": "Rekomendację seriali",
|
||||
"enable_promoted_watchlists": "Promowane listy oglądania",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Odśwież ustawienia z serwera"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Aktywuj naszą integrację Listy Oglądania",
|
||||
"watchlist_button": "Przelącz integrację Listy Oglądania"
|
||||
"watchlist_enabler": "Aktywuj naszą integrację Listy Oglądania"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Usuń wszystkie pobrane pliki",
|
||||
"music_cache_title": "Bufor muzyki",
|
||||
"music_cache_description": "Automatycznie buforuj piosenki w trakcie słuchania dla płynniejszego odtwarzania i wsparcia offline",
|
||||
"enable_music_cache": "Włącz bufor muzyki",
|
||||
"clear_music_cache": "Wyczyść bufor muzyki",
|
||||
"music_cache_size": "Zbuforowano {{size}}",
|
||||
"music_cache_cleared": "Wyczyszczono bufor muzyki",
|
||||
"delete_all_downloaded_songs": "Usuń wszystkie pobrane piosenki",
|
||||
"downloaded_songs_size": "Pobrano {{size}}",
|
||||
"downloaded_songs_deleted": "Usunięto pobrane piosenki"
|
||||
"downloaded_songs_deleted": "Usunięto pobrane piosenki",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Wstęp",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Eksportuj logi",
|
||||
"click_for_more_info": "Kliknij po więcej informacji",
|
||||
"level": "Poziom",
|
||||
"no_logs_available": "Brak dostępnych logów",
|
||||
"delete_all_logs": "Usuń wszystkie logi"
|
||||
"no_logs_available": "Brak dostępnych logów"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Języki",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "System"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Błąd podczas usuwania plików",
|
||||
"background_downloads_enabled": "Pobieranie w tle włączone",
|
||||
"background_downloads_disabled": "Pobieranie w tle wyłączone"
|
||||
"error_deleting_files": "Błąd podczas usuwania plików"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Pobrane",
|
||||
"tvseries": "Seriale",
|
||||
"movies": "Filmy",
|
||||
"queue": "Kolejka",
|
||||
"other_media": "Inne media",
|
||||
"queue_hint": "Kolejka i pobierania zostaną utracone po ponownym uruchomieniu aplikacji",
|
||||
"no_items_in_queue": "Brak elementów w kolejce",
|
||||
"no_downloaded_items": "Brak pobranych elementów",
|
||||
"delete_all_movies_button": "Usuń wszystkie filmy",
|
||||
"delete_all_tvseries_button": "Usuń wszystkie seriale",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "Nowa aktualizacja wymaga ponownego pobrania treści. Usuń wszystkie pobrane materiały i spróbuj ponownie.",
|
||||
"back": "Wstecz",
|
||||
"delete": "Usuń",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Coś poszło nie tak",
|
||||
"could_not_get_stream_url_from_jellyfin": "Nie udało się pobrać adresu URL transmisji z Jellyfin",
|
||||
"eta": "Szacowany czas: {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Nie udało się usunąć wszystkich seriali",
|
||||
"deleted_media_successfully": "Pomyślnie usunięto inne media!",
|
||||
"failed_to_delete_media": "Nie udało się usunąć innych mediów",
|
||||
"download_deleted": "Pobieranie usunięte",
|
||||
"download_cancelled": "Pobieranie anulowane",
|
||||
"could_not_delete_download": "Nie można usunąć pobrania",
|
||||
"download_paused": "Pobieranie wstrzymane",
|
||||
"could_not_pause_download": "Nie można wstrzymać pobierania",
|
||||
"download_resumed": "Pobieranie wznowione",
|
||||
"could_not_resume_download": "Nie można wznowić pobierania",
|
||||
"download_completed": "Pobieranie zakończone",
|
||||
"download_failed": "Pobieranie nie powiodło się",
|
||||
"download_failed_for_item": "Pobieranie nie powiodło się dla {{item}} – {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} jest w trakcie pobierania",
|
||||
"all_files_deleted": "Pomyślnie usunięto wszystkie pobrane",
|
||||
"files_deleted_by_type": "{{count}} {{type}} usunięto",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Wszystkie pliki, foldery i zadania zostały pomyślnie usunięte",
|
||||
"failed_to_clean_cache_directory": "Nie udało się wyczyścić katalogu pamięci podręcznej",
|
||||
"could_not_get_download_url_for_item": "Nie można pobrać adresu URL dla {{itemName}}",
|
||||
"go_to_downloads": "Przejdź do pobranych",
|
||||
"file_deleted": "Usunięto {{item}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Wybierz",
|
||||
"no_trailer_available": "Brak dostępnego zwiastunu",
|
||||
"video": "Wideo",
|
||||
"audio": "Dźwięk",
|
||||
"subtitle": "Napisy",
|
||||
"play": "Odtwórz",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "Nic",
|
||||
"track": "Utwór",
|
||||
"cancel": "Anuluj",
|
||||
"delete": "Usuń",
|
||||
"ok": "OK",
|
||||
"remove": "Usuń",
|
||||
"next": "Następne",
|
||||
"back": "Poprzednie",
|
||||
"continue": "Kontynuuj",
|
||||
"verifying": "Weryfikacja..."
|
||||
"verifying": "Weryfikacja...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Szukaj...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "filmy",
|
||||
"series": "seriale",
|
||||
"boxsets": "zestawy",
|
||||
"playlists": "Playlists",
|
||||
"items": "elementy"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Plakat",
|
||||
"cover": "Okładka",
|
||||
"show_titles": "Pokaż tytuły",
|
||||
"show_stats": "Pokaż statystyki"
|
||||
"show_stats": "Pokaż statystyki",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Gatunki",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Sortuj według",
|
||||
"filter_by": "Filtruj po",
|
||||
"sort_order": "Kolejność sortowania",
|
||||
"tags": "Tagi"
|
||||
"tags": "Tagi",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Brak odnośników"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Błąd",
|
||||
"failed_to_get_stream_url": "Nie udało się pobrać adresu strumienia",
|
||||
"an_error_occured_while_playing_the_video": "Wystąpił błąd podczas odtwarzania wideo. Sprawdź logi w ustawieniach.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Nie udało się utworzyć strumienia dla Chromecasta",
|
||||
"message_from_server": "Wiadomość z serwera: {{message}}",
|
||||
"next_episode": "Następny odcinek",
|
||||
"refresh_tracks": "Odśwież ścieżki",
|
||||
"audio_tracks": "Ścieżki audio:",
|
||||
"playback_state": "Stan odtwarzania:",
|
||||
"index": "Indeks:",
|
||||
"continue_watching": "Kontynuuj oglądanie",
|
||||
"go_back": "Wstecz",
|
||||
"downloaded_file_title": "Ten plik masz już pobrany",
|
||||
"downloaded_file_message": "Chcesz odtworzyć pobrany plik?",
|
||||
"downloaded_file_yes": "Tak",
|
||||
"downloaded_file_no": "Nie",
|
||||
"downloaded_file_cancel": "Anuluj"
|
||||
"downloaded_file_cancel": "Anuluj",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Następne",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Serial",
|
||||
"seasons": "Sezony",
|
||||
"season": "Sezon",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "Brak odcinków w tym sezonie",
|
||||
"overview": "Opis",
|
||||
"more_with": "Więcej z {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Ustawienia mediów",
|
||||
"quality": "Jakość",
|
||||
"audio": "Dźwięk",
|
||||
"subtitles": "Napisy",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Pokaż więcej",
|
||||
"show_less": "Pokaż mniej",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Wystąpił w",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Nie udało się wczytać elementu",
|
||||
"none": "Brak",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Pobierz {{item_count}} elementów",
|
||||
"download_unwatched_only": "Tylko nieobejrzane",
|
||||
"download_button": "Pobierz"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Następny",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Filmy",
|
||||
"sports": "Sport",
|
||||
"for_kids": "Dla dzieci",
|
||||
"news": "Wiadomości"
|
||||
"news": "Wiadomości",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Potwierdź",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Odrzuć",
|
||||
"requested_by": "Poproszone przez {{user}}",
|
||||
"unknown_user": "Nieznany użytkownik",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Serwer Jellyseerr nie spełnia minimalnych wymagań wersji! Zaktualizuj go co najmniej do wersji 2.0.0",
|
||||
"jellyseerr_test_failed": "Test Jellyseerr nie powiódł się. Spróbuj ponownie.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Szukaj",
|
||||
"library": "Biblioteka",
|
||||
"custom_links": "Niestandardowe odnośniki",
|
||||
"favorites": "Ulubione"
|
||||
"favorites": "Ulubione",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Muzyka",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlisty",
|
||||
"tracks": "utwory"
|
||||
},
|
||||
"filters": {
|
||||
"all": "Wszystkie"
|
||||
},
|
||||
"recently_added": "Ostatnio dodano",
|
||||
"recently_played": "Ostatnio odtwarzano",
|
||||
"frequently_played": "Często odtwarzane",
|
||||
"explore": "Odkrywaj",
|
||||
"top_tracks": "Popularne utwory",
|
||||
"play": "Odtwórz",
|
||||
"shuffle": "Losuj",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "Ten odcinek",
|
||||
"all": "Wszystkie media (domyślne)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
"next_up": "Próximo em",
|
||||
"recently_added_in": "Adicionados recentemente em {{libraryName}}",
|
||||
"suggested_movies": "Filmes sugeridos",
|
||||
"suggested_episodes": "Episódios sugeridos",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Bem-vindo ao Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Um cliente gratuito e de código livre para o Jellyfin.",
|
||||
@@ -128,11 +127,6 @@
|
||||
"UNKNOWN": "Desconhecido"
|
||||
},
|
||||
"safe_area_in_controls": "Área segura nos controles",
|
||||
"video_player": "Tocador de vídeo",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Experimental + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Mostrar Custom Links no Menu",
|
||||
"hide_libraries": "Ocultar bibliotecas",
|
||||
"select_liraries_you_want_to_hide": "Selecione as bibliotecas que você deseja ocultar das abas Biblioteca e Início.",
|
||||
@@ -141,7 +135,6 @@
|
||||
"disabled": "Desativado"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Downloads",
|
||||
"optimized_versions_server": "Servidor do optimized versions",
|
||||
"save_button": "Salvar",
|
||||
"optimized_server": "Optimized Server",
|
||||
@@ -203,8 +196,7 @@
|
||||
},
|
||||
"logs": {
|
||||
"logs_title": "Logs",
|
||||
"no_logs_available": "Sem logs disponíveis",
|
||||
"delete_all_logs": "Remover todos os logs"
|
||||
"no_logs_available": "Sem logs disponíveis"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Idiomas",
|
||||
@@ -214,8 +206,6 @@
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Erro ao remover arquivos",
|
||||
"background_downloads_enabled": "Downloads em segundo plano ativado",
|
||||
"background_downloads_disabled": "Downloads em segundo plano desativado",
|
||||
"connected": "Conectado",
|
||||
"could_not_connect": "Não foi possível conectar",
|
||||
"invalid_url": "URL inválida"
|
||||
@@ -229,9 +219,6 @@
|
||||
"downloads_title": "Downloads",
|
||||
"tvseries": "TV/Séries",
|
||||
"movies": "Filmes",
|
||||
"queue": "Fila",
|
||||
"queue_hint": "A fila e os downloads serão perdidos ao reiniciar o aplicativo",
|
||||
"no_items_in_queue": "Nenhum item na fila",
|
||||
"no_downloaded_items": "Nenhum item baixado",
|
||||
"delete_all_movies_button": "Remover todos os filmes",
|
||||
"delete_all_tvseries_button": "Remover todos as TV/Séries",
|
||||
@@ -267,9 +254,7 @@
|
||||
"no_response_received_from_server": "Sem resposta recebida do servidor",
|
||||
"error_setting_up_the_request": "Erro ao configurar a solicitação",
|
||||
"failed_to_start_download_for_item_unexpected_error": "Falha ao iniciar o download de {{item}}: Erro inesperado",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Todos arquivos, pastas e jobs removidos com sucesso",
|
||||
"an_error_occured_while_deleting_files_and_jobs": "Ocorreu um erro ao remover os arquivos e jobs",
|
||||
"go_to_downloads": "Vá para downloads"
|
||||
"an_error_occured_while_deleting_files_and_jobs": "Ocorreu um erro ao remover os arquivos e jobs"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -363,12 +348,8 @@
|
||||
"video_has_finished_playing": "O vídeo terminou!",
|
||||
"no_video_source": "Nenhuma fonte de vídeo...",
|
||||
"next_episode": "Próximo episódio",
|
||||
"refresh_tracks": "Atualizar faixas",
|
||||
"subtitle_tracks": "Faixas da legenda:",
|
||||
"audio_tracks": "Faixas do áudio:",
|
||||
"playback_state": "Playback State:",
|
||||
"no_data_available": "Nenhum dado disponível",
|
||||
"index": "Índice:",
|
||||
"continue_watching": "Continuar assistindo",
|
||||
"go_back": "Voltar"
|
||||
},
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Erro",
|
||||
"login_title": "Iniciar sessão",
|
||||
"login_to_title": "Iniciar sessão em",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Usuário",
|
||||
"password_placeholder": "Palavra-passe",
|
||||
"login_button": "Iniciar sessão",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Opa!",
|
||||
"error_message": "Algo deu errado.\nPor favor, saia e entre novamente.",
|
||||
"continue_watching": "Continuar assistindo",
|
||||
"continue": "Continue",
|
||||
"next_up": "A Seguir",
|
||||
"continue_and_next_up": "Continuar e Próximo",
|
||||
"recently_added_in": "Adicionado recentemente em {{libraryName}}",
|
||||
"suggested_movies": "Filmes Sugeridos",
|
||||
"suggested_episodes": "Episódios sugeridos",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Bem-vindo ao Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Um Cliente de código aberto e gratuito para o Jellyfin.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Confirgurações",
|
||||
"log_out_button": "Encerrar Sessão",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categorias"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Aparência",
|
||||
"merge_next_up_continue_watching": "Mesclar Continuar Assistindo e Próximo",
|
||||
"hide_remote_session_button": "Esconder botão de sessão remota"
|
||||
"hide_remote_session_button": "Esconder botão de sessão remota",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Comprimento de Retroceder",
|
||||
"seconds_unit": "s"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Controles de Gestos",
|
||||
"horizontal_swipe_skip": "Deslizar horizontalmente para pular",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Nenhuma",
|
||||
"OnlyForced": "Somente Forçado"
|
||||
},
|
||||
"text_color": "Cor do texto",
|
||||
"background_color": "Cor de fundo",
|
||||
"outline_color": "Cor do contorno",
|
||||
"outline_thickness": "Espessura do Contorno",
|
||||
"background_opacity": "Opacidade de fundo",
|
||||
"outline_opacity": "Opacidade do Contorno",
|
||||
"bold_text": "Texto em negrito",
|
||||
"colors": {
|
||||
"Black": "Preto",
|
||||
"Gray": "Cinzento",
|
||||
"Silver": "Prata",
|
||||
"White": "Branco",
|
||||
"Maroon": "Castanho",
|
||||
"Red": "Vermelho",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Amarelo",
|
||||
"Olive": "Verde-oliva",
|
||||
"Green": "Verde",
|
||||
"Teal": "Verde-azulado",
|
||||
"Lime": "Verde-limão",
|
||||
"Purple": "Roxo",
|
||||
"Navy": "Azul-marinho",
|
||||
"Blue": "Azul",
|
||||
"Aqua": "Água"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Nenhuma",
|
||||
"Thin": "Magro",
|
||||
"Normal": "Normal",
|
||||
"Thick": "Grosso"
|
||||
},
|
||||
"subtitle_color": "Cor da legenda",
|
||||
"subtitle_background_color": "Cor de fundo",
|
||||
"subtitle_font": "Fonte da legenda",
|
||||
"ksplayer_title": "Configurações do KSPlayer",
|
||||
"hardware_decode": "Decodificação por hardware",
|
||||
"hardware_decode_description": "Use aceleração de hardware para decodificação de vídeo. Desative se você tiver problemas de reprodução."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Reprodutor de Vídeo",
|
||||
"video_player": "Reprodutor de Vídeo",
|
||||
"video_player_description": "Escolha qual player de vídeo usar no iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Outros",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Desconhecido"
|
||||
},
|
||||
"safe_area_in_controls": "Área segura nos controles",
|
||||
"video_player": "Reprodutor de Vídeo",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Experimental + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Mostrar Links de Menu Personalizado",
|
||||
"show_large_home_carousel": "Mostrar Carrossel Grande (beta)",
|
||||
"hide_libraries": "Ocultar bibliotecas",
|
||||
"select_liraries_you_want_to_hide": "Selecione as bibliotecas que você deseja ocultar da aba Biblioteca e seções da página inicial.",
|
||||
"disable_haptic_feedback": "Desativar o retorno tátil",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Contagem máxima de episódios de reprodução automática",
|
||||
"disabled": "Desabilitado"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Downloads"
|
||||
},
|
||||
"music": {
|
||||
"title": "Música",
|
||||
"playback_title": "Reproduzir",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Leia mais sobre Marlin.",
|
||||
"save_button": "Salvar",
|
||||
"toasts": {
|
||||
"saved": "Salvo",
|
||||
"refreshed": "Configurações atualizadas do servidor"
|
||||
},
|
||||
"refresh_from_server": "Atualizar as configurações do servidor"
|
||||
"saved": "Salvo"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Ativar Streamystats",
|
||||
"disable_streamystats": "Desativar streamystats",
|
||||
"enable_search": "Usar para Pesquisa",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Digite a URL para seu servidor de StreamyStats. A URL deve incluir http ou https e, opcionalmente, a porta.",
|
||||
"read_more_about_streamystats": "Leia mais sobre Streamystats.",
|
||||
"save_button": "Salvar",
|
||||
"save": "Salvar",
|
||||
"features_title": "Funcionalidades",
|
||||
"home_sections_title": "Seções da Página Inicial",
|
||||
"enable_movie_recommendations": "Recomendações de filmes",
|
||||
"enable_series_recommendations": "Recomendações de Séries",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Atualizar Configurações do Servidor"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Ative nossa integração de Lista de Interesses",
|
||||
"watchlist_button": "Ativar/desativar Lista de Interesses"
|
||||
"watchlist_enabler": "Ative nossa integração de Lista de Interesses"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Excluir todos os arquivos baixados",
|
||||
"music_cache_title": "Cache de Música",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Habilitar Cache de Música",
|
||||
"clear_music_cache": "Limpar Cache de Música",
|
||||
"music_cache_size": "{{size}} em cache",
|
||||
"music_cache_cleared": "Cache de música limpo",
|
||||
"delete_all_downloaded_songs": "Excluir todas as músicas baixadas",
|
||||
"downloaded_songs_size": "{{size}} baixado",
|
||||
"downloaded_songs_deleted": "Músicas baixadas excluídas"
|
||||
"downloaded_songs_deleted": "Músicas baixadas excluídas",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Exportar logs",
|
||||
"click_for_more_info": "Clique para mais informações",
|
||||
"level": "Nível",
|
||||
"no_logs_available": "Não há registros disponíveis",
|
||||
"delete_all_logs": "Excluir todos os registros"
|
||||
"no_logs_available": "Não há registros disponíveis"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Idiomas",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "Sistema"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Erro ao excluir arquivos",
|
||||
"background_downloads_enabled": "Downloads em segundo plano ativados",
|
||||
"background_downloads_disabled": "Downloads em segundo plano desativados"
|
||||
"error_deleting_files": "Erro ao excluir arquivos"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Downloads",
|
||||
"tvseries": "TV-Séries",
|
||||
"movies": "Filmes",
|
||||
"queue": "Fila",
|
||||
"other_media": "Outras mídias",
|
||||
"queue_hint": "A fila e os downloads serão perdidos ao reiniciar o aplicativo",
|
||||
"no_items_in_queue": "Nenhum item na fila",
|
||||
"no_downloaded_items": "Nenhum item baixado",
|
||||
"delete_all_movies_button": "Excluir todos os filmes",
|
||||
"delete_all_tvseries_button": "Excluir todas as séries",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "A nova atualização requer que o conteúdo seja baixado novamente. Por favor, remova todo o conteúdo baixado e tente novamente.",
|
||||
"back": "Anterior",
|
||||
"delete": "excluir",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Ocorreu Um Erro",
|
||||
"could_not_get_stream_url_from_jellyfin": "Não foi possível obter o URL de transmissão do Jellyfin",
|
||||
"eta": "ETA {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Falha ao excluir todas as séries",
|
||||
"deleted_media_successfully": "Outras mídias excluídas com sucesso!",
|
||||
"failed_to_delete_media": "Falha ao excluir outras mídias",
|
||||
"download_deleted": "Download Excluído",
|
||||
"download_cancelled": "Download Cancelado",
|
||||
"could_not_delete_download": "Não foi possível excluir o download",
|
||||
"download_paused": "Download Pausado",
|
||||
"could_not_pause_download": "Não foi possível Pausar o Download",
|
||||
"download_resumed": "Download Retomado",
|
||||
"could_not_resume_download": "Não foi possível retomar o download",
|
||||
"download_completed": "Download concluído",
|
||||
"download_failed": "Download Falhou",
|
||||
"download_failed_for_item": "Download Falhou para {{item}} - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} já está sendo baixado",
|
||||
"all_files_deleted": "Todos os Downloads Excluídos com Sucesso",
|
||||
"files_deleted_by_type": "{{count}} {{type}} excluído",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Todos os arquivos, pastas e trabalhos excluídos com sucesso",
|
||||
"failed_to_clean_cache_directory": "Falha ao limpar o diretório de cache",
|
||||
"could_not_get_download_url_for_item": "Não foi possível obter o URL de download para {{itemName}}",
|
||||
"go_to_downloads": "Ir para Downloads",
|
||||
"file_deleted": "{{item}} deletado"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Selecionar",
|
||||
"no_trailer_available": "Nenhum trailer disponível",
|
||||
"video": "Vídeo",
|
||||
"audio": "Áudio",
|
||||
"subtitle": "Legenda",
|
||||
"play": "Reproduzir",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "Nenhum",
|
||||
"track": "Faixa",
|
||||
"cancel": "Cancelar",
|
||||
"delete": "Apagar",
|
||||
"ok": "OK",
|
||||
"remove": "Remover",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Buscar...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "Filmes",
|
||||
"series": "Série",
|
||||
"boxsets": "Conjuntos de caixas",
|
||||
"playlists": "Playlists",
|
||||
"items": "itens"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Cartaz",
|
||||
"cover": "Capa",
|
||||
"show_titles": "Mostrar Títulos",
|
||||
"show_stats": "Mostrar estatísticas"
|
||||
"show_stats": "Mostrar estatísticas",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Genres",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Classificar por",
|
||||
"filter_by": "Filtrar Por",
|
||||
"sort_order": "Ordem de classificação",
|
||||
"tags": "Etiquetas"
|
||||
"tags": "Etiquetas",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Sem links"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "ERRO",
|
||||
"failed_to_get_stream_url": "Falha ao obter a URL de transmissão",
|
||||
"an_error_occured_while_playing_the_video": "Ocorreu um erro ao reproduzir o vídeo. Verifique os logs nas configurações.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Não foi possível criar um fluxo para o Chromecast",
|
||||
"message_from_server": "Mensagem do Servidor: {{message}}",
|
||||
"next_episode": "Próximo Episódio",
|
||||
"refresh_tracks": "Atualizar Faixas",
|
||||
"audio_tracks": "Faixas de Áudio:",
|
||||
"playback_state": "Estado de Reprodução:",
|
||||
"index": "Índice",
|
||||
"continue_watching": "Continuar assistindo",
|
||||
"go_back": "Voltar atrás",
|
||||
"downloaded_file_title": "Você já fez o download deste arquivo",
|
||||
"downloaded_file_message": "Você quer reproduzir o arquivo baixado?",
|
||||
"downloaded_file_yes": "SIm",
|
||||
"downloaded_file_no": "Não",
|
||||
"downloaded_file_cancel": "Cancelar"
|
||||
"downloaded_file_cancel": "Cancelar",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "A Seguir",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Série",
|
||||
"seasons": "Estações",
|
||||
"season": "Temporada",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "Não há episódios para esta temporada",
|
||||
"overview": "Geral",
|
||||
"more_with": "Mais com {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Opções de Mídia",
|
||||
"quality": "Qualidade",
|
||||
"audio": "Áudio",
|
||||
"subtitles": "Legenda",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Mostrar mais",
|
||||
"show_less": "Mostrar menos",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Aparece em",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Não foi possível carregar o item",
|
||||
"none": "Nenhuma",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Baixar itens de {{item_count}}",
|
||||
"download_unwatched_only": "Apenas não assistidos",
|
||||
"download_button": "BAIXAR"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Próximo",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Filmes",
|
||||
"sports": "Esportes",
|
||||
"for_kids": "Para crianças",
|
||||
"news": "Notícias"
|
||||
"news": "Notícias",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Confirmar",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Declinar",
|
||||
"requested_by": "Solicitado por {{user}}",
|
||||
"unknown_user": "Usuário desconhecido",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "O servidor do Seerr não atende ao mínimo aos requisitos de versão! Por favor, atualize para pelo menos 2.0.0",
|
||||
"jellyseerr_test_failed": "Falha no teste do senhor. Por favor, tente novamente.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Pesquisa",
|
||||
"library": "Biblioteca",
|
||||
"custom_links": "Links personalizados",
|
||||
"favorites": "Atalhos"
|
||||
"favorites": "Atalhos",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Música",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "faixas"
|
||||
},
|
||||
"filters": {
|
||||
"all": "Tudo"
|
||||
},
|
||||
"recently_added": "Adicionado recentemente",
|
||||
"recently_played": "Reproduzido Recentemente",
|
||||
"frequently_played": "Reproduzidos com frequência",
|
||||
"explore": "Explorar",
|
||||
"top_tracks": "Músicas populares",
|
||||
"play": "Reproduzir",
|
||||
"shuffle": "Alteatório",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "Esta série",
|
||||
"all": "Todas as mídias (Padrão)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Eroare",
|
||||
"login_title": "Conectare",
|
||||
"login_to_title": "Conectare la",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Utilizator",
|
||||
"password_placeholder": "Parola",
|
||||
"login_button": "Conectare",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Ups!",
|
||||
"error_message": "Ceva nu e bine.\nAutentificați-vă din nou.",
|
||||
"continue_watching": "Continuă vizionarea",
|
||||
"continue": "Continue",
|
||||
"next_up": "Urmează",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "Adăugat recent în {{libraryName}}",
|
||||
"suggested_movies": "Filme sugerate",
|
||||
"suggested_episodes": "Episoade sugerate",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Bun venit la Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Un client gratuit și open-source pentru Jellyfin.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Setări",
|
||||
"log_out_button": "Deconectare",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categorii"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Aspect",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"hide_remote_session_button": "Hide Remote Session Button",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Durata saltului înapoi",
|
||||
"seconds_unit": "S"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Controale gesturi",
|
||||
"horizontal_swipe_skip": "Glisați orizontal pentru a sări",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Niciuna",
|
||||
"OnlyForced": "OnlyForced"
|
||||
},
|
||||
"text_color": "Culoare text",
|
||||
"background_color": "Culoare fundal",
|
||||
"outline_color": "Culoare contur",
|
||||
"outline_thickness": "Grosime contur",
|
||||
"background_opacity": "Opacitatea fundalului",
|
||||
"outline_opacity": "Opacitatea conturului",
|
||||
"bold_text": "Bold Text",
|
||||
"colors": {
|
||||
"Black": "Negru",
|
||||
"Gray": "Gri",
|
||||
"Silver": "Argint",
|
||||
"White": "Alb",
|
||||
"Maroon": "Maro",
|
||||
"Red": "Roșu",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Galben",
|
||||
"Olive": "Oliv",
|
||||
"Green": "Verde",
|
||||
"Teal": "Turcoaz",
|
||||
"Lime": "Verde-Deschis",
|
||||
"Purple": "Violet",
|
||||
"Navy": "Marină",
|
||||
"Blue": "Albastru",
|
||||
"Aqua": "Aqua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Nimic",
|
||||
"Thin": "Subțire",
|
||||
"Normal": "Normală",
|
||||
"Thick": "Grozav"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Altele",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Necunoscut"
|
||||
},
|
||||
"safe_area_in_controls": "Zona sigură pentru controale",
|
||||
"video_player": "Player video",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Experimental + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Afișează link-uri personalizate în meniu",
|
||||
"show_large_home_carousel": "Arată Caruselul Media Mare (beta)",
|
||||
"hide_libraries": "Ascunde bibliotecile",
|
||||
"select_liraries_you_want_to_hide": "Selectează bibliotecile pe care dorești să le ascunzi din fila Bibliotecă și din secțiunile paginii principale.",
|
||||
"disable_haptic_feedback": "Dezactivează vibrațiile tactile",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Maxim episoade redare automată",
|
||||
"disabled": "Dezactivat"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Descărcări"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Citește mai multe despre Marlin.",
|
||||
"save_button": "Salvează",
|
||||
"toasts": {
|
||||
"saved": "Salvat",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "Salvat"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Ștergeți toate fișierele descărcate",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Introducere",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Export loguri",
|
||||
"click_for_more_info": "Apasă pt mai multe informații",
|
||||
"level": "Nivel",
|
||||
"no_logs_available": "Niciun log disponibil",
|
||||
"delete_all_logs": "Șterge toate logurile"
|
||||
"no_logs_available": "Niciun log disponibil"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Limbi",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "Sistem"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Eroare la ștergerea fișierelor",
|
||||
"background_downloads_enabled": "Descărcări în fundal activate",
|
||||
"background_downloads_disabled": "Descărcări în fundal dezactivate"
|
||||
"error_deleting_files": "Eroare la ștergerea fișierelor"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Descărcări",
|
||||
"tvseries": "Seriale",
|
||||
"movies": "Filme",
|
||||
"queue": "Coadă",
|
||||
"other_media": "Alte suporturi",
|
||||
"queue_hint": "Descărcările se vor pierde la repornirea aplicației",
|
||||
"no_items_in_queue": "Niciun articol în coadă",
|
||||
"no_downloaded_items": "Niciun element descărcat",
|
||||
"delete_all_movies_button": "Șterge toate filmele",
|
||||
"delete_all_tvseries_button": "Șterge toate serialele",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "Noua actualizare necesită descărcarea din nou a conținutului. Vă rugăm să eliminați tot conținutul descărcat și să încercați din nou.",
|
||||
"back": "Înapoi",
|
||||
"delete": "Șterge",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Ceva nu a mers bine.",
|
||||
"could_not_get_stream_url_from_jellyfin": "Nu s-a putut obține adresa URL a fluxului de la Jellyfin",
|
||||
"eta": "Estimat {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Nu s-au putut șterge toate serialele",
|
||||
"deleted_media_successfully": "Alte fișiere șterse cu succes!",
|
||||
"failed_to_delete_media": "Ștergerea altor fișiere media a eșuat",
|
||||
"download_deleted": "Descărcare ştearsă",
|
||||
"download_cancelled": "Descărcare anulată",
|
||||
"could_not_delete_download": "Nu s-a putut șterge descărcarea",
|
||||
"download_paused": "Descărcare întreruptă",
|
||||
"could_not_pause_download": "Nu s-a putut întrerupe descărcarea",
|
||||
"download_resumed": "Descărcare din nou",
|
||||
"could_not_resume_download": "Nu s-a putut relua descărcarea",
|
||||
"download_completed": "Descărcare completă",
|
||||
"download_failed": "Descărcare eșuată",
|
||||
"download_failed_for_item": "Descărcarea a eșuat {{item}} - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} se descarcă deja",
|
||||
"all_files_deleted": "Toate descărcările au fost șterse cu succes",
|
||||
"files_deleted_by_type": "{{count}} {{type}} au fost șterse",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Toate fișierele, folderele și lucrările au fost șterse cu succes",
|
||||
"failed_to_clean_cache_directory": "Curățarea directorului cache a eșuat",
|
||||
"could_not_get_download_url_for_item": "Nu s-a putut obține URL-ul de descărcare pentru {{itemName}}",
|
||||
"go_to_downloads": "Accesați descărcările",
|
||||
"file_deleted": "{{item}} șters"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Selectare",
|
||||
"no_trailer_available": "Nicio remorcă disponibilă",
|
||||
"video": "Video",
|
||||
"audio": "Audio",
|
||||
"subtitle": "Subtitrare",
|
||||
"play": "Redare",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "Nimic",
|
||||
"track": "Limbă audio",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Caută...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "filme",
|
||||
"series": "seriale",
|
||||
"boxsets": "box sets",
|
||||
"playlists": "Playlists",
|
||||
"items": "articole"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Poster",
|
||||
"cover": "Copertă",
|
||||
"show_titles": "Afișează titlurile",
|
||||
"show_stats": "Afișează statisticile"
|
||||
"show_stats": "Afișează statisticile",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Genuri",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Sortează după",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "Ordine de sortare",
|
||||
"tags": "Taguri"
|
||||
"tags": "Taguri",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Niciun link"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Eroare",
|
||||
"failed_to_get_stream_url": "Nu s-a putut obține adresa URL a fluxului",
|
||||
"an_error_occured_while_playing_the_video": "A apărut o eroare la redarea videoclipului. Verificați jurnalele în setări.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Nu s-a putut crea un flux pentru Chromecast",
|
||||
"message_from_server": "Mesaj de la server: {{message}}",
|
||||
"next_episode": "Episodul următor",
|
||||
"refresh_tracks": "Reîmprospătare piese",
|
||||
"audio_tracks": "Audio:",
|
||||
"playback_state": "Stare de redare:",
|
||||
"index": "Indice:",
|
||||
"continue_watching": "Continuă să vizionezi",
|
||||
"go_back": "Înapoi",
|
||||
"downloaded_file_title": "Aveţi acest fişier descărcat",
|
||||
"downloaded_file_message": "Doriți să redați fișierul descărcat?",
|
||||
"downloaded_file_yes": "Da",
|
||||
"downloaded_file_no": "Nu",
|
||||
"downloaded_file_cancel": "Anulează"
|
||||
"downloaded_file_cancel": "Anulează",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Urmează",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Seriale",
|
||||
"seasons": "Sezoane",
|
||||
"season": "Sezon",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "Niciun episod pt acest sezon",
|
||||
"overview": "Prezentare generală",
|
||||
"more_with": "Mai multe cu {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Opțiuni Media",
|
||||
"quality": "Calitate",
|
||||
"audio": "Audio",
|
||||
"subtitles": "Subtitrare",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Arată mai mult",
|
||||
"show_less": "Arată mai puțin",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Apare în",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Nu s-a putut încărca elementul",
|
||||
"none": "Nimic",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Descărcați {{item_count}} articole",
|
||||
"download_unwatched_only": "Numai nevizionate",
|
||||
"download_button": "Descarcă"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Următorul",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Filme",
|
||||
"sports": "Sport",
|
||||
"for_kids": "Pt copii",
|
||||
"news": "Știri"
|
||||
"news": "Știri",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Confirmă",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Respinge",
|
||||
"requested_by": "Solicitat de {{user}}",
|
||||
"unknown_user": "Utilizator necunoscut",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Serverul Jellyseerr nu îndeplinește cerințele minime de versiune! Vă rugăm să actualizați cel puțin la versiunea 2.0.0",
|
||||
"jellyseerr_test_failed": "Testul Jellyseerr a eșuat. Vă rugăm să încercați din nou.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Caută",
|
||||
"library": "Bibiliotecă",
|
||||
"custom_links": "Linkuri personalizate",
|
||||
"favorites": "Favorite"
|
||||
"favorites": "Favorite",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Ошибка",
|
||||
"login_title": "Вход",
|
||||
"login_to_title": "Вход в",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Имя пользователя",
|
||||
"password_placeholder": "Пароль",
|
||||
"login_button": "Войти",
|
||||
@@ -12,25 +15,25 @@
|
||||
"failed_to_initiate_quick_connect": "Не удалось инициировать быстрое подключение",
|
||||
"got_it": "Принято",
|
||||
"connection_failed": "Соединение не удалось",
|
||||
"could_not_connect_to_server": "Не удалось подключиться к серверу. Пожалуйста проверьте URL и ваше интернет соединение.",
|
||||
"could_not_connect_to_server": "Не удалось подключиться к серверу. Пожалуйста, проверьте URL и ваше интернет-соединение.",
|
||||
"an_unexpected_error_occured": "Возникла непредвиденная ошибка",
|
||||
"change_server": "Поменять сервер",
|
||||
"invalid_username_or_password": "Неправильное имя пользователя или пароль",
|
||||
"user_does_not_have_permission_to_log_in": "Пользователь не имеет прав на вход",
|
||||
"server_is_taking_too_long_to_respond_try_again_later": "Сервер долго не отвечает, попробуйте позже.",
|
||||
"server_is_taking_too_long_to_respond_try_again_later": "Сервер долго не отвечает, попробуйте позже",
|
||||
"server_received_too_many_requests_try_again_later": "Сервер получил слишком много запросов, попробуйте позже.",
|
||||
"there_is_a_server_error": "Возникла ошибка сервера",
|
||||
"an_unexpected_error_occured_did_you_enter_the_correct_url": "Возникла непредвиденная ошибка. Вы правильно ввели URL?",
|
||||
"too_old_server_text": "Неподдерживаемый сервер Jellyfin обнаружен",
|
||||
"too_old_server_text": "Обнаружен неподдерживаемый сервер Jellyfin",
|
||||
"too_old_server_description": "Пожалуйста, обновите Jellyfin до последней версии"
|
||||
},
|
||||
"server": {
|
||||
"enter_url_to_jellyfin_server": "Укажите URL на ваш Jellyfin сервер",
|
||||
"server_url_placeholder": "http(s)://your-server.com",
|
||||
"connect_button": "Подключиться",
|
||||
"previous_servers": "предыдущие серверы",
|
||||
"previous_servers": "Предыдущие серверы",
|
||||
"clear_button": "Очистить",
|
||||
"swipe_to_remove": "Swipe to remove",
|
||||
"swipe_to_remove": "Смахните для удаления",
|
||||
"search_for_local_servers": "Поиск локальных серверов",
|
||||
"searching": "Поиск...",
|
||||
"servers": "Сервера",
|
||||
@@ -39,10 +42,16 @@
|
||||
"please_login_again": "Ваша сессия истекла. Пожалуйста, войдите снова.",
|
||||
"remove_saved_login": "Удалить сохраненный аккаунт",
|
||||
"remove_saved_login_description": "Ваши сохранённые данные для входа от этого сервера будут удалены. Вам придётся ввести ваши логин и пароль ещё раз.",
|
||||
"accounts_count": "{{count}} аккаунтов",
|
||||
"accounts_count": "Аккаунтов: {{count}}",
|
||||
"select_account": "Выбрать аккаунт",
|
||||
"add_account": "Добавить аккаунт",
|
||||
"remove_account_description": "Данные для входа {{username}} будут удалены."
|
||||
"remove_account_description": "Данные для входа {{username}} будут удалены.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Сохранить аккаунт",
|
||||
@@ -58,14 +67,14 @@
|
||||
"cancel_button": "Отмена"
|
||||
},
|
||||
"pin": {
|
||||
"enter_pin": "Введите PIN",
|
||||
"enter_pin_for": "Введите PIN для {{username}}",
|
||||
"enter_pin": "Введите PIN-код",
|
||||
"enter_pin_for": "Введите PIN-код для {{username}}",
|
||||
"enter_4_digits": "Введите 4 цифры",
|
||||
"invalid_pin": "Некорректный PIN",
|
||||
"setup_pin": "Установить PIN",
|
||||
"confirm_pin": "Подтвердите PIN",
|
||||
"invalid_pin": "Некорректный PIN-код",
|
||||
"setup_pin": "Установить PIN-код",
|
||||
"confirm_pin": "Подтвердите PIN-код",
|
||||
"pins_dont_match": "PIN-коды не совпадают",
|
||||
"forgot_pin": "Забыли PIN?",
|
||||
"forgot_pin": "Забыли PIN-код?",
|
||||
"forgot_pin_desc": "Ваши данные для входа будут удалены"
|
||||
},
|
||||
"password": {
|
||||
@@ -84,22 +93,22 @@
|
||||
"server_unreachable": "Сервер недоступен",
|
||||
"server_unreachable_message": "Не удалось соединиться с сервером.\nПожалуйста, проверьте настройки сети.",
|
||||
"oops": "Упс!",
|
||||
"error_message": "Что-то пошло не так.\nПожалуйста выйдите и зайдите снова.",
|
||||
"error_message": "Что-то пошло не так.\nПожалуйста, выйдите и зайдите снова.",
|
||||
"continue_watching": "Продолжить",
|
||||
"continue": "Continue",
|
||||
"next_up": "Далее",
|
||||
"continue_and_next_up": "Продолжить и Далее",
|
||||
"recently_added_in": "Недавно добавлено в {{libraryName}}",
|
||||
"suggested_movies": "Предложенные фильмы",
|
||||
"suggested_episodes": "Предложенные серии",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Добро пожаловать в Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Бесплатный клиент для Jellyfin с открытым кодом",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Бесплатный клиент для Jellyfin с открытым кодом.",
|
||||
"features_title": "Функции",
|
||||
"features_description": "Streamyfin имеет множество функций и интегрируется с широким спектром программ, которое вы можете найти в меню настроек:",
|
||||
"jellyseerr_feature_description": "Подключитесь к Jellyseerr и запрашивайте фильмы прямо в приложении.",
|
||||
"downloads_feature_title": "Загрузки",
|
||||
"downloads_feature_description": "Скачивайте фильмы и сериалы для просмотра без интернета. Используйте стандартный способ или установите сервер оптимизации для загрузки файлов в фоновом режиме.",
|
||||
"chromecast_feature_description": "Транслируйте фильмы и сериалы на ваши устройста с поддержкой Chromecast.",
|
||||
"chromecast_feature_description": "Транслируйте фильмы и сериалы на ваши устройства с поддержкой Chromecast.",
|
||||
"centralised_settings_plugin_title": "Плагин для централизованной настройки",
|
||||
"centralised_settings_plugin_description": "Настраивайте параметры из централизованного места на сервере Jellyfin. Все настройки клиента для всех пользователей будут синхронизированы автоматически.",
|
||||
"done_button": "Готово",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Настройки",
|
||||
"log_out_button": "Выйти",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Категории"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Внешний вид",
|
||||
"merge_next_up_continue_watching": "Объединить «Продолжить» и «Далее»",
|
||||
"hide_remote_session_button": "Скрыть кнопку «Удалённый сеанс»"
|
||||
"hide_remote_session_button": "Скрыть кнопку «Удалённый сеанс»",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Сеть",
|
||||
@@ -129,7 +153,7 @@
|
||||
"auto_switch_enabled": "Переключаться дома автоматически",
|
||||
"auto_switch_description": "Автоматически переключаться на локальный URL при присоединении к домашней WiFi сети",
|
||||
"local_url": "Локальный URL",
|
||||
"local_url_hint": "Введите локальный URL вашего сервера (e.g., http://192.168.1.100:8096)",
|
||||
"local_url_hint": "Введите локальный URL вашего сервера (например, http://192.168.1.100:8096)",
|
||||
"local_url_placeholder": "http://192.168.1.100:8096",
|
||||
"home_wifi_networks": "Домашние WiFi сети",
|
||||
"add_current_network": "Добавить \"{{ssid}}\"",
|
||||
@@ -160,28 +184,44 @@
|
||||
},
|
||||
"quick_connect": {
|
||||
"quick_connect_title": "Быстрое подключение",
|
||||
"authorize_button": "Авторизировать через быстрое подключение",
|
||||
"authorize_button": "Авторизовать через быстрое подключение",
|
||||
"enter_the_quick_connect_code": "Введите код для быстрого подключения...",
|
||||
"success": "Успех",
|
||||
"quick_connect_autorized": "Быстрое подключение авторизовано",
|
||||
"error": "Ошибка",
|
||||
"invalid_code": "Неверный код",
|
||||
"authorize": "Авторизировать"
|
||||
"authorize": "Авторизовать"
|
||||
},
|
||||
"media_controls": {
|
||||
"media_controls_title": "Медиа-контроль",
|
||||
"media_controls_title": "Управление воспроизведением",
|
||||
"forward_skip_length": "Шаг перемотки вперёд",
|
||||
"rewind_length": "Шаг перемотки назад",
|
||||
"seconds_unit": "c"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Управление жестами",
|
||||
"horizontal_swipe_skip": "Горизонтальный свайп для перемотки",
|
||||
"horizontal_swipe_skip_description": "Проведите влево/вправо, когда элементы управления скрыты, чтобы пропустить",
|
||||
"left_side_brightness": "Управление яркостью левой стороны",
|
||||
"left_side_brightness_description": "Смахните вверх/вниз на левой стороне для настройки яркости",
|
||||
"horizontal_swipe_skip": "Проведите влево/вправо для перемотки",
|
||||
"horizontal_swipe_skip_description": "Проведите влево/вправо, когда элементы управления скрыты, чтобы перемотать",
|
||||
"left_side_brightness": "Управление яркостью слева",
|
||||
"left_side_brightness_description": "Проведите вверх/вниз на левой стороне для настройки яркости",
|
||||
"right_side_volume": "Управление громкостью справа",
|
||||
"right_side_volume_description": "Свайп вверх/вниз с правой стороны для настройки громкости",
|
||||
"right_side_volume_description": "Проведите вверх/вниз с правой стороны для настройки громкости",
|
||||
"hide_volume_slider": "Скрыть индикатор громкости",
|
||||
"hide_volume_slider_description": "Скрывает индикатор громкости в плеере",
|
||||
"hide_brightness_slider": "Скрыть индикатор яркости",
|
||||
@@ -205,7 +245,7 @@
|
||||
},
|
||||
"subtitles": {
|
||||
"subtitle_title": "Субтитры",
|
||||
"subtitle_hint": "Настройки отображения субтитров",
|
||||
"subtitle_hint": "Настройки отображения субтитров.",
|
||||
"subtitle_language": "Язык субтитров",
|
||||
"subtitle_mode": "Режим субтитров",
|
||||
"set_subtitle_track": "Устанавливать субтитры из предыдущего элемента",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Отсутствует",
|
||||
"OnlyForced": "Только принудительные"
|
||||
},
|
||||
"text_color": "Цвет текста",
|
||||
"background_color": "Цвет фона",
|
||||
"outline_color": "Цвет контура",
|
||||
"outline_thickness": "Толщина контура",
|
||||
"background_opacity": "Прозрачность фона",
|
||||
"outline_opacity": "Прозрачность контура",
|
||||
"bold_text": "Жирный",
|
||||
"colors": {
|
||||
"Black": "Черный",
|
||||
"Gray": "Серый",
|
||||
"Silver": "Серебристый",
|
||||
"White": "Белый",
|
||||
"Maroon": "Бордовый",
|
||||
"Red": "Красный",
|
||||
"Fuchsia": "Пурпурный",
|
||||
"Yellow": "Жёлтый",
|
||||
"Olive": "Оливковый",
|
||||
"Green": "Зелёный",
|
||||
"Teal": "Бирюзовый",
|
||||
"Lime": "Лаймовый",
|
||||
"Purple": "Фиолетовый",
|
||||
"Navy": "Тёмно-синий",
|
||||
"Blue": "Синий",
|
||||
"Aqua": "Голубой"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Отсутствует",
|
||||
"Thin": "Тонкий",
|
||||
"Normal": "Обычный",
|
||||
"Thick": "Толстый"
|
||||
},
|
||||
"subtitle_color": "Цвет субтитров",
|
||||
"subtitle_background_color": "Цвет фона",
|
||||
"subtitle_font": "Шрифт субтитров",
|
||||
"ksplayer_title": "Настройки KSPlayer",
|
||||
"hardware_decode": "Аппаратное декодирование",
|
||||
"hardware_decode_description": "Использовать аппаратное ускорение для декодирования видео. Выключите, если наблюдаете проблемы с воспроизведением."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "Настройки субтитров в VLC",
|
||||
"hint": "Настройте внешний вид субтитров в VLC плеере. Изменения применятся при следующем воспроизведении.",
|
||||
"text_color": "Цвет текста",
|
||||
"background_color": "Цвет фона",
|
||||
"background_opacity": "Прозрачность фона",
|
||||
"outline_color": "Цвет контура",
|
||||
"outline_opacity": "Прозрачность контура",
|
||||
"outline_thickness": "Толщина контура",
|
||||
"bold": "Жирный",
|
||||
"margin": "Отступ снизу"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Видеоплеер",
|
||||
"video_player": "Видеоплеер",
|
||||
"video_player_description": "Выберите видеоплеер в iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Другое",
|
||||
@@ -294,34 +294,25 @@
|
||||
"UNKNOWN": "Неизвестное"
|
||||
},
|
||||
"safe_area_in_controls": "Безопасная зона в элементах управления",
|
||||
"video_player": "Видеоплеер",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Экспериментальный + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Показать ссылки кастомного меню",
|
||||
"show_large_home_carousel": "Показывать большую карусель (beta)",
|
||||
"show_custom_menu_links": "Показать ссылки пользовательского меню",
|
||||
"hide_libraries": "Скрыть библиотеки",
|
||||
"select_liraries_you_want_to_hide": "Выберите Библиотеки, которое хотите спрятать из вкладки Библиотеки и домашней страницы.",
|
||||
"disable_haptic_feedback": "Отключить тактильную обратную связь",
|
||||
"default_quality": "Качество по умолчанию",
|
||||
"default_playback_speed": "Скорость воспроизведения по умолчанию",
|
||||
"auto_play_next_episode": "Автоматически воспроизводить следующий эпизод",
|
||||
"max_auto_play_episode_count": "Максимальное количество автовоспроизведения эпизодов",
|
||||
"max_auto_play_episode_count": "Максимальное количество авто воспроизводимых эпизодов",
|
||||
"disabled": "Отключено"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Загрузки"
|
||||
},
|
||||
"music": {
|
||||
"title": "Музыка",
|
||||
"playback_title": "Воспроизведение",
|
||||
"playback_description": "Настройте воспроизведение музыки.",
|
||||
"prefer_downloaded": "Предпочитать скачанные песни",
|
||||
"caching_title": "Кеширование",
|
||||
"caching_description": "Автоматически предкешировать следующие треки для стабильного воспроизведения.",
|
||||
"caching_description": "Автоматически кешировать следующие треки для стабильного воспроизведения.",
|
||||
"lookahead_enabled": "Включить предкеширование",
|
||||
"lookahead_count": "Сколько предкешировать",
|
||||
"lookahead_count": "Сколько треков предкешировать",
|
||||
"max_cache_size": "Максимальное число предкешированных треков"
|
||||
},
|
||||
"plugins": {
|
||||
@@ -329,8 +320,8 @@
|
||||
"jellyseerr": {
|
||||
"jellyseerr_warning": "Эта интеграция находится на ранней стадии. Ожидайте изменений.",
|
||||
"server_url": "URL сервера",
|
||||
"server_url_hint": "Пример: http(s)://your-host.url\n(Добавьте порт если необходимо)",
|
||||
"server_url_placeholder": "Jellyseerr URL...",
|
||||
"server_url_hint": "Пример: http(s)://your-host.url\n(добавьте порт если необходимо)",
|
||||
"server_url_placeholder": "Seerr URL...",
|
||||
"password": "Пароль",
|
||||
"password_placeholder": "Введите пароль для пользователя Jellyfin {{username}}",
|
||||
"login_button": "Войти",
|
||||
@@ -349,30 +340,25 @@
|
||||
}
|
||||
},
|
||||
"marlin_search": {
|
||||
"enable_marlin_search": "Включить Marlin Search ",
|
||||
"enable_marlin_search": "Включить Marlin Search",
|
||||
"url": "URL-адрес",
|
||||
"server_url_placeholder": "http(s)://domain.org:port",
|
||||
"marlin_search_hint": "Введите URL для Marlin сервера. URL должен включать http or https и опционально порт.",
|
||||
"read_more_about_marlin": "Узнать больше о Marlin.",
|
||||
"save_button": "Сохранить",
|
||||
"toasts": {
|
||||
"saved": "Сохранено",
|
||||
"refreshed": "Настройки обновлены с сервера"
|
||||
},
|
||||
"refresh_from_server": "Обновить настройки с сервера"
|
||||
"saved": "Сохранено"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Включить Streamystats",
|
||||
"disable_streamystats": "Выключить Streamystats",
|
||||
"enable_search": "Использовать в поиске",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Введите URL вашего сервера Streamystats. URL должен включать http/https и порт при необходимости.",
|
||||
"read_more_about_streamystats": "Узнать больше про Streamystats.",
|
||||
"save_button": "Сохранить",
|
||||
"save": "Сохранить",
|
||||
"features_title": "Функции",
|
||||
"home_sections_title": "Показывать на главной",
|
||||
"enable_movie_recommendations": "Рекомендации фильмов",
|
||||
"enable_series_recommendations": "Рекомендации сериалов",
|
||||
"enable_promoted_watchlists": "Продвигаемые списки просмотра",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Обновить настройки с сервера"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Включить интеграцию со списками просмотра",
|
||||
"watchlist_button": "Изменить интеграцию со списками просмотра"
|
||||
"watchlist_enabler": "Включить интеграцию со списками просмотра"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -399,14 +384,17 @@
|
||||
"size_used": "{{used}} из {{total}} использовано",
|
||||
"delete_all_downloaded_files": "Удалить все загруженные файлы",
|
||||
"music_cache_title": "Кеш музыки",
|
||||
"music_cache_description": "Автоматически прекешировать песни по мере прослушивания для плавного воспроизведения и поддержки отсутствия интернета",
|
||||
"enable_music_cache": "Кешировать музыку",
|
||||
"music_cache_description": "Автоматически кешировать песни по мере прослушивания для плавного воспроизведения и поддержки отсутствия интернета",
|
||||
"clear_music_cache": "Очистить кеш музыки",
|
||||
"music_cache_size": "{{size}} кешировано",
|
||||
"music_cache_size": "Кешировано: {{size}}",
|
||||
"music_cache_cleared": "Кеш музыки очищен",
|
||||
"delete_all_downloaded_songs": "Удалить все скачанные песни",
|
||||
"downloaded_songs_size": "{{size}} скачано",
|
||||
"downloaded_songs_deleted": "Скачанные песни удалены"
|
||||
"downloaded_songs_size": "Скачано: {{size}}",
|
||||
"downloaded_songs_deleted": "Скачанные песни удалены",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Вступление",
|
||||
@@ -415,11 +403,10 @@
|
||||
},
|
||||
"logs": {
|
||||
"logs_title": "Логи",
|
||||
"export_logs": "Экспорт журналов",
|
||||
"export_logs": "Сохранить логи",
|
||||
"click_for_more_info": "Нажмите для получения дополнительной информации",
|
||||
"level": "Уровень",
|
||||
"no_logs_available": "Логи не доступны",
|
||||
"delete_all_logs": "Удалить все логи"
|
||||
"no_logs_available": "Логи не доступны"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Языки",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "Системный"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Ошибка при удалении файлов",
|
||||
"background_downloads_enabled": "Фоновая загрузка включена",
|
||||
"background_downloads_disabled": "Фоновая загрузка отключена"
|
||||
"error_deleting_files": "Ошибка при удалении файлов"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Загрузки",
|
||||
"tvseries": "Сериалы",
|
||||
"movies": "Фильмы",
|
||||
"queue": "Очередь",
|
||||
"other_media": "Прочие файлы",
|
||||
"queue_hint": "Очередь очистится после перезапуска",
|
||||
"no_items_in_queue": "Нет элементов в очереди",
|
||||
"no_downloaded_items": "Нет загруженных файлов",
|
||||
"delete_all_movies_button": "Удалить все фильмы",
|
||||
"delete_all_tvseries_button": "Удалить все сериалы",
|
||||
@@ -453,9 +449,10 @@
|
||||
"no_active_downloads": "Нет активных загрузок",
|
||||
"active_downloads": "Активные",
|
||||
"new_app_version_requires_re_download": "Новая версия приложения требует повторной загрузки",
|
||||
"new_app_version_requires_re_download_description": "Новая версия приложения требует повторной загрузки. Пожалуйста удалите всё и попробуйте заново.",
|
||||
"new_app_version_requires_re_download_description": "Новая версия приложения требует повторной загрузки контента. Пожалуйста, удалите весь скачанный контент и попробуйте заново.",
|
||||
"back": "Назад",
|
||||
"delete": "Удалить",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Что-то пошло не так",
|
||||
"could_not_get_stream_url_from_jellyfin": "Не удалось получить ссылку трансляции из Jellyfin",
|
||||
"eta": "Осталось {{eta}}",
|
||||
@@ -465,53 +462,48 @@
|
||||
"failed_to_delete_all_movies": "Возникла ошибка при удалении всех фильмов",
|
||||
"deleted_all_tvseries_successfully": "Все сериалы были успешно удалены!",
|
||||
"failed_to_delete_all_tvseries": "Возникла ошибка при удалении всех сериалов",
|
||||
"deleted_media_successfully": "Другие носители успешно удалены!",
|
||||
"failed_to_delete_media": "Не удалось удалить другой файл",
|
||||
"download_deleted": "Удалено",
|
||||
"deleted_media_successfully": "Остальные медиафайлы успешно удалены!",
|
||||
"failed_to_delete_media": "Не удалось удалить остальные медиафайлы",
|
||||
"download_cancelled": "Загрузка отменена",
|
||||
"could_not_delete_download": "Не удалось удалить загрузку",
|
||||
"download_paused": "На паузе",
|
||||
"could_not_pause_download": "Не удалось приостановить загрузку",
|
||||
"download_resumed": "Продолжено",
|
||||
"could_not_resume_download": "Не удалось продолжить загрузку",
|
||||
"download_completed": "Завершено",
|
||||
"download_failed": "Не удалось загрузить",
|
||||
"download_failed_for_item": "Загрузка {{item}} провалилась с ошибкой: {{error}}",
|
||||
"download_completed_for_item": "{{item}} успешно загружен",
|
||||
"download_started_for_item": "Загрузка началась для {{item}}",
|
||||
"download_started_for_item": "Загрузка {{item}} началась",
|
||||
"failed_to_start_download": "Не удалось начать загрузку",
|
||||
"item_already_downloading": "{{item}} уже загружается",
|
||||
"all_files_deleted": "Все загрузки удалены",
|
||||
"files_deleted_by_type": "{{count}} {{type}} удалён(о)",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Все файлы, папки, и задачи были успешно удалены",
|
||||
"failed_to_clean_cache_directory": "Не удалось очистить директорию кэша",
|
||||
"could_not_get_download_url_for_item": "Не удалось получить URL загрузки для {{itemName}}",
|
||||
"go_to_downloads": "В загрузки",
|
||||
"file_deleted": "{{item}} удалён"
|
||||
"files_deleted_by_type": "Удалено: {{count}} {{type}}",
|
||||
"could_not_get_download_url_for_item": "Не удалось получить URL для загрузки {{itemName}}",
|
||||
"file_deleted": "Удалено: {{item}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Выбрать",
|
||||
"no_trailer_available": "Трейлер недоступен",
|
||||
"video": "Видео",
|
||||
"audio": "Звук",
|
||||
"subtitle": "Субтитры",
|
||||
"play": "Воспроизвести",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "Отсутствует",
|
||||
"track": "Трек",
|
||||
"cancel": "Отмена",
|
||||
"delete": "Удалить",
|
||||
"ok": "ОК",
|
||||
"remove": "Удалить",
|
||||
"next": "Вперед",
|
||||
"back": "Назад",
|
||||
"continue": "Продолжить",
|
||||
"verifying": "Проверка..."
|
||||
"verifying": "Проверка...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Поиск...",
|
||||
"x_items": "{{count}} элементов",
|
||||
"x_items": "Элементов: {{count}}",
|
||||
"library": "Библиотека",
|
||||
"discover": "Найти новое",
|
||||
"no_results": "Ничего не найдено",
|
||||
@@ -529,14 +521,14 @@
|
||||
"request_series": "Запросить сериалы",
|
||||
"recently_added": "Недавно добавлено",
|
||||
"recent_requests": "Недавно запрошено",
|
||||
"plex_watchlist": "Список просмотра с Plex",
|
||||
"plex_watchlist": "Список просмотра Plex",
|
||||
"trending": "В тренде",
|
||||
"popular_movies": "Популярные фильмы",
|
||||
"movie_genres": "Популярные жанры",
|
||||
"upcoming_movies": "Предстоящие фильмы",
|
||||
"studios": "Студии",
|
||||
"popular_tv": "Популярные сериалы",
|
||||
"tv_genres": "жанры сериалов",
|
||||
"tv_genres": "Жанры сериалов",
|
||||
"upcoming_tv": "Предстоящие сериалы",
|
||||
"networks": "Сети",
|
||||
"tmdb_movie_keyword": "TMDB Ключевые слова фильмов",
|
||||
@@ -556,7 +548,8 @@
|
||||
"movies": "Фильмы",
|
||||
"series": "Сериалы",
|
||||
"boxsets": "Коллекции",
|
||||
"items": "элементы"
|
||||
"playlists": "Playlists",
|
||||
"items": "Элементы"
|
||||
},
|
||||
"options": {
|
||||
"display": "Отображать",
|
||||
@@ -565,8 +558,9 @@
|
||||
"image_style": "Стиль изображения",
|
||||
"poster": "Постер",
|
||||
"cover": "Обложка",
|
||||
"show_titles": "Показывать загаловки",
|
||||
"show_stats": "Показывать статистику"
|
||||
"show_titles": "Показывать заголовки",
|
||||
"show_stats": "Показывать статистику",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Жанры",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Сортировка",
|
||||
"filter_by": "Фильтр",
|
||||
"sort_order": "Порядок",
|
||||
"tags": "Тэги"
|
||||
"tags": "Теги",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Нет ссылок"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Ошибка",
|
||||
"failed_to_get_stream_url": "Не удалось получить URL потока",
|
||||
"an_error_occured_while_playing_the_video": "Возникла Неожиданная ошибка во время воспроизведения. Проверьте логи в настройках.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Не удалось создать поток для Chromecast",
|
||||
"message_from_server": "Сообщение от сервера: {{message}}",
|
||||
"next_episode": "Следующая серия",
|
||||
"refresh_tracks": "Обновить дорожки",
|
||||
"audio_tracks": "Аудио дорожки:",
|
||||
"playback_state": "Состояние воспроизведения:",
|
||||
"index": "Индекс:",
|
||||
"continue_watching": "Продолжить просмотр",
|
||||
"go_back": "Назад",
|
||||
"downloaded_file_title": "Этот файл уже скачан",
|
||||
"downloaded_file_message": "Хотите воспроизвести скачанный файл?",
|
||||
"downloaded_file_yes": "Да",
|
||||
"downloaded_file_no": "Нет",
|
||||
"downloaded_file_cancel": "Отмена"
|
||||
"downloaded_file_cancel": "Отмена",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Далее",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Серии",
|
||||
"seasons": "Сезоны",
|
||||
"season": "Сезон",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "В этом сезоне нет серий",
|
||||
"overview": "Обзор",
|
||||
"more_with": "Больше с {{name}}",
|
||||
@@ -624,13 +653,23 @@
|
||||
"no_similar_items_found": "Похожие элементы не найдены",
|
||||
"video": "Видео",
|
||||
"more_details": "Больше деталей",
|
||||
"media_options": "Media Options",
|
||||
"media_options": "Опции медиа",
|
||||
"quality": "Качество",
|
||||
"audio": "Звук",
|
||||
"subtitles": "Субтитры",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Показать больше",
|
||||
"show_less": "Показать меньше",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Появлялся в",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Не удалось загрузить элемент",
|
||||
"none": "Отсутствует",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Загрузить {{item_count}} элементов",
|
||||
"download_unwatched_only": "Только непросмотренные",
|
||||
"download_button": "Загрузить"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Далее",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Фильмы",
|
||||
"sports": "Спорт",
|
||||
"for_kids": "Для детей",
|
||||
"news": "Новости"
|
||||
"news": "Новости",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Подтвердить",
|
||||
@@ -685,26 +741,32 @@
|
||||
"currently_streaming_on": "Сейчас доступно на",
|
||||
"advanced": "Продвинутое",
|
||||
"request_as": "Запросить как",
|
||||
"tags": "Тэги",
|
||||
"tags": "Теги",
|
||||
"quality_profile": "Профиль качества",
|
||||
"root_folder": "Корневая папка",
|
||||
"season_all": "Сезон (все)",
|
||||
"season_number": "Сезон {{season_number}}",
|
||||
"number_episodes": "{{episode_number}} серий",
|
||||
"number_episodes": "Серий: {{episode_number}}",
|
||||
"born": "Рожден",
|
||||
"appearances": "Появления",
|
||||
"approve": "Одобрить",
|
||||
"decline": "Отклонить",
|
||||
"requested_by": "Запрошено {{user}}",
|
||||
"unknown_user": "Неизвестный пользователь",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Сервер Jellyseerr не соответствует минимальным требованиям версии! Пожалуйста, обновите до версии не ниже 2.0.0",
|
||||
"jellyseerr_test_failed": "Тест Jellyseerr не пройден. Попробуйте еще раз.",
|
||||
"failed_to_test_jellyseerr_server_url": "Не удалось проверить URL-адрес сервера jellyseerr",
|
||||
"failed_to_test_jellyseerr_server_url": "Не удалось проверить URL-адрес сервера Seerr",
|
||||
"issue_submitted": "Проблема отправлена!",
|
||||
"requested_item": "Запрошено {{item}}!",
|
||||
"you_dont_have_permission_to_request": "У вас нет разрешения на запрос!",
|
||||
"something_went_wrong_requesting_media": "Что-то пошло не так при запросе медиафайлов!",
|
||||
"something_went_wrong_requesting_media": "Что-то пошло не так при запросе медиа!",
|
||||
"request_approved": "Запрос одобрен!",
|
||||
"request_declined": "Запрос отклонён!",
|
||||
"failed_to_approve_request": "Не удалось одобрить запрос",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Поиск",
|
||||
"library": "Библиотека",
|
||||
"custom_links": "Ссылки",
|
||||
"favorites": "Избранное"
|
||||
"favorites": "Избранное",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Музыка",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Плейлисты",
|
||||
"tracks": "треки"
|
||||
},
|
||||
"filters": {
|
||||
"all": "Все"
|
||||
},
|
||||
"recently_added": "Недавно добавлено",
|
||||
"recently_played": "Недавно воспроизведено",
|
||||
"frequently_played": "Часто играет",
|
||||
"explore": "Найти новое",
|
||||
"top_tracks": "Топ",
|
||||
"play": "Воспроизвести",
|
||||
"shuffle": "Перемешать",
|
||||
@@ -801,7 +860,7 @@
|
||||
"name_label": "Название",
|
||||
"name_placeholder": "Введите название списка",
|
||||
"description_label": "Описание",
|
||||
"description_placeholder": "Введите описание (не обязательно)",
|
||||
"description_placeholder": "Введите описание (необязательно)",
|
||||
"is_public_label": "Публичный",
|
||||
"is_public_description": "Разрешить остальным пользователям видеть этот список",
|
||||
"allowed_type_label": "Тип контента",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "Ко всему сериалу",
|
||||
"all": "Ко всем файлам (по умолчанию)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
"next_up": "I ardhshëm",
|
||||
"recently_added_in": "Shtuar kohët e fundit në {{libraryName}}",
|
||||
"suggested_movies": "Filma të sugjeruar",
|
||||
"suggested_episodes": "Episodat të sugjeruara",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Mirë se vini në Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Një klient falas dhe me burim të hapur për Jellyfin.",
|
||||
@@ -128,11 +127,6 @@
|
||||
"UNKNOWN": "E panjohur"
|
||||
},
|
||||
"safe_area_in_controls": "Zonë e sigurt në kontrolla",
|
||||
"video_player": "Video lexues",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Eksperimentale + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Shfaq lidhje menuje të personalizuara",
|
||||
"hide_libraries": "Fsheh bibliotekat",
|
||||
"select_liraries_you_want_to_hide": "Zgjidhni bibliotekat që dëshironi të fshehni nga skeda e Bibliotekut dhe seksionet e faqes kryesore.",
|
||||
@@ -140,7 +134,6 @@
|
||||
"default_quality": "Kvaliteti standard"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Shkarkime",
|
||||
"optimized_versions_server": "Serveri i versioneve të optimizuara",
|
||||
"save_button": "Ruaj",
|
||||
"optimized_server": "Server i optimizuar",
|
||||
@@ -205,8 +198,7 @@
|
||||
"export_logs": "Eksporto regjistrin",
|
||||
"click_for_more_info": "Kliko për më shumë informacion",
|
||||
"level": "Nivele",
|
||||
"no_logs_available": "Nuk ka regjistrime të disponueshme",
|
||||
"delete_all_logs": "Fshijë të gjitha regjistrimet"
|
||||
"no_logs_available": "Nuk ka regjistrime të disponueshme"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Gjuhët",
|
||||
@@ -216,8 +208,6 @@
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Gabim gjatë fshirjes së skedarëve",
|
||||
"background_downloads_enabled": "Shkarkimet në sfond aktivizuar",
|
||||
"background_downloads_disabled": "Shkarkimet në sfond deaktivizuar",
|
||||
"connected": "Lidhur",
|
||||
"could_not_connect": "Nuk u mundet te vendoset kyqja",
|
||||
"invalid_url": "URL i pavlefshme"
|
||||
@@ -231,9 +221,6 @@
|
||||
"downloads_title": "Shkarkimet",
|
||||
"tvseries": "Seriale TV",
|
||||
"movies": "Filma",
|
||||
"queue": "Rradhë",
|
||||
"queue_hint": "Rradhat dhe shkarkimet do të humbasin pas genstartit të aplikacionit",
|
||||
"no_items_in_queue": "Nuk ka elemente në rradhë",
|
||||
"no_downloaded_items": "Nuk ka shkarkime",
|
||||
"delete_all_movies_button": "Fshijë të gjithë filmat",
|
||||
"delete_all_tvseries_button": "Fshijë të gjitha serialet TV",
|
||||
@@ -269,9 +256,7 @@
|
||||
"no_response_received_from_server": "Nuk u mor asnjë përgjigje nga serveri",
|
||||
"error_setting_up_the_request": "Gabim gjatë konfigurimit të kërkesës",
|
||||
"failed_to_start_download_for_item_unexpected_error": "Dështoj fillimi i shkarkimit për {{item}}: Gabim i papritur",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Të gjitha skedarët, dosjet dhe detyrat u fshinë me sukses",
|
||||
"an_error_occured_while_deleting_files_and_jobs": "Ndodhi një gabim gjatë fshirjes së skedarëve dhe detyrave",
|
||||
"go_to_downloads": "Shko te shkarkimet"
|
||||
"an_error_occured_while_deleting_files_and_jobs": "Ndodhi një gabim gjatë fshirjes së skedarëve dhe detyrave"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -365,12 +350,8 @@
|
||||
"video_has_finished_playing": "Videoja ka përfunduar shfaqjen!",
|
||||
"no_video_source": "Asnjë burim video...",
|
||||
"next_episode": "Epizoda e ardhshme",
|
||||
"refresh_tracks": "Rifresko shtigjet",
|
||||
"subtitle_tracks": "Shtigjet e nënteksteve:",
|
||||
"audio_tracks": "Shtigjet audio:",
|
||||
"playback_state": "Gjendja e rishikimit:",
|
||||
"no_data_available": "Nuk ka të dhëna të disponueshme",
|
||||
"index": "Indeksi:"
|
||||
"no_data_available": "Nuk ka të dhëna të disponueshme"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "E ardhshme",
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Fel",
|
||||
"login_title": "Logga in",
|
||||
"login_to_title": "Logga in till",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Användarnamn",
|
||||
"password_placeholder": "Lösenord",
|
||||
"login_button": "Logga in",
|
||||
@@ -44,7 +47,11 @@
|
||||
"add_account": "Lägg till konto",
|
||||
"remove_account_description": "Detta kommer att ta bort de sparade uppgifterna för {{username}}.",
|
||||
"remove_server": "Ta bort server",
|
||||
"remove_server_description": "Detta kommer att ta bort {{server}} och alla sparade konton från din lista."
|
||||
"remove_server_description": "Detta kommer att ta bort {{server}} och alla sparade konton från din lista.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Spara konto",
|
||||
@@ -93,7 +100,6 @@
|
||||
"continue_and_next_up": "Fortsätt titta & nästa avsnitt",
|
||||
"recently_added_in": "Nyligen tillagt i {{libraryName}}",
|
||||
"suggested_movies": "Filmförslag",
|
||||
"suggested_episodes": "Föreslagna avsnitt",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Välkommen till Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "En gratis klient för Jellyfin med öppen källkod.",
|
||||
@@ -112,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Inställningar",
|
||||
"log_out_button": "Logga ut",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Kategorier"
|
||||
},
|
||||
@@ -128,12 +140,12 @@
|
||||
"show_home_backdrop": "Dynamisk hembakgrund",
|
||||
"show_hero_carousel": "Hjältekarusell",
|
||||
"show_series_poster_on_episode": "Visa serieaffisch på avsnitt",
|
||||
"theme_music": "Temamusik",
|
||||
"display_size": "Visningsstorlek",
|
||||
"display_size_small": "Liten",
|
||||
"display_size_default": "Standard",
|
||||
"display_size_large": "Stor",
|
||||
"display_size_extra_large": "Extra stor",
|
||||
"theme_music": "Temamusik"
|
||||
"display_size_extra_large": "Extra stor"
|
||||
},
|
||||
"network": {
|
||||
"title": "Nätverk",
|
||||
@@ -196,6 +208,12 @@
|
||||
"max_cache_size": "Max cachestorlek",
|
||||
"max_backward_cache": "Max bakåtcache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Gestkontroller",
|
||||
"horizontal_swipe_skip": "Horisontell Svepning för att Hoppa Fram/Bak",
|
||||
@@ -242,43 +260,6 @@
|
||||
"None": "Inga",
|
||||
"OnlyForced": "Bara Tvingande"
|
||||
},
|
||||
"text_color": "Textfärg",
|
||||
"background_color": "Bakgrundsfärg",
|
||||
"outline_color": "Konturfärg",
|
||||
"outline_thickness": "Konturtjocklek",
|
||||
"background_opacity": "Bakgrundsgenomskinlighet",
|
||||
"outline_opacity": "Kontursgenomskinlighet",
|
||||
"bold_text": "FetStil",
|
||||
"colors": {
|
||||
"Black": "Svart",
|
||||
"Gray": "Grå",
|
||||
"Silver": "Silver",
|
||||
"White": "Vit",
|
||||
"Maroon": "Rödbrun",
|
||||
"Red": "Röd",
|
||||
"Fuchsia": "Purpur",
|
||||
"Yellow": "Gul",
|
||||
"Olive": "Olivgrön",
|
||||
"Green": "Grön",
|
||||
"Teal": "Turkos",
|
||||
"Lime": "Limegrön",
|
||||
"Purple": "Lila",
|
||||
"Navy": "Marinblå",
|
||||
"Blue": "Blå",
|
||||
"Aqua": "Aqua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Inget",
|
||||
"Thin": "Tunn",
|
||||
"Normal": "Normal",
|
||||
"Thick": "Tjock"
|
||||
},
|
||||
"subtitle_color": "Undertextfärg",
|
||||
"subtitle_background_color": "Bakgrundsfärg",
|
||||
"subtitle_font": "Typsnitt för undertexter",
|
||||
"ksplayer_title": "KSPlayer-inställningar",
|
||||
"hardware_decode": "Hårdvaruavkodning",
|
||||
"hardware_decode_description": "Använd hårdvaruacceleration för videoavkodning. Inaktivera om du upplever uppspelningsproblem.",
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Ange din OpenSubtitles API-nyckel för att aktivera klientbaserad undertextsökning som reserv när din Jellyfin-server inte har en undertextleverantör konfigurerad.",
|
||||
"opensubtitles_api_key": "API-nyckel",
|
||||
@@ -296,25 +277,6 @@
|
||||
"bottom": "Botten"
|
||||
}
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC undertextsinställningar",
|
||||
"hint": "Anpassa undertextens utseende för VLC-spelare. Förändringar träder i kraft vid nästa uppspelning.",
|
||||
"text_color": "Textfärg",
|
||||
"background_color": "Bakgrundsfärg",
|
||||
"background_opacity": "Bakgrundsgenomskinlighet",
|
||||
"outline_color": "Konturfärg",
|
||||
"outline_opacity": "Kontursgenomskinlighet",
|
||||
"outline_thickness": "Konturtjocklek",
|
||||
"bold": "FetStil",
|
||||
"margin": "Nedre marginal"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Videospelare",
|
||||
"video_player": "Videospelare",
|
||||
"video_player_description": "Välj vilken videospelare som ska användas på iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Övrigt",
|
||||
"video_orientation": "Videoriktning",
|
||||
@@ -332,13 +294,7 @@
|
||||
"UNKNOWN": "Okänt"
|
||||
},
|
||||
"safe_area_in_controls": "Säkert område i kontrollerna",
|
||||
"video_player": "Videospelare",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Experimentell + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Visa anpassade menylänkar",
|
||||
"show_large_home_carousel": "Visa toppbanner (beta)",
|
||||
"hide_libraries": "Dölj bibliotek",
|
||||
"select_liraries_you_want_to_hide": "Välj de bibliotek du vill dölja på fliken Bibliotek och på startsidan.",
|
||||
"disable_haptic_feedback": "Stäng av vibrationer",
|
||||
@@ -348,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Antal Avsnitt för Automatisk Uppspelning",
|
||||
"disabled": "Inaktiverad"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Nedladdningar"
|
||||
},
|
||||
"music": {
|
||||
"title": "Musik",
|
||||
"playback_title": "Uppspelning",
|
||||
@@ -371,7 +324,7 @@
|
||||
"server_url_placeholder": "Seerr URL",
|
||||
"password": "Lösenord",
|
||||
"password_placeholder": "Ange lösenord för Jellyfin användare {{username}}",
|
||||
"login_button": "Logga in",
|
||||
"login_button": "Login",
|
||||
"total_media_requests": "Totalt antal mediaförfrågningar",
|
||||
"movie_quota_limit": "Gräns för filmkvot",
|
||||
"movie_quota_days": "Filmkvot Dagar",
|
||||
@@ -394,23 +347,18 @@
|
||||
"read_more_about_marlin": "Läs mer om Marlin.",
|
||||
"save_button": "Spara",
|
||||
"toasts": {
|
||||
"saved": "Sparade",
|
||||
"refreshed": "Inställningarna uppdateras från servern"
|
||||
},
|
||||
"refresh_from_server": "Uppdatera inställningar från server"
|
||||
"saved": "Sparade"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Aktivera Streamystats",
|
||||
"disable_streamystats": "Inaktivera Streamystats",
|
||||
"enable_search": "Använd för sökning",
|
||||
"url": "Webbadress",
|
||||
"server_url_placeholder": "http(s)://streamystats.exempel.se",
|
||||
"streamystats_search_hint": "Ange URL för Marlin-servern. URL bör innehålla http eller https och vid behov port.",
|
||||
"read_more_about_streamystats": "Läs mer om Streamystats.",
|
||||
"save_button": "Spara",
|
||||
"save": "Spara",
|
||||
"features_title": "Funktioner",
|
||||
"home_sections_title": "Hemsektioner",
|
||||
"enable_movie_recommendations": "Filmrekommendationer",
|
||||
"enable_series_recommendations": "serierekommendationer",
|
||||
"enable_promoted_watchlists": "rekommenderade listor att titta på",
|
||||
@@ -426,8 +374,7 @@
|
||||
"refresh_from_server": "Uppdatera inställningar från server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Aktivera vår bevakningslista integration",
|
||||
"watchlist_button": "sätt på/av bevakningslisteintegrationen"
|
||||
"watchlist_enabler": "Aktivera vår bevakningslista integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -438,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Ta bort alla nerladdade filer",
|
||||
"music_cache_title": "Musikcache",
|
||||
"music_cache_description": "Cacha automatiskt låtar när du lyssnar för smidigare uppspelning och offline-stöd",
|
||||
"enable_music_cache": "Aktivera musikcache",
|
||||
"clear_music_cache": "Rensa musikcache",
|
||||
"music_cache_size": "{{size}} cachad",
|
||||
"music_cache_cleared": "Musikcache rensad",
|
||||
"delete_all_downloaded_songs": "Ta bort alla nerladdade filer",
|
||||
"downloaded_songs_size": "{{size}} nedladdad",
|
||||
"downloaded_songs_deleted": "Nedladdade låtar raderade"
|
||||
"downloaded_songs_deleted": "Nedladdade låtar raderade",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Introduktion",
|
||||
@@ -456,8 +406,7 @@
|
||||
"export_logs": "Exportera Loggar",
|
||||
"click_for_more_info": "Klicka för mer Information",
|
||||
"level": "Nivå",
|
||||
"no_logs_available": "Inga Loggar Tillgängliga",
|
||||
"delete_all_logs": "Ta Bort Alla Loggar"
|
||||
"no_logs_available": "Inga Loggar Tillgängliga"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Språk",
|
||||
@@ -465,9 +414,21 @@
|
||||
"system": "System"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Fel Vid Borttagning Av Filer",
|
||||
"background_downloads_enabled": "Bakgrundsnedladdningar aktiverade",
|
||||
"background_downloads_disabled": "Bakgrundsnedladdningar inaktiverade"
|
||||
"error_deleting_files": "Fel Vid Borttagning Av Filer"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -478,10 +439,7 @@
|
||||
"downloads_title": "Nedladdningar",
|
||||
"tvseries": "TV-Serier",
|
||||
"movies": "Filmer",
|
||||
"queue": "Kö",
|
||||
"other_media": "Annan media",
|
||||
"queue_hint": "Kö och nedladdningar kommer försvinna vid omstart av appen",
|
||||
"no_items_in_queue": "Inga objekt i Kön",
|
||||
"no_downloaded_items": "Inga Nedladdade Objekt",
|
||||
"delete_all_movies_button": "Ta Bort Alla Filmer",
|
||||
"delete_all_tvseries_button": "Ta Bort Alla TV-Serier",
|
||||
@@ -494,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "Den nya uppdateringen kräver att innehållet laddas ner igen. Ta bort allt nedladdat innehåll och försök igen.",
|
||||
"back": "Tillbaka",
|
||||
"delete": "Radera",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Något Gick Fel",
|
||||
"could_not_get_stream_url_from_jellyfin": "Det gick inte att hämta strömadressen från Jellyfin",
|
||||
"eta": "ETA {{eta}}",
|
||||
@@ -505,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Det Gick Inte Att Ta Bort Alla TV-Serier",
|
||||
"deleted_media_successfully": "Andra Medier Har Tagits Bort!",
|
||||
"failed_to_delete_media": "Kunde Inte Ta Bort Andra Medier",
|
||||
"download_deleted": "Nedladdning Borttagen",
|
||||
"download_cancelled": "Nerladdningen Avbruten",
|
||||
"could_not_delete_download": "Kunde Inte Ta Bort Nedladdning",
|
||||
"download_paused": "Nedladdning Pausad",
|
||||
"could_not_pause_download": "Kunde Inte Pausa Nedladdning",
|
||||
"download_resumed": "Nedladdning Återupptagen",
|
||||
"could_not_resume_download": "Kunde Inte Återuppta Nedladdning",
|
||||
"download_completed": "Nedladdning Slutförd",
|
||||
"download_failed": "Nerladdningen misslyckades",
|
||||
"download_failed_for_item": "Nedladdning misslyckades för {{item}} - {{error}}",
|
||||
@@ -521,10 +475,7 @@
|
||||
"item_already_downloading": "{{item}} Laddas redan ner",
|
||||
"all_files_deleted": "Alla nedladdningar raderades",
|
||||
"files_deleted_by_type": "{{count}} {{type}} Raderad",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Alla filer, mappar och jobb har tagits bort",
|
||||
"failed_to_clean_cache_directory": "Det gick inte att rensa cachemappen",
|
||||
"could_not_get_download_url_for_item": "Kunde inte hämta nedladdnings-URL för {{itemName}}",
|
||||
"go_to_downloads": "Gå till nedladdningar",
|
||||
"file_deleted": "{{item}} Raderad"
|
||||
}
|
||||
}
|
||||
@@ -537,20 +488,18 @@
|
||||
"audio": "Ljud",
|
||||
"subtitle": "Undertext",
|
||||
"play": "Spela",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "Ingen",
|
||||
"track": "Spår",
|
||||
"cancel": "Avbryt",
|
||||
"stop": "Stoppa",
|
||||
"delete": "Ta bort",
|
||||
"ok": "OK",
|
||||
"remove": "Radera",
|
||||
"next": "Nästa",
|
||||
"back": "Tillbaka",
|
||||
"continue": "Fortsätt",
|
||||
"verifying": "Verifierar...",
|
||||
"login": "Logga in",
|
||||
"refresh": "Uppdatera",
|
||||
"seeAll": "Visa alla"
|
||||
"login": "Logga in"
|
||||
},
|
||||
"search": {
|
||||
"search": "Sök...",
|
||||
@@ -610,7 +559,8 @@
|
||||
"poster": "Affisch",
|
||||
"cover": "Omslag",
|
||||
"show_titles": "Visa Titlar",
|
||||
"show_stats": "Visa Statistik"
|
||||
"show_stats": "Visa Statistik",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Genrer",
|
||||
@@ -640,6 +590,7 @@
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Fel",
|
||||
"failed_to_get_stream_url": "Kunde inte hämta stream-URL",
|
||||
"an_error_occured_while_playing_the_video": "Ett fel uppstod vid uppspelning av videon. Kontrollera loggarna i inställningarna.",
|
||||
@@ -647,10 +598,6 @@
|
||||
"could_not_create_stream_for_chromecast": "Kunde inte skapa stream för Chromecast",
|
||||
"message_from_server": "Meddelande från servern: {{message}}",
|
||||
"next_episode": "Nästa avsnitt",
|
||||
"refresh_tracks": "Uppdatera spår",
|
||||
"audio_tracks": "Ljudspår:",
|
||||
"playback_state": "Uppspelningsstatus:",
|
||||
"index": "Index:",
|
||||
"continue_watching": "Fortsätt titta",
|
||||
"go_back": "Tillbaka",
|
||||
"downloaded_file_title": "Du har denna fil nedladdad",
|
||||
@@ -681,6 +628,12 @@
|
||||
"stopPlayingConfirm": "Är du säker på att du vill stoppa uppspelningen?",
|
||||
"downloaded": "Nedladdad"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Näst på tur",
|
||||
"no_items_to_display": "Inga Artiklar Att Visa",
|
||||
@@ -711,7 +664,6 @@
|
||||
"show_more": "Visa Mer",
|
||||
"show_less": "Visa Mindre",
|
||||
"left": "kvar",
|
||||
"more_info": "Mer info",
|
||||
"director": "Regissör",
|
||||
"cast": "Skådespelare",
|
||||
"technical_details": "Tekniska detaljer",
|
||||
@@ -793,7 +745,7 @@
|
||||
"quality_profile": "Kvalitetsprofil",
|
||||
"root_folder": "Rotkatalog",
|
||||
"season_all": "Säsong (alla)",
|
||||
"season_number": "Säsong {{season_number}}",
|
||||
"season_number": "Säsong {{seasonNumber}}",
|
||||
"number_episodes": "{{episode_number}} Avsnitt",
|
||||
"born": "Född",
|
||||
"appearances": "Framträdanden",
|
||||
@@ -838,13 +790,9 @@
|
||||
"playlists": "Spellistor",
|
||||
"tracks": "spår"
|
||||
},
|
||||
"filters": {
|
||||
"all": "Alla"
|
||||
},
|
||||
"recently_added": "Nyligen tillagt",
|
||||
"recently_played": "Nyligen spelat",
|
||||
"frequently_played": "Spelas ofta",
|
||||
"explore": "Utforska",
|
||||
"top_tracks": "Toppspår",
|
||||
"play": "Spela",
|
||||
"shuffle": "Blanda spår",
|
||||
@@ -952,5 +900,35 @@
|
||||
"show": "Denna serie",
|
||||
"all": "Alla media (standard)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Error",
|
||||
"login_title": "Log In",
|
||||
"login_to_title": "Log in to",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Username",
|
||||
"password_placeholder": "Password",
|
||||
"login_button": "Log In",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Oops!",
|
||||
"error_message": "Something went wrong.\nPlease log out and in again.",
|
||||
"continue_watching": "Continue Watching",
|
||||
"continue": "Continue",
|
||||
"next_up": "Next Up",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "Recently Added in {{libraryName}}",
|
||||
"suggested_movies": "Suggested Movies",
|
||||
"suggested_episodes": "Suggested Episodes",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Welcome to Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "A Free and Open-Source Client for Jellyfin.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Settings",
|
||||
"log_out_button": "Log Out",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categories"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "ปรับแต่งลักษณะภายนอก",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"hide_remote_session_button": "Hide Remote Session Button",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Rewind Length",
|
||||
"seconds_unit": "s"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Gesture Controls",
|
||||
"horizontal_swipe_skip": "Horizontal Swipe to Skip",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "None",
|
||||
"OnlyForced": "OnlyForced"
|
||||
},
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"bold_text": "Bold Text",
|
||||
"colors": {
|
||||
"Black": "Black",
|
||||
"Gray": "Gray",
|
||||
"Silver": "Silver",
|
||||
"White": "White",
|
||||
"Maroon": "Maroon",
|
||||
"Red": "Red",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Yellow",
|
||||
"Olive": "Olive",
|
||||
"Green": "Green",
|
||||
"Teal": "Teal",
|
||||
"Lime": "Lime",
|
||||
"Purple": "Purple",
|
||||
"Navy": "Navy",
|
||||
"Blue": "สีน้ำเงิน",
|
||||
"Aqua": "Aqua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "None",
|
||||
"Thin": "Thin",
|
||||
"Normal": "Normal",
|
||||
"Thick": "Thick"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Other",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Unknown"
|
||||
},
|
||||
"safe_area_in_controls": "Safe Area in Controls",
|
||||
"video_player": "Video Player",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Experimental + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Show Custom Menu Links",
|
||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||
"hide_libraries": "Hide Libraries",
|
||||
"select_liraries_you_want_to_hide": "Select the libraries you want to hide from the Library tab and home page sections.",
|
||||
"disable_haptic_feedback": "Disable Haptic Feedback",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Max Auto Play Episode Count",
|
||||
"disabled": "Disabled"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Downloads"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Read More About Marlin.",
|
||||
"save_button": "Save",
|
||||
"toasts": {
|
||||
"saved": "Saved",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "Saved"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Delete All Downloaded Files",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Export Logs",
|
||||
"click_for_more_info": "Click for More Info",
|
||||
"level": "Level",
|
||||
"no_logs_available": "No Logs Available",
|
||||
"delete_all_logs": "Delete All Logs"
|
||||
"no_logs_available": "No Logs Available"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Languages",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "System"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Error Deleting Files",
|
||||
"background_downloads_enabled": "Background downloads enabled",
|
||||
"background_downloads_disabled": "Background downloads disabled"
|
||||
"error_deleting_files": "Error Deleting Files"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Downloads",
|
||||
"tvseries": "TV-Series",
|
||||
"movies": "Movies",
|
||||
"queue": "Queue",
|
||||
"other_media": "Other media",
|
||||
"queue_hint": "Queue and downloads will be lost on app restart",
|
||||
"no_items_in_queue": "No Items in Queue",
|
||||
"no_downloaded_items": "No Downloaded Items",
|
||||
"delete_all_movies_button": "Delete All Movies",
|
||||
"delete_all_tvseries_button": "Delete All TV-Series",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "The new update requires content to be downloaded again. Please remove all downloaded content and try again.",
|
||||
"back": "Back",
|
||||
"delete": "Delete",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Something Went Wrong",
|
||||
"could_not_get_stream_url_from_jellyfin": "Could not get the stream URL from Jellyfin",
|
||||
"eta": "ETA {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Failed to Delete All TV-Series",
|
||||
"deleted_media_successfully": "Deleted other media Successfully!",
|
||||
"failed_to_delete_media": "Failed to Delete other media",
|
||||
"download_deleted": "Download Deleted",
|
||||
"download_cancelled": "Download Cancelled",
|
||||
"could_not_delete_download": "Could Not Delete Download",
|
||||
"download_paused": "Download Paused",
|
||||
"could_not_pause_download": "Could Not Pause Download",
|
||||
"download_resumed": "Download Resumed",
|
||||
"could_not_resume_download": "Could Not Resume Download",
|
||||
"download_completed": "Download Completed",
|
||||
"download_failed": "Download Failed",
|
||||
"download_failed_for_item": "Download failed for {{item}} - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} is already downloading",
|
||||
"all_files_deleted": "All Downloads Deleted Successfully",
|
||||
"files_deleted_by_type": "{{count}} {{type}} deleted",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "All files, folders, and jobs deleted successfully",
|
||||
"failed_to_clean_cache_directory": "Failed to clean cache directory",
|
||||
"could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}",
|
||||
"go_to_downloads": "Go to Downloads",
|
||||
"file_deleted": "{{item}} deleted"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Select",
|
||||
"no_trailer_available": "No trailer available",
|
||||
"video": "Video",
|
||||
"audio": "Audio",
|
||||
"subtitle": "Subtitle",
|
||||
"play": "Play",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "None",
|
||||
"track": "Track",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Search...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"boxsets": "Box Sets",
|
||||
"playlists": "Playlists",
|
||||
"items": "Items"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Poster",
|
||||
"cover": "Cover",
|
||||
"show_titles": "Show Titles",
|
||||
"show_stats": "Show Stats"
|
||||
"show_stats": "Show Stats",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Genres",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Sort By",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "Sort Order",
|
||||
"tags": "Tags"
|
||||
"tags": "Tags",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "No Links"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Error",
|
||||
"failed_to_get_stream_url": "Failed to get the stream URL",
|
||||
"an_error_occured_while_playing_the_video": "An error occurred while playing the video. Check logs in settings.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Could not create a stream for Chromecast",
|
||||
"message_from_server": "Message from Server: {{message}}",
|
||||
"next_episode": "Next Episode",
|
||||
"refresh_tracks": "Refresh Tracks",
|
||||
"audio_tracks": "Audio Tracks:",
|
||||
"playback_state": "Playback State:",
|
||||
"index": "Index:",
|
||||
"continue_watching": "Continue Watching",
|
||||
"go_back": "Go Back",
|
||||
"downloaded_file_title": "You have this file downloaded",
|
||||
"downloaded_file_message": "Do you want to play the downloaded file?",
|
||||
"downloaded_file_yes": "Yes",
|
||||
"downloaded_file_no": "No",
|
||||
"downloaded_file_cancel": "Cancel"
|
||||
"downloaded_file_cancel": "Cancel",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Next Up",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Series",
|
||||
"seasons": "Seasons",
|
||||
"season": "Season",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "No episodes for this season",
|
||||
"overview": "Overview",
|
||||
"more_with": "More with {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Media Options",
|
||||
"quality": "Quality",
|
||||
"audio": "Audio",
|
||||
"subtitles": "Subtitle",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Show More",
|
||||
"show_less": "Show Less",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Appeared In",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Could Not Load Item",
|
||||
"none": "None",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Download {{item_count}} Items",
|
||||
"download_unwatched_only": "Unwatched Only",
|
||||
"download_button": "Download"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Next",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Movies",
|
||||
"sports": "Sports",
|
||||
"for_kids": "For Kids",
|
||||
"news": "News"
|
||||
"news": "News",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Confirm",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Decline",
|
||||
"requested_by": "Requested by {{user}}",
|
||||
"unknown_user": "Unknown User",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Seerr server does not meet minimum version requirements! Please update to at least 2.0.0",
|
||||
"jellyseerr_test_failed": "Seerr test failed. Please try again.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Search",
|
||||
"library": "Library",
|
||||
"custom_links": "Custom Links",
|
||||
"favorites": "Favorites"
|
||||
"favorites": "Favorites",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "ghIq",
|
||||
"login_title": "lut 'el",
|
||||
"login_to_title": "lut 'el",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "tlhIngan",
|
||||
"password_placeholder": "ngoq De'",
|
||||
"login_button": "yI'el!",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "QI'ya!",
|
||||
"error_message": "Doch rurbe'.\nyIQo' 'ej yI'elqa'.",
|
||||
"continue_watching": "tlhol yIHaDqa'",
|
||||
"continue": "Continue",
|
||||
"next_up": "wej",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "num tu'lu' {{libraryName}}",
|
||||
"suggested_movies": "rutlh DIS",
|
||||
"suggested_episodes": "rutlh Hem",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Streamyfin yI'el!",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Jellyfin lut 'el je'be' 'ej wang.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "men",
|
||||
"log_out_button": "yIQo'",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categories"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Appearance",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"hide_remote_session_button": "Hide Remote Session Button",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "bavHom vum",
|
||||
"seconds_unit": "tera' rep"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "QavwI' 'ej Qap",
|
||||
"horizontal_swipe_skip": "SaS mup loSmeH",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "pagh",
|
||||
"OnlyForced": "Dun je'"
|
||||
},
|
||||
"text_color": "GhItlh rIt",
|
||||
"background_color": "Tlhagh rIt",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"bold_text": "Bold Text",
|
||||
"colors": {
|
||||
"Black": "Black",
|
||||
"Gray": "Gray",
|
||||
"Silver": "Silver",
|
||||
"White": "White",
|
||||
"Maroon": "Maroon",
|
||||
"Red": "Red",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Yellow",
|
||||
"Olive": "Olive",
|
||||
"Green": "Green",
|
||||
"Teal": "Teal",
|
||||
"Lime": "Lime",
|
||||
"Purple": "Purple",
|
||||
"Navy": "Navy",
|
||||
"Blue": "Blue",
|
||||
"Aqua": "Aqua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "pagh",
|
||||
"Thin": "Thin",
|
||||
"Normal": "Normal",
|
||||
"Thick": "Thick"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "patlh",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Sovbe'"
|
||||
},
|
||||
"safe_area_in_controls": "SeHlawDaq yot QIH",
|
||||
"video_player": "mu'tlhegh tlholwI'",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (PiP mIwHa')"
|
||||
},
|
||||
"show_custom_menu_links": "menuDaq ret teqlu' yInej",
|
||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||
"hide_libraries": "De'wI' bom yIQIj",
|
||||
"select_liraries_you_want_to_hide": "De'wI' bom Danej QIj yIwIv.",
|
||||
"disable_haptic_feedback": "Qub quvHa' yIQIj",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Max Auto Play Episode Count",
|
||||
"disabled": "Disabled"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Qaw' Doch"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Marlin latlh yIlaD",
|
||||
"save_button": "yIqIp",
|
||||
"toasts": {
|
||||
"saved": "qIp",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "qIp"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Hoch Qaw' Doch yIQaw'",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "De' qon yISamqa'",
|
||||
"click_for_more_info": "latlh De' yIchIch",
|
||||
"level": "quv",
|
||||
"no_logs_available": "De' qon pagh",
|
||||
"delete_all_logs": "Hoch De' qon yIQaw'"
|
||||
"no_logs_available": "De' qon pagh"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Holmey",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "mIw'a'"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Qaw' ghIq",
|
||||
"background_downloads_enabled": "tlhegh Qaw' chu'",
|
||||
"background_downloads_disabled": "tlhegh Qaw' QIj"
|
||||
"error_deleting_files": "Qaw' ghIq"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Qaw' Doch",
|
||||
"tvseries": "TV Hem",
|
||||
"movies": "DIS",
|
||||
"queue": "ghom",
|
||||
"other_media": "Other media",
|
||||
"queue_hint": "ghun ghImDI' ghom Qaw'laH.",
|
||||
"no_items_in_queue": "ghom Doch pagh",
|
||||
"no_downloaded_items": "Qaw' Doch pagh",
|
||||
"delete_all_movies_button": "Hoch DIS yIQaw'",
|
||||
"delete_all_tvseries_button": "Hoch TV Hem yIQaw'",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "wej chu' Doch Qaw'qa' DaneH. Hoch Qaw' Doch yIQaw' 'ej yIHaDqa'.",
|
||||
"back": "yIbav",
|
||||
"delete": "yIQaw'",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Doch rurbe'",
|
||||
"could_not_get_stream_url_from_jellyfin": "Jellyfin tlhol ret URL tu'laHbe'",
|
||||
"eta": "ETA {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Hoch TV Hem Qaw'laHbe'",
|
||||
"deleted_media_successfully": "Deleted other media Successfully!",
|
||||
"failed_to_delete_media": "Failed to Delete other media",
|
||||
"download_deleted": "Download Deleted",
|
||||
"download_cancelled": "Qaw' ghIm",
|
||||
"could_not_delete_download": "Could Not Delete Download",
|
||||
"download_paused": "Download Paused",
|
||||
"could_not_pause_download": "Could Not Pause Download",
|
||||
"download_resumed": "Download Resumed",
|
||||
"could_not_resume_download": "Could Not Resume Download",
|
||||
"download_completed": "Qaw' Qapla'",
|
||||
"download_failed": "Download Failed",
|
||||
"download_failed_for_item": "{{item}} Qaw'laHbe' - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} is already downloading",
|
||||
"all_files_deleted": "All Downloads Deleted Successfully",
|
||||
"files_deleted_by_type": "{{count}} {{type}} deleted",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Hoch De', ram 'ej vum Qaw' Qapla'",
|
||||
"failed_to_clean_cache_directory": "Failed to clean cache directory",
|
||||
"could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}",
|
||||
"go_to_downloads": "Qaw' Doch yIghoS",
|
||||
"file_deleted": "{{item}} deleted"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Select",
|
||||
"no_trailer_available": "No trailer available",
|
||||
"video": "mu'tlhegh",
|
||||
"audio": "QoQ",
|
||||
"subtitle": "De' chu'",
|
||||
"play": "Play",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "None",
|
||||
"track": "Track",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "yISam...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "DIS",
|
||||
"series": "Hem",
|
||||
"boxsets": "Hem ghom",
|
||||
"playlists": "Playlists",
|
||||
"items": "Doch"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "nagh",
|
||||
"cover": "nagh chop",
|
||||
"show_titles": "pab HoS yIHoch",
|
||||
"show_stats": "chIm De' yIHoch"
|
||||
"show_stats": "chIm De' yIHoch",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "qorDu'",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "yIwIv",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "wIv mIw",
|
||||
"tags": "De'Hom"
|
||||
"tags": "De'Hom",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "ret pagh"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "ghIq",
|
||||
"failed_to_get_stream_url": "tlhol ret URL tu'laHbe'",
|
||||
"an_error_occured_while_playing_the_video": "mu'tlhegh tlholDI' ghIq. menDaq De' qon mej.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Chromecast tlhol ret qonlaHbe'",
|
||||
"message_from_server": "Ho'Do' veS jach: {{message}}",
|
||||
"next_episode": "wej HemHom",
|
||||
"refresh_tracks": "ret yIchu'qa'",
|
||||
"audio_tracks": "QoQ ret:",
|
||||
"playback_state": "tlhol mIw:",
|
||||
"index": "nem:",
|
||||
"continue_watching": "tlhol yIHaDqa'",
|
||||
"go_back": "Go Back",
|
||||
"downloaded_file_title": "You have this file downloaded",
|
||||
"downloaded_file_message": "Do you want to play the downloaded file?",
|
||||
"downloaded_file_yes": "Yes",
|
||||
"downloaded_file_no": "No",
|
||||
"downloaded_file_cancel": "Cancel"
|
||||
"downloaded_file_cancel": "Cancel",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "wej",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Hem",
|
||||
"seasons": "muv",
|
||||
"season": "muv",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "muvvam HemHom pagh",
|
||||
"overview": "Hoch Sov",
|
||||
"more_with": "{{name}} latlh",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Media Options",
|
||||
"quality": "luj",
|
||||
"audio": "QoQ",
|
||||
"subtitles": "De' chu'",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "latlh yIHoch",
|
||||
"show_less": "Hom yIHoch",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "tlholvam",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Doch tlha'laHbe'",
|
||||
"none": "pagh",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "{{item_count}} Doch yIQaw'",
|
||||
"download_unwatched_only": "Unwatched Only",
|
||||
"download_button": "yIQaw'"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "wej",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "DIS",
|
||||
"sports": "QI'",
|
||||
"for_kids": "puqbeq",
|
||||
"news": "De'"
|
||||
"news": "De'",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "yInej",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Decline",
|
||||
"requested_by": "Requested by {{user}}",
|
||||
"unknown_user": "Unknown User",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Jellyseerr Ho'Do' veS wej law'be'! 2.0.0 yIchu'!",
|
||||
"jellyseerr_test_failed": "Jellyseerr nejlaHbe'. yIHaDqa'.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Sam",
|
||||
"library": "De'wI' bom",
|
||||
"custom_links": "teqlu' ret",
|
||||
"favorites": "wIv Doch"
|
||||
"favorites": "wIv Doch",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Hata",
|
||||
"login_title": "Giriş yap",
|
||||
"login_to_title": " 'e giriş yap",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Kullanıcı adı",
|
||||
"password_placeholder": "Şifre",
|
||||
"login_button": "Giriş yap",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} hesap",
|
||||
"select_account": "Hesap Seç",
|
||||
"add_account": "Hesap Ekle",
|
||||
"remove_account_description": "{{username}} için kayıtlı bilgiler kaldırılacaktır."
|
||||
"remove_account_description": "{{username}} için kayıtlı bilgiler kaldırılacaktır.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Hesabı Kaydet",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Hups!",
|
||||
"error_message": "Bir şeyler ters gitti.\nLütfen çıkış yapıp tekrar giriş yapın.",
|
||||
"continue_watching": "İzlemeye Devam Et",
|
||||
"continue": "Continue",
|
||||
"next_up": "Sonraki",
|
||||
"continue_and_next_up": "İzlemeye Devam Et & Sıradakiler",
|
||||
"recently_added_in": "{{libraryName}} Kütüphanesine Son Eklenenler",
|
||||
"suggested_movies": "Önerilen Filmler",
|
||||
"suggested_episodes": "Önerilen Bölümler",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Streamyfin'e Hoş Geldiniz",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Jellyfin için ücretsiz ve açık kaynak bir istemci.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Ayarlar",
|
||||
"log_out_button": "Çıkış Yap",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Kategoriler"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Görünüm",
|
||||
"merge_next_up_continue_watching": "İzlemeye Devam Et & Sıradakiler'i birleştir",
|
||||
"hide_remote_session_button": "Uzak Oturum Butonunu Gizle"
|
||||
"hide_remote_session_button": "Uzak Oturum Butonunu Gizle",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Ağ",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Geri Sarma Uzunluğu",
|
||||
"seconds_unit": "sn"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Hareketle Kontrol",
|
||||
"horizontal_swipe_skip": "Atlamak için yatay kaydırma",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Yok",
|
||||
"OnlyForced": "Sadece Zorunlu"
|
||||
},
|
||||
"text_color": "Metin Rengi",
|
||||
"background_color": "Arkaplan Rengi",
|
||||
"outline_color": "Kenarlık Rengi",
|
||||
"outline_thickness": "Kenarlık kalınlığı",
|
||||
"background_opacity": "Arkaplan Opaklığı",
|
||||
"outline_opacity": "Kenarlık Opaklığı",
|
||||
"bold_text": "Kalın Metin",
|
||||
"colors": {
|
||||
"Black": "Siyah",
|
||||
"Gray": "Gri",
|
||||
"Silver": "Gümüş",
|
||||
"White": "Beyaz",
|
||||
"Maroon": "Kestane",
|
||||
"Red": "Kırmızı",
|
||||
"Fuchsia": "Fuşya",
|
||||
"Yellow": "Sarı",
|
||||
"Olive": "Zeytin yeşili",
|
||||
"Green": "Yeşil",
|
||||
"Teal": "Deniz mavisi",
|
||||
"Lime": "Limon",
|
||||
"Purple": "Mor",
|
||||
"Navy": "Lacivert",
|
||||
"Blue": "Mavi",
|
||||
"Aqua": "Açık Mavi"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Hiçbiri",
|
||||
"Thin": "İnce",
|
||||
"Normal": "Normal",
|
||||
"Thick": "Kalın"
|
||||
},
|
||||
"subtitle_color": "Altyazı Rengi",
|
||||
"subtitle_background_color": "Arkaplan Rengi",
|
||||
"subtitle_font": "Altyazı Yazı Tipi",
|
||||
"ksplayer_title": "KSPlayer Ayarları",
|
||||
"hardware_decode": "Donanımsal Kod Çözme",
|
||||
"hardware_decode_description": "Video kod çözme için donanımsal hızlandırma kullan. Oynatma sorunları yaşıyorsanız devre dışı bırakın."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Altyazı Ayarları",
|
||||
"hint": "VLC oynatıcı için altyazı görünümünü değiştirin. Değişiklikler bir sonraki oynatmada etkili olacak.",
|
||||
"text_color": "Metin Rengi",
|
||||
"background_color": "Arkaplan Rengi",
|
||||
"background_opacity": "Arkaplan Opaklığı",
|
||||
"outline_color": "Kenarlık Rengi",
|
||||
"outline_opacity": "Kenarlık Opaklığı",
|
||||
"outline_thickness": "Kenarlık Kalınlığı",
|
||||
"bold": "Kalın Metin",
|
||||
"margin": "Alt Kenar Boşluğu"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video oynatıcısı",
|
||||
"video_player": "Video oynatıcısı",
|
||||
"video_player_description": "iOS'da hangi video oynatıcının kullanılacağını seçin.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Diğer",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Bilinmeyen"
|
||||
},
|
||||
"safe_area_in_controls": "Kontrollerde Güvenli Alan",
|
||||
"video_player": "Video player",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Deneysel + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Özel Menü Bağlantılarını Göster",
|
||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||
"hide_libraries": "Kütüphaneleri Gizle",
|
||||
"select_liraries_you_want_to_hide": "Kütüphane sekmesinden ve ana sayfa bölümlerinden gizlemek istediğiniz kütüphaneleri seçin.",
|
||||
"disable_haptic_feedback": "Dokunsal Geri Bildirimi Devre Dışı Bırak",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "En Fazla Otomatik Oynatılacak Bölüm Sayısı",
|
||||
"disabled": "Devre dışı"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "İndirmeler"
|
||||
},
|
||||
"music": {
|
||||
"title": "Müzik",
|
||||
"playback_title": "Oynatma",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Marlin hakkında daha fazla oku.",
|
||||
"save_button": "Kaydet",
|
||||
"toasts": {
|
||||
"saved": "Kaydedildi",
|
||||
"refreshed": "Ayarlar sunucudan yeniden alındı"
|
||||
},
|
||||
"refresh_from_server": "Ayarları Sunucudan Yeniden Al"
|
||||
"saved": "Kaydedildi"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Streamystats'ı Etkinleştir",
|
||||
"disable_streamystats": "Streamystats'ı Devre Dışı Bırak",
|
||||
"enable_search": "Arama için kullan",
|
||||
"url": "URL Adresi",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Streamystats sunucu URL'sini girin. URL, http veya https içermeli ve isteğe bağlı olarak portu içerebilir.",
|
||||
"read_more_about_streamystats": "Streamystats hakkında daha fazla bilgi.",
|
||||
"save_button": "Kaydet",
|
||||
"save": "Kaydet",
|
||||
"features_title": "Özellikler",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Film Önerileri",
|
||||
"enable_series_recommendations": "Dizi Önerileri",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Ayarları Sunucudan Yeniden Al"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Tüm indirilen dosyaları sil",
|
||||
"music_cache_title": "Müzik Ön Belleği",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Müzik Ön Belleğini Etkinleştir",
|
||||
"clear_music_cache": "Müzik Ön Belleğini Temizle",
|
||||
"music_cache_size": "{{size}} ön belleklendi",
|
||||
"music_cache_cleared": "Müzik ön belleği temizlendi",
|
||||
"delete_all_downloaded_songs": "Tüm İndirilen Müzikleri Sil",
|
||||
"downloaded_songs_size": "{{size}} indirildi",
|
||||
"downloaded_songs_deleted": "İndirilen müzikler silindi"
|
||||
"downloaded_songs_deleted": "İndirilen müzikler silindi",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Giriş",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Export logs",
|
||||
"click_for_more_info": "Click for more info",
|
||||
"level": "Düzey",
|
||||
"no_logs_available": "Günlükler mevcut değil",
|
||||
"delete_all_logs": "Tüm günlükleri sil"
|
||||
"no_logs_available": "Günlükler mevcut değil"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Diller",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "Sistem"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Dosyalar silinirken hata oluştu",
|
||||
"background_downloads_enabled": "Arka plan indirmeleri etkinleştirildi",
|
||||
"background_downloads_disabled": "Arka plan indirmeleri devre dışı bırakıldı"
|
||||
"error_deleting_files": "Dosyalar silinirken hata oluştu"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "İndirilenler",
|
||||
"tvseries": "Diziler",
|
||||
"movies": "Filmler",
|
||||
"queue": "Sıra",
|
||||
"other_media": "Diğer medya",
|
||||
"queue_hint": "Sıra ve indirmeler uygulama yeniden başlatıldığında kaybolacaktır",
|
||||
"no_items_in_queue": "Sırada öğe yok",
|
||||
"no_downloaded_items": "İndirilen öğe yok",
|
||||
"delete_all_movies_button": "Tüm Filmleri Sil",
|
||||
"delete_all_tvseries_button": "Tüm Dizileri Sil",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "Yeni güncelleme, içeriğin yeniden indirilmesini gerektiriyor. Lütfen tüm indirilen içerikleri kaldırıp tekrar deneyin.",
|
||||
"back": "Geri",
|
||||
"delete": "Sil",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Bir şeyler ters gitti",
|
||||
"could_not_get_stream_url_from_jellyfin": "Jellyfin'den yayın URL'si alınamadı",
|
||||
"eta": "Tahmini Süre {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Diziler silinemedi",
|
||||
"deleted_media_successfully": "Diğer medya başarıyla silindi!",
|
||||
"failed_to_delete_media": "Failed to Delete other media",
|
||||
"download_deleted": "İndirme silindi",
|
||||
"download_cancelled": "İndirme iptal edildi",
|
||||
"could_not_delete_download": "İndirme Silinemedi",
|
||||
"download_paused": "İndirme Duraklatıldı",
|
||||
"could_not_pause_download": "İndirme Duraklatılamadı",
|
||||
"download_resumed": "İndirme Devam Ediyor",
|
||||
"could_not_resume_download": "İndirme Devam Ettirilemedi",
|
||||
"download_completed": "İndirme tamamlandı",
|
||||
"download_failed": "İndirme başarısız oldu",
|
||||
"download_failed_for_item": "{{item}} için indirme başarısız oldu - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} zaten indiriliyor",
|
||||
"all_files_deleted": "Bütün indirilenler başarıyla silindi",
|
||||
"files_deleted_by_type": "{{count}} {{type}} silindi",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Tüm dosyalar, klasörler ve işler başarıyla silindi",
|
||||
"failed_to_clean_cache_directory": "Önbellek dizini temizlenemedi",
|
||||
"could_not_get_download_url_for_item": "{{itemName}} için indirme URL'si alınamadı",
|
||||
"go_to_downloads": "İndirmelere git",
|
||||
"file_deleted": "{{item}} silindi"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Seç",
|
||||
"no_trailer_available": "Fragman mevcut değil",
|
||||
"video": "Video",
|
||||
"audio": "Ses",
|
||||
"subtitle": "Altyazı",
|
||||
"play": "Oynat",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "Hiçbiri",
|
||||
"track": "Parça",
|
||||
"cancel": "Vazgeç",
|
||||
"delete": "Sil",
|
||||
"ok": "Tamam",
|
||||
"remove": "Kaldır",
|
||||
"next": "Sonraki",
|
||||
"back": "Geri",
|
||||
"continue": "Devam",
|
||||
"verifying": "Doğrulanıyor..."
|
||||
"verifying": "Doğrulanıyor...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Ara...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "filmler",
|
||||
"series": "diziler",
|
||||
"boxsets": "koleksiyonlar",
|
||||
"playlists": "Playlists",
|
||||
"items": "ögeler"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Poster",
|
||||
"cover": "Kapak",
|
||||
"show_titles": "Başlıkları göster",
|
||||
"show_stats": "İstatistikleri göster"
|
||||
"show_stats": "İstatistikleri göster",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Türler",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Sırala",
|
||||
"filter_by": "Filtrele",
|
||||
"sort_order": "Sıralama düzeni",
|
||||
"tags": "Etiketler"
|
||||
"tags": "Etiketler",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Bağlantı yok"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Hata",
|
||||
"failed_to_get_stream_url": "Yayın URL'si alınamadı",
|
||||
"an_error_occured_while_playing_the_video": "Video oynatılırken bir hata oluştu. Ayarlardaki günlüklere bakın.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Chromecast için yayın oluşturulamadı",
|
||||
"message_from_server": "Sunucudan mesaj: {{message}}",
|
||||
"next_episode": "Sonraki bölüm",
|
||||
"refresh_tracks": "Parçaları yenile",
|
||||
"audio_tracks": "Ses Parçaları:",
|
||||
"playback_state": "Oynatma Durumu:",
|
||||
"index": "İndeks:",
|
||||
"continue_watching": "İzlemeye devam et",
|
||||
"go_back": "Geri",
|
||||
"downloaded_file_title": "Bu dosya indirilmiş",
|
||||
"downloaded_file_message": "İndirilmiş dosyayı oynatmak ister misiniz?",
|
||||
"downloaded_file_yes": "Evet",
|
||||
"downloaded_file_no": "Hayır",
|
||||
"downloaded_file_cancel": "Vazgeç"
|
||||
"downloaded_file_cancel": "Vazgeç",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Sıradaki",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Dizi",
|
||||
"seasons": "Sezonlar",
|
||||
"season": "Sezon",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "Bu sezona ait bölüm yok",
|
||||
"overview": "Özet",
|
||||
"more_with": "Daha fazla {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Medya Seçenekleri",
|
||||
"quality": "Kalite",
|
||||
"audio": "Ses",
|
||||
"subtitles": "Altyazı",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Daha fazla göster",
|
||||
"show_less": "Daha az göster",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Şurada yer aldı",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Öge yüklenemedi",
|
||||
"none": "Hiçbiri",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "{{item_count}} tane ögeyi indir",
|
||||
"download_unwatched_only": "Yalnızca İzlenmemişler",
|
||||
"download_button": "İndir"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Sonraki",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Filmler",
|
||||
"sports": "Spor",
|
||||
"for_kids": "Çocuklar İçin",
|
||||
"news": "Haberler"
|
||||
"news": "Haberler",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Onayla",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Reddet",
|
||||
"requested_by": "{{user}} tarafından istendi",
|
||||
"unknown_user": "Bilinmeyen Kullanıcı",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Jellyseerr sunucusu minimum sürüm gereksinimlerini karşılamıyor! Lütfen en az 2.0.0 sürümüne güncelleyin",
|
||||
"jellyseerr_test_failed": "Jellyseerr testi başarısız oldu. Lütfen tekrar deneyin.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Ara",
|
||||
"library": "Kütüphane",
|
||||
"custom_links": "Özel Bağlantılar",
|
||||
"favorites": "Favoriler"
|
||||
"favorites": "Favoriler",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Müzik",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Çalma listeleri",
|
||||
"tracks": "parçalar"
|
||||
},
|
||||
"filters": {
|
||||
"all": "Tümü"
|
||||
},
|
||||
"recently_added": "Son Eklenenler",
|
||||
"recently_played": "Son Oynatılanlar",
|
||||
"frequently_played": "Sık Oynatılanlar",
|
||||
"explore": "Keşfet",
|
||||
"top_tracks": "En Popülar Parçalar",
|
||||
"play": "Oynat",
|
||||
"shuffle": "Karıştır",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "Bu dizide",
|
||||
"all": "Bütün medyalarda (varsayılan)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Помилка",
|
||||
"login_title": "Вхід",
|
||||
"login_to_title": "Увійти в",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Імʼя користувача",
|
||||
"password_placeholder": "Пароль",
|
||||
"login_button": "Вхід",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Упс!",
|
||||
"error_message": "Щось пішло не так.\nБудь ласка вийдіть і увійдіть знов.",
|
||||
"continue_watching": "Продовжити перегляд",
|
||||
"continue": "Continue",
|
||||
"next_up": "Далі",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "Нещодавно додане до \"{{libraryName}}\"",
|
||||
"suggested_movies": "Рекомендовані Фільми",
|
||||
"suggested_episodes": "Рекомендовані Епізоди",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Вітаємо у Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Вільний і open-source клієнт для Jellyfin.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Параметри",
|
||||
"log_out_button": "Вихід",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categories"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Appearance",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"hide_remote_session_button": "Hide Remote Session Button",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Довжина перемотування назад",
|
||||
"seconds_unit": "с"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Gesture Controls",
|
||||
"horizontal_swipe_skip": "Horizontal Swipe to Skip",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Някий",
|
||||
"OnlyForced": "Виключно Форсовані"
|
||||
},
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"bold_text": "Bold Text",
|
||||
"colors": {
|
||||
"Black": "Black",
|
||||
"Gray": "Gray",
|
||||
"Silver": "Silver",
|
||||
"White": "White",
|
||||
"Maroon": "Maroon",
|
||||
"Red": "Red",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Yellow",
|
||||
"Olive": "Olive",
|
||||
"Green": "Green",
|
||||
"Teal": "Teal",
|
||||
"Lime": "Lime",
|
||||
"Purple": "Purple",
|
||||
"Navy": "Navy",
|
||||
"Blue": "Blue",
|
||||
"Aqua": "Aqua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "None",
|
||||
"Thin": "Thin",
|
||||
"Normal": "Normal",
|
||||
"Thick": "Thick"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Інші",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Невідомо"
|
||||
},
|
||||
"safe_area_in_controls": "Безпечна зона в елементах керування",
|
||||
"video_player": "Відео плеєр",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Experimental + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Показати користувацькі посилання меню",
|
||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||
"hide_libraries": "Сховати медіатеки",
|
||||
"select_liraries_you_want_to_hide": "Виберіть медіатеки, що бажаєте приховати з вкладки Медіатека і з секції на головній сторінці.",
|
||||
"disable_haptic_feedback": "Вимкнути тактильний зворотний зв'язок",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Max Auto Play Episode Count",
|
||||
"disabled": "Вимкнено"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Завантаження"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Дізнайтеся більше про Marlin.",
|
||||
"save_button": "Зберегти",
|
||||
"toasts": {
|
||||
"saved": "Збережено",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "Збережено"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Видалити усі завантаженні файли",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Export logs",
|
||||
"click_for_more_info": "Click for more info",
|
||||
"level": "Level",
|
||||
"no_logs_available": "Нема доступних журналів",
|
||||
"delete_all_logs": "Видалити усі журнали"
|
||||
"no_logs_available": "Нема доступних журналів"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Мова",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "Системна"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Помилка при видалені файлів",
|
||||
"background_downloads_enabled": "Завантаження в фоні увімкнене",
|
||||
"background_downloads_disabled": "Завантаження в фоні вимкнене"
|
||||
"error_deleting_files": "Помилка при видалені файлів"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Завантаження",
|
||||
"tvseries": "ТБ-Серіали",
|
||||
"movies": "Фільми",
|
||||
"queue": "Черга",
|
||||
"other_media": "Other media",
|
||||
"queue_hint": "Черга і завантаження буде втрачене при перезапуску застосунку",
|
||||
"no_items_in_queue": "Нема елементів в черзі",
|
||||
"no_downloaded_items": "Нема завантажених елементів",
|
||||
"delete_all_movies_button": "Видалити всі Фільми",
|
||||
"delete_all_tvseries_button": "Видалити всі ТБ-Серіали",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "Нове оновлення вимагає повторного завантаження вмісту. Будь ласка, видаліть весь завантажений вміст і повторіть спробу.",
|
||||
"back": "Назад",
|
||||
"delete": "Видалити",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Щось пішло не так",
|
||||
"could_not_get_stream_url_from_jellyfin": "Не вдалося отримати URL-адресу потоку від Jellyfin",
|
||||
"eta": "ETA {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Не вдалося видалити всі телесеріали",
|
||||
"deleted_media_successfully": "Deleted other media Successfully!",
|
||||
"failed_to_delete_media": "Failed to Delete other media",
|
||||
"download_deleted": "Download Deleted",
|
||||
"download_cancelled": "Завантаження скасоване",
|
||||
"could_not_delete_download": "Could Not Delete Download",
|
||||
"download_paused": "Download Paused",
|
||||
"could_not_pause_download": "Could Not Pause Download",
|
||||
"download_resumed": "Download Resumed",
|
||||
"could_not_resume_download": "Could Not Resume Download",
|
||||
"download_completed": "Завантаження завершено",
|
||||
"download_failed": "Download Failed",
|
||||
"download_failed_for_item": "Не вдалося завантажити {{item}} - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} is already downloading",
|
||||
"all_files_deleted": "All Downloads Deleted Successfully",
|
||||
"files_deleted_by_type": "{{count}} {{type}} deleted",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Усі файли, папки та завдання успішно видалено",
|
||||
"failed_to_clean_cache_directory": "Failed to clean cache directory",
|
||||
"could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}",
|
||||
"go_to_downloads": "Перейти до завантаження",
|
||||
"file_deleted": "{{item}} deleted"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Select",
|
||||
"no_trailer_available": "No trailer available",
|
||||
"video": "Video",
|
||||
"audio": "Audio",
|
||||
"subtitle": "Subtitle",
|
||||
"play": "Play",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "None",
|
||||
"track": "Track",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Шукати...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "фільми",
|
||||
"series": "серіали",
|
||||
"boxsets": "бокс-сети",
|
||||
"playlists": "Playlists",
|
||||
"items": "елементи"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Постер",
|
||||
"cover": "Обкладинка",
|
||||
"show_titles": "Показати заголовки",
|
||||
"show_stats": "Показати статистику"
|
||||
"show_stats": "Показати статистику",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Жанри",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Відсортувати за",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "Порядок сортування",
|
||||
"tags": "Теги"
|
||||
"tags": "Теги",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Немає посилань"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Помилка",
|
||||
"failed_to_get_stream_url": "Не вдалося отримати URL-адресу потоку",
|
||||
"an_error_occured_while_playing_the_video": "Під час відтворення відео сталася помилка. Перевірте журнал в налаштуваннях.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Не вдалося створити потік для Chromecast",
|
||||
"message_from_server": "Повідомлення від серверу: {{message}}",
|
||||
"next_episode": "Наступний Епізод",
|
||||
"refresh_tracks": "Оновити доріжки",
|
||||
"audio_tracks": "Аудіо-доріжки:",
|
||||
"playback_state": "Стан відтворення:",
|
||||
"index": "Індекс:",
|
||||
"continue_watching": "Продовжити перегляд",
|
||||
"go_back": "Назад",
|
||||
"downloaded_file_title": "You have this file downloaded",
|
||||
"downloaded_file_message": "Do you want to play the downloaded file?",
|
||||
"downloaded_file_yes": "Yes",
|
||||
"downloaded_file_no": "No",
|
||||
"downloaded_file_cancel": "Cancel"
|
||||
"downloaded_file_cancel": "Cancel",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Далі",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Серіали",
|
||||
"seasons": "Сезони",
|
||||
"season": "Сезон",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "У цьому сезоні немає епізодів",
|
||||
"overview": "Огляд",
|
||||
"more_with": "Більше з {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Media Options",
|
||||
"quality": "Якість",
|
||||
"audio": "Аудіо",
|
||||
"subtitles": "Субтитри",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Показати більше",
|
||||
"show_less": "Показати менше",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Зʼявлявся у",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Неможливо завантажити елемент",
|
||||
"none": "Нічого",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Завантажено {{item_count}} елементів",
|
||||
"download_unwatched_only": "Unwatched Only",
|
||||
"download_button": "Завантажити"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Наступний",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Фільми",
|
||||
"sports": "Спорт",
|
||||
"for_kids": "Для дітей",
|
||||
"news": "Новини"
|
||||
"news": "Новини",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Підтвердити",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Decline",
|
||||
"requested_by": "Requested by {{user}}",
|
||||
"unknown_user": "Unknown User",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Версія Jellyseerr не відповідає мінімальним вимогам! Будь ласка, оновіться принаймні до 2.0.0",
|
||||
"jellyseerr_test_failed": "Тест Jellyseerr завершився невдало. Спробуйте ще раз.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Пошук",
|
||||
"library": "Медіатека",
|
||||
"custom_links": "Ваші Посилання",
|
||||
"favorites": "Улюблене"
|
||||
"favorites": "Улюблене",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Lỗi",
|
||||
"login_title": "Đăng nhập",
|
||||
"login_to_title": "Đăng nhập vào",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Tên người dùng",
|
||||
"password_placeholder": "Mật khẩu",
|
||||
"login_button": "Đăng nhập",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Ối!",
|
||||
"error_message": "Có lỗi xảy ra.\nVui lòng đăng xuất rồi đăng nhập lại.",
|
||||
"continue_watching": "Tiếp tục xem",
|
||||
"continue": "Continue",
|
||||
"next_up": "Tiếp theo",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "Mới thêm trong {{libraryName}}",
|
||||
"suggested_movies": "Phim gợi ý",
|
||||
"suggested_episodes": "Tập gợi ý",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Chào mừng đến với Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "Một ứng dụng miễn phí và mã nguồn mở cho Jellyfin.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Cài đặt",
|
||||
"log_out_button": "Đăng xuất",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categories"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Appearance",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"hide_remote_session_button": "Hide Remote Session Button",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Thời gian tua lui",
|
||||
"seconds_unit": "s"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Gesture Controls",
|
||||
"horizontal_swipe_skip": "Horizontal Swipe to Skip",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "Không hiển thị",
|
||||
"OnlyForced": "Bắt buộc"
|
||||
},
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"bold_text": "Bold Text",
|
||||
"colors": {
|
||||
"Black": "Black",
|
||||
"Gray": "Gray",
|
||||
"Silver": "Silver",
|
||||
"White": "White",
|
||||
"Maroon": "Maroon",
|
||||
"Red": "Red",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Yellow",
|
||||
"Olive": "Olive",
|
||||
"Green": "Green",
|
||||
"Teal": "Teal",
|
||||
"Lime": "Lime",
|
||||
"Purple": "Purple",
|
||||
"Navy": "Navy",
|
||||
"Blue": "Blue",
|
||||
"Aqua": "Aqua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "Không có",
|
||||
"Thin": "Thin",
|
||||
"Normal": "Normal",
|
||||
"Thick": "Thick"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Khác",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Không rõ"
|
||||
},
|
||||
"safe_area_in_controls": "Vùng an toàn trong điều khiển",
|
||||
"video_player": "Trình phát video",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Thử nghiệm + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Hiện liên kết tùy chỉnh",
|
||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||
"hide_libraries": "Ẩn thư viện",
|
||||
"select_liraries_you_want_to_hide": "Chọn các thư viện muốn ẩn khỏi mục Thư viện và Trang chủ.",
|
||||
"disable_haptic_feedback": "Tắt phản hồi rung",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Số tập tự chạy tối đa",
|
||||
"disabled": "Đã tắt"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Tải xuống"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Tìm hiểu thêm về Marlin.",
|
||||
"save_button": "Lưu",
|
||||
"toasts": {
|
||||
"saved": "Đã lưu",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "Đã lưu"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Xóa toàn bộ tập tin đã tải",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Xuất nhật ký",
|
||||
"click_for_more_info": "Nhấn để xem thêm thông tin",
|
||||
"level": "Mức độ",
|
||||
"no_logs_available": "Không có nhật ký",
|
||||
"delete_all_logs": "Xóa tất cả nhật ký"
|
||||
"no_logs_available": "Không có nhật ký"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Ngôn ngữ",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "Hệ thống"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Lỗi khi xóa tập tin",
|
||||
"background_downloads_enabled": "Tải trong nền đã bật",
|
||||
"background_downloads_disabled": "Tải trong nền đã tắt"
|
||||
"error_deleting_files": "Lỗi khi xóa tập tin"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Tải xuống",
|
||||
"tvseries": "Chương trình TV",
|
||||
"movies": "Phim",
|
||||
"queue": "Hàng đợi",
|
||||
"other_media": "Other media",
|
||||
"queue_hint": "Hàng đợi và tải xuống sẽ bị mất khi khởi động lại ứng dụng",
|
||||
"no_items_in_queue": "Không có mục trong hàng đợi",
|
||||
"no_downloaded_items": "Không có mục đã tải",
|
||||
"delete_all_movies_button": "Xóa tất cả phim",
|
||||
"delete_all_tvseries_button": "Xóa tất cả chương trình TV",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "Cập nhật mới yêu cầu phải tải lại nội dung. Vui lòng xóa toàn bộ nội dung đã tải và thử lại.",
|
||||
"back": "Quay lại",
|
||||
"delete": "Xóa",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Đã xảy ra lỗi",
|
||||
"could_not_get_stream_url_from_jellyfin": "Không thể lấy URL phát trực tiếp từ Jellyfin",
|
||||
"eta": "Thời gian còn lại {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Xóa chương trình TV thất bại",
|
||||
"deleted_media_successfully": "Deleted other media Successfully!",
|
||||
"failed_to_delete_media": "Failed to Delete other media",
|
||||
"download_deleted": "Download Deleted",
|
||||
"download_cancelled": "Tải xuống bị hủy",
|
||||
"could_not_delete_download": "Could Not Delete Download",
|
||||
"download_paused": "Download Paused",
|
||||
"could_not_pause_download": "Could Not Pause Download",
|
||||
"download_resumed": "Download Resumed",
|
||||
"could_not_resume_download": "Could Not Resume Download",
|
||||
"download_completed": "Tải xuống hoàn tất",
|
||||
"download_failed": "Download Failed",
|
||||
"download_failed_for_item": "Tải {{item}} thất bại – {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} is already downloading",
|
||||
"all_files_deleted": "All Downloads Deleted Successfully",
|
||||
"files_deleted_by_type": "{{count}} {{type}} deleted",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "Đã xóa thành công tất cả tập tin, thư mục và công việc",
|
||||
"failed_to_clean_cache_directory": "Failed to clean cache directory",
|
||||
"could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}",
|
||||
"go_to_downloads": "Tới phần tải về",
|
||||
"file_deleted": "{{item}} deleted"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Select",
|
||||
"no_trailer_available": "No trailer available",
|
||||
"video": "Video",
|
||||
"audio": "Âm thanh",
|
||||
"subtitle": "Phụ đề",
|
||||
"play": "Play",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "None",
|
||||
"track": "Track",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Tìm...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "phim",
|
||||
"series": "chương trình",
|
||||
"boxsets": "bộ sưu tập",
|
||||
"playlists": "Playlists",
|
||||
"items": "nội dung"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Ảnh bìa dọc",
|
||||
"cover": "Bìa",
|
||||
"show_titles": "Hiển thị tiêu đề",
|
||||
"show_stats": "Hiện thống kê"
|
||||
"show_stats": "Hiện thống kê",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Thể loại",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Sắp xếp theo",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "Thứ tự",
|
||||
"tags": "Thẻ"
|
||||
"tags": "Thẻ",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "Chưa có liên kết"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Lỗi",
|
||||
"failed_to_get_stream_url": "Không thể lấy URL phát trực tiếp",
|
||||
"an_error_occured_while_playing_the_video": "Có lỗi khi phát video. Xem nhật ký trong cài đặt.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Không thể tạo luồng cho Chromecast",
|
||||
"message_from_server": "Thông báo từ máy chủ: {{message}}",
|
||||
"next_episode": "Tập tiếp theo",
|
||||
"refresh_tracks": "Làm mới các track",
|
||||
"audio_tracks": "Track âm thanh:",
|
||||
"playback_state": "Trạng thái phát:",
|
||||
"index": "Chỉ mục:",
|
||||
"continue_watching": "Tiếp tục xem",
|
||||
"go_back": "Quay lại",
|
||||
"downloaded_file_title": "You have this file downloaded",
|
||||
"downloaded_file_message": "Do you want to play the downloaded file?",
|
||||
"downloaded_file_yes": "Yes",
|
||||
"downloaded_file_no": "No",
|
||||
"downloaded_file_cancel": "Cancel"
|
||||
"downloaded_file_cancel": "Cancel",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Tiếp theo",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Chương trình",
|
||||
"seasons": "Mùa",
|
||||
"season": "Mùa",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "Không có tập cho mùa này",
|
||||
"overview": "Giới thiệu",
|
||||
"more_with": "Thêm với {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Media Options",
|
||||
"quality": "Chất lượng",
|
||||
"audio": "Âm thanh",
|
||||
"subtitles": "Phụ đề",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Xem thêm",
|
||||
"show_less": "Thu gọn",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Xuất hiện trong",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Không thể tải nội dung",
|
||||
"none": "Không có",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Tải {{item_count}} nội dung",
|
||||
"download_unwatched_only": "Unwatched Only",
|
||||
"download_button": "Tải"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Tiếp theo",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Phim",
|
||||
"sports": "Thể thao",
|
||||
"for_kids": "Dành cho trẻ em",
|
||||
"news": "Tin tức"
|
||||
"news": "Tin tức",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Xác nhận",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Decline",
|
||||
"requested_by": "Requested by {{user}}",
|
||||
"unknown_user": "Unknown User",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Máy chủ Jellyseerr không đạt yêu cầu tối thiểu! Vui lòng cập nhật lên ít nhất 2.0.0",
|
||||
"jellyseerr_test_failed": "Kiểm tra Jellyseerr thất bại. Vui lòng thử lại.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Tìm kiếm",
|
||||
"library": "Thư viện",
|
||||
"custom_links": "Liên kết tùy chỉnh",
|
||||
"favorites": "Yêu thích"
|
||||
"favorites": "Yêu thích",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
"next_up": "下一个",
|
||||
"recently_added_in": "最近添加于 {{libraryName}}",
|
||||
"suggested_movies": "推荐电影",
|
||||
"suggested_episodes": "推荐剧集",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "欢迎来到 Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "一个免费且开源的 Jellyfin 客户端。",
|
||||
@@ -128,18 +127,12 @@
|
||||
"UNKNOWN": "未知"
|
||||
},
|
||||
"safe_area_in_controls": "控制中的安全区域",
|
||||
"video_player": "Video player",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Experimental + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "显示自定义菜单链接",
|
||||
"hide_libraries": "隐藏媒体库",
|
||||
"select_liraries_you_want_to_hide": "选择您想从媒体库页面和主页隐藏的媒体库。",
|
||||
"disable_haptic_feedback": "禁用触觉反馈"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "下载",
|
||||
"optimized_versions_server": "Optimized Version 服务器",
|
||||
"save_button": "保存",
|
||||
"optimized_server": "Optimized Server",
|
||||
@@ -204,8 +197,7 @@
|
||||
"export_logs": "Export logs",
|
||||
"click_for_more_info": "Click for more info",
|
||||
"level": "Level",
|
||||
"no_logs_available": "无可用日志",
|
||||
"delete_all_logs": "删除所有日志"
|
||||
"no_logs_available": "无可用日志"
|
||||
},
|
||||
"languages": {
|
||||
"title": "语言",
|
||||
@@ -215,8 +207,6 @@
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "删除文件时出错",
|
||||
"background_downloads_enabled": "后台下载已启用",
|
||||
"background_downloads_disabled": "后台下载已禁用",
|
||||
"connected": "已连接",
|
||||
"could_not_connect": "无法连接",
|
||||
"invalid_url": "无效 URL"
|
||||
@@ -226,9 +216,6 @@
|
||||
"downloads_title": "下载",
|
||||
"tvseries": "剧集",
|
||||
"movies": "电影",
|
||||
"queue": "队列",
|
||||
"queue_hint": "应用重启后队列和下载将会丢失",
|
||||
"no_items_in_queue": "队列中无项目",
|
||||
"no_downloaded_items": "无已下载项目",
|
||||
"delete_all_movies_button": "删除所有电影",
|
||||
"delete_all_tvseries_button": "删除所有剧集",
|
||||
@@ -264,9 +251,7 @@
|
||||
"no_response_received_from_server": "未收到服务器响应",
|
||||
"error_setting_up_the_request": "设置请求时出错",
|
||||
"failed_to_start_download_for_item_unexpected_error": "无法开始下载 {{item}}: 发生意外错误",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "所有文件、文件夹和任务成功删除",
|
||||
"an_error_occured_while_deleting_files_and_jobs": "删除文件和任务时发生错误",
|
||||
"go_to_downloads": "前往下载"
|
||||
"an_error_occured_while_deleting_files_and_jobs": "删除文件和任务时发生错误"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -360,12 +345,8 @@
|
||||
"video_has_finished_playing": "视频播放完成!",
|
||||
"no_video_source": "无视频来源...",
|
||||
"next_episode": "下一集",
|
||||
"refresh_tracks": "刷新轨道",
|
||||
"subtitle_tracks": "字幕轨道:",
|
||||
"audio_tracks": "音频轨道:",
|
||||
"playback_state": "播放状态:",
|
||||
"no_data_available": "无可用数据",
|
||||
"index": "索引:",
|
||||
"continue_watching": "继续观看",
|
||||
"go_back": "返回"
|
||||
},
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
"next_up": "下一個",
|
||||
"recently_added_in": "最近添加於 {{libraryName}}",
|
||||
"suggested_movies": "推薦電影",
|
||||
"suggested_episodes": "推薦劇集",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "歡迎來到 Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "一個免費且開源的 Jellyfin 客戶端。",
|
||||
@@ -128,11 +127,6 @@
|
||||
"UNKNOWN": "未知"
|
||||
},
|
||||
"safe_area_in_controls": "控制中的安全區域",
|
||||
"video_player": "Video player",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Experimental + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "顯示自定義菜單鏈接",
|
||||
"hide_libraries": "隱藏媒體庫",
|
||||
"select_liraries_you_want_to_hide": "選擇您想從媒體庫頁面和主頁隱藏的媒體庫。",
|
||||
@@ -142,7 +136,6 @@
|
||||
"disabled": "已停用"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "下載",
|
||||
"optimized_versions_server": "Optimized Version 伺服器",
|
||||
"save_button": "保存",
|
||||
"optimized_server": "Optimized Server",
|
||||
@@ -207,8 +200,7 @@
|
||||
"export_logs": "Export logs",
|
||||
"click_for_more_info": "Click for more info",
|
||||
"level": "Level",
|
||||
"no_logs_available": "無可用日誌",
|
||||
"delete_all_logs": "刪除所有日誌"
|
||||
"no_logs_available": "無可用日誌"
|
||||
},
|
||||
"languages": {
|
||||
"title": "語言",
|
||||
@@ -218,8 +210,6 @@
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "刪除文件時出錯",
|
||||
"background_downloads_enabled": "背景下載已啟用",
|
||||
"background_downloads_disabled": "背景下載已禁用",
|
||||
"connected": "已連接",
|
||||
"could_not_connect": "無法連接",
|
||||
"invalid_url": "無效的 URL"
|
||||
@@ -233,9 +223,6 @@
|
||||
"downloads_title": "下載",
|
||||
"tvseries": "電視劇",
|
||||
"movies": "電影",
|
||||
"queue": "隊列",
|
||||
"queue_hint": "應用重啟後隊列和下載將會丟失",
|
||||
"no_items_in_queue": "隊列中無項目",
|
||||
"no_downloaded_items": "無已下載項目",
|
||||
"delete_all_movies_button": "刪除所有電影",
|
||||
"delete_all_tvseries_button": "刪除所有電視劇",
|
||||
@@ -271,9 +258,7 @@
|
||||
"no_response_received_from_server": "未收到伺服器的響應",
|
||||
"error_setting_up_the_request": "設置請求時出錯",
|
||||
"failed_to_start_download_for_item_unexpected_error": "無法開始下載 {{item}}: 發生意外錯誤",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "所有文件、文件夾和任務成功刪除",
|
||||
"an_error_occured_while_deleting_files_and_jobs": "刪除文件和任務時發生錯誤",
|
||||
"go_to_downloads": "前往下載"
|
||||
"an_error_occured_while_deleting_files_and_jobs": "刪除文件和任務時發生錯誤"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -367,12 +352,8 @@
|
||||
"video_has_finished_playing": "影片播放完畢!",
|
||||
"no_video_source": "無影片來源...",
|
||||
"next_episode": "下一集",
|
||||
"refresh_tracks": "刷新軌道",
|
||||
"subtitle_tracks": "字幕軌道:",
|
||||
"audio_tracks": "音頻軌道:",
|
||||
"playback_state": "播放狀態:",
|
||||
"no_data_available": "無可用數據",
|
||||
"index": "索引:",
|
||||
"continue_watching": "繼續觀看",
|
||||
"go_back": "返回"
|
||||
},
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
"error_title": "Error",
|
||||
"login_title": "Log In",
|
||||
"login_to_title": "Log in to",
|
||||
"select_user": "Select a user to log in",
|
||||
"add_user_to_login": "Add a user to log in",
|
||||
"add_user": "Add User",
|
||||
"username_placeholder": "Username",
|
||||
"password_placeholder": "Password",
|
||||
"login_button": "Log In",
|
||||
@@ -42,7 +45,13 @@
|
||||
"accounts_count": "{{count}} accounts",
|
||||
"select_account": "Select Account",
|
||||
"add_account": "Add Account",
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}."
|
||||
"remove_account_description": "This will remove the saved credentials for {{username}}.",
|
||||
"remove_server": "Remove Server",
|
||||
"remove_server_description": "This will remove {{server}} and all saved accounts from your list.",
|
||||
"select_your_server": "Select Your Server",
|
||||
"add_server_to_get_started": "Add a server to get started",
|
||||
"add_server": "Add Server",
|
||||
"change_server": "Change Server"
|
||||
},
|
||||
"save_account": {
|
||||
"title": "Save Account",
|
||||
@@ -86,11 +95,11 @@
|
||||
"oops": "Oops!",
|
||||
"error_message": "Something went wrong.\nPlease log out and in again.",
|
||||
"continue_watching": "Continue Watching",
|
||||
"continue": "Continue",
|
||||
"next_up": "Next Up",
|
||||
"continue_and_next_up": "Continue & Next Up",
|
||||
"recently_added_in": "Recently Added in {{libraryName}}",
|
||||
"suggested_movies": "Suggested Movies",
|
||||
"suggested_episodes": "Suggested Episodes",
|
||||
"intro": {
|
||||
"welcome_to_streamyfin": "Welcome to Streamyfin",
|
||||
"a_free_and_open_source_client_for_jellyfin": "A Free and Open-Source Client for Jellyfin.",
|
||||
@@ -109,6 +118,12 @@
|
||||
"settings": {
|
||||
"settings_title": "Settings",
|
||||
"log_out_button": "Log Out",
|
||||
"switch_user": {
|
||||
"title": "Switch User",
|
||||
"account": "Account",
|
||||
"switch_user": "Switch User on This Server",
|
||||
"current": "current"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categories"
|
||||
},
|
||||
@@ -121,7 +136,16 @@
|
||||
"appearance": {
|
||||
"title": "Appearance",
|
||||
"merge_next_up_continue_watching": "Merge Continue Watching & Next Up",
|
||||
"hide_remote_session_button": "Hide Remote Session Button"
|
||||
"hide_remote_session_button": "Hide Remote Session Button",
|
||||
"show_home_backdrop": "Dynamic Home Backdrop",
|
||||
"show_hero_carousel": "Hero Carousel",
|
||||
"show_series_poster_on_episode": "Show Series Poster on Episodes",
|
||||
"theme_music": "Theme Music",
|
||||
"display_size": "Display Size",
|
||||
"display_size_small": "Small",
|
||||
"display_size_default": "Default",
|
||||
"display_size_large": "Large",
|
||||
"display_size_extra_large": "Extra Large"
|
||||
},
|
||||
"network": {
|
||||
"title": "Network",
|
||||
@@ -174,6 +198,22 @@
|
||||
"rewind_length": "Rewind Length",
|
||||
"seconds_unit": "s"
|
||||
},
|
||||
"buffer": {
|
||||
"title": "Buffer Settings",
|
||||
"cache_mode": "Cache Mode",
|
||||
"cache_auto": "Auto",
|
||||
"cache_yes": "Enabled",
|
||||
"cache_no": "Disabled",
|
||||
"buffer_duration": "Buffer Duration",
|
||||
"max_cache_size": "Max Cache Size",
|
||||
"max_backward_cache": "Max Backward Cache"
|
||||
},
|
||||
"vo_driver": {
|
||||
"title": "Video Output",
|
||||
"vo_mode": "VO Driver",
|
||||
"gpu_next": "gpu-next (Recommended)",
|
||||
"gpu": "gpu"
|
||||
},
|
||||
"gesture_controls": {
|
||||
"gesture_controls_title": "Gesture Controls",
|
||||
"horizontal_swipe_skip": "Horizontal Swipe to Skip",
|
||||
@@ -220,62 +260,22 @@
|
||||
"None": "None",
|
||||
"OnlyForced": "OnlyForced"
|
||||
},
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"bold_text": "Bold Text",
|
||||
"colors": {
|
||||
"Black": "Black",
|
||||
"Gray": "Gray",
|
||||
"Silver": "Silver",
|
||||
"White": "White",
|
||||
"Maroon": "Maroon",
|
||||
"Red": "Red",
|
||||
"Fuchsia": "Fuchsia",
|
||||
"Yellow": "Yellow",
|
||||
"Olive": "Olive",
|
||||
"Green": "Green",
|
||||
"Teal": "Teal",
|
||||
"Lime": "Lime",
|
||||
"Purple": "Purple",
|
||||
"Navy": "Navy",
|
||||
"Blue": "Blue",
|
||||
"Aqua": "Aqua"
|
||||
},
|
||||
"thickness": {
|
||||
"None": "None",
|
||||
"Thin": "Thin",
|
||||
"Normal": "Normal",
|
||||
"Thick": "Thick"
|
||||
},
|
||||
"subtitle_color": "Subtitle Color",
|
||||
"subtitle_background_color": "Background Color",
|
||||
"subtitle_font": "Subtitle Font",
|
||||
"ksplayer_title": "KSPlayer Settings",
|
||||
"hardware_decode": "Hardware Decoding",
|
||||
"hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues."
|
||||
},
|
||||
"vlc_subtitles": {
|
||||
"title": "VLC Subtitle Settings",
|
||||
"hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.",
|
||||
"text_color": "Text Color",
|
||||
"background_color": "Background Color",
|
||||
"background_opacity": "Background Opacity",
|
||||
"outline_color": "Outline Color",
|
||||
"outline_opacity": "Outline Opacity",
|
||||
"outline_thickness": "Outline Thickness",
|
||||
"bold": "Bold Text",
|
||||
"margin": "Bottom Margin"
|
||||
},
|
||||
"video_player": {
|
||||
"title": "Video Player",
|
||||
"video_player": "Video Player",
|
||||
"video_player_description": "Choose which video player to use on iOS.",
|
||||
"ksplayer": "KSPlayer",
|
||||
"vlc": "VLC"
|
||||
"opensubtitles_title": "OpenSubtitles",
|
||||
"opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.",
|
||||
"opensubtitles_api_key": "API Key",
|
||||
"opensubtitles_api_key_placeholder": "Enter API key...",
|
||||
"opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers",
|
||||
"mpv_subtitle_scale": "Subtitle Scale",
|
||||
"mpv_subtitle_margin_y": "Vertical Margin",
|
||||
"mpv_subtitle_align_x": "Horizontal Align",
|
||||
"mpv_subtitle_align_y": "Vertical Align",
|
||||
"align": {
|
||||
"left": "Left",
|
||||
"center": "Center",
|
||||
"right": "Right",
|
||||
"top": "Top",
|
||||
"bottom": "Bottom"
|
||||
}
|
||||
},
|
||||
"other": {
|
||||
"other_title": "Other",
|
||||
@@ -294,13 +294,7 @@
|
||||
"UNKNOWN": "Unknown"
|
||||
},
|
||||
"safe_area_in_controls": "Safe Area in Controls",
|
||||
"video_player": "Video Player",
|
||||
"video_players": {
|
||||
"VLC_3": "VLC 3",
|
||||
"VLC_4": "VLC 4 (Experimental + PiP)"
|
||||
},
|
||||
"show_custom_menu_links": "Show Custom Menu Links",
|
||||
"show_large_home_carousel": "Show Large Home Carousel (beta)",
|
||||
"hide_libraries": "Hide Libraries",
|
||||
"select_liraries_you_want_to_hide": "Select the libraries you want to hide from the Library tab and home page sections.",
|
||||
"disable_haptic_feedback": "Disable Haptic Feedback",
|
||||
@@ -310,9 +304,6 @@
|
||||
"max_auto_play_episode_count": "Max Auto Play Episode Count",
|
||||
"disabled": "Disabled"
|
||||
},
|
||||
"downloads": {
|
||||
"downloads_title": "Downloads"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
"playback_title": "Playback",
|
||||
@@ -356,23 +347,18 @@
|
||||
"read_more_about_marlin": "Read More About Marlin.",
|
||||
"save_button": "Save",
|
||||
"toasts": {
|
||||
"saved": "Saved",
|
||||
"refreshed": "Settings refreshed from server"
|
||||
},
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
"saved": "Saved"
|
||||
}
|
||||
},
|
||||
"streamystats": {
|
||||
"enable_streamystats": "Enable Streamystats",
|
||||
"disable_streamystats": "Disable Streamystats",
|
||||
"enable_search": "Use for Search",
|
||||
"url": "URL",
|
||||
"server_url_placeholder": "http(s)://streamystats.example.com",
|
||||
"streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.",
|
||||
"read_more_about_streamystats": "Read More About Streamystats.",
|
||||
"save_button": "Save",
|
||||
"save": "Save",
|
||||
"features_title": "Features",
|
||||
"home_sections_title": "Home Sections",
|
||||
"enable_movie_recommendations": "Movie Recommendations",
|
||||
"enable_series_recommendations": "Series Recommendations",
|
||||
"enable_promoted_watchlists": "Promoted Watchlists",
|
||||
@@ -388,8 +374,7 @@
|
||||
"refresh_from_server": "Refresh Settings from Server"
|
||||
},
|
||||
"kefinTweaks": {
|
||||
"watchlist_enabler": "Enable our Watchlist integration",
|
||||
"watchlist_button": "Toggle Watchlist integration"
|
||||
"watchlist_enabler": "Enable our Watchlist integration"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
@@ -400,13 +385,16 @@
|
||||
"delete_all_downloaded_files": "Delete All Downloaded Files",
|
||||
"music_cache_title": "Music Cache",
|
||||
"music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support",
|
||||
"enable_music_cache": "Enable Music Cache",
|
||||
"clear_music_cache": "Clear Music Cache",
|
||||
"music_cache_size": "{{size}} cached",
|
||||
"music_cache_cleared": "Music cache cleared",
|
||||
"delete_all_downloaded_songs": "Delete All Downloaded Songs",
|
||||
"downloaded_songs_size": "{{size}} downloaded",
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted"
|
||||
"downloaded_songs_deleted": "Downloaded songs deleted",
|
||||
"clear_all_cache": "Clear All Cache",
|
||||
"clear_all_cache_confirm": "Clear All Cache?",
|
||||
"clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.",
|
||||
"clear_all_cache_error_desc": "An error occurred while clearing the cache."
|
||||
},
|
||||
"intro": {
|
||||
"title": "Intro",
|
||||
@@ -418,8 +406,7 @@
|
||||
"export_logs": "Export Logs",
|
||||
"click_for_more_info": "Click for More Info",
|
||||
"level": "Level",
|
||||
"no_logs_available": "No Logs Available",
|
||||
"delete_all_logs": "Delete All Logs"
|
||||
"no_logs_available": "No Logs Available"
|
||||
},
|
||||
"languages": {
|
||||
"title": "Languages",
|
||||
@@ -427,9 +414,21 @@
|
||||
"system": "System"
|
||||
},
|
||||
"toasts": {
|
||||
"error_deleting_files": "Error Deleting Files",
|
||||
"background_downloads_enabled": "Background downloads enabled",
|
||||
"background_downloads_disabled": "Background downloads disabled"
|
||||
"error_deleting_files": "Error Deleting Files"
|
||||
},
|
||||
"security": {
|
||||
"title": "Security",
|
||||
"inactivity_timeout": {
|
||||
"title": "Inactivity Timeout",
|
||||
"disabled": "Disabled",
|
||||
"1_minute": "1 minute",
|
||||
"5_minutes": "5 minutes",
|
||||
"15_minutes": "15 minutes",
|
||||
"30_minutes": "30 minutes",
|
||||
"1_hour": "1 hour",
|
||||
"4_hours": "4 hours",
|
||||
"24_hours": "24 hours"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sessions": {
|
||||
@@ -440,10 +439,7 @@
|
||||
"downloads_title": "Downloads",
|
||||
"tvseries": "TV-Series",
|
||||
"movies": "Movies",
|
||||
"queue": "Queue",
|
||||
"other_media": "Other media",
|
||||
"queue_hint": "Queue and downloads will be lost on app restart",
|
||||
"no_items_in_queue": "No Items in Queue",
|
||||
"no_downloaded_items": "No Downloaded Items",
|
||||
"delete_all_movies_button": "Delete All Movies",
|
||||
"delete_all_tvseries_button": "Delete All TV-Series",
|
||||
@@ -456,6 +452,7 @@
|
||||
"new_app_version_requires_re_download_description": "The new update requires content to be downloaded again. Please remove all downloaded content and try again.",
|
||||
"back": "Back",
|
||||
"delete": "Delete",
|
||||
"delete_download": "Delete Download",
|
||||
"something_went_wrong": "Something Went Wrong",
|
||||
"could_not_get_stream_url_from_jellyfin": "Could not get the stream URL from Jellyfin",
|
||||
"eta": "ETA {{eta}}",
|
||||
@@ -467,13 +464,8 @@
|
||||
"failed_to_delete_all_tvseries": "Failed to Delete All TV-Series",
|
||||
"deleted_media_successfully": "Deleted other media Successfully!",
|
||||
"failed_to_delete_media": "Failed to Delete other media",
|
||||
"download_deleted": "Download Deleted",
|
||||
"download_cancelled": "Download Cancelled",
|
||||
"could_not_delete_download": "Could Not Delete Download",
|
||||
"download_paused": "Download Paused",
|
||||
"could_not_pause_download": "Could Not Pause Download",
|
||||
"download_resumed": "Download Resumed",
|
||||
"could_not_resume_download": "Could Not Resume Download",
|
||||
"download_completed": "Download Completed",
|
||||
"download_failed": "Download Failed",
|
||||
"download_failed_for_item": "Download failed for {{item}} - {{error}}",
|
||||
@@ -483,31 +475,31 @@
|
||||
"item_already_downloading": "{{item}} is already downloading",
|
||||
"all_files_deleted": "All Downloads Deleted Successfully",
|
||||
"files_deleted_by_type": "{{count}} {{type}} deleted",
|
||||
"all_files_folders_and_jobs_deleted_successfully": "All files, folders, and jobs deleted successfully",
|
||||
"failed_to_clean_cache_directory": "Failed to clean cache directory",
|
||||
"could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}",
|
||||
"go_to_downloads": "Go to Downloads",
|
||||
"file_deleted": "{{item}} deleted"
|
||||
}
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"no_results": "No Results",
|
||||
"select": "Select",
|
||||
"no_trailer_available": "No trailer available",
|
||||
"video": "Video",
|
||||
"audio": "Audio",
|
||||
"subtitle": "Subtitle",
|
||||
"play": "Play",
|
||||
"mark_as_played": "Mark as Played",
|
||||
"mark_as_not_played": "Mark as not Played",
|
||||
"none": "None",
|
||||
"track": "Track",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"ok": "OK",
|
||||
"remove": "Remove",
|
||||
"next": "Next",
|
||||
"back": "Back",
|
||||
"continue": "Continue",
|
||||
"verifying": "Verifying..."
|
||||
"verifying": "Verifying...",
|
||||
"login": "Login"
|
||||
},
|
||||
"search": {
|
||||
"search": "Search...",
|
||||
@@ -556,6 +548,7 @@
|
||||
"movies": "Movies",
|
||||
"series": "Series",
|
||||
"boxsets": "Box Sets",
|
||||
"playlists": "Playlists",
|
||||
"items": "Items"
|
||||
},
|
||||
"options": {
|
||||
@@ -566,7 +559,8 @@
|
||||
"poster": "Poster",
|
||||
"cover": "Cover",
|
||||
"show_titles": "Show Titles",
|
||||
"show_stats": "Show Stats"
|
||||
"show_stats": "Show Stats",
|
||||
"options_title": "Options"
|
||||
},
|
||||
"filters": {
|
||||
"genres": "Genres",
|
||||
@@ -574,7 +568,11 @@
|
||||
"sort_by": "Sort By",
|
||||
"filter_by": "Filter By",
|
||||
"sort_order": "Sort Order",
|
||||
"tags": "Tags"
|
||||
"tags": "Tags",
|
||||
"all": "All",
|
||||
"reset": "Reset",
|
||||
"asc": "Ascending",
|
||||
"desc": "Descending"
|
||||
}
|
||||
},
|
||||
"favorites": {
|
||||
@@ -591,6 +589,8 @@
|
||||
"no_links": "No Links"
|
||||
},
|
||||
"player": {
|
||||
"live": "LIVE",
|
||||
"mpv_player_title": "MPV Player",
|
||||
"error": "Error",
|
||||
"failed_to_get_stream_url": "Failed to get the stream URL",
|
||||
"an_error_occured_while_playing_the_video": "An error occurred while playing the video. Check logs in settings.",
|
||||
@@ -598,17 +598,41 @@
|
||||
"could_not_create_stream_for_chromecast": "Could not create a stream for Chromecast",
|
||||
"message_from_server": "Message from Server: {{message}}",
|
||||
"next_episode": "Next Episode",
|
||||
"refresh_tracks": "Refresh Tracks",
|
||||
"audio_tracks": "Audio Tracks:",
|
||||
"playback_state": "Playback State:",
|
||||
"index": "Index:",
|
||||
"continue_watching": "Continue Watching",
|
||||
"go_back": "Go Back",
|
||||
"downloaded_file_title": "You have this file downloaded",
|
||||
"downloaded_file_message": "Do you want to play the downloaded file?",
|
||||
"downloaded_file_yes": "Yes",
|
||||
"downloaded_file_no": "No",
|
||||
"downloaded_file_cancel": "Cancel"
|
||||
"downloaded_file_cancel": "Cancel",
|
||||
"swipe_down_settings": "Swipe down for settings",
|
||||
"ends_at": "Ends at {{time}}",
|
||||
"search_subtitles": "Search Subtitles",
|
||||
"subtitle_tracks": "Tracks",
|
||||
"subtitle_search": "Search & Download",
|
||||
"download": "Download",
|
||||
"subtitle_download_hint": "Downloaded subtitles will be saved to your library",
|
||||
"using_jellyfin_server": "Using Jellyfin Server",
|
||||
"language": "Language",
|
||||
"results": "Results",
|
||||
"searching": "Searching...",
|
||||
"search_failed": "Search failed",
|
||||
"no_subtitle_provider": "No subtitle provider configured on server",
|
||||
"no_subtitles_found": "No subtitles found",
|
||||
"add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback",
|
||||
"settings": "Settings",
|
||||
"skip_intro": "Skip Intro",
|
||||
"skip_credits": "Skip Credits",
|
||||
"stopPlayback": "Stop Playback",
|
||||
"stopPlayingTitle": "Stop playing \"{{title}}\"?",
|
||||
"stopPlayingConfirm": "Are you sure you want to stop playback?",
|
||||
"downloaded": "Downloaded"
|
||||
},
|
||||
"chapters": {
|
||||
"title": "Chapters",
|
||||
"chapter_number": "Chapter {{number}}",
|
||||
"open": "Open chapters",
|
||||
"close": "Close chapters"
|
||||
},
|
||||
"item_card": {
|
||||
"next_up": "Next Up",
|
||||
@@ -617,6 +641,11 @@
|
||||
"series": "Series",
|
||||
"seasons": "Seasons",
|
||||
"season": "Season",
|
||||
"from_this_series": "From This Series",
|
||||
"more_from_this_season": "More from this Season",
|
||||
"view_series": "View Series",
|
||||
"view_season": "View Season",
|
||||
"select_season": "Select Season",
|
||||
"no_episodes_for_this_season": "No episodes for this season",
|
||||
"overview": "Overview",
|
||||
"more_with": "More with {{name}}",
|
||||
@@ -627,10 +656,20 @@
|
||||
"media_options": "Media Options",
|
||||
"quality": "Quality",
|
||||
"audio": "Audio",
|
||||
"subtitles": "Subtitle",
|
||||
"subtitles": {
|
||||
"label": "Subtitle",
|
||||
"none": "None",
|
||||
"tracks": "Tracks"
|
||||
},
|
||||
"show_more": "Show More",
|
||||
"show_less": "Show Less",
|
||||
"left": "left",
|
||||
"director": "Director",
|
||||
"cast": "Cast",
|
||||
"technical_details": "Technical Details",
|
||||
"appeared_in": "Appeared In",
|
||||
"movies": "Movies",
|
||||
"shows": "Shows",
|
||||
"could_not_load_item": "Could Not Load Item",
|
||||
"none": "None",
|
||||
"download": {
|
||||
@@ -641,7 +680,13 @@
|
||||
"download_x_item": "Download {{item_count}} Items",
|
||||
"download_unwatched_only": "Unwatched Only",
|
||||
"download_button": "Download"
|
||||
}
|
||||
},
|
||||
"mark_played": "Mark as Watched",
|
||||
"mark_unplayed": "Mark as Unwatched",
|
||||
"resume_playback": "Resume Playback",
|
||||
"resume_playback_description": "Do you want to continue where you left off or start from the beginning?",
|
||||
"play_from_start": "Play from Start",
|
||||
"continue_from": "Continue from {{time}}"
|
||||
},
|
||||
"live_tv": {
|
||||
"next": "Next",
|
||||
@@ -652,7 +697,18 @@
|
||||
"movies": "Movies",
|
||||
"sports": "Sports",
|
||||
"for_kids": "For Kids",
|
||||
"news": "News"
|
||||
"news": "News",
|
||||
"page_of": "Page {{current}} of {{total}}",
|
||||
"no_programs": "No programs available",
|
||||
"no_channels": "No channels available",
|
||||
"tabs": {
|
||||
"programs": "Programs",
|
||||
"guide": "Guide",
|
||||
"channels": "Channels",
|
||||
"recordings": "Recordings",
|
||||
"schedule": "Schedule",
|
||||
"series": "Series"
|
||||
}
|
||||
},
|
||||
"jellyseerr": {
|
||||
"confirm": "Confirm",
|
||||
@@ -697,6 +753,12 @@
|
||||
"decline": "Decline",
|
||||
"requested_by": "Requested by {{user}}",
|
||||
"unknown_user": "Unknown User",
|
||||
"select": "Select",
|
||||
"request_all": "Request All",
|
||||
"request_seasons": "Request Seasons",
|
||||
"select_seasons": "Select Seasons",
|
||||
"request_selected": "Request Selected",
|
||||
"n_selected": "{{count}} selected",
|
||||
"toasts": {
|
||||
"jellyseer_does_not_meet_requirements": "Seerr server does not meet minimum version requirements! Please update to at least 2.0.0",
|
||||
"jellyseerr_test_failed": "Seerr test failed. Please try again.",
|
||||
@@ -716,7 +778,8 @@
|
||||
"search": "Search",
|
||||
"library": "Library",
|
||||
"custom_links": "Custom Links",
|
||||
"favorites": "Favorites"
|
||||
"favorites": "Favorites",
|
||||
"settings": "Settings"
|
||||
},
|
||||
"music": {
|
||||
"title": "Music",
|
||||
@@ -727,13 +790,9 @@
|
||||
"playlists": "Playlists",
|
||||
"tracks": "tracks"
|
||||
},
|
||||
"filters": {
|
||||
"all": "All"
|
||||
},
|
||||
"recently_added": "Recently Added",
|
||||
"recently_played": "Recently Played",
|
||||
"frequently_played": "Frequently Played",
|
||||
"explore": "Explore",
|
||||
"top_tracks": "Top Tracks",
|
||||
"play": "Play",
|
||||
"shuffle": "Shuffle",
|
||||
@@ -841,5 +900,35 @@
|
||||
"show": "This show",
|
||||
"all": "All media (default)"
|
||||
}
|
||||
},
|
||||
"companion_login": {
|
||||
"title": "Pair with TV",
|
||||
"align_qr": "Align the QR code within the frame",
|
||||
"enter_code_manually": "Enter code manually",
|
||||
"pairing_enter_credentials": "Enter credentials for TV",
|
||||
"pairing_code_label": "Pairing code",
|
||||
"server": "Server",
|
||||
"authorize_button": "Authorize",
|
||||
"authorizing": "Authorizing...",
|
||||
"scan_again": "Scan Again",
|
||||
"done": "Done",
|
||||
"success_title": "Authorization Sent",
|
||||
"pairing_tv_connecting": "The TV is connecting to your account",
|
||||
"error_title": "Authorization Failed",
|
||||
"error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.",
|
||||
"error_generic": "Something went wrong. Please try again.",
|
||||
"error_permission_denied": "Camera permission is required to scan QR codes.",
|
||||
"login_as": "Log in as {{username}}?",
|
||||
"on_server": "on {{server}}",
|
||||
"use_different_user": "Use a different user",
|
||||
"open_settings": "Open Settings"
|
||||
},
|
||||
"pairing": {
|
||||
"pair_with_phone": "Pair with Phone",
|
||||
"pair_with_phone_title": "Login TV",
|
||||
"waiting_for_phone": "Waiting for phone...",
|
||||
"scan_with_phone": "Scan with the Streamyfin app on your phone",
|
||||
"logging_in": "Logging in...",
|
||||
"logging_in_description": "Connecting to your server"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user