feat(audio): add Kodi-style stereo downmix with center channel boost
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
package com.edde746.plezy.exoplayer
|
||||
|
||||
import kotlin.math.pow
|
||||
|
||||
/**
|
||||
* Stereo downmix coefficient builder (Kodi-style center boost).
|
||||
*
|
||||
* Channel-order assumptions per input count follow the Android channel-mask
|
||||
* bit order that MediaCodec / the FFmpeg extension emit:
|
||||
* 3 = FL FR FC, 4 = FL FR BL BR, 5 = FL FR FC BL BR, 6 = FL FR FC LFE BL BR,
|
||||
* 7 = 6.1 (5.1 + BC), 8 = 7.1 (5.1 + SL SR). LFE is dropped, matching
|
||||
* ffmpeg's default lfe_mix_level=0 (and what the mpv backends produce).
|
||||
*
|
||||
* All coefficients must stay >= 0: ChannelMixingMatrix throws on negatives.
|
||||
*/
|
||||
object DownmixMatrices {
|
||||
const val MIN_DOWNMIX_INPUT_CHANNELS = 3
|
||||
const val MAX_DOWNMIX_INPUT_CHANNELS = 8
|
||||
const val MAX_CENTER_BOOST_DB = 12
|
||||
|
||||
const val SURROUND_GAIN = 0.70710678f // -3 dB
|
||||
private const val BACK_CENTER_GAIN = 0.5f // SURROUND_GAIN split across both outputs
|
||||
|
||||
/** Kodi's mechanism: center coefficient = 10^((-3 + boostDb) / 20); boost 0 is the standard -3 dB. */
|
||||
fun centerGain(centerBoostDb: Int): Float = 10f.pow((-3f + centerBoostDb.coerceIn(0, MAX_CENTER_BOOST_DB)) / 20f)
|
||||
|
||||
/**
|
||||
* Row-major stereo coefficients ([inputChannel * 2 + outputChannel]), or null
|
||||
* when [inputChannels] is not downmixed (mono/stereo pass through; >8ch
|
||||
* unsupported, the caller keeps an identity matrix).
|
||||
*
|
||||
* [normalize] scales the matrix so the loudest output sum is <= 1 (cannot
|
||||
* clip); disabled keeps the original level like Kodi's "maintain original
|
||||
* volume" (the 16-bit mix saturates on clip).
|
||||
*/
|
||||
fun stereoCoefficients(inputChannels: Int, centerBoostDb: Int, normalize: Boolean): FloatArray? {
|
||||
val c = centerGain(centerBoostDb)
|
||||
val s = SURROUND_GAIN
|
||||
val rows: List<FloatArray> = when (inputChannels) {
|
||||
3 -> listOf(fl(), fr(), both(c))
|
||||
4 -> listOf(fl(), fr(), left(s), right(s))
|
||||
5 -> listOf(fl(), fr(), both(c), left(s), right(s))
|
||||
6 -> listOf(fl(), fr(), both(c), lfe(), left(s), right(s))
|
||||
7 -> listOf(fl(), fr(), both(c), lfe(), left(s), right(s), both(BACK_CENTER_GAIN))
|
||||
8 -> listOf(fl(), fr(), both(c), lfe(), left(s), right(s), left(s), right(s))
|
||||
else -> return null
|
||||
}
|
||||
val flat = FloatArray(rows.size * 2)
|
||||
rows.forEachIndexed { i, row ->
|
||||
flat[i * 2] = row[0]
|
||||
flat[i * 2 + 1] = row[1]
|
||||
}
|
||||
if (normalize) {
|
||||
var sumL = 0f
|
||||
var sumR = 0f
|
||||
for (i in rows.indices) {
|
||||
sumL += flat[i * 2]
|
||||
sumR += flat[i * 2 + 1]
|
||||
}
|
||||
val peak = maxOf(sumL, sumR, 1f)
|
||||
if (peak > 1f) {
|
||||
for (i in flat.indices) flat[i] /= peak
|
||||
}
|
||||
}
|
||||
return flat
|
||||
}
|
||||
|
||||
private fun fl() = floatArrayOf(1f, 0f)
|
||||
private fun fr() = floatArrayOf(0f, 1f)
|
||||
private fun left(gain: Float) = floatArrayOf(gain, 0f)
|
||||
private fun right(gain: Float) = floatArrayOf(0f, gain)
|
||||
private fun both(gain: Float) = floatArrayOf(gain, gain)
|
||||
private fun lfe() = floatArrayOf(0f, 0f)
|
||||
}
|
||||
@@ -31,6 +31,7 @@ import androidx.media3.common.TrackGroup
|
||||
import androidx.media3.common.TrackSelectionOverride
|
||||
import androidx.media3.common.Tracks
|
||||
import androidx.media3.common.VideoSize
|
||||
import androidx.media3.common.audio.ChannelMixingMatrix
|
||||
import androidx.media3.common.text.Cue
|
||||
import androidx.media3.common.text.CueGroup
|
||||
import androidx.media3.common.util.UnstableApi
|
||||
@@ -220,6 +221,12 @@ class ExoPlayerCore(private val activity: Activity) : Player.Listener {
|
||||
// disable tunneling.
|
||||
private var audioPassthroughEnabled: Boolean = false
|
||||
private var audioNormalizationEnabled: Boolean = false
|
||||
|
||||
// Stereo downmix: runs as a ChannelMixingAudioProcessor inside the sink's
|
||||
// decoded-PCM pipeline, so encoded audio is force-decoded while enabled.
|
||||
private var audioDownmixEnabled: Boolean = false
|
||||
private var audioDownmixCenterBoostDb: Int = 0
|
||||
private var audioDownmixNormalize: Boolean = true
|
||||
private val audioNormalization = AudioNormalizationEffect(::emitLog)
|
||||
private var pendingAudioRendererBounce: Boolean = false
|
||||
private val audioBounceTimeout = Runnable { completeAudioRendererBounce("audio renderer bounce timeout") }
|
||||
@@ -1997,6 +2004,10 @@ class ExoPlayerCore(private val activity: Activity) : Player.Listener {
|
||||
val mimeType = format.sampleMimeType ?: return false
|
||||
// Loudness normalization needs decoded PCM for the audiofx chain to act on.
|
||||
if (audioNormalizationEnabled && isEncodedAudioMimeType(mimeType)) return true
|
||||
// Stereo downmix runs in the sink's PCM pipeline; bitstream output would
|
||||
// bypass it, so encoded audio is force-decoded while downmix is on
|
||||
// (overrides the passthrough preference — Android TV defaults it on).
|
||||
if (audioDownmixEnabled && isEncodedAudioMimeType(mimeType)) return true
|
||||
if (shouldBlockDirectOutputForPassthrough(mimeType, audioPassthroughEnabled)) return true
|
||||
if (directAudioOutputBlockedAfterFailure.contains(mimeType)) {
|
||||
if (loggedDirectAudioRecoveryBlocks.add("$mimeType|$reason")) {
|
||||
@@ -2997,7 +3008,9 @@ class ExoPlayerCore(private val activity: Activity) : Player.Listener {
|
||||
val tunnelingWillFlip = calculateTunnelingEnabled() != currentTunneledPlayback
|
||||
val outputEncoding = lastAudioTrackConfig?.encoding
|
||||
val selectedMime = selectedAudioFormat()?.sampleMimeType
|
||||
// While downmix holds the output on decoded PCM the verdict cannot flip.
|
||||
val needsBounce = !tunnelingWillFlip &&
|
||||
!audioDownmixEnabled &&
|
||||
outputEncoding != null &&
|
||||
selectedMime != null &&
|
||||
isEncodedAudioMimeType(selectedMime) &&
|
||||
@@ -3017,7 +3030,9 @@ class ExoPlayerCore(private val activity: Activity) : Player.Listener {
|
||||
if (exoPlayer == null) return
|
||||
val outputEncoding = lastAudioTrackConfig?.encoding
|
||||
val selectedMime = selectedAudioFormat()?.sampleMimeType
|
||||
val needsBounce = outputEncoding != null &&
|
||||
// While downmix holds the output on decoded PCM the verdict cannot flip.
|
||||
val needsBounce = !audioDownmixEnabled &&
|
||||
outputEncoding != null &&
|
||||
selectedMime != null &&
|
||||
isPassthroughAudioMimeType(selectedMime) &&
|
||||
(if (enabled) isPcmEncoding(outputEncoding) else !isPcmEncoding(outputEncoding))
|
||||
@@ -3028,6 +3043,48 @@ class ExoPlayerCore(private val activity: Activity) : Player.Listener {
|
||||
}
|
||||
}
|
||||
|
||||
fun setAudioDownmix(enabled: Boolean, centerBoostDb: Int, normalize: Boolean) {
|
||||
val boost = centerBoostDb.coerceIn(0, DownmixMatrices.MAX_CENTER_BOOST_DB)
|
||||
val enabledChanged = audioDownmixEnabled != enabled
|
||||
if (!enabledChanged && audioDownmixCenterBoostDb == boost && audioDownmixNormalize == normalize) return
|
||||
audioDownmixEnabled = enabled
|
||||
audioDownmixCenterBoostDb = boost
|
||||
audioDownmixNormalize = normalize
|
||||
emitLog(
|
||||
"info",
|
||||
"audio-downmix",
|
||||
if (enabled) "Stereo downmix enabled (centerBoost=${boost}dB, normalize=$normalize)" else "Stereo downmix disabled"
|
||||
)
|
||||
applyDownmixMatrices()
|
||||
if (exoPlayer == null || !enabledChanged) return
|
||||
// Before the first audio track is up (apply-at-open) the initial sink
|
||||
// configure picks the matrices up on its own; no bounce needed.
|
||||
if (lastAudioTrackConfig == null) return
|
||||
// The processor's active/inactive state (identity vs downmix matrix) and
|
||||
// the sink's direct-output verdict are both latched at configure time —
|
||||
// bounce the renderer to re-evaluate. Coefficient-only changes are picked
|
||||
// up live by queueInput without a bounce.
|
||||
startAudioRendererBounce("audio-downmix")
|
||||
}
|
||||
|
||||
private fun applyDownmixMatrices() {
|
||||
val processor = renderersFactory?.channelMixProcessor ?: return
|
||||
for (count in DownmixMatrices.MIN_DOWNMIX_INPUT_CHANNELS..DownmixMatrices.MAX_DOWNMIX_INPUT_CHANNELS) {
|
||||
val coefficients = if (audioDownmixEnabled) {
|
||||
DownmixMatrices.stereoCoefficients(count, audioDownmixCenterBoostDb, audioDownmixNormalize)
|
||||
} else {
|
||||
null
|
||||
}
|
||||
processor.putChannelMixingMatrix(
|
||||
if (coefficients != null) {
|
||||
ChannelMixingMatrix(count, 2, coefficients)
|
||||
} else {
|
||||
ChannelMixingMatrix.create(count, count)
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun attachNormalizationEffect() {
|
||||
val sessionId = exoPlayer?.audioSessionId ?: C.AUDIO_SESSION_ID_UNSET
|
||||
if (sessionId == C.AUDIO_SESSION_ID_UNSET) {
|
||||
|
||||
@@ -169,6 +169,7 @@ class ExoPlayerPlugin :
|
||||
"setDvConversionMode" -> handleSetDvConversionMode(call, result)
|
||||
"setAudioNormalization" -> handleSetAudioNormalization(call, result)
|
||||
"setAudioPassthrough" -> handleSetAudioPassthrough(call, result)
|
||||
"setAudioDownmix" -> handleSetAudioDownmix(call, result)
|
||||
"observeProperty" -> handleObserveProperty(call, result)
|
||||
"setMpvProperty" -> handleSetMpvProperty(call, result)
|
||||
"setLogLevel" -> {
|
||||
@@ -659,6 +660,26 @@ class ExoPlayerPlugin :
|
||||
} ?: result.error("NO_ACTIVITY", "Activity not available", null)
|
||||
}
|
||||
|
||||
private fun handleSetAudioDownmix(call: MethodCall, result: MethodChannel.Result) {
|
||||
val enabled = call.argument<Boolean>("enabled")
|
||||
if (enabled == null) {
|
||||
result.error("INVALID_ARGS", "Missing 'enabled'", null)
|
||||
return
|
||||
}
|
||||
val centerBoostDb = call.argument<Int>("centerBoostDb") ?: 0
|
||||
val normalize = call.argument<Boolean>("normalize") ?: true
|
||||
if (usingMpvFallback) {
|
||||
// mpv applies downmix via the audio-channels/audio-swresample-o
|
||||
// properties the Dart layer also sends through setMpvProperty.
|
||||
result.success(true)
|
||||
return
|
||||
}
|
||||
activity?.runOnUiThread {
|
||||
playerCore?.setAudioDownmix(enabled, centerBoostDb, normalize)
|
||||
result.success(true)
|
||||
} ?: result.error("NO_ACTIVITY", "Activity not available", null)
|
||||
}
|
||||
|
||||
private fun handleSetAudioPassthrough(call: MethodCall, result: MethodChannel.Result) {
|
||||
val enabled = call.argument<Boolean>("enabled")
|
||||
if (enabled == null) {
|
||||
|
||||
@@ -8,6 +8,8 @@ import androidx.annotation.OptIn
|
||||
import androidx.media3.common.Format
|
||||
import androidx.media3.common.MimeTypes
|
||||
import androidx.media3.common.PlaybackParameters
|
||||
import androidx.media3.common.audio.ChannelMixingAudioProcessor
|
||||
import androidx.media3.common.audio.ChannelMixingMatrix
|
||||
import androidx.media3.common.util.Clock
|
||||
import androidx.media3.common.util.UnstableApi
|
||||
import androidx.media3.decoder.DecoderInputBuffer
|
||||
@@ -43,6 +45,16 @@ class PlezyRenderersFactory(context: Context) : DefaultRenderersFactory(context)
|
||||
/** Audio delay in microseconds. Shared with PositionFixAudioSink for live updates. */
|
||||
val audioDelayUs = AtomicLong(0L)
|
||||
|
||||
/**
|
||||
* Stereo-downmix processor; inactive while every registered matrix is identity.
|
||||
* Pre-populated for counts 1..12 so sink configure can never hit
|
||||
* "No mixing matrix for input channel count". ExoPlayerCore swaps in
|
||||
* downmix matrices via [DownmixMatrices] when the setting is enabled.
|
||||
*/
|
||||
val channelMixProcessor = ChannelMixingAudioProcessor().apply {
|
||||
for (count in 1..12) putChannelMixingMatrix(ChannelMixingMatrix.create(count, count))
|
||||
}
|
||||
|
||||
/** Returns whether direct encoded output should be hidden so decoded PCM output can be selected. */
|
||||
var shouldBlockDirectAudioOutput: ((Format) -> Boolean)? = null
|
||||
|
||||
@@ -116,6 +128,9 @@ class PlezyRenderersFactory(context: Context) : DefaultRenderersFactory(context)
|
||||
val defaultSink = DefaultAudioSink.Builder(context)
|
||||
.setEnableFloatOutput(enableFloatOutput)
|
||||
.setEnableAudioOutputPlaybackParameters(enableAudioOutputPlaybackParams)
|
||||
// Wraps in DefaultAudioProcessorChain, keeping stock silence-skip +
|
||||
// Sonic; the downmix runs first and only in the decoded-PCM path.
|
||||
.setAudioProcessors(arrayOf(channelMixProcessor))
|
||||
.setAudioOutputProvider(RawPositionOutputProvider(realProvider, rawPositionUs, audioDiagnosticsLogger))
|
||||
.build()
|
||||
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
package com.edde746.plezy.exoplayer
|
||||
|
||||
import kotlin.math.pow
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Assert.assertNotNull
|
||||
import org.junit.Assert.assertNull
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.junit.Test
|
||||
|
||||
class DownmixMatricesTest {
|
||||
|
||||
private fun coeff(matrix: FloatArray, input: Int, output: Int) = matrix[input * 2 + output]
|
||||
|
||||
private fun columnSum(matrix: FloatArray, output: Int): Float {
|
||||
var sum = 0f
|
||||
for (input in 0 until matrix.size / 2) sum += coeff(matrix, input, output)
|
||||
return sum
|
||||
}
|
||||
|
||||
@Test
|
||||
fun centerGainMatchesKodiFormula() {
|
||||
// Kodi: center_mix_level = 10^((-3 + boost) / 20)
|
||||
assertEquals(0.70795f, DownmixMatrices.centerGain(0), 1e-3f)
|
||||
assertEquals(1.0f, DownmixMatrices.centerGain(3), 1e-3f)
|
||||
assertEquals(2.81838f, DownmixMatrices.centerGain(12), 1e-3f)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun centerGainClampsBoost() {
|
||||
assertEquals(DownmixMatrices.centerGain(12), DownmixMatrices.centerGain(20), 0f)
|
||||
assertEquals(DownmixMatrices.centerGain(0), DownmixMatrices.centerGain(-5), 0f)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun fivePointOneLayoutUnnormalized() {
|
||||
val m = DownmixMatrices.stereoCoefficients(6, centerBoostDb = 0, normalize = false)!!
|
||||
val c = DownmixMatrices.centerGain(0)
|
||||
val s = DownmixMatrices.SURROUND_GAIN
|
||||
// FL FR FC LFE BL BR
|
||||
assertEquals(1f, coeff(m, 0, 0), 0f)
|
||||
assertEquals(0f, coeff(m, 0, 1), 0f)
|
||||
assertEquals(0f, coeff(m, 1, 0), 0f)
|
||||
assertEquals(1f, coeff(m, 1, 1), 0f)
|
||||
assertEquals(c, coeff(m, 2, 0), 0f)
|
||||
assertEquals(c, coeff(m, 2, 1), 0f)
|
||||
assertEquals(0f, coeff(m, 3, 0), 0f) // LFE dropped
|
||||
assertEquals(0f, coeff(m, 3, 1), 0f)
|
||||
assertEquals(s, coeff(m, 4, 0), 0f)
|
||||
assertEquals(0f, coeff(m, 4, 1), 0f)
|
||||
assertEquals(0f, coeff(m, 5, 0), 0f)
|
||||
assertEquals(s, coeff(m, 5, 1), 0f)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun sixPointOneBackCenterMixesHalfToEachSide() {
|
||||
val m = DownmixMatrices.stereoCoefficients(7, centerBoostDb = 0, normalize = false)!!
|
||||
assertEquals(0.5f, coeff(m, 6, 0), 0f)
|
||||
assertEquals(0.5f, coeff(m, 6, 1), 0f)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun normalizeScalesMaxColumnSumToOne() {
|
||||
for (channels in intArrayOf(6, 8)) {
|
||||
val m = DownmixMatrices.stereoCoefficients(channels, centerBoostDb = 6, normalize = true)!!
|
||||
assertEquals("channels=$channels L", 1f, columnSum(m, 0), 1e-4f)
|
||||
assertEquals("channels=$channels R", 1f, columnSum(m, 1), 1e-4f)
|
||||
// Relative balance is preserved: FC/FL ratio equals the raw center gain.
|
||||
assertEquals(DownmixMatrices.centerGain(6), coeff(m, 2, 0) / coeff(m, 0, 0), 1e-4f)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun normalizeNeverAmplifies() {
|
||||
for (channels in DownmixMatrices.MIN_DOWNMIX_INPUT_CHANNELS..DownmixMatrices.MAX_DOWNMIX_INPUT_CHANNELS) {
|
||||
val raw = DownmixMatrices.stereoCoefficients(channels, centerBoostDb = 6, normalize = false)!!
|
||||
val normalized = DownmixMatrices.stereoCoefficients(channels, centerBoostDb = 6, normalize = true)!!
|
||||
for (i in raw.indices) {
|
||||
assertTrue("channels=$channels i=$i", normalized[i] <= raw[i] + 1e-6f)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun boostRaisesOnlyTheCenterChannel() {
|
||||
val base = DownmixMatrices.stereoCoefficients(6, centerBoostDb = 0, normalize = false)!!
|
||||
val boosted = DownmixMatrices.stereoCoefficients(6, centerBoostDb = 6, normalize = false)!!
|
||||
val expectedRatio = 10f.pow(6f / 20f)
|
||||
assertEquals(expectedRatio, coeff(boosted, 2, 0) / coeff(base, 2, 0), 1e-4f)
|
||||
for (input in intArrayOf(0, 1, 3, 4, 5)) {
|
||||
assertEquals("input=$input L", coeff(base, input, 0), coeff(boosted, input, 0), 0f)
|
||||
assertEquals("input=$input R", coeff(base, input, 1), coeff(boosted, input, 1), 0f)
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun passThroughCountsReturnNull() {
|
||||
for (channels in intArrayOf(1, 2, 9, 12)) {
|
||||
assertNull("channels=$channels", DownmixMatrices.stereoCoefficients(channels, 0, true))
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun allCoefficientsNonNegative() {
|
||||
// ChannelMixingMatrix throws on negative coefficients; guard every combination.
|
||||
for (channels in DownmixMatrices.MIN_DOWNMIX_INPUT_CHANNELS..DownmixMatrices.MAX_DOWNMIX_INPUT_CHANNELS) {
|
||||
for (boost in intArrayOf(0, 6, 12)) {
|
||||
for (normalize in booleanArrayOf(true, false)) {
|
||||
val m = DownmixMatrices.stereoCoefficients(channels, boost, normalize)
|
||||
assertNotNull(m)
|
||||
for (value in m!!) {
|
||||
assertTrue("channels=$channels boost=$boost normalize=$normalize", value >= 0f)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+10
-1
@@ -265,6 +265,14 @@
|
||||
"audioPassthrough": "Аудио passthrough",
|
||||
"audioPassthroughDescription": "Изпращай Dolby/DTS звук към ресийвъра или телевизора без прекодиране, запазвайки съраунд звука. Изключете, ако няма звук.",
|
||||
"audioPassthroughDescriptionAppleTv": "Предава Dolby Digital Plus (вкл. Atmos) на системата като битов поток. DTS и TrueHD продължават да се възпроизвеждат като многоканален PCM. При превъртане може да има кратки прекъсвания на звука.",
|
||||
"audioDownmix": "Смесване до стерео",
|
||||
"audioDownmixDescription": "Смесва съраунд звука до два канала за стерео тонколони или слушалки",
|
||||
"downmixCenterBoost": "Усилване на централния канал",
|
||||
"downmixCenterBoostValue": "${db} дБ",
|
||||
"downmixCenterBoostLabel": "Усилване (дБ)",
|
||||
"downmixCenterBoostShort": "дБ",
|
||||
"audioDownmixNormalize": "Нормализиране на звука при смесване",
|
||||
"audioDownmixNormalizeDescription": "Понижава микса, за да се предотврати клипинг. Изключете, за да запазите оригиналната сила на звука (възможни изкривявания при силни сцени).",
|
||||
"atmosDiagnostics": "Тест на Atmos изхода",
|
||||
"atmosDiagnosticsDescription": "Диагностика на Dolby Atmos изхода чрез възпроизвеждане на тестови сигнали през системния плейър",
|
||||
"atmosTestHlsAtmos": "Apple Atmos поток",
|
||||
@@ -1176,7 +1184,8 @@
|
||||
"audioOutput": "Аудио изход",
|
||||
"performanceOverlay": "Оверлей за производителност",
|
||||
"audioPassthrough": "Аудио passthrough",
|
||||
"audioNormalization": "Нормализиране на силата на звука"
|
||||
"audioNormalization": "Нормализиране на силата на звука",
|
||||
"audioDownmix": "Смесване до стерео"
|
||||
},
|
||||
"performanceOverlay": {
|
||||
"color": "Цвят",
|
||||
|
||||
+10
-1
@@ -265,6 +265,14 @@
|
||||
"audioPassthrough": "Lyd-passthrough",
|
||||
"audioPassthroughDescription": "Send Dolby/DTS-lyd til din receiver eller dit TV uden genkodning, så surroundlyd bevares. Slå fra, hvis du ikke har lyd.",
|
||||
"audioPassthroughDescriptionAppleTv": "Overlad Dolby Digital Plus (inkl. Atmos) til systemet som bitstream. DTS og TrueHD afspilles stadig som flerkanals PCM. Korte lydhuller kan forekomme ved søgning.",
|
||||
"audioDownmix": "Downmix til stereo",
|
||||
"audioDownmixDescription": "Mikser surroundlyd ned til to kanaler til stereohøjttalere eller hovedtelefoner",
|
||||
"downmixCenterBoost": "Forstærkning af centerkanal",
|
||||
"downmixCenterBoostValue": "${db} dB",
|
||||
"downmixCenterBoostLabel": "Forstærkning (dB)",
|
||||
"downmixCenterBoostShort": "dB",
|
||||
"audioDownmixNormalize": "Normalisér lydstyrke ved downmix",
|
||||
"audioDownmixNormalizeDescription": "Sænker mixet for at undgå clipping. Slå fra for at bevare den oprindelige lydstyrke (høje scener kan forvrænges).",
|
||||
"atmosDiagnostics": "Atmos-outputtest",
|
||||
"atmosDiagnosticsDescription": "Diagnosticér Dolby Atmos-output ved at afspille testsignaler gennem systemafspilleren",
|
||||
"atmosTestHlsAtmos": "Apple Atmos-stream",
|
||||
@@ -1176,7 +1184,8 @@
|
||||
"audioOutput": "Lydoutput",
|
||||
"performanceOverlay": "Ydelsesoverlay",
|
||||
"audioPassthrough": "Lyd-passthrough",
|
||||
"audioNormalization": "Normalisér lydstyrke"
|
||||
"audioNormalization": "Normalisér lydstyrke",
|
||||
"audioDownmix": "Downmix til stereo"
|
||||
},
|
||||
"performanceOverlay": {
|
||||
"color": "Farve",
|
||||
|
||||
+10
-1
@@ -265,6 +265,14 @@
|
||||
"audioPassthrough": "Audio-Durchleitung",
|
||||
"audioPassthroughDescription": "Dolby/DTS-Audio ohne Neukodierung an deinen Receiver oder Fernseher senden und Surround-Sound erhalten. Deaktivieren, wenn kein Ton zu hören ist.",
|
||||
"audioPassthroughDescriptionAppleTv": "Übergibt Dolby Digital Plus (inkl. Atmos) als Bitstream an das System. DTS und TrueHD werden weiterhin als Mehrkanal-PCM wiedergegeben. Beim Spulen können kurze Tonaussetzer auftreten.",
|
||||
"audioDownmix": "Downmix auf Stereo",
|
||||
"audioDownmixDescription": "Mischt Surround-Ton für Stereo-Lautsprecher oder Kopfhörer auf zwei Kanäle herunter",
|
||||
"downmixCenterBoost": "Center-Kanal-Verstärkung",
|
||||
"downmixCenterBoostValue": "${db} dB",
|
||||
"downmixCenterBoostLabel": "Verstärkung (dB)",
|
||||
"downmixCenterBoostShort": "dB",
|
||||
"audioDownmixNormalize": "Lautstärke beim Downmix normalisieren",
|
||||
"audioDownmixNormalizeDescription": "Senkt den Mix ab, um Übersteuerung zu vermeiden. Deaktivieren, um die Originallautstärke zu behalten (laute Szenen können verzerren).",
|
||||
"atmosDiagnostics": "Atmos-Ausgabetest",
|
||||
"atmosDiagnosticsDescription": "Dolby-Atmos-Ausgabe diagnostizieren, indem Testsignale über den Systemplayer abgespielt werden",
|
||||
"atmosTestHlsAtmos": "Apple-Atmos-Stream",
|
||||
@@ -1176,7 +1184,8 @@
|
||||
"audioOutput": "Audioausgabe",
|
||||
"performanceOverlay": "Leistungsanzeige",
|
||||
"audioPassthrough": "Audio-Durchleitung",
|
||||
"audioNormalization": "Lautstärke normalisieren"
|
||||
"audioNormalization": "Lautstärke normalisieren",
|
||||
"audioDownmix": "Downmix auf Stereo"
|
||||
},
|
||||
"performanceOverlay": {
|
||||
"color": "Farbe",
|
||||
|
||||
+10
-1
@@ -272,6 +272,14 @@
|
||||
"audioPassthrough": "Audio Passthrough",
|
||||
"audioPassthroughDescription": "Send Dolby/DTS audio to your receiver or TV without re-encoding, preserving surround sound. Turn off if you have no sound.",
|
||||
"audioPassthroughDescriptionAppleTv": "Hand Dolby Digital Plus (including Atmos) to the system for bitstream output. DTS and TrueHD still play as multichannel PCM. Brief audio gaps can occur when seeking.",
|
||||
"audioDownmix": "Downmix to Stereo",
|
||||
"audioDownmixDescription": "Mix surround audio down to two channels for stereo speakers or headphones",
|
||||
"downmixCenterBoost": "Center Channel Boost",
|
||||
"downmixCenterBoostValue": "${db} dB",
|
||||
"downmixCenterBoostLabel": "Boost (dB)",
|
||||
"downmixCenterBoostShort": "dB",
|
||||
"audioDownmixNormalize": "Normalize Volume on Downmix",
|
||||
"audioDownmixNormalizeDescription": "Lower the mix to prevent clipping. Turn off to keep the original volume (may distort loud scenes).",
|
||||
"atmosDiagnostics": "Atmos Output Test",
|
||||
"atmosDiagnosticsDescription": "Diagnose Dolby Atmos output by playing test signals through the system player",
|
||||
"atmosTestHlsAtmos": "Apple Atmos stream",
|
||||
@@ -1191,7 +1199,8 @@
|
||||
"audioOutput": "Audio Output",
|
||||
"performanceOverlay": "Performance Overlay",
|
||||
"audioPassthrough": "Audio Passthrough",
|
||||
"audioNormalization": "Normalize Loudness"
|
||||
"audioNormalization": "Normalize Loudness",
|
||||
"audioDownmix": "Downmix to Stereo"
|
||||
},
|
||||
"performanceOverlay": {
|
||||
"color": "Color",
|
||||
|
||||
+10
-1
@@ -265,6 +265,14 @@
|
||||
"audioPassthrough": "Audio Passthrough",
|
||||
"audioPassthroughDescription": "Envía el audio Dolby/DTS a tu receptor o TV sin recodificar, conservando el sonido envolvente. Desactívalo si no tienes sonido.",
|
||||
"audioPassthroughDescriptionAppleTv": "Entrega Dolby Digital Plus (incluido Atmos) al sistema como bitstream. DTS y TrueHD se siguen reproduciendo como PCM multicanal. Pueden producirse breves cortes de audio al buscar.",
|
||||
"audioDownmix": "Mezclar a estéreo",
|
||||
"audioDownmixDescription": "Mezcla el sonido envolvente a dos canales para altavoces estéreo o auriculares",
|
||||
"downmixCenterBoost": "Realce del canal central",
|
||||
"downmixCenterBoostValue": "${db} dB",
|
||||
"downmixCenterBoostLabel": "Realce (dB)",
|
||||
"downmixCenterBoostShort": "dB",
|
||||
"audioDownmixNormalize": "Normalizar volumen al mezclar",
|
||||
"audioDownmixNormalizeDescription": "Reduce la mezcla para evitar saturación. Desactívalo para mantener el volumen original (puede distorsionar escenas fuertes).",
|
||||
"atmosDiagnostics": "Prueba de salida Atmos",
|
||||
"atmosDiagnosticsDescription": "Diagnostica la salida Dolby Atmos reproduciendo señales de prueba con el reproductor del sistema",
|
||||
"atmosTestHlsAtmos": "Stream Atmos de Apple",
|
||||
@@ -1176,7 +1184,8 @@
|
||||
"audioOutput": "Salida de audio",
|
||||
"performanceOverlay": "Indicador de rendimiento",
|
||||
"audioPassthrough": "Audio Passthrough",
|
||||
"audioNormalization": "Normalizar volumen"
|
||||
"audioNormalization": "Normalizar volumen",
|
||||
"audioDownmix": "Mezclar a estéreo"
|
||||
},
|
||||
"performanceOverlay": {
|
||||
"color": "Color",
|
||||
|
||||
+10
-1
@@ -265,6 +265,14 @@
|
||||
"audioPassthrough": "Audio Pass-Through",
|
||||
"audioPassthroughDescription": "Envoyez l'audio Dolby/DTS vers votre ampli ou téléviseur sans réencodage, en conservant le son surround. Désactivez si vous n'avez aucun son.",
|
||||
"audioPassthroughDescriptionAppleTv": "Transmet le Dolby Digital Plus (y compris Atmos) au système en bitstream. Le DTS et le TrueHD restent lus en PCM multicanal. De brèves coupures audio peuvent survenir lors des sauts.",
|
||||
"audioDownmix": "Downmix en stéréo",
|
||||
"audioDownmixDescription": "Réduit le son surround à deux canaux pour les enceintes stéréo ou le casque",
|
||||
"downmixCenterBoost": "Renforcement du canal central",
|
||||
"downmixCenterBoostValue": "${db} dB",
|
||||
"downmixCenterBoostLabel": "Renforcement (dB)",
|
||||
"downmixCenterBoostShort": "dB",
|
||||
"audioDownmixNormalize": "Normaliser le volume lors du downmix",
|
||||
"audioDownmixNormalizeDescription": "Atténue le mixage pour éviter la saturation. Désactivez pour conserver le volume d'origine (risque de distorsion sur les scènes fortes).",
|
||||
"atmosDiagnostics": "Test de sortie Atmos",
|
||||
"atmosDiagnosticsDescription": "Diagnostiquer la sortie Dolby Atmos en lisant des signaux de test via le lecteur système",
|
||||
"atmosTestHlsAtmos": "Flux Atmos d'Apple",
|
||||
@@ -1176,7 +1184,8 @@
|
||||
"audioOutput": "Sortie audio",
|
||||
"performanceOverlay": "Superposition de performance",
|
||||
"audioPassthrough": "Audio Pass-Through",
|
||||
"audioNormalization": "Normaliser le volume"
|
||||
"audioNormalization": "Normaliser le volume",
|
||||
"audioDownmix": "Downmix en stéréo"
|
||||
},
|
||||
"performanceOverlay": {
|
||||
"color": "Couleur",
|
||||
|
||||
+10
-1
@@ -265,6 +265,14 @@
|
||||
"audioPassthrough": "Audio Passthrough",
|
||||
"audioPassthroughDescription": "Invia l'audio Dolby/DTS al ricevitore o alla TV senza ricodifica, mantenendo il suono surround. Disattiva se non senti audio.",
|
||||
"audioPassthroughDescriptionAppleTv": "Consegna Dolby Digital Plus (incluso Atmos) al sistema come bitstream. DTS e TrueHD vengono comunque riprodotti come PCM multicanale. Durante i salti possono verificarsi brevi interruzioni audio.",
|
||||
"audioDownmix": "Downmix in stereo",
|
||||
"audioDownmixDescription": "Riduce l'audio surround a due canali per altoparlanti stereo o cuffie",
|
||||
"downmixCenterBoost": "Amplificazione canale centrale",
|
||||
"downmixCenterBoostValue": "${db} dB",
|
||||
"downmixCenterBoostLabel": "Amplificazione (dB)",
|
||||
"downmixCenterBoostShort": "dB",
|
||||
"audioDownmixNormalize": "Normalizza volume nel downmix",
|
||||
"audioDownmixNormalizeDescription": "Riduce il mix per evitare distorsioni. Disattiva per mantenere il volume originale (le scene ad alto volume possono distorcere).",
|
||||
"atmosDiagnostics": "Test uscita Atmos",
|
||||
"atmosDiagnosticsDescription": "Diagnostica l'uscita Dolby Atmos riproducendo segnali di prova con il lettore di sistema",
|
||||
"atmosTestHlsAtmos": "Stream Atmos di Apple",
|
||||
@@ -1176,7 +1184,8 @@
|
||||
"audioOutput": "Uscita audio",
|
||||
"performanceOverlay": "Overlay prestazioni",
|
||||
"audioPassthrough": "Audio Passthrough",
|
||||
"audioNormalization": "Normalizza volume"
|
||||
"audioNormalization": "Normalizza volume",
|
||||
"audioDownmix": "Downmix in stereo"
|
||||
},
|
||||
"performanceOverlay": {
|
||||
"color": "Colore",
|
||||
|
||||
+10
-1
@@ -265,6 +265,14 @@
|
||||
"audioPassthrough": "オーディオパススルー",
|
||||
"audioPassthroughDescription": "Dolby/DTS音声を再エンコードせずにレシーバーやテレビに送り、サラウンドを維持します。音が出ない場合は無効にしてください。",
|
||||
"audioPassthroughDescriptionAppleTv": "Dolby Digital Plus(Atmos含む)をビットストリームとしてシステムに渡します。DTSとTrueHDは引き続きマルチチャンネルPCMで再生されます。シーク時に短い音切れが発生することがあります。",
|
||||
"audioDownmix": "ステレオにダウンミックス",
|
||||
"audioDownmixDescription": "サラウンド音声をステレオスピーカーやヘッドホン用に2チャンネルへミックスします",
|
||||
"downmixCenterBoost": "センターチャンネルブースト",
|
||||
"downmixCenterBoostValue": "${db} dB",
|
||||
"downmixCenterBoostLabel": "ブースト (dB)",
|
||||
"downmixCenterBoostShort": "dB",
|
||||
"audioDownmixNormalize": "ダウンミックス時の音量正規化",
|
||||
"audioDownmixNormalizeDescription": "クリッピングを防ぐためにミックス音量を下げます。オフにすると元の音量を維持します(大音量シーンで歪む場合があります)。",
|
||||
"atmosDiagnostics": "Atmos出力テスト",
|
||||
"atmosDiagnosticsDescription": "システムプレイヤーでテスト信号を再生してDolby Atmos出力を診断します",
|
||||
"atmosTestHlsAtmos": "Apple Atmosストリーム",
|
||||
@@ -1176,7 +1184,8 @@
|
||||
"audioOutput": "音声出力",
|
||||
"performanceOverlay": "パフォーマンスオーバーレイ",
|
||||
"audioPassthrough": "オーディオパススルー",
|
||||
"audioNormalization": "ラウドネス正規化"
|
||||
"audioNormalization": "ラウドネス正規化",
|
||||
"audioDownmix": "ステレオにダウンミックス"
|
||||
},
|
||||
"performanceOverlay": {
|
||||
"color": "色",
|
||||
|
||||
+10
-1
@@ -265,6 +265,14 @@
|
||||
"audioPassthrough": "오디오 패스스루",
|
||||
"audioPassthroughDescription": "Dolby/DTS 오디오를 재인코딩 없이 리시버나 TV로 전송하여 서라운드 사운드를 유지합니다. 소리가 나지 않으면 비활성화하세요.",
|
||||
"audioPassthroughDescriptionAppleTv": "Dolby Digital Plus(Atmos 포함)를 비트스트림으로 시스템에 전달합니다. DTS와 TrueHD는 계속 멀티채널 PCM으로 재생됩니다. 탐색 시 짧은 소리 끊김이 발생할 수 있습니다.",
|
||||
"audioDownmix": "스테레오로 다운믹스",
|
||||
"audioDownmixDescription": "서라운드 오디오를 스테레오 스피커나 헤드폰용 2채널로 믹스합니다",
|
||||
"downmixCenterBoost": "센터 채널 부스트",
|
||||
"downmixCenterBoostValue": "${db} dB",
|
||||
"downmixCenterBoostLabel": "부스트 (dB)",
|
||||
"downmixCenterBoostShort": "dB",
|
||||
"audioDownmixNormalize": "다운믹스 시 음량 정규화",
|
||||
"audioDownmixNormalizeDescription": "클리핑을 방지하기 위해 믹스 음량을 낮춥니다. 원래 음량을 유지하려면 끄세요(큰 소리 장면에서 왜곡될 수 있음).",
|
||||
"atmosDiagnostics": "Atmos 출력 테스트",
|
||||
"atmosDiagnosticsDescription": "시스템 플레이어로 테스트 신호를 재생하여 Dolby Atmos 출력을 진단합니다",
|
||||
"atmosTestHlsAtmos": "Apple Atmos 스트림",
|
||||
@@ -1176,7 +1184,8 @@
|
||||
"audioOutput": "오디오 출력",
|
||||
"performanceOverlay": "성능 오버레이",
|
||||
"audioPassthrough": "오디오 패스스루",
|
||||
"audioNormalization": "음량 정규화"
|
||||
"audioNormalization": "음량 정규화",
|
||||
"audioDownmix": "스테레오로 다운믹스"
|
||||
},
|
||||
"performanceOverlay": {
|
||||
"color": "색상",
|
||||
|
||||
+10
-1
@@ -265,6 +265,14 @@
|
||||
"audioPassthrough": "Lydgjennomgang",
|
||||
"audioPassthroughDescription": "Send Dolby/DTS-lyd til mottakeren eller TV-en uten omkoding, slik at surroundlyd bevares. Slå av hvis du ikke har lyd.",
|
||||
"audioPassthroughDescriptionAppleTv": "Overlater Dolby Digital Plus (inkl. Atmos) til systemet som bitstream. DTS og TrueHD spilles fortsatt av som flerkanals PCM. Korte lydbrudd kan forekomme ved søking.",
|
||||
"audioDownmix": "Nedmiks til stereo",
|
||||
"audioDownmixDescription": "Mikser surroundlyd ned til to kanaler for stereohøyttalere eller hodetelefoner",
|
||||
"downmixCenterBoost": "Forsterkning av senterkanal",
|
||||
"downmixCenterBoostValue": "${db} dB",
|
||||
"downmixCenterBoostLabel": "Forsterkning (dB)",
|
||||
"downmixCenterBoostShort": "dB",
|
||||
"audioDownmixNormalize": "Normaliser lydstyrke ved nedmiks",
|
||||
"audioDownmixNormalizeDescription": "Senker miksen for å unngå klipping. Slå av for å beholde originalvolumet (høye scener kan forvrenges).",
|
||||
"atmosDiagnostics": "Atmos-utgangstest",
|
||||
"atmosDiagnosticsDescription": "Diagnostiser Dolby Atmos-utgangen ved å spille testsignaler gjennom systemspilleren",
|
||||
"atmosTestHlsAtmos": "Apple Atmos-strøm",
|
||||
@@ -1176,7 +1184,8 @@
|
||||
"audioOutput": "Lydutgang",
|
||||
"performanceOverlay": "Ytelsesoverlegg",
|
||||
"audioPassthrough": "Lydgjennomgang",
|
||||
"audioNormalization": "Normaliser lydstyrke"
|
||||
"audioNormalization": "Normaliser lydstyrke",
|
||||
"audioDownmix": "Nedmiks til stereo"
|
||||
},
|
||||
"performanceOverlay": {
|
||||
"color": "Farge",
|
||||
|
||||
+10
-1
@@ -265,6 +265,14 @@
|
||||
"audioPassthrough": "Audio-doorvoer",
|
||||
"audioPassthroughDescription": "Stuur Dolby/DTS-audio zonder hercodering naar je receiver of tv en behoud surroundgeluid. Schakel uit als je geen geluid hebt.",
|
||||
"audioPassthroughDescriptionAppleTv": "Geeft Dolby Digital Plus (incl. Atmos) als bitstream aan het systeem door. DTS en TrueHD worden nog steeds als meerkanaals PCM afgespeeld. Bij zoeken kunnen korte geluidsonderbrekingen optreden.",
|
||||
"audioDownmix": "Downmix naar stereo",
|
||||
"audioDownmixDescription": "Mixt surroundgeluid naar twee kanalen voor stereoluidsprekers of een koptelefoon",
|
||||
"downmixCenterBoost": "Versterking middenkanaal",
|
||||
"downmixCenterBoostValue": "${db} dB",
|
||||
"downmixCenterBoostLabel": "Versterking (dB)",
|
||||
"downmixCenterBoostShort": "dB",
|
||||
"audioDownmixNormalize": "Volume normaliseren bij downmix",
|
||||
"audioDownmixNormalizeDescription": "Verlaagt de mix om clipping te voorkomen. Zet uit om het originele volume te behouden (kan vervormen bij luide scènes).",
|
||||
"atmosDiagnostics": "Atmos-uitvoertest",
|
||||
"atmosDiagnosticsDescription": "Diagnosticeer de Dolby Atmos-uitvoer door testsignalen via de systeemspeler af te spelen",
|
||||
"atmosTestHlsAtmos": "Apple Atmos-stream",
|
||||
@@ -1176,7 +1184,8 @@
|
||||
"audioOutput": "Audio-uitvoer",
|
||||
"performanceOverlay": "Prestatie-overlay",
|
||||
"audioPassthrough": "Audio-doorvoer",
|
||||
"audioNormalization": "Volume normaliseren"
|
||||
"audioNormalization": "Volume normaliseren",
|
||||
"audioDownmix": "Downmix naar stereo"
|
||||
},
|
||||
"performanceOverlay": {
|
||||
"color": "Kleur",
|
||||
|
||||
+10
-1
@@ -265,6 +265,14 @@
|
||||
"audioPassthrough": "Bezpośrednie audio",
|
||||
"audioPassthroughDescription": "Wysyłaj dźwięk Dolby/DTS do amplitunera lub telewizora bez ponownego kodowania, zachowując dźwięk przestrzenny. Wyłącz, jeśli nie ma dźwięku.",
|
||||
"audioPassthroughDescriptionAppleTv": "Przekazuje Dolby Digital Plus (w tym Atmos) do systemu jako bitstream. DTS i TrueHD nadal odtwarzane są jako wielokanałowe PCM. Podczas przewijania mogą wystąpić krótkie przerwy w dźwięku.",
|
||||
"audioDownmix": "Miksowanie do stereo",
|
||||
"audioDownmixDescription": "Miksuje dźwięk przestrzenny do dwóch kanałów dla głośników stereo lub słuchawek",
|
||||
"downmixCenterBoost": "Wzmocnienie kanału centralnego",
|
||||
"downmixCenterBoostValue": "${db} dB",
|
||||
"downmixCenterBoostLabel": "Wzmocnienie (dB)",
|
||||
"downmixCenterBoostShort": "dB",
|
||||
"audioDownmixNormalize": "Normalizacja głośności przy miksowaniu",
|
||||
"audioDownmixNormalizeDescription": "Obniża miks, aby zapobiec przesterowaniu. Wyłącz, aby zachować oryginalną głośność (głośne sceny mogą być zniekształcone).",
|
||||
"atmosDiagnostics": "Test wyjścia Atmos",
|
||||
"atmosDiagnosticsDescription": "Diagnozuj wyjście Dolby Atmos, odtwarzając sygnały testowe przez odtwarzacz systemowy",
|
||||
"atmosTestHlsAtmos": "Strumień Atmos Apple",
|
||||
@@ -1176,7 +1184,8 @@
|
||||
"audioOutput": "Wyjście audio",
|
||||
"performanceOverlay": "Nakładka wydajności",
|
||||
"audioPassthrough": "Bezpośrednie audio",
|
||||
"audioNormalization": "Normalizacja głośności"
|
||||
"audioNormalization": "Normalizacja głośności",
|
||||
"audioDownmix": "Miksowanie do stereo"
|
||||
},
|
||||
"performanceOverlay": {
|
||||
"color": "Kolor",
|
||||
|
||||
+10
-1
@@ -265,6 +265,14 @@
|
||||
"audioPassthrough": "Passagem de Áudio",
|
||||
"audioPassthroughDescription": "Envie áudio Dolby/DTS para o seu receptor ou TV sem recodificar, preservando o som surround. Desative se não tiver som.",
|
||||
"audioPassthroughDescriptionAppleTv": "Entrega Dolby Digital Plus (incluindo Atmos) ao sistema como bitstream. DTS e TrueHD continuam sendo reproduzidos como PCM multicanal. Podem ocorrer breves cortes de áudio ao buscar.",
|
||||
"audioDownmix": "Downmix para Estéreo",
|
||||
"audioDownmixDescription": "Mistura o áudio surround em dois canais para alto-falantes estéreo ou fones de ouvido",
|
||||
"downmixCenterBoost": "Reforço do Canal Central",
|
||||
"downmixCenterBoostValue": "${db} dB",
|
||||
"downmixCenterBoostLabel": "Reforço (dB)",
|
||||
"downmixCenterBoostShort": "dB",
|
||||
"audioDownmixNormalize": "Normalizar Volume no Downmix",
|
||||
"audioDownmixNormalizeDescription": "Reduz a mixagem para evitar saturação. Desative para manter o volume original (cenas altas podem distorcer).",
|
||||
"atmosDiagnostics": "Teste de saída Atmos",
|
||||
"atmosDiagnosticsDescription": "Diagnostique a saída Dolby Atmos reproduzindo sinais de teste pelo player do sistema",
|
||||
"atmosTestHlsAtmos": "Stream Atmos da Apple",
|
||||
@@ -1176,7 +1184,8 @@
|
||||
"audioOutput": "Saída de Áudio",
|
||||
"performanceOverlay": "Overlay de Desempenho",
|
||||
"audioPassthrough": "Passagem de Áudio",
|
||||
"audioNormalization": "Normalizar Volume"
|
||||
"audioNormalization": "Normalizar Volume",
|
||||
"audioDownmix": "Downmix para Estéreo"
|
||||
},
|
||||
"performanceOverlay": {
|
||||
"color": "Cor",
|
||||
|
||||
+10
-1
@@ -265,6 +265,14 @@
|
||||
"audioPassthrough": "Сквозной вывод аудио",
|
||||
"audioPassthroughDescription": "Передавать звук Dolby/DTS на ресивер или телевизор без перекодирования, сохраняя объёмный звук. Отключите, если нет звука.",
|
||||
"audioPassthroughDescriptionAppleTv": "Передаёт Dolby Digital Plus (включая Atmos) системе в виде битового потока. DTS и TrueHD по-прежнему воспроизводятся как многоканальный PCM. При перемотке возможны короткие пропадания звука.",
|
||||
"audioDownmix": "Микширование в стерео",
|
||||
"audioDownmixDescription": "Микширует объёмный звук в два канала для стереодинамиков или наушников",
|
||||
"downmixCenterBoost": "Усиление центрального канала",
|
||||
"downmixCenterBoostValue": "${db} дБ",
|
||||
"downmixCenterBoostLabel": "Усиление (дБ)",
|
||||
"downmixCenterBoostShort": "дБ",
|
||||
"audioDownmixNormalize": "Нормализация громкости при микшировании",
|
||||
"audioDownmixNormalizeDescription": "Снижает уровень микса во избежание клиппинга. Отключите, чтобы сохранить исходную громкость (возможны искажения в громких сценах).",
|
||||
"atmosDiagnostics": "Тест вывода Atmos",
|
||||
"atmosDiagnosticsDescription": "Диагностика вывода Dolby Atmos воспроизведением тестовых сигналов через системный проигрыватель",
|
||||
"atmosTestHlsAtmos": "Atmos-поток Apple",
|
||||
@@ -1176,7 +1184,8 @@
|
||||
"audioOutput": "Аудиовыход",
|
||||
"performanceOverlay": "Оверлей производительности",
|
||||
"audioPassthrough": "Сквозной вывод аудио",
|
||||
"audioNormalization": "Нормализация громкости"
|
||||
"audioNormalization": "Нормализация громкости",
|
||||
"audioDownmix": "Микширование в стерео"
|
||||
},
|
||||
"performanceOverlay": {
|
||||
"color": "Цвет",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
/// To regenerate, run: `dart run slang`
|
||||
///
|
||||
/// Locales: 16
|
||||
/// Strings: 20719 (1294 per locale)
|
||||
/// Strings: 20863 (1303 per locale)
|
||||
|
||||
// coverage:ignore-file
|
||||
// ignore_for_file: type=lint, unused_import
|
||||
|
||||
@@ -394,6 +394,14 @@ class _TranslationsSettingsBg extends TranslationsSettingsEn {
|
||||
@override String get audioPassthrough => 'Аудио passthrough';
|
||||
@override String get audioPassthroughDescription => 'Изпращай Dolby/DTS звук към ресийвъра или телевизора без прекодиране, запазвайки съраунд звука. Изключете, ако няма звук.';
|
||||
@override String get audioPassthroughDescriptionAppleTv => 'Предава Dolby Digital Plus (вкл. Atmos) на системата като битов поток. DTS и TrueHD продължават да се възпроизвеждат като многоканален PCM. При превъртане може да има кратки прекъсвания на звука.';
|
||||
@override String get audioDownmix => 'Смесване до стерео';
|
||||
@override String get audioDownmixDescription => 'Смесва съраунд звука до два канала за стерео тонколони или слушалки';
|
||||
@override String get downmixCenterBoost => 'Усилване на централния канал';
|
||||
@override String downmixCenterBoostValue({required Object db}) => '${db} дБ';
|
||||
@override String get downmixCenterBoostLabel => 'Усилване (дБ)';
|
||||
@override String get downmixCenterBoostShort => 'дБ';
|
||||
@override String get audioDownmixNormalize => 'Нормализиране на звука при смесване';
|
||||
@override String get audioDownmixNormalizeDescription => 'Понижава микса, за да се предотврати клипинг. Изключете, за да запазите оригиналната сила на звука (възможни изкривявания при силни сцени).';
|
||||
@override String get atmosDiagnostics => 'Тест на Atmos изхода';
|
||||
@override String get atmosDiagnosticsDescription => 'Диагностика на Dolby Atmos изхода чрез възпроизвеждане на тестови сигнали през системния плейър';
|
||||
@override String get atmosTestHlsAtmos => 'Apple Atmos поток';
|
||||
@@ -1391,6 +1399,7 @@ class _TranslationsVideoSettingsBg extends TranslationsVideoSettingsEn {
|
||||
@override String get performanceOverlay => 'Оверлей за производителност';
|
||||
@override String get audioPassthrough => 'Аудио passthrough';
|
||||
@override String get audioNormalization => 'Нормализиране на силата на звука';
|
||||
@override String get audioDownmix => 'Смесване до стерео';
|
||||
}
|
||||
|
||||
// Path: performanceOverlay
|
||||
@@ -2198,6 +2207,14 @@ extension on TranslationsBg {
|
||||
'settings.audioPassthrough' => 'Аудио passthrough',
|
||||
'settings.audioPassthroughDescription' => 'Изпращай Dolby/DTS звук към ресийвъра или телевизора без прекодиране, запазвайки съраунд звука. Изключете, ако няма звук.',
|
||||
'settings.audioPassthroughDescriptionAppleTv' => 'Предава Dolby Digital Plus (вкл. Atmos) на системата като битов поток. DTS и TrueHD продължават да се възпроизвеждат като многоканален PCM. При превъртане може да има кратки прекъсвания на звука.',
|
||||
'settings.audioDownmix' => 'Смесване до стерео',
|
||||
'settings.audioDownmixDescription' => 'Смесва съраунд звука до два канала за стерео тонколони или слушалки',
|
||||
'settings.downmixCenterBoost' => 'Усилване на централния канал',
|
||||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} дБ',
|
||||
'settings.downmixCenterBoostLabel' => 'Усилване (дБ)',
|
||||
'settings.downmixCenterBoostShort' => 'дБ',
|
||||
'settings.audioDownmixNormalize' => 'Нормализиране на звука при смесване',
|
||||
'settings.audioDownmixNormalizeDescription' => 'Понижава микса, за да се предотврати клипинг. Изключете, за да запазите оригиналната сила на звука (възможни изкривявания при силни сцени).',
|
||||
'settings.atmosDiagnostics' => 'Тест на Atmos изхода',
|
||||
'settings.atmosDiagnosticsDescription' => 'Диагностика на Dolby Atmos изхода чрез възпроизвеждане на тестови сигнали през системния плейър',
|
||||
'settings.atmosTestHlsAtmos' => 'Apple Atmos поток',
|
||||
@@ -2447,6 +2464,8 @@ extension on TranslationsBg {
|
||||
'messages.logsCleared' => 'Логовете са изчистени',
|
||||
'messages.logsCopied' => 'Логовете са копирани в клипборда',
|
||||
'messages.noLogsAvailable' => 'Няма налични логове',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.libraryScanning' => ({required Object title}) => 'Сканиране на "${title}"...',
|
||||
'messages.libraryScanStarted' => ({required Object title}) => 'Сканирането на библиотеката е стартирано за "${title}"',
|
||||
'messages.libraryScanFailed' => ({required Object error}) => 'Неуспешно сканиране на библиотеката: ${error}',
|
||||
@@ -2455,8 +2474,6 @@ extension on TranslationsBg {
|
||||
'messages.metadataRefreshFailed' => ({required Object error}) => 'Неуспешно опресняване на метаданни: ${error}',
|
||||
'messages.logoutConfirm' => 'Сигурни ли сте, че искате да излезете?',
|
||||
'messages.noSeasonsFound' => 'Не са намерени сезони',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.seasonsLoadFailed' => 'Неуспешно зареждане на сезони',
|
||||
'messages.noEpisodesFound' => 'Не са намерени епизоди в първия сезон',
|
||||
'messages.noEpisodesFoundGeneral' => 'Не са намерени епизоди',
|
||||
@@ -2961,6 +2978,8 @@ extension on TranslationsBg {
|
||||
'companionRemote.session.startingServer' => 'Стартиране на сървър за дистанционно управление...',
|
||||
'companionRemote.session.failedToCreate' => 'Неуспешно стартиране на сървър за дистанционно управление:',
|
||||
'companionRemote.session.hostAddress' => 'Адрес на хоста',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.connected' => 'Свързан',
|
||||
'companionRemote.session.serverRunning' => 'Сървърът за дистанционно управление е активен',
|
||||
'companionRemote.session.serverStopped' => 'Сървърът за дистанционно управление е спрян',
|
||||
@@ -2969,8 +2988,6 @@ extension on TranslationsBg {
|
||||
'companionRemote.session.usePhoneToControl' => 'Използвайте мобилното си устройство, за да управлявате това приложение',
|
||||
'companionRemote.session.startServer' => 'Стартирай сървър',
|
||||
'companionRemote.session.stopServer' => 'Спри сървър',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.minimize' => 'Минимизирай',
|
||||
'companionRemote.pairing.discoveryDescription' => 'Plezy устройства със същия Plex акаунт се показват тук',
|
||||
'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632',
|
||||
@@ -3030,6 +3047,7 @@ extension on TranslationsBg {
|
||||
'videoSettings.performanceOverlay' => 'Оверлей за производителност',
|
||||
'videoSettings.audioPassthrough' => 'Аудио passthrough',
|
||||
'videoSettings.audioNormalization' => 'Нормализиране на силата на звука',
|
||||
'videoSettings.audioDownmix' => 'Смесване до стерео',
|
||||
'performanceOverlay.color' => 'Цвят',
|
||||
'performanceOverlay.performance' => 'Производителност',
|
||||
'performanceOverlay.buffer' => 'Буфер',
|
||||
|
||||
@@ -394,6 +394,14 @@ class _TranslationsSettingsDa extends TranslationsSettingsEn {
|
||||
@override String get audioPassthrough => 'Lyd-passthrough';
|
||||
@override String get audioPassthroughDescription => 'Send Dolby/DTS-lyd til din receiver eller dit TV uden genkodning, så surroundlyd bevares. Slå fra, hvis du ikke har lyd.';
|
||||
@override String get audioPassthroughDescriptionAppleTv => 'Overlad Dolby Digital Plus (inkl. Atmos) til systemet som bitstream. DTS og TrueHD afspilles stadig som flerkanals PCM. Korte lydhuller kan forekomme ved søgning.';
|
||||
@override String get audioDownmix => 'Downmix til stereo';
|
||||
@override String get audioDownmixDescription => 'Mikser surroundlyd ned til to kanaler til stereohøjttalere eller hovedtelefoner';
|
||||
@override String get downmixCenterBoost => 'Forstærkning af centerkanal';
|
||||
@override String downmixCenterBoostValue({required Object db}) => '${db} dB';
|
||||
@override String get downmixCenterBoostLabel => 'Forstærkning (dB)';
|
||||
@override String get downmixCenterBoostShort => 'dB';
|
||||
@override String get audioDownmixNormalize => 'Normalisér lydstyrke ved downmix';
|
||||
@override String get audioDownmixNormalizeDescription => 'Sænker mixet for at undgå clipping. Slå fra for at bevare den oprindelige lydstyrke (høje scener kan forvrænges).';
|
||||
@override String get atmosDiagnostics => 'Atmos-outputtest';
|
||||
@override String get atmosDiagnosticsDescription => 'Diagnosticér Dolby Atmos-output ved at afspille testsignaler gennem systemafspilleren';
|
||||
@override String get atmosTestHlsAtmos => 'Apple Atmos-stream';
|
||||
@@ -1391,6 +1399,7 @@ class _TranslationsVideoSettingsDa extends TranslationsVideoSettingsEn {
|
||||
@override String get performanceOverlay => 'Ydelsesoverlay';
|
||||
@override String get audioPassthrough => 'Lyd-passthrough';
|
||||
@override String get audioNormalization => 'Normalisér lydstyrke';
|
||||
@override String get audioDownmix => 'Downmix til stereo';
|
||||
}
|
||||
|
||||
// Path: performanceOverlay
|
||||
@@ -2198,6 +2207,14 @@ extension on TranslationsDa {
|
||||
'settings.audioPassthrough' => 'Lyd-passthrough',
|
||||
'settings.audioPassthroughDescription' => 'Send Dolby/DTS-lyd til din receiver eller dit TV uden genkodning, så surroundlyd bevares. Slå fra, hvis du ikke har lyd.',
|
||||
'settings.audioPassthroughDescriptionAppleTv' => 'Overlad Dolby Digital Plus (inkl. Atmos) til systemet som bitstream. DTS og TrueHD afspilles stadig som flerkanals PCM. Korte lydhuller kan forekomme ved søgning.',
|
||||
'settings.audioDownmix' => 'Downmix til stereo',
|
||||
'settings.audioDownmixDescription' => 'Mikser surroundlyd ned til to kanaler til stereohøjttalere eller hovedtelefoner',
|
||||
'settings.downmixCenterBoost' => 'Forstærkning af centerkanal',
|
||||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB',
|
||||
'settings.downmixCenterBoostLabel' => 'Forstærkning (dB)',
|
||||
'settings.downmixCenterBoostShort' => 'dB',
|
||||
'settings.audioDownmixNormalize' => 'Normalisér lydstyrke ved downmix',
|
||||
'settings.audioDownmixNormalizeDescription' => 'Sænker mixet for at undgå clipping. Slå fra for at bevare den oprindelige lydstyrke (høje scener kan forvrænges).',
|
||||
'settings.atmosDiagnostics' => 'Atmos-outputtest',
|
||||
'settings.atmosDiagnosticsDescription' => 'Diagnosticér Dolby Atmos-output ved at afspille testsignaler gennem systemafspilleren',
|
||||
'settings.atmosTestHlsAtmos' => 'Apple Atmos-stream',
|
||||
@@ -2447,6 +2464,8 @@ extension on TranslationsDa {
|
||||
'messages.logsCleared' => 'Logs ryddet',
|
||||
'messages.logsCopied' => 'Logs kopieret til udklipsholder',
|
||||
'messages.noLogsAvailable' => 'Ingen logs tilgængelige',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.libraryScanning' => ({required Object title}) => 'Scanner "${title}"...',
|
||||
'messages.libraryScanStarted' => ({required Object title}) => 'Biblioteksscanning startet for "${title}"',
|
||||
'messages.libraryScanFailed' => ({required Object error}) => 'Kunne ikke scanne bibliotek: ${error}',
|
||||
@@ -2455,8 +2474,6 @@ extension on TranslationsDa {
|
||||
'messages.metadataRefreshFailed' => ({required Object error}) => 'Kunne ikke opdatere metadata: ${error}',
|
||||
'messages.logoutConfirm' => 'Er du sikker på, at du vil logge ud?',
|
||||
'messages.noSeasonsFound' => 'Ingen sæsoner fundet',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.seasonsLoadFailed' => 'Kunne ikke indlæse sæsoner',
|
||||
'messages.noEpisodesFound' => 'Ingen episoder fundet i første sæson',
|
||||
'messages.noEpisodesFoundGeneral' => 'Ingen episoder fundet',
|
||||
@@ -2961,6 +2978,8 @@ extension on TranslationsDa {
|
||||
'companionRemote.session.startingServer' => 'Starter fjernserver...',
|
||||
'companionRemote.session.failedToCreate' => 'Kunne ikke starte fjernserver:',
|
||||
'companionRemote.session.hostAddress' => 'Værtsadresse',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.connected' => 'Forbundet',
|
||||
'companionRemote.session.serverRunning' => 'Fjernserver aktiv',
|
||||
'companionRemote.session.serverStopped' => 'Fjernserver stoppet',
|
||||
@@ -2969,8 +2988,6 @@ extension on TranslationsDa {
|
||||
'companionRemote.session.usePhoneToControl' => 'Brug din mobilenhed til at styre denne app',
|
||||
'companionRemote.session.startServer' => 'Start server',
|
||||
'companionRemote.session.stopServer' => 'Stop server',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.minimize' => 'Minimér',
|
||||
'companionRemote.pairing.discoveryDescription' => 'Plezy-enheder med samme Plex-konto vises her',
|
||||
'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632',
|
||||
@@ -3030,6 +3047,7 @@ extension on TranslationsDa {
|
||||
'videoSettings.performanceOverlay' => 'Ydelsesoverlay',
|
||||
'videoSettings.audioPassthrough' => 'Lyd-passthrough',
|
||||
'videoSettings.audioNormalization' => 'Normalisér lydstyrke',
|
||||
'videoSettings.audioDownmix' => 'Downmix til stereo',
|
||||
'performanceOverlay.color' => 'Farve',
|
||||
'performanceOverlay.performance' => 'Ydeevne',
|
||||
'performanceOverlay.buffer' => 'Buffer',
|
||||
|
||||
@@ -394,6 +394,14 @@ class _TranslationsSettingsDe extends TranslationsSettingsEn {
|
||||
@override String get audioPassthrough => 'Audio-Durchleitung';
|
||||
@override String get audioPassthroughDescription => 'Dolby/DTS-Audio ohne Neukodierung an deinen Receiver oder Fernseher senden und Surround-Sound erhalten. Deaktivieren, wenn kein Ton zu hören ist.';
|
||||
@override String get audioPassthroughDescriptionAppleTv => 'Übergibt Dolby Digital Plus (inkl. Atmos) als Bitstream an das System. DTS und TrueHD werden weiterhin als Mehrkanal-PCM wiedergegeben. Beim Spulen können kurze Tonaussetzer auftreten.';
|
||||
@override String get audioDownmix => 'Downmix auf Stereo';
|
||||
@override String get audioDownmixDescription => 'Mischt Surround-Ton für Stereo-Lautsprecher oder Kopfhörer auf zwei Kanäle herunter';
|
||||
@override String get downmixCenterBoost => 'Center-Kanal-Verstärkung';
|
||||
@override String downmixCenterBoostValue({required Object db}) => '${db} dB';
|
||||
@override String get downmixCenterBoostLabel => 'Verstärkung (dB)';
|
||||
@override String get downmixCenterBoostShort => 'dB';
|
||||
@override String get audioDownmixNormalize => 'Lautstärke beim Downmix normalisieren';
|
||||
@override String get audioDownmixNormalizeDescription => 'Senkt den Mix ab, um Übersteuerung zu vermeiden. Deaktivieren, um die Originallautstärke zu behalten (laute Szenen können verzerren).';
|
||||
@override String get atmosDiagnostics => 'Atmos-Ausgabetest';
|
||||
@override String get atmosDiagnosticsDescription => 'Dolby-Atmos-Ausgabe diagnostizieren, indem Testsignale über den Systemplayer abgespielt werden';
|
||||
@override String get atmosTestHlsAtmos => 'Apple-Atmos-Stream';
|
||||
@@ -1391,6 +1399,7 @@ class _TranslationsVideoSettingsDe extends TranslationsVideoSettingsEn {
|
||||
@override String get performanceOverlay => 'Leistungsanzeige';
|
||||
@override String get audioPassthrough => 'Audio-Durchleitung';
|
||||
@override String get audioNormalization => 'Lautstärke normalisieren';
|
||||
@override String get audioDownmix => 'Downmix auf Stereo';
|
||||
}
|
||||
|
||||
// Path: performanceOverlay
|
||||
@@ -2198,6 +2207,14 @@ extension on TranslationsDe {
|
||||
'settings.audioPassthrough' => 'Audio-Durchleitung',
|
||||
'settings.audioPassthroughDescription' => 'Dolby/DTS-Audio ohne Neukodierung an deinen Receiver oder Fernseher senden und Surround-Sound erhalten. Deaktivieren, wenn kein Ton zu hören ist.',
|
||||
'settings.audioPassthroughDescriptionAppleTv' => 'Übergibt Dolby Digital Plus (inkl. Atmos) als Bitstream an das System. DTS und TrueHD werden weiterhin als Mehrkanal-PCM wiedergegeben. Beim Spulen können kurze Tonaussetzer auftreten.',
|
||||
'settings.audioDownmix' => 'Downmix auf Stereo',
|
||||
'settings.audioDownmixDescription' => 'Mischt Surround-Ton für Stereo-Lautsprecher oder Kopfhörer auf zwei Kanäle herunter',
|
||||
'settings.downmixCenterBoost' => 'Center-Kanal-Verstärkung',
|
||||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB',
|
||||
'settings.downmixCenterBoostLabel' => 'Verstärkung (dB)',
|
||||
'settings.downmixCenterBoostShort' => 'dB',
|
||||
'settings.audioDownmixNormalize' => 'Lautstärke beim Downmix normalisieren',
|
||||
'settings.audioDownmixNormalizeDescription' => 'Senkt den Mix ab, um Übersteuerung zu vermeiden. Deaktivieren, um die Originallautstärke zu behalten (laute Szenen können verzerren).',
|
||||
'settings.atmosDiagnostics' => 'Atmos-Ausgabetest',
|
||||
'settings.atmosDiagnosticsDescription' => 'Dolby-Atmos-Ausgabe diagnostizieren, indem Testsignale über den Systemplayer abgespielt werden',
|
||||
'settings.atmosTestHlsAtmos' => 'Apple-Atmos-Stream',
|
||||
@@ -2447,6 +2464,8 @@ extension on TranslationsDe {
|
||||
'messages.logsCleared' => 'Protokolle gelöscht',
|
||||
'messages.logsCopied' => 'Protokolle in Zwischenablage kopiert',
|
||||
'messages.noLogsAvailable' => 'Keine Protokolle verfügbar',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.libraryScanning' => ({required Object title}) => 'Scanne „${title}“...',
|
||||
'messages.libraryScanStarted' => ({required Object title}) => 'Mediathekscan gestartet für „${title}“',
|
||||
'messages.libraryScanFailed' => ({required Object error}) => 'Fehler beim Scannen der Mediathek: ${error}',
|
||||
@@ -2455,8 +2474,6 @@ extension on TranslationsDe {
|
||||
'messages.metadataRefreshFailed' => ({required Object error}) => 'Metadaten konnten nicht aktualisiert werden: ${error}',
|
||||
'messages.logoutConfirm' => 'Abmeldung wirklich durchführen?',
|
||||
'messages.noSeasonsFound' => 'Keine Staffeln gefunden',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.seasonsLoadFailed' => 'Staffeln konnten nicht geladen werden',
|
||||
'messages.noEpisodesFound' => 'Keine Episoden in der ersten Staffel gefunden',
|
||||
'messages.noEpisodesFoundGeneral' => 'Keine Episoden gefunden',
|
||||
@@ -2961,6 +2978,8 @@ extension on TranslationsDe {
|
||||
'companionRemote.session.startingServer' => 'Remote-Server wird gestartet...',
|
||||
'companionRemote.session.failedToCreate' => 'Remote-Server konnte nicht gestartet werden:',
|
||||
'companionRemote.session.hostAddress' => 'Host-Adresse',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.connected' => 'Verbunden',
|
||||
'companionRemote.session.serverRunning' => 'Remote-Server aktiv',
|
||||
'companionRemote.session.serverStopped' => 'Remote-Server gestoppt',
|
||||
@@ -2969,8 +2988,6 @@ extension on TranslationsDe {
|
||||
'companionRemote.session.usePhoneToControl' => 'Verwende dein Mobilgerät, um diese App zu steuern',
|
||||
'companionRemote.session.startServer' => 'Server starten',
|
||||
'companionRemote.session.stopServer' => 'Server stoppen',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.minimize' => 'Minimieren',
|
||||
'companionRemote.pairing.discoveryDescription' => 'Plezy-Geräte mit demselben Plex-Konto erscheinen hier',
|
||||
'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632',
|
||||
@@ -3030,6 +3047,7 @@ extension on TranslationsDe {
|
||||
'videoSettings.performanceOverlay' => 'Leistungsanzeige',
|
||||
'videoSettings.audioPassthrough' => 'Audio-Durchleitung',
|
||||
'videoSettings.audioNormalization' => 'Lautstärke normalisieren',
|
||||
'videoSettings.audioDownmix' => 'Downmix auf Stereo',
|
||||
'performanceOverlay.color' => 'Farbe',
|
||||
'performanceOverlay.performance' => 'Leistung',
|
||||
'performanceOverlay.buffer' => 'Puffer',
|
||||
|
||||
@@ -927,6 +927,30 @@ class TranslationsSettingsEn {
|
||||
/// en: 'Hand Dolby Digital Plus (including Atmos) to the system for bitstream output. DTS and TrueHD still play as multichannel PCM. Brief audio gaps can occur when seeking.'
|
||||
String get audioPassthroughDescriptionAppleTv => 'Hand Dolby Digital Plus (including Atmos) to the system for bitstream output. DTS and TrueHD still play as multichannel PCM. Brief audio gaps can occur when seeking.';
|
||||
|
||||
/// en: 'Downmix to Stereo'
|
||||
String get audioDownmix => 'Downmix to Stereo';
|
||||
|
||||
/// en: 'Mix surround audio down to two channels for stereo speakers or headphones'
|
||||
String get audioDownmixDescription => 'Mix surround audio down to two channels for stereo speakers or headphones';
|
||||
|
||||
/// en: 'Center Channel Boost'
|
||||
String get downmixCenterBoost => 'Center Channel Boost';
|
||||
|
||||
/// en: '${db} dB'
|
||||
String downmixCenterBoostValue({required Object db}) => '${db} dB';
|
||||
|
||||
/// en: 'Boost (dB)'
|
||||
String get downmixCenterBoostLabel => 'Boost (dB)';
|
||||
|
||||
/// en: 'dB'
|
||||
String get downmixCenterBoostShort => 'dB';
|
||||
|
||||
/// en: 'Normalize Volume on Downmix'
|
||||
String get audioDownmixNormalize => 'Normalize Volume on Downmix';
|
||||
|
||||
/// en: 'Lower the mix to prevent clipping. Turn off to keep the original volume (may distort loud scenes).'
|
||||
String get audioDownmixNormalizeDescription => 'Lower the mix to prevent clipping. Turn off to keep the original volume (may distort loud scenes).';
|
||||
|
||||
/// en: 'Atmos Output Test'
|
||||
String get atmosDiagnostics => 'Atmos Output Test';
|
||||
|
||||
@@ -3346,6 +3370,9 @@ class TranslationsVideoSettingsEn {
|
||||
|
||||
/// en: 'Normalize Loudness'
|
||||
String get audioNormalization => 'Normalize Loudness';
|
||||
|
||||
/// en: 'Downmix to Stereo'
|
||||
String get audioDownmix => 'Downmix to Stereo';
|
||||
}
|
||||
|
||||
// Path: performanceOverlay
|
||||
@@ -4844,6 +4871,14 @@ extension on Translations {
|
||||
'settings.audioPassthrough' => 'Audio Passthrough',
|
||||
'settings.audioPassthroughDescription' => 'Send Dolby/DTS audio to your receiver or TV without re-encoding, preserving surround sound. Turn off if you have no sound.',
|
||||
'settings.audioPassthroughDescriptionAppleTv' => 'Hand Dolby Digital Plus (including Atmos) to the system for bitstream output. DTS and TrueHD still play as multichannel PCM. Brief audio gaps can occur when seeking.',
|
||||
'settings.audioDownmix' => 'Downmix to Stereo',
|
||||
'settings.audioDownmixDescription' => 'Mix surround audio down to two channels for stereo speakers or headphones',
|
||||
'settings.downmixCenterBoost' => 'Center Channel Boost',
|
||||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB',
|
||||
'settings.downmixCenterBoostLabel' => 'Boost (dB)',
|
||||
'settings.downmixCenterBoostShort' => 'dB',
|
||||
'settings.audioDownmixNormalize' => 'Normalize Volume on Downmix',
|
||||
'settings.audioDownmixNormalizeDescription' => 'Lower the mix to prevent clipping. Turn off to keep the original volume (may distort loud scenes).',
|
||||
'settings.atmosDiagnostics' => 'Atmos Output Test',
|
||||
'settings.atmosDiagnosticsDescription' => 'Diagnose Dolby Atmos output by playing test signals through the system player',
|
||||
'settings.atmosTestHlsAtmos' => 'Apple Atmos stream',
|
||||
@@ -5086,6 +5121,8 @@ extension on Translations {
|
||||
'messages.errorLoading' => ({required Object error}) => 'Error: ${error}',
|
||||
'messages.fileInfoNotAvailable' => 'File information not available',
|
||||
'messages.errorLoadingFileInfo' => ({required Object error}) => 'Error loading file info: ${error}',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.errorLoadingSeries' => 'Error loading series',
|
||||
'messages.musicNotSupported' => 'Music playback is not yet supported',
|
||||
'messages.noDescriptionAvailable' => 'No description available',
|
||||
@@ -5094,8 +5131,6 @@ extension on Translations {
|
||||
'messages.unableToDetermineLibrarySection' => 'Unable to determine library section for this item',
|
||||
'messages.logsCleared' => 'Logs cleared',
|
||||
'messages.logsCopied' => 'Logs copied to clipboard',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.noLogsAvailable' => 'No logs available',
|
||||
'messages.libraryScanning' => ({required Object title}) => 'Scanning "${title}"...',
|
||||
'messages.libraryScanStarted' => ({required Object title}) => 'Library scan started for "${title}"',
|
||||
@@ -5600,6 +5635,8 @@ extension on Translations {
|
||||
'shaders.artcnnVariantNeutral' => 'Neutral',
|
||||
'shaders.artcnnVariantDenoise' => 'Denoise',
|
||||
'shaders.artcnnVariantDenoiseSharpen' => 'Denoise + Sharpen',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'shaders.qualityFast' => 'Fast',
|
||||
'shaders.qualityHQ' => 'High Quality',
|
||||
'shaders.mode' => 'Mode',
|
||||
@@ -5608,8 +5645,6 @@ extension on Translations {
|
||||
'shaders.shaderImported' => 'Shader imported',
|
||||
'shaders.shaderImportFailed' => 'Failed to import shader',
|
||||
'shaders.deleteShader' => 'Delete Shader',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'shaders.deleteShaderConfirm' => ({required Object name}) => 'Delete "${name}"?',
|
||||
'companionRemote.title' => 'Companion Remote',
|
||||
'companionRemote.connectedTo' => ({required Object name}) => 'Connected to ${name}',
|
||||
@@ -5684,6 +5719,7 @@ extension on Translations {
|
||||
'videoSettings.performanceOverlay' => 'Performance Overlay',
|
||||
'videoSettings.audioPassthrough' => 'Audio Passthrough',
|
||||
'videoSettings.audioNormalization' => 'Normalize Loudness',
|
||||
'videoSettings.audioDownmix' => 'Downmix to Stereo',
|
||||
'performanceOverlay.color' => 'Color',
|
||||
'performanceOverlay.performance' => 'Performance',
|
||||
'performanceOverlay.buffer' => 'Buffer',
|
||||
|
||||
@@ -394,6 +394,14 @@ class _TranslationsSettingsEs extends TranslationsSettingsEn {
|
||||
@override String get audioPassthrough => 'Audio Passthrough';
|
||||
@override String get audioPassthroughDescription => 'Envía el audio Dolby/DTS a tu receptor o TV sin recodificar, conservando el sonido envolvente. Desactívalo si no tienes sonido.';
|
||||
@override String get audioPassthroughDescriptionAppleTv => 'Entrega Dolby Digital Plus (incluido Atmos) al sistema como bitstream. DTS y TrueHD se siguen reproduciendo como PCM multicanal. Pueden producirse breves cortes de audio al buscar.';
|
||||
@override String get audioDownmix => 'Mezclar a estéreo';
|
||||
@override String get audioDownmixDescription => 'Mezcla el sonido envolvente a dos canales para altavoces estéreo o auriculares';
|
||||
@override String get downmixCenterBoost => 'Realce del canal central';
|
||||
@override String downmixCenterBoostValue({required Object db}) => '${db} dB';
|
||||
@override String get downmixCenterBoostLabel => 'Realce (dB)';
|
||||
@override String get downmixCenterBoostShort => 'dB';
|
||||
@override String get audioDownmixNormalize => 'Normalizar volumen al mezclar';
|
||||
@override String get audioDownmixNormalizeDescription => 'Reduce la mezcla para evitar saturación. Desactívalo para mantener el volumen original (puede distorsionar escenas fuertes).';
|
||||
@override String get atmosDiagnostics => 'Prueba de salida Atmos';
|
||||
@override String get atmosDiagnosticsDescription => 'Diagnostica la salida Dolby Atmos reproduciendo señales de prueba con el reproductor del sistema';
|
||||
@override String get atmosTestHlsAtmos => 'Stream Atmos de Apple';
|
||||
@@ -1391,6 +1399,7 @@ class _TranslationsVideoSettingsEs extends TranslationsVideoSettingsEn {
|
||||
@override String get performanceOverlay => 'Indicador de rendimiento';
|
||||
@override String get audioPassthrough => 'Audio Passthrough';
|
||||
@override String get audioNormalization => 'Normalizar volumen';
|
||||
@override String get audioDownmix => 'Mezclar a estéreo';
|
||||
}
|
||||
|
||||
// Path: performanceOverlay
|
||||
@@ -2198,6 +2207,14 @@ extension on TranslationsEs {
|
||||
'settings.audioPassthrough' => 'Audio Passthrough',
|
||||
'settings.audioPassthroughDescription' => 'Envía el audio Dolby/DTS a tu receptor o TV sin recodificar, conservando el sonido envolvente. Desactívalo si no tienes sonido.',
|
||||
'settings.audioPassthroughDescriptionAppleTv' => 'Entrega Dolby Digital Plus (incluido Atmos) al sistema como bitstream. DTS y TrueHD se siguen reproduciendo como PCM multicanal. Pueden producirse breves cortes de audio al buscar.',
|
||||
'settings.audioDownmix' => 'Mezclar a estéreo',
|
||||
'settings.audioDownmixDescription' => 'Mezcla el sonido envolvente a dos canales para altavoces estéreo o auriculares',
|
||||
'settings.downmixCenterBoost' => 'Realce del canal central',
|
||||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB',
|
||||
'settings.downmixCenterBoostLabel' => 'Realce (dB)',
|
||||
'settings.downmixCenterBoostShort' => 'dB',
|
||||
'settings.audioDownmixNormalize' => 'Normalizar volumen al mezclar',
|
||||
'settings.audioDownmixNormalizeDescription' => 'Reduce la mezcla para evitar saturación. Desactívalo para mantener el volumen original (puede distorsionar escenas fuertes).',
|
||||
'settings.atmosDiagnostics' => 'Prueba de salida Atmos',
|
||||
'settings.atmosDiagnosticsDescription' => 'Diagnostica la salida Dolby Atmos reproduciendo señales de prueba con el reproductor del sistema',
|
||||
'settings.atmosTestHlsAtmos' => 'Stream Atmos de Apple',
|
||||
@@ -2447,6 +2464,8 @@ extension on TranslationsEs {
|
||||
'messages.logsCleared' => 'Logs borrados',
|
||||
'messages.logsCopied' => 'Logs copiados al portapapeles',
|
||||
'messages.noLogsAvailable' => 'No hay logs disponibles',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.libraryScanning' => ({required Object title}) => 'Escaneando "${title}"...',
|
||||
'messages.libraryScanStarted' => ({required Object title}) => 'Escaneo de biblioteca iniciado para "${title}"',
|
||||
'messages.libraryScanFailed' => ({required Object error}) => 'Error al escanear biblioteca: ${error}',
|
||||
@@ -2455,8 +2474,6 @@ extension on TranslationsEs {
|
||||
'messages.metadataRefreshFailed' => ({required Object error}) => 'Error al actualizar metadatos: ${error}',
|
||||
'messages.logoutConfirm' => '¿Estás seguro de que quieres cerrar sesión?',
|
||||
'messages.noSeasonsFound' => 'No se encontraron temporadas',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.seasonsLoadFailed' => 'No se pudieron cargar las temporadas',
|
||||
'messages.noEpisodesFound' => 'No se encontraron episodios en la primera temporada',
|
||||
'messages.noEpisodesFoundGeneral' => 'No se encontraron episodios',
|
||||
@@ -2961,6 +2978,8 @@ extension on TranslationsEs {
|
||||
'companionRemote.session.startingServer' => 'Iniciando servidor remoto...',
|
||||
'companionRemote.session.failedToCreate' => 'Error al iniciar el servidor remoto:',
|
||||
'companionRemote.session.hostAddress' => 'Dirección del host',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.connected' => 'Conectado',
|
||||
'companionRemote.session.serverRunning' => 'Servidor remoto activo',
|
||||
'companionRemote.session.serverStopped' => 'Servidor remoto detenido',
|
||||
@@ -2969,8 +2988,6 @@ extension on TranslationsEs {
|
||||
'companionRemote.session.usePhoneToControl' => 'Usa tu dispositivo móvil para controlar esta aplicación',
|
||||
'companionRemote.session.startServer' => 'Iniciar servidor',
|
||||
'companionRemote.session.stopServer' => 'Detener servidor',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.minimize' => 'Minimizar',
|
||||
'companionRemote.pairing.discoveryDescription' => 'Los dispositivos Plezy con la misma cuenta Plex aparecen aquí',
|
||||
'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632',
|
||||
@@ -3030,6 +3047,7 @@ extension on TranslationsEs {
|
||||
'videoSettings.performanceOverlay' => 'Indicador de rendimiento',
|
||||
'videoSettings.audioPassthrough' => 'Audio Passthrough',
|
||||
'videoSettings.audioNormalization' => 'Normalizar volumen',
|
||||
'videoSettings.audioDownmix' => 'Mezclar a estéreo',
|
||||
'performanceOverlay.color' => 'Color',
|
||||
'performanceOverlay.performance' => 'Rendimiento',
|
||||
'performanceOverlay.buffer' => 'Búfer',
|
||||
|
||||
@@ -394,6 +394,14 @@ class _TranslationsSettingsFr extends TranslationsSettingsEn {
|
||||
@override String get audioPassthrough => 'Audio Pass-Through';
|
||||
@override String get audioPassthroughDescription => 'Envoyez l\'audio Dolby/DTS vers votre ampli ou téléviseur sans réencodage, en conservant le son surround. Désactivez si vous n\'avez aucun son.';
|
||||
@override String get audioPassthroughDescriptionAppleTv => 'Transmet le Dolby Digital Plus (y compris Atmos) au système en bitstream. Le DTS et le TrueHD restent lus en PCM multicanal. De brèves coupures audio peuvent survenir lors des sauts.';
|
||||
@override String get audioDownmix => 'Downmix en stéréo';
|
||||
@override String get audioDownmixDescription => 'Réduit le son surround à deux canaux pour les enceintes stéréo ou le casque';
|
||||
@override String get downmixCenterBoost => 'Renforcement du canal central';
|
||||
@override String downmixCenterBoostValue({required Object db}) => '${db} dB';
|
||||
@override String get downmixCenterBoostLabel => 'Renforcement (dB)';
|
||||
@override String get downmixCenterBoostShort => 'dB';
|
||||
@override String get audioDownmixNormalize => 'Normaliser le volume lors du downmix';
|
||||
@override String get audioDownmixNormalizeDescription => 'Atténue le mixage pour éviter la saturation. Désactivez pour conserver le volume d\'origine (risque de distorsion sur les scènes fortes).';
|
||||
@override String get atmosDiagnostics => 'Test de sortie Atmos';
|
||||
@override String get atmosDiagnosticsDescription => 'Diagnostiquer la sortie Dolby Atmos en lisant des signaux de test via le lecteur système';
|
||||
@override String get atmosTestHlsAtmos => 'Flux Atmos d\'Apple';
|
||||
@@ -1391,6 +1399,7 @@ class _TranslationsVideoSettingsFr extends TranslationsVideoSettingsEn {
|
||||
@override String get performanceOverlay => 'Superposition de performance';
|
||||
@override String get audioPassthrough => 'Audio Pass-Through';
|
||||
@override String get audioNormalization => 'Normaliser le volume';
|
||||
@override String get audioDownmix => 'Downmix en stéréo';
|
||||
}
|
||||
|
||||
// Path: performanceOverlay
|
||||
@@ -2198,6 +2207,14 @@ extension on TranslationsFr {
|
||||
'settings.audioPassthrough' => 'Audio Pass-Through',
|
||||
'settings.audioPassthroughDescription' => 'Envoyez l\'audio Dolby/DTS vers votre ampli ou téléviseur sans réencodage, en conservant le son surround. Désactivez si vous n\'avez aucun son.',
|
||||
'settings.audioPassthroughDescriptionAppleTv' => 'Transmet le Dolby Digital Plus (y compris Atmos) au système en bitstream. Le DTS et le TrueHD restent lus en PCM multicanal. De brèves coupures audio peuvent survenir lors des sauts.',
|
||||
'settings.audioDownmix' => 'Downmix en stéréo',
|
||||
'settings.audioDownmixDescription' => 'Réduit le son surround à deux canaux pour les enceintes stéréo ou le casque',
|
||||
'settings.downmixCenterBoost' => 'Renforcement du canal central',
|
||||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB',
|
||||
'settings.downmixCenterBoostLabel' => 'Renforcement (dB)',
|
||||
'settings.downmixCenterBoostShort' => 'dB',
|
||||
'settings.audioDownmixNormalize' => 'Normaliser le volume lors du downmix',
|
||||
'settings.audioDownmixNormalizeDescription' => 'Atténue le mixage pour éviter la saturation. Désactivez pour conserver le volume d\'origine (risque de distorsion sur les scènes fortes).',
|
||||
'settings.atmosDiagnostics' => 'Test de sortie Atmos',
|
||||
'settings.atmosDiagnosticsDescription' => 'Diagnostiquer la sortie Dolby Atmos en lisant des signaux de test via le lecteur système',
|
||||
'settings.atmosTestHlsAtmos' => 'Flux Atmos d\'Apple',
|
||||
@@ -2447,6 +2464,8 @@ extension on TranslationsFr {
|
||||
'messages.logsCleared' => 'Logs effacés',
|
||||
'messages.logsCopied' => 'Logs copiés dans le presse-papier',
|
||||
'messages.noLogsAvailable' => 'Aucun log disponible',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.libraryScanning' => ({required Object title}) => 'Scan de "${title}"...',
|
||||
'messages.libraryScanStarted' => ({required Object title}) => 'Scan de la bibliothèque démarrée pour "${title}"',
|
||||
'messages.libraryScanFailed' => ({required Object error}) => 'Échec du scan de la bibliothèque: ${error}',
|
||||
@@ -2455,8 +2474,6 @@ extension on TranslationsFr {
|
||||
'messages.metadataRefreshFailed' => ({required Object error}) => 'Échec de l\'actualisation des métadonnées: ${error}',
|
||||
'messages.logoutConfirm' => 'Êtes-vous sûr de vouloir vous déconnecter ?',
|
||||
'messages.noSeasonsFound' => 'Aucune saison trouvée',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.seasonsLoadFailed' => 'Impossible de charger les saisons',
|
||||
'messages.noEpisodesFound' => 'Aucun épisode trouvé dans la première saison',
|
||||
'messages.noEpisodesFoundGeneral' => 'Aucun épisode trouvé',
|
||||
@@ -2961,6 +2978,8 @@ extension on TranslationsFr {
|
||||
'companionRemote.session.startingServer' => 'Démarrage du serveur distant...',
|
||||
'companionRemote.session.failedToCreate' => 'Échec du démarrage du serveur distant :',
|
||||
'companionRemote.session.hostAddress' => 'Adresse de l\'hôte',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.connected' => 'Connecté',
|
||||
'companionRemote.session.serverRunning' => 'Serveur distant actif',
|
||||
'companionRemote.session.serverStopped' => 'Serveur distant arrêté',
|
||||
@@ -2969,8 +2988,6 @@ extension on TranslationsFr {
|
||||
'companionRemote.session.usePhoneToControl' => 'Utilisez votre appareil mobile pour contrôler cette application',
|
||||
'companionRemote.session.startServer' => 'Démarrer le serveur',
|
||||
'companionRemote.session.stopServer' => 'Arrêter le serveur',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.minimize' => 'Réduire',
|
||||
'companionRemote.pairing.discoveryDescription' => 'Les appareils Plezy avec le même compte Plex apparaissent ici',
|
||||
'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632',
|
||||
@@ -3030,6 +3047,7 @@ extension on TranslationsFr {
|
||||
'videoSettings.performanceOverlay' => 'Superposition de performance',
|
||||
'videoSettings.audioPassthrough' => 'Audio Pass-Through',
|
||||
'videoSettings.audioNormalization' => 'Normaliser le volume',
|
||||
'videoSettings.audioDownmix' => 'Downmix en stéréo',
|
||||
'performanceOverlay.color' => 'Couleur',
|
||||
'performanceOverlay.performance' => 'Performances',
|
||||
'performanceOverlay.buffer' => 'Tampon',
|
||||
|
||||
@@ -394,6 +394,14 @@ class _TranslationsSettingsIt extends TranslationsSettingsEn {
|
||||
@override String get audioPassthrough => 'Audio Passthrough';
|
||||
@override String get audioPassthroughDescription => 'Invia l\'audio Dolby/DTS al ricevitore o alla TV senza ricodifica, mantenendo il suono surround. Disattiva se non senti audio.';
|
||||
@override String get audioPassthroughDescriptionAppleTv => 'Consegna Dolby Digital Plus (incluso Atmos) al sistema come bitstream. DTS e TrueHD vengono comunque riprodotti come PCM multicanale. Durante i salti possono verificarsi brevi interruzioni audio.';
|
||||
@override String get audioDownmix => 'Downmix in stereo';
|
||||
@override String get audioDownmixDescription => 'Riduce l\'audio surround a due canali per altoparlanti stereo o cuffie';
|
||||
@override String get downmixCenterBoost => 'Amplificazione canale centrale';
|
||||
@override String downmixCenterBoostValue({required Object db}) => '${db} dB';
|
||||
@override String get downmixCenterBoostLabel => 'Amplificazione (dB)';
|
||||
@override String get downmixCenterBoostShort => 'dB';
|
||||
@override String get audioDownmixNormalize => 'Normalizza volume nel downmix';
|
||||
@override String get audioDownmixNormalizeDescription => 'Riduce il mix per evitare distorsioni. Disattiva per mantenere il volume originale (le scene ad alto volume possono distorcere).';
|
||||
@override String get atmosDiagnostics => 'Test uscita Atmos';
|
||||
@override String get atmosDiagnosticsDescription => 'Diagnostica l\'uscita Dolby Atmos riproducendo segnali di prova con il lettore di sistema';
|
||||
@override String get atmosTestHlsAtmos => 'Stream Atmos di Apple';
|
||||
@@ -1391,6 +1399,7 @@ class _TranslationsVideoSettingsIt extends TranslationsVideoSettingsEn {
|
||||
@override String get performanceOverlay => 'Overlay prestazioni';
|
||||
@override String get audioPassthrough => 'Audio Passthrough';
|
||||
@override String get audioNormalization => 'Normalizza volume';
|
||||
@override String get audioDownmix => 'Downmix in stereo';
|
||||
}
|
||||
|
||||
// Path: performanceOverlay
|
||||
@@ -2198,6 +2207,14 @@ extension on TranslationsIt {
|
||||
'settings.audioPassthrough' => 'Audio Passthrough',
|
||||
'settings.audioPassthroughDescription' => 'Invia l\'audio Dolby/DTS al ricevitore o alla TV senza ricodifica, mantenendo il suono surround. Disattiva se non senti audio.',
|
||||
'settings.audioPassthroughDescriptionAppleTv' => 'Consegna Dolby Digital Plus (incluso Atmos) al sistema come bitstream. DTS e TrueHD vengono comunque riprodotti come PCM multicanale. Durante i salti possono verificarsi brevi interruzioni audio.',
|
||||
'settings.audioDownmix' => 'Downmix in stereo',
|
||||
'settings.audioDownmixDescription' => 'Riduce l\'audio surround a due canali per altoparlanti stereo o cuffie',
|
||||
'settings.downmixCenterBoost' => 'Amplificazione canale centrale',
|
||||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB',
|
||||
'settings.downmixCenterBoostLabel' => 'Amplificazione (dB)',
|
||||
'settings.downmixCenterBoostShort' => 'dB',
|
||||
'settings.audioDownmixNormalize' => 'Normalizza volume nel downmix',
|
||||
'settings.audioDownmixNormalizeDescription' => 'Riduce il mix per evitare distorsioni. Disattiva per mantenere il volume originale (le scene ad alto volume possono distorcere).',
|
||||
'settings.atmosDiagnostics' => 'Test uscita Atmos',
|
||||
'settings.atmosDiagnosticsDescription' => 'Diagnostica l\'uscita Dolby Atmos riproducendo segnali di prova con il lettore di sistema',
|
||||
'settings.atmosTestHlsAtmos' => 'Stream Atmos di Apple',
|
||||
@@ -2447,6 +2464,8 @@ extension on TranslationsIt {
|
||||
'messages.logsCleared' => 'Log eliminati',
|
||||
'messages.logsCopied' => 'Log copiati negli appunti',
|
||||
'messages.noLogsAvailable' => 'Nessun log disponibile',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.libraryScanning' => ({required Object title}) => 'Scansione "${title}"...',
|
||||
'messages.libraryScanStarted' => ({required Object title}) => 'Scansione libreria iniziata per "${title}"',
|
||||
'messages.libraryScanFailed' => ({required Object error}) => 'Impossibile eseguire scansione della libreria: ${error}',
|
||||
@@ -2455,8 +2474,6 @@ extension on TranslationsIt {
|
||||
'messages.metadataRefreshFailed' => ({required Object error}) => 'Errore aggiornamento metadati: ${error}',
|
||||
'messages.logoutConfirm' => 'Sei sicuro di volerti disconnettere?',
|
||||
'messages.noSeasonsFound' => 'Nessuna stagione trovata',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.seasonsLoadFailed' => 'Impossibile caricare le stagioni',
|
||||
'messages.noEpisodesFound' => 'Nessun episodio trovato nella prima stagione',
|
||||
'messages.noEpisodesFoundGeneral' => 'Nessun episodio trovato',
|
||||
@@ -2961,6 +2978,8 @@ extension on TranslationsIt {
|
||||
'companionRemote.session.startingServer' => 'Avvio del server remoto...',
|
||||
'companionRemote.session.failedToCreate' => 'Impossibile avviare il server remoto:',
|
||||
'companionRemote.session.hostAddress' => 'Indirizzo host',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.connected' => 'Connesso',
|
||||
'companionRemote.session.serverRunning' => 'Server remoto attivo',
|
||||
'companionRemote.session.serverStopped' => 'Server remoto arrestato',
|
||||
@@ -2969,8 +2988,6 @@ extension on TranslationsIt {
|
||||
'companionRemote.session.usePhoneToControl' => 'Usa il tuo dispositivo mobile per controllare questa app',
|
||||
'companionRemote.session.startServer' => 'Avvia server',
|
||||
'companionRemote.session.stopServer' => 'Arresta server',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.minimize' => 'Riduci',
|
||||
'companionRemote.pairing.discoveryDescription' => 'I dispositivi Plezy con lo stesso account Plex appaiono qui',
|
||||
'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632',
|
||||
@@ -3030,6 +3047,7 @@ extension on TranslationsIt {
|
||||
'videoSettings.performanceOverlay' => 'Overlay prestazioni',
|
||||
'videoSettings.audioPassthrough' => 'Audio Passthrough',
|
||||
'videoSettings.audioNormalization' => 'Normalizza volume',
|
||||
'videoSettings.audioDownmix' => 'Downmix in stereo',
|
||||
'performanceOverlay.color' => 'Colore',
|
||||
'performanceOverlay.performance' => 'Prestazioni',
|
||||
'performanceOverlay.buffer' => 'Buffer',
|
||||
|
||||
@@ -394,6 +394,14 @@ class _TranslationsSettingsJa extends TranslationsSettingsEn {
|
||||
@override String get audioPassthrough => 'オーディオパススルー';
|
||||
@override String get audioPassthroughDescription => 'Dolby/DTS音声を再エンコードせずにレシーバーやテレビに送り、サラウンドを維持します。音が出ない場合は無効にしてください。';
|
||||
@override String get audioPassthroughDescriptionAppleTv => 'Dolby Digital Plus(Atmos含む)をビットストリームとしてシステムに渡します。DTSとTrueHDは引き続きマルチチャンネルPCMで再生されます。シーク時に短い音切れが発生することがあります。';
|
||||
@override String get audioDownmix => 'ステレオにダウンミックス';
|
||||
@override String get audioDownmixDescription => 'サラウンド音声をステレオスピーカーやヘッドホン用に2チャンネルへミックスします';
|
||||
@override String get downmixCenterBoost => 'センターチャンネルブースト';
|
||||
@override String downmixCenterBoostValue({required Object db}) => '${db} dB';
|
||||
@override String get downmixCenterBoostLabel => 'ブースト (dB)';
|
||||
@override String get downmixCenterBoostShort => 'dB';
|
||||
@override String get audioDownmixNormalize => 'ダウンミックス時の音量正規化';
|
||||
@override String get audioDownmixNormalizeDescription => 'クリッピングを防ぐためにミックス音量を下げます。オフにすると元の音量を維持します(大音量シーンで歪む場合があります)。';
|
||||
@override String get atmosDiagnostics => 'Atmos出力テスト';
|
||||
@override String get atmosDiagnosticsDescription => 'システムプレイヤーでテスト信号を再生してDolby Atmos出力を診断します';
|
||||
@override String get atmosTestHlsAtmos => 'Apple Atmosストリーム';
|
||||
@@ -1391,6 +1399,7 @@ class _TranslationsVideoSettingsJa extends TranslationsVideoSettingsEn {
|
||||
@override String get performanceOverlay => 'パフォーマンスオーバーレイ';
|
||||
@override String get audioPassthrough => 'オーディオパススルー';
|
||||
@override String get audioNormalization => 'ラウドネス正規化';
|
||||
@override String get audioDownmix => 'ステレオにダウンミックス';
|
||||
}
|
||||
|
||||
// Path: performanceOverlay
|
||||
@@ -2198,6 +2207,14 @@ extension on TranslationsJa {
|
||||
'settings.audioPassthrough' => 'オーディオパススルー',
|
||||
'settings.audioPassthroughDescription' => 'Dolby/DTS音声を再エンコードせずにレシーバーやテレビに送り、サラウンドを維持します。音が出ない場合は無効にしてください。',
|
||||
'settings.audioPassthroughDescriptionAppleTv' => 'Dolby Digital Plus(Atmos含む)をビットストリームとしてシステムに渡します。DTSとTrueHDは引き続きマルチチャンネルPCMで再生されます。シーク時に短い音切れが発生することがあります。',
|
||||
'settings.audioDownmix' => 'ステレオにダウンミックス',
|
||||
'settings.audioDownmixDescription' => 'サラウンド音声をステレオスピーカーやヘッドホン用に2チャンネルへミックスします',
|
||||
'settings.downmixCenterBoost' => 'センターチャンネルブースト',
|
||||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB',
|
||||
'settings.downmixCenterBoostLabel' => 'ブースト (dB)',
|
||||
'settings.downmixCenterBoostShort' => 'dB',
|
||||
'settings.audioDownmixNormalize' => 'ダウンミックス時の音量正規化',
|
||||
'settings.audioDownmixNormalizeDescription' => 'クリッピングを防ぐためにミックス音量を下げます。オフにすると元の音量を維持します(大音量シーンで歪む場合があります)。',
|
||||
'settings.atmosDiagnostics' => 'Atmos出力テスト',
|
||||
'settings.atmosDiagnosticsDescription' => 'システムプレイヤーでテスト信号を再生してDolby Atmos出力を診断します',
|
||||
'settings.atmosTestHlsAtmos' => 'Apple Atmosストリーム',
|
||||
@@ -2447,6 +2464,8 @@ extension on TranslationsJa {
|
||||
'messages.logsCleared' => 'ログをクリアしました',
|
||||
'messages.logsCopied' => 'ログをクリップボードにコピーしました',
|
||||
'messages.noLogsAvailable' => 'ログがありません',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.libraryScanning' => ({required Object title}) => '"${title}"をスキャン中...',
|
||||
'messages.libraryScanStarted' => ({required Object title}) => '"${title}"のライブラリスキャンを開始しました',
|
||||
'messages.libraryScanFailed' => ({required Object error}) => 'ライブラリのスキャンに失敗しました: ${error}',
|
||||
@@ -2455,8 +2474,6 @@ extension on TranslationsJa {
|
||||
'messages.metadataRefreshFailed' => ({required Object error}) => 'メタデータの更新に失敗しました: ${error}',
|
||||
'messages.logoutConfirm' => 'ログアウトしてもよろしいですか?',
|
||||
'messages.noSeasonsFound' => 'シーズンが見つかりません',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.seasonsLoadFailed' => 'シーズンを読み込めませんでした',
|
||||
'messages.noEpisodesFound' => '最初のシーズンにエピソードが見つかりません',
|
||||
'messages.noEpisodesFoundGeneral' => 'エピソードが見つかりません',
|
||||
@@ -2961,6 +2978,8 @@ extension on TranslationsJa {
|
||||
'companionRemote.session.startingServer' => 'リモートサーバーを起動中...',
|
||||
'companionRemote.session.failedToCreate' => 'リモートサーバーの起動に失敗しました:',
|
||||
'companionRemote.session.hostAddress' => 'ホストアドレス',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.connected' => '接続済み',
|
||||
'companionRemote.session.serverRunning' => 'リモートサーバー稼働中',
|
||||
'companionRemote.session.serverStopped' => 'リモートサーバー停止中',
|
||||
@@ -2969,8 +2988,6 @@ extension on TranslationsJa {
|
||||
'companionRemote.session.usePhoneToControl' => 'モバイルデバイスでこのアプリを操作できます',
|
||||
'companionRemote.session.startServer' => 'サーバーを起動',
|
||||
'companionRemote.session.stopServer' => 'サーバーを停止',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.minimize' => '最小化',
|
||||
'companionRemote.pairing.discoveryDescription' => '同じPlexアカウントのPlezyデバイスがここに表示されます',
|
||||
'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632',
|
||||
@@ -3030,6 +3047,7 @@ extension on TranslationsJa {
|
||||
'videoSettings.performanceOverlay' => 'パフォーマンスオーバーレイ',
|
||||
'videoSettings.audioPassthrough' => 'オーディオパススルー',
|
||||
'videoSettings.audioNormalization' => 'ラウドネス正規化',
|
||||
'videoSettings.audioDownmix' => 'ステレオにダウンミックス',
|
||||
'performanceOverlay.color' => '色',
|
||||
'performanceOverlay.performance' => 'パフォーマンス',
|
||||
'performanceOverlay.buffer' => 'バッファ',
|
||||
|
||||
@@ -394,6 +394,14 @@ class _TranslationsSettingsKo extends TranslationsSettingsEn {
|
||||
@override String get audioPassthrough => '오디오 패스스루';
|
||||
@override String get audioPassthroughDescription => 'Dolby/DTS 오디오를 재인코딩 없이 리시버나 TV로 전송하여 서라운드 사운드를 유지합니다. 소리가 나지 않으면 비활성화하세요.';
|
||||
@override String get audioPassthroughDescriptionAppleTv => 'Dolby Digital Plus(Atmos 포함)를 비트스트림으로 시스템에 전달합니다. DTS와 TrueHD는 계속 멀티채널 PCM으로 재생됩니다. 탐색 시 짧은 소리 끊김이 발생할 수 있습니다.';
|
||||
@override String get audioDownmix => '스테레오로 다운믹스';
|
||||
@override String get audioDownmixDescription => '서라운드 오디오를 스테레오 스피커나 헤드폰용 2채널로 믹스합니다';
|
||||
@override String get downmixCenterBoost => '센터 채널 부스트';
|
||||
@override String downmixCenterBoostValue({required Object db}) => '${db} dB';
|
||||
@override String get downmixCenterBoostLabel => '부스트 (dB)';
|
||||
@override String get downmixCenterBoostShort => 'dB';
|
||||
@override String get audioDownmixNormalize => '다운믹스 시 음량 정규화';
|
||||
@override String get audioDownmixNormalizeDescription => '클리핑을 방지하기 위해 믹스 음량을 낮춥니다. 원래 음량을 유지하려면 끄세요(큰 소리 장면에서 왜곡될 수 있음).';
|
||||
@override String get atmosDiagnostics => 'Atmos 출력 테스트';
|
||||
@override String get atmosDiagnosticsDescription => '시스템 플레이어로 테스트 신호를 재생하여 Dolby Atmos 출력을 진단합니다';
|
||||
@override String get atmosTestHlsAtmos => 'Apple Atmos 스트림';
|
||||
@@ -1391,6 +1399,7 @@ class _TranslationsVideoSettingsKo extends TranslationsVideoSettingsEn {
|
||||
@override String get performanceOverlay => '성능 오버레이';
|
||||
@override String get audioPassthrough => '오디오 패스스루';
|
||||
@override String get audioNormalization => '음량 정규화';
|
||||
@override String get audioDownmix => '스테레오로 다운믹스';
|
||||
}
|
||||
|
||||
// Path: performanceOverlay
|
||||
@@ -2198,6 +2207,14 @@ extension on TranslationsKo {
|
||||
'settings.audioPassthrough' => '오디오 패스스루',
|
||||
'settings.audioPassthroughDescription' => 'Dolby/DTS 오디오를 재인코딩 없이 리시버나 TV로 전송하여 서라운드 사운드를 유지합니다. 소리가 나지 않으면 비활성화하세요.',
|
||||
'settings.audioPassthroughDescriptionAppleTv' => 'Dolby Digital Plus(Atmos 포함)를 비트스트림으로 시스템에 전달합니다. DTS와 TrueHD는 계속 멀티채널 PCM으로 재생됩니다. 탐색 시 짧은 소리 끊김이 발생할 수 있습니다.',
|
||||
'settings.audioDownmix' => '스테레오로 다운믹스',
|
||||
'settings.audioDownmixDescription' => '서라운드 오디오를 스테레오 스피커나 헤드폰용 2채널로 믹스합니다',
|
||||
'settings.downmixCenterBoost' => '센터 채널 부스트',
|
||||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB',
|
||||
'settings.downmixCenterBoostLabel' => '부스트 (dB)',
|
||||
'settings.downmixCenterBoostShort' => 'dB',
|
||||
'settings.audioDownmixNormalize' => '다운믹스 시 음량 정규화',
|
||||
'settings.audioDownmixNormalizeDescription' => '클리핑을 방지하기 위해 믹스 음량을 낮춥니다. 원래 음량을 유지하려면 끄세요(큰 소리 장면에서 왜곡될 수 있음).',
|
||||
'settings.atmosDiagnostics' => 'Atmos 출력 테스트',
|
||||
'settings.atmosDiagnosticsDescription' => '시스템 플레이어로 테스트 신호를 재생하여 Dolby Atmos 출력을 진단합니다',
|
||||
'settings.atmosTestHlsAtmos' => 'Apple Atmos 스트림',
|
||||
@@ -2447,6 +2464,8 @@ extension on TranslationsKo {
|
||||
'messages.logsCleared' => '로그가 삭제 되었습니다',
|
||||
'messages.logsCopied' => '로그가 클립보드에 복사 되었습니다',
|
||||
'messages.noLogsAvailable' => '사용 가능한 로그가 없습니다',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.libraryScanning' => ({required Object title}) => '"${title}"을(를) 스캔 중입니다...',
|
||||
'messages.libraryScanStarted' => ({required Object title}) => '"${title}" 미디어 라이브러리 스캔 시작',
|
||||
'messages.libraryScanFailed' => ({required Object error}) => '미디어 라이브러리 스캔 실패: ${error}',
|
||||
@@ -2455,8 +2474,6 @@ extension on TranslationsKo {
|
||||
'messages.metadataRefreshFailed' => ({required Object error}) => '메타데이터 새로고침 실패: ${error}',
|
||||
'messages.logoutConfirm' => '로그아웃 하시겠습니까?',
|
||||
'messages.noSeasonsFound' => '시즌을 찾을 수 없음',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.seasonsLoadFailed' => '시즌을 불러오지 못했습니다',
|
||||
'messages.noEpisodesFound' => '시즌 1에서 에피소드를 찾을 수 없습니다',
|
||||
'messages.noEpisodesFoundGeneral' => '에피소드를 찾을 수 없습니다',
|
||||
@@ -2961,6 +2978,8 @@ extension on TranslationsKo {
|
||||
'companionRemote.session.startingServer' => '원격 서버 시작 중...',
|
||||
'companionRemote.session.failedToCreate' => '원격 서버를 시작하지 못했습니다:',
|
||||
'companionRemote.session.hostAddress' => '호스트 주소',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.connected' => '연결됨',
|
||||
'companionRemote.session.serverRunning' => '원격 서버 활성',
|
||||
'companionRemote.session.serverStopped' => '원격 서버 중지됨',
|
||||
@@ -2969,8 +2988,6 @@ extension on TranslationsKo {
|
||||
'companionRemote.session.usePhoneToControl' => '모바일 기기로 이 앱을 제어하세요',
|
||||
'companionRemote.session.startServer' => '서버 시작',
|
||||
'companionRemote.session.stopServer' => '서버 중지',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.minimize' => '최소화',
|
||||
'companionRemote.pairing.discoveryDescription' => '같은 Plex 계정의 Plezy 기기가 여기에 표시됩니다',
|
||||
'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632',
|
||||
@@ -3030,6 +3047,7 @@ extension on TranslationsKo {
|
||||
'videoSettings.performanceOverlay' => '성능 오버레이',
|
||||
'videoSettings.audioPassthrough' => '오디오 패스스루',
|
||||
'videoSettings.audioNormalization' => '음량 정규화',
|
||||
'videoSettings.audioDownmix' => '스테레오로 다운믹스',
|
||||
'performanceOverlay.color' => '색상',
|
||||
'performanceOverlay.performance' => '성능',
|
||||
'performanceOverlay.buffer' => '버퍼',
|
||||
|
||||
@@ -394,6 +394,14 @@ class _TranslationsSettingsNb extends TranslationsSettingsEn {
|
||||
@override String get audioPassthrough => 'Lydgjennomgang';
|
||||
@override String get audioPassthroughDescription => 'Send Dolby/DTS-lyd til mottakeren eller TV-en uten omkoding, slik at surroundlyd bevares. Slå av hvis du ikke har lyd.';
|
||||
@override String get audioPassthroughDescriptionAppleTv => 'Overlater Dolby Digital Plus (inkl. Atmos) til systemet som bitstream. DTS og TrueHD spilles fortsatt av som flerkanals PCM. Korte lydbrudd kan forekomme ved søking.';
|
||||
@override String get audioDownmix => 'Nedmiks til stereo';
|
||||
@override String get audioDownmixDescription => 'Mikser surroundlyd ned til to kanaler for stereohøyttalere eller hodetelefoner';
|
||||
@override String get downmixCenterBoost => 'Forsterkning av senterkanal';
|
||||
@override String downmixCenterBoostValue({required Object db}) => '${db} dB';
|
||||
@override String get downmixCenterBoostLabel => 'Forsterkning (dB)';
|
||||
@override String get downmixCenterBoostShort => 'dB';
|
||||
@override String get audioDownmixNormalize => 'Normaliser lydstyrke ved nedmiks';
|
||||
@override String get audioDownmixNormalizeDescription => 'Senker miksen for å unngå klipping. Slå av for å beholde originalvolumet (høye scener kan forvrenges).';
|
||||
@override String get atmosDiagnostics => 'Atmos-utgangstest';
|
||||
@override String get atmosDiagnosticsDescription => 'Diagnostiser Dolby Atmos-utgangen ved å spille testsignaler gjennom systemspilleren';
|
||||
@override String get atmosTestHlsAtmos => 'Apple Atmos-strøm';
|
||||
@@ -1391,6 +1399,7 @@ class _TranslationsVideoSettingsNb extends TranslationsVideoSettingsEn {
|
||||
@override String get performanceOverlay => 'Ytelsesoverlegg';
|
||||
@override String get audioPassthrough => 'Lydgjennomgang';
|
||||
@override String get audioNormalization => 'Normaliser lydstyrke';
|
||||
@override String get audioDownmix => 'Nedmiks til stereo';
|
||||
}
|
||||
|
||||
// Path: performanceOverlay
|
||||
@@ -2198,6 +2207,14 @@ extension on TranslationsNb {
|
||||
'settings.audioPassthrough' => 'Lydgjennomgang',
|
||||
'settings.audioPassthroughDescription' => 'Send Dolby/DTS-lyd til mottakeren eller TV-en uten omkoding, slik at surroundlyd bevares. Slå av hvis du ikke har lyd.',
|
||||
'settings.audioPassthroughDescriptionAppleTv' => 'Overlater Dolby Digital Plus (inkl. Atmos) til systemet som bitstream. DTS og TrueHD spilles fortsatt av som flerkanals PCM. Korte lydbrudd kan forekomme ved søking.',
|
||||
'settings.audioDownmix' => 'Nedmiks til stereo',
|
||||
'settings.audioDownmixDescription' => 'Mikser surroundlyd ned til to kanaler for stereohøyttalere eller hodetelefoner',
|
||||
'settings.downmixCenterBoost' => 'Forsterkning av senterkanal',
|
||||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB',
|
||||
'settings.downmixCenterBoostLabel' => 'Forsterkning (dB)',
|
||||
'settings.downmixCenterBoostShort' => 'dB',
|
||||
'settings.audioDownmixNormalize' => 'Normaliser lydstyrke ved nedmiks',
|
||||
'settings.audioDownmixNormalizeDescription' => 'Senker miksen for å unngå klipping. Slå av for å beholde originalvolumet (høye scener kan forvrenges).',
|
||||
'settings.atmosDiagnostics' => 'Atmos-utgangstest',
|
||||
'settings.atmosDiagnosticsDescription' => 'Diagnostiser Dolby Atmos-utgangen ved å spille testsignaler gjennom systemspilleren',
|
||||
'settings.atmosTestHlsAtmos' => 'Apple Atmos-strøm',
|
||||
@@ -2447,6 +2464,8 @@ extension on TranslationsNb {
|
||||
'messages.logsCleared' => 'Logger tømt',
|
||||
'messages.logsCopied' => 'Logger kopiert til utklippstavle',
|
||||
'messages.noLogsAvailable' => 'Ingen logger tilgjengelig',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.libraryScanning' => ({required Object title}) => 'Skanner "${title}"...',
|
||||
'messages.libraryScanStarted' => ({required Object title}) => 'Bibliotekkanning startet for "${title}"',
|
||||
'messages.libraryScanFailed' => ({required Object error}) => 'Kunne ikke skanne bibliotek: ${error}',
|
||||
@@ -2455,8 +2474,6 @@ extension on TranslationsNb {
|
||||
'messages.metadataRefreshFailed' => ({required Object error}) => 'Kunne ikke oppdatere metadata: ${error}',
|
||||
'messages.logoutConfirm' => 'Er du sikker på at du vil logge ut?',
|
||||
'messages.noSeasonsFound' => 'Ingen sesonger funnet',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.seasonsLoadFailed' => 'Kunne ikke laste sesonger',
|
||||
'messages.noEpisodesFound' => 'Ingen episoder funnet i første sesong',
|
||||
'messages.noEpisodesFoundGeneral' => 'Ingen episoder funnet',
|
||||
@@ -2961,6 +2978,8 @@ extension on TranslationsNb {
|
||||
'companionRemote.session.startingServer' => 'Starter fjernserver...',
|
||||
'companionRemote.session.failedToCreate' => 'Kunne ikke starte fjernserver:',
|
||||
'companionRemote.session.hostAddress' => 'Vertsadresse',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.connected' => 'Tilkoblet',
|
||||
'companionRemote.session.serverRunning' => 'Fjernserver aktiv',
|
||||
'companionRemote.session.serverStopped' => 'Fjernserver stoppet',
|
||||
@@ -2969,8 +2988,6 @@ extension on TranslationsNb {
|
||||
'companionRemote.session.usePhoneToControl' => 'Bruk mobilenheten din til å styre denne appen',
|
||||
'companionRemote.session.startServer' => 'Start server',
|
||||
'companionRemote.session.stopServer' => 'Stopp server',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.minimize' => 'Minimer',
|
||||
'companionRemote.pairing.discoveryDescription' => 'Plezy-enheter med samme Plex-konto vises her',
|
||||
'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632',
|
||||
@@ -3030,6 +3047,7 @@ extension on TranslationsNb {
|
||||
'videoSettings.performanceOverlay' => 'Ytelsesoverlegg',
|
||||
'videoSettings.audioPassthrough' => 'Lydgjennomgang',
|
||||
'videoSettings.audioNormalization' => 'Normaliser lydstyrke',
|
||||
'videoSettings.audioDownmix' => 'Nedmiks til stereo',
|
||||
'performanceOverlay.color' => 'Farge',
|
||||
'performanceOverlay.performance' => 'Ytelse',
|
||||
'performanceOverlay.buffer' => 'Buffer',
|
||||
|
||||
@@ -394,6 +394,14 @@ class _TranslationsSettingsNl extends TranslationsSettingsEn {
|
||||
@override String get audioPassthrough => 'Audio-doorvoer';
|
||||
@override String get audioPassthroughDescription => 'Stuur Dolby/DTS-audio zonder hercodering naar je receiver of tv en behoud surroundgeluid. Schakel uit als je geen geluid hebt.';
|
||||
@override String get audioPassthroughDescriptionAppleTv => 'Geeft Dolby Digital Plus (incl. Atmos) als bitstream aan het systeem door. DTS en TrueHD worden nog steeds als meerkanaals PCM afgespeeld. Bij zoeken kunnen korte geluidsonderbrekingen optreden.';
|
||||
@override String get audioDownmix => 'Downmix naar stereo';
|
||||
@override String get audioDownmixDescription => 'Mixt surroundgeluid naar twee kanalen voor stereoluidsprekers of een koptelefoon';
|
||||
@override String get downmixCenterBoost => 'Versterking middenkanaal';
|
||||
@override String downmixCenterBoostValue({required Object db}) => '${db} dB';
|
||||
@override String get downmixCenterBoostLabel => 'Versterking (dB)';
|
||||
@override String get downmixCenterBoostShort => 'dB';
|
||||
@override String get audioDownmixNormalize => 'Volume normaliseren bij downmix';
|
||||
@override String get audioDownmixNormalizeDescription => 'Verlaagt de mix om clipping te voorkomen. Zet uit om het originele volume te behouden (kan vervormen bij luide scènes).';
|
||||
@override String get atmosDiagnostics => 'Atmos-uitvoertest';
|
||||
@override String get atmosDiagnosticsDescription => 'Diagnosticeer de Dolby Atmos-uitvoer door testsignalen via de systeemspeler af te spelen';
|
||||
@override String get atmosTestHlsAtmos => 'Apple Atmos-stream';
|
||||
@@ -1391,6 +1399,7 @@ class _TranslationsVideoSettingsNl extends TranslationsVideoSettingsEn {
|
||||
@override String get performanceOverlay => 'Prestatie-overlay';
|
||||
@override String get audioPassthrough => 'Audio-doorvoer';
|
||||
@override String get audioNormalization => 'Volume normaliseren';
|
||||
@override String get audioDownmix => 'Downmix naar stereo';
|
||||
}
|
||||
|
||||
// Path: performanceOverlay
|
||||
@@ -2198,6 +2207,14 @@ extension on TranslationsNl {
|
||||
'settings.audioPassthrough' => 'Audio-doorvoer',
|
||||
'settings.audioPassthroughDescription' => 'Stuur Dolby/DTS-audio zonder hercodering naar je receiver of tv en behoud surroundgeluid. Schakel uit als je geen geluid hebt.',
|
||||
'settings.audioPassthroughDescriptionAppleTv' => 'Geeft Dolby Digital Plus (incl. Atmos) als bitstream aan het systeem door. DTS en TrueHD worden nog steeds als meerkanaals PCM afgespeeld. Bij zoeken kunnen korte geluidsonderbrekingen optreden.',
|
||||
'settings.audioDownmix' => 'Downmix naar stereo',
|
||||
'settings.audioDownmixDescription' => 'Mixt surroundgeluid naar twee kanalen voor stereoluidsprekers of een koptelefoon',
|
||||
'settings.downmixCenterBoost' => 'Versterking middenkanaal',
|
||||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB',
|
||||
'settings.downmixCenterBoostLabel' => 'Versterking (dB)',
|
||||
'settings.downmixCenterBoostShort' => 'dB',
|
||||
'settings.audioDownmixNormalize' => 'Volume normaliseren bij downmix',
|
||||
'settings.audioDownmixNormalizeDescription' => 'Verlaagt de mix om clipping te voorkomen. Zet uit om het originele volume te behouden (kan vervormen bij luide scènes).',
|
||||
'settings.atmosDiagnostics' => 'Atmos-uitvoertest',
|
||||
'settings.atmosDiagnosticsDescription' => 'Diagnosticeer de Dolby Atmos-uitvoer door testsignalen via de systeemspeler af te spelen',
|
||||
'settings.atmosTestHlsAtmos' => 'Apple Atmos-stream',
|
||||
@@ -2447,6 +2464,8 @@ extension on TranslationsNl {
|
||||
'messages.logsCleared' => 'Logs gewist',
|
||||
'messages.logsCopied' => 'Logs gekopieerd naar klembord',
|
||||
'messages.noLogsAvailable' => 'Geen logs beschikbaar',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.libraryScanning' => ({required Object title}) => 'Scannen "${title}"...',
|
||||
'messages.libraryScanStarted' => ({required Object title}) => 'Bibliotheek scan gestart voor "${title}"',
|
||||
'messages.libraryScanFailed' => ({required Object error}) => 'Kon bibliotheek niet scannen: ${error}',
|
||||
@@ -2455,8 +2474,6 @@ extension on TranslationsNl {
|
||||
'messages.metadataRefreshFailed' => ({required Object error}) => 'Kon metadata niet vernieuwen: ${error}',
|
||||
'messages.logoutConfirm' => 'Weet je zeker dat je wilt uitloggen?',
|
||||
'messages.noSeasonsFound' => 'Geen seizoenen gevonden',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.seasonsLoadFailed' => 'Kan seizoenen niet laden',
|
||||
'messages.noEpisodesFound' => 'Geen afleveringen gevonden in eerste seizoen',
|
||||
'messages.noEpisodesFoundGeneral' => 'Geen afleveringen gevonden',
|
||||
@@ -2961,6 +2978,8 @@ extension on TranslationsNl {
|
||||
'companionRemote.session.startingServer' => 'Externe server starten...',
|
||||
'companionRemote.session.failedToCreate' => 'Kan externe server niet starten:',
|
||||
'companionRemote.session.hostAddress' => 'Hostadres',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.connected' => 'Verbonden',
|
||||
'companionRemote.session.serverRunning' => 'Externe server actief',
|
||||
'companionRemote.session.serverStopped' => 'Externe server gestopt',
|
||||
@@ -2969,8 +2988,6 @@ extension on TranslationsNl {
|
||||
'companionRemote.session.usePhoneToControl' => 'Gebruik je mobiele apparaat om deze app te bedienen',
|
||||
'companionRemote.session.startServer' => 'Server starten',
|
||||
'companionRemote.session.stopServer' => 'Server stoppen',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.minimize' => 'Minimaliseren',
|
||||
'companionRemote.pairing.discoveryDescription' => 'Plezy-apparaten met hetzelfde Plex-account verschijnen hier',
|
||||
'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632',
|
||||
@@ -3030,6 +3047,7 @@ extension on TranslationsNl {
|
||||
'videoSettings.performanceOverlay' => 'Prestatie-overlay',
|
||||
'videoSettings.audioPassthrough' => 'Audio-doorvoer',
|
||||
'videoSettings.audioNormalization' => 'Volume normaliseren',
|
||||
'videoSettings.audioDownmix' => 'Downmix naar stereo',
|
||||
'performanceOverlay.color' => 'Kleur',
|
||||
'performanceOverlay.performance' => 'Prestaties',
|
||||
'performanceOverlay.buffer' => 'Buffer',
|
||||
|
||||
@@ -394,6 +394,14 @@ class _TranslationsSettingsPl extends TranslationsSettingsEn {
|
||||
@override String get audioPassthrough => 'Bezpośrednie audio';
|
||||
@override String get audioPassthroughDescription => 'Wysyłaj dźwięk Dolby/DTS do amplitunera lub telewizora bez ponownego kodowania, zachowując dźwięk przestrzenny. Wyłącz, jeśli nie ma dźwięku.';
|
||||
@override String get audioPassthroughDescriptionAppleTv => 'Przekazuje Dolby Digital Plus (w tym Atmos) do systemu jako bitstream. DTS i TrueHD nadal odtwarzane są jako wielokanałowe PCM. Podczas przewijania mogą wystąpić krótkie przerwy w dźwięku.';
|
||||
@override String get audioDownmix => 'Miksowanie do stereo';
|
||||
@override String get audioDownmixDescription => 'Miksuje dźwięk przestrzenny do dwóch kanałów dla głośników stereo lub słuchawek';
|
||||
@override String get downmixCenterBoost => 'Wzmocnienie kanału centralnego';
|
||||
@override String downmixCenterBoostValue({required Object db}) => '${db} dB';
|
||||
@override String get downmixCenterBoostLabel => 'Wzmocnienie (dB)';
|
||||
@override String get downmixCenterBoostShort => 'dB';
|
||||
@override String get audioDownmixNormalize => 'Normalizacja głośności przy miksowaniu';
|
||||
@override String get audioDownmixNormalizeDescription => 'Obniża miks, aby zapobiec przesterowaniu. Wyłącz, aby zachować oryginalną głośność (głośne sceny mogą być zniekształcone).';
|
||||
@override String get atmosDiagnostics => 'Test wyjścia Atmos';
|
||||
@override String get atmosDiagnosticsDescription => 'Diagnozuj wyjście Dolby Atmos, odtwarzając sygnały testowe przez odtwarzacz systemowy';
|
||||
@override String get atmosTestHlsAtmos => 'Strumień Atmos Apple';
|
||||
@@ -1391,6 +1399,7 @@ class _TranslationsVideoSettingsPl extends TranslationsVideoSettingsEn {
|
||||
@override String get performanceOverlay => 'Nakładka wydajności';
|
||||
@override String get audioPassthrough => 'Bezpośrednie audio';
|
||||
@override String get audioNormalization => 'Normalizacja głośności';
|
||||
@override String get audioDownmix => 'Miksowanie do stereo';
|
||||
}
|
||||
|
||||
// Path: performanceOverlay
|
||||
@@ -2198,6 +2207,14 @@ extension on TranslationsPl {
|
||||
'settings.audioPassthrough' => 'Bezpośrednie audio',
|
||||
'settings.audioPassthroughDescription' => 'Wysyłaj dźwięk Dolby/DTS do amplitunera lub telewizora bez ponownego kodowania, zachowując dźwięk przestrzenny. Wyłącz, jeśli nie ma dźwięku.',
|
||||
'settings.audioPassthroughDescriptionAppleTv' => 'Przekazuje Dolby Digital Plus (w tym Atmos) do systemu jako bitstream. DTS i TrueHD nadal odtwarzane są jako wielokanałowe PCM. Podczas przewijania mogą wystąpić krótkie przerwy w dźwięku.',
|
||||
'settings.audioDownmix' => 'Miksowanie do stereo',
|
||||
'settings.audioDownmixDescription' => 'Miksuje dźwięk przestrzenny do dwóch kanałów dla głośników stereo lub słuchawek',
|
||||
'settings.downmixCenterBoost' => 'Wzmocnienie kanału centralnego',
|
||||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB',
|
||||
'settings.downmixCenterBoostLabel' => 'Wzmocnienie (dB)',
|
||||
'settings.downmixCenterBoostShort' => 'dB',
|
||||
'settings.audioDownmixNormalize' => 'Normalizacja głośności przy miksowaniu',
|
||||
'settings.audioDownmixNormalizeDescription' => 'Obniża miks, aby zapobiec przesterowaniu. Wyłącz, aby zachować oryginalną głośność (głośne sceny mogą być zniekształcone).',
|
||||
'settings.atmosDiagnostics' => 'Test wyjścia Atmos',
|
||||
'settings.atmosDiagnosticsDescription' => 'Diagnozuj wyjście Dolby Atmos, odtwarzając sygnały testowe przez odtwarzacz systemowy',
|
||||
'settings.atmosTestHlsAtmos' => 'Strumień Atmos Apple',
|
||||
@@ -2447,6 +2464,8 @@ extension on TranslationsPl {
|
||||
'messages.logsCleared' => 'Logi wyczyszczone',
|
||||
'messages.logsCopied' => 'Logi skopiowane do schowka',
|
||||
'messages.noLogsAvailable' => 'Brak dostępnych logów',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.libraryScanning' => ({required Object title}) => 'Skanowanie "${title}"...',
|
||||
'messages.libraryScanStarted' => ({required Object title}) => 'Rozpoczęto skanowanie biblioteki "${title}"',
|
||||
'messages.libraryScanFailed' => ({required Object error}) => 'Nie udało się zeskanować biblioteki: ${error}',
|
||||
@@ -2455,8 +2474,6 @@ extension on TranslationsPl {
|
||||
'messages.metadataRefreshFailed' => ({required Object error}) => 'Nie udało się odświeżyć metadanych: ${error}',
|
||||
'messages.logoutConfirm' => 'Czy na pewno chcesz się wylogować?',
|
||||
'messages.noSeasonsFound' => 'Nie znaleziono sezonów',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.seasonsLoadFailed' => 'Nie udało się załadować sezonów',
|
||||
'messages.noEpisodesFound' => 'Nie znaleziono odcinków w pierwszym sezonie',
|
||||
'messages.noEpisodesFoundGeneral' => 'Nie znaleziono odcinków',
|
||||
@@ -2961,6 +2978,8 @@ extension on TranslationsPl {
|
||||
'companionRemote.session.startingServer' => 'Uruchamianie serwera zdalnego...',
|
||||
'companionRemote.session.failedToCreate' => 'Nie udało się uruchomić serwera zdalnego:',
|
||||
'companionRemote.session.hostAddress' => 'Adres hosta',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.connected' => 'Połączono',
|
||||
'companionRemote.session.serverRunning' => 'Serwer zdalny aktywny',
|
||||
'companionRemote.session.serverStopped' => 'Serwer zdalny zatrzymany',
|
||||
@@ -2969,8 +2988,6 @@ extension on TranslationsPl {
|
||||
'companionRemote.session.usePhoneToControl' => 'Użyj urządzenia mobilnego, aby sterować tą aplikacją',
|
||||
'companionRemote.session.startServer' => 'Uruchom serwer',
|
||||
'companionRemote.session.stopServer' => 'Zatrzymaj serwer',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.minimize' => 'Minimalizuj',
|
||||
'companionRemote.pairing.discoveryDescription' => 'Urządzenia Plezy z tym samym kontem Plex pojawią się tutaj',
|
||||
'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632',
|
||||
@@ -3030,6 +3047,7 @@ extension on TranslationsPl {
|
||||
'videoSettings.performanceOverlay' => 'Nakładka wydajności',
|
||||
'videoSettings.audioPassthrough' => 'Bezpośrednie audio',
|
||||
'videoSettings.audioNormalization' => 'Normalizacja głośności',
|
||||
'videoSettings.audioDownmix' => 'Miksowanie do stereo',
|
||||
'performanceOverlay.color' => 'Kolor',
|
||||
'performanceOverlay.performance' => 'Wydajność',
|
||||
'performanceOverlay.buffer' => 'Bufor',
|
||||
|
||||
@@ -394,6 +394,14 @@ class _TranslationsSettingsPt extends TranslationsSettingsEn {
|
||||
@override String get audioPassthrough => 'Passagem de Áudio';
|
||||
@override String get audioPassthroughDescription => 'Envie áudio Dolby/DTS para o seu receptor ou TV sem recodificar, preservando o som surround. Desative se não tiver som.';
|
||||
@override String get audioPassthroughDescriptionAppleTv => 'Entrega Dolby Digital Plus (incluindo Atmos) ao sistema como bitstream. DTS e TrueHD continuam sendo reproduzidos como PCM multicanal. Podem ocorrer breves cortes de áudio ao buscar.';
|
||||
@override String get audioDownmix => 'Downmix para Estéreo';
|
||||
@override String get audioDownmixDescription => 'Mistura o áudio surround em dois canais para alto-falantes estéreo ou fones de ouvido';
|
||||
@override String get downmixCenterBoost => 'Reforço do Canal Central';
|
||||
@override String downmixCenterBoostValue({required Object db}) => '${db} dB';
|
||||
@override String get downmixCenterBoostLabel => 'Reforço (dB)';
|
||||
@override String get downmixCenterBoostShort => 'dB';
|
||||
@override String get audioDownmixNormalize => 'Normalizar Volume no Downmix';
|
||||
@override String get audioDownmixNormalizeDescription => 'Reduz a mixagem para evitar saturação. Desative para manter o volume original (cenas altas podem distorcer).';
|
||||
@override String get atmosDiagnostics => 'Teste de saída Atmos';
|
||||
@override String get atmosDiagnosticsDescription => 'Diagnostique a saída Dolby Atmos reproduzindo sinais de teste pelo player do sistema';
|
||||
@override String get atmosTestHlsAtmos => 'Stream Atmos da Apple';
|
||||
@@ -1391,6 +1399,7 @@ class _TranslationsVideoSettingsPt extends TranslationsVideoSettingsEn {
|
||||
@override String get performanceOverlay => 'Overlay de Desempenho';
|
||||
@override String get audioPassthrough => 'Passagem de Áudio';
|
||||
@override String get audioNormalization => 'Normalizar Volume';
|
||||
@override String get audioDownmix => 'Downmix para Estéreo';
|
||||
}
|
||||
|
||||
// Path: performanceOverlay
|
||||
@@ -2198,6 +2207,14 @@ extension on TranslationsPt {
|
||||
'settings.audioPassthrough' => 'Passagem de Áudio',
|
||||
'settings.audioPassthroughDescription' => 'Envie áudio Dolby/DTS para o seu receptor ou TV sem recodificar, preservando o som surround. Desative se não tiver som.',
|
||||
'settings.audioPassthroughDescriptionAppleTv' => 'Entrega Dolby Digital Plus (incluindo Atmos) ao sistema como bitstream. DTS e TrueHD continuam sendo reproduzidos como PCM multicanal. Podem ocorrer breves cortes de áudio ao buscar.',
|
||||
'settings.audioDownmix' => 'Downmix para Estéreo',
|
||||
'settings.audioDownmixDescription' => 'Mistura o áudio surround em dois canais para alto-falantes estéreo ou fones de ouvido',
|
||||
'settings.downmixCenterBoost' => 'Reforço do Canal Central',
|
||||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB',
|
||||
'settings.downmixCenterBoostLabel' => 'Reforço (dB)',
|
||||
'settings.downmixCenterBoostShort' => 'dB',
|
||||
'settings.audioDownmixNormalize' => 'Normalizar Volume no Downmix',
|
||||
'settings.audioDownmixNormalizeDescription' => 'Reduz a mixagem para evitar saturação. Desative para manter o volume original (cenas altas podem distorcer).',
|
||||
'settings.atmosDiagnostics' => 'Teste de saída Atmos',
|
||||
'settings.atmosDiagnosticsDescription' => 'Diagnostique a saída Dolby Atmos reproduzindo sinais de teste pelo player do sistema',
|
||||
'settings.atmosTestHlsAtmos' => 'Stream Atmos da Apple',
|
||||
@@ -2447,6 +2464,8 @@ extension on TranslationsPt {
|
||||
'messages.logsCleared' => 'Logs limpos',
|
||||
'messages.logsCopied' => 'Logs copiados para a área de transferência',
|
||||
'messages.noLogsAvailable' => 'Nenhum log disponível',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.libraryScanning' => ({required Object title}) => 'Escaneando "${title}"...',
|
||||
'messages.libraryScanStarted' => ({required Object title}) => 'Escaneamento da biblioteca iniciado para "${title}"',
|
||||
'messages.libraryScanFailed' => ({required Object error}) => 'Falha ao escanear biblioteca: ${error}',
|
||||
@@ -2455,8 +2474,6 @@ extension on TranslationsPt {
|
||||
'messages.metadataRefreshFailed' => ({required Object error}) => 'Falha ao atualizar metadados: ${error}',
|
||||
'messages.logoutConfirm' => 'Tem certeza que deseja sair?',
|
||||
'messages.noSeasonsFound' => 'Nenhuma temporada encontrada',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.seasonsLoadFailed' => 'Não foi possível carregar as temporadas',
|
||||
'messages.noEpisodesFound' => 'Nenhum episódio encontrado na primeira temporada',
|
||||
'messages.noEpisodesFoundGeneral' => 'Nenhum episódio encontrado',
|
||||
@@ -2961,6 +2978,8 @@ extension on TranslationsPt {
|
||||
'companionRemote.session.startingServer' => 'A iniciar servidor remoto...',
|
||||
'companionRemote.session.failedToCreate' => 'Falha ao iniciar o servidor remoto:',
|
||||
'companionRemote.session.hostAddress' => 'Endereço do host',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.connected' => 'Conectado',
|
||||
'companionRemote.session.serverRunning' => 'Servidor remoto ativo',
|
||||
'companionRemote.session.serverStopped' => 'Servidor remoto parado',
|
||||
@@ -2969,8 +2988,6 @@ extension on TranslationsPt {
|
||||
'companionRemote.session.usePhoneToControl' => 'Use o seu dispositivo móvel para controlar esta aplicação',
|
||||
'companionRemote.session.startServer' => 'Iniciar servidor',
|
||||
'companionRemote.session.stopServer' => 'Parar servidor',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.minimize' => 'Minimizar',
|
||||
'companionRemote.pairing.discoveryDescription' => 'Dispositivos Plezy com a mesma conta Plex aparecem aqui',
|
||||
'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632',
|
||||
@@ -3030,6 +3047,7 @@ extension on TranslationsPt {
|
||||
'videoSettings.performanceOverlay' => 'Overlay de Desempenho',
|
||||
'videoSettings.audioPassthrough' => 'Passagem de Áudio',
|
||||
'videoSettings.audioNormalization' => 'Normalizar Volume',
|
||||
'videoSettings.audioDownmix' => 'Downmix para Estéreo',
|
||||
'performanceOverlay.color' => 'Cor',
|
||||
'performanceOverlay.performance' => 'Desempenho',
|
||||
'performanceOverlay.buffer' => 'Buffer',
|
||||
|
||||
@@ -394,6 +394,14 @@ class _TranslationsSettingsRu extends TranslationsSettingsEn {
|
||||
@override String get audioPassthrough => 'Сквозной вывод аудио';
|
||||
@override String get audioPassthroughDescription => 'Передавать звук Dolby/DTS на ресивер или телевизор без перекодирования, сохраняя объёмный звук. Отключите, если нет звука.';
|
||||
@override String get audioPassthroughDescriptionAppleTv => 'Передаёт Dolby Digital Plus (включая Atmos) системе в виде битового потока. DTS и TrueHD по-прежнему воспроизводятся как многоканальный PCM. При перемотке возможны короткие пропадания звука.';
|
||||
@override String get audioDownmix => 'Микширование в стерео';
|
||||
@override String get audioDownmixDescription => 'Микширует объёмный звук в два канала для стереодинамиков или наушников';
|
||||
@override String get downmixCenterBoost => 'Усиление центрального канала';
|
||||
@override String downmixCenterBoostValue({required Object db}) => '${db} дБ';
|
||||
@override String get downmixCenterBoostLabel => 'Усиление (дБ)';
|
||||
@override String get downmixCenterBoostShort => 'дБ';
|
||||
@override String get audioDownmixNormalize => 'Нормализация громкости при микшировании';
|
||||
@override String get audioDownmixNormalizeDescription => 'Снижает уровень микса во избежание клиппинга. Отключите, чтобы сохранить исходную громкость (возможны искажения в громких сценах).';
|
||||
@override String get atmosDiagnostics => 'Тест вывода Atmos';
|
||||
@override String get atmosDiagnosticsDescription => 'Диагностика вывода Dolby Atmos воспроизведением тестовых сигналов через системный проигрыватель';
|
||||
@override String get atmosTestHlsAtmos => 'Atmos-поток Apple';
|
||||
@@ -1391,6 +1399,7 @@ class _TranslationsVideoSettingsRu extends TranslationsVideoSettingsEn {
|
||||
@override String get performanceOverlay => 'Оверлей производительности';
|
||||
@override String get audioPassthrough => 'Сквозной вывод аудио';
|
||||
@override String get audioNormalization => 'Нормализация громкости';
|
||||
@override String get audioDownmix => 'Микширование в стерео';
|
||||
}
|
||||
|
||||
// Path: performanceOverlay
|
||||
@@ -2198,6 +2207,14 @@ extension on TranslationsRu {
|
||||
'settings.audioPassthrough' => 'Сквозной вывод аудио',
|
||||
'settings.audioPassthroughDescription' => 'Передавать звук Dolby/DTS на ресивер или телевизор без перекодирования, сохраняя объёмный звук. Отключите, если нет звука.',
|
||||
'settings.audioPassthroughDescriptionAppleTv' => 'Передаёт Dolby Digital Plus (включая Atmos) системе в виде битового потока. DTS и TrueHD по-прежнему воспроизводятся как многоканальный PCM. При перемотке возможны короткие пропадания звука.',
|
||||
'settings.audioDownmix' => 'Микширование в стерео',
|
||||
'settings.audioDownmixDescription' => 'Микширует объёмный звук в два канала для стереодинамиков или наушников',
|
||||
'settings.downmixCenterBoost' => 'Усиление центрального канала',
|
||||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} дБ',
|
||||
'settings.downmixCenterBoostLabel' => 'Усиление (дБ)',
|
||||
'settings.downmixCenterBoostShort' => 'дБ',
|
||||
'settings.audioDownmixNormalize' => 'Нормализация громкости при микшировании',
|
||||
'settings.audioDownmixNormalizeDescription' => 'Снижает уровень микса во избежание клиппинга. Отключите, чтобы сохранить исходную громкость (возможны искажения в громких сценах).',
|
||||
'settings.atmosDiagnostics' => 'Тест вывода Atmos',
|
||||
'settings.atmosDiagnosticsDescription' => 'Диагностика вывода Dolby Atmos воспроизведением тестовых сигналов через системный проигрыватель',
|
||||
'settings.atmosTestHlsAtmos' => 'Atmos-поток Apple',
|
||||
@@ -2447,6 +2464,8 @@ extension on TranslationsRu {
|
||||
'messages.logsCleared' => 'Логи очищены',
|
||||
'messages.logsCopied' => 'Логи скопированы в буфер обмена',
|
||||
'messages.noLogsAvailable' => 'Логи отсутствуют',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.libraryScanning' => ({required Object title}) => 'Сканирование "${title}"...',
|
||||
'messages.libraryScanStarted' => ({required Object title}) => 'Сканирование библиотеки начато для "${title}"',
|
||||
'messages.libraryScanFailed' => ({required Object error}) => 'Не удалось отсканировать библиотеку: ${error}',
|
||||
@@ -2455,8 +2474,6 @@ extension on TranslationsRu {
|
||||
'messages.metadataRefreshFailed' => ({required Object error}) => 'Не удалось обновить метаданные: ${error}',
|
||||
'messages.logoutConfirm' => 'Вы уверены, что хотите выйти?',
|
||||
'messages.noSeasonsFound' => 'Сезоны не найдены',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.seasonsLoadFailed' => 'Не удалось загрузить сезоны',
|
||||
'messages.noEpisodesFound' => 'Эпизоды в первом сезоне не найдены',
|
||||
'messages.noEpisodesFoundGeneral' => 'Эпизоды не найдены',
|
||||
@@ -2961,6 +2978,8 @@ extension on TranslationsRu {
|
||||
'companionRemote.session.startingServer' => 'Запуск удалённого сервера...',
|
||||
'companionRemote.session.failedToCreate' => 'Не удалось запустить удалённый сервер:',
|
||||
'companionRemote.session.hostAddress' => 'Адрес хоста',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.connected' => 'Подключено',
|
||||
'companionRemote.session.serverRunning' => 'Удалённый сервер активен',
|
||||
'companionRemote.session.serverStopped' => 'Удалённый сервер остановлен',
|
||||
@@ -2969,8 +2988,6 @@ extension on TranslationsRu {
|
||||
'companionRemote.session.usePhoneToControl' => 'Используйте мобильное устройство для управления этим приложением',
|
||||
'companionRemote.session.startServer' => 'Запустить сервер',
|
||||
'companionRemote.session.stopServer' => 'Остановить сервер',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.minimize' => 'Свернуть',
|
||||
'companionRemote.pairing.discoveryDescription' => 'Устройства Plezy с тем же аккаунтом Plex появятся здесь',
|
||||
'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632',
|
||||
@@ -3030,6 +3047,7 @@ extension on TranslationsRu {
|
||||
'videoSettings.performanceOverlay' => 'Оверлей производительности',
|
||||
'videoSettings.audioPassthrough' => 'Сквозной вывод аудио',
|
||||
'videoSettings.audioNormalization' => 'Нормализация громкости',
|
||||
'videoSettings.audioDownmix' => 'Микширование в стерео',
|
||||
'performanceOverlay.color' => 'Цвет',
|
||||
'performanceOverlay.performance' => 'Производительность',
|
||||
'performanceOverlay.buffer' => 'Буфер',
|
||||
|
||||
@@ -394,6 +394,14 @@ class _TranslationsSettingsSv extends TranslationsSettingsEn {
|
||||
@override String get audioPassthrough => 'Ljudgenomkoppling';
|
||||
@override String get audioPassthroughDescription => 'Skicka Dolby/DTS-ljud till din receiver eller TV utan omkodning och bevara surroundljudet. Stäng av om du inte har något ljud.';
|
||||
@override String get audioPassthroughDescriptionAppleTv => 'Lämnar Dolby Digital Plus (inkl. Atmos) till systemet som bitstream. DTS och TrueHD spelas fortfarande upp som flerkanals-PCM. Korta ljudavbrott kan förekomma vid sökning.';
|
||||
@override String get audioDownmix => 'Nedmixning till stereo';
|
||||
@override String get audioDownmixDescription => 'Mixar ner surroundljud till två kanaler för stereohögtalare eller hörlurar';
|
||||
@override String get downmixCenterBoost => 'Förstärkning av centerkanal';
|
||||
@override String downmixCenterBoostValue({required Object db}) => '${db} dB';
|
||||
@override String get downmixCenterBoostLabel => 'Förstärkning (dB)';
|
||||
@override String get downmixCenterBoostShort => 'dB';
|
||||
@override String get audioDownmixNormalize => 'Normalisera ljudstyrka vid nedmixning';
|
||||
@override String get audioDownmixNormalizeDescription => 'Sänker mixen för att undvika klippning. Stäng av för att behålla originalvolymen (höga scener kan förvrängas).';
|
||||
@override String get atmosDiagnostics => 'Atmos-utgångstest';
|
||||
@override String get atmosDiagnosticsDescription => 'Diagnostisera Dolby Atmos-utgången genom att spela testsignaler via systemspelaren';
|
||||
@override String get atmosTestHlsAtmos => 'Apple Atmos-ström';
|
||||
@@ -1391,6 +1399,7 @@ class _TranslationsVideoSettingsSv extends TranslationsVideoSettingsEn {
|
||||
@override String get performanceOverlay => 'Prestandaöverlägg';
|
||||
@override String get audioPassthrough => 'Ljudgenomkoppling';
|
||||
@override String get audioNormalization => 'Normalisera ljudstyrka';
|
||||
@override String get audioDownmix => 'Nedmixning till stereo';
|
||||
}
|
||||
|
||||
// Path: performanceOverlay
|
||||
@@ -2198,6 +2207,14 @@ extension on TranslationsSv {
|
||||
'settings.audioPassthrough' => 'Ljudgenomkoppling',
|
||||
'settings.audioPassthroughDescription' => 'Skicka Dolby/DTS-ljud till din receiver eller TV utan omkodning och bevara surroundljudet. Stäng av om du inte har något ljud.',
|
||||
'settings.audioPassthroughDescriptionAppleTv' => 'Lämnar Dolby Digital Plus (inkl. Atmos) till systemet som bitstream. DTS och TrueHD spelas fortfarande upp som flerkanals-PCM. Korta ljudavbrott kan förekomma vid sökning.',
|
||||
'settings.audioDownmix' => 'Nedmixning till stereo',
|
||||
'settings.audioDownmixDescription' => 'Mixar ner surroundljud till två kanaler för stereohögtalare eller hörlurar',
|
||||
'settings.downmixCenterBoost' => 'Förstärkning av centerkanal',
|
||||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB',
|
||||
'settings.downmixCenterBoostLabel' => 'Förstärkning (dB)',
|
||||
'settings.downmixCenterBoostShort' => 'dB',
|
||||
'settings.audioDownmixNormalize' => 'Normalisera ljudstyrka vid nedmixning',
|
||||
'settings.audioDownmixNormalizeDescription' => 'Sänker mixen för att undvika klippning. Stäng av för att behålla originalvolymen (höga scener kan förvrängas).',
|
||||
'settings.atmosDiagnostics' => 'Atmos-utgångstest',
|
||||
'settings.atmosDiagnosticsDescription' => 'Diagnostisera Dolby Atmos-utgången genom att spela testsignaler via systemspelaren',
|
||||
'settings.atmosTestHlsAtmos' => 'Apple Atmos-ström',
|
||||
@@ -2447,6 +2464,8 @@ extension on TranslationsSv {
|
||||
'messages.logsCleared' => 'Loggar rensade',
|
||||
'messages.logsCopied' => 'Loggar kopierade till urklipp',
|
||||
'messages.noLogsAvailable' => 'Inga loggar tillgängliga',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.libraryScanning' => ({required Object title}) => 'Skannar "${title}"...',
|
||||
'messages.libraryScanStarted' => ({required Object title}) => 'Biblioteksskanning startad för "${title}"',
|
||||
'messages.libraryScanFailed' => ({required Object error}) => 'Misslyckades att skanna bibliotek: ${error}',
|
||||
@@ -2455,8 +2474,6 @@ extension on TranslationsSv {
|
||||
'messages.metadataRefreshFailed' => ({required Object error}) => 'Misslyckades att uppdatera metadata: ${error}',
|
||||
'messages.logoutConfirm' => 'Är du säker på att du vill logga ut?',
|
||||
'messages.noSeasonsFound' => 'Inga säsonger hittades',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.seasonsLoadFailed' => 'Det gick inte att läsa in säsonger',
|
||||
'messages.noEpisodesFound' => 'Inga avsnitt hittades i första säsongen',
|
||||
'messages.noEpisodesFoundGeneral' => 'Inga avsnitt hittades',
|
||||
@@ -2961,6 +2978,8 @@ extension on TranslationsSv {
|
||||
'companionRemote.session.startingServer' => 'Startar fjärrserver...',
|
||||
'companionRemote.session.failedToCreate' => 'Kunde inte starta fjärrserver:',
|
||||
'companionRemote.session.hostAddress' => 'Värdadress',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.connected' => 'Ansluten',
|
||||
'companionRemote.session.serverRunning' => 'Fjärrserver aktiv',
|
||||
'companionRemote.session.serverStopped' => 'Fjärrserver stoppad',
|
||||
@@ -2969,8 +2988,6 @@ extension on TranslationsSv {
|
||||
'companionRemote.session.usePhoneToControl' => 'Använd din mobila enhet för att styra denna app',
|
||||
'companionRemote.session.startServer' => 'Starta server',
|
||||
'companionRemote.session.stopServer' => 'Stoppa server',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.minimize' => 'Minimera',
|
||||
'companionRemote.pairing.discoveryDescription' => 'Plezy-enheter med samma Plex-konto visas här',
|
||||
'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632',
|
||||
@@ -3030,6 +3047,7 @@ extension on TranslationsSv {
|
||||
'videoSettings.performanceOverlay' => 'Prestandaöverlägg',
|
||||
'videoSettings.audioPassthrough' => 'Ljudgenomkoppling',
|
||||
'videoSettings.audioNormalization' => 'Normalisera ljudstyrka',
|
||||
'videoSettings.audioDownmix' => 'Nedmixning till stereo',
|
||||
'performanceOverlay.color' => 'Färg',
|
||||
'performanceOverlay.performance' => 'Prestanda',
|
||||
'performanceOverlay.buffer' => 'Buffert',
|
||||
|
||||
@@ -394,6 +394,14 @@ class _TranslationsSettingsZh extends TranslationsSettingsEn {
|
||||
@override String get audioPassthrough => '音频直通';
|
||||
@override String get audioPassthroughDescription => '将 Dolby/DTS 音频不经重新编码直接发送到功放或电视,保留环绕声。如果没有声音,请关闭。';
|
||||
@override String get audioPassthroughDescriptionAppleTv => '将 Dolby Digital Plus(含 Atmos)以比特流方式交给系统输出。DTS 和 TrueHD 仍以多声道 PCM 播放。快进快退时可能出现短暂声音中断。';
|
||||
@override String get audioDownmix => '下混为立体声';
|
||||
@override String get audioDownmixDescription => '将环绕声混合为双声道,适用于立体声音箱或耳机';
|
||||
@override String get downmixCenterBoost => '中置声道增强';
|
||||
@override String downmixCenterBoostValue({required Object db}) => '${db} dB';
|
||||
@override String get downmixCenterBoostLabel => '增强 (dB)';
|
||||
@override String get downmixCenterBoostShort => 'dB';
|
||||
@override String get audioDownmixNormalize => '下混时音量标准化';
|
||||
@override String get audioDownmixNormalizeDescription => '降低混音电平以防止削波。关闭可保持原始音量(大音量场景可能失真)。';
|
||||
@override String get atmosDiagnostics => 'Atmos 输出测试';
|
||||
@override String get atmosDiagnosticsDescription => '通过系统播放器播放测试信号,诊断 Dolby Atmos 输出';
|
||||
@override String get atmosTestHlsAtmos => 'Apple Atmos 流';
|
||||
@@ -1391,6 +1399,7 @@ class _TranslationsVideoSettingsZh extends TranslationsVideoSettingsEn {
|
||||
@override String get performanceOverlay => '性能监控';
|
||||
@override String get audioPassthrough => '音频直通';
|
||||
@override String get audioNormalization => '响度标准化';
|
||||
@override String get audioDownmix => '下混为立体声';
|
||||
}
|
||||
|
||||
// Path: performanceOverlay
|
||||
@@ -2198,6 +2207,14 @@ extension on TranslationsZh {
|
||||
'settings.audioPassthrough' => '音频直通',
|
||||
'settings.audioPassthroughDescription' => '将 Dolby/DTS 音频不经重新编码直接发送到功放或电视,保留环绕声。如果没有声音,请关闭。',
|
||||
'settings.audioPassthroughDescriptionAppleTv' => '将 Dolby Digital Plus(含 Atmos)以比特流方式交给系统输出。DTS 和 TrueHD 仍以多声道 PCM 播放。快进快退时可能出现短暂声音中断。',
|
||||
'settings.audioDownmix' => '下混为立体声',
|
||||
'settings.audioDownmixDescription' => '将环绕声混合为双声道,适用于立体声音箱或耳机',
|
||||
'settings.downmixCenterBoost' => '中置声道增强',
|
||||
'settings.downmixCenterBoostValue' => ({required Object db}) => '${db} dB',
|
||||
'settings.downmixCenterBoostLabel' => '增强 (dB)',
|
||||
'settings.downmixCenterBoostShort' => 'dB',
|
||||
'settings.audioDownmixNormalize' => '下混时音量标准化',
|
||||
'settings.audioDownmixNormalizeDescription' => '降低混音电平以防止削波。关闭可保持原始音量(大音量场景可能失真)。',
|
||||
'settings.atmosDiagnostics' => 'Atmos 输出测试',
|
||||
'settings.atmosDiagnosticsDescription' => '通过系统播放器播放测试信号,诊断 Dolby Atmos 输出',
|
||||
'settings.atmosTestHlsAtmos' => 'Apple Atmos 流',
|
||||
@@ -2447,6 +2464,8 @@ extension on TranslationsZh {
|
||||
'messages.logsCleared' => '日志已清除',
|
||||
'messages.logsCopied' => '日志已复制到剪贴板',
|
||||
'messages.noLogsAvailable' => '没有可用日志',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.libraryScanning' => ({required Object title}) => '正在扫描 “${title}”...',
|
||||
'messages.libraryScanStarted' => ({required Object title}) => '已开始扫描 “${title}” 媒体库',
|
||||
'messages.libraryScanFailed' => ({required Object error}) => '无法扫描媒体库: ${error}',
|
||||
@@ -2455,8 +2474,6 @@ extension on TranslationsZh {
|
||||
'messages.metadataRefreshFailed' => ({required Object error}) => '无法刷新元数据: ${error}',
|
||||
'messages.logoutConfirm' => '你确定要登出吗?',
|
||||
'messages.noSeasonsFound' => '未找到季',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'messages.seasonsLoadFailed' => '无法加载季',
|
||||
'messages.noEpisodesFound' => '在第一季中未找到剧集',
|
||||
'messages.noEpisodesFoundGeneral' => '未找到剧集',
|
||||
@@ -2961,6 +2978,8 @@ extension on TranslationsZh {
|
||||
'companionRemote.session.startingServer' => '正在启动远程服务器...',
|
||||
'companionRemote.session.failedToCreate' => '启动远程服务器失败:',
|
||||
'companionRemote.session.hostAddress' => '主机地址',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.connected' => '已连接',
|
||||
'companionRemote.session.serverRunning' => '远程服务器已启动',
|
||||
'companionRemote.session.serverStopped' => '远程服务器已停止',
|
||||
@@ -2969,8 +2988,6 @@ extension on TranslationsZh {
|
||||
'companionRemote.session.usePhoneToControl' => '使用移动设备控制此应用',
|
||||
'companionRemote.session.startServer' => '启动服务器',
|
||||
'companionRemote.session.stopServer' => '停止服务器',
|
||||
_ => null,
|
||||
} ?? switch (path) {
|
||||
'companionRemote.session.minimize' => '最小化',
|
||||
'companionRemote.pairing.discoveryDescription' => '使用同一 Plex 账号的 Plezy 设备会显示在这里',
|
||||
'companionRemote.pairing.hostAddressHint' => '192.168.1.100:48632',
|
||||
@@ -3030,6 +3047,7 @@ extension on TranslationsZh {
|
||||
'videoSettings.performanceOverlay' => '性能监控',
|
||||
'videoSettings.audioPassthrough' => '音频直通',
|
||||
'videoSettings.audioNormalization' => '响度标准化',
|
||||
'videoSettings.audioDownmix' => '下混为立体声',
|
||||
'performanceOverlay.color' => '颜色',
|
||||
'performanceOverlay.performance' => '性能',
|
||||
'performanceOverlay.buffer' => '缓冲',
|
||||
|
||||
+10
-1
@@ -265,6 +265,14 @@
|
||||
"audioPassthrough": "Ljudgenomkoppling",
|
||||
"audioPassthroughDescription": "Skicka Dolby/DTS-ljud till din receiver eller TV utan omkodning och bevara surroundljudet. Stäng av om du inte har något ljud.",
|
||||
"audioPassthroughDescriptionAppleTv": "Lämnar Dolby Digital Plus (inkl. Atmos) till systemet som bitstream. DTS och TrueHD spelas fortfarande upp som flerkanals-PCM. Korta ljudavbrott kan förekomma vid sökning.",
|
||||
"audioDownmix": "Nedmixning till stereo",
|
||||
"audioDownmixDescription": "Mixar ner surroundljud till två kanaler för stereohögtalare eller hörlurar",
|
||||
"downmixCenterBoost": "Förstärkning av centerkanal",
|
||||
"downmixCenterBoostValue": "${db} dB",
|
||||
"downmixCenterBoostLabel": "Förstärkning (dB)",
|
||||
"downmixCenterBoostShort": "dB",
|
||||
"audioDownmixNormalize": "Normalisera ljudstyrka vid nedmixning",
|
||||
"audioDownmixNormalizeDescription": "Sänker mixen för att undvika klippning. Stäng av för att behålla originalvolymen (höga scener kan förvrängas).",
|
||||
"atmosDiagnostics": "Atmos-utgångstest",
|
||||
"atmosDiagnosticsDescription": "Diagnostisera Dolby Atmos-utgången genom att spela testsignaler via systemspelaren",
|
||||
"atmosTestHlsAtmos": "Apple Atmos-ström",
|
||||
@@ -1176,7 +1184,8 @@
|
||||
"audioOutput": "Ljudutgång",
|
||||
"performanceOverlay": "Prestandaöverlägg",
|
||||
"audioPassthrough": "Ljudgenomkoppling",
|
||||
"audioNormalization": "Normalisera ljudstyrka"
|
||||
"audioNormalization": "Normalisera ljudstyrka",
|
||||
"audioDownmix": "Nedmixning till stereo"
|
||||
},
|
||||
"performanceOverlay": {
|
||||
"color": "Färg",
|
||||
|
||||
+10
-1
@@ -265,6 +265,14 @@
|
||||
"audioPassthrough": "音频直通",
|
||||
"audioPassthroughDescription": "将 Dolby/DTS 音频不经重新编码直接发送到功放或电视,保留环绕声。如果没有声音,请关闭。",
|
||||
"audioPassthroughDescriptionAppleTv": "将 Dolby Digital Plus(含 Atmos)以比特流方式交给系统输出。DTS 和 TrueHD 仍以多声道 PCM 播放。快进快退时可能出现短暂声音中断。",
|
||||
"audioDownmix": "下混为立体声",
|
||||
"audioDownmixDescription": "将环绕声混合为双声道,适用于立体声音箱或耳机",
|
||||
"downmixCenterBoost": "中置声道增强",
|
||||
"downmixCenterBoostValue": "${db} dB",
|
||||
"downmixCenterBoostLabel": "增强 (dB)",
|
||||
"downmixCenterBoostShort": "dB",
|
||||
"audioDownmixNormalize": "下混时音量标准化",
|
||||
"audioDownmixNormalizeDescription": "降低混音电平以防止削波。关闭可保持原始音量(大音量场景可能失真)。",
|
||||
"atmosDiagnostics": "Atmos 输出测试",
|
||||
"atmosDiagnosticsDescription": "通过系统播放器播放测试信号,诊断 Dolby Atmos 输出",
|
||||
"atmosTestHlsAtmos": "Apple Atmos 流",
|
||||
@@ -1176,7 +1184,8 @@
|
||||
"audioOutput": "音频输出",
|
||||
"performanceOverlay": "性能监控",
|
||||
"audioPassthrough": "音频直通",
|
||||
"audioNormalization": "响度标准化"
|
||||
"audioNormalization": "响度标准化",
|
||||
"audioDownmix": "下混为立体声"
|
||||
},
|
||||
"performanceOverlay": {
|
||||
"color": "颜色",
|
||||
|
||||
@@ -16,6 +16,9 @@ class PlayerAndroid extends PlayerBase {
|
||||
String _dvConversionMode = 'auto';
|
||||
bool _audioNormalizationEnabled = false;
|
||||
bool _audioPassthroughEnabled = false;
|
||||
bool _downmixEnabled = false;
|
||||
int _downmixCenterBoostDb = 0;
|
||||
bool _downmixNormalize = true;
|
||||
|
||||
static const String _passthroughCodecs = 'ac3,eac3,dts,dts-hd,truehd';
|
||||
|
||||
@@ -301,6 +304,32 @@ class PlayerAndroid extends PlayerBase {
|
||||
await super.setAudioNormalization(enabled);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> setAudioDownmix({required bool enabled, required int centerBoostDb, required bool normalize}) async {
|
||||
if (disposed) return;
|
||||
_downmixEnabled = enabled;
|
||||
_downmixCenterBoostDb = centerBoostDb;
|
||||
_downmixNormalize = normalize;
|
||||
Future<void> invokeNative() =>
|
||||
invoke('setAudioDownmix', {'enabled': enabled, 'centerBoostDb': centerBoostDb, 'normalize': normalize});
|
||||
final initFuture = _initFuture;
|
||||
if (initialized) {
|
||||
await invokeNative();
|
||||
} else if (initFuture != null) {
|
||||
await initFuture;
|
||||
if (!disposed &&
|
||||
initialized &&
|
||||
_downmixEnabled == enabled &&
|
||||
_downmixCenterBoostDb == centerBoostDb &&
|
||||
_downmixNormalize == normalize) {
|
||||
await invokeNative();
|
||||
}
|
||||
}
|
||||
// Keep the mpv properties flowing through setMpvProperty so the plugin's
|
||||
// pendingMpvProperties replay applies downmix if exo falls back to mpv.
|
||||
await super.setAudioDownmix(enabled: enabled, centerBoostDb: centerBoostDb, normalize: normalize);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> setAudioPassthrough(bool enabled) async {
|
||||
if (disposed) return;
|
||||
|
||||
@@ -217,6 +217,17 @@ abstract class Player {
|
||||
/// PCM output while enabled so the effects can process the stream.
|
||||
Future<void> setAudioNormalization(bool enabled);
|
||||
|
||||
/// Force a stereo downmix with a Kodi-style center channel boost.
|
||||
///
|
||||
/// [centerBoostDb] (0-12) raises the center channel above its standard
|
||||
/// -3 dB downmix coefficient to improve dialogue clarity. [normalize]
|
||||
/// attenuates the mix so it cannot clip; off keeps the original level
|
||||
/// (Kodi's "maintain original volume"). mpv backends rebuild the audio
|
||||
/// chain via `audio-channels`; Android ExoPlayer routes a
|
||||
/// ChannelMixingAudioProcessor in the audio sink and force-decodes
|
||||
/// encoded audio while enabled.
|
||||
Future<void> setAudioDownmix({required bool enabled, required int centerBoostDb, required bool normalize});
|
||||
|
||||
/// Show or hide the video rendering layer.
|
||||
///
|
||||
/// On macOS, this controls the Metal layer visibility.
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
import 'dart:math' as math;
|
||||
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:flutter/foundation.dart' show protected;
|
||||
@@ -709,6 +710,27 @@ abstract class PlayerBase with PlayerStreamControllersMixin implements Player {
|
||||
await setProperty('af', enabled ? _loudnormFilter : '');
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> setAudioDownmix({required bool enabled, required int centerBoostDb, required bool normalize}) async {
|
||||
if (enabled) {
|
||||
// Kodi's mechanism: center coefficient = 10^((-3 + boost)/20); the
|
||||
// surround (-3 dB) and LFE (dropped) swresample defaults already match.
|
||||
final c = math.pow(10, (-3 + centerBoostDb.clamp(0, 12)) / 20).toStringAsFixed(4);
|
||||
// Swresample AVOptions are read once at audio-filter creation, so they
|
||||
// must land before audio-channels triggers the chain (re)build.
|
||||
await setProperty('audio-swresample-o', 'center_mix_level=$c');
|
||||
await setProperty('audio-normalize-downmix', normalize ? 'yes' : 'no');
|
||||
// Bounce through auto-safe so boost/normalize changes re-apply while
|
||||
// downmix is already active (same-value option sets are no-ops in mpv).
|
||||
await setProperty('audio-channels', 'auto-safe');
|
||||
await setProperty('audio-channels', 'stereo');
|
||||
} else {
|
||||
await setProperty('audio-channels', 'auto-safe');
|
||||
await setProperty('audio-swresample-o', '');
|
||||
await setProperty('audio-normalize-downmix', 'no');
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
// ignore: no-empty-block - base no-op, overridden by platform subclasses
|
||||
Future<void> setLogLevel(String level) async {}
|
||||
|
||||
@@ -288,7 +288,7 @@ class PlayerNative extends PlayerBase {
|
||||
await _applyPassthrough(false);
|
||||
}
|
||||
await setProperty('speed', rate.toString());
|
||||
if (_passthroughRequested && !_passthroughActive && rate == 1.0) {
|
||||
if (_passthroughRequested && !_passthroughActive && rate == 1.0 && !_downmixEnabled) {
|
||||
await _applyPassthrough(true);
|
||||
}
|
||||
}
|
||||
@@ -364,6 +364,7 @@ class PlayerNative extends PlayerBase {
|
||||
bool _passthroughRequested = false;
|
||||
bool _passthroughActive = false;
|
||||
bool _normalizationRequested = false;
|
||||
bool _downmixEnabled = false;
|
||||
double _currentRate = 1.0;
|
||||
|
||||
@override
|
||||
@@ -377,8 +378,9 @@ class PlayerNative extends PlayerBase {
|
||||
@override
|
||||
Future<void> setAudioPassthrough(bool enabled) async {
|
||||
_passthroughRequested = enabled;
|
||||
// Deferred until the rate returns to 1.0 (see setRate).
|
||||
if (enabled && _currentRate != 1.0) return;
|
||||
// Deferred until the rate returns to 1.0 (see setRate) and the stereo
|
||||
// downmix ends (see setAudioDownmix).
|
||||
if (enabled && (_currentRate != 1.0 || _downmixEnabled)) return;
|
||||
await _applyPassthrough(enabled);
|
||||
}
|
||||
|
||||
@@ -408,6 +410,20 @@ class PlayerNative extends PlayerBase {
|
||||
await super.setAudioNormalization(enabled);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> setAudioDownmix({required bool enabled, required int centerBoostDb, required bool normalize}) async {
|
||||
_downmixEnabled = enabled;
|
||||
// spdif bypasses the filter chain entirely; passthrough yields while a
|
||||
// stereo downmix is forced and returns when it is disabled.
|
||||
if (enabled && _passthroughActive) {
|
||||
await _applyPassthrough(false);
|
||||
}
|
||||
await super.setAudioDownmix(enabled: enabled, centerBoostDb: centerBoostDb, normalize: normalize);
|
||||
if (!enabled && _passthroughRequested && !_passthroughActive && _currentRate == 1.0) {
|
||||
await _applyPassthrough(true);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> updateFrame() async {
|
||||
if (disposed || !initialized) return;
|
||||
|
||||
@@ -56,10 +56,12 @@ class _PlaybackSettingsScreenState extends State<PlaybackSettingsScreen> {
|
||||
SettingsService.matchRefreshRate,
|
||||
SettingsService.matchDynamicRange,
|
||||
SettingsService.matchContentFrameRate,
|
||||
SettingsService.audioDownmix,
|
||||
],
|
||||
builder: (context) {
|
||||
final svc = SettingsService.instance;
|
||||
final exoActive = Platform.isAndroid && svc.read(SettingsService.useExoPlayer);
|
||||
final downmixOn = svc.read(SettingsService.audioDownmix);
|
||||
final showDisplaySwitchDelay =
|
||||
PlatformDetector.isAppleTV() ||
|
||||
(Platform.isWindows &&
|
||||
@@ -82,6 +84,9 @@ class _PlaybackSettingsScreenState extends State<PlaybackSettingsScreen> {
|
||||
if (showDisplaySwitchDelay) _displaySwitchDelayTile(),
|
||||
if (exoActive) _tunneledPlaybackTile(),
|
||||
if (PlatformDetector.supportsAudioPassthrough()) _audioPassthroughTile(),
|
||||
_audioDownmixTile(),
|
||||
if (downmixOn) _downmixCenterBoostTile(),
|
||||
if (downmixOn) _downmixNormalizeTile(),
|
||||
if (PlatformDetector.isAppleTV()) _atmosDiagnosticsTile(),
|
||||
if (exoActive) _dvConversionModeTile(),
|
||||
_bufferSizeTile(),
|
||||
@@ -332,6 +337,31 @@ class _PlaybackSettingsScreenState extends State<PlaybackSettingsScreen> {
|
||||
: t.settings.audioPassthroughDescription,
|
||||
);
|
||||
|
||||
Widget _audioDownmixTile() => SettingSwitchTile(
|
||||
pref: SettingsService.audioDownmix,
|
||||
icon: Symbols.headphones_rounded,
|
||||
title: t.settings.audioDownmix,
|
||||
subtitle: t.settings.audioDownmixDescription,
|
||||
);
|
||||
|
||||
Widget _downmixCenterBoostTile() => SettingNumberTile(
|
||||
pref: SettingsService.downmixCenterBoost,
|
||||
icon: Symbols.record_voice_over_rounded,
|
||||
title: t.settings.downmixCenterBoost,
|
||||
subtitleBuilder: (v) => t.settings.downmixCenterBoostValue(db: v.toString()),
|
||||
labelText: t.settings.downmixCenterBoostLabel,
|
||||
suffixText: t.settings.downmixCenterBoostShort,
|
||||
min: 0,
|
||||
max: 12,
|
||||
);
|
||||
|
||||
Widget _downmixNormalizeTile() => SettingSwitchTile(
|
||||
pref: SettingsService.audioDownmixNormalize,
|
||||
icon: Symbols.graphic_eq_rounded,
|
||||
title: t.settings.audioDownmixNormalize,
|
||||
subtitle: t.settings.audioDownmixNormalizeDescription,
|
||||
);
|
||||
|
||||
Widget _atmosDiagnosticsTile() => SettingNavigationTile(
|
||||
icon: Symbols.spatial_audio_rounded,
|
||||
title: t.settings.atmosDiagnostics,
|
||||
|
||||
@@ -843,6 +843,16 @@ class VideoPlayerScreenState extends State<VideoPlayerScreen> with WidgetsBindin
|
||||
await currentPlayer.setAudioNormalization(true);
|
||||
}
|
||||
|
||||
// After the passthrough apply: downmix wins on both backends (mpv
|
||||
// clears audio-spdif, ExoPlayer force-decodes encoded audio).
|
||||
if (settingsService.read(SettingsService.audioDownmix)) {
|
||||
await currentPlayer.setAudioDownmix(
|
||||
enabled: true,
|
||||
centerBoostDb: settingsService.read(SettingsService.downmixCenterBoost),
|
||||
normalize: settingsService.read(SettingsService.audioDownmixNormalize),
|
||||
);
|
||||
}
|
||||
|
||||
if (PlatformDetector.isDesktopOS()) {
|
||||
await currentPlayer.setProperty('screenshot-directory', '~/Pictures');
|
||||
}
|
||||
|
||||
@@ -444,6 +444,8 @@ class SettingsService extends BaseSharedPreferencesService {
|
||||
static const ambientLighting = BoolPref('ambient_lighting');
|
||||
static const audioPassthrough = _AudioPassthroughPref();
|
||||
static const audioNormalization = BoolPref('audio_normalization');
|
||||
static const audioDownmix = BoolPref('audio_downmix');
|
||||
static const audioDownmixNormalize = BoolPref('audio_downmix_normalize', defaultValue: true);
|
||||
static const liveTvDefaultFavorites = BoolPref('live_tv_default_favorites');
|
||||
static const matchRefreshRate = BoolPref('match_refresh_rate');
|
||||
static const matchDynamicRange = BoolPref('match_dynamic_range');
|
||||
@@ -458,6 +460,7 @@ class SettingsService extends BaseSharedPreferencesService {
|
||||
);
|
||||
|
||||
static final maxVolume = IntPref('max_volume', defaultValue: 100, transform: (v) => v.clamp(100, 300));
|
||||
static final downmixCenterBoost = IntPref('downmix_center_boost', transform: (v) => v.clamp(0, 12));
|
||||
static final subtitlePosition = IntPref('subtitle_position', defaultValue: 100, transform: (v) => v.clamp(0, 100));
|
||||
static final defaultPlaybackSpeed = DoublePref(
|
||||
'default_playback_speed',
|
||||
@@ -845,6 +848,9 @@ class SettingsService extends BaseSharedPreferencesService {
|
||||
ambientLighting,
|
||||
audioPassthrough,
|
||||
audioNormalization,
|
||||
audioDownmix,
|
||||
audioDownmixNormalize,
|
||||
downmixCenterBoost,
|
||||
themeMode,
|
||||
keyboardShortcuts,
|
||||
keyboardHotkeys,
|
||||
|
||||
@@ -564,6 +564,18 @@ class _VideoSettingsSheetState extends State<VideoSettingsSheet> {
|
||||
onAfterWrite: widget.player.setAudioNormalization,
|
||||
),
|
||||
|
||||
// Stereo Downmix
|
||||
_SettingsToggleItem(
|
||||
pref: SettingsService.audioDownmix,
|
||||
icon: Symbols.headphones_rounded,
|
||||
title: t.videoSettings.audioDownmix,
|
||||
onAfterWrite: (enabled) => widget.player.setAudioDownmix(
|
||||
enabled: enabled,
|
||||
centerBoostDb: SettingsService.instance.read(SettingsService.downmixCenterBoost),
|
||||
normalize: SettingsService.instance.read(SettingsService.audioDownmixNormalize),
|
||||
),
|
||||
),
|
||||
|
||||
// Shader Preset (MPV only)
|
||||
if (widget.shaderService != null && widget.shaderService!.isSupported)
|
||||
_SettingsMenuItem(
|
||||
|
||||
Reference in New Issue
Block a user