Compare commits

...

32 Commits

Author SHA1 Message Date
Cameron Gutman aa41bf8d97 Version 10.11 2022-12-04 13:54:37 -06:00
Cameron Gutman fba9a125bf Merge remote-tracking branch 'origin/weblate' 2022-12-01 18:40:24 -06:00
jonathanmasseurca 27312bd146 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (228 of 228 strings)

Translation: Moonlight Game Streaming/moonlight-android
Translate-URL: https://hosted.weblate.org/projects/moonlight/moonlight-android/pt_BR/
2022-12-02 01:39:46 +01:00
Jen Kung-chih 8f0c267ab8 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (228 of 228 strings)

Translation: Moonlight Game Streaming/moonlight-android
Translate-URL: https://hosted.weblate.org/projects/moonlight/moonlight-android/zh_Hant/
2022-12-02 01:39:46 +01:00
Zaraza225 a15d6a6b42 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (228 of 228 strings)

Translation: Moonlight Game Streaming/moonlight-android
Translate-URL: https://hosted.weblate.org/projects/moonlight/moonlight-android/uk/
2022-12-02 01:39:45 +01:00
jonathanmasseurca 8f9061b250 Translated using Weblate (French)
Currently translated at 100.0% (228 of 228 strings)

Translation: Moonlight Game Streaming/moonlight-android
Translate-URL: https://hosted.weblate.org/projects/moonlight/moonlight-android/fr/
2022-12-02 01:39:45 +01:00
Cameron Gutman ec57499e08 Handle escaping and unescaping IPv6 addresses in AddressTuple 2022-12-01 18:26:40 -06:00
Cameron Gutman 381598c5b6 Fix handling of IPv6 literals when adding a PC
Fixes #1152
2022-12-01 18:26:40 -06:00
Cameron Gutman 452d020da5 Merge remote-tracking branch 'origin/weblate' 2022-11-30 21:07:34 -06:00
Eric b5f875c2e5 Translated using Weblate (Chinese (Simplified))
Currently translated at 99.1% (226 of 228 strings)

Translation: Moonlight Game Streaming/moonlight-android
Translate-URL: https://hosted.weblate.org/projects/moonlight/moonlight-android/zh_Hans/
2022-12-01 04:06:55 +01:00
Brandon Goldberg a31daeda96 Translated using Weblate (Spanish)
Currently translated at 100.0% (228 of 228 strings)

Translation: Moonlight Game Streaming/moonlight-android
Translate-URL: https://hosted.weblate.org/projects/moonlight/moonlight-android/es/
2022-12-01 04:06:55 +01:00
Cameron Gutman 437f52f53a Tweak full range option text 2022-11-30 00:16:05 -06:00
Cameron Gutman 33f0f7ecf0 Use Ctrl+Alt+Shift+Z as the unbind toggle to match other Moonlight clients 2022-11-29 23:28:13 -06:00
Cameron Gutman 6777e79e70 Fix inverted mouse capture bug 2022-11-29 23:25:39 -06:00
Cameron Gutman 16d1e6181b Update moonlight-common-c 2022-11-29 19:16:33 -06:00
Cameron Gutman a6c8db6c2c Introduce full range color option 2022-11-29 19:10:19 -06:00
Cameron Gutman 24aa0fecbe Revise HEVC option text 2022-11-29 19:05:30 -06:00
Cameron Gutman 1a776b1990 Add Czech translation to language list
Fixes #1147
2022-11-29 18:42:28 -06:00
Cameron Gutman 27df265c81 Merge remote-tracking branch 'origin/weblate' 2022-11-29 18:37:27 -06:00
Zaraza225 84c0372719 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (226 of 226 strings)

Translation: Moonlight Game Streaming/moonlight-android
Translate-URL: https://hosted.weblate.org/projects/moonlight/moonlight-android/uk/
2022-11-23 21:47:27 +01:00
Cameron Gutman 3879e57c4c Track network changes to invalidate PC online state appropriately 2022-11-21 23:15:19 -06:00
Cameron Gutman dcc3dcdaba Only match ports if the PC is online 2022-11-21 23:00:51 -06:00
Loïc Hesling d166635c7b Translated using Weblate (French)
Currently translated at 100.0% (226 of 226 strings)

Translation: Moonlight Game Streaming/moonlight-android
Translate-URL: https://hosted.weblate.org/projects/moonlight/moonlight-android/fr/
2022-11-17 12:47:40 +01:00
Cameron Gutman 33d484b7d1 Remove specific RFI opt-in for Sabrina since it's supported out of the box in Android 12 2022-11-13 19:10:35 -06:00
luten145 26bff28e4d Added MetaKey(WindowKey) Packet
Allows you to use Windows key combinations.

ex) Win+Tab , Win+D
2022-11-13 17:15:22 -06:00
Cameron Gutman 56eddff8d6 Default to Rec 709 on modern devices
Fixes #1138
Closes #1143
2022-11-13 13:47:41 -06:00
Cameron Gutman 37b9133eb6 Correct media performance class check
Media performance class is 12+ even though it has values for 11+
2022-11-13 13:27:43 -06:00
Cameron Gutman 4a64967b1f Ungrab meta key capture when toggling input capture 2022-11-13 13:19:23 -06:00
Translator-3000 23152b1264 Translated using Weblate (Italian)
Currently translated at 100.0% (226 of 226 strings)

Translation: Moonlight Game Streaming/moonlight-android
Translate-URL: https://hosted.weblate.org/projects/moonlight/moonlight-android/it/
2022-11-13 13:50:24 +01:00
Dominik Chrástecký c11338039f Translated using Weblate (Czech)
Currently translated at 100.0% (226 of 226 strings)

Translation: Moonlight Game Streaming/moonlight-android
Translate-URL: https://hosted.weblate.org/projects/moonlight/moonlight-android/cs/
2022-11-09 16:47:44 +01:00
Jen Kung-chih e712669d32 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (226 of 226 strings)

Translation: Moonlight Game Streaming/moonlight-android
Translate-URL: https://hosted.weblate.org/projects/moonlight/moonlight-android/zh_Hant/
2022-11-09 16:47:44 +01:00
Brandon Goldberg 3768ae33b7 Translated using Weblate (Spanish)
Currently translated at 100.0% (226 of 226 strings)

Translation: Moonlight Game Streaming/moonlight-android
Translate-URL: https://hosted.weblate.org/projects/moonlight/moonlight-android/es/
2022-11-09 16:47:43 +01:00
23 changed files with 513 additions and 95 deletions
+2 -2
View File
@@ -9,8 +9,8 @@ android {
minSdk 16
targetSdk 33
versionName "10.10"
versionCode = 298
versionName "10.11"
versionCode = 301
// Generate native debug symbols to allow Google Play to symbolicate our native crashes
ndk.debugSymbolLevel = 'FULL'
+29 -20
View File
@@ -1126,17 +1126,25 @@ public class Game extends Activity implements SurfaceHolder.Callback,
finish();
}
private void setInputGrabState(boolean grab) {
// Grab/ungrab the mouse cursor
if (grab) {
inputCaptureProvider.enableCapture();
}
else {
inputCaptureProvider.disableCapture();
}
// Grab/ungrab system keyboard shortcuts
setMetaKeyCaptureState(grab);
grabbedInput = grab;
}
private final Runnable toggleGrab = new Runnable() {
@Override
public void run() {
if (grabbedInput) {
inputCaptureProvider.disableCapture();
}
else {
inputCaptureProvider.enableCapture();
}
grabbedInput = !grabbedInput;
setInputGrabState(!grabbedInput);
}
};
@@ -1156,6 +1164,10 @@ public class Game extends Activity implements SurfaceHolder.Callback,
androidKeyCode == KeyEvent.KEYCODE_ALT_RIGHT) {
modifierMask = KeyboardPacket.MODIFIER_ALT;
}
else if (androidKeyCode == KeyEvent.KEYCODE_META_LEFT ||
androidKeyCode == KeyEvent.KEYCODE_META_RIGHT) {
modifierMask = KeyboardPacket.MODIFIER_META;
}
if (down) {
this.modifierFlags |= modifierMask;
@@ -1164,10 +1176,10 @@ public class Game extends Activity implements SurfaceHolder.Callback,
this.modifierFlags &= ~modifierMask;
}
// Check if Ctrl+Shift+Z is pressed
// Check if Ctrl+Alt+Shift+Z is pressed
if (androidKeyCode == KeyEvent.KEYCODE_Z &&
(modifierFlags & (KeyboardPacket.MODIFIER_CTRL | KeyboardPacket.MODIFIER_SHIFT)) ==
(KeyboardPacket.MODIFIER_CTRL | KeyboardPacket.MODIFIER_SHIFT))
(modifierFlags & (KeyboardPacket.MODIFIER_CTRL | KeyboardPacket.MODIFIER_ALT | KeyboardPacket.MODIFIER_SHIFT)) ==
(KeyboardPacket.MODIFIER_CTRL | KeyboardPacket.MODIFIER_ALT | KeyboardPacket.MODIFIER_SHIFT))
{
if (down) {
// Now that we've pressed the magic combo
@@ -1218,6 +1230,9 @@ public class Game extends Activity implements SurfaceHolder.Callback,
if (event.isAltPressed()) {
modifier |= KeyboardPacket.MODIFIER_ALT;
}
if (event.isMetaPressed()) {
modifier |= KeyboardPacket.MODIFIER_META;
}
return modifier;
}
@@ -1881,11 +1896,8 @@ public class Game extends Activity implements SurfaceHolder.Callback,
// Let the display go to sleep now
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
// Enable cursor visibility again
inputCaptureProvider.disableCapture();
// Disable meta key capture
setMetaKeyCaptureState(false);
// Ungrab input
setInputGrabState(false);
if (!displayedFailureDialog) {
displayedFailureDialog = true;
@@ -1995,16 +2007,13 @@ public class Game extends Activity implements SurfaceHolder.Callback,
h.postDelayed(new Runnable() {
@Override
public void run() {
inputCaptureProvider.enableCapture();
setInputGrabState(true);
}
}, 500);
// Keep the display on
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
// Enable meta key capture
setMetaKeyCaptureState(true);
// Update GameManager state to indicate we're in game
UiHelper.notifyStreamConnected(Game.this);
@@ -328,11 +328,28 @@ public class MediaCodecDecoderRenderer extends VideoDecoderRenderer implements C
}
public int getPreferredColorSpace() {
return MoonBridge.COLORSPACE_REC_601;
// Default to Rec 709 which is probably better supported on modern devices.
//
// We are sticking to Rec 601 on older devices unless the device has an HEVC decoder
// to avoid possible regressions (and they are < 5% of installed devices). If we have
// an HEVC decoder, we will use Rec 709 (even for H.264) since we can't choose a
// colorspace by codec (and it's probably safe to say a SoC with HEVC decoding is
// plenty modern enough to handle H.264 VUI colorspace info).
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O || hevcDecoder != null) {
return MoonBridge.COLORSPACE_REC_709;
}
else {
return MoonBridge.COLORSPACE_REC_601;
}
}
public int getPreferredColorRange() {
return MoonBridge.COLOR_RANGE_LIMITED;
if (prefs.fullRange) {
return MoonBridge.COLOR_RANGE_FULL;
}
else {
return MoonBridge.COLOR_RANGE_LIMITED;
}
}
public void notifyVideoForeground() {
@@ -1303,9 +1320,10 @@ public class MediaCodecDecoderRenderer extends VideoDecoderRenderer implements C
sps.numRefFrames = 1;
}
// GFE 2.5.11 changed the SPS to add additional extensions
// Some devices don't like these so we remove them here on old devices.
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O && sps.vuiParams != null) {
// GFE 2.5.11 changed the SPS to add additional extensions. Some devices don't like these
// so we remove them here on old devices unless these devices also support HEVC.
// See getPreferredColorSpace() for further information.
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O && hevcDecoder == null && sps.vuiParams != null) {
sps.vuiParams.videoSignalTypePresentFlag = false;
sps.vuiParams.colourDescriptionPresentFlag = false;
sps.vuiParams.chromaLocInfoPresentFlag = false;
@@ -3,7 +3,6 @@ package com.limelight.binding.video;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.lang.reflect.Field;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
@@ -78,12 +77,6 @@ public class MediaCodecHelper {
refFrameInvalidationHevcPrefixes.add("omx.exynos");
refFrameInvalidationHevcPrefixes.add("c2.exynos");
// The Chromecast with Google TV 4K works well with HEVC RFI since we also use the
// vendor.low-latency.enable option.
if (Build.DEVICE.equalsIgnoreCase("sabrina")) {
refFrameInvalidationHevcPrefixes.add("omx.amlogic");
}
// Qualcomm and NVIDIA may be added at runtime
}
@@ -184,6 +177,9 @@ public class MediaCodecHelper {
// vendor.low-latency.enable. We will still use HEVC if decoderCanMeetPerformancePointWithHevcAndNotAvc()
// determines it's the only way to meet the performance requirements.
//
// With the Android 12 update, Sabrina now uses HEVC (with RFI) based upon FEATURE_LowLatency
// support, which provides equivalent latency to H.264 now.
//
// FIXME: Should we do this for all Amlogic S905X SoCs?
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P && !Build.DEVICE.equalsIgnoreCase("sabrina")) {
whitelistedHevcDecoders.add("omx.amlogic");
@@ -715,19 +711,12 @@ public class MediaCodecHelper {
// HEVC decoder present is fast and modern enough for streaming.
//
// [5.3/H-1-1] MUST NOT drop more than 2 frames in 10 seconds (i.e less than 0.333 percent frame drop) for a 1080p 60 fps video session under load.
//
// NB: We use reflection here because this field seems to be absent on Amazon Fire OS devices
try {
Field mediaClassField = Build.VERSION.class.getDeclaredField("MEDIA_PERFORMANCE_CLASS");
int mediaClass = mediaClassField.getInt(null);
if (mediaClass >= Build.VERSION_CODES.S) {
LimeLog.info("Allowing HEVC based on media performance class: " + mediaClass);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
LimeLog.info("Media performance class: " + Build.VERSION.MEDIA_PERFORMANCE_CLASS);
if (Build.VERSION.MEDIA_PERFORMANCE_CLASS >= Build.VERSION_CODES.S) {
LimeLog.info("Allowing HEVC based on media performance class");
return true;
}
} catch (NoSuchFieldException e) {
LimeLog.info("Build.VERSION.MEDIA_PERFORMANCE_CLASS not present");
} catch (IllegalAccessException e) {
e.printStackTrace();
}
// If the decoder supports FEATURE_LowLatency, we will assume it is fast and modern enough
@@ -64,6 +64,8 @@ public class ComputerManagerService extends Service {
private boolean pollingActive = false;
private final Lock defaultNetworkLock = new ReentrantLock();
private ConnectivityManager.NetworkCallback networkCallback;
private DiscoveryService.DiscoveryBinder discoveryBinder;
private final ServiceConnection discoveryServiceConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder binder) {
@@ -553,7 +555,8 @@ public class ComputerManagerService extends Service {
// If the current address's port number matches the active address's port number, we can also assume
// the HTTPS port will also match. This assumption is currently safe because Sunshine sets all ports
// as offsets from the base HTTP port and doesn't allow custom HttpsPort responses for WAN vs LAN.
boolean portMatchesActiveAddress = details.activeAddress != null && address.port == details.activeAddress.port;
boolean portMatchesActiveAddress = details.state == ComputerDetails.State.ONLINE &&
details.activeAddress != null && address.port == details.activeAddress.port;
NvHTTP http = new NvHTTP(address, portMatchesActiveAddress ? details.httpsPort : 0, idManager.getUniqueId(), details.serverCert,
PlatformBinding.getCryptoProvider(ComputerManagerService.this));
@@ -743,10 +746,49 @@ public class ComputerManagerService extends Service {
}
releaseLocalDatabaseReference();
// Monitor for network changes to invalidate our PC state
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
networkCallback = new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
LimeLog.info("Resetting PC state for new available network");
synchronized (pollingTuples) {
for (PollingTuple tuple : pollingTuples) {
tuple.computer.state = ComputerDetails.State.UNKNOWN;
if (listener != null) {
listener.notifyComputerUpdated(tuple.computer);
}
}
}
}
@Override
public void onLost(Network network) {
LimeLog.info("Offlining PCs due to network loss");
synchronized (pollingTuples) {
for (PollingTuple tuple : pollingTuples) {
tuple.computer.state = ComputerDetails.State.OFFLINE;
if (listener != null) {
listener.notifyComputerUpdated(tuple.computer);
}
}
}
}
};
ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
connMgr.registerDefaultNetworkCallback(networkCallback);
}
}
@Override
public void onDestroy() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
connMgr.unregisterNetworkCallback(networkCallback);
}
if (discoveryBinder != null) {
// Unbind from the discovery service
unbindService(discoveryServiceConnection);
@@ -20,6 +20,11 @@ public class ComputerDetails {
throw new IllegalArgumentException("Invalid port");
}
// If this was an escaped IPv6 address, remove the brackets
if (address.startsWith("[") && address.endsWith("]")) {
address = address.substring(1, address.length() - 1);
}
this.address = address;
this.port = port;
}
@@ -40,7 +45,14 @@ public class ComputerDetails {
}
public String toString() {
return address + ":" + port;
if (address.contains(":")) {
// IPv6
return "[" + address + "]:" + port;
}
else {
// IPv4 and hostnames
return address + ":" + port;
}
}
}
@@ -7,4 +7,5 @@ public class KeyboardPacket {
public static final byte MODIFIER_SHIFT = 0x01;
public static final byte MODIFIER_CTRL = 0x02;
public static final byte MODIFIER_ALT = 0x04;
}
public static final byte MODIFIER_META = 0x08;
}
@@ -98,8 +98,31 @@ public class AddComputerManually extends Activity {
}
}
private URI parseRawUserInputToUri(String rawUserInput) {
try {
// Try adding a scheme and parsing the remaining input.
// This handles input like 127.0.0.1:47989, [::1], [::1]:47989, and 127.0.0.1.
URI uri = new URI("moonlight://" + rawUserInput);
if (uri.getHost() != null && !uri.getHost().isEmpty()) {
return uri;
}
} catch (URISyntaxException ignored) {}
try {
// Attempt to escape the input as an IPv6 literal.
// This handles input like ::1.
URI uri = new URI("moonlight://[" + rawUserInput + "]");
if (uri.getHost() != null && !uri.getHost().isEmpty()) {
return uri;
}
} catch (URISyntaxException ignored) {}
return null;
}
private void doAddPc(String rawUserInput) throws InterruptedException {
boolean wrongSiteLocal = false;
boolean invalidInput = false;
boolean success;
int portTestResult;
@@ -109,26 +132,26 @@ public class AddComputerManually extends Activity {
try {
ComputerDetails details = new ComputerDetails();
// Use URI-style parsing for the host address input
URI uri = new URI("moonlight://" + rawUserInput);
// Check if we parsed a host address successfully
URI uri = parseRawUserInputToUri(rawUserInput);
if (uri != null && uri.getHost() != null && !uri.getHost().isEmpty()) {
String host = uri.getHost();
int port = uri.getPort();
String host = uri.getHost();
int port = uri.getPort();
// If a port was not specified, use the default
if (port == -1) {
port = NvHTTP.DEFAULT_HTTP_PORT;
}
// URI allows empty hosts, but we don't want that
if (host == null || host.isEmpty()) {
throw new URISyntaxException(rawUserInput, "Host failed to parse");
}
// If a port was not specified, use the default
if (port == -1) {
port = NvHTTP.DEFAULT_HTTP_PORT;
}
details.manualAddress = new ComputerDetails.AddressTuple(host, port);
success = managerBinder.addComputerBlocking(details);
if (!success){
wrongSiteLocal = isWrongSubnetSiteLocalAddress(host);
details.manualAddress = new ComputerDetails.AddressTuple(host, port);
success = managerBinder.addComputerBlocking(details);
if (!success){
wrongSiteLocal = isWrongSubnetSiteLocalAddress(host);
}
} else {
// Invalid user input
success = false;
invalidInput = true;
}
} catch (InterruptedException e) {
// Propagate the InterruptedException to the caller for proper handling
@@ -139,13 +162,11 @@ public class AddComputerManually extends Activity {
// https://github.com/square/okhttp/blob/okhttp_27/okhttp/src/main/java/com/squareup/okhttp/HttpUrl.java#L705
e.printStackTrace();
success = false;
} catch (URISyntaxException e) {
e.printStackTrace();
success = false;
invalidInput = true;
}
// Keep the SpinnerDialog open while testing connectivity
if (!success && !wrongSiteLocal) {
if (!success && !wrongSiteLocal && !invalidInput) {
// Run the test before dismissing the spinner because it can take a few seconds.
portTestResult = MoonBridge.testClientConnectivity(ServerHelper.CONNECTION_TEST_SERVER, 443,
MoonBridge.ML_PORT_FLAG_TCP_47984 | MoonBridge.ML_PORT_FLAG_TCP_47989);
@@ -156,7 +177,10 @@ public class AddComputerManually extends Activity {
dialog.dismiss();
if (wrongSiteLocal) {
if (invalidInput) {
Dialog.displayDialog(this, getResources().getString(R.string.conn_error_title), getResources().getString(R.string.addpc_unknown_host), false);
}
else if (wrongSiteLocal) {
Dialog.displayDialog(this, getResources().getString(R.string.conn_error_title), getResources().getString(R.string.addpc_wrong_sitelocal), false);
}
else if (!success) {
@@ -48,6 +48,7 @@ public class PreferenceConfiguration {
private static final String ABSOLUTE_MOUSE_MODE_PREF_STRING = "checkbox_absolute_mouse_mode";
private static final String ENABLE_AUDIO_FX_PREF_STRING = "checkbox_enable_audiofx";
private static final String REDUCE_REFRESH_RATE_PREF_STRING = "checkbox_reduce_refresh_rate";
private static final String FULL_RANGE_PREF_STRING = "checkbox_full_range";
static final String DEFAULT_RESOLUTION = "1280x720";
static final String DEFAULT_FPS = "60";
@@ -80,6 +81,7 @@ public class PreferenceConfiguration {
private static final boolean DEFAULT_ABSOLUTE_MOUSE_MODE = false;
private static final boolean DEFAULT_ENABLE_AUDIO_FX = false;
private static final boolean DEFAULT_REDUCE_REFRESH_RATE = false;
private static final boolean DEFAULT_FULL_RANGE = false;
public static final int FORCE_H265_ON = -1;
public static final int AUTOSELECT_H265 = 0;
@@ -124,6 +126,7 @@ public class PreferenceConfiguration {
public boolean absoluteMouseMode;
public boolean enableAudioFx;
public boolean reduceRefreshRate;
public boolean fullRange;
public static boolean isNativeResolution(int width, int height) {
// It's not a native resolution if it matches an existing resolution option
@@ -348,6 +351,7 @@ public class PreferenceConfiguration {
.remove(VIDEO_FORMAT_PREF_STRING)
.remove(ENABLE_HDR_PREF_STRING)
.remove(UNLOCK_FPS_STRING)
.remove(FULL_RANGE_PREF_STRING)
.apply();
}
@@ -505,6 +509,7 @@ public class PreferenceConfiguration {
config.absoluteMouseMode = prefs.getBoolean(ABSOLUTE_MOUSE_MODE_PREF_STRING, DEFAULT_ABSOLUTE_MOUSE_MODE);
config.enableAudioFx = prefs.getBoolean(ENABLE_AUDIO_FX_PREF_STRING, DEFAULT_ENABLE_AUDIO_FX);
config.reduceRefreshRate = prefs.getBoolean(REDUCE_REFRESH_RATE_PREF_STRING, DEFAULT_REDUCE_REFRESH_RATE);
config.fullRange = prefs.getBoolean(FULL_RANGE_PREF_STRING, DEFAULT_FULL_RANGE);
return config;
}
+250 -1
View File
@@ -1,2 +1,251 @@
<?xml version="1.0" encoding="utf-8"?>
<resources></resources>
<resources>
<string name="conn_establishing_title">Připojování</string>
<string name="conn_metered">Varování: Vaše aktivní připojení je měřené!</string>
<string name="conn_error_msg">Spouštění se nezdařilo</string>
<string name="conn_client_latency_hw">zpoždění hardwarového dekodéru:</string>
<string name="conn_terminated_title">Spojení ukončeno</string>
<string name="resolution_prefix_native_fullscreen">Nativní celá obrazovka</string>
<string name="summary_checkbox_enable_audiofx">Umožňuje fungování zvukových efektů během streamování, ale může zvýšit zpoždění zvuku</string>
<string name="early_termination_error">Na hostitelském PC se něco pokazilo při spouštění streamu.
\n
\nUjistěte se, že na hostitelském počítači neběží žádný obsah chráněný DRM. Můžete také zkusit restartovat hostitelský PC.
\n
\nPokud problém přetrvává, zkuste přeinstalovat ovladače GPU a GeForce Experience.</string>
<string name="wol_waking_pc">Probouzení PC…</string>
<string name="nettest_text_success">Vypadá to, že vaše síť Moonlight neblokuje. Pokud máte i tak potíže s připojením, zkontrolujte nastavení firewallu vašeho PC.
\n
\nPokud se pokoušíte streamovat po internetu, nainstalujte si na svůj počítač Moonlight Internet Hosting Tool a spusťte přiložený program Internet Streaming Tester pro kontrolu vašeho připojení k Internetu.</string>
<string name="error_unknown_host">Nezdařilo se zjistit hostitele</string>
<string name="nettest_text_waiting">Moonlight testuje vaše síťové připojení, aby zjistil, jestli je NVIDIA GameStream zablokován.
\n
\nTo může chvilku zabrat…</string>
<string name="nettest_title_waiting">Testování připojení k síti</string>
<string name="pairing">Párování…</string>
<string name="pair_pc_offline">Počítač je offline</string>
<string name="unpairing">Rušení párování…</string>
<string name="unpair_success">Párování úspěšně zrušeno</string>
<string name="unpair_error">Zařízení nebylo spárováno</string>
<string name="error_manager_not_running">Služba ComputerManager neběží. Vyčkejte prosím chvíli nebo restartujte aplikaci.</string>
<string name="error_pc_offline">Počítač je offline</string>
<string name="unpair_fail">Zrušení párování se nezdařilo</string>
<string name="error_404">GFE vrátilo HTTP chybu 404. Ujistěte se, že vaše PC má podporované GPU. Tato chyba může být způsobena i použitím softwaru pro vzdálenou plochu. Zkuste restartovat počítač, nebo přeinstalujte GFE.</string>
<string name="title_decoding_error">Dekodér videa spadnul</string>
<string name="error_usb_prohibited">Správce zařízení neumožňuje přístup k USB. Zkontrolujte nastavení Knoxu nebo MDM.</string>
<string name="message_decoding_error">Moonlight spadnul kvůli nekompatibilnímu video dekodéru na tomto zařízení. Ujistěte se, že je GeForce Experience na vašem PC aktualizováno na nejnovější verzi. Zkuste upravit nastavení streamování, pokud aplikace padá opakovaně.</string>
<string name="message_decoding_reset">Video dekodér vašeho zařízení při současných nastaveních streamování padá. Vaše nastavení streamování byla resetována na výchozí.</string>
<string name="video_decoder_init_failed">Nezdařilo se spustit video dekodér. Vaše zařízení nemusí podporovat zvolené rozlišení nebo snímkovou frekvenci.</string>
<string name="no_video_received_error">Od hostitele nebylo přijato žádné video.</string>
<string name="no_frame_received_error">Vaše připojení k síti není dost rychlé. Zkuste snížit datový tok videa nebo použijte rychlejší připojení.</string>
<string name="applist_menu_hide_app">Skrýt aplikaci</string>
<string name="title_add_pc">Přidat PC ručně</string>
<string name="title_audio_config_list">Konfigurace prostorového zvuku</string>
<string name="searching_pc">Hledání PC, na kterých běží GameStream...
\n
\nUjistěte se, že je GameStream povolen v záložce SHIELD v nastavení GeForce Experience.</string>
<string name="applist_menu_quit">Ukončit</string>
<string name="applist_menu_quit_and_start">Ukončit současnou hru a spustit</string>
<string name="applist_menu_cancel">Zrušit</string>
<string name="applist_menu_tv_channel">Přidat do kanálu</string>
<string name="applist_refresh_title">Seznam aplikací</string>
<string name="applist_menu_resume">Pokračovat</string>
<string name="applist_menu_details">Zobrazit detaily</string>
<string name="applist_menu_scut">Vytvořit zkratku</string>
<string name="addpc_success">Počítač přidán úspěšně</string>
<string name="applist_details_id">ID aplikace:</string>
<string name="addpc_fail">K zadanému počítači se nepodařilo připojit. Ujistěte se, že jsou ve firewallu povoleny nezbytné porty.</string>
<string name="addpc_enter_ip">Musíte zadat IP adresu</string>
<string name="title_native_res_dialog">Varování pro nativní rozlišení</string>
<string name="title_checkbox_vibrate_fallback">Emulovat podporu vibrací</string>
<string name="title_seekbar_deadzone">Upravit deadzone analogových páček</string>
<string name="check_ports_msg">Zkontrolujte svůj firewall a pravidla přesměrování pro tyto porty:</string>
<string name="conn_terminated_msg">Spojení bylo ukončeno</string>
<string name="ip_hint">IP adresa GeForce PC</string>
<string name="conn_hardware_latency">Průměrné zpoždění hardwarového dekodéru:</string>
<string name="conn_client_latency">Průměrné zpoždění při dekódování snímků:</string>
<string name="perf_overlay_netlatency">Průměrné zpoždění sítě: %1$d ms (odchylka: %2$d ms)</string>
<string name="perf_overlay_dectime">Průměrný čas pro dekódování: %1$.2f ms</string>
<string name="applist_connect_msg">Připojování k PC…</string>
<string name="title_checkbox_touchscreen_trackpad">Použít dotykový displej jako trackpad</string>
<string name="title_checkbox_multi_controller">Automatická detekce připojení herního ovladače</string>
<string name="summary_checkbox_multi_controller">Odškrtnutí této možnosti vynutí, aby byl herní ovladač vždy připojen</string>
<string name="summary_checkbox_xb1_driver">Povolí zabudovaný USB ovladač pro zařízení bez nativní podpory pro Xbox ovladač</string>
<string name="summary_checkbox_vibrate_fallback">Rozvibruje vaše zařízení pro emulaci vibrací ovladače, pokud je váš herní ovladač nepodporuje</string>
<string name="suffix_seekbar_deadzone">%</string>
<string name="summary_seekbar_deadzone">Poznámka: Některé hry mohou vynutit větší deadzone, než jaká je nastavena v Moonlightu.</string>
<string name="title_checkbox_xb1_driver">Xbox 360/One USB gamepad ovladač</string>
<string name="title_checkbox_usb_bind_all">Vynutit nativní podporu herního ovladače Xbox</string>
<string name="summary_checkbox_mouse_emulation">Dlouhým podržením tlačítka Start přepnete herní ovladač do režimu myši</string>
<string name="summary_checkbox_usb_bind_all">Použít USB ovladač Moonlightu pro všechny podporované gamepady, i když existuje nativní podpora pro Xbox ovladač</string>
<string name="title_checkbox_mouse_emulation">Emulace myši pomocí herního ovladače</string>
<string name="title_checkbox_flip_face_buttons">Přehodit tlačítka A/B, X/Y</string>
<string name="title_checkbox_absolute_mouse_mode">Režim myši pro vzdálenou plochu</string>
<string name="summary_checkbox_absolute_mouse_mode">Tímto zapnete přirozenější zrychlování myši pro použití ve vzdálené ploše, ale možnost je nekompatibilní se spoustou her.</string>
<string name="summary_osc_opacity">Zmenšete či zvětšete průhlednost ovladače na obrazovce</string>
<string name="summary_only_l3r3">Skryje veškerá virtuální tlačítka kromě L3 a R3</string>
<string name="category_ui_settings">Nastavení zobrazení</string>
<string name="suffix_osc_opacity">%</string>
<string name="title_setup_guide">Průvodce nastavením</string>
<string name="title_checkbox_disable_warnings">Zakázat varovací zprávy</string>
<string name="category_help">Nápověda</string>
<string name="summary_checkbox_disable_warnings">Zakáže varování o pomalém připojení během streamování</string>
<string name="title_disable_frame_drop">Nezahazovat snímky</string>
<string name="title_enable_perf_overlay">Zobrazit během streamování informace o výkonu</string>
<string name="summary_enable_perf_overlay">Zobrazit realtime informace o výkonu streamu během streamování</string>
<string name="resolution_4k">4K</string>
<string name="fps_30">30 FPS</string>
<string name="title_troubleshooting">Průvodce řešením problémů</string>
<string name="summary_troubleshooting">Zobrazit tipy pro diagnózu a opravu běžných problémů se streamováním</string>
<string name="resolution_720p">720p</string>
<string name="resolution_1080p">1080p</string>
<string name="resolution_1440p">1440p</string>
<string name="videoformat_hevcauto">Automaticky</string>
<string name="audioconf_71surround">7.1 prostorový zvuk</string>
<string name="pacing_balanced">Vyvážené</string>
<string name="pacing_smoothness">Preferovat plynulejší video (může výrazně zvýšit zpoždění)</string>
<string name="resolution_prefix_native_landscape">(na šířku)</string>
<string name="resolution_prefix_native_portrait">(na výšku)</string>
<string name="category_audio_settings">Nastavení zvuku</string>
<string name="title_checkbox_enable_audiofx">Povolit podporu systémového ekvalizéru</string>
<string name="category_input_settings">Nastavení vstupu</string>
<string name="summary_setup_guide">Zobrazit instrukce k nastavení vašeho herního PC pro streamování</string>
<string name="dialog_title_osc_opacity">Změnit průhlednost</string>
<string name="fps_60">60 FPS</string>
<string name="fps_90">90 FPS</string>
<string name="fps_120">120 FPS</string>
<string name="audioconf_stereo">Stereo</string>
<string name="audioconf_51surround">5.1 prostorový zvuk</string>
<string name="help_loading_msg">Načítání stránky s nápovědou…</string>
<string name="pcview_menu_header_online">Online</string>
<string name="pcview_menu_header_offline">Offline</string>
<string name="pcview_menu_header_unknown">Obnovování</string>
<string name="pcview_menu_app_list">Zobrazit všechny aplikace</string>
<string name="pcview_menu_pair_pc">Spárovat s PC</string>
<string name="pcview_menu_unpair_pc">Zrušit párování</string>
<string name="pcview_menu_send_wol">Poslat Wake-On-LAN požadavek</string>
<string name="pcview_menu_delete_pc">Smazat PC</string>
<string name="pcview_menu_test_network">Otestovat připojení k síti</string>
<string name="pcview_menu_details">Zobrazit detaily</string>
<string name="nettest_title_done">Test sítě dokončen</string>
<string name="nettest_text_inconclusive">Test sítě nemohl být proveden, protože se nezdařilo připoojení k žádným z testovacíh serverů Moonlight. Zkontrolujte své připojení k Internetu, nebo to zkuste znovu později.</string>
<string name="nettest_text_failure">Současná síť vašeho počítače nejspíš blokuje Moonlight. Streamování přes Internet nemusí během připojení k této síti fungovat.
\n
\nNásledující porty byly zablokovány:
\n</string>
<string name="nettest_text_blocked">Vaše současné připojení k síti blokuje Moonlight. Streamování přes Internet nemusí fungovat, dokud jste připojeni k této síti.</string>
<string name="pair_pc_ingame">Na počítači momentálně běží hra. Před párováním musíte hru zavřít.</string>
<string name="pair_pairing_title">Párování</string>
<string name="pair_pairing_msg">Vložte prosím následující PIN na cílovém PC:</string>
<string name="pair_incorrect_pin">Nesprávný PIN</string>
<string name="pair_fail">Párování selhalo</string>
<string name="pair_already_in_progress">Párování již probíhá</string>
<string name="wol_pc_online">Počítač je online</string>
<string name="wol_no_mac">Nezdařilo se probudit PC, protože GFE nezaslalo MAC adresu</string>
<string name="title_decoding_reset">Reset nastavení videa</string>
<string name="unable_to_pin_shortcut">Váš současný launcher neumožňuje vytváření zástupců.</string>
<string name="conn_establishing_msg">Připojování</string>
<string name="conn_starting">Spouštění</string>
<string name="conn_error_title">Chyba připojení</string>
<string name="frame_conversion_error">Hostitelský počítač hlásí fatální chybu enkódování videa.
\n
\nZkuste vypnout HDR, změňte rozlišení streamu nebo rozlišení displeje hostitelského PC.</string>
<string name="yes">Ano</string>
<string name="no">Ne</string>
<string name="lost_connection">Připojení k PC bylo ztraceno</string>
<string name="title_details">Detaily</string>
<string name="perf_overlay_renderingfps">Vykreslovací snímková frekvence: %1$.2f FPS</string>
<string name="perf_overlay_netdrops">Snímky zahozeny vašim připojením: %1$.2f%%</string>
<string name="applist_refresh_msg">Obnovování aplikací…</string>
<string name="applist_refresh_error_title">Chyba</string>
<string name="applist_refresh_error_msg">Nezdařilo se získat seznam aplikací</string>
<string name="applist_quit_app">Ukončování</string>
<string name="applist_quit_success">Úspěšně ukončeno</string>
<string name="applist_quit_fail">Ukončení se nezdařilo</string>
<string name="applist_quit_confirmation">Určitě chcete ukončit běžící aplikaci\? Neuložená data budou ztracena.</string>
<string name="msg_add_pc">Připojování k PC…</string>
<string name="addpc_unknown_host">Nezdařilo se připojit k adrese PC. Ujistěte se, že v adrese není překlep.</string>
<string name="addpc_wrong_sitelocal">Tahle adresa nevypadá správně. Musíte zadat veřejnou IP vašeho routeru, pokud chcete streamovat přes Internet.</string>
<string name="category_basic_settings">Základní nastavení</string>
<string name="title_resolution_list">Rozlišení videa</string>
<string name="summary_resolution_list">Zvyšte přo zlepšení ostrosti obrazu. Snižte pro lepší výkon na levnějších zařízeních nebo pomalejších sítích.</string>
<string name="summary_audio_config_list">Povolit 5.1 nebo 7.1 prostorový zvuk pro systémy domácího kina</string>
<string name="summary_checkbox_touchscreen_trackpad">Pokud je povoleno, dotykový displej funguje jako trackpad. Pokud je zakázáno, dotykový displej ovládá kurzor myši přímo.</string>
<string name="title_reset_osc">Vymazat uložené rozložení ovladače na obrazovce</string>
<string name="summary_reset_osc">Resetuje všechna nastavení ovladače na obrazovce na jejich výchozí velikost a pozici</string>
<string name="title_osc_opacity">Změnit průhlednost ovladače na obrazovce</string>
<string name="category_advanced_settings">Pokročilá nastavení</string>
<string name="title_unlock_fps">Odemknout všechny možné snímkové frekvence</string>
<string name="title_checkbox_reduce_refresh_rate">Povolit snížení obnovovací frekvence</string>
<string name="summary_checkbox_reduce_refresh_rate">Menší obnovovací frekvence displeje může šetřit energii výměnou za zvýšení zpoždění videa</string>
<string name="title_checkbox_mouse_nav_buttons">Povolit tlačítka myši zpět a vpřed</string>
<string name="summary_checkbox_mouse_nav_buttons">Povolení této možnosti může na některých pochybných zařízeních rozbít klikání pravým tlačítkem</string>
<string name="summary_checkbox_flip_face_buttons">Přehodí tlačítka A/B a X/Y na herním ovladači a instrukcích na obrazovce</string>
<string name="toast_reset_osc_success">Ovladač na obrazovce resetován</string>
<string name="dialog_title_reset_osc">Reset rozložení</string>
<string name="dialog_text_reset_osc">Jste si jisti, že chcete smazat vaše uložené rozložení ovladače\?</string>
<string name="title_checkbox_enable_pip">Povolit sledovací rezim obraz-v-obraze</string>
<string name="summary_checkbox_enable_sops">Povolit GFE měnit herní nastavení pro optimální streamování</string>
<string name="title_checkbox_host_audio">Přehrávat zvuk na PC</string>
<string name="summary_checkbox_host_audio">Přehraje zvuk z počítače a tohoto zařízení</string>
<string name="summary_unlock_fps">Streamování v 90 nebo 120 FPS může snížit zpoždění na dražších zařízeních, ale může způsobit zasekávání nebo nestabilitu na zařízeních, které je nepodporují</string>
<string name="title_enable_post_stream_toast">Zobrazit informace o zpoždění po streamování</string>
<string name="summary_enable_post_stream_toast">Zobrazit informace o zpoždění po skončení streamování</string>
<string name="title_privacy_policy">Zásady ochrany osobních údajů</string>
<string name="summary_privacy_policy">Zobrazit zásady ochrany osobních údajů Moonlightu</string>
<string name="resolution_360p">360p</string>
<string name="resolution_480p">480p</string>
<string name="pacing_balanced_alt">Vyvážené s limitem FPS</string>
<string name="scut_deleted_pc">PC smazán</string>
<string name="scut_not_paired">PC nespárován</string>
<string name="scut_pc_not_found">PC nenalezen</string>
<string name="scut_invalid_uuid">Zadaný počítač není platný</string>
<string name="scut_invalid_app_id">Zadaná aplikace není platná</string>
<string name="help_loading_title">Zobrazení nápovědy</string>
<string name="wol_waking_msg">Může trvat pár sekund, než se váš počítač probudí. Pokud se tak nestane, ujistěte se, že máte správně nastaveno Wake-On-LAN.</string>
<string name="wol_fail">Nezdařilo se odeslat Wake-On-LAN pakety</string>
<string name="help">Nápověda</string>
<string name="delete_pc_msg">Určitě chcete smazat tento PC\?</string>
<string name="slow_connection_msg">Pomalé připojení k PC
\nSnižte datový tok</string>
<string name="poor_connection_msg">Špatné připojení k PC</string>
<string name="perf_overlay_streamdetails">Video stream: %1$s %2$.2f FPS</string>
<string name="perf_overlay_decoder">Dekodér: %1$s</string>
<string name="perf_overlay_incomingfps">Příchozí snímková frekvence po síti: %1$.2f FPS</string>
<string name="text_native_res_dialog">GeForce Experience oficiálně nepodporuje nativní rozlišení a proto nenastaví rozlišení displeje vašeho hostitelského PC. Musíte jej nastavit ručně ve hře.
\n
\nPokud v NVIDIA Control Panelu vytvoříte vlastní rozlišení pro vaše zařízení, prosím ujistěte se, že jste si přečetli a že chápete varování od NVIDIE ohledně možného poškození monitoru, nestability PC a dalších možných problémů.
\n
\nNejsme zodpovědni za žádné problémy, které vzniknou používáním vlastního rozlišení na vašem PC.
\n
\nA nakonec, vaše zařízení nebo hostitelský počítač nemusí podporovat streamování v nativním rozlišení. Pokud vám to nefunguje, bohužel se s tím nedá nic dělat.</string>
<string name="title_fps_list">Snímková frekvence videa</string>
<string name="summary_fps_list">Zvyšte pro plynulejší video stream. Snižte pro lepší výkon na levnějších zařízeních.</string>
<string name="title_seekbar_bitrate">Datový tok videa</string>
<string name="summary_seekbar_bitrate">Zvyšte pro lepší kvalitu obrazu. Snižte pro zlepšení výkonu u pomalých připojení.</string>
<string name="suffix_seekbar_bitrate_mbps">Mbps</string>
<string name="title_checkbox_stretch_video">Natáhnout video na celou obrazovku</string>
<string name="resolution_prefix_native">Nativní</string>
<string name="category_on_screen_controls_settings">Nastavení ovládání na obrazovce</string>
<string name="title_checkbox_show_onscreen_controls">Zobrazovat ovládání na obrazovce</string>
<string name="summary_checkbox_show_onscreen_controls">Zobrazit překrytí virtuálního ovladače na dotykovém displeji</string>
<string name="title_checkbox_vibrate_osc">Povolit vibrace</string>
<string name="summary_checkbox_vibrate_osc">Vibruje vašim zařízením pro emulaci vibrací ovladače při použití ovladače na obrazovce</string>
<string name="title_only_l3r3">Zobrazit pouze L3 a R3</string>
<string name="summary_checkbox_enable_pip">Umožní, aby byl stream sledován (ale ne ovládá) během multitaskingu</string>
<string name="title_language_list">Jazyk</string>
<string name="summary_language_list">Jazyk, který bude Moonlight používat</string>
<string name="title_checkbox_small_icon_mode">Použít malý box art</string>
<string name="summary_checkbox_small_icon_mode">Díky menšímu box artu v seznamu aplikací uvidíte na obrazovce více aplikací naráz</string>
<string name="category_host_settings">Nastavení hostitele</string>
<string name="title_checkbox_enable_sops">Optimalizovat herní nastavení</string>
<string name="summary_disable_frame_drop">Může na některých zařízeních snížit mikrozádrhy, ale může zvýšit zpoždění</string>
<string name="title_video_format">Změnit nastavení HEVC</string>
<string name="summary_video_format">HEVC sníží datový přenos, ale vyžaduje novější zařízení</string>
<string name="title_enable_hdr">Povolit HDR (experimentální)</string>
<string name="summary_enable_hdr">Streamovat v HDR, pokud jej hra a GPU počítače podporují. HDR vyžaduje GPU GTX 1000 nebo novější.</string>
<string name="videoformat_hevcalways">Vždy použít HEVC (může padat)</string>
<string name="videoformat_hevcnever">Nikdy nepoužívat HEVC</string>
<string name="title_frame_pacing">Frame pacing videa</string>
<string name="summary_frame_pacing">Zvolte, jak vyvážit zpoždění videa a jeho plynulost</string>
<string name="pacing_latency">Preferovat nejnižší zpoždění</string>
</resources>
+13 -4
View File
@@ -76,7 +76,7 @@
<string name="addpc_enter_ip">Debes introducir una dirección IP</string>
<!-- Preferences -->
<string name="category_basic_settings">Configuración básica</string>
<string name="title_resolution_list">Seleccionar resolución y FPS</string>
<string name="title_resolution_list">Seleccionar resolución</string>
<string name="summary_resolution_list">Establecer unos valores demasiado altos puede causar retraso o cierres inesperados.</string>
<string name="title_seekbar_bitrate">Seleccionar bitrate de vídeo</string>
<string name="summary_seekbar_bitrate">Usa bitrate bajo para reducir "parpadeo". Incrementa el bitrate para mayor calidad de imagen.</string>
@@ -109,8 +109,8 @@
<string name="title_video_format">Cambiar configuración HEVC</string>
<string name="summary_video_format">HEVC reduce el ancho de banda de vídeo, pero requiere un dispositivo reciente</string>
<!-- Array strings -->
<string name="videoformat_hevcauto">Usar HEVC sólo si es estable</string>
<string name="videoformat_hevcalways">Siempre usar HEVC (puede fallar)</string>
<string name="videoformat_hevcauto">Automático (Recomendado)</string>
<string name="videoformat_hevcalways">Preferir HEVC</string>
<string name="videoformat_hevcnever">Nunca usar HEVC</string>
<string name="nettest_title_done">Prueba de Red Completada</string>
<string name="scut_not_paired">PC no emparejado</string>
@@ -165,7 +165,7 @@
<string name="resolution_1440p">1440p</string>
<string name="resolution_4k">4K</string>
<string name="suffix_osc_opacity">%</string>
<string name="title_checkbox_enable_pip">Actividad modo Pantalla-en-Pantalla para observador</string>
<string name="title_checkbox_enable_pip">Activar modo Pantalla-en-Pantalla para modo espectador</string>
<string name="resolution_720p">720p</string>
<string name="fps_120">120 FPS</string>
<string name="audioconf_71surround">7.1 Sonido Envolvente</string>
@@ -256,4 +256,13 @@
<string name="fps_60">60 FPS</string>
<string name="fps_90">90 FPS</string>
<string name="title_frame_pacing">Ritmo de cuadros por segundo en video</string>
<string name="resolution_prefix_native_portrait">(Retrato)</string>
<string name="frame_conversion_error">El PC anfitrión ha reportado un error fatal en el codificador de video.
\n
\nIntenta deshabilitar el modo HDR, cambiar la resolución de la transmisión, o cambiar la resolución de pantalla del PC anfitrión.</string>
<string name="resolution_prefix_native_landscape">(Panorama)</string>
<string name="summary_checkbox_reduce_refresh_rate">Tasa de refresco menores pueden ahorrar energía a cambio de una mayor latencia de video</string>
<string name="title_checkbox_reduce_refresh_rate">Permitir reducción de la tasa de refresco</string>
<string name="title_full_range">Usar rango (0-255) de color completo</string>
<string name="summary_full_range">Esto puede causar problemas de video o bloqueos si la pantalla de tu dispositivo no puede manejar contenido de rango completo.</string>
</resources>
+7 -2
View File
@@ -228,8 +228,8 @@
<string name="audioconf_stereo">Stéréo</string>
<string name="audioconf_51surround">Son surround 5.1</string>
<string name="audioconf_71surround">Son surround 7.1</string>
<string name="videoformat_hevcauto">Automatique</string>
<string name="videoformat_hevcalways">Utilisez toujours HEVC (mais il peut planter)</string>
<string name="videoformat_hevcauto">Automatique (recommandé)</string>
<string name="videoformat_hevcalways">Préférez le HEVC</string>
<string name="videoformat_hevcnever">N\'utilisez jamais HEVC</string>
<string name="title_frame_pacing">Frame-pacing vidéo</string>
<string name="summary_frame_pacing">Spécifiez comment équilibrer latence et fluidité de la vidéo</string>
@@ -259,4 +259,9 @@
<string name="summary_checkbox_reduce_refresh_rate">Des taux de rafraîchissement d\'affichage plus bas peuvent économiser de l\'énergie au détriment d\'une latence vidéo plus importante</string>
<string name="summary_checkbox_enable_audiofx">Permet aux effets audio de fonctionner lors du streaming, mais peut augmenter la latence</string>
<string name="title_checkbox_enable_audiofx">Activer le support de l\'égalisateur système</string>
<string name="frame_conversion_error">Le PC hôte a signalé une erreur d\'encodage fatale.
\n
\nEssayez de désactiver le mode HDR, de changer la résolution du flux ou la résolution de votre PC hôte.</string>
<string name="title_full_range">Forcer la vidéo sur toute la gamme de couleurs (expérimental)</string>
<string name="summary_full_range">Ceci entraînera une perte de détails dans les zones claires et sombres si votre appareil n\'affiche pas correctement le contenu vidéo de la gamme complète de couleurs.</string>
</resources>
+9
View File
@@ -254,4 +254,13 @@
<string name="title_privacy_policy">Informativa sulla privacy</string>
<string name="summary_troubleshooting">Visualizza i suggerimenti per la diagnosi e la risoluzione dei problemi di streaming più comuni</string>
<string name="summary_privacy_policy">Visualizza l\'informativa sulla privacy di Moonlight</string>
<string name="frame_conversion_error">Il PC host ha segnalato un errore fatale di codifica video.
\n
\nProva a disabilitare la modalità HDR, modificare la risoluzione dello streaming o la risoluzione del display del tuo PC host.</string>
<string name="summary_checkbox_reduce_refresh_rate">Una minore frequenza di aggiornamento del display può risparmiare energia a scapito di una latenza video aggiuntiva</string>
<string name="resolution_prefix_native_landscape">(Panorama)</string>
<string name="resolution_prefix_native_portrait">(Ritratto)</string>
<string name="title_checkbox_enable_audiofx">Abilita il supporto per l\'equalizzatore di sistema</string>
<string name="summary_checkbox_enable_audiofx">Consente agli effetti audio di funzionare durante lo streaming, ma può aumentare la latenza audio</string>
<string name="title_checkbox_reduce_refresh_rate">Consenti riduzione della frequenza di aggiornamento</string>
</resources>
+7 -2
View File
@@ -53,8 +53,8 @@
<string name="resolution_4k">4K</string>
<string name="fps_30">30 FPS</string>
<string name="fps_60">60 FPS</string>
<string name="videoformat_hevcalways">Sempre usar HEVC (talvez crashe)</string>
<string name="videoformat_hevcauto">Automático</string>
<string name="videoformat_hevcalways">Prefira HEVC</string>
<string name="videoformat_hevcauto">Automático (recomendado)</string>
<string name="fps_120">120 FPS</string>
<string name="audioconf_stereo">Stereo</string>
<string name="audioconf_51surround">5.1 Surround</string>
@@ -245,4 +245,9 @@
<string name="resolution_prefix_native_portrait">(Retrato)</string>
<string name="title_checkbox_enable_audiofx">Habilitar sistema de suporte à equalização</string>
<string name="summary_checkbox_enable_audiofx">Permitir que efeitos de audio funcionem durante o streaming, pode acrescentar latência de audio</string>
<string name="title_full_range">Forçar vídeo de gama completa de cores (Experimental)</string>
<string name="frame_conversion_error">O PC host relatou um erro fatal de codificação de vídeo.
\n
\nTente desativar o modo HDR, alterar a resolução de streaming ou alterar a resolução do PC host.</string>
<string name="summary_full_range">Isso causará perda de detalhes em áreas claras e escuras se o seu dispositivo não exibir corretamente todo o conteúdo de vídeo em cores.</string>
</resources>
+24 -2
View File
@@ -218,8 +218,8 @@
<string name="pcview_menu_header_offline">Поза мережею</string>
<string name="pcview_menu_header_online">В мережі</string>
<!-- Array strings -->
<string name="videoformat_hevcauto">Використовувати HEVC тільки якщо безпечно</string>
<string name="videoformat_hevcalways">Завжди використовувати HEVC якщо доступно</string>
<string name="videoformat_hevcauto">Автоматичний (рекомендовано)</string>
<string name="videoformat_hevcalways">Використовувати HEVC</string>
<string name="videoformat_hevcnever">Ніколи не використовувати HEVC</string>
<string name="title_frame_pacing">Швидкість кадрів відео</string>
<string name="summary_frame_pacing">Укажіть баланс відео затримки та плавності</string>
@@ -239,4 +239,26 @@
<string name="audioconf_stereo">Стерео</string>
<string name="audioconf_51surround">5.1 Об\'ємний Звук</string>
<string name="audioconf_71surround">7.1 Об\'ємний Звук</string>
<string name="summary_checkbox_enable_audiofx">Дозволяє аудіоефектам функціонувати під час потокового передавання, але може збільшити затримку звуку</string>
<string name="title_troubleshooting">Гайд з усунення несправностей</string>
<string name="title_privacy_policy">Політика конфіденційності</string>
<string name="summary_troubleshooting">Переглянути поради щодо діагностики та усунення поширених проблем з потоковою передачею</string>
<string name="summary_checkbox_reduce_refresh_rate">Більш низька частота оновлення дисплея може заощадити енергію за рахунок деякої додаткової затримки відео</string>
<string name="summary_seekbar_deadzone">Примітка: Деякі ігри можуть встановлювати більшу мертву зону, ніж та, на яку налаштовано Moonlight.</string>
<string name="title_checkbox_absolute_mouse_mode">Режим миші віддаленого робочого столу</string>
<string name="title_setup_guide">Гайд по налаштуванню</string>
<string name="summary_setup_guide">Переглянути інструкцію, як налаштувати ігровий ПК для стрімінгу</string>
<string name="pacing_balanced_alt">Збалансований з лімітом FPS</string>
<string name="resolution_prefix_native_landscape">(Горизонтальний)</string>
<string name="resolution_prefix_native_portrait">(Портретний)</string>
<string name="title_checkbox_enable_audiofx">Увімкнення підтримки системного еквалайзера</string>
<string name="summary_checkbox_absolute_mouse_mode">Це може зробити прискорення миші більш природним під час використання віддаленого робочого столу, але воно несумісне з багатьма іграми.</string>
<string name="title_checkbox_reduce_refresh_rate">Дозволити зниження частоти оновлення</string>
<string name="category_help">Допомога</string>
<string name="summary_privacy_policy">Переглянути політику конфіденційності Moonlight</string>
<string name="frame_conversion_error">Головний комп\'ютер повідомив про фатальну помилку кодування відео.
\n
\nСпробуйте вимкнути режим HDR, змінити роздільну здатність потокового відео або змінити роздільну здатність дисплея головного комп\'ютера.</string>
<string name="title_full_range">Сила повного спектру відео (експериментальна)</string>
<string name="summary_full_range">Це може призвести до втрати деталей у світлих і темних областях, якщо пристрій не відображає належним чином весь діапазон відеоконтенту.</string>
</resources>
+2 -2
View File
@@ -222,8 +222,8 @@
<string name="audioconf_stereo">立体声</string>
<string name="audioconf_51surround">5.1环绕声</string>
<string name="audioconf_71surround">7.1环绕声</string>
<string name="videoformat_hevcauto">自动</string>
<string name="videoformat_hevcalways">强制使用HEVC(不稳定)</string>
<string name="videoformat_hevcauto">自动(推荐)</string>
<string name="videoformat_hevcalways">首选 HEVC</string>
<string name="videoformat_hevcnever">不使用HEVC</string>
<string name="title_frame_pacing">视频帧速调节</string>
<string name="resolution_360p">360p</string>
+10 -8
View File
@@ -56,7 +56,7 @@
<string name="conn_hardware_latency">硬體解碼器平均延時:</string>
<string name="conn_starting">正在啟動</string>
<string name="conn_error_title">連線錯誤</string>
<string name="conn_error_msg"> 啟動失敗 </string>
<string name="conn_error_msg">無法啟動</string>
<string name="conn_terminated_title">連線已終止</string>
<string name="conn_terminated_msg">連線已終止</string>
<!-- General strings -->
@@ -90,10 +90,10 @@
<string name="applist_refresh_title">遊戲清單</string>
<string name="applist_refresh_msg">正在重新整理…</string>
<string name="applist_refresh_error_title"> 錯誤 </string>
<string name="applist_refresh_error_msg">取得遊戲清單失敗</string>
<string name="applist_refresh_error_msg">無法取得遊戲清單</string>
<string name="applist_quit_app">正在結束</string>
<string name="applist_quit_success">結束成功</string>
<string name="applist_quit_fail">結束失敗</string>
<string name="applist_quit_fail">無法結束</string>
<string name="applist_quit_confirmation">您確定要結束執行中的遊戲?所有未儲存的資料將丟失。</string>
<string name="applist_details_id">App ID</string>
<!-- Add computer manually activity -->
@@ -109,9 +109,9 @@
<string name="title_resolution_list">視訊解析度</string>
<string name="summary_resolution_list">高解析度提升圖像清晰度。低解析度提升在低效能裝置和較慢網路中的串流體驗。</string>
<string name="title_fps_list">視訊影格速率</string>
<string name="summary_fps_list">提高影格速率以得更順暢的視訊串流,降低可在低效能裝置上得更好的串流體驗。</string>
<string name="summary_fps_list">提高影格速率以得更順暢的視訊串流,降低可在低效能裝置上得更好的串流體驗。</string>
<string name="title_seekbar_bitrate">視訊位元速率</string>
<string name="summary_seekbar_bitrate">提高位元速率以提升圖像品質,降低可在較慢的網路中得更好的串流體驗。</string>
<string name="summary_seekbar_bitrate">提高位元速率以提升圖像品質,降低可在較慢的網路中得更好的串流體驗。</string>
<string name="title_unlock_fps">解鎖所有可用影格速率</string>
<string name="summary_unlock_fps">以 90 或 120 畫面更新率串流可能會減少在高效能裝置上的網路延時,但會在不支援的裝置上造成卡頓或崩潰</string>
<string name="title_checkbox_stretch_video">將畫面延展至全螢幕</string>
@@ -197,7 +197,7 @@
\n如果問題仍然存在,請嘗試重新安裝 GPU 驅動程式和 GFE。</string>
<string name="no_frame_received_error">您的網路連線品質不佳。降低視訊位元速率設定或更換更快的連線。</string>
<string name="no_video_received_error">沒有接收到來自主機的視訊。</string>
<string name="video_decoder_init_failed">視訊解碼器初始化失敗。您的裝置可能不支援選取的解析度或影格速率。</string>
<string name="video_decoder_init_failed">無法初始化視訊解碼器,您的裝置可能不支援選取的解析度或影格速率。</string>
<string name="nettest_text_blocked">您裝置目前的網路連線封鎖了 Moonlight。連線到該網路時可能無法透過網際網路串流。</string>
<string name="nettest_text_failure">您裝置目前的網路連線似乎封鎖了 Moonlight。連線到該網路時可能無法透過網際網路串流。
\n
@@ -223,8 +223,8 @@
<string name="audioconf_stereo">立體聲</string>
<string name="audioconf_51surround">5.1 環場音效</string>
<string name="audioconf_71surround">7.1 環場音效</string>
<string name="videoformat_hevcauto">自動</string>
<string name="videoformat_hevcalways">強制使用 HEVC (可能會當機)</string>
<string name="videoformat_hevcauto">自動 (建議)</string>
<string name="videoformat_hevcalways">優先使用 HEVC</string>
<string name="videoformat_hevcnever">不使用 HEVC</string>
<string name="resolution_4k">4K</string>
<string name="fps_30">30 FPS</string>
@@ -261,4 +261,6 @@
<string name="frame_conversion_error">主機電腦回報了一個嚴重的視訊編碼錯誤。
\n
\n嘗試停用 HDR 模式,變更串流解析度,或變更您的主機電腦的顯示器解析度。</string>
<string name="title_full_range">強制全範圍視訊 (實驗性)</string>
<string name="summary_full_range">若您的裝置無法正確地顯示全範圍視訊內容,將會導致淺色區域和深色區域的細節遺失。</string>
</resources>
+2
View File
@@ -64,6 +64,7 @@
<item>Magyar</item>
<item>Ελληνικά</item>
<item>Português do Brasil</item>
<item>Čeština</item>
</string-array>
<string-array name="language_values" translatable="false">
<item>default</item>
@@ -85,6 +86,7 @@
<item>hu</item>
<item>el</item>
<item>pt-BR</item>
<item>cs</item>
</string-array>
<string-array name="video_format_names">
+4 -2
View File
@@ -229,6 +229,8 @@
<string name="summary_video_format">HEVC lowers video bandwidth requirements but requires a newer device</string>
<string name="title_enable_hdr">Enable HDR (Experimental)</string>
<string name="summary_enable_hdr">Stream HDR when the game and PC GPU support it. HDR requires a GTX 1000 series GPU or later.</string>
<string name="title_full_range">Force full range video (Experimental)</string>
<string name="summary_full_range">This will cause loss of detail in light and dark areas if your device doesn\'t properly display full range video content.</string>
<string name="title_enable_perf_overlay">Show performance stats while streaming</string>
<string name="summary_enable_perf_overlay">Display real-time stream performance information while streaming</string>
<string name="title_enable_post_stream_toast">Show latency message after streaming</string>
@@ -259,8 +261,8 @@
<string name="audioconf_51surround">5.1 Surround Sound</string>
<string name="audioconf_71surround">7.1 Surround Sound</string>
<string name="videoformat_hevcauto">Automatic</string>
<string name="videoformat_hevcalways">Always use HEVC (may crash)</string>
<string name="videoformat_hevcauto">Automatic (Recommended)</string>
<string name="videoformat_hevcalways">Prefer HEVC</string>
<string name="videoformat_hevcnever">Never use HEVC</string>
<string name="title_frame_pacing">Video frame pacing</string>
+1
View File
@@ -19,4 +19,5 @@
<locale android:name="hu"/>
<locale android:name="el"/>
<locale android:name="pt-BR"/>
<locale android:name="cs"/>
</locale-config>
+5
View File
@@ -211,6 +211,11 @@
android:title="@string/title_enable_hdr"
android:summary="@string/summary_enable_hdr"
android:defaultValue="false" />
<CheckBoxPreference
android:key="checkbox_full_range"
android:title="@string/title_full_range"
android:summary="@string/summary_full_range"
android:defaultValue="false" />
<CheckBoxPreference
android:key="checkbox_enable_perf_overlay"
android:title="@string/title_enable_perf_overlay"
@@ -0,0 +1,7 @@
- Changed the default SDR colorspace from BT.601 to BT.709
- Changed the input capture toggle shortcut from Ctrl+Shift+Z to Ctrl+Alt+Shift+Z for consistency with other clients
- Toggling input capture now properly toggles keyboard capture on Samsung devices
- PC state is now refreshed more quickly after a network change
- Fixed entering IPv6 addresses on the Add PC page
- Added an experimental option to request full range video
- Updated community contributed translations from Weblate