Compare commits

...

134 Commits

Author SHA1 Message Date
830dcfe600 Android 209 2024-01-25 14:00:23 +00:00
32587eea28 Merge yuzu-emu#12787 2024-01-25 14:00:23 +00:00
f891c1f85c Merge yuzu-emu#12786 2024-01-25 14:00:23 +00:00
95d3713228 Merge yuzu-emu#12777 2024-01-25 14:00:23 +00:00
2cde4d1383 Merge yuzu-emu#12769 2024-01-25 14:00:23 +00:00
ca388edc70 Merge yuzu-emu#12759 2024-01-25 14:00:23 +00:00
b86393edf7 Merge yuzu-emu#12749 2024-01-25 14:00:22 +00:00
77472d8d6d Merge yuzu-emu#12499 2024-01-25 14:00:22 +00:00
f3749394ac Merge pull request #12781 from goldenx86/dozen
Demote dozen to the bottom of the device list
2024-01-25 03:58:09 -03:00
807f421752 Demote Mesa dozen to the bottom of the device list 2024-01-24 23:36:14 -03:00
a76f6a2775 Merge pull request #12763 from liamwhite/fix-hbl-again
loader: also register fs process for raw exefs partition
2024-01-23 13:31:41 -05:00
ba518f6899 Merge pull request #12768 from german77/wrong_conversion
service: properly convert buffers to strings
2024-01-23 13:31:27 -05:00
fc5d76e6e2 service: properly convert buffers to strings 2024-01-23 10:24:05 -06:00
5f9a45ada9 loader: also register fs process for raw exefs partition 2024-01-23 00:01:38 -05:00
8649a80071 Merge pull request #12753 from liamwhite/why
device_memory_manager: fix ScratchBuffer indexing
2024-01-22 14:55:07 -05:00
550cadbee4 device_memory_manager: fix ScratchBuffer indexing 2024-01-22 14:07:33 -05:00
8bd10473d6 Merge pull request #12579 from FernandoS27/smmu
Core: Implement Device Mapping & GPU SMMU
2024-01-22 10:55:39 -05:00
8d708b0c79 Merge pull request #12747 from t895/homescreen-widget
android: Add to launcher button
2024-01-22 10:55:25 -05:00
beaab10c8f android: Add to launcher button 2024-01-22 08:19:20 -05:00
889c5d2705 Merge pull request #12739 from t895/debug-keystore
android: Provide debug.keystore for debug and relWithDebInfo builds
2024-01-22 04:34:17 -05:00
17b0aac809 Merge pull request #12738 from t895/lock-drawer
android: Port "Lock drawer" feature from Citra
2024-01-22 04:34:08 -05:00
399220ddbc Merge pull request #12736 from t895/verify-contents
android: Add verify contents buttons
2024-01-22 04:33:56 -05:00
59080a3d1d android: Provide debug.keystore for debug and relWithDebInfo builds
Allows devs to share debug builds with testers without uninstalling the previous build
2024-01-21 22:08:07 -05:00
3a25a217e6 android: Port "Lock drawer" feature from Citra 2024-01-21 20:47:28 -05:00
961b5586a5 frontend_common: Remove default value for installer callbacks
We never used these without callbacks and these will break without them in their current state. I could write the default value to return false always but that's unnecessary for now.
2024-01-21 19:31:26 -05:00
57ff934f0d Merge pull request #12734 from german77/enable-applet
service: hid: Implement EnableAppletForInput
2024-01-21 19:15:53 -05:00
92ce9273ee Merge pull request #12735 from german77/disable-vibration
core: hid: Allow to disable vibration
2024-01-21 19:15:46 -05:00
dd36d43ea1 android: Add options to verify installed content 2024-01-21 19:15:11 -05:00
a7a7720752 core: hid: Allow to disable vibration 2024-01-21 16:44:31 -06:00
c725f3c86c frontend_common: Move integrity verification to content_manager 2024-01-21 16:36:37 -05:00
1b984738ab service: hid: Implement EnableAppletForInput 2024-01-21 14:05:18 -06:00
a3199401f4 Merge pull request #12733 from german77/settings_services
service: set: Don't allow invalid mii author id
2024-01-21 14:08:58 -05:00
a7620a29be service: set: Don't allow invalid mii author id 2024-01-21 12:18:18 -06:00
5ac1297fa5 Merge pull request #12728 from t895/sync-translations
android: Sync translations
2024-01-21 00:38:49 -05:00
fe69105f71 android: Sync translations 2024-01-20 23:26:47 -05:00
93a3342841 Merge pull request #12720 from t895/return-to-global
android: Change "Clear" to "Use global setting" for per-game settings
2024-01-20 13:56:31 -05:00
7b3e26acc9 android: Change "Clear" to "Use global setting" for per-game settings 2024-01-20 13:37:47 -05:00
444e86d191 Merge pull request #12688 from liamwhite/wl-present-fix
renderer_vulkan: recreate swapchain when frame size changes
2024-01-20 13:36:18 -05:00
61ce0088ae Merge pull request #12724 from merryhime/fs-u8str-overloads
fs/file: Explicitly convert std::u8string to std::filesystem::path
2024-01-20 13:35:41 -05:00
b3aa3633c7 Merge pull request #12721 from t895/card-elevation
android: Use elevated card style for home setting card
2024-01-20 13:35:30 -05:00
627ba271ad Merge pull request #12719 from t895/sort-search
android: Sort recently added/played games by time
2024-01-20 13:35:14 -05:00
2faa631676 Merge pull request #12715 from t895/remove-addons
android: Add uninstall addon button
2024-01-20 13:35:03 -05:00
5838779162 Merge pull request #12660 from german77/better-vibration
service: hid: Fully implement abstract vibration
2024-01-20 13:34:54 -05:00
23fd1041c1 Merge pull request #12701 from liamwhite/flinger-layer-issues
vi: check layer state before opening or closing
2024-01-20 13:34:32 -05:00
5c398ede6f fs/file: Explicitly convert std::u8string to std::filesystem::path 2024-01-20 17:46:30 +00:00
378e4752a6 android: Use elevated card style for home setting card 2024-01-20 03:55:48 -05:00
dad48f16b7 android: Sort recently added/played games by time 2024-01-20 03:18:48 -05:00
a363fa78ef frontend_common: Add documentation for content_mananger 2024-01-19 20:54:50 -05:00
03fa91ba3c android: Add addon delete button
Required some refactoring of retrieving patches in order for the frontend to pass the right information to ContentManager for deletion.
2024-01-19 20:54:50 -05:00
d79d4d5986 android: Use callback to update progress bar dialogs 2024-01-19 17:09:36 -05:00
ccd3dd842f frontend_common: Add content manager utility functions
Creates utility functions to remove/install DLC, updates, and base game content
2024-01-19 17:09:35 -05:00
b4a8e1ef8a Merge pull request #12713 from shinra-electric/mvk-127
macOS: Bump MoltenVK to v1.2.7
2024-01-19 13:07:14 -05:00
5ea8f05ec6 Bump MoltenVK to v1.2.7 2024-01-19 17:28:53 +01:00
10535e0016 Merge pull request #12687 from german77/amiibo-lock
core: hid: Disable special features before disconnecting the controllers
2024-01-19 09:33:31 -05:00
a8c552e261 Merge pull request #12695 from anpilley/user-arguments-v2
Allow -u to accept a username string in addition to index
2024-01-19 09:33:25 -05:00
932bd98824 Merge pull request #12709 from german77/npad-disc
service: hid: Clear controller status when aruid is no longer used
2024-01-19 09:33:16 -05:00
9f376cd901 service: hid: Clear controller status when aruid is no longer used 2024-01-19 00:09:49 -06:00
a560b9f5a2 Merge pull request #12678 from german77/settings_impl
service: set: Implement stubbed functions
2024-01-18 21:18:37 -05:00
4f04bd3697 Merge pull request #12683 from german77/amiibo-dump
service: nfc: Create backup when none exist
2024-01-18 21:18:27 -05:00
97c8b49444 Merge pull request #12644 from liamwhite/vkspec-image-offset
shader_recompiler: fix Offset operand usage for non-OpImage*Gather
2024-01-18 21:18:19 -05:00
748465f5a5 device_memory_manager: use unique_lock for update 2024-01-18 21:12:30 -05:00
04867e2456 nvhost_vic: use map erase by key 2024-01-18 21:12:30 -05:00
32f623e029 nvdrv: clean up preallocation 2024-01-18 21:12:30 -05:00
b6c6534c30 nvdrv: use correct names for interface factory 2024-01-18 21:12:30 -05:00
beb438bb0b nvdrv: use static typing for SessionId, smmu Asid types 2024-01-18 21:12:30 -05:00
4b963ca8a5 Core: Invert guest memory depandancy 2024-01-18 21:12:30 -05:00
648ed55fe6 Core: Make sure GPU Dirty Managers ae shared by all processes. 2024-01-18 21:12:30 -05:00
23430e6772 Core: Eliminate core/memory dependancies. 2024-01-18 21:12:30 -05:00
0672847330 SMMU: Fix Right Shift UB. 2024-01-18 21:12:30 -05:00
a874ab0133 SMMU: Fix 8Gb layout. 2024-01-18 21:12:30 -05:00
590d9b7e1d Core: Clang format and other small issues. 2024-01-18 21:12:30 -05:00
b0bca0f8b0 SMMU: Fix software rendering and cleanup 2024-01-18 21:12:30 -05:00
d8f1ce2f76 SMMU: Add continuity tracking optimization. 2024-01-18 21:12:30 -05:00
9b11b9dce5 SMMU: Simplify and remove old code. 2024-01-18 21:12:30 -05:00
303cd31162 SMMU: Add Android compatibility 2024-01-18 21:12:30 -05:00
0adc09e0af GPU-SMMU: Estimate game leak and preallocate device region. 2024-01-18 21:12:30 -05:00
96fd1348ae GPU SMMU: Expand to 34 bits 2024-01-18 21:12:30 -05:00
bad705f245 SMMU: Fix Unregister on MultiAddress 2024-01-18 21:12:30 -05:00
34a8d0cc8e SMMU: Implement physical memory mirroring 2024-01-18 21:12:30 -05:00
0a2536a0df SMMU: Initial adaptation to video_core. 2024-01-18 21:12:30 -05:00
c85d7ccd79 SMMU: Implement backing CPU page protect/unprotect 2024-01-18 21:12:30 -05:00
7a9d1ad2f8 NVDRV: Implement sessions and initial implementation of SMMU 2024-01-18 21:12:30 -05:00
2f0418c101 Core: Initial implementation of device memory mapping 2024-01-18 21:12:30 -05:00
3092855d5a Merge pull request #12702 from german77/android-input
input_common: Add android input engine
2024-01-18 09:16:58 -05:00
72f803c366 input_common: Add android input engine 2024-01-17 22:47:56 -06:00
c87b96435d Merge pull request #12699 from t895/overlay-saving
android: Save overlay data while using emulation fragment
2024-01-17 22:56:40 -05:00
e4bbb24dcf vi: check layer state before opening or closing 2024-01-17 22:03:40 -05:00
6536d29c61 Update based on feedback 2024-01-17 18:14:05 -08:00
116f76e4b6 android: Save overlay data while using emulation fragment
This should have been fully embraced before but the items within the popup menu and the adjust controls dialog fell through. This ensures that everything related to the overlay is saved during emulation and can't be lost during a crash.
2024-01-17 20:14:25 -05:00
ce89580749 nvnflinger: ensure display abandonment considers all layers and future layers 2024-01-17 18:45:39 -05:00
dff0a7c52a Allow -u to accept a username string in addition to index, and suppress the User selector even if settings requires it to be shown for one instance only. 2024-01-17 10:31:00 -08:00
915efa4236 Merge pull request #12689 from liamwhite/remove-format
ci: remove format dep from mainline step2
2024-01-17 00:36:07 -05:00
4548e5ae1d ci: remove format dep from mainline step2 2024-01-16 22:59:20 -05:00
46c2435235 Merge pull request #12380 from flodavid/save-profile
Save configuration profile name used by players
2024-01-16 21:27:25 -06:00
e9eb017aac renderer_vulkan: recreate swapchain when frame size changes 2024-01-16 16:09:39 -05:00
0b0e9ef18d core: hid: Disable special features before disconnecting the controllers 2024-01-16 14:44:54 -06:00
7f5adf8982 service: set: Implement stubbed functions 2024-01-15 23:17:03 -06:00
89d6856090 service: set: Refractor setting service 2024-01-15 23:16:36 -06:00
2cacb9d48c service: hid: Fully implement abstract vibration 2024-01-15 23:15:40 -06:00
2c29c2b8dd Merge pull request #12686 from szepeviktor/typos3
Fix more typos
2024-01-15 23:26:08 -05:00
16abda59be Fix typos in master 2024-01-16 00:09:25 +00:00
90ab89a0b0 Merge remote-tracking branch 'origin/master' into typos3 2024-01-16 00:09:00 +00:00
6531ad56a6 Fix typos in arrays.xml 2024-01-15 23:39:45 +00:00
e8671ed04e Fix one more typo 2024-01-15 23:34:11 +00:00
2044ae6b3a Fix more typos 2024-01-15 23:26:53 +00:00
c661b95864 service: nfc: Create backup when none exist 2024-01-15 14:07:54 -06:00
c683ec2bcb Merge pull request #12681 from t895/stick-toggles
android: Fix overlay toggle ordering
2024-01-15 13:52:53 -05:00
2e4e33156e Merge pull request #12680 from t895/format-mainline
ci: Remove format step from mainline builds
2024-01-15 13:52:48 -05:00
04f4eeaca2 Merge pull request #12677 from GPUCode/whyy-modders
core: Support multiple modules per patcher
2024-01-15 13:52:38 -05:00
2e4b32204c Merge pull request #12665 from german77/proof
service: acc: Only save profiles when profiles have changed
2024-01-15 13:52:33 -05:00
34db13486a Merge pull request #12659 from liamwhite/audio-memory
audio: fetch process object from handle table
2024-01-15 13:52:01 -05:00
c6c6bb4041 Merge pull request #12652 from liamwhite/huge-pile-of-spirv-spaghetti
shader_recompiler: emulate 8-bit and 16-bit storage writes with cas loop
2024-01-15 13:51:36 -05:00
a2ffb419c9 Merge pull request #12612 from liamwhite/fs-pid
fsp-srv: use program registry for SetCurrentProcess
2024-01-15 13:51:14 -05:00
0127cec371 Merge pull request #12611 from liamwhite/resource-management-is-hard
kernel: fix resource management issues
2024-01-15 13:50:58 -05:00
db3a6075f5 Merge pull request #12610 from liamwhite/reply-and-dont-receive
server_manager: respond to session close correctly
2024-01-15 13:50:43 -05:00
8876a15227 android: Fix overlay toggle ordering 2024-01-15 12:41:49 -05:00
954eb40237 ci: Remove format step from mainline builds 2024-01-15 10:30:57 -05:00
d4acdac168 core: Support multiple modules per patcher 2024-01-15 00:46:05 +02:00
817c7c445d Merge pull request #12667 from t895/version-info
android: Show version name instead of build hash in about fragment
2024-01-13 20:23:12 -05:00
da714a362b Merge pull request #12666 from t895/ktlint-yuzu-verify
android: Move ktlintCheck to yuzu-verify
2024-01-13 20:23:02 -05:00
7b3941e5d4 android: Show version name instead of git hash in the about fragment 2024-01-13 18:12:19 -05:00
15d8a40529 android: Clean up git commands in build.gradle 2024-01-13 18:06:33 -05:00
cdeaca73c4 android: Move ktlintCheck to yuzu-verify 2024-01-13 17:41:01 -05:00
bee22540a1 service: acc: Only save profiles when profiles have changed 2024-01-13 14:28:29 -06:00
76880b84f9 loader: fix homebrew nro registration 2024-01-13 13:48:56 -05:00
2f0b57ca13 kernel: optimize page free on shutdown 2024-01-12 19:19:07 -05:00
f90a022d3a kernel: fix debugger and process list lifetime 2024-01-12 18:31:33 -05:00
f2fed21c11 kernel: fix page leak on process termination 2024-01-12 18:31:33 -05:00
d940974789 audio: fetch process object from handle table 2024-01-12 10:03:16 -05:00
2a0d707ce1 shader_recompiler: emulate 8-bit and 16-bit storage writes with cas loop 2024-01-11 16:50:59 -05:00
aae9eea532 fsp-srv: use program registry for SetCurrentProcess 2024-01-11 11:28:52 -05:00
2044a289f8 shader_recompiler: fix Offset operand usage for non-OpImage*Gather 2024-01-11 00:56:37 -05:00
63b835f822 Save profile name used
- Save the profile name in global config
- Read the profile name when reading the global config
2024-01-08 18:43:56 +01:00
200b371d13 server_manager: respond to session close correctly 2024-01-07 21:33:24 -05:00
492 changed files with 18543 additions and 8308 deletions

View File

@ -32,3 +32,6 @@ if [ ! -z "$DIFF" ]; then
echo "$DIFF"
exit 1
fi
cd src/android
./gradlew ktlintCheck

View File

@ -8,17 +8,7 @@ variables:
DisplayVersion: $[counter(variables['DisplayPrefix'], 1)]
stages:
- stage: format
displayName: 'format'
jobs:
- job: format
displayName: 'clang'
pool:
vmImage: ubuntu-latest
steps:
- template: ./templates/format-check.yml
- stage: build
dependsOn: format
displayName: 'build'
jobs:
- job: build
@ -43,7 +33,6 @@ stages:
cache: 'true'
version: $(DisplayVersion)
- stage: build_win
dependsOn: format
displayName: 'build-windows'
jobs:
- job: build

View File

@ -13,13 +13,15 @@ jobs:
format:
name: 'verify format'
runs-on: ubuntu-latest
container:
image: yuzuemu/build-environments:linux-clang-format
options: -u 1001
steps:
- uses: actions/checkout@v3
with:
submodules: false
- name: set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: 'Verify Formatting'
run: bash -ex ./.ci/scripts/format/script.sh
build:

View File

@ -155,3 +155,7 @@ License: MIT
Files: externals/gamemode/*
Copyright: Copyright 2017-2019 Feral Interactive
License: BSD-3-Clause
Files: src/android/app/debug.keystore
Copyright: 2023 yuzu Emulator Project
License: GPL-3.0-or-later

View File

@ -1,3 +1,18 @@
| Pull Request | Commit | Title | Author | Merged? |
|----|----|----|----|----|
| [12499](https://github.com/yuzu-emu/yuzu-android//pull/12499) | [`e4915fb7d`](https://github.com/yuzu-emu/yuzu-android//pull/12499/files) | Rework time services | [Kelebek1](https://github.com/Kelebek1/) | Yes |
| [12749](https://github.com/yuzu-emu/yuzu-android//pull/12749) | [`e3171486d`](https://github.com/yuzu-emu/yuzu-android//pull/12749/files) | general: workarounds for SMMU syncing issues | [liamwhite](https://github.com/liamwhite/) | Yes |
| [12759](https://github.com/yuzu-emu/yuzu-android//pull/12759) | [`a120f8ff4`](https://github.com/yuzu-emu/yuzu-android//pull/12759/files) | core: miscellaneous fixes | [liamwhite](https://github.com/liamwhite/) | Yes |
| [12769](https://github.com/yuzu-emu/yuzu-android//pull/12769) | [`ad4622da2`](https://github.com/yuzu-emu/yuzu-android//pull/12769/files) | core: hid: Reduce controller requests | [german77](https://github.com/german77/) | Yes |
| [12777](https://github.com/yuzu-emu/yuzu-android//pull/12777) | [`fb8c0f85f`](https://github.com/yuzu-emu/yuzu-android//pull/12777/files) | android: Add firmware decryption warning | [t895](https://github.com/t895/) | Yes |
| [12786](https://github.com/yuzu-emu/yuzu-android//pull/12786) | [`5a4dd4ba8`](https://github.com/yuzu-emu/yuzu-android//pull/12786/files) | android: Show driver vendor in FPS overlay | [t895](https://github.com/t895/) | Yes |
| [12787](https://github.com/yuzu-emu/yuzu-android//pull/12787) | [`7b01454d5`](https://github.com/yuzu-emu/yuzu-android//pull/12787/files) | android: Only compare game contents for GameAdapter | [t895](https://github.com/t895/) | Yes |
End of merge log. You can find the original README.md below the break.
-----
<!--
SPDX-FileCopyrightText: 2018 yuzu Emulator Project
SPDX-License-Identifier: GPL-2.0-or-later

View File

@ -178,6 +178,9 @@ if (NOT TARGET stb::headers)
add_library(stb::headers ALIAS stb)
endif()
add_library(tz tz/tz/tz.cpp)
target_include_directories(tz PUBLIC ./tz)
add_library(bc_decoder bc_decoder/bc_decoder.cpp)
target_include_directories(bc_decoder PUBLIC ./bc_decoder)

1636
externals/tz/tz/tz.cpp vendored Normal file

File diff suppressed because it is too large Load Diff

81
externals/tz/tz/tz.h vendored Normal file
View File

@ -0,0 +1,81 @@
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
// SPDX-FileCopyrightText: 1996 Arthur David Olson
// SPDX-License-Identifier: BSD-2-Clause
#pragma once
#include <cstdint>
#include <limits>
#include <span>
#include <array>
#include <time.h>
namespace Tz {
using u8 = uint8_t;
using s8 = int8_t;
using u16 = uint16_t;
using s16 = int16_t;
using u32 = uint32_t;
using s32 = int32_t;
using u64 = uint64_t;
using s64 = int64_t;
constexpr size_t TZ_MAX_TIMES = 1000;
constexpr size_t TZ_MAX_TYPES = 128;
constexpr size_t TZ_MAX_CHARS = 50;
constexpr size_t MY_TZNAME_MAX = 255;
constexpr size_t TZNAME_MAXIMUM = 255;
constexpr size_t TZ_MAX_LEAPS = 50;
constexpr s64 TIME_T_MAX = std::numeric_limits<s64>::max();
constexpr s64 TIME_T_MIN = std::numeric_limits<s64>::min();
constexpr size_t CHARS_EXTRA = 3;
constexpr size_t MAX_ZONE_CHARS = std::max(TZ_MAX_CHARS + CHARS_EXTRA, sizeof("UTC"));
constexpr size_t MAX_TZNAME_CHARS = 2 * (MY_TZNAME_MAX + 1);
struct ttinfo {
s32 tt_utoff;
bool tt_isdst;
s32 tt_desigidx;
bool tt_ttisstd;
bool tt_ttisut;
};
static_assert(sizeof(ttinfo) == 0x10, "ttinfo has the wrong size!");
struct Rule {
s32 timecnt;
s32 typecnt;
s32 charcnt;
bool goback;
bool goahead;
std::array <u8, 0x2> padding0;
std::array<s64, TZ_MAX_TIMES> ats;
std::array<u8, TZ_MAX_TIMES> types;
std::array<ttinfo, TZ_MAX_TYPES> ttis;
std::array<char, std::max(MAX_ZONE_CHARS, MAX_TZNAME_CHARS)> chars;
s32 defaulttype;
std::array <u8, 0x12C4> padding1;
};
static_assert(sizeof(Rule) == 0x4000, "Rule has the wrong size!");
struct CalendarTimeInternal {
s32 tm_sec;
s32 tm_min;
s32 tm_hour;
s32 tm_mday;
s32 tm_mon;
s32 tm_year;
s32 tm_wday;
s32 tm_yday;
s32 tm_isdst;
std::array<char, 16> tm_zone;
s32 tm_utoff;
s32 time_index;
};
static_assert(sizeof(CalendarTimeInternal) == 0x3C, "CalendarTimeInternal has the wrong size!");
s32 ParseTimeZoneBinary(Rule& out_rule, std::span<const u8> binary);
bool localtime_rz(CalendarTimeInternal* tmp, Rule* sp, time_t* timep);
u32 mktime_tzname(time_t* out_time, Rule* sp, CalendarTimeInternal* tmp);
} // namespace Tz

View File

@ -82,8 +82,8 @@ android {
}
val keystoreFile = System.getenv("ANDROID_KEYSTORE_FILE")
if (keystoreFile != null) {
signingConfigs {
signingConfigs {
if (keystoreFile != null) {
create("release") {
storeFile = file(keystoreFile)
storePassword = System.getenv("ANDROID_KEYSTORE_PASS")
@ -91,6 +91,12 @@ android {
keyPassword = System.getenv("ANDROID_KEYSTORE_PASS")
}
}
create("default") {
storeFile = file("$projectDir/debug.keystore")
storePassword = "android"
keyAlias = "androiddebugkey"
keyPassword = "android"
}
}
// Define build types, which are orthogonal to product flavors.
@ -101,7 +107,7 @@ android {
signingConfig = if (keystoreFile != null) {
signingConfigs.getByName("release")
} else {
signingConfigs.getByName("debug")
signingConfigs.getByName("default")
}
resValue("string", "app_name_suffixed", "yuzu")
@ -118,7 +124,7 @@ android {
register("relWithDebInfo") {
isDefault = true
resValue("string", "app_name_suffixed", "yuzu Debug Release")
signingConfig = signingConfigs.getByName("debug")
signingConfig = signingConfigs.getByName("default")
isMinifyEnabled = true
isDebuggable = true
proguardFiles(
@ -133,6 +139,7 @@ android {
// Signed by debug key disallowing distribution on Play Store.
// Attaches 'debug' suffix to version and package name, allowing installation alongside the release build.
debug {
signingConfig = signingConfigs.getByName("default")
resValue("string", "app_name_suffixed", "yuzu Debug")
isDebuggable = true
isJniDebuggable = true
@ -188,8 +195,15 @@ tasks.create<Delete>("ktlintReset") {
delete(File(buildDir.path + File.separator + "intermediates/ktLint"))
}
val showFormatHelp = {
logger.lifecycle(
"If this check fails, please try running \"gradlew ktlintFormat\" for automatic " +
"codestyle fixes"
)
}
tasks.getByPath("ktlintKotlinScriptCheck").doFirst { showFormatHelp.invoke() }
tasks.getByPath("ktlintMainSourceSetCheck").doFirst { showFormatHelp.invoke() }
tasks.getByPath("loadKtlintReporters").dependsOn("ktlintReset")
tasks.getByPath("preBuild").dependsOn("ktlintCheck")
ktlint {
version.set("0.47.1")
@ -228,71 +242,33 @@ dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0")
}
fun getGitVersion(): String {
var versionName = "0.0"
try {
versionName = ProcessBuilder("git", "describe", "--always", "--long")
fun runGitCommand(command: List<String>): String {
return try {
ProcessBuilder(command)
.directory(project.rootDir)
.redirectOutput(ProcessBuilder.Redirect.PIPE)
.redirectError(ProcessBuilder.Redirect.PIPE)
.start().inputStream.bufferedReader().use { it.readText() }
.trim()
} catch (e: Exception) {
logger.error("Cannot find git")
""
}
}
fun getGitVersion(): String {
val versionName = if (System.getenv("GITHUB_ACTIONS") != null) {
val gitTag = System.getenv("GIT_TAG_NAME") ?: ""
gitTag
} else {
runGitCommand(listOf("git", "describe", "--always", "--long"))
.replace(Regex("(-0)?-[^-]+$"), "")
} catch (e: Exception) {
logger.error("Cannot find git, defaulting to dummy version number")
}
if (System.getenv("GITHUB_ACTIONS") != null) {
val gitTag = System.getenv("GIT_TAG_NAME")
versionName = gitTag ?: versionName
}
return versionName
return versionName.ifEmpty { "0.0" }
}
fun getGitHash(): String {
try {
val processBuilder = ProcessBuilder("git", "rev-parse", "--short", "HEAD")
processBuilder.directory(project.rootDir)
val process = processBuilder.start()
val inputStream = process.inputStream
val errorStream = process.errorStream
process.waitFor()
fun getGitHash(): String =
runGitCommand(listOf("git", "rev-parse", "--short", "HEAD")).ifEmpty { "dummy-hash" }
return if (process.exitValue() == 0) {
inputStream.bufferedReader()
.use { it.readText().trim() } // return the value of gitHash
} else {
val errorMessage = errorStream.bufferedReader().use { it.readText().trim() }
logger.error("Error running git command: $errorMessage")
"dummy-hash" // return a dummy hash value in case of an error
}
} catch (e: Exception) {
logger.error("$e: Cannot find git, defaulting to dummy build hash")
return "dummy-hash" // return a dummy hash value in case of an error
}
}
fun getBranch(): String {
try {
val processBuilder = ProcessBuilder("git", "rev-parse", "--abbrev-ref", "HEAD")
processBuilder.directory(project.rootDir)
val process = processBuilder.start()
val inputStream = process.inputStream
val errorStream = process.errorStream
process.waitFor()
return if (process.exitValue() == 0) {
inputStream.bufferedReader()
.use { it.readText().trim() } // return the value of gitHash
} else {
val errorMessage = errorStream.bufferedReader().use { it.readText().trim() }
logger.error("Error running git command: $errorMessage")
"dummy-hash" // return a dummy hash value in case of an error
}
} catch (e: Exception) {
logger.error("$e: Cannot find git, defaulting to dummy build hash")
return "dummy-hash" // return a dummy hash value in case of an error
}
}
fun getBranch(): String =
runGitCommand(listOf("git", "rev-parse", "--abbrev-ref", "HEAD")).ifEmpty { "dummy-hash" }

Binary file not shown.

View File

@ -21,6 +21,9 @@ import org.yuzu.yuzu_emu.utils.DocumentsTree
import org.yuzu.yuzu_emu.utils.FileUtil
import org.yuzu.yuzu_emu.utils.Log
import org.yuzu.yuzu_emu.utils.SerializableHelper.serializable
import org.yuzu.yuzu_emu.model.InstallResult
import org.yuzu.yuzu_emu.model.Patch
import org.yuzu.yuzu_emu.model.GameVerificationResult
/**
* Class which contains methods that interact
@ -235,9 +238,12 @@ object NativeLibrary {
/**
* Installs a nsp or xci file to nand
* @param filename String representation of file uri
* @param extension Lowercase string representation of file extension without "."
* @return int representation of [InstallResult]
*/
external fun installFileToNand(filename: String, extension: String): Int
external fun installFileToNand(
filename: String,
callback: (max: Long, progress: Long) -> Boolean
): Int
external fun doesUpdateMatchProgram(programId: String, updatePath: String): Boolean
@ -297,6 +303,11 @@ object NativeLibrary {
*/
external fun getCpuBackend(): String
/**
* Returns the current GPU Driver.
*/
external fun getGpuDriver(): String
external fun applySettings()
external fun logSettings()
@ -535,9 +546,49 @@ object NativeLibrary {
*
* @param path Path to game file. Can be a [Uri].
* @param programId String representation of a game's program ID
* @return Array of pairs where the first value is the name of an addon and the second is the version
* @return Array of available patches
*/
external fun getAddonsForFile(path: String, programId: String): Array<Pair<String, String>>?
external fun getPatchesForFile(path: String, programId: String): Array<Patch>?
/**
* Removes an update for a given [programId]
* @param programId String representation of a game's program ID
*/
external fun removeUpdate(programId: String)
/**
* Removes all DLC for a [programId]
* @param programId String representation of a game's program ID
*/
external fun removeDLC(programId: String)
/**
* Removes a mod installed for a given [programId]
* @param programId String representation of a game's program ID
* @param name The name of a mod as given by [getPatchesForFile]. This corresponds with the name
* of the mod's directory in a game's load folder.
*/
external fun removeMod(programId: String, name: String)
/**
* Verifies all installed content
* @param callback UI callback for verification progress. Return true in the callback to cancel.
* @return Array of content that failed verification. Successful if empty.
*/
external fun verifyInstalledContents(
callback: (max: Long, progress: Long) -> Boolean
): Array<String>
/**
* Verifies the contents of a game
* @param path String path to a game
* @param callback UI callback for verification progress. Return true in the callback to cancel.
* @return Int that is meant to be converted to a [GameVerificationResult]
*/
external fun verifyGameContents(
path: String,
callback: (max: Long, progress: Long) -> Boolean
): Int
/**
* Gets the save location for a specific game
@ -568,6 +619,16 @@ object NativeLibrary {
*/
external fun clearFilesystemProvider()
/**
* Checks if all necessary keys are present for decryption
*/
external fun areKeysPresent(): Boolean
/**
* Check if the system firmware can be decrypted by checking the Mii model system archive
*/
external fun canDecryptSystemArchive(): Boolean
/**
* Button type for use in onTouchEvent
*/
@ -609,15 +670,4 @@ object NativeLibrary {
const val RELEASED = 0
const val PRESSED = 1
}
/**
* Result from installFileToNand
*/
object InstallFileToNandResult {
const val Success = 0
const val SuccessFileOverwritten = 1
const val Error = 2
const val ErrorBaseGame = 3
const val ErrorFilenameExtension = 4
}
}

View File

@ -49,7 +49,6 @@ import org.yuzu.yuzu_emu.utils.ForegroundService
import org.yuzu.yuzu_emu.utils.InputHandler
import org.yuzu.yuzu_emu.utils.Log
import org.yuzu.yuzu_emu.utils.MemoryUtil
import org.yuzu.yuzu_emu.utils.NativeConfig
import org.yuzu.yuzu_emu.utils.NfcReader
import org.yuzu.yuzu_emu.utils.ThemeHelper
import java.text.NumberFormat
@ -171,11 +170,6 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
stopMotionSensorListener()
}
override fun onStop() {
super.onStop()
NativeConfig.saveGlobalConfig()
}
override fun onUserLeaveHint() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {
if (BooleanSetting.PICTURE_IN_PICTURE.getBoolean() && !isInPictureInPictureMode) {

View File

@ -14,15 +14,20 @@ import androidx.recyclerview.widget.RecyclerView
* Generic adapter that implements an [AsyncDifferConfig] and covers some of the basic boilerplate
* code used in every [RecyclerView].
* Type assigned to [Model] must inherit from [Object] in order to be compared properly.
* @param exact Decides whether each item will be compared by reference or by their contents
*/
abstract class AbstractDiffAdapter<Model : Any, Holder : AbstractViewHolder<Model>> :
ListAdapter<Model, Holder>(AsyncDifferConfig.Builder(DiffCallback<Model>()).build()) {
abstract class AbstractDiffAdapter<Model : Any, Holder : AbstractViewHolder<Model>>(
exact: Boolean = true
) : ListAdapter<Model, Holder>(AsyncDifferConfig.Builder(DiffCallback<Model>(exact)).build()) {
override fun onBindViewHolder(holder: Holder, position: Int) =
holder.bind(currentList[position])
private class DiffCallback<Model> : DiffUtil.ItemCallback<Model>() {
private class DiffCallback<Model>(val exact: Boolean) : DiffUtil.ItemCallback<Model>() {
override fun areItemsTheSame(oldItem: Model & Any, newItem: Model & Any): Boolean {
return oldItem === newItem
if (exact) {
return oldItem === newItem
}
return oldItem == newItem
}
@SuppressLint("DiffUtilEquals")

View File

@ -6,27 +6,32 @@ package org.yuzu.yuzu_emu.adapters
import android.view.LayoutInflater
import android.view.ViewGroup
import org.yuzu.yuzu_emu.databinding.ListItemAddonBinding
import org.yuzu.yuzu_emu.model.Addon
import org.yuzu.yuzu_emu.model.Patch
import org.yuzu.yuzu_emu.model.AddonViewModel
import org.yuzu.yuzu_emu.viewholder.AbstractViewHolder
class AddonAdapter : AbstractDiffAdapter<Addon, AddonAdapter.AddonViewHolder>() {
class AddonAdapter(val addonViewModel: AddonViewModel) :
AbstractDiffAdapter<Patch, AddonAdapter.AddonViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AddonViewHolder {
ListItemAddonBinding.inflate(LayoutInflater.from(parent.context), parent, false)
.also { return AddonViewHolder(it) }
}
inner class AddonViewHolder(val binding: ListItemAddonBinding) :
AbstractViewHolder<Addon>(binding) {
override fun bind(model: Addon) {
AbstractViewHolder<Patch>(binding) {
override fun bind(model: Patch) {
binding.root.setOnClickListener {
binding.addonSwitch.isChecked = !binding.addonSwitch.isChecked
binding.addonCheckbox.isChecked = !binding.addonCheckbox.isChecked
}
binding.title.text = model.title
binding.title.text = model.name
binding.version.text = model.version
binding.addonSwitch.setOnCheckedChangeListener { _, checked ->
binding.addonCheckbox.setOnCheckedChangeListener { _, checked ->
model.enabled = checked
}
binding.addonSwitch.isChecked = model.enabled
binding.addonCheckbox.isChecked = model.enabled
binding.buttonDelete.setOnClickListener {
addonViewModel.setAddonToDelete(model)
}
}
}
}

View File

@ -3,9 +3,6 @@
package org.yuzu.yuzu_emu.adapters
import android.content.Intent
import android.graphics.Bitmap
import android.graphics.drawable.LayerDrawable
import android.net.Uri
import android.text.TextUtils
import android.view.LayoutInflater
@ -15,10 +12,6 @@ import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.pm.ShortcutInfoCompat
import androidx.core.content.pm.ShortcutManagerCompat
import androidx.core.content.res.ResourcesCompat
import androidx.core.graphics.drawable.IconCompat
import androidx.core.graphics.drawable.toBitmap
import androidx.core.graphics.drawable.toDrawable
import androidx.documentfile.provider.DocumentFile
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
@ -30,7 +23,6 @@ import kotlinx.coroutines.withContext
import org.yuzu.yuzu_emu.HomeNavigationDirections
import org.yuzu.yuzu_emu.R
import org.yuzu.yuzu_emu.YuzuApplication
import org.yuzu.yuzu_emu.activities.EmulationActivity
import org.yuzu.yuzu_emu.databinding.CardGameBinding
import org.yuzu.yuzu_emu.model.Game
import org.yuzu.yuzu_emu.model.GamesViewModel
@ -38,7 +30,7 @@ import org.yuzu.yuzu_emu.utils.GameIconUtils
import org.yuzu.yuzu_emu.viewholder.AbstractViewHolder
class GameAdapter(private val activity: AppCompatActivity) :
AbstractDiffAdapter<Game, GameAdapter.GameViewHolder>() {
AbstractDiffAdapter<Game, GameAdapter.GameViewHolder>(exact = false) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): GameViewHolder {
CardGameBinding.inflate(LayoutInflater.from(parent.context), parent, false)
.also { return GameViewHolder(it) }
@ -89,36 +81,13 @@ class GameAdapter(private val activity: AppCompatActivity) :
)
.apply()
val openIntent =
Intent(YuzuApplication.appContext, EmulationActivity::class.java).apply {
action = Intent.ACTION_VIEW
data = Uri.parse(game.path)
}
activity.lifecycleScope.launch {
withContext(Dispatchers.IO) {
val layerDrawable = ResourcesCompat.getDrawable(
YuzuApplication.appContext.resources,
R.drawable.shortcut,
null
) as LayerDrawable
layerDrawable.setDrawableByLayerId(
R.id.shortcut_foreground,
GameIconUtils.getGameIcon(activity, game)
.toDrawable(YuzuApplication.appContext.resources)
)
val inset = YuzuApplication.appContext.resources
.getDimensionPixelSize(R.dimen.icon_inset)
layerDrawable.setLayerInset(1, inset, inset, inset, inset)
val shortcut =
ShortcutInfoCompat.Builder(YuzuApplication.appContext, game.path)
.setShortLabel(game.title)
.setIcon(
IconCompat.createWithAdaptiveBitmap(
layerDrawable.toBitmap(config = Bitmap.Config.ARGB_8888)
)
)
.setIntent(openIntent)
.setIcon(GameIconUtils.getShortcutIcon(activity, game))
.setIntent(game.launchIntent)
.build()
ShortcutManagerCompat.pushDynamicShortcut(YuzuApplication.appContext, shortcut)
}

View File

@ -23,7 +23,8 @@ enum class IntSetting(override val key: String) : AbstractIntSetting {
THEME("theme"),
THEME_MODE("theme_mode"),
OVERLAY_SCALE("control_scale"),
OVERLAY_OPACITY("control_opacity");
OVERLAY_OPACITY("control_opacity"),
LOCK_DRAWER("lock_drawer");
override fun getInt(needsGlobal: Boolean): Int = NativeConfig.getInt(key, needsGlobal)

View File

@ -76,8 +76,8 @@ class AboutFragment : Fragment() {
binding.root.findNavController().navigate(R.id.action_aboutFragment_to_licensesFragment)
}
binding.textBuildHash.text = BuildConfig.GIT_HASH
binding.buttonBuildHash.setOnClickListener {
binding.textVersionName.text = BuildConfig.VERSION_NAME
binding.textVersionName.setOnClickListener {
val clipBoard =
requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clip = ClipData.newPlainText(getString(R.string.build), BuildConfig.GIT_HASH)

View File

@ -74,7 +74,7 @@ class AddonsFragment : Fragment() {
binding.listAddons.apply {
layoutManager = LinearLayoutManager(requireContext())
adapter = AddonAdapter()
adapter = AddonAdapter(addonViewModel)
}
viewLifecycleOwner.lifecycleScope.apply {
@ -110,6 +110,21 @@ class AddonsFragment : Fragment() {
}
}
}
launch {
repeatOnLifecycle(Lifecycle.State.STARTED) {
addonViewModel.addonToDelete.collect {
if (it != null) {
MessageDialogFragment.newInstance(
requireActivity(),
titleId = R.string.confirm_uninstall,
descriptionId = R.string.confirm_uninstall_description,
positiveAction = { addonViewModel.onDeleteAddon(it) }
).show(parentFragmentManager, MessageDialogFragment.TAG)
addonViewModel.setAddonToDelete(null)
}
}
}
}
}
binding.buttonInstall.setOnClickListener {
@ -156,22 +171,22 @@ class AddonsFragment : Fragment() {
descriptionId = R.string.invalid_directory_description
)
if (isValid) {
IndeterminateProgressDialogFragment.newInstance(
ProgressDialogFragment.newInstance(
requireActivity(),
R.string.installing_game_content,
false
) {
) { progressCallback, _ ->
val parentDirectoryName = externalAddonDirectory.name
val internalAddonDirectory =
File(args.game.addonDir + parentDirectoryName)
try {
externalAddonDirectory.copyFilesTo(internalAddonDirectory)
externalAddonDirectory.copyFilesTo(internalAddonDirectory, progressCallback)
} catch (_: Exception) {
return@newInstance errorMessage
}
addonViewModel.refreshAddons()
return@newInstance getString(R.string.addon_installed_successfully)
}.show(parentFragmentManager, IndeterminateProgressDialogFragment.TAG)
}.show(parentFragmentManager, ProgressDialogFragment.TAG)
} else {
errorMessage.show(parentFragmentManager, MessageDialogFragment.TAG)
}

View File

@ -75,7 +75,7 @@ class DriverManagerFragment : Fragment() {
driverViewModel.showClearButton(!StringSetting.DRIVER_PATH.global)
binding.toolbarDrivers.setOnMenuItemClickListener {
when (it.itemId) {
R.id.menu_driver_clear -> {
R.id.menu_driver_use_global -> {
StringSetting.DRIVER_PATH.global = true
driverViewModel.updateDriverList()
(binding.listDrivers.adapter as DriverAdapter)
@ -93,7 +93,7 @@ class DriverManagerFragment : Fragment() {
repeatOnLifecycle(Lifecycle.State.STARTED) {
driverViewModel.showClearButton.collect {
binding.toolbarDrivers.menu
.findItem(R.id.menu_driver_clear).isVisible = it
.findItem(R.id.menu_driver_use_global).isVisible = it
}
}
}
@ -173,11 +173,11 @@ class DriverManagerFragment : Fragment() {
return@registerForActivityResult
}
IndeterminateProgressDialogFragment.newInstance(
ProgressDialogFragment.newInstance(
requireActivity(),
R.string.installing_driver,
false
) {
) { _, _ ->
val driverPath =
"${GpuDriverHelper.driverStoragePath}${FileUtil.getFilename(result)}"
val driverFile = File(driverPath)
@ -213,6 +213,6 @@ class DriverManagerFragment : Fragment() {
}
}
return@newInstance Any()
}.show(childFragmentManager, IndeterminateProgressDialogFragment.TAG)
}.show(childFragmentManager, ProgressDialogFragment.TAG)
}
}

View File

@ -38,7 +38,6 @@ import androidx.window.layout.WindowLayoutInfo
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.slider.Slider
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
import org.yuzu.yuzu_emu.HomeNavigationDirections
@ -141,7 +140,9 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
// So this fragment doesn't restart on configuration changes; i.e. rotation.
retainInstance = true
emulationState = EmulationState(game.path)
emulationState = EmulationState(game.path) {
return@EmulationState driverViewModel.isInteractionAllowed.value
}
}
/**
@ -182,11 +183,11 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
}
override fun onDrawerOpened(drawerView: View) {
// No op
binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
}
override fun onDrawerClosed(drawerView: View) {
// No op
binding.drawerLayout.setDrawerLockMode(IntSetting.LOCK_DRAWER.getInt())
}
override fun onDrawerStateChanged(newState: Int) {
@ -196,6 +197,28 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
binding.inGameMenu.getHeaderView(0).findViewById<TextView>(R.id.text_game_title).text =
game.title
binding.inGameMenu.menu.findItem(R.id.menu_lock_drawer).apply {
val lockMode = IntSetting.LOCK_DRAWER.getInt()
val titleId = if (lockMode == DrawerLayout.LOCK_MODE_LOCKED_CLOSED) {
R.string.unlock_drawer
} else {
R.string.lock_drawer
}
val iconId = if (lockMode == DrawerLayout.LOCK_MODE_UNLOCKED) {
R.drawable.ic_unlock
} else {
R.drawable.ic_lock
}
title = getString(titleId)
icon = ResourcesCompat.getDrawable(
resources,
iconId,
requireContext().theme
)
}
binding.inGameMenu.setNavigationItemSelectedListener {
when (it.itemId) {
R.id.menu_pause_emulation -> {
@ -242,6 +265,32 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
true
}
R.id.menu_lock_drawer -> {
when (IntSetting.LOCK_DRAWER.getInt()) {
DrawerLayout.LOCK_MODE_UNLOCKED -> {
IntSetting.LOCK_DRAWER.setInt(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
it.title = resources.getString(R.string.unlock_drawer)
it.icon = ResourcesCompat.getDrawable(
resources,
R.drawable.ic_lock,
requireContext().theme
)
}
DrawerLayout.LOCK_MODE_LOCKED_CLOSED -> {
IntSetting.LOCK_DRAWER.setInt(DrawerLayout.LOCK_MODE_UNLOCKED)
it.title = resources.getString(R.string.lock_drawer)
it.icon = ResourcesCompat.getDrawable(
resources,
R.drawable.ic_unlock,
requireContext().theme
)
}
}
NativeConfig.saveGlobalConfig()
true
}
R.id.menu_exit -> {
emulationState.stop()
emulationViewModel.setIsEmulationStopping(true)
@ -322,11 +371,20 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
}
}
}
launch {
repeatOnLifecycle(Lifecycle.State.RESUMED) {
driverViewModel.isInteractionAllowed.collect {
if (it) {
startEmulation()
}
}
}
}
launch {
repeatOnLifecycle(Lifecycle.State.CREATED) {
emulationViewModel.emulationStarted.collectLatest {
if (it) {
binding.drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED)
binding.drawerLayout.setDrawerLockMode(IntSetting.LOCK_DRAWER.getInt())
ViewUtils.showView(binding.surfaceInputOverlay)
ViewUtils.hideView(binding.loadingIndicator)
@ -350,19 +408,10 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
}
}
}
launch {
repeatOnLifecycle(Lifecycle.State.RESUMED) {
driverViewModel.isInteractionAllowed.collect {
if (it) {
onEmulationStart()
}
}
}
}
}
}
private fun onEmulationStart() {
private fun startEmulation() {
if (!NativeLibrary.isRunning() && !NativeLibrary.isPaused()) {
if (!DirectoryInitialization.areDirectoriesReady) {
DirectoryInitialization.start()
@ -437,12 +486,20 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
val FRAMETIME = 2
val SPEED = 3
perfStatsUpdater = {
if (emulationViewModel.emulationStarted.value) {
if (emulationViewModel.emulationStarted.value &&
!emulationViewModel.isEmulationStopping.value
) {
val perfStats = NativeLibrary.getPerfStats()
val cpuBackend = NativeLibrary.getCpuBackend()
val gpuDriver = NativeLibrary.getGpuDriver()
if (_binding != null) {
binding.showFpsText.text =
String.format("FPS: %.1f\n%s", perfStats[FPS], cpuBackend)
String.format(
"FPS: %.1f\n%s - %s",
perfStats[FPS],
cpuBackend,
gpuDriver
)
}
perfStatsUpdateHandler.postDelayed(perfStatsUpdater!!, 800)
}
@ -554,6 +611,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
findItem(R.id.menu_touchscreen).isChecked = BooleanSetting.TOUCHSCREEN.getBoolean()
}
popup.setOnDismissListener { NativeConfig.saveGlobalConfig() }
popup.setOnMenuItemClickListener {
when (it.itemId) {
R.id.menu_toggle_fps -> {
@ -720,7 +778,9 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
MaterialAlertDialogBuilder(requireContext())
.setTitle(R.string.emulation_control_adjust)
.setView(adjustBinding.root)
.setPositiveButton(android.R.string.ok, null)
.setPositiveButton(android.R.string.ok) { _: DialogInterface?, _: Int ->
NativeConfig.saveGlobalConfig()
}
.setNeutralButton(R.string.slider_default) { _: DialogInterface?, _: Int ->
setControlScale(50)
setControlOpacity(100)
@ -756,7 +816,10 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
}
}
private class EmulationState(private val gamePath: String) {
private class EmulationState(
private val gamePath: String,
private val emulationCanStart: () -> Boolean
) {
private var state: State
private var surface: Surface? = null
@ -850,6 +913,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
State.PAUSED -> Log.warning(
"[EmulationFragment] Surface cleared while emulation paused."
)
else -> Log.warning(
"[EmulationFragment] Surface cleared while emulation stopped."
)
@ -859,6 +923,10 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
private fun runWithValidSurface() {
NativeLibrary.surfaceChanged(surface)
if (!emulationCanStart.invoke()) {
return
}
when (state) {
State.STOPPED -> {
val emulationThread = Thread({

View File

@ -21,8 +21,10 @@ import androidx.fragment.app.activityViewModels
import androidx.navigation.findNavController
import androidx.navigation.fragment.navArgs
import com.google.android.material.transition.MaterialSharedAxis
import org.yuzu.yuzu_emu.NativeLibrary
import org.yuzu.yuzu_emu.R
import org.yuzu.yuzu_emu.databinding.FragmentGameInfoBinding
import org.yuzu.yuzu_emu.model.GameVerificationResult
import org.yuzu.yuzu_emu.model.HomeViewModel
import org.yuzu.yuzu_emu.utils.GameMetadata
@ -101,6 +103,38 @@ class GameInfoFragment : Fragment() {
""".trimIndent()
copyToClipboard(args.game.title, details)
}
buttonVerifyIntegrity.setOnClickListener {
ProgressDialogFragment.newInstance(
requireActivity(),
R.string.verifying,
true
) { progressCallback, _ ->
val result = GameVerificationResult.from(
NativeLibrary.verifyGameContents(
args.game.path,
progressCallback
)
)
return@newInstance when (result) {
GameVerificationResult.Success ->
MessageDialogFragment.newInstance(
titleId = R.string.verify_success,
descriptionId = R.string.operation_completed_successfully
)
GameVerificationResult.Failed ->
MessageDialogFragment.newInstance(
titleId = R.string.verify_failure,
descriptionId = R.string.verify_failure_description
)
GameVerificationResult.NotImplemented ->
MessageDialogFragment.newInstance(
titleId = R.string.verify_no_result,
descriptionId = R.string.verify_no_result_description
)
}
}.show(parentFragmentManager, ProgressDialogFragment.TAG)
}
}
setInsets()

View File

@ -4,6 +4,8 @@
package org.yuzu.yuzu_emu.fragments
import android.annotation.SuppressLint
import android.content.pm.ShortcutInfo
import android.content.pm.ShortcutManager
import android.os.Bundle
import android.text.TextUtils
import android.view.LayoutInflater
@ -44,7 +46,6 @@ import org.yuzu.yuzu_emu.utils.FileUtil
import org.yuzu.yuzu_emu.utils.GameIconUtils
import org.yuzu.yuzu_emu.utils.GpuDriverHelper
import org.yuzu.yuzu_emu.utils.MemoryUtil
import java.io.BufferedInputStream
import java.io.BufferedOutputStream
import java.io.File
@ -85,6 +86,24 @@ class GamePropertiesFragment : Fragment() {
view.findNavController().popBackStack()
}
val shortcutManager = requireActivity().getSystemService(ShortcutManager::class.java)
binding.buttonShortcut.isEnabled = shortcutManager.isRequestPinShortcutSupported
binding.buttonShortcut.setOnClickListener {
viewLifecycleOwner.lifecycleScope.launch {
withContext(Dispatchers.IO) {
val shortcut = ShortcutInfo.Builder(requireContext(), args.game.title)
.setShortLabel(args.game.title)
.setIcon(
GameIconUtils.getShortcutIcon(requireActivity(), args.game)
.toIcon(requireContext())
)
.setIntent(args.game.launchIntent)
.build()
shortcutManager.requestPinShortcut(shortcut, null)
}
}
}
GameIconUtils.loadGameIcon(args.game, binding.imageGameScreen)
binding.title.text = args.game.title
binding.title.postDelayed(
@ -357,27 +376,17 @@ class GamePropertiesFragment : Fragment() {
return@registerForActivityResult
}
val inputZip = requireContext().contentResolver.openInputStream(result)
val savesFolder = File(args.game.saveDir)
val cacheSaveDir = File("${requireContext().cacheDir.path}/saves/")
cacheSaveDir.mkdir()
if (inputZip == null) {
Toast.makeText(
YuzuApplication.appContext,
getString(R.string.fatal_error),
Toast.LENGTH_LONG
).show()
return@registerForActivityResult
}
IndeterminateProgressDialogFragment.newInstance(
ProgressDialogFragment.newInstance(
requireActivity(),
R.string.save_files_importing,
false
) {
) { _, _ ->
try {
FileUtil.unzipToInternalStorage(BufferedInputStream(inputZip), cacheSaveDir)
FileUtil.unzipToInternalStorage(result.toString(), cacheSaveDir)
val files = cacheSaveDir.listFiles()
var savesFolderFile: File? = null
if (files != null) {
@ -422,7 +431,7 @@ class GamePropertiesFragment : Fragment() {
Toast.LENGTH_LONG
).show()
}
}.show(parentFragmentManager, IndeterminateProgressDialogFragment.TAG)
}.show(parentFragmentManager, ProgressDialogFragment.TAG)
}
/**
@ -436,11 +445,11 @@ class GamePropertiesFragment : Fragment() {
return@registerForActivityResult
}
IndeterminateProgressDialogFragment.newInstance(
ProgressDialogFragment.newInstance(
requireActivity(),
R.string.save_files_exporting,
false
) {
) { _, _ ->
val saveLocation = args.game.saveDir
val zipResult = FileUtil.zipFromInternalStorage(
File(saveLocation),
@ -452,6 +461,6 @@ class GamePropertiesFragment : Fragment() {
TaskState.Completed -> getString(R.string.export_success)
TaskState.Cancelled, TaskState.Failed -> getString(R.string.export_failed)
}
}.show(parentFragmentManager, IndeterminateProgressDialogFragment.TAG)
}.show(parentFragmentManager, ProgressDialogFragment.TAG)
}
}

View File

@ -32,6 +32,7 @@ import org.yuzu.yuzu_emu.BuildConfig
import org.yuzu.yuzu_emu.HomeNavigationDirections
import org.yuzu.yuzu_emu.NativeLibrary
import org.yuzu.yuzu_emu.R
import org.yuzu.yuzu_emu.YuzuApplication
import org.yuzu.yuzu_emu.adapters.HomeSettingAdapter
import org.yuzu.yuzu_emu.databinding.FragmentHomeSettingsBinding
import org.yuzu.yuzu_emu.features.DocumentProvider
@ -140,6 +141,38 @@ class HomeSettingsFragment : Fragment() {
}
)
)
add(
HomeSetting(
R.string.verify_installed_content,
R.string.verify_installed_content_description,
R.drawable.ic_check_circle,
{
ProgressDialogFragment.newInstance(
requireActivity(),
titleId = R.string.verifying,
cancellable = true
) { progressCallback, _ ->
val result = NativeLibrary.verifyInstalledContents(progressCallback)
return@newInstance if (result.isEmpty()) {
MessageDialogFragment.newInstance(
titleId = R.string.verify_success,
descriptionId = R.string.operation_completed_successfully
)
} else {
val failedNames = result.joinToString("\n")
val errorMessage = YuzuApplication.appContext.getString(
R.string.verification_failed_for,
failedNames
)
MessageDialogFragment.newInstance(
titleId = R.string.verify_failure,
descriptionString = errorMessage
)
}
}.show(parentFragmentManager, ProgressDialogFragment.TAG)
}
)
)
add(
HomeSetting(
R.string.share_log,

View File

@ -34,7 +34,6 @@ import org.yuzu.yuzu_emu.model.TaskState
import org.yuzu.yuzu_emu.ui.main.MainActivity
import org.yuzu.yuzu_emu.utils.DirectoryInitialization
import org.yuzu.yuzu_emu.utils.FileUtil
import java.io.BufferedInputStream
import java.io.BufferedOutputStream
import java.io.File
import java.math.BigInteger
@ -195,26 +194,20 @@ class InstallableFragment : Fragment() {
return@registerForActivityResult
}
val inputZip = requireContext().contentResolver.openInputStream(result)
val cacheSaveDir = File("${requireContext().cacheDir.path}/saves/")
cacheSaveDir.mkdir()
if (inputZip == null) {
Toast.makeText(
YuzuApplication.appContext,
getString(R.string.fatal_error),
Toast.LENGTH_LONG
).show()
return@registerForActivityResult
}
IndeterminateProgressDialogFragment.newInstance(
ProgressDialogFragment.newInstance(
requireActivity(),
R.string.save_files_importing,
false
) {
) { progressCallback, _ ->
try {
FileUtil.unzipToInternalStorage(BufferedInputStream(inputZip), cacheSaveDir)
FileUtil.unzipToInternalStorage(
result.toString(),
cacheSaveDir,
progressCallback
)
val files = cacheSaveDir.listFiles()
var successfulImports = 0
var failedImports = 0
@ -287,7 +280,7 @@ class InstallableFragment : Fragment() {
Toast.LENGTH_LONG
).show()
}
}.show(parentFragmentManager, IndeterminateProgressDialogFragment.TAG)
}.show(parentFragmentManager, ProgressDialogFragment.TAG)
}
private val exportSaves = registerForActivityResult(
@ -297,11 +290,11 @@ class InstallableFragment : Fragment() {
return@registerForActivityResult
}
IndeterminateProgressDialogFragment.newInstance(
ProgressDialogFragment.newInstance(
requireActivity(),
R.string.save_files_exporting,
false
) {
) { _, _ ->
val cacheSaveDir = File("${requireContext().cacheDir.path}/saves/")
cacheSaveDir.mkdir()
@ -338,6 +331,6 @@ class InstallableFragment : Fragment() {
TaskState.Completed -> getString(R.string.export_success)
TaskState.Cancelled, TaskState.Failed -> getString(R.string.export_failed)
}
}.show(parentFragmentManager, IndeterminateProgressDialogFragment.TAG)
}.show(parentFragmentManager, ProgressDialogFragment.TAG)
}
}

View File

@ -26,9 +26,15 @@ class MessageDialogFragment : DialogFragment() {
val descriptionId = requireArguments().getInt(DESCRIPTION_ID)
val descriptionString = requireArguments().getString(DESCRIPTION_STRING)!!
val helpLinkId = requireArguments().getInt(HELP_LINK)
val dismissible = requireArguments().getBoolean(DISMISSIBLE)
val clearPositiveAction = requireArguments().getBoolean(CLEAR_POSITIVE_ACTION)
val builder = MaterialAlertDialogBuilder(requireContext())
if (clearPositiveAction) {
messageDialogViewModel.positiveAction = null
}
if (messageDialogViewModel.positiveAction == null) {
builder.setPositiveButton(R.string.close, null)
} else {
@ -51,6 +57,8 @@ class MessageDialogFragment : DialogFragment() {
}
}
isCancelable = dismissible
return builder.show()
}
@ -67,28 +75,38 @@ class MessageDialogFragment : DialogFragment() {
private const val DESCRIPTION_ID = "DescriptionId"
private const val DESCRIPTION_STRING = "DescriptionString"
private const val HELP_LINK = "Link"
private const val DISMISSIBLE = "Dismissible"
private const val CLEAR_POSITIVE_ACTION = "ClearPositiveAction"
fun newInstance(
activity: FragmentActivity,
activity: FragmentActivity? = null,
titleId: Int = 0,
titleString: String = "",
descriptionId: Int = 0,
descriptionString: String = "",
helpLinkId: Int = 0,
dismissible: Boolean = true,
positiveAction: (() -> Unit)? = null
): MessageDialogFragment {
var clearPositiveAction = false
if (activity != null) {
ViewModelProvider(activity)[MessageDialogViewModel::class.java].apply {
clear()
this.positiveAction = positiveAction
}
} else {
clearPositiveAction = true
}
val dialog = MessageDialogFragment()
val bundle = Bundle()
bundle.apply {
val bundle = Bundle().apply {
putInt(TITLE_ID, titleId)
putString(TITLE_STRING, titleString)
putInt(DESCRIPTION_ID, descriptionId)
putString(DESCRIPTION_STRING, descriptionString)
putInt(HELP_LINK, helpLinkId)
}
ViewModelProvider(activity)[MessageDialogViewModel::class.java].apply {
clear()
this.positiveAction = positiveAction
putBoolean(DISMISSIBLE, dismissible)
putBoolean(CLEAR_POSITIVE_ACTION, clearPositiveAction)
}
dialog.arguments = bundle
return dialog

View File

@ -23,11 +23,13 @@ import org.yuzu.yuzu_emu.R
import org.yuzu.yuzu_emu.databinding.DialogProgressBarBinding
import org.yuzu.yuzu_emu.model.TaskViewModel
class IndeterminateProgressDialogFragment : DialogFragment() {
class ProgressDialogFragment : DialogFragment() {
private val taskViewModel: TaskViewModel by activityViewModels()
private lateinit var binding: DialogProgressBarBinding
private val PROGRESS_BAR_RESOLUTION = 1000
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val titleId = requireArguments().getInt(TITLE)
val cancellable = requireArguments().getBoolean(CANCELLABLE)
@ -61,6 +63,7 @@ class IndeterminateProgressDialogFragment : DialogFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
binding.message.isSelected = true
viewLifecycleOwner.lifecycleScope.apply {
launch {
repeatOnLifecycle(Lifecycle.State.CREATED) {
@ -97,6 +100,35 @@ class IndeterminateProgressDialogFragment : DialogFragment() {
}
}
}
launch {
repeatOnLifecycle(Lifecycle.State.CREATED) {
taskViewModel.progress.collect {
if (it != 0.0) {
binding.progressBar.apply {
isIndeterminate = false
progress = (
(it / taskViewModel.maxProgress.value) *
PROGRESS_BAR_RESOLUTION
).toInt()
min = 0
max = PROGRESS_BAR_RESOLUTION
}
}
}
}
}
launch {
repeatOnLifecycle(Lifecycle.State.CREATED) {
taskViewModel.message.collect {
if (it.isEmpty()) {
binding.message.visibility = View.GONE
} else {
binding.message.visibility = View.VISIBLE
binding.message.text = it
}
}
}
}
}
}
@ -108,6 +140,7 @@ class IndeterminateProgressDialogFragment : DialogFragment() {
val negativeButton = alertDialog.getButton(Dialog.BUTTON_NEGATIVE)
negativeButton.setOnClickListener {
alertDialog.setTitle(getString(R.string.cancelling))
binding.progressBar.isIndeterminate = true
taskViewModel.setCancelled(true)
}
}
@ -122,9 +155,12 @@ class IndeterminateProgressDialogFragment : DialogFragment() {
activity: FragmentActivity,
titleId: Int,
cancellable: Boolean = false,
task: suspend () -> Any
): IndeterminateProgressDialogFragment {
val dialog = IndeterminateProgressDialogFragment()
task: suspend (
progressCallback: (max: Long, progress: Long) -> Boolean,
messageCallback: (message: String) -> Unit
) -> Any
): ProgressDialogFragment {
val dialog = ProgressDialogFragment()
val args = Bundle()
ViewModelProvider(activity)[TaskViewModel::class.java].task = task
args.putInt(TITLE, titleId)

View File

@ -136,14 +136,14 @@ class SearchFragment : Fragment() {
baseList.filter {
val lastPlayedTime = preferences.getLong(it.keyLastPlayedTime, 0L)
lastPlayedTime > (System.currentTimeMillis() - 24 * 60 * 60 * 1000)
}
}.sortedByDescending { preferences.getLong(it.keyLastPlayedTime, 0L) }
}
R.id.chip_recently_added -> {
baseList.filter {
val addedTime = preferences.getLong(it.keyAddedToLibraryTime, 0L)
addedTime > (System.currentTimeMillis() - 24 * 60 * 60 * 1000)
}
}.sortedByDescending { preferences.getLong(it.keyAddedToLibraryTime, 0L) }
}
R.id.chip_homebrew -> baseList.filter { it.isHomebrew }

View File

@ -1,10 +0,0 @@
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
package org.yuzu.yuzu_emu.model
data class Addon(
var enabled: Boolean,
val title: String,
val version: String
)

View File

@ -15,8 +15,8 @@ import org.yuzu.yuzu_emu.utils.NativeConfig
import java.util.concurrent.atomic.AtomicBoolean
class AddonViewModel : ViewModel() {
private val _addonList = MutableStateFlow(mutableListOf<Addon>())
val addonList get() = _addonList.asStateFlow()
private val _patchList = MutableStateFlow(mutableListOf<Patch>())
val addonList get() = _patchList.asStateFlow()
private val _showModInstallPicker = MutableStateFlow(false)
val showModInstallPicker get() = _showModInstallPicker.asStateFlow()
@ -24,6 +24,9 @@ class AddonViewModel : ViewModel() {
private val _showModNoticeDialog = MutableStateFlow(false)
val showModNoticeDialog get() = _showModNoticeDialog.asStateFlow()
private val _addonToDelete = MutableStateFlow<Patch?>(null)
val addonToDelete = _addonToDelete.asStateFlow()
var game: Game? = null
private val isRefreshing = AtomicBoolean(false)
@ -40,36 +43,47 @@ class AddonViewModel : ViewModel() {
isRefreshing.set(true)
viewModelScope.launch {
withContext(Dispatchers.IO) {
val addonList = mutableListOf<Addon>()
val disabledAddons = NativeConfig.getDisabledAddons(game!!.programId)
NativeLibrary.getAddonsForFile(game!!.path, game!!.programId)?.forEach {
val name = it.first.replace("[D] ", "")
addonList.add(Addon(!disabledAddons.contains(name), name, it.second))
}
addonList.sortBy { it.title }
_addonList.value = addonList
val patchList = (
NativeLibrary.getPatchesForFile(game!!.path, game!!.programId)
?: emptyArray()
).toMutableList()
patchList.sortBy { it.name }
_patchList.value = patchList
isRefreshing.set(false)
}
}
}
fun setAddonToDelete(patch: Patch?) {
_addonToDelete.value = patch
}
fun onDeleteAddon(patch: Patch) {
when (PatchType.from(patch.type)) {
PatchType.Update -> NativeLibrary.removeUpdate(patch.programId)
PatchType.DLC -> NativeLibrary.removeDLC(patch.programId)
PatchType.Mod -> NativeLibrary.removeMod(patch.programId, patch.name)
}
refreshAddons()
}
fun onCloseAddons() {
if (_addonList.value.isEmpty()) {
if (_patchList.value.isEmpty()) {
return
}
NativeConfig.setDisabledAddons(
game!!.programId,
_addonList.value.mapNotNull {
_patchList.value.mapNotNull {
if (it.enabled) {
null
} else {
it.title
it.name
}
}.toTypedArray()
)
NativeConfig.saveGlobalConfig()
_addonList.value.clear()
_patchList.value.clear()
game = null
}

View File

@ -144,6 +144,7 @@ class DriverViewModel : ViewModel() {
val selectedDriverFile = File(StringSetting.DRIVER_PATH.getString())
val selectedDriverMetadata = GpuDriverHelper.customDriverSettingData
if (GpuDriverHelper.installedCustomDriverData == selectedDriverMetadata) {
setDriverReady()
return
}

View File

@ -3,6 +3,7 @@
package org.yuzu.yuzu_emu.model
import android.content.Intent
import android.net.Uri
import android.os.Parcelable
import java.util.HashSet
@ -11,6 +12,7 @@ import kotlinx.serialization.Serializable
import org.yuzu.yuzu_emu.NativeLibrary
import org.yuzu.yuzu_emu.R
import org.yuzu.yuzu_emu.YuzuApplication
import org.yuzu.yuzu_emu.activities.EmulationActivity
import org.yuzu.yuzu_emu.utils.DirectoryInitialization
import org.yuzu.yuzu_emu.utils.FileUtil
import java.time.LocalDateTime
@ -61,12 +63,26 @@ class Game(
val addonDir: String
get() = DirectoryInitialization.userDirectory + "/load/" + programIdHex + "/"
override fun equals(other: Any?): Boolean {
if (other !is Game) {
return false
val launchIntent: Intent
get() = Intent(YuzuApplication.appContext, EmulationActivity::class.java).apply {
action = Intent.ACTION_VIEW
data = Uri.parse(path)
}
return hashCode() == other.hashCode()
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (javaClass != other?.javaClass) return false
other as Game
if (title != other.title) return false
if (path != other.path) return false
if (programId != other.programId) return false
if (developer != other.developer) return false
if (version != other.version) return false
if (isHomebrew != other.isHomebrew) return false
return true
}
override fun hashCode(): Int {

View File

@ -0,0 +1,15 @@
// SPDX-FileCopyrightText: 2024 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
package org.yuzu.yuzu_emu.model
enum class GameVerificationResult(val int: Int) {
Success(0),
Failed(1),
NotImplemented(2);
companion object {
fun from(int: Int): GameVerificationResult =
entries.firstOrNull { it.int == int } ?: Success
}
}

View File

@ -31,6 +31,12 @@ class HomeViewModel : ViewModel() {
private val _reloadPropertiesList = MutableStateFlow(false)
val reloadPropertiesList get() = _reloadPropertiesList.asStateFlow()
private val _checkKeys = MutableStateFlow(false)
val checkKeys = _checkKeys.asStateFlow()
private val _checkDecryption = MutableStateFlow(false)
val checkDecryption = _checkDecryption.asStateFlow()
var navigatedToSetup = false
fun setNavigationVisibility(visible: Boolean, animated: Boolean) {
@ -66,4 +72,12 @@ class HomeViewModel : ViewModel() {
fun reloadPropertiesList(reload: Boolean) {
_reloadPropertiesList.value = reload
}
fun setCheckKeys(value: Boolean) {
_checkKeys.value = value
}
fun setCheckDecryption(value: Boolean) {
_checkDecryption.value = value
}
}

View File

@ -0,0 +1,15 @@
// SPDX-FileCopyrightText: 2024 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
package org.yuzu.yuzu_emu.model
enum class InstallResult(val int: Int) {
Success(0),
Overwrite(1),
Failure(2),
BaseInstallAttempted(3);
companion object {
fun from(int: Int): InstallResult = entries.firstOrNull { it.int == int } ?: Success
}
}

View File

@ -0,0 +1,16 @@
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
package org.yuzu.yuzu_emu.model
import androidx.annotation.Keep
@Keep
data class Patch(
var enabled: Boolean,
val name: String,
val version: String,
val type: Int,
val programId: String,
val titleId: String
)

View File

@ -0,0 +1,14 @@
// SPDX-FileCopyrightText: 2024 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
package org.yuzu.yuzu_emu.model
enum class PatchType(val int: Int) {
Update(0),
DLC(1),
Mod(2);
companion object {
fun from(int: Int): PatchType = entries.firstOrNull { it.int == int } ?: Update
}
}

View File

@ -8,6 +8,7 @@ import androidx.lifecycle.viewModelScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.launch
class TaskViewModel : ViewModel() {
@ -23,13 +24,28 @@ class TaskViewModel : ViewModel() {
val cancelled: StateFlow<Boolean> get() = _cancelled
private val _cancelled = MutableStateFlow(false)
lateinit var task: suspend () -> Any
private val _progress = MutableStateFlow(0.0)
val progress = _progress.asStateFlow()
private val _maxProgress = MutableStateFlow(0.0)
val maxProgress = _maxProgress.asStateFlow()
private val _message = MutableStateFlow("")
val message = _message.asStateFlow()
lateinit var task: suspend (
progressCallback: (max: Long, progress: Long) -> Boolean,
messageCallback: (message: String) -> Unit
) -> Any
fun clear() {
_result.value = Any()
_isComplete.value = false
_isRunning.value = false
_cancelled.value = false
_progress.value = 0.0
_maxProgress.value = 0.0
_message.value = ""
}
fun setCancelled(value: Boolean) {
@ -43,7 +59,16 @@ class TaskViewModel : ViewModel() {
_isRunning.value = true
viewModelScope.launch(Dispatchers.IO) {
val res = task()
val res = task(
{ max, progress ->
_maxProgress.value = max.toDouble()
_progress.value = progress.toDouble()
return@task cancelled.value
},
{ message ->
_message.value = message
}
)
_result.value = res
_isComplete.value = true
_isRunning.value = false

View File

@ -38,12 +38,13 @@ import org.yuzu.yuzu_emu.activities.EmulationActivity
import org.yuzu.yuzu_emu.databinding.ActivityMainBinding
import org.yuzu.yuzu_emu.features.settings.model.Settings
import org.yuzu.yuzu_emu.fragments.AddGameFolderDialogFragment
import org.yuzu.yuzu_emu.fragments.IndeterminateProgressDialogFragment
import org.yuzu.yuzu_emu.fragments.ProgressDialogFragment
import org.yuzu.yuzu_emu.fragments.MessageDialogFragment
import org.yuzu.yuzu_emu.model.AddonViewModel
import org.yuzu.yuzu_emu.model.DriverViewModel
import org.yuzu.yuzu_emu.model.GamesViewModel
import org.yuzu.yuzu_emu.model.HomeViewModel
import org.yuzu.yuzu_emu.model.InstallResult
import org.yuzu.yuzu_emu.model.TaskState
import org.yuzu.yuzu_emu.model.TaskViewModel
import org.yuzu.yuzu_emu.utils.*
@ -63,6 +64,9 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
override var themeId: Int = 0
private val CHECKED_DECRYPTION = "CheckedDecryption"
private var checkedDecryption = false
override fun onCreate(savedInstanceState: Bundle?) {
val splashScreen = installSplashScreen()
splashScreen.setKeepOnScreenCondition { !DirectoryInitialization.areDirectoriesReady }
@ -74,6 +78,14 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
if (savedInstanceState != null) {
checkedDecryption = savedInstanceState.getBoolean(CHECKED_DECRYPTION)
}
if (!checkedDecryption) {
checkKeys()
checkedDecryption = true
}
WindowCompat.setDecorFitsSystemWindows(window, false)
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING)
@ -149,6 +161,26 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
}
}
}
launch {
repeatOnLifecycle(Lifecycle.State.CREATED) {
homeViewModel.checkKeys.collect {
if (it) {
checkKeys()
homeViewModel.setCheckKeys(false)
}
}
}
}
launch {
repeatOnLifecycle(Lifecycle.State.CREATED) {
homeViewModel.checkDecryption.collect {
if (it) {
checkDecryption()
homeViewModel.setCheckDecryption(false)
}
}
}
}
}
// Dismiss previous notifications (should not happen unless a crash occurred)
@ -157,6 +189,35 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
setInsets()
}
private fun checkKeys() {
if (!NativeLibrary.areKeysPresent()) {
MessageDialogFragment.newInstance(
titleId = R.string.keys_missing,
descriptionId = R.string.keys_missing_description,
helpLinkId = R.string.keys_missing_help,
dismissible = false,
positiveAction = { homeViewModel.setCheckDecryption(true) }
).show(supportFragmentManager, MessageDialogFragment.TAG)
} else {
checkDecryption()
}
}
private fun checkDecryption() {
if (!NativeLibrary.canDecryptSystemArchive()) {
MessageDialogFragment.newInstance(
titleId = R.string.decryption_failed,
descriptionId = R.string.decryption_failed_description,
helpLinkId = R.string.keys_missing_help
).show(supportFragmentManager, MessageDialogFragment.TAG)
}
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putBoolean(CHECKED_DECRYPTION, checkedDecryption)
}
fun finishSetup(navController: NavController) {
navController.navigate(R.id.action_firstTimeSetupFragment_to_gamesFragment)
(binding.navigationView as NavigationBarView).setupWithNavController(navController)
@ -348,6 +409,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
R.string.install_keys_success,
Toast.LENGTH_SHORT
).show()
homeViewModel.setCheckKeys(true)
gamesViewModel.reloadGames(true)
return true
} else {
@ -369,26 +431,23 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
return@registerForActivityResult
}
val inputZip = contentResolver.openInputStream(result)
if (inputZip == null) {
Toast.makeText(
applicationContext,
getString(R.string.fatal_error),
Toast.LENGTH_LONG
).show()
return@registerForActivityResult
}
val filterNCA = FilenameFilter { _, dirName -> dirName.endsWith(".nca") }
val firmwarePath =
File(DirectoryInitialization.userDirectory + "/nand/system/Contents/registered/")
val cacheFirmwareDir = File("${cacheDir.path}/registered/")
val task: () -> Any = {
ProgressDialogFragment.newInstance(
this,
R.string.firmware_installing
) { progressCallback, _ ->
var messageToShow: Any
try {
FileUtil.unzipToInternalStorage(BufferedInputStream(inputZip), cacheFirmwareDir)
FileUtil.unzipToInternalStorage(
result.toString(),
cacheFirmwareDir,
progressCallback
)
val unfilteredNumOfFiles = cacheFirmwareDir.list()?.size ?: -1
val filteredNumOfFiles = cacheFirmwareDir.list(filterNCA)?.size ?: -2
messageToShow = if (unfilteredNumOfFiles != filteredNumOfFiles) {
@ -401,21 +460,17 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
firmwarePath.deleteRecursively()
cacheFirmwareDir.copyRecursively(firmwarePath, true)
NativeLibrary.initializeSystem(true)
homeViewModel.setCheckKeys(true)
getString(R.string.save_file_imported_success)
}
} catch (e: Exception) {
Log.error("[MainActivity] Firmware install failed - ${e.message}")
messageToShow = getString(R.string.fatal_error)
} finally {
cacheFirmwareDir.deleteRecursively()
}
messageToShow
}
IndeterminateProgressDialogFragment.newInstance(
this,
R.string.firmware_installing,
task = task
).show(supportFragmentManager, IndeterminateProgressDialogFragment.TAG)
}.show(supportFragmentManager, ProgressDialogFragment.TAG)
}
val getAmiiboKey =
@ -474,11 +529,11 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
return@registerForActivityResult
}
IndeterminateProgressDialogFragment.newInstance(
ProgressDialogFragment.newInstance(
this@MainActivity,
R.string.verifying_content,
false
) {
) { _, _ ->
var updatesMatchProgram = true
for (document in documents) {
val valid = NativeLibrary.doesUpdateMatchProgram(
@ -501,44 +556,42 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
positiveAction = { homeViewModel.setContentToInstall(documents) }
)
}
}.show(supportFragmentManager, IndeterminateProgressDialogFragment.TAG)
}.show(supportFragmentManager, ProgressDialogFragment.TAG)
}
private fun installContent(documents: List<Uri>) {
IndeterminateProgressDialogFragment.newInstance(
ProgressDialogFragment.newInstance(
this@MainActivity,
R.string.installing_game_content
) {
) { progressCallback, messageCallback ->
var installSuccess = 0
var installOverwrite = 0
var errorBaseGame = 0
var errorExtension = 0
var errorOther = 0
var error = 0
documents.forEach {
messageCallback.invoke(FileUtil.getFilename(it))
when (
NativeLibrary.installFileToNand(
it.toString(),
FileUtil.getExtension(it)
InstallResult.from(
NativeLibrary.installFileToNand(
it.toString(),
progressCallback
)
)
) {
NativeLibrary.InstallFileToNandResult.Success -> {
InstallResult.Success -> {
installSuccess += 1
}
NativeLibrary.InstallFileToNandResult.SuccessFileOverwritten -> {
InstallResult.Overwrite -> {
installOverwrite += 1
}
NativeLibrary.InstallFileToNandResult.ErrorBaseGame -> {
InstallResult.BaseInstallAttempted -> {
errorBaseGame += 1
}
NativeLibrary.InstallFileToNandResult.ErrorFilenameExtension -> {
errorExtension += 1
}
else -> {
errorOther += 1
InstallResult.Failure -> {
error += 1
}
}
}
@ -565,7 +618,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
)
installResult.append(separator)
}
val errorTotal: Int = errorBaseGame + errorExtension + errorOther
val errorTotal: Int = errorBaseGame + error
if (errorTotal > 0) {
installResult.append(separator)
installResult.append(
@ -582,14 +635,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
)
installResult.append(separator)
}
if (errorExtension > 0) {
installResult.append(separator)
installResult.append(
getString(R.string.install_game_content_failure_file_extension)
)
installResult.append(separator)
}
if (errorOther > 0) {
if (error > 0) {
installResult.append(
getString(R.string.install_game_content_failure_description)
)
@ -608,7 +654,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
descriptionString = installResult.toString().trim()
)
}
}.show(supportFragmentManager, IndeterminateProgressDialogFragment.TAG)
}.show(supportFragmentManager, ProgressDialogFragment.TAG)
}
val exportUserData = registerForActivityResult(
@ -618,16 +664,16 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
return@registerForActivityResult
}
IndeterminateProgressDialogFragment.newInstance(
ProgressDialogFragment.newInstance(
this,
R.string.exporting_user_data,
true
) {
) { progressCallback, _ ->
val zipResult = FileUtil.zipFromInternalStorage(
File(DirectoryInitialization.userDirectory!!),
DirectoryInitialization.userDirectory!!,
BufferedOutputStream(contentResolver.openOutputStream(result)),
taskViewModel.cancelled,
progressCallback,
compression = false
)
return@newInstance when (zipResult) {
@ -635,7 +681,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
TaskState.Failed -> R.string.export_failed
TaskState.Cancelled -> R.string.user_data_export_cancelled
}
}.show(supportFragmentManager, IndeterminateProgressDialogFragment.TAG)
}.show(supportFragmentManager, ProgressDialogFragment.TAG)
}
val importUserData =
@ -644,10 +690,10 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
return@registerForActivityResult
}
IndeterminateProgressDialogFragment.newInstance(
ProgressDialogFragment.newInstance(
this,
R.string.importing_user_data
) {
) { progressCallback, _ ->
val checkStream =
ZipInputStream(BufferedInputStream(contentResolver.openInputStream(result)))
var isYuzuBackup = false
@ -676,8 +722,9 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
// Copy archive to internal storage
try {
FileUtil.unzipToInternalStorage(
BufferedInputStream(contentResolver.openInputStream(result)),
File(DirectoryInitialization.userDirectory!!)
result.toString(),
File(DirectoryInitialization.userDirectory!!),
progressCallback
)
} catch (e: Exception) {
return@newInstance MessageDialogFragment.newInstance(
@ -694,6 +741,6 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
driverViewModel.reloadDriverData()
return@newInstance getString(R.string.user_data_import_success)
}.show(supportFragmentManager, IndeterminateProgressDialogFragment.TAG)
}.show(supportFragmentManager, ProgressDialogFragment.TAG)
}
}

View File

@ -7,7 +7,6 @@ import android.database.Cursor
import android.net.Uri
import android.provider.DocumentsContract
import androidx.documentfile.provider.DocumentFile
import kotlinx.coroutines.flow.StateFlow
import java.io.BufferedInputStream
import java.io.File
import java.io.IOException
@ -19,6 +18,7 @@ import org.yuzu.yuzu_emu.YuzuApplication
import org.yuzu.yuzu_emu.model.MinimalDocumentFile
import org.yuzu.yuzu_emu.model.TaskState
import java.io.BufferedOutputStream
import java.io.OutputStream
import java.lang.NullPointerException
import java.nio.charset.StandardCharsets
import java.util.zip.Deflater
@ -104,7 +104,7 @@ object FileUtil {
/**
* Reference: https://stackoverflow.com/questions/42186820/documentfile-is-very-slow
* This function will be faster than DoucmentFile.listFiles
* This function will be faster than DocumentFile.listFiles
* @param uri Directory uri.
* @return CheapDocument lists.
*/
@ -283,12 +283,34 @@ object FileUtil {
/**
* Extracts the given zip file into the given directory.
* @param path String representation of a [Uri] or a typical path delimited by '/'
* @param destDir Location to unzip the contents of [path] into
* @param progressCallback Lambda that is called with the total number of files and the current
* progress through the process. Stops execution as soon as possible if this returns true.
*/
@Throws(SecurityException::class)
fun unzipToInternalStorage(zipStream: BufferedInputStream, destDir: File) {
ZipInputStream(zipStream).use { zis ->
fun unzipToInternalStorage(
path: String,
destDir: File,
progressCallback: (max: Long, progress: Long) -> Boolean = { _, _ -> false }
) {
var totalEntries = 0L
ZipInputStream(getInputStream(path)).use { zis ->
var tempEntry = zis.nextEntry
while (tempEntry != null) {
tempEntry = zis.nextEntry
totalEntries++
}
}
var progress = 0L
ZipInputStream(getInputStream(path)).use { zis ->
var entry: ZipEntry? = zis.nextEntry
while (entry != null) {
if (progressCallback.invoke(totalEntries, progress)) {
return@use
}
val newFile = File(destDir, entry.name)
val destinationDirectory = if (entry.isDirectory) newFile else newFile.parentFile
@ -304,6 +326,7 @@ object FileUtil {
newFile.outputStream().use { fos -> zis.copyTo(fos) }
}
entry = zis.nextEntry
progress++
}
}
}
@ -313,14 +336,15 @@ object FileUtil {
* @param inputFile File representation of the item that will be zipped
* @param rootDir Directory containing the inputFile
* @param outputStream Stream where the zip file will be output
* @param cancelled [StateFlow] that reports whether this process has been cancelled
* @param progressCallback Lambda that is called with the total number of files and the current
* progress through the process. Stops execution as soon as possible if this returns true.
* @param compression Disables compression if true
*/
fun zipFromInternalStorage(
inputFile: File,
rootDir: String,
outputStream: BufferedOutputStream,
cancelled: StateFlow<Boolean>? = null,
progressCallback: (max: Long, progress: Long) -> Boolean = { _, _ -> false },
compression: Boolean = true
): TaskState {
try {
@ -330,8 +354,10 @@ object FileUtil {
zos.setLevel(Deflater.NO_COMPRESSION)
}
var count = 0L
val totalFiles = inputFile.walkTopDown().count().toLong()
inputFile.walkTopDown().forEach { file ->
if (cancelled?.value == true) {
if (progressCallback.invoke(totalFiles, count)) {
return TaskState.Cancelled
}
@ -343,6 +369,7 @@ object FileUtil {
if (file.isFile) {
file.inputStream().use { fis -> fis.copyTo(zos) }
}
count++
}
}
}
@ -356,9 +383,14 @@ object FileUtil {
/**
* Helper function that copies the contents of a DocumentFile folder into a [File]
* @param file [File] representation of the folder to copy into
* @param progressCallback Lambda that is called with the total number of files and the current
* progress through the process. Stops execution as soon as possible if this returns true.
* @throws IllegalStateException Fails when trying to copy a folder into a file and vice versa
*/
fun DocumentFile.copyFilesTo(file: File) {
fun DocumentFile.copyFilesTo(
file: File,
progressCallback: (max: Long, progress: Long) -> Boolean = { _, _ -> false }
) {
file.mkdirs()
if (!this.isDirectory || !file.isDirectory) {
throw IllegalStateException(
@ -366,7 +398,13 @@ object FileUtil {
)
}
var count = 0L
val totalFiles = this.listFiles().size.toLong()
this.listFiles().forEach {
if (progressCallback.invoke(totalFiles, count)) {
return
}
val newFile = File(file, it.name!!)
if (it.isDirectory) {
newFile.mkdirs()
@ -381,6 +419,7 @@ object FileUtil {
newFile.outputStream().use { os -> bos.copyTo(os) }
}
}
count++
}
}
@ -427,6 +466,18 @@ object FileUtil {
}
}
fun getInputStream(path: String) = if (path.contains("content://")) {
Uri.parse(path).inputStream()
} else {
File(path).inputStream()
}
fun getOutputStream(path: String) = if (path.contains("content://")) {
Uri.parse(path).outputStream()
} else {
File(path).outputStream()
}
@Throws(IOException::class)
fun getStringFromFile(file: File): String =
String(file.readBytes(), StandardCharsets.UTF_8)
@ -434,4 +485,19 @@ object FileUtil {
@Throws(IOException::class)
fun getStringFromInputStream(stream: InputStream): String =
String(stream.readBytes(), StandardCharsets.UTF_8)
fun DocumentFile.inputStream(): InputStream =
YuzuApplication.appContext.contentResolver.openInputStream(uri)!!
fun DocumentFile.outputStream(): OutputStream =
YuzuApplication.appContext.contentResolver.openOutputStream(uri)!!
fun Uri.inputStream(): InputStream =
YuzuApplication.appContext.contentResolver.openInputStream(this)!!
fun Uri.outputStream(): OutputStream =
YuzuApplication.appContext.contentResolver.openOutputStream(this)!!
fun Uri.asDocumentFile(): DocumentFile? =
DocumentFile.fromSingleUri(YuzuApplication.appContext, this)
}

View File

@ -5,7 +5,10 @@ package org.yuzu.yuzu_emu.utils
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.graphics.drawable.LayerDrawable
import android.widget.ImageView
import androidx.core.content.res.ResourcesCompat
import androidx.core.graphics.drawable.IconCompat
import androidx.core.graphics.drawable.toBitmap
import androidx.core.graphics.drawable.toDrawable
import androidx.lifecycle.LifecycleOwner
@ -85,4 +88,22 @@ object GameIconUtils {
return imageLoader.execute(request)
.drawable!!.toBitmap(config = Bitmap.Config.ARGB_8888)
}
suspend fun getShortcutIcon(lifecycleOwner: LifecycleOwner, game: Game): IconCompat {
val layerDrawable = ResourcesCompat.getDrawable(
YuzuApplication.appContext.resources,
R.drawable.shortcut,
null
) as LayerDrawable
layerDrawable.setDrawableByLayerId(
R.id.shortcut_foreground,
getGameIcon(lifecycleOwner, game).toDrawable(YuzuApplication.appContext.resources)
)
val inset = YuzuApplication.appContext.resources
.getDimensionPixelSize(R.dimen.icon_inset)
layerDrawable.setLayerInset(1, inset, inset, inset, inset)
return IconCompat.createWithAdaptiveBitmap(
layerDrawable.toBitmap(config = Bitmap.Config.ARGB_8888)
)
}
}

View File

@ -5,7 +5,6 @@ package org.yuzu.yuzu_emu.utils
import android.net.Uri
import android.os.Build
import java.io.BufferedInputStream
import java.io.File
import java.io.IOException
import org.yuzu.yuzu_emu.NativeLibrary
@ -123,7 +122,7 @@ object GpuDriverHelper {
// Unzip the driver.
try {
FileUtil.unzipToInternalStorage(
BufferedInputStream(copiedFile.inputStream()),
copiedFile.path,
File(driverInstallationPath!!)
)
} catch (e: SecurityException) {
@ -156,7 +155,7 @@ object GpuDriverHelper {
// Unzip the driver to the private installation directory
try {
FileUtil.unzipToInternalStorage(
BufferedInputStream(driver.inputStream()),
driver.path,
File(driverInstallationPath!!)
)
} catch (e: SecurityException) {

View File

@ -42,3 +42,19 @@ double GetJDouble(JNIEnv* env, jobject jdouble) {
jobject ToJDouble(JNIEnv* env, double value) {
return env->NewObject(IDCache::GetDoubleClass(), IDCache::GetDoubleConstructor(), value);
}
s32 GetJInteger(JNIEnv* env, jobject jinteger) {
return env->GetIntField(jinteger, IDCache::GetIntegerValueField());
}
jobject ToJInteger(JNIEnv* env, s32 value) {
return env->NewObject(IDCache::GetIntegerClass(), IDCache::GetIntegerConstructor(), value);
}
bool GetJBoolean(JNIEnv* env, jobject jboolean) {
return env->GetBooleanField(jboolean, IDCache::GetBooleanValueField());
}
jobject ToJBoolean(JNIEnv* env, bool value) {
return env->NewObject(IDCache::GetBooleanClass(), IDCache::GetBooleanConstructor(), value);
}

View File

@ -6,6 +6,7 @@
#include <string>
#include <jni.h>
#include "common/common_types.h"
std::string GetJString(JNIEnv* env, jstring jstr);
jstring ToJString(JNIEnv* env, std::string_view str);
@ -13,3 +14,9 @@ jstring ToJString(JNIEnv* env, std::u16string_view str);
double GetJDouble(JNIEnv* env, jobject jdouble);
jobject ToJDouble(JNIEnv* env, double value);
s32 GetJInteger(JNIEnv* env, jobject jinteger);
jobject ToJInteger(JNIEnv* env, s32 value);
bool GetJBoolean(JNIEnv* env, jobject jboolean);
jobject ToJBoolean(JNIEnv* env, bool value);

View File

@ -21,7 +21,7 @@ void AndroidConfig::ReloadAllValues() {
}
void AndroidConfig::SaveAllValues() {
Save();
SaveValues();
SaveAndroidValues();
}

View File

@ -63,6 +63,7 @@ struct Values {
Settings::Setting<bool> show_input_overlay{linkage, true, "show_input_overlay",
Settings::Category::Overlay};
Settings::Setting<bool> touchscreen{linkage, true, "touchscreen", Settings::Category::Overlay};
Settings::Setting<s32> lock_drawer{linkage, false, "lock_drawer", Settings::Category::Overlay};
};
extern Values values;

View File

@ -43,10 +43,27 @@ static jfieldID s_overlay_control_data_landscape_position_field;
static jfieldID s_overlay_control_data_portrait_position_field;
static jfieldID s_overlay_control_data_foldable_position_field;
static jclass s_patch_class;
static jmethodID s_patch_constructor;
static jfieldID s_patch_enabled_field;
static jfieldID s_patch_name_field;
static jfieldID s_patch_version_field;
static jfieldID s_patch_type_field;
static jfieldID s_patch_program_id_field;
static jfieldID s_patch_title_id_field;
static jclass s_double_class;
static jmethodID s_double_constructor;
static jfieldID s_double_value_field;
static jclass s_integer_class;
static jmethodID s_integer_constructor;
static jfieldID s_integer_value_field;
static jclass s_boolean_class;
static jmethodID s_boolean_constructor;
static jfieldID s_boolean_value_field;
static constexpr jint JNI_VERSION = JNI_VERSION_1_6;
namespace IDCache {
@ -186,6 +203,38 @@ jfieldID GetOverlayControlDataFoldablePositionField() {
return s_overlay_control_data_foldable_position_field;
}
jclass GetPatchClass() {
return s_patch_class;
}
jmethodID GetPatchConstructor() {
return s_patch_constructor;
}
jfieldID GetPatchEnabledField() {
return s_patch_enabled_field;
}
jfieldID GetPatchNameField() {
return s_patch_name_field;
}
jfieldID GetPatchVersionField() {
return s_patch_version_field;
}
jfieldID GetPatchTypeField() {
return s_patch_type_field;
}
jfieldID GetPatchProgramIdField() {
return s_patch_program_id_field;
}
jfieldID GetPatchTitleIdField() {
return s_patch_title_id_field;
}
jclass GetDoubleClass() {
return s_double_class;
}
@ -198,6 +247,30 @@ jfieldID GetDoubleValueField() {
return s_double_value_field;
}
jclass GetIntegerClass() {
return s_integer_class;
}
jmethodID GetIntegerConstructor() {
return s_integer_constructor;
}
jfieldID GetIntegerValueField() {
return s_integer_value_field;
}
jclass GetBooleanClass() {
return s_boolean_class;
}
jmethodID GetBooleanConstructor() {
return s_boolean_constructor;
}
jfieldID GetBooleanValueField() {
return s_boolean_value_field;
}
} // namespace IDCache
#ifdef __cplusplus
@ -278,12 +351,37 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) {
env->GetFieldID(overlay_control_data_class, "foldablePosition", "Lkotlin/Pair;");
env->DeleteLocalRef(overlay_control_data_class);
const jclass patch_class = env->FindClass("org/yuzu/yuzu_emu/model/Patch");
s_patch_class = reinterpret_cast<jclass>(env->NewGlobalRef(patch_class));
s_patch_constructor = env->GetMethodID(
patch_class, "<init>",
"(ZLjava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V");
s_patch_enabled_field = env->GetFieldID(patch_class, "enabled", "Z");
s_patch_name_field = env->GetFieldID(patch_class, "name", "Ljava/lang/String;");
s_patch_version_field = env->GetFieldID(patch_class, "version", "Ljava/lang/String;");
s_patch_type_field = env->GetFieldID(patch_class, "type", "I");
s_patch_program_id_field = env->GetFieldID(patch_class, "programId", "Ljava/lang/String;");
s_patch_title_id_field = env->GetFieldID(patch_class, "titleId", "Ljava/lang/String;");
env->DeleteLocalRef(patch_class);
const jclass double_class = env->FindClass("java/lang/Double");
s_double_class = reinterpret_cast<jclass>(env->NewGlobalRef(double_class));
s_double_constructor = env->GetMethodID(double_class, "<init>", "(D)V");
s_double_value_field = env->GetFieldID(double_class, "value", "D");
env->DeleteLocalRef(double_class);
const jclass int_class = env->FindClass("java/lang/Integer");
s_integer_class = reinterpret_cast<jclass>(env->NewGlobalRef(int_class));
s_integer_constructor = env->GetMethodID(int_class, "<init>", "(I)V");
s_integer_value_field = env->GetFieldID(int_class, "value", "I");
env->DeleteLocalRef(int_class);
const jclass boolean_class = env->FindClass("java/lang/Boolean");
s_boolean_class = reinterpret_cast<jclass>(env->NewGlobalRef(boolean_class));
s_boolean_constructor = env->GetMethodID(boolean_class, "<init>", "(Z)V");
s_boolean_value_field = env->GetFieldID(boolean_class, "value", "Z");
env->DeleteLocalRef(boolean_class);
// Initialize Android Storage
Common::FS::Android::RegisterCallbacks(env, s_native_library_class);
@ -309,7 +407,10 @@ void JNI_OnUnload(JavaVM* vm, void* reserved) {
env->DeleteGlobalRef(s_string_class);
env->DeleteGlobalRef(s_pair_class);
env->DeleteGlobalRef(s_overlay_control_data_class);
env->DeleteGlobalRef(s_patch_class);
env->DeleteGlobalRef(s_double_class);
env->DeleteGlobalRef(s_integer_class);
env->DeleteGlobalRef(s_boolean_class);
// UnInitialize applets
SoftwareKeyboard::CleanupJNI(env);

View File

@ -43,8 +43,25 @@ jfieldID GetOverlayControlDataLandscapePositionField();
jfieldID GetOverlayControlDataPortraitPositionField();
jfieldID GetOverlayControlDataFoldablePositionField();
jclass GetPatchClass();
jmethodID GetPatchConstructor();
jfieldID GetPatchEnabledField();
jfieldID GetPatchNameField();
jfieldID GetPatchVersionField();
jfieldID GetPatchTypeField();
jfieldID GetPatchProgramIdField();
jfieldID GetPatchTitleIdField();
jclass GetDoubleClass();
jmethodID GetDoubleConstructor();
jfieldID GetDoubleValueField();
jclass GetIntegerClass();
jmethodID GetIntegerConstructor();
jfieldID GetIntegerValueField();
jclass GetBooleanClass();
jmethodID GetBooleanConstructor();
jfieldID GetBooleanValueField();
} // namespace IDCache

View File

@ -17,6 +17,7 @@
#include <core/file_sys/patch_manager.h>
#include <core/file_sys/savedata_factory.h>
#include <core/loader/nro.h>
#include <frontend_common/content_manager.h>
#include <jni.h>
#include "common/detached_tasks.h"
@ -100,67 +101,6 @@ void EmulationSession::SetNativeWindow(ANativeWindow* native_window) {
m_native_window = native_window;
}
int EmulationSession::InstallFileToNand(std::string filename, std::string file_extension) {
jconst copy_func = [](const FileSys::VirtualFile& src, const FileSys::VirtualFile& dest,
std::size_t block_size) {
if (src == nullptr || dest == nullptr) {
return false;
}
if (!dest->Resize(src->GetSize())) {
return false;
}
using namespace Common::Literals;
[[maybe_unused]] std::vector<u8> buffer(1_MiB);
for (std::size_t i = 0; i < src->GetSize(); i += buffer.size()) {
jconst read = src->Read(buffer.data(), buffer.size(), i);
dest->Write(buffer.data(), read, i);
}
return true;
};
enum InstallResult {
Success = 0,
SuccessFileOverwritten = 1,
InstallError = 2,
ErrorBaseGame = 3,
ErrorFilenameExtension = 4,
};
[[maybe_unused]] std::shared_ptr<FileSys::NSP> nsp;
if (file_extension == "nsp") {
nsp = std::make_shared<FileSys::NSP>(m_vfs->OpenFile(filename, FileSys::Mode::Read));
if (nsp->IsExtractedType()) {
return InstallError;
}
} else {
return ErrorFilenameExtension;
}
if (!nsp) {
return InstallError;
}
if (nsp->GetStatus() != Loader::ResultStatus::Success) {
return InstallError;
}
jconst res = m_system.GetFileSystemController().GetUserNANDContents()->InstallEntry(*nsp, true,
copy_func);
switch (res) {
case FileSys::InstallResult::Success:
return Success;
case FileSys::InstallResult::OverwriteExisting:
return SuccessFileOverwritten;
case FileSys::InstallResult::ErrorBaseInstall:
return ErrorBaseGame;
default:
return InstallError;
}
}
void EmulationSession::InitializeGpuDriver(const std::string& hook_lib_dir,
const std::string& custom_driver_dir,
const std::string& custom_driver_name,
@ -307,6 +247,7 @@ Core::SystemResultStatus EmulationSession::InitializeEmulation(const std::string
m_system.GetCpuManager().OnGpuReady();
m_system.RegisterExitCallback([&] { HaltEmulation(); });
OnEmulationStarted();
return Core::SystemResultStatus::Success;
}
@ -512,10 +453,20 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_setAppDirectory(JNIEnv* env, jobject
}
int Java_org_yuzu_yuzu_1emu_NativeLibrary_installFileToNand(JNIEnv* env, jobject instance,
jstring j_file,
jstring j_file_extension) {
return EmulationSession::GetInstance().InstallFileToNand(GetJString(env, j_file),
GetJString(env, j_file_extension));
jstring j_file, jobject jcallback) {
auto jlambdaClass = env->GetObjectClass(jcallback);
auto jlambdaInvokeMethod = env->GetMethodID(
jlambdaClass, "invoke", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
const auto callback = [env, jcallback, jlambdaInvokeMethod](size_t max, size_t progress) {
auto jwasCancelled = env->CallObjectMethod(jcallback, jlambdaInvokeMethod,
ToJDouble(env, max), ToJDouble(env, progress));
return GetJBoolean(env, jwasCancelled);
};
return static_cast<int>(
ContentManager::InstallNSP(EmulationSession::GetInstance().System(),
*EmulationSession::GetInstance().System().GetFilesystem(),
GetJString(env, j_file), callback));
}
jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_doesUpdateMatchProgram(JNIEnv* env, jobject jobj,
@ -724,6 +675,11 @@ jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getCpuBackend(JNIEnv* env, jclass
return ToJString(env, "JIT");
}
jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getGpuDriver(JNIEnv* env, jobject jobj) {
return ToJString(env,
EmulationSession::GetInstance().System().GPU().Renderer().GetDeviceVendor());
}
void Java_org_yuzu_yuzu_1emu_NativeLibrary_applySettings(JNIEnv* env, jobject jobj) {
EmulationSession::GetInstance().System().ApplySettings();
}
@ -770,8 +726,8 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeEmptyUserDirectory(JNIEnv*
ASSERT(user_id);
const auto user_save_data_path = FileSys::SaveDataFactory::GetFullPath(
EmulationSession::GetInstance().System(), vfs_nand_dir, FileSys::SaveDataSpaceId::NandUser,
FileSys::SaveDataType::SaveData, 1, user_id->AsU128(), 0);
{}, vfs_nand_dir, FileSys::SaveDataSpaceId::NandUser, FileSys::SaveDataType::SaveData, 1,
user_id->AsU128(), 0);
const auto full_path = Common::FS::ConcatPathSafe(nand_dir, user_save_data_path);
if (!Common::FS::CreateParentDirs(full_path)) {
@ -824,9 +780,9 @@ jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isFirmwareAvailable(JNIEnv* env,
return true;
}
jobjectArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getAddonsForFile(JNIEnv* env, jobject jobj,
jstring jpath,
jstring jprogramId) {
jobjectArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getPatchesForFile(JNIEnv* env, jobject jobj,
jstring jpath,
jstring jprogramId) {
const auto path = GetJString(env, jpath);
const auto vFile =
Core::GetGameFileFromPath(EmulationSession::GetInstance().System().GetFilesystem(), path);
@ -843,20 +799,78 @@ jobjectArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getAddonsForFile(JNIEnv* env,
FileSys::VirtualFile update_raw;
loader->ReadUpdateRaw(update_raw);
auto addons = pm.GetPatchVersionNames(update_raw);
auto jemptyString = ToJString(env, "");
auto jemptyStringPair = env->NewObject(IDCache::GetPairClass(), IDCache::GetPairConstructor(),
jemptyString, jemptyString);
jobjectArray jaddonsArray =
env->NewObjectArray(addons.size(), IDCache::GetPairClass(), jemptyStringPair);
auto patches = pm.GetPatches(update_raw);
jobjectArray jpatchArray =
env->NewObjectArray(patches.size(), IDCache::GetPatchClass(), nullptr);
int i = 0;
for (const auto& addon : addons) {
jobject jaddon = env->NewObject(IDCache::GetPairClass(), IDCache::GetPairConstructor(),
ToJString(env, addon.first), ToJString(env, addon.second));
env->SetObjectArrayElement(jaddonsArray, i, jaddon);
for (const auto& patch : patches) {
jobject jpatch = env->NewObject(
IDCache::GetPatchClass(), IDCache::GetPatchConstructor(), patch.enabled,
ToJString(env, patch.name), ToJString(env, patch.version),
static_cast<jint>(patch.type), ToJString(env, std::to_string(patch.program_id)),
ToJString(env, std::to_string(patch.title_id)));
env->SetObjectArrayElement(jpatchArray, i, jpatch);
++i;
}
return jaddonsArray;
return jpatchArray;
}
void Java_org_yuzu_yuzu_1emu_NativeLibrary_removeUpdate(JNIEnv* env, jobject jobj,
jstring jprogramId) {
auto program_id = EmulationSession::GetProgramId(env, jprogramId);
ContentManager::RemoveUpdate(EmulationSession::GetInstance().System().GetFileSystemController(),
program_id);
}
void Java_org_yuzu_yuzu_1emu_NativeLibrary_removeDLC(JNIEnv* env, jobject jobj,
jstring jprogramId) {
auto program_id = EmulationSession::GetProgramId(env, jprogramId);
ContentManager::RemoveAllDLC(EmulationSession::GetInstance().System(), program_id);
}
void Java_org_yuzu_yuzu_1emu_NativeLibrary_removeMod(JNIEnv* env, jobject jobj, jstring jprogramId,
jstring jname) {
auto program_id = EmulationSession::GetProgramId(env, jprogramId);
ContentManager::RemoveMod(EmulationSession::GetInstance().System().GetFileSystemController(),
program_id, GetJString(env, jname));
}
jobjectArray Java_org_yuzu_yuzu_1emu_NativeLibrary_verifyInstalledContents(JNIEnv* env,
jobject jobj,
jobject jcallback) {
auto jlambdaClass = env->GetObjectClass(jcallback);
auto jlambdaInvokeMethod = env->GetMethodID(
jlambdaClass, "invoke", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
const auto callback = [env, jcallback, jlambdaInvokeMethod](size_t max, size_t progress) {
auto jwasCancelled = env->CallObjectMethod(jcallback, jlambdaInvokeMethod,
ToJDouble(env, max), ToJDouble(env, progress));
return GetJBoolean(env, jwasCancelled);
};
auto& session = EmulationSession::GetInstance();
std::vector<std::string> result = ContentManager::VerifyInstalledContents(
session.System(), *session.GetContentProvider(), callback);
jobjectArray jresult =
env->NewObjectArray(result.size(), IDCache::GetStringClass(), ToJString(env, ""));
for (size_t i = 0; i < result.size(); ++i) {
env->SetObjectArrayElement(jresult, i, ToJString(env, result[i]));
}
return jresult;
}
jint Java_org_yuzu_yuzu_1emu_NativeLibrary_verifyGameContents(JNIEnv* env, jobject jobj,
jstring jpath, jobject jcallback) {
auto jlambdaClass = env->GetObjectClass(jcallback);
auto jlambdaInvokeMethod = env->GetMethodID(
jlambdaClass, "invoke", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
const auto callback = [env, jcallback, jlambdaInvokeMethod](size_t max, size_t progress) {
auto jwasCancelled = env->CallObjectMethod(jcallback, jlambdaInvokeMethod,
ToJDouble(env, max), ToJDouble(env, progress));
return GetJBoolean(env, jwasCancelled);
};
auto& session = EmulationSession::GetInstance();
return static_cast<jint>(
ContentManager::VerifyGameContents(session.System(), GetJString(env, jpath), callback));
}
jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getSavePath(JNIEnv* env, jobject jobj,
@ -878,7 +892,7 @@ jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getSavePath(JNIEnv* env, jobject j
FileSys::Mode::Read);
const auto user_save_data_path = FileSys::SaveDataFactory::GetFullPath(
system, vfsNandDir, FileSys::SaveDataSpaceId::NandUser, FileSys::SaveDataType::SaveData,
{}, vfsNandDir, FileSys::SaveDataSpaceId::NandUser, FileSys::SaveDataType::SaveData,
program_id, user_id->AsU128(), 0);
return ToJString(env, user_save_data_path);
}
@ -905,4 +919,16 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_clearFilesystemProvider(JNIEnv* env,
EmulationSession::GetInstance().GetContentProvider()->ClearAllEntries();
}
jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_areKeysPresent(JNIEnv* env, jobject jobj) {
auto& system = EmulationSession::GetInstance().System();
system.GetFileSystemController().CreateFactories(*system.GetFilesystem());
return ContentManager::AreKeysPresent();
}
jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_canDecryptSystemArchive(JNIEnv* env, jobject jobj) {
auto& system = EmulationSession::GetInstance().System();
system.GetFileSystemController().CreateFactories(*system.GetFilesystem());
return ContentManager::CanDecryptSystemArchive(EmulationSession::GetInstance().System());
}
} // extern "C"

View File

@ -7,6 +7,7 @@
#include "core/file_sys/registered_cache.h"
#include "core/hle/service/acc/profile_manager.h"
#include "core/perf_stats.h"
#include "frontend_common/content_manager.h"
#include "jni/applets/software_keyboard.h"
#include "jni/emu_window/emu_window.h"
#include "video_core/rasterizer_interface.h"
@ -29,7 +30,6 @@ public:
void SetNativeWindow(ANativeWindow* native_window);
void SurfaceChanged();
int InstallFileToNand(std::string filename, std::string file_extension);
void InitializeGpuDriver(const std::string& hook_lib_dir, const std::string& custom_driver_dir,
const std::string& custom_driver_name,
const std::string& file_redirect_dir);

View File

@ -205,7 +205,7 @@ jboolean Java_org_yuzu_yuzu_1emu_utils_NativeConfig_getIsRuntimeModifiable(JNIEn
jstring jkey) {
auto setting = getSetting<std::string>(env, jkey);
if (setting != nullptr) {
return setting->RuntimeModfiable();
return setting->RuntimeModifiable();
}
return true;
}

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24"
android:width="24dp">
<path
android:fillColor="?attr/colorControlNormal"
android:pathData="M18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM12,17c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM15.1,8L8.9,8L8.9,6c0,-1.71 1.39,-3.1 3.1,-3.1 1.71,0 3.1,1.39 3.1,3.1v2z" />
</vector>

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="?attr/colorControlNormal"
android:pathData="M280,920q-33,0 -56.5,-23.5T200,840v-720q0,-33 23.5,-56.5T280,40h400q33,0 56.5,23.5T760,120v160h-80v-40L280,240v480h400v-40h80v160q0,33 -23.5,56.5T680,920L280,920ZM686,520L480,520v120h-80v-120q0,-33 23.5,-56.5T480,440h206l-62,-64 56,-56 160,160 -160,160 -56,-56 62,-64Z" />
</vector>

View File

@ -147,7 +147,7 @@
android:layout_marginHorizontal="20dp" />
<LinearLayout
android:id="@+id/button_build_hash"
android:id="@+id/button_version_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
@ -164,7 +164,7 @@
android:textAlignment="viewStart" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/text_build_hash"
android:id="@+id/text_version_name"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@ -43,16 +43,35 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<Button
android:id="@+id/button_back"
style="?attr/materialIconButtonStyle"
android:layout_width="wrap_content"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:layout_margin="8dp"
app:icon="@drawable/ic_back"
app:iconSize="24dp"
app:iconTint="?attr/colorOnSurface" />
android:orientation="horizontal">
<Button
android:id="@+id/button_back"
style="?attr/materialIconButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:icon="@drawable/ic_back"
app:iconSize="24dp"
app:iconTint="?attr/colorOnSurface"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button_shortcut"
style="?attr/materialIconButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:icon="@drawable/ic_shortcut"
app:iconSize="24dp"
app:iconTint="?attr/colorOnSurface"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.card.MaterialCardView
style="?attr/materialCardViewElevatedStyle"

View File

@ -2,16 +2,16 @@
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
style="?attr/materialCardViewFilledStyle"
style="?attr/materialCardViewElevatedStyle"
android:id="@+id/option_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:layout_marginHorizontal="12dp"
android:background="?attr/selectableItemBackground"
android:backgroundTint="?attr/colorSurfaceVariant"
android:clickable="true"
android:focusable="true">
android:focusable="true"
app:cardElevation="4dp">
<LinearLayout
android:id="@+id/option_layout"

View File

@ -1,8 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.progressindicator.LinearProgressIndicator xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/progress_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="24dp"
app:trackCornerRadius="4dp" />
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/message"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="12dp"
android:layout_marginBottom="6dp"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:requiresFadingEdge="horizontal"
android:singleLine="true"
android:textAlignment="viewStart"
android:visibility="gone" />
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/progress_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="24dp"
app:trackCornerRadius="4dp" />
</LinearLayout>

View File

@ -148,7 +148,7 @@
android:layout_marginHorizontal="20dp" />
<LinearLayout
android:id="@+id/button_build_hash"
android:id="@+id/button_version_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingVertical="16dp"
@ -165,7 +165,7 @@
android:text="@string/build" />
<com.google.android.material.textview.MaterialTextView
android:id="@+id/text_build_hash"
android:id="@+id/text_version_name"
style="@style/TextAppearance.Material3.BodyMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@ -118,6 +118,14 @@
android:layout_marginTop="16dp"
android:text="@string/copy_details" />
<com.google.android.material.button.MaterialButton
android:id="@+id/button_verify_integrity"
style="@style/Widget.Material3.Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/verify_integrity" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
@ -22,16 +21,35 @@
android:orientation="vertical"
android:gravity="center_horizontal">
<Button
android:id="@+id/button_back"
style="?attr/materialIconButtonStyle"
android:layout_width="wrap_content"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:layout_gravity="start"
app:icon="@drawable/ic_back"
app:iconSize="24dp"
app:iconTint="?attr/colorOnSurface" />
android:orientation="horizontal">
<Button
android:id="@+id/button_back"
style="?attr/materialIconButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:icon="@drawable/ic_back"
app:iconSize="24dp"
app:iconTint="?attr/colorOnSurface"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button_shortcut"
style="?attr/materialIconButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:icon="@drawable/ic_shortcut"
app:iconSize="24dp"
app:iconTint="?attr/colorOnSurface"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.card.MaterialCardView
style="?attr/materialCardViewElevatedStyle"
@ -45,7 +63,7 @@
android:id="@+id/image_game_screen"
android:layout_width="175dp"
android:layout_height="175dp"
tools:src="@drawable/default_icon"/>
tools:src="@drawable/default_icon" />
</com.google.android.material.card.MaterialCardView>

View File

@ -14,12 +14,11 @@
android:id="@+id/text_container"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="@+id/addon_switch"
app:layout_constraintEnd_toStartOf="@+id/addon_switch"
android:layout_marginEnd="16dp"
app:layout_constraintEnd_toStartOf="@+id/addon_checkbox"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/addon_switch">
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.textview.MaterialTextView
android:id="@+id/title"
@ -42,16 +41,29 @@
</LinearLayout>
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/addon_switch"
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/addon_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
android:gravity="center"
android:nextFocusLeft="@id/addon_container"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginEnd="8dp"
app:layout_constraintTop_toTopOf="@+id/text_container"
app:layout_constraintBottom_toBottomOf="@+id/text_container"
app:layout_constraintEnd_toStartOf="@+id/button_delete" />
<Button
android:id="@+id/button_delete"
style="@style/Widget.Material3.Button.IconButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:contentDescription="@string/delete"
android:tooltipText="@string/delete"
app:icon="@drawable/ic_delete"
app:iconTint="?attr/colorControlNormal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/text_container"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toTopOf="@+id/addon_checkbox"
app:layout_constraintBottom_toBottomOf="@+id/addon_checkbox" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -69,7 +69,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:visibility="gone"
android:text="@string/clear"
android:text="@string/use_global_setting"
tools:visibility="visible" />
</LinearLayout>

View File

@ -63,7 +63,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/clear"
android:text="@string/use_global_setting"
android:visibility="gone"
tools:visibility="visible" />

View File

@ -1,11 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_driver_clear"
android:icon="@drawable/ic_clear"
android:title="@string/clear"
app:showAsAction="always" />
android:id="@+id/menu_driver_use_global"
android:title="@string/use_global_setting" />
</menu>

View File

@ -21,6 +21,11 @@
android:icon="@drawable/ic_controller"
android:title="@string/emulation_input_overlay" />
<item
android:id="@+id/menu_lock_drawer"
android:icon="@drawable/ic_unlock"
android:title="@string/emulation_input_overlay" />
<item
android:id="@+id/menu_exit"
android:icon="@drawable/ic_exit"

View File

@ -3,38 +3,39 @@
<string name="emulation_notification_channel_name">المحاكي نشط</string>
<string name="emulation_notification_channel_description">اظهار اشعار دائم عندما يكون المحاكي نشطاً</string>
<string name="emulation_notification_running">يوزو يعمل</string>
<string name="emulation_notification_running">يوزو قيد التشغيل</string>
<string name="notice_notification_channel_name">الإشعارات والأخطاء</string>
<string name="notice_notification_channel_description">اظهار اشعار عند حصول اي مشكلة.</string>
<string name="notification_permission_not_granted">لم يتم منح إذن الإشعار</string>
<!-- Setup strings -->
<string name="welcome">مرحبًا</string>
<string name="welcome_description">والانتقال إلى المحاكاة <b>يوزو</b> تعرف على كيفية إعداد.</string>
<string name="welcome">مرحبا</string>
<string name="welcome_description">تعرف على كيفية إعداد <b>يوزو</b> والانتقال إلى المحاكاة</string>
<string name="get_started">لنبدأ</string>
<string name="keys">المفاتيح</string>
<string name="keys_description">اختر ملف &lt;b>prod.keys&lt;/b> من الزر ادناه</string>
<string name="select_keys">إختيار المفاتيح</string>
<string name="games">الألعاب</string>
<string name="games_description">اختر مجلد &lt;b>العابك&lt;/b> من الزر ادناه.</string>
<string name="games_description">حدد مجلد &lt;b>العابك&lt;/b> من الزر ادناه.</string>
<string name="done">إنهاء</string>
<string name="done_description">كل شيء جاهز./n استمتع بألعابك!</string>
<string name="done_description">أنت جاهز تمامًا. استمتع بألعابك!</string>
<string name="text_continue">استمر</string>
<string name="next">التالي</string>
<string name="back">عودة</string>
<string name="add_games">إضافة ألعاب</string>
<string name="add_games_description">إختار مجلد ألعابك</string>
<string name="add_games_description">حدد مجلد الألعاب الخاص بك</string>
<string name="step_complete">مكتمل</string>
<!-- Home strings -->
<string name="home_games">الألعاب</string>
<string name="home_search">البحث</string>
<string name="home_settings">الإعدادات</string>
<string name="empty_gamelist">لم يتم العثور على ملفات او لم يتم تحديد مسار العاب.</string>
<string name="search_and_filter_games">بحث وتصفية الألعاب</string>
<string name="select_games_folder">تحديد مجلد الألعاب</string>
<string name="empty_gamelist">لم يتم العثور على ملفات أو لم يتم تحديد مجلد الألعاب حتى الآن.</string>
<string name="search_and_filter_games">البحث وتصفية الألعاب</string>
<string name="select_games_folder">حدد مجلد الألعاب</string>
<string name="manage_game_folders">إدارة مجلدات اللعبة</string>
<string name="select_games_folder_description">يسمح لـ يوزو بملء قائمة الألعاب</string>
<string name="add_games_warning">تخطُ اختيار مجلد الالعاب؟</string>
<string name="add_games_warning">تخطي تحديد مجلد الألعاب؟</string>
<string name="add_games_warning_description">لن يتم عرض الألعاب في قائمة الألعاب إذا لم يتم تحديد مجلد</string>
<string name="add_games_warning_help">https://yuzu-emu.org/help/quickstart/#dumping-games</string>
<string name="home_search_games">البحث عن ألعاب</string>
@ -45,7 +46,7 @@
<string name="install_prod_keys_warning">تخطي إضافة المفاتيح؟</string>
<string name="install_prod_keys_warning_description">مطلوب مفاتيح صالحة لمحاكاة ألعاب البيع بالتجزئة. ستعمل تطبيقات البيرة المنزلية فقط إذا تابعت</string>
<string name="install_prod_keys_warning_help">https://yuzu-emu.org/help/quickstart/#guide-introduction</string>
<string name="notifications">التنبيهات</string>
<string name="notifications">الإشعارات</string>
<string name="notifications_description">امنح إذن الإشعار باستخدام الزر أدناه</string>
<string name="give_permission">منح الإذن</string>
<string name="notification_warning">تخطي منح إذن الإشعارات؟</string>
@ -62,9 +63,12 @@
<string name="invalid_keys_file">تم تحديد ملف مفاتيح غير صالح</string>
<string name="install_keys_success">تم تثبيت المفاتيح بنجاح</string>
<string name="reading_keys_failure">خطأ في قراءة مفاتيح التشفير</string>
<string name="install_prod_keys_failure_extension_description">وحاول مرة أخر keys تحقق من أن ملف المفاتيح له امتداد</string>
<string name="install_amiibo_keys_failure_extension_description">وحاول مرة أخر bin تحقق من أن ملف المفاتيح له امتداد</string>
<string name="invalid_keys_error">مفاتيح التشفير غير صالحة</string>
<string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string>
<string name="install_keys_failure_description">الملف المحدد غير صحيح أو تالف. يرجى إعادة المفاتيح الخاصة بك</string>
<string name="gpu_driver_manager">GPU مدير برنامج تشغيل</string>
<string name="install_gpu_driver">GPU تثبيت برنامج تشغيل</string>
<string name="install_gpu_driver_description">قم بتثبيت برامج تشغيل بديلة للحصول على أداء أو دقة أفضل</string>
<string name="advanced_settings">إعدادات متقدمة</string>
@ -82,22 +86,27 @@
<string name="notification_no_directory_link_description">الرجاء تحديد موقع مجلد المستخدم باستخدام اللوحة الجانبية لمدير الملفات يدويًا</string>
<string name="manage_save_data">إدارة حفظ البيانات</string>
<string name="manage_save_data_description">حفظ البيانات التي تم العثور عليها. يرجى اختيار أحد الخيارات التالية</string>
<string name="import_save_warning">استيراد حفظ البيانات</string>
<string name="import_save_warning_description">سيؤدي هذا إلى استبدال جميع بيانات الحفظ الموجودة بالملف المقدم. هل أنت متأكد أنك تريد الاستمرار؟</string>
<string name="import_export_saves_description">استيراد أو تصدير ملفات الحفظ</string>
<string name="save_files_importing">جاري استيراد ملفات الحفظ</string>
<string name="save_files_exporting">جاري تصدير ملفات الحفظ</string>
<string name="save_file_imported_success">تم الاستيراد بنجاح</string>
<string name="save_file_invalid_zip_structure">بنية مجلد الحفظ غير صالحة</string>
<string name="save_file_invalid_zip_structure_description">يجب أن يكون اسم المجلد الفرعي الأول هو معرف عنوان اللعبة.</string>
<string name="import_saves">استيراد</string>
<string name="export_saves">تصدير</string>
<string name="install_firmware">تثبيت البرامج الثابتة</string>
<string name="firmware_installing">تثبيت البرامج الثابتة</string>
<string name="firmware_installed_success">تم تثبيت البرامج الثابتة بنجاح</string>
<string name="firmware_installed_failure">فشل تثبيت البرامج الثابتة</string>
<string name="install_firmware">تثبيت فيرموير</string>
<string name="install_firmware_description">يجب أن يكون فيرموير في أرشيف مضغوط وهو ضروري لتشغيل بعض الألعاب</string>
<string name="firmware_installing">تثبيت فيرموير</string>
<string name="firmware_installed_success">تم تثبيت فيرموير بنجاح</string>
<string name="firmware_installed_failure">فشل تثبيت فيرموير</string>
<string name="share_log">مشاركة سجلات التصحيح</string>
<string name="share_log_description">مشاركة ملف سجل يوزو لتصحيح المشكلات</string>
<string name="share_log_missing">لم يتم العثور على ملف السجل</string>
<string name="install_game_content">تثبيت محتوى اللعبة</string>
<string name="install_game_content_description">DLC قم بتثبيت تحديثات اللعبة أو</string>
<string name="installing_game_content">جارٍ تثبيت المحتوى</string>
<string name="installing_game_content">جاري تثبيت المحتوى</string>
<string name="install_game_content_failure_base">لا يُسمح بتثبيت الألعاب الأساسية لتجنب التعارضات المحتملة.</string>
<string name="install_game_content_success_install">%1$d تم التثبيت بنجاح</string>
<string name="install_game_content_success_overwrite">%1$d تمت الكتابة فوقه بنجاح</string>
@ -105,19 +114,39 @@
<string name="custom_driver_not_supported">برامج التشغيل المخصصة غير مدعومة</string>
<string name="custom_driver_not_supported_description">تحميل برنامج التشغيل المخصص غير معتمد حاليًا لهذا الجهاز.\nحدد هذا الخيار مرة أخرى في المستقبل لمعرفة ما إذا تمت إضافة الدعم!</string>
<string name="manage_yuzu_data">إدارة بيانات يوزو</string>
<string name="manage_yuzu_data_description">استيراد/تصدير البرامج الثابتة والمفاتيح وبيانات المستخدم والمزيد!</string>
<string name="manage_yuzu_data_description">استيراد/تصدير فيرموير والمفاتيح وبيانات المستخدم والمزيد</string>
<string name="share_save_file">مشاركة ملف الحفظ</string>
<string name="export_save_failed">فشل تصدير الحفظ</string>
<string name="game_folders">مجلدات اللعبة</string>
<string name="deep_scan">فحص عميق</string>
<string name="add_game_folder">إضافة مجلد اللعبة</string>
<string name="folder_already_added">تمت إضافة هذا المجلد بالفعل</string>
<string name="game_folder_properties">خصائص مجلد اللعبة</string>
<string name="no_save_data_found">لم يتم العثور على بيانات الحفظ</string>
<!-- Applet launcher strings -->
<string name="applets">قائمة التطبيقات المصغرة</string>
<string name="applets_description">قم بتشغيل تطبيقات النظام باستخدام فيرموير المثبت</string>
<string name="applets_error_firmware">فيرموير غير مثبت</string>
<string name="applets_error_applet">التطبيق المصغر غير متوفر</string>
<string name="album_applet">الألبوم</string>
<string name="album_applet_description">شاهد الصور المخزنة في مجلد لقطات شاشة المستخدم باستخدام عارض صور النظام</string>
<string name="mii_edit_applet">تحرير Mii</string>
<string name="mii_edit_applet_description">باستخدام محرر النظام Miis عرض وتحرير</string>
<string name="cabinet_applet_description">تحرير وحذف البيانات المخزنة على أميبو</string>
<string name="cabinet_nickname_and_owner">إعدادات الاسم المستعار والمالك</string>
<string name="cabinet_game_data_eraser">ممحاة بيانات اللعبة</string>
<string name="copied_to_clipboard">نسخ إلى الحافظة</string>
<string name="about_app_description">محاكي سويتش مفتوح المصدر</string>
<string name="contributors">المساهمين</string>
<string name="contributors_description">مصنوع من فريق يوزو</string>
<string name="contributors_link">https://github.com/yuzu-emu/yuzu/graphs/contributors</string>
<string name="licenses_description">المشاريع التي تجعل تطبيق يوزو لنظام أندرويد ممكنًا</string>
<string name="build">البناء</string>
<string name="user_data">بيانات المستخدم</string>
<string name="exporting_user_data">جارٍ تصدير بيانات المستخدم</string>
<string name="importing_user_data">جارٍ استيراد بيانات المستخدم</string>
<string name="user_data_description">استيراد/تصدير جميع بيانات التطبيق. عند استيراد بيانات المستخدم، سيتم حذف جميع بيانات المستخدم الحالية!</string>
<string name="exporting_user_data">جاري تصدير بيانات المستخدم</string>
<string name="importing_user_data">جاري استيراد بيانات المستخدم</string>
<string name="import_user_data">استيراد بيانات المستخدم</string>
<string name="invalid_yuzu_backup">نسخة احتياطية يوزو غير صالحة</string>
<string name="user_data_export_success">تم تصدير بيانات المستخدم بنجاح</string>
@ -153,7 +182,7 @@
<string name="use_docked_mode">وضع الإرساء</string>
<string name="use_docked_mode_description">زيادة الدقة، وانخفاض الأداء. يتم استخدام الوضع المحمول عند تعطيله، مما يؤدي إلى خفض الدقة وزيادة الأداء.</string>
<string name="emulated_region">المنطقة التي تمت محاكاتها</string>
<string name="emulated_language">لغة المحاكاه</string>
<string name="emulated_language">لغة المحاكاة</string>
<string name="select_rtc_date">حدد التاريخ و الساعة في الوقت الحقيقي</string>
<string name="select_rtc_time">حدد وقت الساعة في الوقت الفعلي</string>
<string name="use_custom_rtc">ساعة مخصصة في الوقت الحقيقي</string>
@ -164,7 +193,7 @@
<string name="renderer_accuracy">مستوى الدقة</string>
<string name="renderer_resolution">(Handheld/Docked) الدقة</string>
<string name="renderer_vsync">VSync وضع</string>
<string name="renderer_screen_layout">الاتجاه</string>
<string name="renderer_screen_layout">اتجاه العرض</string>
<string name="renderer_aspect_ratio">تناسب الابعاد</string>
<string name="renderer_anti_aliasing">طريقة مكافحة التعرج</string>
<string name="renderer_asynchronous_shaders">استخدم تظليل غير متزامن</string>
@ -172,31 +201,32 @@
<string name="renderer_reactive_flushing">استخدم التنظيف التفاعلي</string>
<string name="renderer_reactive_flushing_description">تحسين دقة العرض في بعض الألعاب على حساب الأداء</string>
<string name="use_disk_shader_cache_description">يقلل من التأتأة عن طريق تخزين وتحميل التظليلات التي تم إنشاؤها محليًا.</string>
<!-- Debug settings strings -->
<string name="cpu">وحدة المعالج المركزية</string>
<string name="cpu_debug_mode">تصحيح أخطاء وحدة المعالجة المركزية</string>
<string name="cpu_debug_mode_description">يضع وحدة المعالجة المركزية في وضع التصحيح البطيء.</string>
<string name="gpu">GPU</string>
<string name="renderer_api">API</string>
<string name="gpu">وحدة معالجة الرسومات</string>
<string name="renderer_api">واجهة برمجة التطبيقات</string>
<string name="renderer_debug">تصحيح الأخطاء الرسومية</string>
<string name="renderer_debug_description">يضبط واجهة برمجة تطبيقات الرسومات على وضع تصحيح الأخطاء البطيء.</string>
<string name="fastmem">Fastmem</string>
<!-- Audio settings strings -->
<string name="audio_output_engine">محرك الإخراج</string>
<string name="audio_volume">حجم</string>
<string name="audio_volume_description">يحدد حجم إخراج الصوت</string>
<string name="audio_volume">مستوى الصوت</string>
<string name="audio_volume_description">يحدد مستوى إخراج الصوت</string>
<!-- Miscellaneous -->
<string name="slider_default">افتراضي</string>
<string name="ini_saved">الإعدادات المحفوظة</string>
<string name="gameid_saved">الإعدادات المحفوظة لـ %1$s</string>
<string name="error_saving">خطأ في حفظ %1$s.ini: %2$s</string>
<string name="unimplemented_menu">القائمة غير المنفذة</string>
<string name="loading">جاري تحميل</string>
<string name="shutting_down">إيقاف تشغيل</string>
<string name="loading">جاري التحميل</string>
<string name="shutting_down">إيقاف التشغيل</string>
<string name="reset_setting_confirmation">هل تريد إعادة تعيين هذا الإعداد مرة أخرى إلى قيمته الافتراضية؟</string>
<string name="reset_to_default">إعادة تعيين إلى الافتراضي</string>
<string name="reset_to_default">إعادة التعيين إلى الوضع الافتراضي</string>
<string name="reset_to_default_description">إعادة تعيين جميع الإعدادات المتقدمة</string>
<string name="reset_all_settings">إعادة تعيين جميع الإعدادات؟</string>
<string name="reset_all_settings_description">سيتم إعادة تعيين كافة الإعدادات المتقدمة إلى تكوينها الافتراضي. هذا لا يمكن التراجع عنها.</string>
<string name="settings_reset">إعادة تعيين الأعدادات</string>
@ -204,32 +234,77 @@
<string name="learn_more">معرفة المزيد</string>
<string name="auto">تلقائي</string>
<string name="submit">إرسال</string>
<string name="string_null">قيمه خاليه</string>
<string name="string_null">لا شيء</string>
<string name="string_import">استيراد</string>
<string name="export">تصدير</string>
<string name="export_failed">فشل التصدير</string>
<string name="import_failed">فشل الاستيراد</string>
<string name="cancelling">إلغاء</string>
<string name="install">تثبيت</string>
<string name="delete">حذف</string>
<string name="edit">حرر</string>
<string name="export_success">تم التصدير بنجاح</string>
<string name="start">Start</string>
<string name="clear">مسح</string>
<string name="global">عالمي</string>
<string name="custom">مخصص</string>
<string name="notice">إشعار</string>
<string name="import_complete">اكتمل الاستيراد</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">GPU حدد برنامج تشغيل</string>
<string name="select_gpu_driver_title">الحالي الخاص بك؟ GPU هل ترغب في استبدال برنامج تشغيل</string>
<string name="select_gpu_driver_install">تثبيت</string>
<string name="select_gpu_driver_default">افتراضي</string>
<string name="select_gpu_driver_use_default">يستخدم تعريف معالج الرسوميات الافتراضي</string>
<string name="select_gpu_driver_error">تم تحديد برنامج تشغيل غير صالح ، باستخدام النظام الافتراضي</string>
<string name="system_gpu_driver">تعريف معالج الرسوميات الخاص بالنظام</string>
<string name="installing_driver">جارٍ تثبيت برنامج التشغيل…</string>
<string name="select_gpu_driver_use_default">يستخدم تعريف معالج الرسومات الافتراضي</string>
<string name="select_gpu_driver_error">تم تحديد برنامج تشغيل غير صالح</string>
<string name="driver_already_installed">برنامج التشغيل مثبت بالفعل</string>
<string name="system_gpu_driver">تعريف معالج الرسومات الخاص بالنظام</string>
<string name="installing_driver">جاري تثبيت برنامج التشغيل…</string>
<!-- Preferences Screen -->
<string name="preferences_settings">إعدادات</string>
<string name="preferences_general">عام</string>
<string name="preferences_system">النظام</string>
<string name="preferences_graphics">الرسوميات</string>
<string name="preferences_system_description">وضع الإرساء ،المنطقة ،اللغة</string>
<string name="preferences_graphics">الرسومات</string>
<string name="preferences_graphics_description">مستوى الدقة ،الدقة ،ذاكرة التخزين المؤقت للتظليل</string>
<string name="preferences_audio">الصوت</string>
<string name="preferences_audio_description">محرك الإخراج ، حجم الصوت</string>
<string name="preferences_theme">السمة واللون</string>
<string name="preferences_debug">تصحيح الأخطاء</string>
<!-- Game properties -->
<string name="info">معلومات</string>
<string name="info_description">معرف البرنامج، المطور، الإصدار</string>
<string name="per_game_settings">إعدادات كل لعبة</string>
<string name="per_game_settings_description">تحرير الإعدادات الخاصة بهذه اللعبة</string>
<string name="launch_options">تشغيل الإعدادات</string>
<string name="path">المسار</string>
<string name="program_id">معرف البرنامج</string>
<string name="developer">المطور</string>
<string name="version">إصدار</string>
<string name="copy_details">نسخ التفاصيل</string>
<string name="add_ons">الإضافات</string>
<string name="add_ons_description">DLCالتعديلات والتحديثات و</string>
<string name="clear_shader_cache">مسح ذاكرة التخزين المؤقت للتظليل</string>
<string name="clear_shader_cache_description">يزيل جميع التظليلات التي تم إنشاؤها أثناء لعب هذه اللعبة</string>
<string name="clear_shader_cache_warning_description">سوف تواجه المزيد من التأتأة مع تجديد ذاكرة التخزين المؤقت للتظليل</string>
<string name="cleared_shaders_successfully">تم مسح التظليل بنجاح</string>
<string name="addons_game">إضافات: %1$s</string>
<string name="save_data">حفظ البيانات</string>
<string name="save_data_description">إدارة حفظ البيانات الخاصة بهذه اللعبة</string>
<string name="delete_save_data">حذف حفظ البيانات</string>
<string name="delete_save_data_description">يزيل كافة البيانات المحفوظة الخاصة بهذه اللعبة</string>
<string name="delete_save_data_warning_description">يؤدي هذا إلى إزالة كافة البيانات المحفوظة لهذه اللعبة بشكل لا يمكن استرداده. هل أنت متأكد أنك تريد الاستمرار؟</string>
<string name="save_data_deleted_successfully">حفظ البيانات تم حذفها بنجاح</string>
<string name="select_content_type">نوع المحتوى</string>
<string name="updates_and_dlc">DLC التحديثات والمحتوى القابل للتنزيل </string>
<string name="mods_and_cheats">تعديل وغش</string>
<string name="addon_notice">إشعار إضافي مهم</string>
<string name="invalid_directory">مجلد غير صالح</string>
<string name="addon_installed_successfully">تم تثبيت الملحق بنجاح</string>
<string name="verifying_content">جاري التحقق من المحتوى</string>
<string name="content_install_notice">إشعار تثبيت المحتوى</string>
<string name="content_install_notice_description">المحتوى الذي حددته لا يتطابق مع هذه اللعبة.هل تريد التثبيت على أية حال؟</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">الخاص بك ROM تم تشفير</string>
<string name="loader_error_video_core">حدث خطأ أثناء تهيئة مركز الفيديو</string>
@ -238,24 +313,25 @@
<!-- Emulation Menu -->
<string name="emulation_exit">الخروج من المحاكاة</string>
<string name="emulation_done">منجز</string>
<string name="emulation_done">إنهاء</string>
<string name="emulation_fps_counter">عداد إطار/ثانية</string>
<string name="emulation_toggle_controls">تبديل عناصر التحكم</string>
<string name="emulation_toggle_controls">عناصر التحكم</string>
<string name="emulation_rel_stick_center">مركز العصا النسبي</string>
<string name="emulation_dpad_slide">مزلاق أزرار الاتجاهات</string>
<string name="emulation_dpad_slide">مزلاق الأسهم</string>
<string name="emulation_haptics">الاهتزازات الديناميكية</string>
<string name="emulation_show_overlay">عرض التراكب</string>
<string name="emulation_toggle_all">تبديل الكل</string>
<string name="emulation_toggle_all">الكل</string>
<string name="emulation_control_adjust">ضبط التراكب</string>
<string name="emulation_control_scale">حجم</string>
<string name="emulation_control_opacity">العتامه</string>
<string name="emulation_control_scale">الحجم</string>
<string name="emulation_control_opacity">الشفافية</string>
<string name="emulation_touch_overlay_reset">إعادة تعيين التراكب</string>
<string name="emulation_touch_overlay_edit">تحرير التراكب</string>
<string name="emulation_pause">إيقاف المحاكاة مؤقتًا</string>
<string name="emulation_unpause">إلغاء الإيقاف المؤقت للمضاهاة</string>
<string name="emulation_unpause">إلغاء الإيقاف المؤقت للمحاكاة</string>
<string name="emulation_input_overlay">خيارات التراكب</string>
<string name="touchscreen">شاشة اللمس</string>
<string name="load_settings">جارٍ تحميل الإعدادات</string>
<string name="load_settings">جاري تحميل الإعدادات</string>
<!-- Software keyboard -->
<string name="software_keyboard">لوحة المفاتيح البرمجية</string>
@ -282,6 +358,7 @@
<!-- Memory Sizes -->
<string name="memory_byte">Byte</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_kilobyte">KB</string>
<string name="memory_megabyte">MB</string>
<string name="memory_gigabyte">GB</string>
@ -326,10 +403,9 @@
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_landscape">افقي</string>
<string name="screen_layout_portrait">عمودي</string>
<string name="screen_layout_auto">تلقائي</string>
<string name="screen_layout_landscape">أفقي</string>
<string name="screen_layout_portrait">عمودي</string>
<!-- Aspect Ratios -->
<string name="ratio_default">(16:9) افتراضي</string>
<string name="ratio_force_four_three">4:3 فرض</string>
@ -337,16 +413,20 @@
<string name="ratio_force_sixteen_ten">16:10 فرض</string>
<string name="ratio_stretch">تمتد إلى النافذة</string>
<!-- CPU Backend -->
<string name="cpu_backend_dynarmic">Dynarmic (بطيء)</string>
<string name="cpu_backend_nce">تنفيذ التعليمات البرمجية الأصلية (NCE)</string>
<!-- CPU Accuracy -->
<string name="cpu_accuracy_accurate">دقه</string>
<string name="cpu_accuracy_unsafe">غير آمن</string>
<string name="cpu_accuracy_paranoid">Paranoid (Slow)</string>
<string name="cpu_accuracy_paranoid">Paranoid (بطيء)</string>
<!-- Gamepad Buttons -->
<string name="gamepad_d_pad">أزرار الاتجاهات</string>
<string name="gamepad_d_pad">الأسهم</string>
<string name="gamepad_left_stick">العصا اليسرى</string>
<string name="gamepad_right_stick">العصا اليمنى</string>
<string name="gamepad_home">شاشة الإستقبال</string>
<string name="gamepad_home">شاشة الرئيسية</string>
<string name="gamepad_screenshot">لقطة شاشة</string>
<!-- Disk shader cache -->
@ -362,11 +442,16 @@
<string name="change_theme_mode">تغيير وضع السمة</string>
<string name="theme_mode_follow_system">اتبع النظام</string>
<string name="theme_mode_light">فاتح</string>
<string name="theme_mode_dark">غامق</string>
<string name="theme_mode_dark">داكن</string>
<!-- Audio output engines -->
<string name="cubeb">cubeb</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">خلفيات سوداء</string>
<string name="use_black_backgrounds_description">عند استخدام المظهر الداكن، قم بتطبيق خلفيات سوداء.</string>

View File

@ -157,7 +157,6 @@
<string name="renderer_reactive_flushing_description">وردی ڕێندەرکردن لە هەندێک یاریدا باشتر دەکات لەسەر تێچووی کارایی.</string>
<string name="use_disk_shader_cache">بیرگەخێرای سێبەری دیسک</string>
<string name="use_disk_shader_cache_description">پچڕپچڕی کەمدەکاتەوە بە هەڵگرتن و بارکردنی سێبەری دروستکراو لە ناوخۆدا.</string>
<!-- Debug settings strings -->
<string name="cpu">CPU</string>
<string name="renderer_api">API گرافیک</string>
@ -183,13 +182,15 @@
<string name="submit">پێشکەشکردن</string>
<string name="string_import">هاوردەکردن</string>
<string name="export">هەناردەکردن</string>
<string name="install">دامەزراندن</string>
<string name="delete">سڕینەوە</string>
<string name="clear">سڕینەوە</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">هەڵبژاردنی وەگەڕخەری GPU</string>
<string name="select_gpu_driver_title">حەز دەکەیت وەگەڕخەری GPU ی ئێستات بگۆڕیت؟</string>
<string name="select_gpu_driver_install">دامەزراندن</string>
<string name="select_gpu_driver_default">بنەڕەت</string>
<string name="select_gpu_driver_use_default">بەکارهێنانی وەگەڕخەری GPU ی بنەڕەت</string>
<string name="select_gpu_driver_error">وەگەڕخەری نادروست هەڵبژێردرا، بە بەکارهێنانی بنەڕەتی سیستەم!</string>
<string name="system_gpu_driver">وەگەڕخەری GPU ی سیستەم</string>
<string name="installing_driver">دامەزراندنی وەگەڕخەر...</string>
@ -201,7 +202,8 @@
<string name="preferences_audio">دەنگ</string>
<string name="preferences_theme">ڕەنگ و ڕووکار</string>
<string name="preferences_debug">چاککردنەوە</string>
<string name="path">ڕێڕەو</string>
<string name="version">وەشان</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">ڕۆمەکەت کۆدکراوە</string>
<string name="loader_error_encrypted_keys_description"><![CDATA[تکایە دڵنیابەوە لەدامەزراوی <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> فایلەکەت بۆ ئەوەی بتوانرێت یارییەکان کۆد بکرێنەوە.]]></string>
@ -228,6 +230,7 @@
<string name="emulation_pause">وەستاندنی ئیمولەیشن</string>
<string name="emulation_unpause">لادانی وەستاندنی ئیمولەیشن</string>
<string name="emulation_input_overlay">هەڵبژاردەکانی داپۆشەر</string>
<string name="touchscreen">رووکاری لەمسی</string>
<string name="load_settings">بارکردنی ڕێکخستنەکان...</string>
@ -253,6 +256,7 @@
<string name="region_korea">کۆریا</string>
<string name="region_taiwan">تایوان</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_gigabyte">GB</string>
<!-- Renderer APIs -->
<string name="renderer_vulkan">ڤوڵکان</string>
@ -290,8 +294,8 @@
<string name="anti_aliasing_fxaa">FXAA</string>
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_auto">خودکار</string>
<!-- Aspect Ratios -->
<string name="ratio_default">بنەڕەت (16:9)</string>
<string name="ratio_force_four_three">ڕووبەری 4:3</string>
@ -326,6 +330,12 @@
<string name="theme_mode_light">ڕوناکی</string>
<string name="theme_mode_dark">تاریک</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">پاشبنەمای ڕەش</string>
<string name="use_black_backgrounds_description">لە کاتی بەکارهێنانی ڕووکاری تاریکدا، پاشبنەمای ڕەش دادەنێ.</string>

View File

@ -0,0 +1,265 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="emulation_notification_channel_name">Emulace je aktivní</string>
<string name="notice_notification_channel_name">Upozornění a chyby</string>
<string name="notice_notification_channel_description">Ukáže oznámení v případě chyby.</string>
<string name="notification_permission_not_granted">Oznámení nejsou oprávněna!</string>
<!-- Setup strings -->
<string name="welcome">Vítejte!</string>
<string name="get_started">Začít</string>
<string name="keys">Klíče</string>
<string name="select_keys">Vybrat klíče</string>
<string name="games">Hry</string>
<string name="done">Hotovo</string>
<string name="done_description">Vše je připraveno.\nUžijte si vaše hry!</string>
<string name="text_continue">Pokračovat</string>
<string name="next">Další</string>
<string name="back">Zpět</string>
<string name="add_games">Přidat hry</string>
<string name="add_games_description">Vyber svoji složku se hrami</string>
<!-- Home strings -->
<string name="home_games">Hry</string>
<string name="home_search">Hledat</string>
<string name="home_settings">Nastavení</string>
<string name="empty_gamelist">Nebyly nalezeny žádné soubory nebo ještě nebyl vybrán žádný adresář s hrami.</string>
<string name="search_and_filter_games">Hledat a filtrovat hry</string>
<string name="select_games_folder">Vybrat složku s hrami</string>
<string name="manage_game_folders">Spravovat složky s hrami</string>
<string name="add_games_warning_help">https://yuzu-emu.org/help/quickstart/#dumping-games</string>
<string name="install_prod_keys">Instalovat prod.keys</string>
<string name="install_prod_keys_warning">Přeskočit přidávání klíčů?</string>
<string name="install_prod_keys_warning_help">https://yuzu-emu.org/help/quickstart/#guide-introduction</string>
<string name="notifications">Oznámení</string>
<string name="give_permission">Udělit oprávnění</string>
<string name="notification_warning">Přeskočit udělení oprávnění k oznámení?</string>
<string name="notification_warning_description">yuzu vám nebude schopno oznámit důležité informace.</string>
<string name="permission_denied">Oprávnění zamítnuto</string>
<string name="permission_denied_description">Zamítnul jste toto oprávnění příliš mnohokrát, musíte manuálně udělit oprávnění v nastavení systému.</string>
<string name="about">O aplikaci</string>
<string name="about_description">Verze sestavení, titulky a více</string>
<string name="warning_help">Pomoc</string>
<string name="warning_skip">Přeskočit</string>
<string name="warning_cancel">Zrušit</string>
<string name="install_amiibo_keys">Instalovat Amiibo klíče</string>
<string name="install_amiibo_keys_description">Povinné použití Amiibo ve hře</string>
<string name="invalid_keys_file">Vybrané klíče jsou neplatné</string>
<string name="install_keys_success">Klíče úspěšně nainstalovány</string>
<string name="reading_keys_failure">Chyba při čtení šifrovacích klíčů</string>
<string name="invalid_keys_error">Neplatné šifrovací klíče</string>
<string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string>
<string name="gpu_driver_manager">Správce ovladače GPU</string>
<string name="install_gpu_driver">Instalovat GPU ovladač</string>
<string name="advanced_settings">Pokročilé nastavení</string>
<string name="settings_description">Konfigurovat nastavení emulátoru</string>
<string name="search_recently_played">Nedávno hrané</string>
<string name="search_recently_added">Nedávno přidané</string>
<string name="search_homebrew">Homebrew</string>
<string name="open_user_folder">Otevřít yuzu složku</string>
<string name="open_user_folder_description">Spravovat soubory yuzu</string>
<string name="no_file_manager">Nenalezen žádný správce souborů</string>
<string name="notification_no_directory_link">Nepovedlo se otevřít yuzu složku</string>
<string name="manage_save_data">Spravovat data postupu ve hře</string>
<string name="manage_save_data_description">Data postupu nalezeny. Prosím vyberte možnost.</string>
<string name="import_export_saves_description">Importovat nebo exportovat data postupu</string>
<string name="save_file_imported_success">Uspěšně importováno</string>
<string name="save_file_invalid_zip_structure">Neplatná struktura dat postupu</string>
<string name="import_saves">Importovat</string>
<string name="export_saves">Exportovat</string>
<string name="install_firmware">Nainstalovat firmware</string>
<string name="firmware_installing">Instalování firmwaru</string>
<string name="firmware_installed_success">Firmware byl úspěšně nainstalován</string>
<string name="firmware_installed_failure">Instalace firmwaru selhala</string>
<string name="install_game_content">Nainstalovat obsah hry</string>
<string name="install_game_content_description">Nainstalovat aktualizace hry nebo DLC</string>
<string name="installing_game_content">Instalování obsahu...</string>
<string name="install_game_content_failure">Chyba při instalaci soubor(ů) do NAND</string>
<string name="manage_yuzu_data">Spravovat data yuzu</string>
<string name="game_folders">Složky s hrami</string>
<string name="folder_already_added">Tato složka byla již přidána!</string>
<string name="game_folder_properties">Vlastnosti složky s hrami</string>
<string name="album_applet_description">Zobrazovat obrázky uložené v uživatelské složce se snímky obrazovky pomocí systémového prohlížeče fotografií</string>
<string name="cabinet_nickname_and_owner">Nastavení přezdívky a vlastníka</string>
<!-- About screen strings -->
<string name="gaia_is_not_real">Gaia není skutečná</string>
<string name="copied_to_clipboard">Zkopírováno do schránky</string>
<string name="about_app_description">Open-source Switch emulátor</string>
<string name="contributors">Přispěvatelé</string>
<string name="contributors_description">Vyrobeno s \u2764 od yuzu týmu</string>
<string name="contributors_link">https://github.com/yuzu-emu/yuzu/graphs/contributors</string>
<string name="build">Číslo sestavení</string>
<string name="user_data">Uživatelská data</string>
<string name="exporting_user_data">Exportování uživatelských dat...</string>
<string name="importing_user_data">Importování uživatelských dat...</string>
<string name="import_user_data">Importovat uživatelská data</string>
<string name="invalid_yuzu_backup">Neplatná záloha yuzu</string>
<string name="user_data_export_success">Uživatelská data byla úspěšně exportována.</string>
<string name="user_data_import_success">Uživatelská data byla úspěšně importována.</string>
<string name="user_data_export_cancelled">Export zrušen</string>
<string name="support_link">https://discord.gg/u77vRWY</string>
<string name="website_link">https://yuzu-emu.org/</string>
<string name="github_link">https://github.com/yuzu-emu</string>
<string name="play_store_link">https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea</string>
<string name="no_manual_installation">Žádná manuální instalace</string>
<string name="prioritized_support">Prioritní podpora</string>
<string name="our_eternal_gratitude">Naše věčná vděčnost</string>
<string name="are_you_interested">Máte zájem?</string>
<!-- General settings strings -->
<string name="frame_limit_enable">Omezit rychlost</string>
<string name="cpu_accuracy">CPU přesnost</string>
<string name="emulated_region">Emulovaná oblast</string>
<string name="emulated_language">Emulovaný jazyk</string>
<string name="use_custom_rtc">Vlastní RTC</string>
<!-- Graphics settings strings -->
<string name="renderer_accuracy">Úroveň přesnosti</string>
<string name="renderer_vsync">VSync režim</string>
<string name="renderer_screen_layout">Orientace</string>
<string name="renderer_aspect_ratio">Poměr stran</string>
<!-- Debug settings strings -->
<string name="cpu">CPU</string>
<string name="renderer_api">API</string>
<!-- Audio settings strings -->
<string name="audio_output_engine">Výstupní engine</string>
<string name="audio_volume">Hlasitost</string>
<string name="audio_volume_description">Udává hlasitost zvukového výstupu.</string>
<!-- Miscellaneous -->
<string name="slider_default">Výchozí</string>
<string name="ini_saved">Nastavení uložena</string>
<string name="gameid_saved">Uložena nastavení pro %1$s</string>
<string name="loading">Načítání...</string>
<string name="shutting_down">Vypínání...</string>
<string name="reset_setting_confirmation">Chcete obnovit toto nastavení zpět na jeho výchozí hodnotu?</string>
<string name="reset_to_default">Navrátit k výchozímu</string>
<string name="reset_all_settings">Resetovat všechna nastavení?</string>
<string name="reset_all_settings_description">Všechna pokročilá nastavení budou obnovena na jejich výchozí konfiguraci. Toto nelze vrátit zpět.</string>
<string name="close">Zavřít</string>
<string name="learn_more">Zjistit více</string>
<string name="auto">Automatické</string>
<string name="string_import">Importovat</string>
<string name="export">Exportovat</string>
<string name="install">Nainstalovat</string>
<string name="delete">Smazat</string>
<string name="export_success">Úspěšně exportováno</string>
<string name="start">Start</string>
<string name="clear">Vymazat</string>
<string name="custom">Vlastní</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">Vybrat GPU ovladač</string>
<string name="select_gpu_driver_title">Chcete nahradit váš aktuální ovladač GPU?</string>
<string name="select_gpu_driver_install">Nainstalovat</string>
<string name="select_gpu_driver_default">Výchozí</string>
<string name="select_gpu_driver_error">Vybrán neplatný ovladač</string>
<string name="driver_already_installed">Ovladač již nainstalován</string>
<string name="system_gpu_driver">Systémový ovladač GPU</string>
<string name="installing_driver">Instalování ovladače...</string>
<!-- Preferences Screen -->
<string name="preferences_settings">Nastavení</string>
<string name="preferences_general">Obecné</string>
<string name="preferences_system">Systém</string>
<string name="preferences_graphics">Grafika</string>
<string name="preferences_audio">Zvuk</string>
<string name="preferences_audio_description">Výstupní engine, hlasitost</string>
<string name="preferences_theme">Vzhled a barva</string>
<string name="preferences_debug">Ladění</string>
<!-- Game properties -->
<string name="info">Info</string>
<string name="path">Cesta</string>
<string name="developer">Vývojář</string>
<string name="version">Verze</string>
<string name="copy_details">Zkopírovat podrobnosti</string>
<string name="add_ons">Modifkace</string>
<string name="addons_game">Rozšíření: %1$s</string>
<string name="select_content_type">Typ obsahu</string>
<string name="updates_and_dlc">Aktualizace a DLC</string>
<string name="mods_and_cheats">Módy a cheaty</string>
<string name="addon_installed_successfully">Rozšíření úspěšně nainstalováno</string>
<string name="verifying_content">Ověřování obsahu...</string>
<string name="emulation_done">Hotovo</string>
<string name="emulation_control_scale">Měřítko</string>
<string name="emulation_control_opacity">Průhlednost</string>
<string name="touchscreen">Dotyková obrazovka</string>
<!-- Errors and warnings -->
<string name="abort_button">Přerušit</string>
<string name="continue_button">Pokračovat</string>
<string name="system_archive_not_found">Systémový Archív Nenalezen</string>
<string name="save_load_error">Ukládací/Načítací chyba</string>
<string name="fatal_error">Fatální Chyba</string>
<!-- Region Names -->
<string name="region_japan">Japonsko</string>
<string name="region_usa">USA</string>
<string name="region_europe">Evropa</string>
<string name="region_australia">Austrálie</string>
<string name="region_china">Čína</string>
<string name="region_korea">Korea</string>
<string name="region_taiwan">Taiwan</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_gigabyte">GB</string>
<!-- Renderer APIs -->
<string name="renderer_vulkan">Vulkan</string>
<string name="renderer_none">Žádné</string>
<!-- Renderer Accuracy -->
<string name="renderer_accuracy_normal">Normální</string>
<string name="renderer_accuracy_high">Vysoká</string>
<!-- Resolutions -->
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_two">2X (1440p/2160p) (Pomalé)</string>
<string name="resolution_three">3X (2160p/3240p) (Pomalé)</string>
<string name="resolution_four">4X (2880p/4320p) (Pomalé)</string>
<string name="scaling_filter_bilinear">Bilineární</string>
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolution</string>
<!-- Anti-Aliasing -->
<string name="anti_aliasing_none">Žádné</string>
<string name="anti_aliasing_fxaa">FXAA</string>
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_auto">Automatické</string>
<!-- Aspect Ratios -->
<string name="ratio_default">Výchozí (16:9)</string>
<string name="ratio_force_four_three">Vynutit 4:3</string>
<string name="ratio_force_twenty_one_nine">Vynutit 21:9</string>
<!-- CPU Accuracy -->
<string name="cpu_accuracy_accurate">Přesné</string>
<string name="cpu_accuracy_unsafe">Nebezpečné</string>
<string name="gamepad_home">Home</string>
<string name="building_shaders">Budování shaderů</string>
<!-- Theme options -->
<string name="change_app_theme">Změnit vzhled aplikace</string>
<string name="theme_default">Výchozí</string>
<string name="theme_material_you">Material You</string>
<!-- Theme Modes -->
<string name="change_theme_mode">Změnit styl vzhledu</string>
<string name="theme_mode_follow_system">Podle systému</string>
<string name="theme_mode_light">Světlé</string>
<string name="theme_mode_dark">Tmavé</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">Černá pozadí</string>
<!-- Picture-In-Picture -->
<string name="picture_in_picture">Obraz v obraze</string>
<string name="mute">Ztlumit</string>
<string name="unmute">Vypnout ztlumení</string>
<!-- Licenses screen strings -->
<string name="licenses">Licence</string>
</resources>

View File

@ -34,6 +34,7 @@
<string name="empty_gamelist">Es wurden keine Dateien gefunden oder es wurde noch kein Spielverzeichnis ausgewählt.</string>
<string name="search_and_filter_games">Spiele suchen und filtern</string>
<string name="select_games_folder">Spieleverzeichnis auswählen</string>
<string name="manage_game_folders">Spiele-Ordner verwalten</string>
<string name="select_games_folder_description">Erlaubt yuzu die Spieleliste zu füllen</string>
<string name="add_games_warning">Auswahl des Spieleverzeichnisses überspringen?</string>
<string name="add_games_warning_description">Spiele werden in der Spieleliste nicht angezeigt, wenn kein Ordner ausgewählt ist.</string>
@ -67,9 +68,11 @@
<string name="invalid_keys_error">Ungültige Schlüssel</string>
<string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string>
<string name="install_keys_failure_description">Die ausgewählte Datei ist falsch oder beschädigt. Bitte kopieren Sie Ihre Schlüssel erneut.</string>
<string name="gpu_driver_manager">GPU-Treiber Verwaltung</string>
<string name="install_gpu_driver">GPU-Treiber installieren</string>
<string name="install_gpu_driver_description">Alternative Treiber für eventuell bessere Leistung oder Genauigkeit installieren</string>
<string name="advanced_settings">Erweiterte Einstellungen</string>
<string name="advanced_settings_game">Erweiterte Einstellungen: %1$s</string>
<string name="settings_description">Emulatoreinstellungen konfigurieren</string>
<string name="search_recently_played">Kürzlich gespielt</string>
<string name="search_recently_added">Kürzlich hinzugefügt</string>
@ -83,7 +86,11 @@
<string name="notification_no_directory_link_description">Bitte suche den Benutzerordner manuell über die Seitenleiste des Dateimanagers.</string>
<string name="manage_save_data">Speicherdaten verwalten</string>
<string name="manage_save_data_description">Speicherdaten gefunden. Bitte wähle unten eine Option aus.</string>
<string name="import_save_warning">Speicherdaten importieren</string>
<string name="import_save_warning_description">Das überschreibt alle existierenden Speicherdaten für dieses Spiel mit der ausgewählten Datei. Wirklich fortfahren?</string>
<string name="import_export_saves_description">Speicherdaten importieren oder exportieren</string>
<string name="save_files_importing">Importiere Speicherdaten...</string>
<string name="save_files_exporting">Exportiere Speicherdaten...</string>
<string name="save_file_imported_success">Erfolgreich importiert</string>
<string name="save_file_invalid_zip_structure">Ungültige Speicherverzeichnisstruktur</string>
<string name="save_file_invalid_zip_structure_description">Der erste Unterordnername muss die Titel-ID des Spiels sein.</string>
@ -98,8 +105,17 @@
<string name="share_log_description">Debug-Logs an yuzu zur Untersuchung absenden</string>
<string name="share_log_missing">Keine Log-Datei gefunden</string>
<string name="install_game_content">Spiel installieren</string>
<string name="install_game_content_description">Spiel Update oder DLC installieren</string>
<string name="install_game_content_description">Spiel-Updates oder DLCs installieren</string>
<string name="installing_game_content">Installiere...</string>
<string name="install_game_content_failed_count">%1$d Installationsfehler</string>
<string name="install_game_content_success_install">%1$d erfolgreich installiert</string>
<string name="install_game_content_success_overwrite">%1$d erfolgreich überschrieben</string>
<string name="install_game_content_help_link">https://yuzu-emu.org/help/quickstart/#dumping-installed-updates</string>
<string name="manage_yuzu_data">yuzu-Daten Verwalten</string>
<string name="share_save_file">Speicherdaten teilen</string>
<string name="game_folders">Spiele-Ordner</string>
<string name="add_game_folder">Spiele-Ordner hinzufügen</string>
<string name="applets_error_firmware">Firmware nicht installiert</string>
<!-- About screen strings -->
<string name="gaia_is_not_real">Gaia ist nicht real</string>
<string name="copied_to_clipboard">In die Zwischenablage kopiert</string>
@ -110,6 +126,10 @@
<string name="licenses_description">Projekte, die yuzu für Android möglich machen </string>
<string name="build">Build</string>
<string name="user_data">Nutzerdaten</string>
<string name="importing_user_data">Importiere Nutzerdaten...</string>
<string name="import_user_data">Nutzerdaten importieren</string>
<string name="user_data_export_success">Nutzerdaten erfolgreich exportiert</string>
<string name="user_data_import_success">Nutzerdaten erfolgreich importiert</string>
<string name="user_data_export_cancelled">Export abgebrochen</string>
<string name="support_link">https://discord.gg/u77vRWY</string>
<string name="website_link">https://yuzu-emu.org/</string>
@ -137,7 +157,7 @@
<string name="cpu_accuracy">CPU-Genauigkeit</string>
<!-- System settings strings -->
<string name="use_docked_mode">Gedockter Modus</string>
<string name="use_docked_mode_description">Der Docked Modus erhöht die Auflösung, verringert die aber die Leistung. Wird der Handheld-Modus verwendet, verringert es die Auflösung und erhöht die Leistung.</string>
<string name="use_docked_mode_description">Der Gedockte-Modus erhöht die Auflösung, verringert aber die Leistung. Wird der Handheld-Modus verwendet, verringert es die Auflösung und erhöht die Leistung.</string>
<string name="emulated_region">Emulierte Region</string>
<string name="emulated_language">Emulierte Sprache</string>
<string name="select_rtc_date">RTC-Datum auswählen</string>
@ -145,10 +165,12 @@
<string name="use_custom_rtc">Benutzerdefinierte Echtzeituhr</string>
<!-- Graphics settings strings -->
<string name="renderer_accuracy">Genauigkeitsstufe</string>
<string name="renderer_resolution">Auflösung (Mobil/Gedockt)</string>
<string name="renderer_vsync">VSync-Modus</string>
<string name="renderer_screen_layout">Orientierung</string>
<string name="renderer_aspect_ratio">Seitenverhältnis</string>
<string name="renderer_scaling_filter">Fensteranpassungsfilter</string>
<string name="renderer_anti_aliasing">Kantenglättung</string>
<string name="renderer_force_max_clock">Maximale Taktfrequenz erzwingen (nur Adreno)</string>
<string name="renderer_force_max_clock_description">Erzwingt den Betrieb der GPU mit der maximal möglichen Taktfrequenz (Temperaturbeschränkungen werden weiterhin angewendet).</string>
<string name="renderer_asynchronous_shaders">Asynchrone Shader nutzen</string>
@ -168,9 +190,12 @@
<string name="error_saving">Fehler beim Speichern von %1$s.ini: %2$s</string>
<string name="unimplemented_menu">Unimplementiertes Menü</string>
<string name="loading">Lädt...</string>
<string name="shutting_down">Beendet...</string>
<string name="reset_setting_confirmation">Möchtest du diese Einstellung auf den Standardwert zurücksetzen?</string>
<string name="reset_to_default">Auf Standard zurücksetzen</string>
<string name="reset_to_default_description">Setzt alle erweiterten Einstellungen zurück</string>
<string name="reset_all_settings">Alle Einstellungen zurücksetzen?</string>
<string name="reset_all_settings_description">Alle erweiterten Einstellungen werden auf ihren Standardwert zurückgesetzt. Dies kann nicht rückgängig gemacht werden.</string>
<string name="settings_reset">Einstellungen zurückgesetzt</string>
<string name="close">Schließen</string>
<string name="learn_more">Mehr erfahren</string>
@ -182,14 +207,20 @@
<string name="export_failed">Export fehlgeschlagen</string>
<string name="import_failed">Import fehlgeschlagen</string>
<string name="cancelling">Abbrechen</string>
<string name="install">Installieren</string>
<string name="delete">Löschen</string>
<string name="edit">Bearbeiten</string>
<string name="export_success">Erfolgreich exportiert</string>
<string name="start">Start</string>
<string name="clear">Löschen</string>
<string name="custom">Benutzerdefiniert</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">GPU-Treiber auswählen</string>
<string name="select_gpu_driver_title">Möchtest du deinen aktuellen GPU-Treiber ersetzen?</string>
<string name="select_gpu_driver_install">Installieren</string>
<string name="select_gpu_driver_default">Standard</string>
<string name="select_gpu_driver_use_default">Standard GPU-Treiber wird verwendet</string>
<string name="select_gpu_driver_error">Ungültiger Treiber ausgewählt, Standard-Treiber wird verwendet!</string>
<string name="driver_already_installed">Treiber bereits installiert</string>
<string name="system_gpu_driver">System GPU-Treiber</string>
<string name="installing_driver">Treiber wird installiert...</string>
@ -197,11 +228,37 @@
<string name="preferences_settings">Einstellungen</string>
<string name="preferences_general">Allgemein</string>
<string name="preferences_system">System</string>
<string name="preferences_system_description">Gedockter Modus, Region, Sprache</string>
<string name="preferences_graphics">Grafik</string>
<string name="preferences_graphics_description">Genauigkeitsstufe, Auflösung, Shader-Cache</string>
<string name="preferences_audio">Audio</string>
<string name="preferences_audio_description">Ausgabe-Engine, Lautstärke</string>
<string name="preferences_theme">Theme und Farbe</string>
<string name="preferences_debug">Debug</string>
<!-- Game properties -->
<string name="info">Info</string>
<string name="info_description">Programm-ID, Entwickler, Version</string>
<string name="per_game_settings">Spieleinstellungen</string>
<string name="per_game_settings_description">Einstellungen für dieses Spiel ändern</string>
<string name="path">Pfad</string>
<string name="program_id">Programm-ID</string>
<string name="developer">Entwickler</string>
<string name="version">Version</string>
<string name="copy_details">Details kopieren</string>
<string name="add_ons">Add-ons</string>
<string name="add_ons_description">Mods, Updates und DLC aktivieren oder deaktivieren</string>
<string name="clear_shader_cache">Shader-Cache löschen</string>
<string name="clear_shader_cache_description">Löscht alle für dieses Spiel erstellten Shader</string>
<string name="cleared_shaders_successfully">Shader erfolgreich gelöscht</string>
<string name="addons_game">Add-ons: %1$s</string>
<string name="save_data">Speicherdaten</string>
<string name="save_data_description">Importiert oder exportiert Speicherdaten für dieses Spiel</string>
<string name="delete_save_data">Speicherdaten löschen</string>
<string name="delete_save_data_description">Löscht alle Speicherdaten für dieses Spiel</string>
<string name="delete_save_data_warning_description">Das löscht unwiederbringlich alle Speicherdaten für dieses Spiel. Wirklich fortfahren?</string>
<string name="save_data_deleted_successfully">Speicherdaten erfolgreich gelöscht</string>
<string name="invalid_directory">Ungültiges Verzeichnis</string>
<string name="addon_installed_successfully">Add-on erfolgreich installiert</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">Das ROM ist verschlüsselt</string>
<string name="loader_error_encrypted_keys_description"><![CDATA[Bitte stelle sicher dass die <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> Datei installiert ist, damit Spiele entschlüsselt werden können.]]></string>
@ -220,7 +277,10 @@
<string name="emulation_control_opacity">Transparenz</string>
<string name="emulation_touch_overlay_reset">Overlay zurücksetzen</string>
<string name="emulation_touch_overlay_edit">Overlay bearbeiten</string>
<string name="emulation_pause">Emulation pausieren</string>
<string name="emulation_unpause">Emulation fortsetzen</string>
<string name="emulation_input_overlay">Overlay-Optionen</string>
<string name="touchscreen">Touchscreen</string>
<string name="load_settings">Lade Einstellungen...</string>
@ -248,6 +308,7 @@
<!-- Memory Sizes -->
<string name="memory_byte">Byte</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_kilobyte">KB</string>
<string name="memory_megabyte">MB</string>
<string name="memory_gigabyte">GB</string>
@ -291,9 +352,10 @@
<string name="anti_aliasing_fxaa">FXAA</string>
<string name="anti_aliasing_smaa">SMAA</string>
<string name="screen_layout_portrait">Portrait</string>
<!-- Screen Layouts -->
<string name="screen_layout_auto">Auto</string>
<string name="screen_layout_landscape">Horizontal</string>
<string name="screen_layout_portrait">Vertikal</string>
<!-- Aspect Ratios -->
<string name="ratio_default">Standard (16:9)</string>
<string name="ratio_force_four_three">4:3 erzwingen</string>
@ -318,22 +380,27 @@
<string name="building_shaders">Shader werden erstellt</string>
<!-- Theme options -->
<string name="change_app_theme">App-Thema ändern</string>
<string name="change_app_theme">Theme</string>
<string name="theme_default">Standard</string>
<string name="theme_material_you">Material You</string>
<!-- Theme Modes -->
<string name="change_theme_mode">Themen-Modus ändern</string>
<string name="change_theme_mode">Design</string>
<string name="theme_mode_follow_system">System folgen</string>
<string name="theme_mode_light">Hell</string>
<string name="theme_mode_dark">Dunkel</string>
<!-- Audio output engines -->
<string name="cubeb">cubeb</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">Schwarze Hintergründe</string>
<string name="use_black_backgrounds_description">Bei Verwendung des dunklen Themes, schwarze Hintergründe verwenden.</string>
<string name="use_black_backgrounds_description">Bei Verwendung des dunklen Designs, schwarze Hintergründe verwenden.</string>
<!-- Picture-In-Picture -->
<string name="picture_in_picture">Bild im Bild</string>

View File

@ -4,7 +4,7 @@
<string name="app_disclaimer">Este software ejecuta juegos para la videoconsola Nintendo Switch. Los videojuegos o claves no vienen incluidos.&lt;br /&gt;&lt;br /&gt;Antes de empezar, por favor, localice el archivo <![CDATA[<b> prod.keys </b>]]>en el almacenamiento de su dispositivo..&lt;br /&gt;&lt;br /&gt;<![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Saber más</a>]]></string>
<string name="emulation_notification_channel_name">Emulación activa</string>
<string name="emulation_notification_channel_description">Muestra una notificación persistente cuando la emulación está activa.</string>
<string name="emulation_notification_running">yuzu esta ejecutándose</string>
<string name="emulation_notification_running">yuzu está ejecutándose</string>
<string name="notice_notification_channel_name">Avisos y errores</string>
<string name="notice_notification_channel_description">Mostrar notificaciones cuándo algo vaya mal.</string>
<string name="notification_permission_not_granted">¡Permisos de notificación no concedidos!</string>
@ -34,6 +34,7 @@
<string name="empty_gamelist">No se ha encontrado ningún archivo o aún no se ha seleccionado ningún directorio de juegos.</string>
<string name="search_and_filter_games">Busca y filtra juegos</string>
<string name="select_games_folder">Seleccionar carpeta de juegos</string>
<string name="manage_game_folders">Gestionar carpetas de juegos</string>
<string name="select_games_folder_description">Permite que yuzu llene la lista de juegos</string>
<string name="add_games_warning">¿Omitir la selección de la carpeta de juegos?</string>
<string name="add_games_warning_description">No se mostrará ningún juego si no se ha seleccionado una carpeta de juegos.</string>
@ -44,23 +45,23 @@
<string name="install_prod_keys">Instalar prod.keys</string>
<string name="install_prod_keys_description">Requerido para descifrar juegos</string>
<string name="install_prod_keys_warning">¿Omitir agregar claves?</string>
<string name="install_prod_keys_warning_description">Se requieren claves válidas para emular juegos. Solo las aplicaciones homebrew funcionarán si continúas.</string>
<string name="install_prod_keys_warning_description">Se requieren claves válidas para emular juegos. Solo las aplicaciones homebrew funcionarán si continúas.</string>
<string name="install_prod_keys_warning_help">https://yuzu-emu.org/help/quickstart/#guide-introduction</string>
<string name="notifications">Notificaciones</string>
<string name="notifications_description">Otorgue el permiso de notificación con el botón de abajo.</string>
<string name="notifications_description">Otorga el permiso de notificación con el botón de abajo.</string>
<string name="give_permission">Conceder permiso</string>
<string name="notification_warning">¿Omitir conceder el permiso de notificación?</string>
<string name="notification_warning_description">yuzu no podrá notificarte información importante.</string>
<string name="permission_denied">Permiso denegado</string>
<string name="permission_denied_description">Negó este permiso demasiadas veces y ahora debe otorgarlo manualmente en la configuración del sistema.</string>
<string name="permission_denied_description">Se ha denegado este permiso demasiadas veces y ahora debes otorgarlo de forma manual en la configuración del sistema.</string>
<string name="about">Acerca de</string>
<string name="about_description">Versión, créditos y más</string>
<string name="warning_help">Ayuda</string>
<string name="warning_skip">Siguiente</string>
<string name="warning_cancel">Cancelar</string>
<string name="install_amiibo_keys">Instalar clave de Amiiboo</string>
<string name="install_amiibo_keys_description">Necesario para usar Amiibo en el juego</string>
<string name="invalid_keys_file">Archivo de claves seleccionado inválido</string>
<string name="install_amiibo_keys">Instalar claves de Amiibo</string>
<string name="install_amiibo_keys_description">Necesario para usar Amiibos en el juego</string>
<string name="invalid_keys_file">Archivo de claves seleccionado no válido</string>
<string name="install_keys_success">Claves instaladas correctamente</string>
<string name="reading_keys_failure">Error al leer las claves de cifrado</string>
<string name="install_prod_keys_failure_extension_description">Compruebe que el archivo de claves tenga una extensión .keys y pruebe otra vez.</string>
@ -68,6 +69,7 @@
<string name="invalid_keys_error">Claves de cifrado no válidas</string>
<string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string>
<string name="install_keys_failure_description">El archivo seleccionado es incorrecto o está corrupto. Vuelva a redumpear sus claves.</string>
<string name="gpu_driver_manager">Explorador de drivers de GPU</string>
<string name="install_gpu_driver">Instalar driver de GPU</string>
<string name="install_gpu_driver_description">Instale drivers alternativos para obtener un rendimiento o una precisión potencialmente mejores</string>
<string name="advanced_settings">Opciones avanzadas</string>
@ -85,7 +87,11 @@
<string name="notification_no_directory_link_description">Por favor, busque la carpeta user con el panel lateral del explorador de archivos de forma manual.</string>
<string name="manage_save_data">Administrar datos de guardado</string>
<string name="manage_save_data_description">Guardar los datos encontrados. Por favor, seleccione una opción de abajo.</string>
<string name="import_save_warning">Importar datos de guardado</string>
<string name="import_save_warning_description">Ésto sobreescribirá todos los datos de guardado existentes con el archivo proporcionado. ¿Está seguro de querer continuar?</string>
<string name="import_export_saves_description">Importar o exportar archivos de guardado</string>
<string name="save_files_importing">Importando archivos de guardado...</string>
<string name="save_files_exporting">Exportando archivos de guardado...</string>
<string name="save_file_imported_success">Importado correctamente</string>
<string name="save_file_invalid_zip_structure">Estructura del directorio de guardado no válido</string>
<string name="save_file_invalid_zip_structure_description">El nombre de la primera subcarpeta debe ser el Title ID del juego.</string>
@ -95,7 +101,7 @@
<string name="install_firmware_description">El firmware debe estar en un archivo ZIP y es necesario para ejecutar algunos juegos</string>
<string name="firmware_installing">Instalando firmware</string>
<string name="firmware_installed_success">Firmware instalado con éxito</string>
<string name="firmware_installed_failure">Falló la instalación de firmware</string>
<string name="firmware_installed_failure">Error en la instalación de firmware</string>
<string name="firmware_installed_failure_description">Asegúrese de que los archivos nca del firmware estén en la raíz del zip e inténtelo de nuevo.</string>
<string name="share_log">Compartir registros de depuración</string>
<string name="share_log_description">Comparta el archivo de registro de yuzu para depurar problemas</string>
@ -115,9 +121,43 @@
<string name="custom_driver_not_supported">Drivers personalizados no soportados</string>
<string name="custom_driver_not_supported_description">En estos momentos, la carga de drivers personalizados no está disponible para este dispositivo..\n¡Comprueba esta opción en el futuro para ver si ya está añadido el soporte a ese dispositivo!</string>
<string name="manage_yuzu_data">Administrar datos de yuzu</string>
<string name="manage_yuzu_data_description">Importa/exporta el firmware, las keys, los datos de usuario, ¡y más!</string>
<string name="manage_yuzu_data_description">Importa/exporta el firmware, las claves, los datos de usuario, ¡y más!</string>
<string name="share_save_file">Compartir archivo de guardado</string>
<string name="export_save_failed">La exportación del guardado falló</string>
<string name="export_save_failed">Error al exportar el archivo de guardado</string>
<string name="game_folders">Carpetas de juegos</string>
<string name="deep_scan">Escaneo recursivo </string>
<string name="add_game_folder">Añadir carpeta con juegos</string>
<string name="folder_already_added">¡Está carpeta ya se había añadido!</string>
<string name="game_folder_properties">Propiedades de la carpeta de juegos</string>
<plurals name="saves_import_failed">
<item quantity="one">No se ha podido importar %d archivo de guardado.</item>
<item quantity="many">No se han podido importar %d archivos de guardado.</item>
<item quantity="other">No se han podido importar %d archivos de guardado.</item>
</plurals>
<plurals name="saves_import_success">
<item quantity="one">%d archivo de guardado importado con éxito.</item>
<item quantity="many">%d archivos de guardado importados con éxito.</item>
<item quantity="other">%d archivos de guardado importados con éxito.</item>
</plurals>
<string name="no_save_data_found">No hay archivos de guardado</string>
<!-- Applet launcher strings -->
<string name="applets">Ejecutador de applet</string>
<string name="applets_description">Ejecutar applets de sistema usando el firmware instalado</string>
<string name="applets_error_firmware">Firmware no instalado</string>
<string name="applets_error_applet">Applet no disponible</string>
<string name="applets_error_description"><![CDATA[Asegúrese de que el archivo<a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> y el <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-system-firmware\">firmware</a> estén instalados e inténtelo de nuevo.]]></string>
<string name="album_applet">Álbum</string>
<string name="album_applet_description">Ver las imágenes que están en la carpeta \"screenshots\" del usuario con el visor de fotos del sistema</string>
<string name="mii_edit_applet">Editor de Mii</string>
<string name="mii_edit_applet_description">Mira y edita Mii con el editor del sistema</string>
<string name="cabinet_applet">Cabinet</string>
<string name="cabinet_applet_description">Edita y borra los datos guardado del amiibo</string>
<string name="cabinet_launcher">Ejecutador de Cabinet</string>
<string name="cabinet_nickname_and_owner">Configuración del apodo y propietario</string>
<string name="cabinet_game_data_eraser">Borrador de datos de juego</string>
<string name="cabinet_restorer">Restaurador</string>
<string name="cabinet_formatter">Formateador</string>
<!-- About screen strings -->
<string name="gaia_is_not_real">Gaia no es real</string>
@ -161,6 +201,7 @@
<string name="frame_limit_enable_description">Limita la velocidad de emulación a un porcentaje específico de la velocidad normal.</string>
<string name="frame_limit_slider">Limitar porcentaje de velocidad</string>
<string name="frame_limit_slider_description">Especifica el porcentaje para limitar la velocidad de emulación. 100% es la velocidad normal. Valores más altos o bajos incrementarán o disminuirán el límite de velocidad.</string>
<string name="cpu_backend">Motor de CPU</string>
<string name="cpu_accuracy">Precisión de CPU</string>
<string name="value_with_units">%1$s%2$s</string>
@ -186,11 +227,13 @@
<string name="renderer_force_max_clock">Forzar velocidad al máximo (solo Adreno)</string>
<string name="renderer_force_max_clock_description">Fuerza a la GPU a ejecutarse a la velocidad máxima de reloj posible (se seguirán aplicando restricciones térmicas).</string>
<string name="renderer_asynchronous_shaders">Usar shaders asíncronos</string>
<string name="renderer_asynchronous_shaders_description">Compila shaders de manera asíncrona, reduciendo los parones, pero puede introducir fallos.</string>
<string name="renderer_asynchronous_shaders_description">Compila shaders de manera asíncrona, reduce los parones pero puede introducir fallos.</string>
<string name="renderer_reactive_flushing">Usar limpieza reactiva</string>
<string name="renderer_reactive_flushing_description">Mejora la precisión de renderizado en algunos juegos, pero reduce el rendimiento.</string>
<string name="use_disk_shader_cache">Caché de shaders en disco</string>
<string name="use_disk_shader_cache_description">Reduce los parones almacenando y cargando shaders generados.</string>
<string name="anisotropic_filtering">Filtrado anisotrópico</string>
<string name="anisotropic_filtering_description">Mejora la calidad de las texturas al ser observadas desde ángulos oblicuos</string>
<!-- Debug settings strings -->
<string name="cpu">CPU</string>
@ -217,6 +260,7 @@
<string name="shutting_down">Saliendo...</string>
<string name="reset_setting_confirmation">¿Desea restablecer esta configuración a su valor predeterminado?</string>
<string name="reset_to_default">Restablecer a predeterminado</string>
<string name="reset_to_default_description">Reinicia todos los ajustes avanzados</string>
<string name="reset_all_settings">¿Restablecer todas las configuraciones?</string>
<string name="reset_all_settings_description">Todas las opciones avanzadas se restablecerán a su configuración predeterminada. Esta acción no se puede deshacer.</string>
<string name="settings_reset">Reiniciar la configuracion</string>
@ -230,14 +274,24 @@
<string name="export_failed">La exportación falló</string>
<string name="import_failed">La importación falló</string>
<string name="cancelling">Cancelando</string>
<string name="install">Instalar</string>
<string name="delete">Borrar</string>
<string name="edit">Editar</string>
<string name="export_success">Exportado correctamente</string>
<string name="start">Comenzar</string>
<string name="clear">Limpiar</string>
<string name="global">Global</string>
<string name="custom">Perzonalizado</string>
<string name="notice">Aviso</string>
<string name="import_complete">La importación se completó</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">Seleccionar driver GPU</string>
<string name="select_gpu_driver_title">¿Quiere reemplazar el driver de GPU actual?</string>
<string name="select_gpu_driver_install">Instalar</string>
<string name="select_gpu_driver_default">Predeterminado</string>
<string name="select_gpu_driver_use_default">Usando el driver de GPU por defecto </string>
<string name="select_gpu_driver_error">¡Driver no válido, utilizando el predeterminado del sistema!</string>
<string name="select_gpu_driver_error">Driver no válido seleccionado</string>
<string name="driver_already_installed">Driver ya instalado</string>
<string name="system_gpu_driver">Driver GPU del sistema</string>
<string name="installing_driver">Instalando driver...</string>
@ -245,11 +299,52 @@
<string name="preferences_settings">Ajustes</string>
<string name="preferences_general">General</string>
<string name="preferences_system">Sistema</string>
<string name="preferences_system_description">Modo en Dock, región, idioma</string>
<string name="preferences_graphics">Gráficos</string>
<string name="preferences_graphics_description">Nivel de precisión, resolución, caché de shaders</string>
<string name="preferences_audio">Audio</string>
<string name="preferences_audio_description">Motor de salida, volumen</string>
<string name="preferences_theme">Tema y color</string>
<string name="preferences_debug">Depuración</string>
<string name="preferences_debug_description">CPU/GPU debug, API gráfica, fastMEM</string>
<!-- Game properties -->
<string name="info">Información</string>
<string name="info_description">ID de programa, desarrollador, versión</string>
<string name="per_game_settings">Configuración por juego</string>
<string name="per_game_settings_description">Editar opciones específicas para este juego</string>
<string name="launch_options">Ejecutar configuración</string>
<string name="path">Ruta</string>
<string name="program_id">ID de programa</string>
<string name="developer">Desarrollador</string>
<string name="version">Versión</string>
<string name="copy_details">Copiar detalles</string>
<string name="add_ons">Extras/Add-ons</string>
<string name="add_ons_description">Activa/desactiva mods, actualizaciones y DLC</string>
<string name="clear_shader_cache">Limpiar la caché de shaders</string>
<string name="clear_shader_cache_description">Elimina todos los shaders construidos mientras se jugaba al juego</string>
<string name="clear_shader_cache_warning_description">Experimentarás más parones mientras que la caché de shaders se regenera</string>
<string name="cleared_shaders_successfully">Shaders limpiados con éxito</string>
<string name="addons_game">Addons: %1$s</string>
<string name="save_data">Datos de guardado</string>
<string name="save_data_description">Controla los datos de guardado de este juego</string>
<string name="delete_save_data">Borrar datos de guardado</string>
<string name="delete_save_data_description">Elimina todos los datos de guardado de este juego</string>
<string name="delete_save_data_warning_description">Ésto elimina de manera permanente todos los datos de guardado de este juego. ¿Seguro que quieres continuar?</string>
<string name="save_data_deleted_successfully">Datos de guardado eliminados con éxito</string>
<string name="select_content_type">Tipo de contenido</string>
<string name="updates_and_dlc">Actualizaciones y DLC</string>
<string name="mods_and_cheats">Mods y trucos</string>
<string name="addon_notice">Aviso importante de addons</string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="addon_notice_description">Para instalar mods y trucos, debes seleccionar una carpeta que contiene los directorios cheats/, romfs/, o exefs/ . ¡No podemos confirmar si éstos serán compatibles con tu juego, así que ten cuidado!</string>
<string name="invalid_directory">Directorio no válido</string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="invalid_directory_description">Por favor, asegúrese de que el directorio que ha selecionado incluye las carpetas cheats/, romfs/, o exefs/ e inténtelo de nuevo.</string>
<string name="addon_installed_successfully">Addon instalado con éxito</string>
<string name="verifying_content">Verificando contenido...</string>
<string name="content_install_notice">Aviso importante de contenido</string>
<string name="content_install_notice_description">El contenido seleccionado no es de este juego.\n¿Instalar de todas maneras?</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">Su ROM está encriptada</string>
<string name="loader_error_encrypted_roms_description"><![CDATA[Por favor, siga las guías para redumpear<a href=\"https://yuzu-emu.org/help/quickstart/#dumping-physical-titles-game-cards\">cartuchos de juegos</a> o <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-digital-titles-eshop\">títulos instalados</a>.]]></string>
@ -277,6 +372,7 @@
<string name="emulation_pause">Pausar emulación</string>
<string name="emulation_unpause">Despausar emulación</string>
<string name="emulation_input_overlay">Opciones de overlay</string>
<string name="touchscreen">Pantalla táctil</string>
<string name="load_settings">Cargando configuración...</string>
@ -308,6 +404,7 @@
<!-- Memory Sizes -->
<string name="memory_byte">Byte</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_kilobyte">KB</string>
<string name="memory_megabyte">MB</string>
<string name="memory_gigabyte">GB</string>
@ -352,9 +449,13 @@
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_landscape">Paisaje</string>
<string name="screen_layout_portrait">Retrato</string>
<string name="screen_layout_auto">Auto</string>
<string name="screen_layout_sensor_landscape">Sensor paisaje</string>
<string name="screen_layout_landscape">Paisaje</string>
<string name="screen_layout_reverse_landscape">Paisaje inverso</string>
<string name="screen_layout_sensor_portrait">Sensor retrato</string>
<string name="screen_layout_portrait">Retrato</string>
<string name="screen_layout_reverse_portrait">Retrato inverso</string>
<!-- Aspect Ratios -->
<string name="ratio_default">Predeterminado (16:9)</string>
@ -363,6 +464,10 @@
<string name="ratio_force_sixteen_ten">Forzar 16:10</string>
<string name="ratio_stretch">Ajustar a la ventana</string>
<!-- CPU Backend -->
<string name="cpu_backend_dynarmic">DynARMic (lento)</string>
<string name="cpu_backend_nce">Ejecución nativa de código (NCE)</string>
<!-- CPU Accuracy -->
<string name="cpu_accuracy_accurate">Preciso</string>
<string name="cpu_accuracy_unsafe">Impreciso</string>
@ -391,8 +496,15 @@
<string name="theme_mode_dark">Oscuro</string>
<!-- Audio output engines -->
<string name="oboe">oboe</string>
<string name="cubeb">cubeb</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">x2</string>
<string name="multiplier_four">x4</string>
<string name="multiplier_eight">x8</string>
<string name="multiplier_sixteen">x16</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">Fondos oscuros</string>
<string name="use_black_backgrounds_description">Cuando utilice el modo oscuro, aplique fondos negros.</string>

View File

@ -34,6 +34,7 @@
<string name="empty_gamelist">Aucun fichier n\'a été trouvé ou aucun répertoire de jeu n\'a encore été sélectionné.</string>
<string name="search_and_filter_games">Rechercher et filtrer les jeux</string>
<string name="select_games_folder">Sélectionner le dossier des jeux</string>
<string name="manage_game_folders">Gérer les dossiers de jeux</string>
<string name="select_games_folder_description">Permet à yuzu de remplir la liste des jeux</string>
<string name="add_games_warning">Ne pas sélectionner le dossier des jeux ?</string>
<string name="add_games_warning_description">Les jeux ne seront pas affichés dans la liste des jeux si aucun dossier n\'est sélectionné.</string>
@ -47,7 +48,7 @@
<string name="install_prod_keys_warning_description">Des clés valides sont nécessaires pour émuler des jeux commerciaux. Seules les applications homebrew fonctionneront si vous continuez.</string>
<string name="install_prod_keys_warning_help">https://yuzu-emu.org/help/quickstart/#guide-introduction</string>
<string name="notifications">Notifications</string>
<string name="notifications_description">Accordez l\'autorisation de notification avec le bouton ci-dessous.</string>
<string name="notifications_description">Accorder la permission de notification avec le bouton ci-dessous.</string>
<string name="give_permission">Accorder la permission</string>
<string name="notification_warning">Ne pas accorder la permission de notification ?</string>
<string name="notification_warning_description">yuzu ne pourra pas vous communiquer d\'informations importantes.</string>
@ -68,6 +69,7 @@
<string name="invalid_keys_error">Clés de chiffrement invalides</string>
<string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string>
<string name="install_keys_failure_description">Le fichier sélectionné est incorrect ou corrompu. Veuillez dumper à nouveau vos clés.</string>
<string name="gpu_driver_manager">Gestionnaire de pilotes du GPU</string>
<string name="install_gpu_driver">Installer le pilote du GPU</string>
<string name="install_gpu_driver_description">Installer des pilotes alternatifs pour des performances ou une précision potentiellement meilleures</string>
<string name="advanced_settings">Paramètres avancés</string>
@ -85,7 +87,11 @@
<string name="notification_no_directory_link_description">Veuillez localiser manuellement le dossier utilisateur avec le panneau latéral du gestionnaire de fichiers.</string>
<string name="manage_save_data">Gérer les données de sauvegarde</string>
<string name="manage_save_data_description">Données de sauvegarde trouvées. Veuillez sélectionner une option ci-dessous.</string>
<string name="import_save_warning">Importer les données de sauvegarde</string>
<string name="import_save_warning_description">Cela écrasera toutes les données de sauvegarde existantes avec le fichier fourni. Êtes-vous sûr de vouloir continuer ?</string>
<string name="import_export_saves_description">Importer ou exporter des fichiers de sauvegarde</string>
<string name="save_files_importing">Importation des fichiers de sauvegarde...</string>
<string name="save_files_exporting">Exportation des fichiers de sauvegarde...</string>
<string name="save_file_imported_success">Importé avec succès</string>
<string name="save_file_invalid_zip_structure">Structure de répertoire de sauvegarde non valide</string>
<string name="save_file_invalid_zip_structure_description">Le nom du premier sous-dossier doit être l\'identifiant du titre du jeu.</string>
@ -118,6 +124,40 @@
<string name="manage_yuzu_data_description">Importer/exporter le firmware, les clés, les données utilisateur, et bien plus encore !</string>
<string name="share_save_file">Partager le fichier de sauvegarde</string>
<string name="export_save_failed">Échec de l\'exportation de la sauvegarde</string>
<string name="game_folders">Dossiers de jeux</string>
<string name="deep_scan">Analyse approfondie</string>
<string name="add_game_folder">Ajouter un dossier de jeu</string>
<string name="folder_already_added">Ce dossier a déjà été ajouté !</string>
<string name="game_folder_properties">Propriétés du dossier du jeu</string>
<plurals name="saves_import_failed">
<item quantity="one">Échec de l\'importation de %d sauvegarde</item>
<item quantity="many">Échec de l\'importation de %d sauvegardes </item>
<item quantity="other">Échec de l\'importation de %d sauvegardes</item>
</plurals>
<plurals name="saves_import_success">
<item quantity="one">%d sauvegarde importée avec succès</item>
<item quantity="many">%d sauvegardes importées avec succès</item>
<item quantity="other">%d sauvegardes importées avec succès</item>
</plurals>
<string name="no_save_data_found">Aucune donnée de sauvegarde trouvée</string>
<!-- Applet launcher strings -->
<string name="applets">Lanceur d\'applets</string>
<string name="applets_description">Lancer des applets système en utilisant le firmware installé</string>
<string name="applets_error_firmware">Firmware non installé</string>
<string name="applets_error_applet">Applet non disponible</string>
<string name="applets_error_description"><![CDATA[Veuillez vous assurer que le fichier <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> et le <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-system-firmware\">firmware</a> sont installés et essayez à nouveau.]]></string>
<string name="album_applet">Album</string>
<string name="album_applet_description">Afficher les images stockées dans le dossier de captures d\'écran de l\'utilisateur avec le visualiseur de photos système.</string>
<string name="mii_edit_applet">Éditeur Mii</string>
<string name="mii_edit_applet_description">Visualiser et modifier les Miis avec l\'éditeur système.</string>
<string name="cabinet_applet">Cabinet</string>
<string name="cabinet_applet_description">Modifier et supprimer des données stockées sur un amiibo</string>
<string name="cabinet_launcher">Cabinet</string>
<string name="cabinet_nickname_and_owner">Paramètres du surnom et du propriétaire</string>
<string name="cabinet_game_data_eraser">Effaceur de données de jeu</string>
<string name="cabinet_restorer">Restaurateur</string>
<string name="cabinet_formatter">Formateur</string>
<!-- About screen strings -->
<string name="gaia_is_not_real">Gaia n\'est pas réel</string>
@ -157,10 +197,11 @@
<string name="are_you_interested">Es tu intéressé ?</string>
<!-- General settings strings -->
<string name="frame_limit_enable">Limitation de vitesse</string>
<string name="frame_limit_enable">Limiter la vitesse</string>
<string name="frame_limit_enable_description">Limiter la vitesse d\'émulation à un pourcentage spécifié de la vitesse normale</string>
<string name="frame_limit_slider">Limite en pourcentage de vitesse</string>
<string name="frame_limit_slider">Limiter le pourcentage de vitesse</string>
<string name="frame_limit_slider_description">Spécifier le pourcentage pour limiter la vitesse d\'émulation. 100% correspond à la vitesse normale. Des valeurs plus élevées ou plus basses augmenteront ou diminueront la limite de vitesse.</string>
<string name="cpu_backend">Backend du CPU</string>
<string name="cpu_accuracy">Précision du CPU</string>
<string name="value_with_units">%1$s%2$s</string>
@ -191,6 +232,8 @@
<string name="renderer_reactive_flushing_description">Améliore la précision du rendu dans certains jeux au détriment des performances.</string>
<string name="use_disk_shader_cache">Utiliser les shader cache</string>
<string name="use_disk_shader_cache_description">Réduire les saccades en stockant et en chargeant localement les shaders générés</string>
<string name="anisotropic_filtering">Filtrage anisotropique</string>
<string name="anisotropic_filtering_description">Améliore la qualité des textures lorsqu\'elles sont visualisées sous des angles obliques</string>
<!-- Debug settings strings -->
<string name="cpu">CPU</string>
@ -217,7 +260,8 @@
<string name="shutting_down">Extinction en cours...</string>
<string name="reset_setting_confirmation">Voulez-vous réinitialiser ce paramètre à sa valeur par défaut ?</string>
<string name="reset_to_default">Réinitialiser par défaut</string>
<string name="reset_all_settings">Réinitialiser tous les réglages ?</string>
<string name="reset_to_default_description">Réinitialiser tous les paramètres avancés</string>
<string name="reset_all_settings">Réinitialiser tous les paramètres ?</string>
<string name="reset_all_settings_description">Tous les paramètres avancés seront réinitialisés à leur configuration par défaut. Ça ne peut pas être annulé.</string>
<string name="settings_reset">Paramètres réinitialisés</string>
<string name="close">Fermer</string>
@ -230,14 +274,24 @@
<string name="export_failed">L\'exportation a échoué</string>
<string name="import_failed">L\'importation a échoué</string>
<string name="cancelling">Annulation</string>
<string name="install">Installer</string>
<string name="delete">Supprimer</string>
<string name="edit">Éditer</string>
<string name="export_success">Exportation réussie</string>
<string name="start">Start</string>
<string name="clear">Effacer</string>
<string name="global">Global</string>
<string name="custom">Personnalisé</string>
<string name="notice">Avis</string>
<string name="import_complete">Importation terminée</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">Sélectionner le pilote du GPU</string>
<string name="select_gpu_driver_title">Souhaitez vous remplacer votre pilote actuel ?</string>
<string name="select_gpu_driver_install">Installer</string>
<string name="select_gpu_driver_default">Par défaut</string>
<string name="select_gpu_driver_use_default">Utilisation du pilote du GPU par défaut</string>
<string name="select_gpu_driver_error">Pilote non valide sélectionné, utilisation du paramètre par défaut du système !</string>
<string name="select_gpu_driver_error">Pilote non valide sélectionné</string>
<string name="driver_already_installed">Pilote déjà installé</string>
<string name="system_gpu_driver">Pilote du GPU du système</string>
<string name="installing_driver">Installation du pilote...</string>
@ -245,11 +299,52 @@
<string name="preferences_settings">Paramètres</string>
<string name="preferences_general">Général</string>
<string name="preferences_system">Système</string>
<string name="preferences_system_description">Mode TV, région, langue</string>
<string name="preferences_graphics">Vidéo</string>
<string name="preferences_graphics_description">Niveau de précision, résolution, cache de shaders</string>
<string name="preferences_audio">Audio</string>
<string name="preferences_audio_description">Moteur de sortie, volume</string>
<string name="preferences_theme">Thème et couleur</string>
<string name="preferences_debug">Débogage</string>
<string name="preferences_debug_description">Débogage CPU/GPU, API graphique, fastmem</string>
<!-- Game properties -->
<string name="info">Info</string>
<string name="info_description">ID du programme, développeur, version</string>
<string name="per_game_settings">Paramètres spécifiques au jeu</string>
<string name="per_game_settings_description">Modifier les paramètres spécifiques à ce jeu</string>
<string name="launch_options">Lancer la configuration</string>
<string name="path">Chemin</string>
<string name="program_id">ID du programme</string>
<string name="developer">Développeur</string>
<string name="version">Version</string>
<string name="copy_details">Copier les détails</string>
<string name="add_ons">Extensions</string>
<string name="add_ons_description">Activer les mods, mises à jour et DLC</string>
<string name="clear_shader_cache">Effacer le cache des shaders</string>
<string name="clear_shader_cache_description">Supprime tous les shaders générés en jouant à ce jeu</string>
<string name="clear_shader_cache_warning_description">Vous risquez de rencontrer davantage de saccades pendant que le cache des shaders se régénère.</string>
<string name="cleared_shaders_successfully">Shaders effacés avec succès</string>
<string name="addons_game">Addons : %1$s</string>
<string name="save_data">Données de sauvegarde</string>
<string name="save_data_description">Gérer les données de sauvegarde spécifiques à ce jeu</string>
<string name="delete_save_data">Supprimer les données de sauvegarde</string>
<string name="delete_save_data_description">Supprime toutes les données de sauvegarde spécifiques à ce jeu</string>
<string name="delete_save_data_warning_description">Cela supprime de manière irréversible toutes les données de sauvegarde de ce jeu. Êtes-vous sûr de vouloir continuer ?</string>
<string name="save_data_deleted_successfully">Données de sauvegarde supprimées avec succès</string>
<string name="select_content_type">Type de contenu</string>
<string name="updates_and_dlc">Mises à jour et DLC</string>
<string name="mods_and_cheats">Mods et cheats</string>
<string name="addon_notice">Notification importante concernant l\'addon</string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="addon_notice_description">Pour installer des mods et des cheats, vous devez sélectionner un dossier contenant un répertoire cheats/, romfs/ ou exefs/. Nous ne pouvons pas garantir leur compatibilité avec votre jeu, alors soyez prudent !</string>
<string name="invalid_directory">Répertoire non valide</string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="invalid_directory_description">Veuillez vous assurer que le répertoire que vous avez sélectionné contient un dossier cheats/, romfs/ ou exefs/, puis réessayez.</string>
<string name="addon_installed_successfully">Addon installé avec succès</string>
<string name="verifying_content">Vérification du contenu...</string>
<string name="content_install_notice">Avis d\'installation du contenu</string>
<string name="content_install_notice_description">Le contenu que vous avez sélectionné ne correspond pas à ce jeu.\nInstaller quand même ?</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">Votre ROM est cryptée</string>
<string name="loader_error_encrypted_roms_description"><![CDATA[Veuillez suivre les guides pour refaire un dump de vos <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-physical-titles-game-cards\">cartouches de jeu</a> ou de vos <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-digital-titles-eshop\">titres installés</a>.]]></string>
@ -277,6 +372,7 @@
<string name="emulation_pause">Mettre en pause l\'émulation</string>
<string name="emulation_unpause">Reprendre l\'émulation</string>
<string name="emulation_input_overlay">Options de l\'overlay</string>
<string name="touchscreen">Écran tactile</string>
<string name="load_settings">Chargement des paramètres…</string>
@ -308,6 +404,7 @@
<!-- Memory Sizes -->
<string name="memory_byte">Octet</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_kilobyte">Ko</string>
<string name="memory_megabyte">Mo</string>
<string name="memory_gigabyte">GB</string>
@ -352,9 +449,13 @@
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_landscape">Paysage</string>
<string name="screen_layout_portrait">Portrait</string>
<string name="screen_layout_auto">Auto</string>
<string name="screen_layout_sensor_landscape">Paysage</string>
<string name="screen_layout_landscape">Paysage</string>
<string name="screen_layout_reverse_landscape">Paysage inversé</string>
<string name="screen_layout_sensor_portrait">Portrait</string>
<string name="screen_layout_portrait">Portrait</string>
<string name="screen_layout_reverse_portrait">Portrait inversé</string>
<!-- Aspect Ratios -->
<string name="ratio_default">Par défaut (16:9)</string>
@ -363,6 +464,10 @@
<string name="ratio_force_sixteen_ten">Forcer le 16:10</string>
<string name="ratio_stretch">Étirer à la fenêtre</string>
<!-- CPU Backend -->
<string name="cpu_backend_dynarmic">Dynarmic (Lent)</string>
<string name="cpu_backend_nce">Exécution de code natif (NCE)</string>
<!-- CPU Accuracy -->
<string name="cpu_accuracy_accurate">Précis</string>
<string name="cpu_accuracy_unsafe">Risqué</string>
@ -391,8 +496,15 @@
<string name="theme_mode_dark">Sombre</string>
<!-- Audio output engines -->
<string name="oboe">oboe</string>
<string name="cubeb">cubeb</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">Arrière-plan noir</string>
<string name="use_black_backgrounds_description">Lorsque vous utilisez le thème sombre, appliquer un arrière-plan noir.</string>

View File

@ -34,6 +34,7 @@
<string name="empty_gamelist">לא נמצאו קבצים או לנבחרה ספריית קבצים בינתיים.</string>
<string name="search_and_filter_games">חפש וסנן משחקים</string>
<string name="select_games_folder">בחר תיקיית משחקים</string>
<string name="manage_game_folders">נהל את תיקיית המשחקים</string>
<string name="select_games_folder_description">אפשר ל yuzu לאכלס את רשימת המשחקים</string>
<string name="add_games_warning">לדלג על בחירת תיקיית המשחקים?</string>
<string name="add_games_warning_description">משחקים לא יוצגו ברשימת המשחקים אם לנבחרה תיקיית משחקים.</string>
@ -68,6 +69,7 @@
<string name="invalid_keys_error">מפתחות הצפנה לא חוקיים</string>
<string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string>
<string name="install_keys_failure_description">קבוץ שנבחר מושחת או לא נכון. בבקשה הוצא מחדש את המפתחות שלך.</string>
<string name="gpu_driver_manager">מנהל הדרייברים של המעבד הגרפי</string>
<string name="install_gpu_driver">התקן דרייבר למעבד הגרפי</string>
<string name="install_gpu_driver_description">התקן דרייברים אחרים בשביל סיכוי לביצועים או דיוק גבוההים יותר</string>
<string name="advanced_settings">הגדרות מתקדמות</string>
@ -86,6 +88,7 @@
<string name="manage_save_data">נהל מידע שמור</string>
<string name="manage_save_data_description">מידע שמור לא נמצא. בבקשה בחר/י אופציה מלמטה</string>
<string name="import_export_saves_description">יבא או יצא קבצי שמירה</string>
<string name="save_files_exporting">מייצא קבצי שמירה...</string>
<string name="save_file_imported_success">יובא בהצלחה</string>
<string name="save_file_invalid_zip_structure">מבנה ספריית השמירות לא חוקי</string>
<string name="save_file_invalid_zip_structure_description">התת תיקייה הראשונה חייב להיות ה title ID של המשחק</string>
@ -118,6 +121,28 @@
<string name="manage_yuzu_data_description">יבא/יצא firmware, keys, מידע של משתמש ועוד!</string>
<string name="share_save_file">שתף קובץ שמירה</string>
<string name="export_save_failed">נכשל בייצוא שמירה</string>
<string name="game_folders">תיקיית משחקים</string>
<string name="deep_scan">סריקה עמוקה</string>
<string name="add_game_folder">הוסף תיקיית משחקים</string>
<string name="folder_already_added">התיקייה הזו נוספה כבר!</string>
<string name="game_folder_properties">מאפייני תיקיית משחקים</string>
<!-- Applet launcher strings -->
<string name="applets">משגר Applet</string>
<string name="applets_description">מערכת שיגור Applet משתמשת בתוכנה המותקנת</string>
<string name="applets_error_firmware">ה Firmware לא מותקן</string>
<string name="applets_error_applet">Applet לא זמין</string>
<string name="applets_error_description"><![CDATA[בבקשה וודא שקבצי ה - <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a>ו <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-system-firmware\">firmware</a>שלך מותקנים ונסה שוב.]]></string>
<string name="album_applet">אלבום</string>
<string name="album_applet_description">צפה בתמונות השמורות בתיקיית צילומי המסך של המשתמש בעזרת מציג התמונות של המערכת</string>
<string name="mii_edit_applet">עורך Mii</string>
<string name="mii_edit_applet_description">צפה וערוך דמויות Mii בעזרת עורך המערכת</string>
<string name="cabinet_applet">ארון</string>
<string name="cabinet_applet_description">ערוך ומחק מידע השמור על ה amiibo</string>
<string name="cabinet_launcher">משגר ארונות</string>
<string name="cabinet_nickname_and_owner">כינוי והגדרות בעלים</string>
<string name="cabinet_game_data_eraser">מחק של נתוני משחק</string>
<string name="cabinet_restorer">שחזר</string>
<string name="cabinet_formatter">בונה תבניות</string>
<!-- About screen strings -->
<string name="gaia_is_not_real">Gaia לא אמיתית</string>
@ -161,6 +186,7 @@
<string name="frame_limit_enable_description">מגביל את מהירות האמולציה לאחוז מהירות המבוקש מהמהירות הרגילה.</string>
<string name="frame_limit_slider">הגבל את אחוז המהירות</string>
<string name="frame_limit_slider_description">מדייק את אחוז מהירות האמולציה. 100% זה מהירות רגילה. ערכים גדולים או קטנים יאיצו או יאטו את מהירות האמולציה.</string>
<string name="cpu_backend">קצה האחורי של המעבד</string>
<string name="cpu_accuracy">דיוק המעבד</string>
<string name="value_with_units">%1$s%2$s</string>
@ -185,23 +211,38 @@
<string name="renderer_anti_aliasing">שיטת Anti-aliasing</string>
<string name="renderer_force_max_clock">החזק מהירות שעון מקסימלית (רק ל Adreno)</string>
<string name="renderer_force_max_clock_description">מכריח לדחוף את מהירויות המעבד הגרפי למקסימום (הגבלות חום ימשיכו לתפקד).</string>
<string name="renderer_asynchronous_shaders">השתמש בשיידרים אסינכרונים</string>
<string name="renderer_asynchronous_shaders_description">מקמפל שיידרים בצורה אסנכרונית, מפחית תקיעות אך עלול לגרום לבעיות גרפיות.</string>
<string name="renderer_reactive_flushing">השתמש בהבהוב תגובתי</string>
<string name="renderer_reactive_flushing_description">משפר את הדיוק של האמולציה במשחקים מסויימים במחיר של ביצועים.</string>
<string name="use_disk_shader_cache">מטמון השיידר של הדיסק</string>
<string name="use_disk_shader_cache_description">מפחית בתקיעות על ידי אחסון מקומי וטעינה של שיידרים הנוצרים. </string>
<!-- Debug settings strings -->
<string name="cpu">מעבד</string>
<string name="cpu_debug_mode">דיבאגינג למעבד</string>
<string name="cpu_debug_mode_description">מכניס את המעבד למצב דיבאג איטי</string>
<string name="gpu">מעבד גרפי</string>
<string name="renderer_api">ממשק תוכנה</string>
<string name="renderer_debug">דיבאגינג בגרפיקה</string>
<string name="renderer_debug_description">קובע את ממשק התוכנה של הגרפיקות למצב דיבאגינג איטי.</string>
<string name="fastmem">Fastmem</string>
<!-- Audio settings strings -->
<string name="audio_output_engine">מנוע פלט</string>
<string name="audio_volume">עוצמת שמע</string>
<string name="audio_volume_description">מציין את עוצמת האודיו שיוצא.</string>
<!-- Miscellaneous -->
<string name="slider_default">ברירת מחדל</string>
<string name="ini_saved">הגדרות שמורות</string>
<string name="gameid_saved">הגדרות שמורות עבור %1$s</string>
<string name="error_saving">תקלה בשמירת %1$s.ini: %2$s</string>
<string name="unimplemented_menu">תפריט שלא יושם</string>
<string name="loading">טוען...</string>
<string name="shutting_down">כיבוי...</string>
<string name="reset_setting_confirmation">אתה מעוניין לאפס את ההגדרה הזו חזרה לברירת המחדל?</string>
<string name="reset_to_default">אפס לברירת המחדל</string>
<string name="reset_to_default_description">מאפס את כל ההגדרות המתקדמות.</string>
<string name="reset_all_settings">לאפס את כל ההגדרות?</string>
<string name="reset_all_settings_description">כל ההגדרות המתקדמות יאופסו לברירת המחדל. לא ניתן לבטל פעולה זו.</string>
<string name="settings_reset">אפס הגדרות</string>
@ -209,19 +250,26 @@
<string name="learn_more">למד עוד</string>
<string name="auto">אוטומטי</string>
<string name="submit">שלח</string>
<string name="string_null">ריק</string>
<string name="string_import">ייבוא</string>
<string name="export">ייצוא</string>
<string name="export_failed">ייצוא נכשל</string>
<string name="import_failed">ייבוא נכשל</string>
<string name="cancelling">מבטל</string>
<string name="install">התקן</string>
<string name="delete">מחק</string>
<string name="edit">ערוך</string>
<string name="export_success">יוצא בהצלחה</string>
<string name="start">התחלה</string>
<string name="clear">נקה</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">בחר דרייבר למעבד הגרפי</string>
<string name="select_gpu_driver_title">אתה מעוניין להחליף את הדרייבר של המעבד הגרפי שלך?</string>
<string name="select_gpu_driver_install">התקן</string>
<string name="select_gpu_driver_default">ברירת מחדל</string>
<string name="select_gpu_driver_use_default">משתמש בדרייבר ברירת המחדל של המעבד הגרפי</string>
<string name="select_gpu_driver_error">דרייבר לא חוקי נבחר, משתמש בברירת המחדל של המערכת!</string>
<string name="select_gpu_driver_error">נבחר דרייבר לא חוקי</string>
<string name="driver_already_installed">הדרייבר כבר מותקן</string>
<string name="system_gpu_driver">דרייבר של המעבד הגרפי של המערכת</string>
<string name="installing_driver">מתקין דרייבר...</string>
@ -229,11 +277,27 @@
<string name="preferences_settings">הגדרות</string>
<string name="preferences_general">כללי</string>
<string name="preferences_system">מערכת</string>
<string name="preferences_system_description">מצב מעוגן, איזור, שפה</string>
<string name="preferences_graphics">גרפיקה</string>
<string name="preferences_graphics_description">רמת דיוק, רזולוציה, מטמון שיידרים</string>
<string name="preferences_audio">שמע</string>
<string name="preferences_audio_description">מנוע פלט, עוצמת שמע</string>
<string name="preferences_theme">צבע ונושא</string>
<string name="preferences_debug">דיבאג</string>
<string name="preferences_debug_description">דיבאגינג עבור מעבד/מעבד גרפי, ממשק תוכנה עבור הגרפיקות, fastmem</string>
<!-- Game properties -->
<string name="info">מידע</string>
<string name="path">דרך</string>
<string name="developer">מפתח</string>
<string name="version">גרסה</string>
<string name="add_ons">תוספים</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">המשחק שלך מוצפן</string>
<string name="loader_error_encrypted_roms_description"><![CDATA[אנא עקוב אחרי המדריכים כדי לבצע redump של <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-physical-titles-game-cards\">כרטיסי המשחק</a>או <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-digital-titles-eshop\">הכותרות המותקנות</a> שלך.]]></string>
<string name="loader_error_encrypted_keys_description"><![CDATA[אנא וודא שקובץ ה-<a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> מותקן כך שניתן יהיה לפענח משחקים.]]></string>
<string name="loader_error_video_core">התרחשה בעיה באתחול של ליבת הווידאו</string>
<string name="loader_error_video_core_description">זה בדרך כלל נגרם על ידי דרייבר לא מתאים עבור המעבד הגרפי. התקנת דרייבר אשר מתאים למעבד הגרפי יכול לפתור את הבעיה הזו.</string>
<string name="loader_error_invalid_format">אין אפשרות לטעון את המשחק</string>
<string name="loader_error_file_not_found">קובץ המשחק לא קיים</string>
@ -241,10 +305,22 @@
<string name="emulation_exit">צא מהאמולציה</string>
<string name="emulation_done">סיום</string>
<string name="emulation_fps_counter">סופר FPS</string>
<string name="emulation_toggle_controls">החלפת בקרים</string>
<string name="emulation_rel_stick_center">מרכז ג׳ויסטיק יחסי</string>
<string name="emulation_dpad_slide">החלקת D-pad</string>
<string name="emulation_haptics">רטט מגע</string>
<string name="emulation_show_overlay">הצג את שכבת-העל</string>
<string name="emulation_toggle_all">החלף הכל</string>
<string name="emulation_control_adjust">התאם את שכבת-העל</string>
<string name="emulation_control_scale">קנה מידה</string>
<string name="emulation_control_opacity">שקיפות</string>
<string name="emulation_touch_overlay_reset">אפס את שכבת-העל</string>
<string name="emulation_touch_overlay_edit">ערוך שכבת-על</string>
<string name="emulation_pause">עצור אמולציה</string>
<string name="emulation_unpause">המשך אמולציה</string>
<string name="emulation_input_overlay">אופציות עבור שכבת-על</string>
<string name="touchscreen">מסך מגע</string>
<string name="load_settings">טוען הגדרות...</string>
<!-- Software keyboard -->
@ -258,6 +334,8 @@
<string name="system_archive_general">ארכיון מערכת</string>
<string name="save_load_error">בעיית שמירה/טעינה</string>
<string name="fatal_error">שגיאה חמורה</string>
<string name="fatal_error_message">שגיאה חמורה התרחשה. בדוק את היומן לפרטים./nהמשך הסימולציה עשוי לגרום לקריסות ולבאגים.</string>
<string name="performance_warning">כיבוי הגדרה זו ישפיע משמעותית על ביצועי הסימולציה! לחוויה הטובה ביותר, מומלץ להשאיר את הגדרה זו מופעלת.</string>
<string name="device_memory_inadequate">RAM המכשיר: %1$s/nמומלץ: %2$s</string>
<string name="memory_formatted">%1$s%2$s</string>
<string name="no_game_present">אין משחק שניתן להריץ!</string>
@ -273,6 +351,7 @@
<!-- Memory Sizes -->
<string name="memory_byte">בייט</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_kilobyte">KB</string>
<string name="memory_megabyte">MB</string>
<string name="memory_gigabyte">GB</string>
@ -297,12 +376,17 @@
<string name="resolution_three">3X (2160p/3240p) (איטי)</string>
<string name="resolution_four">4X (2880p/4320p) (איטי)</string>
<!-- Renderer VSync -->
<string name="renderer_vsync_immediate">מיידי (כבוי)</string>
<string name="renderer_vsync_mailbox">תיבת דואר</string>
<string name="renderer_vsync_fifo">FIFO (On)</string>
<string name="renderer_vsync_fifo_relaxed">FIFO נינוח</string>
<!-- Scaling Filters -->
<string name="scaling_filter_nearest_neighbor">השכן הקרוב ביותר</string>
<string name="scaling_filter_bilinear">ביליניארי</string>
<string name="scaling_filter_bicubic">Bicubic</string>
<string name="scaling_filter_gaussian">Gaussian</string>
<string name="scaling_filter_scale_force">ScaleForce</string>
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolution</string>
@ -312,10 +396,9 @@
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_auto">אוטומטי</string>
<string name="screen_layout_landscape">לרוחב</string>
<string name="screen_layout_portrait">לאורך</string>
<string name="screen_layout_auto">אוטומטי</string>
<!-- Aspect Ratios -->
<string name="ratio_default">ברירת מחדל (16:9)</string>
<string name="ratio_force_four_three">הכרח 4:3</string>
@ -323,6 +406,10 @@
<string name="ratio_force_sixteen_ten">הכרח 16:10</string>
<string name="ratio_stretch">הרחב לגודל המסך</string>
<!-- CPU Backend -->
<string name="cpu_backend_dynarmic">דינמי (איטי)</string>
<string name="cpu_backend_nce">ביצוע קוד מקורי (NCE)</string>
<!-- CPU Accuracy -->
<string name="cpu_accuracy_accurate">מדויק</string>
<string name="cpu_accuracy_unsafe">לא בטוח</string>
@ -335,6 +422,10 @@
<string name="gamepad_home">בית</string>
<string name="gamepad_screenshot">צילום מסך</string>
<!-- Disk shader cache -->
<string name="preparing_shaders">מכין שיידרים</string>
<string name="building_shaders">בונה שיידרים</string>
<!-- Theme options -->
<string name="change_app_theme">שנה את נושא האפליקצייה</string>
<string name="theme_default">ברירת מחדל</string>
@ -346,9 +437,14 @@
<string name="theme_mode_light">בהיר</string>
<string name="theme_mode_dark">כהה</string>
<!-- Audio output engines -->
<string name="cubeb">cubeb</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">רקעים שחורים</string>
<string name="use_black_backgrounds_description">כשמתשמשים במצב כהה, שם רקעים שחורים.</string>

View File

@ -35,6 +35,7 @@ Válaszd ki a(z) &lt;b>Games&lt;/b> mappát az alábbi gombbal.</string>
<string name="empty_gamelist">Nem található fájl, vagy még nincs kiválasztva könyvtár.</string>
<string name="search_and_filter_games">Játékok keresése és szűrése</string>
<string name="select_games_folder">Játékmappa kiválasztása</string>
<string name="manage_game_folders">Játékmappák kezelése</string>
<string name="add_games_warning">Kihagyod a játékok mappa kiválasztását?</string>
<string name="add_games_warning_description">A játékok nem jelennek meg a Játékok listában, ha egy mappa nincs kijelölve.</string>
<string name="add_games_warning_help">https://yuzu-emu.org/help/quickstart/#dumping-games</string>
@ -68,6 +69,7 @@ Válaszd ki a(z) &lt;b>Games&lt;/b> mappát az alábbi gombbal.</string>
<string name="invalid_keys_error">Érvénytelen titkosítókulcsok</string>
<string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string>
<string name="install_keys_failure_description">A kiválasztott fájl helytelen, vagy sérült. Állíts össze egy új kulcsot.</string>
<string name="gpu_driver_manager">GPU illesztőprogram-kezelő</string>
<string name="install_gpu_driver">GPU illesztőprogram telepítése</string>
<string name="install_gpu_driver_description">Alternatív illesztőprogramok telepítése az esetlegesen elérhető teljesítmény és pontosság érdekében</string>
<string name="advanced_settings">Haladó beállítások</string>
@ -84,7 +86,11 @@ Válaszd ki a(z) &lt;b>Games&lt;/b> mappát az alábbi gombbal.</string>
<string name="notification_no_directory_link_description">Kérjük, manuálisan keresd meg a felhasználói mappát a fájlkezelő oldalsó paneljével.</string>
<string name="manage_save_data">Mentésadatok kezelése</string>
<string name="manage_save_data_description">Mentés található. Kérjük, válassz egyet az alábbi opciók közül.</string>
<string name="import_save_warning">Mentési fájlok importálása</string>
<string name="import_save_warning_description">Ezzel felülírod a fájlban lévő mentett adatokat. Biztosan szeretnéd folytatni?</string>
<string name="import_export_saves_description">Mentési fájlok importálás vagy exportálása</string>
<string name="save_files_importing">Mentési fájlok importálása...</string>
<string name="save_files_exporting">Mentési fájlok exportálása...</string>
<string name="save_file_imported_success">Sikeresen importálva</string>
<string name="save_file_invalid_zip_structure">Érvénytelen mentési könyvtárstruktúra</string>
<string name="save_file_invalid_zip_structure_description">Az első almappa neve a játék azonosítója kell, hogy legyen.</string>
@ -117,6 +123,38 @@ Válaszd ki a(z) &lt;b>Games&lt;/b> mappát az alábbi gombbal.</string>
<string name="manage_yuzu_data_description">Firmware, kulcsok, felhasználói adatok és egyebek importálása/exportálása</string>
<string name="share_save_file">Mentési fájl megosztása</string>
<string name="export_save_failed">A mentés exportálása sikertelen</string>
<string name="game_folders">Játékmappák</string>
<string name="deep_scan">Mély szkennelés</string>
<string name="add_game_folder">Játékmappa hozzáadása</string>
<string name="folder_already_added">Ez a mappa már hozzá lett adva!</string>
<string name="game_folder_properties">Játékmappa tulajdonságok</string>
<plurals name="saves_import_failed">
<item quantity="one">%dmentés importálása sikertelen</item>
<item quantity="other">%dmentés importálása sikertelen</item>
</plurals>
<plurals name="saves_import_success">
<item quantity="one">%dmentés sikeresen importálva</item>
<item quantity="other">%dmentés sikeresen importálva</item>
</plurals>
<string name="no_save_data_found">Nem található mentett adat</string>
<!-- Applet launcher strings -->
<string name="applets">Applet indító</string>
<string name="applets_description">Rendszer appletek indítása a telepített firmware-rel</string>
<string name="applets_error_firmware">Firmware nincs telepítve</string>
<string name="applets_error_applet">Applet nem elérhető</string>
<string name="applets_error_description"><![CDATA[Kérjük, győződj meg róla, hogy a <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> fájl és a <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-system-firmware\">firmware</a> telepítve van, majd próbáld újra.]]></string>
<string name="album_applet">Album</string>
<string name="album_applet_description">Képernyőképek megtekintése a rendszer fényképnézegetőjével</string>
<string name="mii_edit_applet">Mii szerkesztés</string>
<string name="mii_edit_applet_description">Miik megtekintése és szerkesztése a rendszerszerkesztővel</string>
<string name="cabinet_applet">Kabinet</string>
<string name="cabinet_applet_description">Amiibon tárolt adatok szerkesztése és törlése</string>
<string name="cabinet_launcher">Kabinet indító</string>
<string name="cabinet_nickname_and_owner">Becenév és tulajdonos beállítások</string>
<string name="cabinet_game_data_eraser">Játékadat eltávolító</string>
<string name="cabinet_restorer">Helyreállító</string>
<string name="cabinet_formatter">Formázó</string>
<!-- About screen strings -->
<string name="gaia_is_not_real">Gaia nem valódi</string>
@ -158,6 +196,7 @@ Válaszd ki a(z) &lt;b>Games&lt;/b> mappát az alábbi gombbal.</string>
<string name="frame_limit_enable_description">Korlátozza az emuláció sebességét a normál sebesség adott százalékára.</string>
<string name="frame_limit_slider">Sebességkorlát százaléka</string>
<string name="frame_limit_slider_description">Az emuláció sebességét határozza meg. 100% a normál sebesség. A magasabb értékek növelik, az alacsonyabbak csökkentik a sebességkorlátot.</string>
<string name="cpu_backend">CPU backend</string>
<string name="cpu_accuracy">CPU pontosság</string>
<string name="value_with_units">%1$s%2$s</string>
@ -188,7 +227,7 @@ Válaszd ki a(z) &lt;b>Games&lt;/b> mappát az alábbi gombbal.</string>
<string name="renderer_reactive_flushing_description">Javítja a renderelési pontosságot néhány játékban a teljesítmény rovására.</string>
<string name="use_disk_shader_cache">Lemez árnyékoló gyorsítótár</string>
<string name="use_disk_shader_cache_description">Csökkenti az akadásokat azáltal, hogy helyileg tárolja és tölti be a generált árnyékolókat.</string>
<string name="anisotropic_filtering">Anizotropikus szűrés</string>
<!-- Debug settings strings -->
<string name="cpu">CPU</string>
<string name="cpu_debug_mode">CPU hibakeresés</string>
@ -196,9 +235,9 @@ Válaszd ki a(z) &lt;b>Games&lt;/b> mappát az alábbi gombbal.</string>
<string name="gpu">GPU</string>
<string name="renderer_api">API</string>
<string name="renderer_debug">Grafikai hibakeresés</string>
<string name="renderer_debug_description">Lassú hibakeresési módba állítja a grafikus API-t .</string>
<string name="renderer_debug_description">Lassú hibakereső módba állítja a grafikus API-t .</string>
<!-- Audio settings strings -->
<string name="audio_output_engine">Kimeneti rendszer</string>
<string name="audio_output_engine">Kimeneti motor</string>
<string name="audio_volume">Hangerő</string>
<string name="audio_volume_description">Hangkimenet hangerejének megadása</string>
@ -212,6 +251,7 @@ Válaszd ki a(z) &lt;b>Games&lt;/b> mappát az alábbi gombbal.</string>
<string name="shutting_down">Leállítás...</string>
<string name="reset_setting_confirmation">Szeretnéd visszaállítani a beállítások az alapértelmezett értékekre?</string>
<string name="reset_to_default">Alaphelyzetbe állítás</string>
<string name="reset_to_default_description">Visszaállítja a haladó beállításokat</string>
<string name="reset_all_settings">Alaphelyzetbe állítod a beállításokat?</string>
<string name="reset_all_settings_description">Minden haladó beállítás vissza lesz állítva az alapértelmezett konfigurációra. Ez a művelet nem vonható vissza.</string>
<string name="settings_reset">Beállítások alaphelyzetbe állítva</string>
@ -219,12 +259,24 @@ Válaszd ki a(z) &lt;b>Games&lt;/b> mappát az alábbi gombbal.</string>
<string name="learn_more">Tudj meg többet</string>
<string name="auto">Automatikus</string>
<string name="submit">Küldés</string>
<string name="string_null">Nulla</string>
<string name="string_null">Null</string>
<string name="string_import">Importálás</string>
<string name="export">Exportálás</string>
<string name="export_failed">Exportálás sikertelen</string>
<string name="import_failed">Importálás sikertelen</string>
<string name="cancelling">Megszakítás</string>
<string name="install">Telepítés</string>
<string name="delete">Törlés</string>
<string name="edit">Szerkesztés</string>
<string name="export_success">Sikeresen exportálva</string>
<string name="start">Start</string>
<string name="clear">Törlés</string>
<string name="global">Globális</string>
<string name="custom">Egyéni</string>
<string name="notice">Értesítés</string>
<string name="import_complete">Importálás befejezve</string>
<string name="more_options">További opciók</string>
<string name="use_global_setting">Globális beállítás használata</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">Válassz GPU illesztőprogramot</string>
@ -232,7 +284,8 @@ Válaszd ki a(z) &lt;b>Games&lt;/b> mappát az alábbi gombbal.</string>
<string name="select_gpu_driver_install">Telepítés</string>
<string name="select_gpu_driver_default">Alapértelmezett</string>
<string name="select_gpu_driver_use_default">Alapértelmezett GPU illesztőprogram használata</string>
<string name="select_gpu_driver_error">Érvénytelen driver kiválasztva, a rendszer alapértelmezett lesz használva!</string>
<string name="select_gpu_driver_error">Érvénytelen illesztőprogram kiválasztva</string>
<string name="driver_already_installed">Az illesztőprogram már telepítve van</string>
<string name="system_gpu_driver">Rendszer GPU illesztőprogram</string>
<string name="installing_driver">Illesztőprogram telepítése...</string>
@ -240,10 +293,54 @@ Válaszd ki a(z) &lt;b>Games&lt;/b> mappát az alábbi gombbal.</string>
<string name="preferences_settings">Beállítások</string>
<string name="preferences_general">Általános</string>
<string name="preferences_system">Rendszer</string>
<string name="preferences_system_description">Dokkolt mód, régió, nyelv</string>
<string name="preferences_graphics">Grafika</string>
<string name="preferences_graphics_description">Pontossági szint, felbontás, árnyékoló gyorsítótár</string>
<string name="preferences_audio">Hang</string>
<string name="preferences_audio_description">Kimeneti motor, hangerő</string>
<string name="preferences_theme">Téma és színek</string>
<string name="preferences_debug">Hibakeresés</string>
<string name="preferences_debug_description">CPU/GPU hibakeresés, grafikus API, fastmem</string>
<!-- Game properties -->
<string name="info">Infó</string>
<string name="info_description">Program ID, fejlesztő, verzió</string>
<string name="per_game_settings">Játékonkénti beállítások</string>
<string name="per_game_settings_description">Játékspecifikus beállítások szerkesztése</string>
<string name="launch_options">Indítási konfiguráció</string>
<string name="path">Útvonal</string>
<string name="program_id">Program ID</string>
<string name="developer">Fejlesztő</string>
<string name="version">Verzió</string>
<string name="copy_details">Részletek másolása</string>
<string name="add_ons">Kiegészítők</string>
<string name="add_ons_description">Modok, frissítések és DLC váltása</string>
<string name="clear_shader_cache">Árnyékoló gyorsítótár ürítése</string>
<string name="clear_shader_cache_description">Eltávolítja a játék által létrehozott árnyékolókat.</string>
<string name="clear_shader_cache_warning_description">Az árnyékoló gyorsítótár regenerálódása során több akadozást fogsz tapasztalni.</string>
<string name="cleared_shaders_successfully">Árnyékolók sikeresen ürítve</string>
<string name="addons_game">Kiegészítők: %1$s</string>
<string name="save_data">Mentett adatok</string>
<string name="save_data_description">Játékspecifikus mentett adatok kezelése</string>
<string name="delete_save_data">Mentett adatok törlése</string>
<string name="delete_save_data_description">Eltávolítja az összes játékhoz tartozó mentett adatot.</string>
<string name="delete_save_data_warning_description">Ez helyreállíthatatlanul eltávolítja a játék összes mentett adatát. Biztosan szeretnéd folytatni?</string>
<string name="save_data_deleted_successfully">Mentett adatok sikeresen törölve</string>
<string name="select_content_type">Tartalom típusa</string>
<string name="updates_and_dlc">Frissítések és DLC</string>
<string name="mods_and_cheats">Modok és csalások</string>
<string name="addon_notice">Fontos kiegészítő értesítés</string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="addon_notice_description">A modok és csalások telepítéséhez olyan mappát válassz, amely tartalmaz cheats/, romfs/ vagy exefs/ könyvtárat. Nem tudjuk garantálni, hogy ezek kompatibilisek lesznek a játékoddal, ezért légy óvatos!</string>
<string name="invalid_directory">Érvénytelen könyvtár</string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="invalid_directory_description">Kérjük, győződj meg róla, hogy a kiválasztott könyvtár tartalmazza a cheats/, romfs/ vagy exefs/ mappát, majd próbáld újra.</string>
<string name="addon_installed_successfully">Kiegészítő sikeresen telepítve</string>
<string name="verifying_content">Tartalom ellenőrzése...</string>
<string name="content_install_notice">Tartalom telepítési értesítés</string>
<string name="content_install_notice_description">A kiválasztott tartalom nem ehhez a játékhoz tartozik.\nÍgy is telepíted?</string>
<string name="confirm_uninstall">Eltávolítás megerősítése</string>
<string name="confirm_uninstall_description">Biztosan törölni szeretnéd ezt a kiegészítőt?</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">ROM titkosítva</string>
@ -270,6 +367,7 @@ Válaszd ki a(z) &lt;b>Games&lt;/b> mappát az alábbi gombbal.</string>
<string name="emulation_pause">Emuláció szünetelése</string>
<string name="emulation_unpause">Emuláció folytatása</string>
<string name="emulation_input_overlay">Átfedés beállításai</string>
<string name="touchscreen">Érintőképernyő</string>
<string name="load_settings">Beállítások betöltése...</string>
@ -301,6 +399,7 @@ Válaszd ki a(z) &lt;b>Games&lt;/b> mappát az alábbi gombbal.</string>
<!-- Memory Sizes -->
<string name="memory_byte">Bájt</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_kilobyte">KB</string>
<string name="memory_megabyte">MB</string>
<string name="memory_gigabyte">GB</string>
@ -345,9 +444,11 @@ Válaszd ki a(z) &lt;b>Games&lt;/b> mappát az alábbi gombbal.</string>
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_landscape">Fekvő</string>
<string name="screen_layout_portrait">Álló</string>
<string name="screen_layout_auto">Automatikus</string>
<string name="screen_layout_landscape">Fekvő</string>
<string name="screen_layout_reverse_landscape">Fekvő (fejjel lefelé)</string>
<string name="screen_layout_portrait">Álló</string>
<string name="screen_layout_reverse_portrait">Álló (fejjel lefelé)</string>
<!-- Aspect Ratios -->
<string name="ratio_default">Alapértelmezett (16:9)</string>
@ -356,6 +457,8 @@ Válaszd ki a(z) &lt;b>Games&lt;/b> mappát az alábbi gombbal.</string>
<string name="ratio_force_sixteen_ten">16:10 kényszerítése</string>
<string name="ratio_stretch">Ablakhoz nyújtás</string>
<!-- CPU Backend -->
<string name="cpu_backend_dynarmic">Dinamikus (lassú)</string>
<!-- CPU Accuracy -->
<string name="cpu_accuracy_accurate">Pontos</string>
<string name="cpu_accuracy_unsafe">Nem biztonságos</string>
@ -382,8 +485,15 @@ Válaszd ki a(z) &lt;b>Games&lt;/b> mappát az alábbi gombbal.</string>
<string name="theme_mode_dark">Sötét</string>
<!-- Audio output engines -->
<string name="oboe">oboe</string>
<string name="cubeb">cubeb</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">Fekete háttér</string>
<string name="use_black_backgrounds_description">Sötét téma használatakor fekete háttér használata.</string>

View File

@ -17,7 +17,7 @@
<string name="keys_description">Seleziona il tuo file &lt;b>prod.keys&lt;/b> con il pulsante in basso.</string>
<string name="select_keys">Seleziona le chiavi</string>
<string name="games">Giochi</string>
<string name="games_description">Seleziona la cartella &lt;b>Games&lt;/b> con il pulsante in basso.</string>
<string name="games_description">Seleziona la cartella dei &lt;b>giochi&lt;/b> con il pulsante in basso.</string>
<string name="done">Fatto</string>
<string name="done_description">È tutto pronto.\nDivertiti a giocare!</string>
<string name="text_continue">Continua</string>
@ -33,7 +33,7 @@
<string name="home_settings">Impostazioni</string>
<string name="empty_gamelist">Non sono stati trovati file o non è stata ancora selezionata alcuna directory di gioco.</string>
<string name="search_and_filter_games">Cerca e filtra i giochi</string>
<string name="select_games_folder">Seleziona la cartella di gioco</string>
<string name="select_games_folder">Seleziona la cartella dei giochi</string>
<string name="select_games_folder_description">Consente a yuzu di popolare l\'elenco dei giochi</string>
<string name="add_games_warning">Saltare la selezione della cartella dei giochi?</string>
<string name="add_games_warning_description">I giochi non saranno mostrati nella lista dei giochi se una cartella non è selezionata.</string>
@ -68,6 +68,7 @@
<string name="invalid_keys_error">Chiavi di crittografia non valide</string>
<string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string>
<string name="install_keys_failure_description">Il file selezionato è incorretto o corrotto. Per favore riesegui il dump delle tue chiavi.</string>
<string name="gpu_driver_manager">Gestore driver GPU</string>
<string name="install_gpu_driver">Installa i driver GPU</string>
<string name="install_gpu_driver_description">Installa driver alternativi per potenziali prestazioni migliori o accuratezza.</string>
<string name="advanced_settings">Impostazioni avanzate</string>
@ -118,6 +119,23 @@
<string name="manage_yuzu_data_description">Importa/Esporta il firmware, le keys, i dati utente, e altro!</string>
<string name="share_save_file">Condividi i tuoi dati di salvataggio</string>
<string name="export_save_failed">Errore durante l\'esportazione del salvataggio</string>
<!-- Applet launcher strings -->
<string name="applets">Avvia applet</string>
<string name="applets_description">Avvia applet di sistema usando il firmware installato</string>
<string name="applets_error_firmware">Firmware non installato</string>
<string name="applets_error_applet">Applet non disponibile</string>
<string name="applets_error_description"><![CDATA[Assicurati che il file <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> e il <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-system-firmware\">firmware</a> siano installati e riprova.]]></string>
<string name="album_applet">Album</string>
<string name="album_applet_description">Visualizza le immagini salvate nella cartella screenshots dell\'utente con il visualizzatore immagini di sistema</string>
<string name="mii_edit_applet">Modifica Mii</string>
<string name="mii_edit_applet_description">Visualizza e modifica Mii con l\'editor di sistema</string>
<string name="cabinet_applet">Cabinet</string>
<string name="cabinet_applet_description">Modifica ed elimina i dati salvati sugli amiibo</string>
<string name="cabinet_launcher">Avvia Cabinet</string>
<string name="cabinet_nickname_and_owner">Impostazioni nickname e proprietario</string>
<string name="cabinet_game_data_eraser">Cancella dati di gioco</string>
<string name="cabinet_restorer">Ripristina</string>
<string name="cabinet_formatter">Formatta</string>
<!-- About screen strings -->
<string name="gaia_is_not_real">Gaia non è reale</string>
@ -191,7 +209,6 @@
<string name="renderer_reactive_flushing_description">Migliora l\'accuratezza della grafica in alcuni giochi, al costo delle performance.</string>
<string name="use_disk_shader_cache">Usa la cache delle shader</string>
<string name="use_disk_shader_cache_description">Riduce lo stuttering caricando le shader già compilate all\'avvio.</string>
<!-- Debug settings strings -->
<string name="cpu">CPU</string>
<string name="cpu_debug_mode">Debug della CPU</string>
@ -230,14 +247,19 @@
<string name="export_failed">Esportazione Fallita</string>
<string name="import_failed">Importazione Fallita</string>
<string name="cancelling">Cancellazione</string>
<string name="install">Installa</string>
<string name="delete">Elimina</string>
<string name="start">Start</string>
<string name="clear">Cancella</string>
<string name="custom">Personalizzato</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">Seleziona il driver della GPU</string>
<string name="select_gpu_driver_title">Vuoi sostituire il driver della tua GPU attuale?</string>
<string name="select_gpu_driver_install">Installa</string>
<string name="select_gpu_driver_default">Predefinito</string>
<string name="select_gpu_driver_use_default">Utilizza il driver predefinito della GPU.</string>
<string name="select_gpu_driver_error">Il driver selezionato è invalido, è in utilizzo quello predefinito di sistema!</string>
<string name="select_gpu_driver_error">Driver selezionato non valido</string>
<string name="driver_already_installed">Driver già installato</string>
<string name="system_gpu_driver">Driver GPU del sistema</string>
<string name="installing_driver">Installando i driver...</string>
@ -249,7 +271,12 @@
<string name="preferences_audio">Audio</string>
<string name="preferences_theme">Tema e colori</string>
<string name="preferences_debug">Debug</string>
<!-- Game properties -->
<string name="info">Info</string>
<string name="path">Percorso</string>
<string name="developer">Sviluppatore</string>
<string name="version">Versione</string>
<string name="add_ons">Add-on</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">La tua ROM è criptata</string>
<string name="loader_error_encrypted_roms_description"><![CDATA[Segui la nostra guida per fare il <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-physical-titles-game-cards\">dump delle tue cartucce di gioco</a>oppure <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-digital-titles-eshop\">dei titoli già installati</a>.]]></string>
@ -263,20 +290,21 @@
<string name="emulation_exit">Arresta emulazione</string>
<string name="emulation_done">Fatto</string>
<string name="emulation_fps_counter">Contatore FPS</string>
<string name="emulation_toggle_controls">Controlli a interruttore</string>
<string name="emulation_toggle_controls">Attiva/disattiva comandi</string>
<string name="emulation_rel_stick_center">Centro relativo degli Stick</string>
<string name="emulation_dpad_slide">DPad A Scorrimento</string>
<string name="emulation_haptics">Feedback Aptico</string>
<string name="emulation_show_overlay">Mostra l\'Overlay</string>
<string name="emulation_show_overlay">Mostra l\'overlay</string>
<string name="emulation_toggle_all">Attiva/Disattiva tutto</string>
<string name="emulation_control_adjust">Modifica l\'Overlay</string>
<string name="emulation_control_adjust">Regola l\'overlay</string>
<string name="emulation_control_scale">Scala</string>
<string name="emulation_control_opacity">Opacità</string>
<string name="emulation_touch_overlay_reset">Reimposta l\'Overlay</string>
<string name="emulation_touch_overlay_edit">Modifica l\'Overlay</string>
<string name="emulation_touch_overlay_reset">Reimposta l\'overlay</string>
<string name="emulation_touch_overlay_edit">Modifica l\'overlay</string>
<string name="emulation_pause">Sospendi l\'emulazione</string>
<string name="emulation_unpause">Riprendi l\'emulazione</string>
<string name="emulation_input_overlay">Opzioni overlay</string>
<string name="touchscreen">Touchscreen</string>
<string name="load_settings">Carico le impostazioni...</string>
@ -308,6 +336,7 @@
<!-- Memory Sizes -->
<string name="memory_byte">Byte</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_kilobyte">Kb</string>
<string name="memory_megabyte">Mb</string>
<string name="memory_gigabyte">GB</string>
@ -352,10 +381,9 @@
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_auto">Automatico</string>
<string name="screen_layout_landscape">Layout Orizzontale</string>
<string name="screen_layout_portrait">Layout Verticale</string>
<string name="screen_layout_auto">Automatico</string>
<!-- Aspect Ratios -->
<string name="ratio_default">Predefinito (16:9)</string>
<string name="ratio_force_four_three">Forza 4:3</string>
@ -390,9 +418,14 @@
<string name="theme_mode_light">Chiaro</string>
<string name="theme_mode_dark">Scuro</string>
<!-- Audio output engines -->
<string name="cubeb">cubeb</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">Sfondi neri</string>
<string name="use_black_backgrounds_description">Quando utilizzi il tema scuro, applica sfondi neri.</string>

View File

@ -39,7 +39,7 @@
<string name="add_games_warning_description">フォルダを選択しないと、ゲームがリストに表示されません。</string>
<string name="add_games_warning_help">https://yuzu-emu.org/help/quickstart/#dumping-games</string>
<string name="home_search_games">ゲームを検索</string>
<string name="search_settings">検索設定</string>
<string name="search_settings">設定を検索</string>
<string name="games_dir_selected">フォルダを選択しました</string>
<string name="install_prod_keys">prod.keys</string>
<string name="install_prod_keys_description">製品版ゲームの復号化に必要です</string>
@ -68,6 +68,7 @@
<string name="invalid_keys_error">暗号化キーが無効</string>
<string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string>
<string name="install_keys_failure_description">ファイルが間違っているか破損しています。キーを再ダンプしてください。</string>
<string name="gpu_driver_manager">GPUドライバーの管理</string>
<string name="install_gpu_driver">GPUドライバー</string>
<string name="install_gpu_driver_description">代替ドライバーをインストールしてパフォーマンスや精度を向上させます</string>
<string name="advanced_settings">高度な設定</string>
@ -111,6 +112,9 @@
<string name="custom_driver_not_supported">カスタムドライバはサポートされていません</string>
<string name="manage_yuzu_data">yuzu データを管理</string>
<string name="share_save_file">セーブファイルを共有</string>
<string name="applets_error_firmware">ファームウェア未インストール</string>
<string name="album_applet">アルバム</string>
<string name="cabinet_nickname_and_owner">ニックネームと所有者の設定</string>
<!-- About screen strings -->
<string name="gaia_is_not_real">ガイアは実在しない</string>
<string name="copied_to_clipboard">クリップボードにコピーしました</string>
@ -178,10 +182,9 @@
<string name="renderer_reactive_flushing_description">一部のゲームにおいて、パフォーマンスを犠牲にしながらも、レンダリング精度を向上させます。</string>
<string name="use_disk_shader_cache">ディスクシェーダーキャッシュ</string>
<string name="use_disk_shader_cache_description">生成したシェーダーを端末に保存して読み込み、コマ落ちを軽減します。</string>
<!-- Debug settings strings -->
<string name="cpu">CPU</string>
<string name="cpu_debug_mode">CPU デバッギン</string>
<string name="cpu_debug_mode">CPUデバッグ</string>
<string name="gpu">GPU</string>
<string name="renderer_api">API</string>
<string name="renderer_debug">グラフィックデバッグ</string>
@ -215,14 +218,17 @@
<string name="export_failed">エクスポート失敗</string>
<string name="import_failed">インポート失敗</string>
<string name="cancelling">キャンセル中</string>
<string name="install">インストール</string>
<string name="delete">削除</string>
<string name="start">開始</string>
<string name="clear">クリア</string>
<string name="custom">カスタム</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">GPUドライバを選択</string>
<string name="select_gpu_driver_title">現在のGPUドライバを置き換えますか</string>
<string name="select_gpu_driver_install">インストール</string>
<string name="select_gpu_driver_default">デフォルト</string>
<string name="select_gpu_driver_use_default">デフォルトのドライバを使用します</string>
<string name="select_gpu_driver_error">選択されたドライバが無効、システムのデフォルトを使用します!</string>
<string name="system_gpu_driver">システムのGPUドライバ</string>
<string name="installing_driver">インストール中…</string>
@ -234,7 +240,12 @@
<string name="preferences_audio">サウンド</string>
<string name="preferences_theme">テーマと色</string>
<string name="preferences_debug">デバッグ</string>
<!-- Game properties -->
<string name="info">情報</string>
<string name="path">パス</string>
<string name="developer">開発元</string>
<string name="version">バージョン</string>
<string name="add_ons">アドオン</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">ROMが暗号化されています</string>
<string name="loader_error_encrypted_keys_description"><![CDATA[ゲームの復号化に必要な <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> ファイルがインストールされていることを確認してください。]]></string>
@ -261,6 +272,7 @@
<string name="emulation_pause">一時停止</string>
<string name="emulation_unpause">再開</string>
<string name="emulation_input_overlay">表示オプション</string>
<string name="touchscreen">タッチスクリーン</string>
<string name="load_settings">設定をロード中…</string>
@ -292,6 +304,7 @@
<!-- Memory Sizes -->
<string name="memory_byte">Byte</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_kilobyte">KB</string>
<string name="memory_megabyte">MB</string>
<string name="memory_gigabyte">GB</string>
@ -336,10 +349,9 @@
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_auto">自動</string>
<string name="screen_layout_landscape">横長</string>
<string name="screen_layout_portrait">縦長</string>
<string name="screen_layout_auto">自動</string>
<!-- Aspect Ratios -->
<string name="ratio_default">デフォルト (16:9)</string>
<string name="ratio_force_four_three">強制 4:3</string>
@ -374,9 +386,14 @@
<string name="theme_mode_light">ライト</string>
<string name="theme_mode_dark">ダーク</string>
<!-- Audio output engines -->
<string name="cubeb">cubeb</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">完全な黒を使用</string>
<string name="use_black_backgrounds_description">ダークテーマの背景色に黒が適用されます。</string>

View File

@ -25,6 +25,8 @@
<string name="back">이전</string>
<string name="add_games">게임 추가</string>
<string name="add_games_description">게임 폴더 선택</string>
<string name="step_complete">완료되었습니다!</string>
<!-- Home strings -->
<string name="home_games">게임</string>
<string name="home_search">검색</string>
@ -32,11 +34,13 @@
<string name="empty_gamelist">파일을 찾을 수 없거나 아직 게임 디렉터리를 선택하지 않았습니다.</string>
<string name="search_and_filter_games">게임 검색 및 필터링</string>
<string name="select_games_folder">게임 폴더 선택</string>
<string name="select_games_folder_description">yuzu가 게임 목록을 채울 수 있도록 허용</string>
<string name="manage_game_folders">게임 폴더 관리</string>
<string name="select_games_folder_description">yuzu에 게임 목록 추가하기</string>
<string name="add_games_warning">게임 폴더 선택을 건너뛰겠습니까?</string>
<string name="add_games_warning_description">폴더를 선택하지 않으면 게임 목록에 게임이 표시되지 않습니다.</string>
<string name="add_games_warning_help">https://yuzu-emu.org/help/quickstart/#dumping-games</string>
<string name="home_search_games">게임 검색</string>
<string name="search_settings">검색 설정</string>
<string name="games_dir_selected">게임 디렉터리를 설정했습니다.</string>
<string name="install_prod_keys">prod.keys 설치</string>
<string name="install_prod_keys_description">패키지 게임 암호 해독에 필요</string>
@ -65,9 +69,11 @@
<string name="invalid_keys_error">암호화 키가 올바르지 않음</string>
<string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string>
<string name="install_keys_failure_description">선택한 파일이 잘못되었거나 손상되었습니다. 키를 다시 덤프하세요.</string>
<string name="gpu_driver_manager">GPU 드라이버 관리자</string>
<string name="install_gpu_driver">GPU 드라이버 설치</string>
<string name="install_gpu_driver_description">잠재적으로 더 나은 성능 또는 정확을 위해 대체 드라이버 설치하세요.</string>
<string name="install_gpu_driver_description">잠재적 성능 또는 정확도 개선을 위해 대체 드라이버 설치</string>
<string name="advanced_settings">고급 설정</string>
<string name="advanced_settings_game">고급 설정: %1$s</string>
<string name="settings_description">에뮬레이터 설정 구성</string>
<string name="search_recently_played">최근 플레이</string>
<string name="search_recently_added">최근 추가</string>
@ -79,9 +85,13 @@
<string name="no_file_manager">파일 관리자를 찾을 수 없음</string>
<string name="notification_no_directory_link">yuzu 디렉터리를 열 수 없음</string>
<string name="notification_no_directory_link_description">파일 관리자의 사이드 패널에서 사용자 폴더를 수동으로 찾아주세요.</string>
<string name="manage_save_data">저장 데이터 관리</string>
<string name="manage_save_data_description">저장 데이터를 발견했습니다. 아래에서 옵션을 선택하세요.</string>
<string name="import_export_saves_description">저장 파일 가져오기 또는 내보내</string>
<string name="manage_save_data">세이브 데이터 관리</string>
<string name="manage_save_data_description">세이브 데이터를 발견했습니다. 아래에서 옵션을 선택하세요.</string>
<string name="import_save_warning">세이브 데이터 가져오</string>
<string name="import_save_warning_description">이 작업은 기존 데이터 전체를 선택한 파일로 덮어씌웁니다. 계속하시겠습니까?</string>
<string name="import_export_saves_description">세이브 파일 가져오기 또는 내보내기</string>
<string name="save_files_importing">세이브 파일 가져오는 중...</string>
<string name="save_files_exporting">세이브 파일 내보내는 중...</string>
<string name="save_file_imported_success">데이터를 불러왔습니다.</string>
<string name="save_file_invalid_zip_structure">올바르지 않은 저장 디렉터리 구조</string>
<string name="save_file_invalid_zip_structure_description">첫 번째 하위 폴더 이름은 게임의 타이틀 ID여야 합니다.</string>
@ -89,15 +99,62 @@
<string name="export_saves">내보내기</string>
<string name="install_firmware">펌웨어 설치</string>
<string name="install_firmware_description">펌웨어는 ZIP 파일이며 일부 게임을 부팅하는 데 필요합니다.</string>
<string name="firmware_installing">펌웨어 설치</string>
<string name="firmware_installing">펌웨어 설치 중...</string>
<string name="firmware_installed_success">펌웨어를 설치했습니다.</string>
<string name="firmware_installed_failure">펌웨어 설치 실패</string>
<string name="firmware_installed_failure_description">펌웨어 NCA 파일이 ZIP 파일의 루트 디렉토리에 위치한지 확인하고 다시 시도하세요.</string>
<string name="share_log">디버그 로그 공유</string>
<string name="share_log_description">yuzu 로그 파일 공유하여 문제 디버깅하기</string>
<string name="share_log_description">문제 해결을 위한 yuzu 로그 파일 공유</string>
<string name="share_log_missing">로그 파일을 찾을 수 없습니다.</string>
<string name="install_game_content">게임 콘텐츠 설치</string>
<string name="install_game_content_description">게임 업데이트 또는 DLC 설치</string>
<string name="installing_game_content">콘텐츠 설치 중...</string>
<string name="install_game_content_failure">NAND에 파일을 설치하는 동안 오류 발생</string>
<string name="install_game_content_failure_description">콘텐츠가 유효하고 prod.keys가 설치되었는지 확인하세요.</string>
<string name="install_game_content_failure_base">충돌을 방지하기 위해 기본 게임 설치는 허용되지 않습니다.</string>
<string name="install_game_content_failure_file_extension">NSP 및 XCI 콘텐츠만 지원합니다. 게임 콘텐츠가 유효한지 확인하세요.</string>
<string name="install_game_content_failed_count">%1$d개의 설치 오류</string>
<string name="install_game_content_success">게임 콘텐츠 설치됨</string>
<string name="install_game_content_success_install">%1$d개를 설치했습니다.</string>
<string name="install_game_content_success_overwrite">%1$d개를 덮어씌웠습니다.</string>
<string name="install_game_content_help_link">https://yuzu-emu.org/help/quickstart/#dumping-installed-updates</string>
<string name="custom_driver_not_supported">사용자 지정 드라이버는 지원하지 않습니다.</string>
<string name="custom_driver_not_supported_description">이 장치의 사용자 지정 드라이버 로딩은 현재 지원하지 않습니다.\n나중에 이 옵션을 확인하면 지원이 추가되었는지 확인할 수 있습니다.</string>
<string name="manage_yuzu_data">yuzu 데이터 관리</string>
<string name="manage_yuzu_data_description">펌웨어, 키 값, 유저 데이터 등을 가져오기 또는 내보내기</string>
<string name="share_save_file">세이브 파일 공유</string>
<string name="export_save_failed">세이브 내보내기 실패</string>
<string name="game_folders">게임 폴더</string>
<string name="deep_scan">딥 스캔(하위 폴더 탐색)</string>
<string name="add_game_folder">게임 폴더 추가</string>
<string name="folder_already_added">이 폴더는 이미 추가되어 있습니다!</string>
<string name="game_folder_properties">게임 폴더 속성</string>
<plurals name="saves_import_failed">
<item quantity="other">%d개의 세이브 가져오기 실패</item>
</plurals>
<plurals name="saves_import_success">
<item quantity="other">%d개의 세이브를 가져왔습니다.</item>
</plurals>
<string name="no_save_data_found">세이브 데이터를 찾을 수 없음</string>
<!-- Applet launcher strings -->
<string name="applets">애플릿 런처</string>
<string name="applets_description">설치된 펌웨어를 사용해 시스템 애플릿을 실행합니다.</string>
<string name="applets_error_firmware">펌웨어가 설치되지 않았습니다.</string>
<string name="applets_error_applet">애플릿을 사용할 수 없음</string>
<string name="applets_error_description"><![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> 파일과 <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-system-firmware\">펌웨어가</a> 설치되었는지 확인하고 다시 시도하세요.]]></string>
<string name="album_applet">앨범</string>
<string name="album_applet_description">시스템 사진 뷰어로 유저 스크린샷 폴더에 저장된 이미지를 확인합니다. </string>
<string name="mii_edit_applet">Mii 편집</string>
<string name="mii_edit_applet_description">시스템 에디터로 Mii를 보고 편집합니다.</string>
<string name="cabinet_applet">캐비닛</string>
<string name="cabinet_applet_description">amiibo에 저장된 데이터를 편집하고 삭제합니다.</string>
<string name="cabinet_launcher">캐비닛 런처</string>
<string name="cabinet_nickname_and_owner">닉네임 및 소유자 설정</string>
<string name="cabinet_game_data_eraser">게임 데이터 삭제</string>
<string name="cabinet_restorer">복원</string>
<string name="cabinet_formatter">포맷터</string>
<!-- About screen strings -->
<string name="gaia_is_not_real">가이아는 진짜가 아님</string>
<string name="copied_to_clipboard">클립보드에 복사되었습니다.</string>
@ -107,6 +164,16 @@
<string name="contributors_link">https://github.com/yuzu-emu/yuzu/graphs/contributors</string>
<string name="licenses_description">Android용 yuzu를 가능하게 하는 프로젝트</string>
<string name="build">빌드</string>
<string name="user_data">유저 데이터</string>
<string name="user_data_description">모든 앱 데이터를 가져오거나 내보냅니다.\n\n유저 데이터를 가져올 경우 현재의 모든 데이터는 삭제됩니다.</string>
<string name="exporting_user_data">유저 데이터 내보내는 중...</string>
<string name="importing_user_data">유저 데이터 가져오는 중...</string>
<string name="import_user_data">유저 데이터 가져오기</string>
<string name="invalid_yuzu_backup">올바르지 않은 yuzu 백업 파일</string>
<string name="user_data_export_success">유저 데이터를 내보냈습니다.</string>
<string name="user_data_import_success">유저 데이터를 가져왔습니다.</string>
<string name="user_data_export_cancelled">내보내기 취소됨</string>
<string name="user_data_import_failed_description">유저 데이터 폴더가 ZIP 폴더의 루트 디렉토리에 위치하고 config/config.ini 구성 파일이 있는지 확인하고 다시 시도하세요.</string>
<string name="support_link">https://discord.gg/u77vRWY</string>
<string name="website_link">https://yuzu-emu.org/</string>
<string name="github_link">https://github.com/yuzu-emu</string>
@ -130,7 +197,10 @@
<string name="frame_limit_enable_description">에뮬레이션 속도를 정상 속도의 지정된 비율로 제한합니다.</string>
<string name="frame_limit_slider">속도 제한 비율</string>
<string name="frame_limit_slider_description">에뮬레이션 속도의 제한 비율을 지정합니다. 100%가 정상 속도입니다. 값이 높거나 낮으면 속도 제한이 증가하거나 감소합니다.</string>
<string name="cpu_backend">CPU 백엔드</string>
<string name="cpu_accuracy">CPU 정확도</string>
<string name="value_with_units">%1$s%2$s</string>
<!-- System settings strings -->
<string name="use_docked_mode">독 모드</string>
<string name="use_docked_mode_description">해상도를 높이며 성능이 저하됩니다. 비활성화시 휴대 모드가 사용되며 해상도는 낮아지고 성능은 향상됩니다.</string>
@ -139,13 +209,14 @@
<string name="select_rtc_date">RTC 날짜 선택</string>
<string name="select_rtc_time">RTC 시간 선택</string>
<string name="use_custom_rtc">사용자 지정 RTC</string>
<string name="use_custom_rtc_description">현재 시스템 시간과 별도로 사용자 지정 실시간 시계를 설정할 수 있습니다.</string>
<string name="use_custom_rtc_description">현재 시스템 시간과 별도로 사용자 지정 RTC를 설정할 수 있습니다.</string>
<string name="set_custom_rtc">사용자 지정 RTC 설정</string>
<!-- Graphics settings strings -->
<string name="renderer_accuracy">정확도 수준</string>
<string name="renderer_resolution">해상도 (휴대 모드/독 모드)</string>
<string name="renderer_vsync">수직동기화 모드</string>
<string name="renderer_screen_layout">화면 방향</string>
<string name="renderer_aspect_ratio">화면비</string>
<string name="renderer_scaling_filter">윈도우 적응 필터</string>
<string name="renderer_anti_aliasing">안티에일리어싱 방법</string>
@ -157,12 +228,21 @@
<string name="renderer_reactive_flushing_description">일부 게임에서 성능 저하를 감수하고 렌더링 정확도를 향상합니다.</string>
<string name="use_disk_shader_cache">디스크 셰이더 캐시</string>
<string name="use_disk_shader_cache_description">생성된 셰이더를 로컬에 저장하고 로드하여 끊김 현상을 줄입니다.</string>
<string name="anisotropic_filtering">비등방성 필터링</string>
<string name="anisotropic_filtering_description">경사각에서 보이는 텍스처의 품질을 향상시킵니다.</string>
<!-- Debug settings strings -->
<string name="cpu">CPU</string>
<string name="cpu_debug_mode">CPU 디버깅</string>
<string name="cpu_debug_mode_description">CPU를 느린 디버깅 모드로 설정합니다.</string>
<string name="gpu">GPU</string>
<string name="renderer_api">API</string>
<string name="renderer_debug">그래픽 디버깅</string>
<string name="renderer_debug_description">그래픽 API를 느린 디버깅 모드로 설정합니다.</string>
<string name="fastmem">Fastmem</string>
<!-- Audio settings strings -->
<string name="audio_output_engine">출력 엔진</string>
<string name="audio_volume">볼륨</string>
<string name="audio_volume_description">오디오 출력의 볼륨을 지정합니다.</string>
@ -171,12 +251,15 @@
<string name="ini_saved">설정이 저장되었습니다.</string>
<string name="gameid_saved">%1$s 전용 설정이 저장되었습니다.</string>
<string name="error_saving">%1$s.ini 저장 중 오류 발생: %2$s</string>
<string name="unimplemented_menu">구현되지 않은 메뉴</string>
<string name="loading">불러오는 중...</string>
<string name="shutting_down">종료하는 중...</string>
<string name="reset_setting_confirmation">이 설정을 기본값으로 재설정하겠습니까?</string>
<string name="reset_to_default">기본값으로 재설정</string>
<string name="reset_to_default_description">모든 고급 설정 초기화</string>
<string name="reset_all_settings">모든 설정을 초기화하겠습니까?</string>
<string name="reset_all_settings_description">모든 고급 설정이 기본 구성으로 재설정됩니다. 이 작업은 되돌릴 수 없습니다.</string>
<string name="settings_reset">설정 초기화</string>
<string name="settings_reset">설정 초기화했습니다.</string>
<string name="close">닫기</string>
<string name="learn_more">자세히</string>
<string name="auto">자동</string>
@ -184,13 +267,30 @@
<string name="string_null">Null</string>
<string name="string_import">가져오기</string>
<string name="export">내보내기</string>
<string name="export_failed">내보내기 실패</string>
<string name="import_failed">가져오기 실패</string>
<string name="cancelling">취소하는 중</string>
<string name="install">설치</string>
<string name="delete">삭제</string>
<string name="edit">편집</string>
<string name="export_success">데이터를 내보냈습니다.</string>
<string name="start">시작</string>
<string name="clear">초기화</string>
<string name="global">글로벌</string>
<string name="custom">커스텀</string>
<string name="notice">알림</string>
<string name="import_complete">가져오기 완료</string>
<string name="more_options">추가 옵션</string>
<string name="use_global_setting">글로벌 설정 사용</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">GPU 드라이버 선택</string>
<string name="select_gpu_driver_title">현재 사용중인 GPU 드라이버를 변경하겠습니까?</string>
<string name="select_gpu_driver_install">설치</string>
<string name="select_gpu_driver_default">기본값</string>
<string name="select_gpu_driver_use_default">기본 GPU 드라이버를 사용합니다.</string>
<string name="select_gpu_driver_error">잘못된 드라이가 선택되었습니다. 시스템 기본값을 사용합니다.</string>
<string name="select_gpu_driver_error">잘못된 드라이가 선택되었습니다.</string>
<string name="driver_already_installed">이미 설치된 드라이버입니다.</string>
<string name="system_gpu_driver">시스템 GPU 드라이버</string>
<string name="installing_driver">드라이버 설치 중...</string>
@ -198,13 +298,58 @@
<string name="preferences_settings">설정</string>
<string name="preferences_general">일반</string>
<string name="preferences_system">시스템</string>
<string name="preferences_system_description">독 모드, 지역, 언어</string>
<string name="preferences_graphics">그래픽</string>
<string name="preferences_graphics_description">정확도 수준, 해상도, 셰이더 캐시</string>
<string name="preferences_audio">오디오</string>
<string name="preferences_audio_description">출력 엔진, 불륨</string>
<string name="preferences_theme">테마 및 색상</string>
<string name="preferences_debug">디버그</string>
<string name="preferences_debug_description">CPU/GPU 디버깅, 그래픽 API, Fastmem</string>
<!-- Game properties -->
<string name="info">정보</string>
<string name="info_description">프로그램 ID, 개발자, 버전</string>
<string name="per_game_settings">게임별 설정</string>
<string name="per_game_settings_description">현재 게임에 적용되는 설정을 편집합니다.</string>
<string name="launch_options">실행 구성</string>
<string name="path">주소</string>
<string name="program_id">프로그램 ID</string>
<string name="developer">개발자</string>
<string name="version">버전</string>
<string name="copy_details">세부사항 복사</string>
<string name="add_ons">부가 기능</string>
<string name="add_ons_description">모드, 업데이트 및 DLC 전환하기</string>
<string name="clear_shader_cache">셰이더 캐시 비우기</string>
<string name="clear_shader_cache_description">현재 게임을 실행하는 중에 생성된 모든 셰이더를 삭제합니다.</string>
<string name="clear_shader_cache_warning_description">셰이더 캐시가 재생성되어 게임이 버벅일 수 있습니다.</string>
<string name="cleared_shaders_successfully">셰이더를 비웠습니다.</string>
<string name="addons_game">애드온: %1$s</string>
<string name="save_data">세이브 데이터</string>
<string name="save_data_description">현재 게임에 사용되는 세이브 데이터를 관리합니다.</string>
<string name="delete_save_data">세이브 데이터 삭제하기</string>
<string name="delete_save_data_description">현재 게임에 사용되는 모든 세이브 데이터를 삭제합니다.</string>
<string name="delete_save_data_warning_description">이 작업은 현재 게임의 세이브 데이터를 모두 삭제하고 되돌릴 수 없습니다. 계속하시겠습니까?</string>
<string name="save_data_deleted_successfully">세이브 데이터를 삭제했습니다.</string>
<string name="select_content_type">콘텐츠 형태</string>
<string name="updates_and_dlc">업데이트 및 DLC</string>
<string name="mods_and_cheats">모드 및 치트</string>
<string name="addon_notice">중요 애드온 알림</string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="addon_notice_description">모드와 치트를 설치하려면 cheats/, romfs/, 또는 exefs/ 디렉토리를 포함하는 폴더를 선택해야 합니다. 게임과의 호환 여부를 확인할 수 없기 때문에 신중하게 결정하세요.</string>
<string name="invalid_directory">잘못된 디렉토리</string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="invalid_directory_description">선택한 디렉토리가 cheats/, romfs/, 또는 exefs/ 폴더를 포함하는지 확인하고 다시 시도하세요.</string>
<string name="addon_installed_successfully">애드온을 설치했습니다.</string>
<string name="verifying_content">콘텐츠 확인 중...</string>
<string name="content_install_notice">콘텐츠 설치 안내</string>
<string name="content_install_notice_description">선택한 콘텐츠가 현재 게임과 일치하지 않습니다.\n무시하고 설치하시겠습니까?</string>
<string name="confirm_uninstall">제거 확인</string>
<string name="confirm_uninstall_description">이 애드온을 제거하시겠습니까?</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">롬 파일이 암호화되어있음</string>
<string name="loader_error_encrypted_roms_description"><![CDATA[가이드에 따라 <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-physical-titles-game-cards\">게임 카트리지</a> 또는 <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-digital-titles-eshop\">설치된 타이틀</a>을 다시 덤프하세요.]]></string>
<string name="loader_error_encrypted_keys_description"><![CDATA[게임을 해독할 수 있도록 <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> 파일이 설치되어 있는지 확인하세요.]]></string>
<string name="loader_error_video_core">비디오 코어를 초기화하는 동안 오류 발생</string>
<string name="loader_error_video_core_description">일반적으로 이 문제는 호환되지 않는 GPU 드라이버로 인해 발생합니다. 사용자 지정 GPU 드라이버를 설치하면 이 문제가 해결될 수 있습니다.</string>
@ -229,6 +374,7 @@
<string name="emulation_pause">에뮬레이션 일시 중지</string>
<string name="emulation_unpause">에뮬레이션 일시 중지 해제</string>
<string name="emulation_input_overlay">화면 오버레이 설정</string>
<string name="touchscreen">터치 스크린</string>
<string name="load_settings">설정 불러오는 중...</string>
@ -245,6 +391,10 @@
<string name="fatal_error">치명적 오류</string>
<string name="fatal_error_message">치명적 오류가 발생했습니다. 자세한 내용은 로그를 확인하십시오.\n에뮬레이션을 계속하면 충돌 및 버그가 발생할 수 있습니다.</string>
<string name="performance_warning">이 설정을 끄면 에뮬레이션 성능이 크게 저하됩니다! 최상의 환경을 위해 이 설정을 활성화된 상태로 두는 것이 좋습니다.</string>
<string name="device_memory_inadequate">장치 RAM: %1$s\n권장: %2$s</string>
<string name="memory_formatted">%1$s %2$s</string>
<string name="no_game_present">실행 가능한 게임이 없습니다!</string>
<!-- Region Names -->
<string name="region_japan">일본</string>
<string name="region_usa">미국</string>
@ -254,7 +404,16 @@
<string name="region_korea">대한민국</string>
<string name="region_taiwan">대만</string>
<!-- Memory Sizes -->
<string name="memory_byte">Byte</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_kilobyte">KB</string>
<string name="memory_megabyte">MB</string>
<string name="memory_gigabyte">영국 하계 표준시(GB)</string>
<string name="memory_terabyte">TB</string>
<string name="memory_petabyte">PB</string>
<string name="memory_exabyte">EB</string>
<!-- Renderer APIs -->
<string name="renderer_vulkan">Vulcan</string>
<string name="renderer_none">없음</string>
@ -291,7 +450,14 @@
<string name="anti_aliasing_fxaa">FXAA</string>
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_auto">자동</string>
<string name="screen_layout_sensor_landscape">가로 고정 (방향 감지)</string>
<string name="screen_layout_landscape">가로</string>
<string name="screen_layout_reverse_landscape">가로 고정 (역방향 고정)</string>
<string name="screen_layout_sensor_portrait">세로 고정 (방향 감지)</string>
<string name="screen_layout_portrait">세로</string>
<string name="screen_layout_reverse_portrait">세로 고정 (역방향 고정)</string>
<!-- Aspect Ratios -->
<string name="ratio_default">기본 (16:9)</string>
@ -300,6 +466,10 @@
<string name="ratio_force_sixteen_ten">강제 16:10</string>
<string name="ratio_stretch">화면에 맞춤</string>
<!-- CPU Backend -->
<string name="cpu_backend_dynarmic">Dynarmic (느림)</string>
<string name="cpu_backend_nce">네이티브 코드 실행 (NCE)</string>
<!-- CPU Accuracy -->
<string name="cpu_accuracy_accurate">정확함</string>
<string name="cpu_accuracy_unsafe">최적화 (안전하지 않음)</string>
@ -327,14 +497,29 @@
<string name="theme_mode_light">라이트 모드</string>
<string name="theme_mode_dark">다크 모드</string>
<!-- Audio output engines -->
<string name="oboe">oboe</string>
<string name="cubeb">cubeb</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">검정 배경</string>
<string name="use_black_backgrounds_description">어두운 테마 사용할 때는 검정 배경을 적용합니다.</string>
<string name="use_black_backgrounds_description">어두운 테마 사용 검정 배경을 적용합니다.</string>
<!-- Picture-In-Picture -->
<string name="picture_in_picture">픽처 인 픽처 (Picture-in-Picture)</string>
<string name="picture_in_picture_description">앱을 백그라운드에서 실행할 때 창을 최소화합니다.</string>
<string name="pause">일시중지</string>
<string name="play">재생</string>
<string name="mute">음소거</string>
<string name="unmute">음소거 해제</string>
<!-- Licenses screen strings -->
<string name="licenses">라이센스</string>
<string name="license_fidelityfx_fsr_description">AMD 고품질 업스케일링</string>
<string name="license_fidelityfx_fsr_description">AMD 고품질 업스케일링</string>
</resources>

View File

@ -157,7 +157,6 @@
<string name="renderer_reactive_flushing_description">Forbedrer gjengivelsesnøyaktigheten i enkelte spill på bekostning av ytelsen.</string>
<string name="use_disk_shader_cache">Disk shader-hurtigbuffer</string>
<string name="use_disk_shader_cache_description">Reduserer hakking ved å lagre og laste inn genererte shaders lokalt.</string>
<!-- Debug settings strings -->
<string name="cpu">CPU</string>
<string name="renderer_api">API</string>
@ -184,13 +183,16 @@
<string name="string_null">Null</string>
<string name="string_import">Importer</string>
<string name="export">Eksporter</string>
<string name="install">Installer</string>
<string name="delete">Slett</string>
<string name="start">Start</string>
<string name="clear">Fjern</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">Velg GPU-driver</string>
<string name="select_gpu_driver_title">Ønsker du å bytte ut din nåværende GPU-driver?</string>
<string name="select_gpu_driver_install">Installer</string>
<string name="select_gpu_driver_default">Standard</string>
<string name="select_gpu_driver_use_default">Bruk av standard GPU-driver</string>
<string name="select_gpu_driver_error">Ugyldig driver valgt, bruker systemstandard!</string>
<string name="system_gpu_driver">Systemets GPU-driver</string>
<string name="installing_driver">Installerer driver...</string>
@ -202,7 +204,12 @@
<string name="preferences_audio">Lyd</string>
<string name="preferences_theme">Tema og farge</string>
<string name="preferences_debug">Feilsøk</string>
<!-- Game properties -->
<string name="info">Info</string>
<string name="path">Sti</string>
<string name="developer">Utvikler</string>
<string name="version">Versjon</string>
<string name="add_ons">Tilleggsprogrammer</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">ROM-en din er kryptert</string>
<string name="loader_error_encrypted_keys_description"><![CDATA[Vennligst sørg for at <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> filen er installert slik at spillene kan dekrypteres.]]></string>
@ -229,6 +236,7 @@
<string name="emulation_pause">Pause emulering</string>
<string name="emulation_unpause">Ta emuleringen ut av pause</string>
<string name="emulation_input_overlay">Overlay-alternativer</string>
<string name="touchscreen">Touch-skjerm</string>
<string name="load_settings">Laster inn innstillinger...</string>
@ -254,6 +262,7 @@
<string name="region_korea">Korea</string>
<string name="region_taiwan">Taiwan</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_gigabyte">GB</string>
<!-- Renderer APIs -->
<string name="renderer_vulkan">Vulkan</string>
@ -291,8 +300,8 @@
<string name="anti_aliasing_fxaa">FXAA</string>
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_auto">Auto</string>
<!-- Aspect Ratios -->
<string name="ratio_default">Standard (16:9)</string>
<string name="ratio_force_four_three">Tving 4:3</string>
@ -327,6 +336,12 @@
<string name="theme_mode_light">Lys</string>
<string name="theme_mode_dark">Mørk</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">Svart bakgrunn</string>
<string name="use_black_backgrounds_description">Bruk svart bakgrunn når du bruker det mørke temaet.</string>

View File

@ -157,7 +157,6 @@
<string name="renderer_reactive_flushing_description">Poprawia jakość renderowania w kilku grach, kosztem wydajności.</string>
<string name="use_disk_shader_cache">Pamięć podręczna shaderów</string>
<string name="use_disk_shader_cache_description">Zmniejsza przycięcia przez przechowywanie gotowych wygenerowanych plików oświetlenia w pamięci urządzenia.</string>
<!-- Debug settings strings -->
<string name="cpu">CPU</string>
<string name="renderer_api">Interfejs graficzny</string>
@ -183,13 +182,17 @@
<string name="submit">Zatwierdź</string>
<string name="string_import">Importuj</string>
<string name="export">Eksportuj</string>
<string name="install">Zainstaluj</string>
<string name="delete">Usuń</string>
<string name="start">Start</string>
<string name="clear">Wyczyść</string>
<string name="custom">Losowy</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">Wybierz sterownik GPU </string>
<string name="select_gpu_driver_title">Chcesz zastąpić obecny sterownik układu graficznego?</string>
<string name="select_gpu_driver_install">Zainstaluj</string>
<string name="select_gpu_driver_default">Domyślne</string>
<string name="select_gpu_driver_use_default">Aktywny domyślny sterownik GPU</string>
<string name="select_gpu_driver_error">Wybrano błędny sterownik, powrót do domyślnego. </string>
<string name="system_gpu_driver">Systemowy sterownik GPU</string>
<string name="installing_driver">Instalowanie sterownika...</string>
@ -201,7 +204,12 @@
<string name="preferences_audio">Dźwięk</string>
<string name="preferences_theme">Motyw i kolor</string>
<string name="preferences_debug">Debug</string>
<!-- Game properties -->
<string name="info">Informacje</string>
<string name="path">Ścieżka</string>
<string name="developer">Deweloper</string>
<string name="version">Wersja</string>
<string name="add_ons">Dodatki</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">Twój ROM jest zakodowany</string>
<string name="loader_error_encrypted_keys_description"><![CDATA[Upewnij się że plik kluczy <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> jest zainstalowany aby gry mogły zostać odczytane.]]></string>
@ -228,6 +236,7 @@
<string name="emulation_pause">Wstrzymaj emulację</string>
<string name="emulation_unpause">Wznów emulację</string>
<string name="emulation_input_overlay">Opcje nakładki</string>
<string name="touchscreen">Ekran dotykowy</string>
<string name="load_settings">Wczytuję ustawienia...</string>
@ -253,6 +262,7 @@
<string name="region_korea">Korea</string>
<string name="region_taiwan">Tajwan</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_gigabyte">GB</string>
<!-- Renderer APIs -->
<string name="renderer_vulkan">Vulkan</string>
@ -290,8 +300,8 @@
<string name="anti_aliasing_fxaa">FXAA</string>
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_auto">Automatyczny</string>
<!-- Aspect Ratios -->
<string name="ratio_default">Domyślne (16:9)</string>
<string name="ratio_force_four_three">Wymuś 4:3</string>
@ -326,6 +336,12 @@
<string name="theme_mode_light">Jasny</string>
<string name="theme_mode_dark">Ciemny</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">Czarne tła</string>
<string name="use_black_backgrounds_description">Kiedy używany ciemny motyw, tła zostają zastąpione czernią.</string>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
<string name="app_disclaimer">Este software executa jogos do console Nintendo Switch. Não estão inclusos nem jogos ou chaves. &lt;br /&gt;&lt;br /&gt;Antes de começar, por favor localize o arquivo <![CDATA[1 prod.keys 1]]> no armazenamento de seu dispositivo.&lt;br /&gt;&lt;br /&gt;<![CDATA[2Saiba mais2]]></string>
<string name="emulation_notification_channel_name">Emulação está Ativa</string>
<string name="app_disclaimer">Este software executa jogos do console Nintendo Switch. Não estão inclusos nem jogos ou chaves.&lt;br /&gt;&lt;br /&gt;Antes de começar, por favor localize o arquivo <![CDATA[<b> prod.keys </b>]]> no armazenamento de seu dispositivo.&lt;br /&gt;&lt;br /&gt;<![CDATA[<a href=\"https://yuzu-emu.org/help/quickstart\">Saiba mais</a>]]></string>
<string name="emulation_notification_channel_name">A emulação está Ativa</string>
<string name="emulation_notification_channel_description">Mostra uma notificação permanente enquanto a emulação estiver em andamento.</string>
<string name="emulation_notification_running">Yuzu está em execução </string>
<string name="emulation_notification_running">O Yuzu está em execução </string>
<string name="notice_notification_channel_name">Notificações e erros</string>
<string name="notice_notification_channel_description">Mostra notificações quando algo dá errado.</string>
<string name="notification_permission_not_granted">Acesso às notificações não concedido!</string>
@ -17,7 +17,7 @@
<string name="keys_description">Selecione seu arquivo &lt;b>prod.keys&lt;/b> com o botão abaixo.</string>
<string name="select_keys">Selecione as Keys</string>
<string name="games">Jogos</string>
<string name="games_description">Seleciona sua pasta &lt;b>Jogos&lt;/b> com o botão abaixo.</string>
<string name="games_description">Selecione sua pasta &lt;b>Jogos&lt;/b> com o botão abaixo.</string>
<string name="done">Feito</string>
<string name="done_description">Tudo pronto.\nAproveite seus jogos!</string>
<string name="text_continue">Continuar</string>
@ -34,61 +34,67 @@
<string name="empty_gamelist">Não foram encontrados jogos ou a pasta de Jogos ainda não foi definida. </string>
<string name="search_and_filter_games">Procura e filtra jogos.</string>
<string name="select_games_folder">Seleciona a pasta de jogos.</string>
<string name="manage_game_folders">Gerencie as pastas de jogos</string>
<string name="select_games_folder_description">Permite que o Yuzu preencha a lista de jogos</string>
<string name="add_games_warning">Ignorar a seleção da pasta de jogos?</string>
<string name="add_games_warning_description">Os jogos não serão exibidos na lista de jogos se uma pasta não estiver selecionada.</string>
<string name="add_games_warning_help">https://yuzu-emu.org/help/quickstart/#dumping-games</string>
<string name="home_search_games">Procurar jogos</string>
<string name="search_settings">Procurar nas definições</string>
<string name="games_dir_selected">Pasta de Jogos selecionada</string>
<string name="install_prod_keys">Instala prod.keys</string>
<string name="search_settings">Procurar nas configurações</string>
<string name="games_dir_selected">Pasta de jogos selecionada</string>
<string name="install_prod_keys">Instalar prod.keys</string>
<string name="install_prod_keys_description">Necessário para desencriptar jogos comerciais</string>
<string name="install_prod_keys_warning">Ignorar a adição de chaves?</string>
<string name="install_prod_keys_warning_description">São necessárias chaves válidas para emular jogos comerciais. Somente aplicativos homebrew funcionarão se você continuar.</string>
<string name="install_prod_keys_warning_help">https://yuzu-emu.org/help/quickstart/#Guia de introdução</string>
<string name="install_prod_keys_warning_help">https://yuzu-emu.org/help/quickstart/#guide-introduction</string>
<string name="notifications">Notificações</string>
<string name="notifications_description">Conceda a permissão de notificação com o botão abaixo.</string>
<string name="give_permission">Conceda permissão</string>
<string name="notification_warning">Saltar a concessão da permissão de notificação?</string>
<string name="give_permission">Conceder permissão</string>
<string name="notification_warning">Ignorar a concessão da permissão de notificação?</string>
<string name="notification_warning_description">Yuzu não conseguirá te notificar de informações importantes. </string>
<string name="permission_denied">Permissão negada</string>
<string name="permission_denied_description">Você negou essa permissão muitas vezes e agora precisa concedê-la manualmente nas configurações do sistema.</string>
<string name="about">Sobre</string>
<string name="about_description">Versão de compilação, créditos e mais</string>
<string name="warning_help">Ajuda</string>
<string name="warning_skip">Saltar</string>
<string name="warning_skip">Ignorar</string>
<string name="warning_cancel">Cancelar</string>
<string name="install_amiibo_keys">Instala chaves Amiibo</string>
<string name="install_amiibo_keys_description">Necessário para usares Amiibo no jogo</string>
<string name="invalid_keys_file">Ficheiro de chaves inválido</string>
<string name="install_amiibo_keys">Instalar chaves Amiibo</string>
<string name="install_amiibo_keys_description">Necessário para usar Amiibos em um jogo</string>
<string name="invalid_keys_file">Arquivo de chaves selecionado inválido</string>
<string name="install_keys_success">Chaves instaladas com sucesso</string>
<string name="reading_keys_failure">Erro ao ler chaves de encriptação</string>
<string name="install_prod_keys_failure_extension_description">Verifique se seu arquivo keys possui a extensão .keys e tente novamente.</string>
<string name="install_amiibo_keys_failure_extension_description">Verifique se seu arquivo keys possui a extensão .bin e tente novamente.</string>
<string name="install_prod_keys_failure_extension_description">Verifique se seu arquivo de chaves possui a extensão .keys e tente novamente.</string>
<string name="install_amiibo_keys_failure_extension_description">Verifique se seu arquivo de chaves possui a extensão .bin e tente novamente.</string>
<string name="invalid_keys_error">Chaves de encriptação inválidas</string>
<string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string>
<string name="install_keys_failure_description">O ficheiro selecionado está corrompido. Por favor recarrega as tuas chaves.</string>
<string name="install_keys_failure_description">O arquivo selecionado está incorreto ou corrompido. Por favor extraia suas chaves novamente.</string>
<string name="gpu_driver_manager">Gerenciador de driver de GPU</string>
<string name="install_gpu_driver">Instala driver para GPU</string>
<string name="install_gpu_driver_description">Instala drivers alternativos para desempenho ou precisão potencialmente melhores</string>
<string name="advanced_settings">Definições avançadas</string>
<string name="advanced_settings_game">Definições avançadas: %1$s</string>
<string name="settings_description">Configura definições do emulador</string>
<string name="advanced_settings">Configurações avançadas</string>
<string name="advanced_settings_game">Configurações avançadas: %1$s</string>
<string name="settings_description">Configure opções do emulador</string>
<string name="search_recently_played">Jogado recentemente</string>
<string name="search_recently_added">Adicionado recentemente</string>
<string name="search_retail">Jogos comerciais</string>
<string name="search_homebrew">Homebrew</string>
<string name="open_user_folder">Abre a pasta Yuzu</string>
<string name="open_user_folder_description">Gere os ficheiro internos do Yuzu</string>
<string name="theme_and_color_description">Modifica a aparência da App</string>
<string name="no_file_manager">Nenhum gestor de ficheiros encontrado</string>
<string name="notification_no_directory_link">Impossível abrir pasta Yuzu</string>
<string name="notification_no_directory_link_description">Localiza a pasta de utilizador manualmente com o painel lateral do gestor de ficheiros.</string>
<string name="manage_save_data">Gerir dados guardados</string>
<string name="manage_save_data_description">Dados não encontrados. Por favor seleciona uma opção abaixo.</string>
<string name="import_export_saves_description">Importa ou exporta dados guardados</string>
<string name="open_user_folder">Abrir a pasta do Yuzu</string>
<string name="open_user_folder_description">Gerencie os arquivos internos do Yuzu</string>
<string name="theme_and_color_description">Altere a aparência do aplicativo</string>
<string name="no_file_manager">Nenhum gerenciador de arquivos encontrado</string>
<string name="notification_no_directory_link">Não foi possível abrir a pasta do Yuzu</string>
<string name="notification_no_directory_link_description">Por favor localize a pasta do usuário com o painel lateral do gerenciador de arquivos manualmente.</string>
<string name="manage_save_data">Gerenciar os dados salvos dos jogos</string>
<string name="manage_save_data_description">Dados salvos encontrados. Por favor selecione uma opção abaixo.</string>
<string name="import_save_warning">Importar dados salvos</string>
<string name="import_save_warning_description">Isso irá sobrescrever seus dados salvos com o arquivo selecionado. Você tem certeza que quer continuar?</string>
<string name="import_export_saves_description">Importa ou exporta arquivos de dados salvos</string>
<string name="save_files_importing">Importando dados salvos...</string>
<string name="save_files_exporting">Exportando arquivos de dados salvos...</string>
<string name="save_file_imported_success">Importado com sucesso</string>
<string name="save_file_invalid_zip_structure">Estrutura de diretório de dados invalida</string>
<string name="save_file_invalid_zip_structure_description">O nome da primeira sub pasta tem de ser a ID do jogo.</string>
<string name="save_file_invalid_zip_structure">Estrutura de diretório de dados salvos inválida</string>
<string name="save_file_invalid_zip_structure_description">O nome da primeira sub pasta deve ser a ID do jogo.</string>
<string name="import_saves">Importar</string>
<string name="export_saves">Exportar</string>
<string name="install_firmware">Instalar firmware</string>
@ -96,55 +102,89 @@
<string name="firmware_installing">Instalando firmware</string>
<string name="firmware_installed_success">Firmware instalado com sucesso.</string>
<string name="firmware_installed_failure">Falha na instalação do firmware</string>
<string name="firmware_installed_failure_description">Cofirma que os ficheiros firmware nca estão no root do finheiro zip e tenta de novo.</string>
<string name="share_log">Compartilhe registros de debug.</string>
<string name="firmware_installed_failure_description">Verifique se os arquivos nca do firmware estão na raiz do arquivo zip e tente novamente.</string>
<string name="share_log">Compartilhar registros de debug</string>
<string name="share_log_description">Compartilhe o arquivo de registro do yuzu para obter ajuda com problemas</string>
<string name="share_log_missing">Arquivo de registro não encontrado</string>
<string name="install_game_content">Instalar conteúdo de jogos</string>
<string name="install_game_content_description">Instalar atualizações de jogos ou DLC</string>
<string name="installing_game_content">A instalar conteúdo...</string>
<string name="install_game_content_failure">Erro ao instalar ficheiro(s) para NAND</string>
<string name="install_game_content_failure_description">Por favor confitma que o conteúdo(s) é válido e que as prod.keys estão instaladas.</string>
<string name="install_game_content_description">Instala atualizações de jogos ou DLC</string>
<string name="installing_game_content">Instalando conteúdo...</string>
<string name="install_game_content_failure">Erro ao instalar arquivo(s) na NAND</string>
<string name="install_game_content_failure_description">Por favor certifique-se de que o(s) conteúdo(s) é (são) válido(s) e que as prod.keys estão instaladas.</string>
<string name="install_game_content_failure_base">A instalação de jogos base não é permitida para evitar possíveis conflitos.</string>
<string name="install_game_content_failure_file_extension">Sò conteúdos NSP e XCI são suportados. Por favor verifica que o conteúdo(s) do jogo são válidos.</string>
<string name="install_game_content_failure_file_extension">Somente conteúdos NSP e XCI são suportados. Por favor verifique se o(s) conteúdo(s) do jogo é (são) válido(s).</string>
<string name="install_game_content_failed_count">%1$d erro(s) de instalação</string>
<string name="install_game_content_success">Conteúdo(s) de jogo instalados com sucesso</string>
<string name="install_game_content_success">Conteúdo(s) de jogo instalado(s) com sucesso</string>
<string name="install_game_content_success_install">%1$d instalado com sucesso</string>
<string name="install_game_content_success_overwrite">%1$d substituída com êxito</string>
<string name="install_game_content_success_overwrite">%1$d substituído com sucesso</string>
<string name="install_game_content_help_link">https://yuzu-emu.org/help/quickstart/#dumping-installed-updates</string>
<string name="custom_driver_not_supported">Drivers personalizados não suportados</string>
<string name="custom_driver_not_supported_description">Carregamento de drivers personalizados não é suportado pr este dispositivo. \nCheck verifica esta opção de futuro para confirmar se o suporte foi adicionado!</string>
<string name="manage_yuzu_data">Administrar dados yuzu</string>
<string name="custom_driver_not_supported_description">Carregamento de drivers personalizados não suportado para este dispositivo no momento.\nVerifique esse opção novamente no futuro para ver se o suporte foi adicionado!</string>
<string name="manage_yuzu_data">Administrar dados do yuzu</string>
<string name="manage_yuzu_data_description">Importa/exporta firmware, chaves, dados do usuário e mais!</string>
<string name="share_save_file">Partilha ficheiro duardado</string>
<string name="export_save_failed">Erro ao exportar dados guardados</string>
<string name="share_save_file">Compartilhar arquivo de dados salvos</string>
<string name="export_save_failed">Erro ao exportar arquivo de dados salvos</string>
<string name="game_folders">Pastas de jogos</string>
<string name="deep_scan">Varredura profunda</string>
<string name="add_game_folder">Adicionar pasta de jogo</string>
<string name="folder_already_added">Esta pasta já foi adicionada!</string>
<string name="game_folder_properties">Propriedades da pasta de jogo</string>
<plurals name="saves_import_failed">
<item quantity="one">Falha ao importar dado salvo de %d</item>
<item quantity="many">Falha ao importar dados salvos de %d</item>
<item quantity="other">Falha ao importar dados salvos de %d</item>
</plurals>
<plurals name="saves_import_success">
<item quantity="one">Dado salvo de %d importado com sucesso</item>
<item quantity="many">Dados salvos de %d importados com sucesso</item>
<item quantity="other">Dados salvos de %d importados com sucesso</item>
</plurals>
<string name="no_save_data_found">Dados salvos não encontrados</string>
<!-- Applet launcher strings -->
<string name="applets">Launcher de miniaplicativos</string>
<string name="applets_description">Inicia miniaplicativos do sistema usando o firmware instalado</string>
<string name="applets_error_firmware">Firmware não instalado</string>
<string name="applets_error_applet">Miniaplicativo não disponível</string>
<string name="applets_error_description"><![CDATA[Por favor verifique se o arquivo 1prod.keys1 e o 2firmware2 estão instalados e tente novamente.]]></string>
<string name="album_applet">Álbum</string>
<string name="album_applet_description">Visualize imagens armazenadas na pasta de capturas de telas do usuário com o visualizador de imagens do sistema</string>
<string name="mii_edit_applet">Editor de Mii</string>
<string name="mii_edit_applet_description">Visualize e edite os Miis com o editor do sistema</string>
<string name="cabinet_applet">Arquivo</string>
<string name="cabinet_applet_description">Edite e delete dados armazenados nos amiibos</string>
<string name="cabinet_launcher">Inicializador do Arquivo</string>
<string name="cabinet_nickname_and_owner">Apelido e configurações do proprietário</string>
<string name="cabinet_game_data_eraser">Apagar dados de jogo</string>
<string name="cabinet_restorer">Restaurar</string>
<string name="cabinet_formatter">Formatar</string>
<!-- About screen strings -->
<string name="gaia_is_not_real">Gaia não é real</string>
<string name="copied_to_clipboard">Copiado para a área de transferência</string>
<string name="about_app_description">Um emulador Switch de código aberto</string>
<string name="contributors">Contribuidores</string>
<string name="contributors_description">Feito com \u2764 da equipa do Yuzu</string>
<string name="about_app_description">Um emulador de Switch de código aberto</string>
<string name="contributors">Colaboradores</string>
<string name="contributors_description">Feito com \u2764 da equipe do Yuzu</string>
<string name="contributors_link">https://github.com/yuzu-emu/yuzu/graphs/contributors</string>
<string name="licenses_description">Projetos que tornam o yuzu para Android possível</string>
<string name="build">Versão</string>
<string name="user_data">Dado de utilizados</string>
<string name="user_data_description">Importar/exportar todos dados da aplicação data.\n\n Ao importar dados do utilizados, todos os dados existentes do utilizados serão excluídos!</string>
<string name="exporting_user_data">A exportar dados de utilizados...</string>
<string name="importing_user_data">A importar dados de utilizador...</string>
<string name="import_user_data">Importar dados de utilizados...</string>
<string name="invalid_yuzu_backup">Backup yuzu inválido</string>
<string name="user_data_export_success">Dados de utilizados exportados com sucesso</string>
<string name="user_data_import_success">Dados de utilizador importado com sucesso</string>
<string name="user_data">Dados do usuário</string>
<string name="user_data_description">Importar/exportar todos os dados do aplicativo.\n\n Ao importar dados de usuário, todos os dados existentes do usuário serão excluídos!</string>
<string name="exporting_user_data">Exportando dados do usuário...</string>
<string name="importing_user_data">Importando dados do usuário...</string>
<string name="import_user_data">Importar dados do usuário</string>
<string name="invalid_yuzu_backup">Backup do yuzu inválido</string>
<string name="user_data_export_success">Dados de usuário exportados com sucesso</string>
<string name="user_data_import_success">Dados de usuário importados com sucesso</string>
<string name="user_data_export_cancelled">Exportação cancelada</string>
<string name="user_data_import_failed_description">Verifiqua se as pastas de dados do utilizados estão na raiz da pasta zip e contêm um arquivo de configuração em config/config.ini e tenta novamente.</string>
<string name="user_data_import_failed_description">Verifiqua se as pastas de dados do usuário estão na raiz da pasta zip e contêm um arquivo de configuração em config/config.ini e tente novamente.</string>
<string name="support_link">https://discord.gg/u77vRWY</string>
<string name="website_link">https://yuzu-emu.org/</string>
<string name="github_link">https://github.com/yuzu-emu</string>
<!-- Early access upgrade strings -->
<string name="early_access">Acesso antecipado</string>
<string name="get_early_access">Obtém Acesso Antecipado</string>
<string name="early_access">Acesso Antecipado</string>
<string name="get_early_access">Obtenha o Acesso Antecipado</string>
<string name="play_store_link">https://play.google.com/store/apps/details?id=org.yuzu.yuzu_emu.ea</string>
<string name="get_early_access_description">Recursos de ponta, acesso antecipado a atualizações e muito mais</string>
<string name="early_access_benefits">Benefícios do Acesso Antecipado</string>
@ -154,18 +194,19 @@
<string name="prioritized_support">Suporte prioritário</string>
<string name="helping_game_preservation">Ajuda na preservação dos jogos</string>
<string name="our_eternal_gratitude">A nossa eterna gratidão</string>
<string name="are_you_interested">Estás interessado?</string>
<string name="are_you_interested">Tem interesse?</string>
<!-- General settings strings -->
<string name="frame_limit_enable">Limite de velocidade</string>
<string name="frame_limit_enable_description">Limita a velocidade da emulação a uma porcentagem específica da velocidade normal.</string>
<string name="frame_limit_slider">Percentagem do limite de velocidade</string>
<string name="frame_limit_slider">Porcentagem do limite de velocidade</string>
<string name="frame_limit_slider_description">Especifica a porcentagem para limitar a velocidade de emulação. 100% é o normal. Valores mais altos ou mais baixos irão aumentar ou diminuir o limite de velocidade.</string>
<string name="cpu_accuracy">Precisão do CPU</string>
<string name="cpu_backend">Backend da CPU</string>
<string name="cpu_accuracy">Precisão da CPU</string>
<string name="value_with_units">%1$s%2$s</string>
<!-- System settings strings -->
<string name="use_docked_mode">Modo Ancorado</string>
<string name="use_docked_mode">Modo TV</string>
<string name="use_docked_mode_description">Aumenta a resolução, diminuindo o desempenho. O Modo Portátil é utilizado quando estiver desabilitado, diminuindo a resolução e melhorando o desempenho.</string>
<string name="emulated_region">Região da emulação</string>
<string name="emulated_language">Idioma da emulação</string>
@ -177,20 +218,22 @@
<!-- Graphics settings strings -->
<string name="renderer_accuracy">Nível de precisão</string>
<string name="renderer_resolution">Resolução (Portátil/Ancorado)</string>
<string name="renderer_resolution">Resolução (Portátil/Modo TV)</string>
<string name="renderer_vsync">Modo VSync</string>
<string name="renderer_screen_layout">Oriantação</string>
<string name="renderer_aspect_ratio">Proporção da tela</string>
<string name="renderer_scaling_filter">Filtro de Adaptação da Janela</string>
<string name="renderer_anti_aliasing">Método de Anti-Serrilhado</string>
<string name="renderer_force_max_clock">Força velocidade máxima (Adreno only)</string>
<string name="renderer_force_max_clock_description">Força o GPU a correr à velocidade máxima (restrições térmicas serão aplicadas)</string>
<string name="renderer_asynchronous_shaders">Usa shaders assíncronos </string>
<string name="renderer_force_max_clock">Forçar velocidade máxima (somente Adreno)</string>
<string name="renderer_force_max_clock_description">Força o GPU a rodar na velocidade máxima (restrições térmicas serão aplicadas)</string>
<string name="renderer_asynchronous_shaders">Usar shaders assíncronos </string>
<string name="renderer_asynchronous_shaders_description">Compila os shaders de forma assíncrona, reduzindo travamentos, mas pode apresentar problemas.</string>
<string name="renderer_reactive_flushing">Usar flushing reativo</string>
<string name="renderer_reactive_flushing_description">Melhora a precisão da renderização em alguns jogos ao custo de desempenho.</string>
<string name="use_disk_shader_cache">Cache de shaders em disco</string>
<string name="use_disk_shader_cache_description">Reduz travamentos ao armazenar e carregar localmente os shaders.</string>
<string name="anisotropic_filtering">Filtragem anisotrópica</string>
<string name="anisotropic_filtering_description">Melhora a qualidade das texturas quando visualizadas de ângulos oblíquos</string>
<!-- Debug settings strings -->
<string name="cpu">CPU</string>
@ -198,28 +241,29 @@
<string name="cpu_debug_mode_description">Coloca a CPU em um modo de depuração lento.</string>
<string name="gpu">GPU</string>
<string name="renderer_api">API</string>
<string name="renderer_debug">Ativar depuração de gráficos</string>
<string name="renderer_debug_description">Quando selecionado, a API gráfica entra num modo de depuração mais lento.</string>
<string name="renderer_debug">Depuração de gráficos</string>
<string name="renderer_debug_description">Define a API gráfica para um modo de depuração mais lento.</string>
<string name="fastmem">Fastmem</string>
<!-- Audio settings strings -->
<string name="audio_output_engine">Motor de saída</string>
<string name="audio_output_engine">Engine de reprodução</string>
<string name="audio_volume">Volume</string>
<string name="audio_volume_description">Especifica o volume de saída.</string>
<string name="audio_volume_description">Especifica o volume de reprodução.</string>
<!-- Miscellaneous -->
<string name="slider_default">Padrão</string>
<string name="ini_saved">Definições guardadas</string>
<string name="gameid_saved">Definições guardadas para %1$s</string>
<string name="error_saving">Erro ao guardar %1$s.ini: %2$s</string>
<string name="ini_saved">Configurações salvas</string>
<string name="gameid_saved">Configurações salvas para %1$s</string>
<string name="error_saving">Erro ao salvar %1$s.ini: %2$s</string>
<string name="unimplemented_menu">Menu não implementado</string>
<string name="loading">A carregar...</string>
<string name="shutting_down">A desligar...</string>
<string name="reset_setting_confirmation">Queres reverter esta definição para os valores padrão?</string>
<string name="reset_to_default">Reverter para padrão</string>
<string name="reset_all_settings">Redefinir todas as definições?</string>
<string name="loading">Carregando...</string>
<string name="shutting_down">Encerrando...</string>
<string name="reset_setting_confirmation">Deseja reverter esta configuração para os valores padrões?</string>
<string name="reset_to_default">Reverter para o padrão</string>
<string name="reset_to_default_description">Redefine todas as configurações avançadas</string>
<string name="reset_all_settings">Redefinir todas as configurações?</string>
<string name="reset_all_settings_description">Todas as configurações avançadas retornarão ao padrão. Isto não pode ser desfeito.</string>
<string name="settings_reset">Redefinir definições</string>
<string name="settings_reset">Configurações redefinidas</string>
<string name="close">Fechar</string>
<string name="learn_more">Saiba mais</string>
<string name="auto">Automático</string>
@ -227,44 +271,95 @@
<string name="string_null">Nenhum (desativado)</string>
<string name="string_import">Importar</string>
<string name="export">Exportar</string>
<string name="export_failed">Exportação falhada</string>
<string name="import_failed">IMportação falhada</string>
<string name="cancelling">A cancelar</string>
<string name="export_failed">Falha ao exportar</string>
<string name="import_failed">Falha ao importar</string>
<string name="cancelling">Cancelando</string>
<string name="install">Instalar</string>
<string name="delete">Deletar</string>
<string name="edit">Editar</string>
<string name="export_success">Exportado com sucesso</string>
<string name="start">Start</string>
<string name="clear">Limpar</string>
<string name="global">Global</string>
<string name="custom">Personalizado</string>
<string name="notice">Aviso</string>
<string name="import_complete">Importação concluída</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">Seleciona a driver para o GPU</string>
<string name="select_gpu_driver_title">Queres substituir o driver do GPU atual? </string>
<string name="select_gpu_driver">Selecione o driver para a GPU</string>
<string name="select_gpu_driver_title">Gostaria de substituir o driver atual da GPU? </string>
<string name="select_gpu_driver_install">Instalar</string>
<string name="select_gpu_driver_default">Padrão</string>
<string name="select_gpu_driver_use_default">Usar o driver padrão do GPU</string>
<string name="select_gpu_driver_error">Driver selecionado inválido, a usar o padrão do sistema!</string>
<string name="system_gpu_driver">Driver do GPU padrão</string>
<string name="installing_driver">A instalar o Driver...</string>
<string name="select_gpu_driver_use_default">Usar o driver padrão da GPU</string>
<string name="select_gpu_driver_error">Driver selecionado inválido</string>
<string name="driver_already_installed">Driver já instalado</string>
<string name="system_gpu_driver">Driver padrão da GPU</string>
<string name="installing_driver">Instalando driver...</string>
<!-- Preferences Screen -->
<string name="preferences_settings">Configurações</string>
<string name="preferences_general">Geral</string>
<string name="preferences_system">Sistema</string>
<string name="preferences_system_description">Modo TV, região, idioma</string>
<string name="preferences_graphics">Gráficos</string>
<string name="preferences_graphics_description">Nível de precisão, resolução, cache de shader</string>
<string name="preferences_audio">Áudio</string>
<string name="preferences_theme">Cor e tema.</string>
<string name="preferences_audio_description">Engine de reprodução, volume</string>
<string name="preferences_theme">Tema e cor</string>
<string name="preferences_debug">Depuração</string>
<string name="preferences_debug_description">Depuração de CPU/GPU, API gráfica, fastmem</string>
<!-- Game properties -->
<string name="info">Informações</string>
<string name="info_description">ID do Programa, desenvolvedora, versão</string>
<string name="per_game_settings">Configurações por jogo</string>
<string name="per_game_settings_description">Edite configurações específicas para este jogo</string>
<string name="launch_options">Configurações de inicialização</string>
<string name="path">Caminho</string>
<string name="program_id">ID do Programa</string>
<string name="developer">Desenvolvedora</string>
<string name="version">Versão</string>
<string name="copy_details">Copiar detalhes</string>
<string name="add_ons">Adicionais</string>
<string name="add_ons_description">Gerencie mods, atualizações e DLC</string>
<string name="clear_shader_cache">Excluir cache de shaders</string>
<string name="clear_shader_cache_description">Remove todos os shaders compilados durante a execução do jogo</string>
<string name="clear_shader_cache_warning_description">Você terá mais travamentos enquanto o cache de shaders for recompilado</string>
<string name="cleared_shaders_successfully">Shaders excluídos com sucesso</string>
<string name="addons_game">Adicionais: %1$s</string>
<string name="save_data">Dados salvos</string>
<string name="save_data_description">Gerencie dados salvos específicos deste jogo</string>
<string name="delete_save_data">Deletar dados salvos</string>
<string name="delete_save_data_description">Remove todos os dados salvos específicos deste jogo</string>
<string name="delete_save_data_warning_description">Isso removerá permanentemente todos os dados salvos do jogo. Tem certeza de que quer continuar?</string>
<string name="save_data_deleted_successfully">Dados salvos deletados com sucesso </string>
<string name="select_content_type">Tipo de conteúdo</string>
<string name="updates_and_dlc">Atualizações e DLC</string>
<string name="mods_and_cheats">Mods e cheats</string>
<string name="addon_notice">Aviso importante sobre os adicionais</string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="addon_notice_description">Para instalar mods e cheats, você deve selecionar uma pasta que contenha um diretório cheats/, romfs/ ou exefs. Não podemos verificar se eles são compatíveis com seu jogo, então tenha cuidado!</string>
<string name="invalid_directory">Diretório inválido </string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="invalid_directory_description">Por favor verifique se o diretório selecionado contém uma pasta cheats/, romfs/ ou exefs/ e tente novamente.</string>
<string name="addon_installed_successfully">Adicional instalado com sucesso</string>
<string name="verifying_content">Verificando conteúdo...</string>
<string name="content_install_notice">Aviso sobre conteúdo adicional</string>
<string name="content_install_notice_description">O conteúdo que você selecionou não corresponde a este jogo.\nInstalar mesmo assim?</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">A tua ROM está encriptada</string>
<string name="loader_error_encrypted_roms_description"><![CDATA[Por favor, siga os guias para despejar novamente o seu <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-physical-titles-game-cards\">cartucho de jogo</a> or <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-digital-titles-eshop\">títulos instalados</a>.]]></string>
<string name="loader_error_encrypted_keys_description"><![CDATA[Por favor confirma que o teu ficheiro <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> está instalado para que os jogos possam ser desencriptados.]]></string>
<string name="loader_error_encrypted">Sua ROM está encriptada</string>
<string name="loader_error_encrypted_roms_description"><![CDATA[Por favor, siga os guias para extrair novamente o seu <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-physical-titles-game-cards\">cartucho de jogo</a> ou <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-digital-titles-eshop\">títulos instalados</a>.]]></string>
<string name="loader_error_encrypted_keys_description"><![CDATA[Por favor verifique se o seu arquivo <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> está instalado para que os jogos possam ser decriptados.]]></string>
<string name="loader_error_video_core">Ocorreu um erro ao iniciar o núcleo de vídeo.</string>
<string name="loader_error_video_core_description">Isto é normalmente causado por um driver de GPU incompatível. Instalar um driver GPU pode resolver este problema.</string>
<string name="loader_error_invalid_format">Impossível carregar a tua ROM</string>
<string name="loader_error_file_not_found">O ficheiro da ROM não existe</string>
<string name="loader_error_video_core_description">Isto é normalmente causado por um driver de GPU incompatível. Instalar um driver de GPU pode resolver este problema.</string>
<string name="loader_error_invalid_format">Impossível carregar a ROM</string>
<string name="loader_error_file_not_found">O arquivo ROM não existe</string>
<!-- Emulation Menu -->
<string name="emulation_exit">Parar emulação</string>
<string name="emulation_exit">Sair da emulação</string>
<string name="emulation_done">Feito</string>
<string name="emulation_fps_counter">Contador de FPS</string>
<string name="emulation_toggle_controls">Alterar controles</string>
<string name="emulation_rel_stick_center">Centro Relativo de Analógico</string>
<string name="emulation_toggle_controls">Marcar/Desmarcar botões</string>
<string name="emulation_rel_stick_center">Centro Relativo do Analógico</string>
<string name="emulation_dpad_slide">Deslizamento dos Botões Direcionais</string>
<string name="emulation_haptics">Vibração ao tocar</string>
<string name="emulation_show_overlay">Mostrar overlay</string>
@ -272,28 +367,29 @@
<string name="emulation_control_adjust">Ajustar overlay</string>
<string name="emulation_control_scale">Escala</string>
<string name="emulation_control_opacity">Opacidade</string>
<string name="emulation_touch_overlay_reset">Restaurar overlay padrão</string>
<string name="emulation_touch_overlay_reset">Resetar overlay</string>
<string name="emulation_touch_overlay_edit">Editar overlay</string>
<string name="emulation_pause">Pausar emulação</string>
<string name="emulation_unpause">Retomar emulação</string>
<string name="emulation_unpause">Retomar a emulação</string>
<string name="emulation_input_overlay">Opções de overlay</string>
<string name="touchscreen">Tela de toque</string>
<string name="load_settings">Carregando configurações...</string>
<!-- Software keyboard -->
<string name="software_keyboard">Teclado de software</string>
<string name="software_keyboard">Teclado do software</string>
<!-- Errors and warnings -->
<string name="abort_button">Abortar</string>
<string name="continue_button">Continuar</string>
<string name="system_archive_not_found">Arquivo do sistema não encontrado</string>
<string name="system_archive_not_found_message">%s está em falta. Por favor apaga os teus ficheiros de sistema.\nContinuar a emulação pode causar erros.</string>
<string name="system_archive_not_found">Arquivo do Sistema Não Encontrado</string>
<string name="system_archive_not_found_message">%s está faltando. Por favor extraia seus arquivos de sistema.\nContinuar a emulação pode causar travamentos e bugs.</string>
<string name="system_archive_general">Um arquivo do sistema</string>
<string name="save_load_error">Erro Guardar/Carregar</string>
<string name="save_load_error">Erro de Salvamento/Carregamento</string>
<string name="fatal_error">Erro fatal</string>
<string name="fatal_error_message">Ocorreu um erro fatal. Verifica o teu registro para detalhes. \nContinuar a emulação pode causar erros.</string>
<string name="performance_warning">Desligar esta configuração irá reduzir a performance da emulação significantemente! Para a melhor experiência é recomendado que deixes esta configuração ativada.</string>
<string name="device_memory_inadequate">RAM do dispositivo: %1$s\nRecommended: %2$s</string>
<string name="fatal_error_message">Ocorreu um erro fatal. Verifique o arquivo de registro para detalhes.\nContinuar a emulação pode causar travamentos e bugs.</string>
<string name="performance_warning">Desligar esta configuração irá reduzir a performance da emulação significantemente! Para a melhor experiência é recomendado deixar esta configuração ativada.</string>
<string name="device_memory_inadequate">RAM do dispositivo: %1$s\nRecomendada: %2$s</string>
<string name="memory_formatted">%1$s %2$s</string>
<string name="no_game_present">Nenhum jogo inicializável presente!</string>
@ -308,6 +404,7 @@
<!-- Memory Sizes -->
<string name="memory_byte">Byte</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_kilobyte">KB</string>
<string name="memory_megabyte">MB</string>
<string name="memory_gigabyte">GB</string>
@ -316,19 +413,19 @@
<string name="memory_exabyte">EB</string>
<!-- Renderer APIs -->
<string name="renderer_vulkan">Vulcano</string>
<string name="renderer_vulkan">Vulkan</string>
<string name="renderer_none">Nenhum</string>
<!-- Renderer Accuracy -->
<string name="renderer_accuracy_normal">Normal</string>
<string name="renderer_accuracy_high">Alto</string>
<string name="renderer_accuracy_extreme">Estremo (Lento)</string>
<string name="renderer_accuracy_extreme">Extremo (Lento)</string>
<!-- Resolutions -->
<string name="resolution_half">0.5X (360p/540p)</string>
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
<string name="resolution_one">1X (720p/1080p)</string>
<string name="resolution_two">2X (1440p/2160p) (Slow)</string>
<string name="resolution_two">2X (1440p/2160p) (Lento)</string>
<string name="resolution_three">3X (2160p/3240p) (Lento)</string>
<string name="resolution_four">4X (2880p/4320p) (Lento)</string>
@ -352,9 +449,13 @@
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_landscape">Landscape</string>
<string name="screen_layout_portrait">Portrait</string>
<string name="screen_layout_auto">Automático</string>
<string name="screen_layout_auto">Automática</string>
<string name="screen_layout_sensor_landscape">Paisagem pelo sensor</string>
<string name="screen_layout_landscape">Paisagem</string>
<string name="screen_layout_reverse_landscape">Paisagem invertida</string>
<string name="screen_layout_sensor_portrait">Retrato pelo sensor</string>
<string name="screen_layout_portrait">Retrato</string>
<string name="screen_layout_reverse_portrait">Retrato invertido</string>
<!-- Aspect Ratios -->
<string name="ratio_default">Padrão (16:9)</string>
@ -363,21 +464,25 @@
<string name="ratio_force_sixteen_ten">Forçar 16:10</string>
<string name="ratio_stretch">Esticar à janela</string>
<!-- CPU Backend -->
<string name="cpu_backend_dynarmic">Dynarmic (Lento)</string>
<string name="cpu_backend_nce">Execução de código nativo (NCE)</string>
<!-- CPU Accuracy -->
<string name="cpu_accuracy_accurate">Preciso</string>
<string name="cpu_accuracy_unsafe">Não seguro</string>
<string name="cpu_accuracy_paranoid">Paranoid (Lento)</string>
<string name="cpu_accuracy_paranoid">Paranóico (Lento)</string>
<!-- Gamepad Buttons -->
<string name="gamepad_d_pad">Botões Direcionais</string>
<string name="gamepad_left_stick">Analógico esquerdo</string>
<string name="gamepad_right_stick">Analógico direito</string>
<string name="gamepad_home">Botão Home</string>
<string name="gamepad_screenshot">Captura de ecrã</string>
<string name="gamepad_screenshot">Captura de tela</string>
<!-- Disk shader cache -->
<string name="preparing_shaders">A preparar shaders</string>
<string name="building_shaders">A criar shaders</string>
<string name="preparing_shaders">Preparando shaders</string>
<string name="building_shaders">Criando shaders</string>
<!-- Theme options -->
<string name="change_app_theme">Mudar o tema do aplicativo</string>
@ -391,19 +496,26 @@
<string name="theme_mode_dark">Escuro</string>
<!-- Audio output engines -->
<string name="oboe">oboe</string>
<string name="cubeb">cubeb</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">Plano de fundo preto</string>
<string name="use_black_backgrounds_description">Quando usar tema escuro, aplicar fundos escuros</string>
<string name="use_black_backgrounds_description">Quando usar o tema escuro, aplicar fundos pretos</string>
<!-- Picture-In-Picture -->
<string name="picture_in_picture">Picture in Picture</string>
<string name="picture_in_picture_description">Minimizar a janela quando colocada em segundo plano</string>
<string name="pause">Pausa</string>
<string name="play">Correr</string>
<string name="picture_in_picture_description">Minimiza a janela quando colocada em segundo plano</string>
<string name="pause">Pausar</string>
<string name="play">Executar</string>
<string name="mute">Mudo</string>
<string name="unmute">Unmute</string>
<string name="unmute">Tirar do Mudo</string>
<!-- Licenses screen strings -->
<string name="licenses">Licenças</string>

View File

@ -34,6 +34,7 @@
<string name="empty_gamelist">Não foram encontrados jogos ou a pasta de Jogos ainda não foi definida. </string>
<string name="search_and_filter_games">Procura e filtra jogos.</string>
<string name="select_games_folder">Seleciona a pasta de jogos.</string>
<string name="manage_game_folders">Gerencie as pastas de jogos</string>
<string name="select_games_folder_description">Permite que o Yuzu preencha a lista de jogos</string>
<string name="add_games_warning">Ignorar a seleção da pasta de jogos?</string>
<string name="add_games_warning_description">Os jogos não serão exibidos na lista de jogos se uma pasta não estiver selecionada.</string>
@ -68,6 +69,7 @@
<string name="invalid_keys_error">Chaves de encriptação inválidas</string>
<string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string>
<string name="install_keys_failure_description">O ficheiro selecionado está corrompido. Por favor recarrega as tuas chaves.</string>
<string name="gpu_driver_manager">Gerenciador de driver de GPU</string>
<string name="install_gpu_driver">Instala driver para GPU</string>
<string name="install_gpu_driver_description">Instala drivers alternativos para desempenho ou precisão potencialmente melhores</string>
<string name="advanced_settings">Configurações avançadas</string>
@ -85,7 +87,11 @@
<string name="notification_no_directory_link_description">Localiza a pasta de utilizador manualmente com o painel lateral do gestor de ficheiros.</string>
<string name="manage_save_data">Gerir dados guardados</string>
<string name="manage_save_data_description">Dados não encontrados. Por favor seleciona uma opção abaixo.</string>
<string name="import_save_warning">Importar dados salvos</string>
<string name="import_save_warning_description">Isso irá sobrescrever seus dados salvos com o arquivo selecionado. Você tem certeza que quer continuar?</string>
<string name="import_export_saves_description">Importa ou exporta dados guardados</string>
<string name="save_files_importing">Importando dados salvos...</string>
<string name="save_files_exporting">Exportando arquivos de dados salvos...</string>
<string name="save_file_imported_success">Importado com sucesso</string>
<string name="save_file_invalid_zip_structure">Estrutura de diretório de dados invalida</string>
<string name="save_file_invalid_zip_structure_description">O nome da primeira sub pasta tem de ser a ID do jogo.</string>
@ -118,6 +124,40 @@
<string name="manage_yuzu_data_description">Importa/exporta firmware, chaves, dados do usuário e mais!</string>
<string name="share_save_file">Partilha ficheiro duardado</string>
<string name="export_save_failed">Erro ao exportar dados guardados</string>
<string name="game_folders">Pastas de jogos</string>
<string name="deep_scan">Varredura profunda</string>
<string name="add_game_folder">Adicionar pasta de jogo</string>
<string name="folder_already_added">Esta pasta já foi adicionada!</string>
<string name="game_folder_properties">Propriedades da pasta de jogo</string>
<plurals name="saves_import_failed">
<item quantity="one">Falha ao importar dado salvo de %d</item>
<item quantity="many">Falha ao importar dados salvos de %d</item>
<item quantity="other">Falha ao importar dados salvos de %d</item>
</plurals>
<plurals name="saves_import_success">
<item quantity="one">Dado salvo de %d importado com sucesso</item>
<item quantity="many">Dados salvos de %d importados com sucesso</item>
<item quantity="other">Dados salvos de %d importados com sucesso</item>
</plurals>
<string name="no_save_data_found">Dados salvos não encontrados</string>
<!-- Applet launcher strings -->
<string name="applets">Launcher de miniaplicativos</string>
<string name="applets_description">Inicie miniaplicativos do sistema usando o firmware instalado</string>
<string name="applets_error_firmware">Firmware não instalado</string>
<string name="applets_error_applet">Miniaplicativo não disponível</string>
<string name="applets_error_description"><![CDATA[Por favor verifique se o arquivo 1prod.keys1 e o 2firmware2 estão instalados e tente novamente.]]></string>
<string name="album_applet">Álbum</string>
<string name="album_applet_description">Visualize imagens armazenadas na pasta de capturas de telas do usuário com o visualizador de imagens do sistema</string>
<string name="mii_edit_applet">Editor de Mii</string>
<string name="mii_edit_applet_description">Visualize e edite os Miis com o editor do sistema</string>
<string name="cabinet_applet">Arquivo</string>
<string name="cabinet_applet_description">Edite e delete dados armazenados nos amiibos</string>
<string name="cabinet_launcher">Inicializador do Arquivo</string>
<string name="cabinet_nickname_and_owner">Apelido e configurações do proprietário</string>
<string name="cabinet_game_data_eraser">Apagar dados de jogo</string>
<string name="cabinet_restorer">Restaurar</string>
<string name="cabinet_formatter">Formatar</string>
<!-- About screen strings -->
<string name="gaia_is_not_real">Gaia não é real</string>
@ -161,6 +201,7 @@
<string name="frame_limit_enable_description">Limita a velocidade da emulação a uma porcentagem específica da velocidade normal.</string>
<string name="frame_limit_slider">Percentagem do limite de velocidade</string>
<string name="frame_limit_slider_description">Especifica a porcentagem para limitar a velocidade de emulação. 100% é o normal. Valores mais altos ou mais baixos irão aumentar ou diminuir o limite de velocidade.</string>
<string name="cpu_backend">Backend da CPU</string>
<string name="cpu_accuracy">Precisão do CPU</string>
<string name="value_with_units">%1$s%2$s</string>
@ -191,6 +232,8 @@
<string name="renderer_reactive_flushing_description">Melhora a precisão da renderização em alguns jogos ao custo de desempenho.</string>
<string name="use_disk_shader_cache">Cache de shaders em disco</string>
<string name="use_disk_shader_cache_description">Reduz travamentos ao armazenar e carregar localmente os shaders.</string>
<string name="anisotropic_filtering">Filtragem anisotrópica</string>
<string name="anisotropic_filtering_description">Melhora a qualidade das texturas quando visualizadas de ângulos oblíquos</string>
<!-- Debug settings strings -->
<string name="cpu">CPU</string>
@ -217,6 +260,7 @@
<string name="shutting_down">A desligar...</string>
<string name="reset_setting_confirmation">Queres reverter esta definição para os valores padrão?</string>
<string name="reset_to_default">Reverter para padrão</string>
<string name="reset_to_default_description">Reverte todas as configurações avançadas</string>
<string name="reset_all_settings">Redefinir todas as configurações?</string>
<string name="reset_all_settings_description">Todas as configurações avançadas retornarão ao padrão. Isto não pode ser desfeito.</string>
<string name="settings_reset">Redefinir configurações </string>
@ -230,14 +274,24 @@
<string name="export_failed">Exportação falhada</string>
<string name="import_failed">IMportação falhada</string>
<string name="cancelling">A cancelar</string>
<string name="install">Instalar</string>
<string name="delete">Apagar</string>
<string name="edit">Editar</string>
<string name="export_success">Exportado com sucesso</string>
<string name="start">Começar</string>
<string name="clear">Limpar</string>
<string name="global">Global</string>
<string name="custom">Personalizado</string>
<string name="notice">Aviso</string>
<string name="import_complete">Importação concluída</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">Seleciona a driver para o GPU</string>
<string name="select_gpu_driver_title">Queres substituir o driver do GPU atual? </string>
<string name="select_gpu_driver_install">Instalar</string>
<string name="select_gpu_driver_default">Padrão</string>
<string name="select_gpu_driver_use_default">Usar o driver padrão do GPU</string>
<string name="select_gpu_driver_error">Driver selecionado inválido, a usar o padrão do sistema!</string>
<string name="select_gpu_driver_error">Driver selecionado inválido</string>
<string name="driver_already_installed">Driver já instalado</string>
<string name="system_gpu_driver">Driver do GPU padrão</string>
<string name="installing_driver">A instalar o Driver...</string>
@ -245,11 +299,52 @@
<string name="preferences_settings">Configurações</string>
<string name="preferences_general">Geral</string>
<string name="preferences_system">Sistema</string>
<string name="preferences_system_description">Modo ancorado, região, idioma</string>
<string name="preferences_graphics">Gráficos</string>
<string name="preferences_graphics_description">Nível de precisão, resolução, cache de shader</string>
<string name="preferences_audio">Audio</string>
<string name="preferences_audio_description">Engine de reprodução, volume</string>
<string name="preferences_theme">Cor e tema.</string>
<string name="preferences_debug">Depurar</string>
<string name="preferences_debug_description">Depuração de CPU/GPU, API gráfica, fastmem</string>
<!-- Game properties -->
<string name="info">Informação</string>
<string name="info_description">ID do programa, desenvolvedor, versão</string>
<string name="per_game_settings">Configurações por jogo</string>
<string name="per_game_settings_description">Editar configurações específicas para este jogo</string>
<string name="launch_options">Iniciar configuração</string>
<string name="path">Caminho</string>
<string name="program_id">ID do programa</string>
<string name="developer">Desenvolvedor</string>
<string name="version">Versão</string>
<string name="copy_details">Copiar detalhes</string>
<string name="add_ons">Add-ons</string>
<string name="add_ons_description">Gerencie mods, atualizações e DLC</string>
<string name="clear_shader_cache">Limpar cache de shaders</string>
<string name="clear_shader_cache_description">Remove todos os shaders compilados enquanto esse jogo era jogado</string>
<string name="clear_shader_cache_warning_description">Você terá mais travamentos enquanto o cache de shaders for recompilado</string>
<string name="cleared_shaders_successfully">Shaders excluídos com sucesso</string>
<string name="addons_game">Adicionais: %1$s</string>
<string name="save_data">Salvar dados</string>
<string name="save_data_description">Gerenciar dados salvos específicos deste jogo</string>
<string name="delete_save_data">Apagar dados salvos</string>
<string name="delete_save_data_description">Remover todos os dados salvos específicos deste jogo</string>
<string name="delete_save_data_warning_description">Isso removerá permanentemente todos os dados salvos do jogo. Tem certeza de que quer continuar?</string>
<string name="save_data_deleted_successfully">Dados salvos removidos com sucesso </string>
<string name="select_content_type">Tipo de conteúdo</string>
<string name="updates_and_dlc">Atualizações e DLC</string>
<string name="mods_and_cheats">Mods e trapaças</string>
<string name="addon_notice">Aviso importante sobre os adicionais</string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="addon_notice_description">Para instalar mods e cheats, você deve selecionar uma pasta que contenha um diretório cheats/, romfs/ ou exefs. Não podemos verificar se eles são compatíveis com seu jogo, então tenha cuidado!</string>
<string name="invalid_directory">Diretório inválido </string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="invalid_directory_description">Por favor verifique se o diretório selecionado contém uma pasta cheats/, romfs ou exefs e tente novamente.</string>
<string name="addon_installed_successfully">Adicional instalado com sucesso</string>
<string name="verifying_content">Verificando conteúdo</string>
<string name="content_install_notice">Aviso sobre conteúdo adicional</string>
<string name="content_install_notice_description">O conteúdo que você selecionou não corresponde a este jogo.\nInstalar mesmo assim?</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">A tua ROM está encriptada</string>
<string name="loader_error_encrypted_roms_description"><![CDATA[Por favor, siga os guias para despejar novamente o seu <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-physical-titles-game-cards\">cartucho de jogo</a> or <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-digital-titles-eshop\">títulos instalados</a>.]]></string>
@ -277,6 +372,7 @@
<string name="emulation_pause">Pausar emulação</string>
<string name="emulation_unpause">Despausar emulação</string>
<string name="emulation_input_overlay">Opções de overlay</string>
<string name="touchscreen">Ecrã Táctil</string>
<string name="load_settings">Carregando configurações...</string>
@ -308,6 +404,7 @@
<!-- Memory Sizes -->
<string name="memory_byte">Byte</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_kilobyte">KB</string>
<string name="memory_megabyte">MB</string>
<string name="memory_gigabyte">GB</string>
@ -352,9 +449,13 @@
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_landscape">Landscape</string>
<string name="screen_layout_portrait">Portrait</string>
<string name="screen_layout_auto">Automático</string>
<string name="screen_layout_sensor_landscape">Paisagem pelo sensor</string>
<string name="screen_layout_landscape">Landscape</string>
<string name="screen_layout_reverse_landscape">Paisagem invertida</string>
<string name="screen_layout_sensor_portrait">Retrato pelo sensor</string>
<string name="screen_layout_portrait">Portrait</string>
<string name="screen_layout_reverse_portrait">Retrato invertido</string>
<!-- Aspect Ratios -->
<string name="ratio_default">Padrão (16:9)</string>
@ -363,6 +464,10 @@
<string name="ratio_force_sixteen_ten">Forçar 16:10</string>
<string name="ratio_stretch">Esticar à janela</string>
<!-- CPU Backend -->
<string name="cpu_backend_dynarmic">Dynarmic (Lento)</string>
<string name="cpu_backend_nce">Native code execution (NCE)</string>
<!-- CPU Accuracy -->
<string name="cpu_accuracy_accurate">Preciso</string>
<string name="cpu_accuracy_unsafe">Inseguro</string>
@ -391,8 +496,15 @@
<string name="theme_mode_dark">Escuro</string>
<!-- Audio output engines -->
<string name="oboe">oboe</string>
<string name="cubeb">cubeb</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">Plano de fundo preto</string>
<string name="use_black_backgrounds_description">Quando usar tema escuro, aplicar fundos escuros</string>

View File

@ -34,6 +34,7 @@
<string name="empty_gamelist">Не найдены файлы или еще не выбрана папка с играми.</string>
<string name="search_and_filter_games">Поиск и фильтрация игр</string>
<string name="select_games_folder">Выберите папку с играми</string>
<string name="manage_game_folders">Управление папками</string>
<string name="select_games_folder_description">Позволяет yuzu заполнить список игр</string>
<string name="add_games_warning">Пропустить выбор папки с играми?</string>
<string name="add_games_warning_description">Игры не будут отображаться в списке Игры, если папка не выбрана.</string>
@ -68,6 +69,7 @@
<string name="invalid_keys_error">Неверные ключи шифрования</string>
<string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string>
<string name="install_keys_failure_description">Выбранный файл неверен или поврежден. Пожалуйста, пере-дампите ваши ключи.</string>
<string name="gpu_driver_manager">Менеджер драйверов ГП</string>
<string name="install_gpu_driver">Установить драйвер ГП</string>
<string name="install_gpu_driver_description">Установите альтернативные драйверы для потенциально лучшей производительности и/или точности</string>
<string name="advanced_settings">Расширенные настройки</string>
@ -85,7 +87,11 @@
<string name="notification_no_directory_link_description">Пожалуйста, найдите папку пользователя с помощью боковой панели файлового менеджера вручную.</string>
<string name="manage_save_data">Управление данными сохранений</string>
<string name="manage_save_data_description">Найдено данные сохранений. Пожалуйста, выберите вариант ниже.</string>
<string name="import_save_warning">Импортировать сохранения</string>
<string name="import_save_warning_description">Это перезапишет все существующие данные сохранения выбранным файлом. Вы уверены, что хотите продолжить?</string>
<string name="import_export_saves_description">Импорт или экспорт файлов сохранения</string>
<string name="save_files_importing">Импорт файлов сохранения…</string>
<string name="save_files_exporting">Экспорт файлов сохранения…</string>
<string name="save_file_imported_success">Успешно импортировано</string>
<string name="save_file_invalid_zip_structure">Недопустимая структура папки сохранения</string>
<string name="save_file_invalid_zip_structure_description">Название первой вложенной папки должно быть идентификатором игры.</string>
@ -119,6 +125,42 @@
<string name="manage_yuzu_data_description">Импортируйте/экспортируйте прошивку, ключи, пользовательские данные и многое другое!</string>
<string name="share_save_file">Поделиться файлом сохранения</string>
<string name="export_save_failed">Не удалось экспортировать сохранение</string>
<string name="game_folders">Папки с играми</string>
<string name="deep_scan">Глубокий анализ</string>
<string name="add_game_folder">Добавить папку с игрой</string>
<string name="folder_already_added">Эта папка уже была добавлена!</string>
<string name="game_folder_properties">Свойства папки игры</string>
<plurals name="saves_import_failed">
<item quantity="one">Не удалось импортировать %d сохранение</item>
<item quantity="few">Не удалось импортировать %d сохранения</item>
<item quantity="many">Не удалось импортировать %d сохранений</item>
<item quantity="other">Не удалось импортировать %d сохранений</item>
</plurals>
<plurals name="saves_import_success">
<item quantity="one">Импортировано %d сохранение</item>
<item quantity="few">Импортировано %d сохранения</item>
<item quantity="many">Импортировано %d сохранений</item>
<item quantity="other">Импортировано %d сохранений</item>
</plurals>
<string name="no_save_data_found">Не найдены сохраненмия</string>
<!-- Applet launcher strings -->
<string name="applets">Запуск апплета</string>
<string name="applets_description">Запуск системных апплетов на установленной прошивке</string>
<string name="applets_error_firmware">Прошивка не установлена</string>
<string name="applets_error_applet">Апплет недоступен</string>
<string name="applets_error_description"><![CDATA[Пожалуйста, убедитесь, что ваш<a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> и <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-system-firmware\">firmware</a> установлены и попробуйте еще раз.]]></string>
<string name="album_applet">Альбом</string>
<string name="album_applet_description">Просмотрите изображения, сохраненные в папке скриншотов пользователя, с помощью системного просмотрщика фотографий.</string>
<string name="mii_edit_applet">Mii редактор</string>
<string name="mii_edit_applet_description">Просмотр и редактирование Mii с помощью системного редактора</string>
<string name="cabinet_applet">Шкаф</string>
<string name="cabinet_applet_description">Редактирование и удаление данных, хранящихся на amiibo</string>
<string name="cabinet_launcher">Запуск шкафа</string>
<string name="cabinet_nickname_and_owner">Никнейм и настройки владельца</string>
<string name="cabinet_game_data_eraser">Удаление игровых данных</string>
<string name="cabinet_restorer">Восстановитель</string>
<string name="cabinet_formatter">Форматтер</string>
<!-- About screen strings -->
<string name="gaia_is_not_real">Gaia не существует</string>
@ -162,6 +204,7 @@
<string name="frame_limit_enable_description">Ограничивает скорость эмуляции указанным процентом от нормальной скорости.</string>
<string name="frame_limit_slider">Ограничение процента cкорости</string>
<string name="frame_limit_slider_description">Указывает процент ограничения скорости эмуляции. 100% - это нормальная скорость. Значения больше или меньше увеличивают или уменьшают ограничение скорости.</string>
<string name="cpu_backend">Бэкэнд ЦП</string>
<string name="cpu_accuracy">Точность ЦП</string>
<string name="value_with_units">%1$s%2$s</string>
@ -192,6 +235,8 @@
<string name="renderer_reactive_flushing_description">Повышение точности рендеринга в некоторых играх за счет снижения производительности.</string>
<string name="use_disk_shader_cache">Кэш шейдеров на диске</string>
<string name="use_disk_shader_cache_description">Уменьшение зависаний за счет хранения и загрузки сгенерированных шейдеров.</string>
<string name="anisotropic_filtering">Анизотропная фильтрация</string>
<string name="anisotropic_filtering_description">Улучшает качество текстур под углом</string>
<!-- Debug settings strings -->
<string name="cpu">ЦП</string>
@ -203,6 +248,8 @@
<string name="renderer_debug_description">Переводит графический API в режим медленной отладки.</string>
<string name="fastmem">Fastmem</string>
<!-- Audio settings strings -->
<string name="audio_output_engine">Движок вывода</string>
<string name="audio_volume">Громкость</string>
<string name="audio_volume_description">Задает громкость аудиовыхода.</string>
@ -216,6 +263,7 @@
<string name="shutting_down">Выключение…</string>
<string name="reset_setting_confirmation">Хотите ли вы вернуть этот параметр к значению по умолчанию?</string>
<string name="reset_to_default">Сброс к настройкам по умолчанию</string>
<string name="reset_to_default_description">Сбросить все расширенные настройки</string>
<string name="reset_all_settings">Сбросить все настройки?</string>
<string name="reset_all_settings_description">Все дополнительные настройки будут сброшены к настройке по умолчанию. Это невозможно отменить.</string>
<string name="settings_reset">Настройки сброшены</string>
@ -229,14 +277,24 @@
<string name="export_failed">Ошибка экспорта</string>
<string name="import_failed">Ошибка импортирования</string>
<string name="cancelling">Отменяю</string>
<string name="install">Установить</string>
<string name="delete">Удалить</string>
<string name="edit">Редактировать</string>
<string name="export_success">Экспорт успешно выполнен</string>
<string name="start">Start</string>
<string name="clear">Очистить</string>
<string name="global">Глобальный</string>
<string name="custom">Другое</string>
<string name="notice">Уведомление</string>
<string name="import_complete">Импорт завершен</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">Выбрать драйвер ГП</string>
<string name="select_gpu_driver_title">Хотите заменить текущий драйвер ГП?</string>
<string name="select_gpu_driver_install">Установить</string>
<string name="select_gpu_driver_default">По умолчанию</string>
<string name="select_gpu_driver_use_default">Используется стандартный драйвер ГП </string>
<string name="select_gpu_driver_error">Выбран неверный драйвер, используется стандартный системный!</string>
<string name="select_gpu_driver_error">Выбран неподходящий драйвер</string>
<string name="driver_already_installed">Драйвер уже установлен</string>
<string name="system_gpu_driver">Системный драйвер ГП</string>
<string name="installing_driver">Установка драйвера...</string>
@ -244,11 +302,52 @@
<string name="preferences_settings">Настройки</string>
<string name="preferences_general">Общие</string>
<string name="preferences_system">Система</string>
<string name="preferences_system_description">Режим дока, регион, язык</string>
<string name="preferences_graphics">Графика</string>
<string name="preferences_graphics_description">Уровень точности, разрешение, кэш шейдеров</string>
<string name="preferences_audio">Аудио</string>
<string name="preferences_audio_description">Движок вывода, громкость</string>
<string name="preferences_theme">Тема и цвет</string>
<string name="preferences_debug">Отладка</string>
<string name="preferences_debug_description">Отладка ЦП/ГП, графический API, fastmem</string>
<!-- Game properties -->
<string name="info">Информация</string>
<string name="info_description">ID программы, для разработчиков, версия</string>
<string name="per_game_settings">Настройки для каждой игры</string>
<string name="per_game_settings_description">Изменить настройки этой игры</string>
<string name="launch_options">Конфигурация запуска</string>
<string name="path">Путь</string>
<string name="program_id">ID программы</string>
<string name="developer">Разработчик</string>
<string name="version">Версия</string>
<string name="copy_details">Копировать детали</string>
<string name="add_ons">Дополнения</string>
<string name="add_ons_description">Включение модов, обновлений и DLC</string>
<string name="clear_shader_cache">Очистить кэш шейдеров</string>
<string name="clear_shader_cache_description">Удаляет все шейдеры, созданные во время игры.</string>
<string name="clear_shader_cache_warning_description">У вас будет больше лагов во время повторной генерации кэша шейдеров</string>
<string name="cleared_shaders_successfully">Успешно очищены шейдеры</string>
<string name="addons_game">Аддоны: %1$s</string>
<string name="save_data">Сохранить данные</string>
<string name="save_data_description">Управлять сохранениями этой игры.</string>
<string name="delete_save_data">Удалить сохранения</string>
<string name="delete_save_data_description">Удалить все сохранения этой игры</string>
<string name="delete_save_data_warning_description">Это безвозвратно удаляет все сохраненные данные этой игры. Вы уверены, что хотите продолжить?</string>
<string name="save_data_deleted_successfully">Данные успешно удалены</string>
<string name="select_content_type">Тип контента</string>
<string name="updates_and_dlc">Обновления и DLC</string>
<string name="mods_and_cheats">Моды и читы</string>
<string name="addon_notice">Важное уведомление о дополнении</string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="addon_notice_description">Для установки модов и читов необходимо выбрать папку, содержащую каталог cheats/, romfs/ или exefs/. Мы не можем гарантировать их совместимость с вашей игрой, поэтому будьте осторожны!</string>
<string name="invalid_directory">Неверный каталог</string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="invalid_directory_description">Пожалуйста, убедитесь, что выбранная вами директория содержит папку cheats/, romfs/ или exefs/ и попробуйте снова.</string>
<string name="addon_installed_successfully">Аддон успешно установлен</string>
<string name="verifying_content">Проверка содержимого...</string>
<string name="content_install_notice">Уведомление об установке контента</string>
<string name="content_install_notice_description">Содержимое, которое вы выбрали, не соответствует этой игре.\nУстановить все равно?</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">Ваш ROM зашифрованный</string>
<string name="loader_error_encrypted_roms_description"><![CDATA[Следуйте инструкциям, чтобы пере-дампить игровые картриджи <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-physical-titles-game-cards\"> или <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-digital-titles-eshop\"> установленные игры</a>.]]></string>
@ -276,6 +375,7 @@
<string name="emulation_pause">Пауза эмуляции</string>
<string name="emulation_unpause">Возобновить эмуляцию</string>
<string name="emulation_input_overlay">Настройка оверлея</string>
<string name="touchscreen">Сенсорный экран</string>
<string name="load_settings">Загрузка настроек...</string>
@ -307,6 +407,7 @@
<!-- Memory Sizes -->
<string name="memory_byte">Байт</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_kilobyte">КБ</string>
<string name="memory_megabyte">МБ</string>
<string name="memory_gigabyte">GB</string>
@ -351,9 +452,13 @@
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_landscape">Пейзаж</string>
<string name="screen_layout_portrait">Портрет</string>
<string name="screen_layout_auto">Авто</string>
<string name="screen_layout_sensor_landscape">Альбомная (сенсор)</string>
<string name="screen_layout_landscape">Пейзаж</string>
<string name="screen_layout_reverse_landscape">Обратная альбомная</string>
<string name="screen_layout_sensor_portrait">Портретная (сенсор)</string>
<string name="screen_layout_portrait">Портрет</string>
<string name="screen_layout_reverse_portrait">Обратная портретная</string>
<!-- Aspect Ratios -->
<string name="ratio_default">Стандартное (16:9)</string>
@ -362,6 +467,10 @@
<string name="ratio_force_sixteen_ten">Заставить 16:10</string>
<string name="ratio_stretch">Растянуть до окна</string>
<!-- CPU Backend -->
<string name="cpu_backend_dynarmic">Dynarmic (Медленно)</string>
<string name="cpu_backend_nce">Нативное выполнение (NCE)</string>
<!-- CPU Accuracy -->
<string name="cpu_accuracy_accurate">Точно</string>
<string name="cpu_accuracy_unsafe">Небезопасно</string>
@ -390,8 +499,15 @@
<string name="theme_mode_dark">Темная</string>
<!-- Audio output engines -->
<string name="oboe">oboe</string>
<string name="cubeb">cubeb</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">Чёрный фон</string>
<string name="use_black_backgrounds_description">При использовании темной темы применяйте черный фон.</string>

View File

@ -143,13 +143,16 @@
<string name="string_null">Null</string>
<string name="string_import">Імпорт</string>
<string name="export">Експорт</string>
<string name="install">Встановити</string>
<string name="delete">Видалити</string>
<string name="start">Start</string>
<string name="clear">Очистити</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">Вибрати драйвер ГП</string>
<string name="select_gpu_driver_title">Хочете замінити поточний драйвер ГП?</string>
<string name="select_gpu_driver_install">Встановити</string>
<string name="select_gpu_driver_default">За замовчуванням</string>
<string name="select_gpu_driver_use_default">Використовується стандартний драйвер ГП</string>
<string name="select_gpu_driver_error">Обрано неправильний драйвер, використовується стандартний системний!</string>
<string name="system_gpu_driver">Системний драйвер ГП</string>
<string name="installing_driver">Встановлення драйвера...</string>
@ -161,7 +164,12 @@
<string name="preferences_audio">Аудіо</string>
<string name="preferences_theme">Тема і колір</string>
<string name="preferences_debug">Налагодження</string>
<!-- Game properties -->
<string name="info">Інформація</string>
<string name="path">Шлях</string>
<string name="developer">Розробник</string>
<string name="version">Версія</string>
<string name="add_ons">Доповнення</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">Ваш ROM зашифрований</string>
<string name="loader_error_encrypted_keys_description"><![CDATA[Будь ласка, переконайтеся, що ваш файл <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> встановлено, щоб ігри можна було розшифрувати.]]></string>
@ -173,6 +181,8 @@
<string name="emulation_done">Готово</string>
<string name="emulation_control_scale">Масштаб</string>
<string name="emulation_control_opacity">Непрозорість</string>
<string name="touchscreen">Сенсорний екран</string>
<!-- Errors and warnings -->
<string name="abort_button">Перервати</string>
<string name="continue_button">Продовжити</string>
@ -192,6 +202,7 @@
<string name="region_korea">Корея</string>
<string name="region_taiwan">Тайвань</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_gigabyte">GB</string>
<!-- Renderer APIs -->
<string name="renderer_vulkan">Vulkan</string>
@ -229,8 +240,8 @@
<string name="anti_aliasing_fxaa">FXAA</string>
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_auto">Авто</string>
<!-- Aspect Ratios -->
<string name="ratio_default">За замовчуванням (16:9)</string>
<string name="ratio_force_four_three">Змусити 4:3</string>
@ -255,6 +266,12 @@
<string name="theme_mode_light">Світла</string>
<string name="theme_mode_dark">Темна</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<string name="use_black_backgrounds_description">У разі використання темної теми застосовуйте чорне тло.</string>
<string name="mute">Вимкнути звук</string>

View File

@ -157,7 +157,6 @@
<string name="renderer_reactive_flushing_description">Cải thiện độ chính xác kết xuất trong một số game nhưng đồng thời giảm hiệu suất.</string>
<string name="use_disk_shader_cache">Lưu bộ nhớ đệm shader trên ổ cứng</string>
<string name="use_disk_shader_cache_description">Giảm tình trạng giật lag bằng cách lưu trữ và tải các shader được tạo ra nội bộ.</string>
<!-- Debug settings strings -->
<string name="cpu">CPU</string>
<string name="renderer_api">API</string>
@ -184,13 +183,17 @@
<string name="string_null">Null</string>
<string name="string_import">Nhập</string>
<string name="export">Xuất</string>
<string name="install">Cài đặt</string>
<string name="delete">Xoá</string>
<string name="start">Bắt đầu</string>
<string name="clear">Xóa</string>
<string name="custom">Tùy chỉnh</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">Chọn driver GPU</string>
<string name="select_gpu_driver_title">Bạn có muốn thay thế driver GPU hiện tại không?</string>
<string name="select_gpu_driver_install">Cài đặt</string>
<string name="select_gpu_driver_default">Mặc định</string>
<string name="select_gpu_driver_use_default">Dùng driver GPU mặc định</string>
<string name="select_gpu_driver_error">Driver không hợp lệ đã được chọn, dùng mặc định hệ thống!</string>
<string name="system_gpu_driver">Driver GPU hệ thống</string>
<string name="installing_driver">Đang cài đặt driver...</string>
@ -202,7 +205,12 @@
<string name="preferences_audio">Âm thanh</string>
<string name="preferences_theme">Chủ đề và màu sắc</string>
<string name="preferences_debug">Gỡ lỗi</string>
<!-- Game properties -->
<string name="info">Thông tin</string>
<string name="path">Đường dẫn</string>
<string name="developer">Nhà phát triển</string>
<string name="version">Phiên bản</string>
<string name="add_ons">Add-ons</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">ROM của bạn đã bị mã hoá</string>
<string name="loader_error_encrypted_keys_description"><![CDATA[Vui lòng đảm bảo tệp <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> đã được cài đặt để các game có thể được giải mã.]]></string>
@ -229,6 +237,7 @@
<string name="emulation_pause">Tạm đừng giả lập</string>
<string name="emulation_unpause">Tiếp tục giả lập</string>
<string name="emulation_input_overlay">Tuỳ chọn lớp phủ</string>
<string name="touchscreen">Màn hình cảm ứng</string>
<string name="load_settings">Đang tải cài đặt...</string>
@ -254,6 +263,7 @@
<string name="region_korea">Hàn Quốc</string>
<string name="region_taiwan">Đài Loan</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_gigabyte">GB</string>
<!-- Renderer APIs -->
<string name="renderer_vulkan">Vulkan</string>
@ -291,8 +301,8 @@
<string name="anti_aliasing_fxaa">FXAA</string>
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_auto">Tự động</string>
<!-- Aspect Ratios -->
<string name="ratio_default">Mặc định (16:9)</string>
<string name="ratio_force_four_three">Dùng 4:3</string>
@ -327,6 +337,12 @@
<string name="theme_mode_light">Sáng</string>
<string name="theme_mode_dark">Tối</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">Nền đen</string>
<string name="use_black_backgrounds_description">Khi sử dụng chủ đề tối, hãy áp dụng nền đen.</string>

View File

@ -34,6 +34,7 @@
<string name="empty_gamelist">找不到游戏,或者尚未选择游戏文件夹。</string>
<string name="search_and_filter_games">搜索游戏</string>
<string name="select_games_folder">选择游戏文件夹</string>
<string name="manage_game_folders">管理游戏文件夹</string>
<string name="select_games_folder_description">允许 yuzu 填充游戏列表</string>
<string name="add_games_warning">跳过选择游戏文件夹?</string>
<string name="add_games_warning_description">如果未选择游戏文件夹,游戏将不会显示在游戏列表中。</string>
@ -68,6 +69,7 @@
<string name="invalid_keys_error">无效的加密密钥</string>
<string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string>
<string name="install_keys_failure_description">选择的密钥文件不正确或已损坏。请重新转储密钥文件。</string>
<string name="gpu_driver_manager">GPU 驱动管理器</string>
<string name="install_gpu_driver">安装 GPU 驱动</string>
<string name="install_gpu_driver_description">安装替代的驱动程序以获得更好的性能和精度</string>
<string name="advanced_settings">高级选项</string>
@ -85,8 +87,12 @@
<string name="notification_no_directory_link_description">请使用文件管理器的侧部面板手动定位用户文件夹。</string>
<string name="manage_save_data">管理存档数据</string>
<string name="manage_save_data_description">已找到存档数据,请选择下方的选项。</string>
<string name="import_save_warning">导入保存数据</string>
<string name="import_save_warning_description">这将用您所提供的保存数据覆盖当前所有的保存数据。您确定要继续吗?</string>
<string name="import_export_saves_description">导入或导出存档</string>
<string name="save_file_imported_success">已成功导入存档</string>
<string name="save_files_importing">正在导入存档文件...</string>
<string name="save_files_exporting">正在导出存档文件...</string>
<string name="save_file_imported_success">导入成功</string>
<string name="save_file_invalid_zip_structure">无效的存档目录</string>
<string name="save_file_invalid_zip_structure_description">第一个子文件夹名称必须为当前游戏的 ID。</string>
<string name="import_saves">导入</string>
@ -118,13 +124,43 @@
<string name="manage_yuzu_data_description">导入/导出固件、密钥、用户数据及其他。</string>
<string name="share_save_file">分享存档文件</string>
<string name="export_save_failed">导出存档文件失败</string>
<string name="game_folders">游戏文件夹</string>
<string name="deep_scan">深度扫描</string>
<string name="add_game_folder">添加游戏文件夹</string>
<string name="folder_already_added">这个文件夹先前已被添加!</string>
<string name="game_folder_properties">游戏文件夹属性</string>
<plurals name="saves_import_failed">
<item quantity="other">%d 个存档导入失败</item>
</plurals>
<plurals name="saves_import_success">
<item quantity="other">成功导入 %d 个存档</item>
</plurals>
<string name="no_save_data_found">未找到存档数据</string>
<!-- Applet launcher strings -->
<string name="applets">小程序启动器</string>
<string name="applets_description">使用已安装的固件启动系统小程序</string>
<string name="applets_error_firmware">未安装固件</string>
<string name="applets_error_applet">小程序不可用</string>
<string name="applets_error_description"><![CDATA[请确保 <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> 文件和<a href=\"https://yuzu-emu.org/help/quickstart/#dumping-system-firmware\">固件</a>已安装,然后再试一次。]]></string>
<string name="album_applet">相册</string>
<string name="album_applet_description">查看存储在用户屏幕截图文件夹中的图像</string>
<string name="mii_edit_applet">Mii edit</string>
<string name="mii_edit_applet_description">查看和编辑 Mii</string>
<string name="cabinet_applet">Cabinet</string>
<string name="cabinet_applet_description">编辑、删除存储在 amiibo 上的数据</string>
<string name="cabinet_launcher">Cabinet 启动器</string>
<string name="cabinet_nickname_and_owner">昵称和所有者设置</string>
<string name="cabinet_game_data_eraser">游戏数据擦除器</string>
<string name="cabinet_restorer">恢复器</string>
<string name="cabinet_formatter">格式化程序</string>
<!-- About screen strings -->
<string name="gaia_is_not_real">Gaia 不真实</string>
<string name="copied_to_clipboard">已复制到剪贴板</string>
<string name="about_app_description">一款开放源代码的 Switch 模拟器</string>
<string name="contributors">贡献者</string>
<string name="contributors_description">使用来自 yuzu 团队的 \u2764 制作</string>
<string name="contributors_description">yuzu 团队的 \u2764 制作</string>
<string name="contributors_link">https://github.com/yuzu-emu/yuzu/graphs/contributors</string>
<string name="licenses_description">Android 版 yuzu 离不开这些项目的支持</string>
<string name="build">构建版本</string>
@ -161,6 +197,7 @@
<string name="frame_limit_enable_description">将运行速度限制为正常速度的指定百分比。</string>
<string name="frame_limit_slider">限制速度百分比</string>
<string name="frame_limit_slider_description">指定限制运行速度的百分比。100% 为正常速度。更高或更低的值将增加或降低速度限制上限。</string>
<string name="cpu_backend">CPU 后端</string>
<string name="cpu_accuracy">CPU 精度</string>
<string name="value_with_units">%1$s%2$s</string>
@ -191,6 +228,8 @@
<string name="renderer_reactive_flushing_description">牺牲性能,提高某些游戏的渲染精度。</string>
<string name="use_disk_shader_cache">磁盘着色器缓存</string>
<string name="use_disk_shader_cache_description">将生成的着色器缓存于磁盘中并进行读取,以减少卡顿。</string>
<string name="anisotropic_filtering">各向异性过滤</string>
<string name="anisotropic_filtering_description">提高斜角的纹理质量</string>
<!-- Debug settings strings -->
<string name="cpu">CPU</string>
@ -217,6 +256,7 @@
<string name="shutting_down">正在关闭…</string>
<string name="reset_setting_confirmation">您要将此设定重设为默认值吗?</string>
<string name="reset_to_default">恢复默认</string>
<string name="reset_to_default_description">重置所有高级选项</string>
<string name="reset_all_settings">重置所有设置项?</string>
<string name="reset_all_settings_description">所有高级选项都将被重设,此动作无法还原。</string>
<string name="settings_reset">重设设置项</string>
@ -230,6 +270,18 @@
<string name="export_failed">导出失败</string>
<string name="import_failed">导入失败</string>
<string name="cancelling">取消中</string>
<string name="install">安装</string>
<string name="delete">删除</string>
<string name="edit">编辑</string>
<string name="export_success">导出成功</string>
<string name="start">开始</string>
<string name="clear">清除</string>
<string name="global">全局</string>
<string name="custom">自定义</string>
<string name="notice">提醒</string>
<string name="import_complete">导入完成</string>
<string name="more_options">更多选项</string>
<string name="use_global_setting">使用全局设置</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">选择 GPU 驱动程序</string>
@ -237,7 +289,8 @@
<string name="select_gpu_driver_install">安装</string>
<string name="select_gpu_driver_default">系统默认</string>
<string name="select_gpu_driver_use_default">使用默认 GPU 驱动程序</string>
<string name="select_gpu_driver_error">选择的驱动程序无效,将使用系统默认的驱动程序!</string>
<string name="select_gpu_driver_error">选择的驱动无效</string>
<string name="driver_already_installed">驱动已安装</string>
<string name="system_gpu_driver">系统 GPU 驱动程序</string>
<string name="installing_driver">正在安装驱动程序…</string>
@ -245,10 +298,54 @@
<string name="preferences_settings">设置</string>
<string name="preferences_general">通用</string>
<string name="preferences_system">系统</string>
<string name="preferences_system_description">主机运行模式、区域及语言</string>
<string name="preferences_graphics">图形</string>
<string name="preferences_graphics_description">精度等级、分辨率及着色器缓存</string>
<string name="preferences_audio">声音</string>
<string name="preferences_audio_description">输出引擎及音量</string>
<string name="preferences_theme">主题和色彩</string>
<string name="preferences_debug">调试</string>
<string name="preferences_debug_description">CPU/GPU 调试、图形 API 及 fastmem 内存访问</string>
<!-- Game properties -->
<string name="info">信息</string>
<string name="info_description">游戏 ID、开发者及版本信息</string>
<string name="per_game_settings">游戏单独设置</string>
<string name="per_game_settings_description">编辑此游戏的单独设置项</string>
<string name="launch_options">载入配置</string>
<string name="path">路径</string>
<string name="program_id">游戏 ID</string>
<string name="developer">开发商</string>
<string name="version">版本</string>
<string name="copy_details">复制明细</string>
<string name="add_ons">附加项</string>
<string name="add_ons_description">管理 mod、游戏更新及 DLC</string>
<string name="clear_shader_cache">清除着色器缓存</string>
<string name="clear_shader_cache_description">删除此游戏的所有着色器缓存</string>
<string name="clear_shader_cache_warning_description">由于着色器缓存的重新生成,您将遭遇更多卡顿</string>
<string name="cleared_shaders_successfully">着色器缓存清除成功</string>
<string name="addons_game">附加项: %1$s</string>
<string name="save_data">保存数据</string>
<string name="save_data_description">管理此游戏的保存数据</string>
<string name="delete_save_data">删除保存数据</string>
<string name="delete_save_data_description">删除此游戏的所有保存数据</string>
<string name="delete_save_data_warning_description">这将删除此游戏的所有保存数据且不可撤销。您确定要继续吗?</string>
<string name="save_data_deleted_successfully">保存数据删除成功</string>
<string name="select_content_type">内容类型</string>
<string name="updates_and_dlc">游戏更新和 DLC</string>
<string name="mods_and_cheats">Mod 和金手指</string>
<string name="addon_notice">附加项重要提醒</string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="addon_notice_description">为了安装 mod 和金手指,您必须选择一个包含 cheats/、romfs/ 或 exefs/ 目录的文件夹。我们无法验证这些内容是否与您的游戏兼容,所以请小心使用!</string>
<string name="invalid_directory">无效目录</string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="invalid_directory_description">请确保您选择的目录下包含 cheats/、romfs/ 或 exefs/ 文件夹然后重试。</string>
<string name="addon_installed_successfully">附加项安装成功</string>
<string name="verifying_content">验证安装内容...</string>
<string name="content_install_notice">安装提醒</string>
<string name="content_install_notice_description">您选择安装的内容与此游戏不匹配。\n继续安装</string>
<string name="confirm_uninstall">卸载确认</string>
<string name="confirm_uninstall_description">您确定要卸载此附加项吗?</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">您的 ROM 已加密</string>
@ -277,6 +374,7 @@
<string name="emulation_pause">暂停模拟</string>
<string name="emulation_unpause">继续模拟</string>
<string name="emulation_input_overlay">虚拟按键选项</string>
<string name="touchscreen">触摸屏</string>
<string name="load_settings">正在载入设定…</string>
@ -308,6 +406,7 @@
<!-- Memory Sizes -->
<string name="memory_byte">Byte</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_kilobyte">KB</string>
<string name="memory_megabyte">MB</string>
<string name="memory_gigabyte">GB</string>
@ -352,9 +451,13 @@
<string name="anti_aliasing_smaa">子像素形态学抗锯齿</string>
<!-- Screen Layouts -->
<string name="screen_layout_landscape">横向大屏</string>
<string name="screen_layout_portrait">纵向屏幕</string>
<string name="screen_layout_auto">自动</string>
<string name="screen_layout_sensor_landscape">传感器方向横屏</string>
<string name="screen_layout_landscape">横屏</string>
<string name="screen_layout_reverse_landscape">反向横屏</string>
<string name="screen_layout_sensor_portrait">传感器方向竖屏</string>
<string name="screen_layout_portrait">竖屏</string>
<string name="screen_layout_reverse_portrait">反向竖屏</string>
<!-- Aspect Ratios -->
<string name="ratio_default">默认 (16:9)</string>
@ -363,6 +466,10 @@
<string name="ratio_force_sixteen_ten">强制 16:10</string>
<string name="ratio_stretch">拉伸窗口</string>
<!-- CPU Backend -->
<string name="cpu_backend_dynarmic">动态编译 (慢速)</string>
<string name="cpu_backend_nce">本机代码执行 (NCE)</string>
<!-- CPU Accuracy -->
<string name="cpu_accuracy_accurate">高精度</string>
<string name="cpu_accuracy_unsafe">低精度</string>
@ -391,8 +498,15 @@
<string name="theme_mode_dark">深色</string>
<!-- Audio output engines -->
<string name="oboe">oboe</string>
<string name="cubeb">cubeb</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">使用黑色背景</string>
<string name="use_black_backgrounds_description">使用深色主题时,套用黑色背景。</string>

View File

@ -34,12 +34,13 @@
<string name="empty_gamelist">找不到檔案,或者尚未選取遊戲目錄。</string>
<string name="search_and_filter_games">搜尋並篩選遊戲</string>
<string name="select_games_folder">選取遊戲資料夾</string>
<string name="manage_game_folders">管理遊戲資料夾</string>
<string name="select_games_folder_description">允許 yuzu 填入遊戲清單</string>
<string name="add_games_warning">跳過選取遊戲資料夾?</string>
<string name="add_games_warning_description">如果資料夾未選取,遊戲將不會顯示在遊戲清單。</string>
<string name="add_games_warning_help">https://yuzu-emu.org/help/quickstart/#dumping-games</string>
<string name="home_search_games">搜尋遊戲</string>
<string name="search_settings">索设置</string>
<string name="search_settings">尋設定</string>
<string name="games_dir_selected">遊戲目錄已選取</string>
<string name="install_prod_keys">安裝 prod.keys</string>
<string name="install_prod_keys_description">需要解密零售遊戲</string>
@ -68,10 +69,11 @@
<string name="invalid_keys_error">無效的加密金鑰</string>
<string name="dumping_keys_quickstart_link">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string>
<string name="install_keys_failure_description">選取的檔案不正確或已損毀,請重新傾印您的金鑰。</string>
<string name="gpu_driver_manager">GPU 驅動程式管理員</string>
<string name="install_gpu_driver">安裝 GPU 驅動程式</string>
<string name="install_gpu_driver_description">安裝替代驅動程式以取得潛在的更佳效能或準確度</string>
<string name="advanced_settings">進階設定</string>
<string name="advanced_settings_game">高级选项: %1$s</string>
<string name="advanced_settings_game">進階設定:%1$s</string>
<string name="settings_description">進行模擬器設定</string>
<string name="search_recently_played">最近遊玩</string>
<string name="search_recently_added">最近新增</string>
@ -85,7 +87,11 @@
<string name="notification_no_directory_link_description">請使用檔案管理員的側邊面板手動定位到使用者資料夾。</string>
<string name="manage_save_data">管理儲存資料</string>
<string name="manage_save_data_description">已找到儲存資料,請選取下方的選項。</string>
<string name="import_save_warning">匯入儲存資料</string>
<string name="import_save_warning_description">這將會以提供的檔案覆寫所有現有的儲存資料,您確定要繼續嗎?</string>
<string name="import_export_saves_description">匯入或匯出儲存檔案</string>
<string name="save_files_importing">正在匯入儲存檔案…</string>
<string name="save_files_exporting">正在匯出儲存檔案…</string>
<string name="save_file_imported_success">已成功匯入</string>
<string name="save_file_invalid_zip_structure">無效的儲存目錄結構</string>
<string name="save_file_invalid_zip_structure_description">首個子資料夾名稱必須為遊戲標題 ID。</string>
@ -96,28 +102,58 @@
<string name="firmware_installing">正在安裝韌體</string>
<string name="firmware_installed_success">韌體已成功安裝</string>
<string name="firmware_installed_failure">韌體安裝失敗</string>
<string name="firmware_installed_failure_description">请确保固件 nca 文件位于 zip 压缩包的根目,然后重试</string>
<string name="firmware_installed_failure_description">請確保韌體 nca 檔案位於 zip 壓縮檔的根目,然後再試一次</string>
<string name="share_log">分享偵錯記錄</string>
<string name="share_log_description">分享 yuzu 的記錄檔以便對相關問題進行偵錯</string>
<string name="share_log_missing">找不到記錄檔</string>
<string name="install_game_content">安裝遊戲內容</string>
<string name="install_game_content_description">安裝遊戲更新或 DLC</string>
<string name="installing_game_content">安装中...</string>
<string name="install_game_content_failure"> NAND 安装文件时失败</string>
<string name="install_game_content_failure_description">请确保附加内容的有效性,并且 prod.keys 密钥文件已安</string>
<string name="install_game_content_failure_base">避免产生冲突,此功能不能用于安装游戏本体</string>
<string name="install_game_content_failure_file_extension">只有 NSP XCI 格式的附加内容可以安装。请确保您的游戏附加内容是有效</string>
<string name="install_game_content_failed_count">%1$d 安装出错</string>
<string name="install_game_content_success">游戏附加内容已成功安</string>
<string name="install_game_content_success_install">%1$d 安成功</string>
<string name="install_game_content_success_overwrite">%1$d 覆盖安装成功</string>
<string name="installing_game_content">正在安裝內容…</string>
<string name="install_game_content_failure">安裝檔案至 NAND 時發生錯誤</string>
<string name="install_game_content_failure_description">請確保內容有效並且 prod.keys 檔案已安</string>
<string name="install_game_content_failure_base">避免可能的衝突,不允許安裝基礎遊戲</string>
<string name="install_game_content_failure_file_extension">僅支援 NSP XCI 內容,請驗證遊戲內容是有效。</string>
<string name="install_game_content_failed_count">%1$d 安裝錯誤</string>
<string name="install_game_content_success">遊戲內容已成功安</string>
<string name="install_game_content_success_install">%1$d 安成功</string>
<string name="install_game_content_success_overwrite">%1$d 覆成功</string>
<string name="install_game_content_help_link">https://yuzu-emu.org/help/quickstart/#dumping-installed-updates</string>
<string name="custom_driver_not_supported">不支持自定义驱动</string>
<string name="custom_driver_not_supported_description">设备不支持自定义驱动。\n请之后再访问此项查看是否已为此设备添加支持。</string>
<string name="manage_yuzu_data">管理 yuzu 数据</string>
<string name="manage_yuzu_data_description">入/导出固件、密钥、用户数据及其他。</string>
<string name="share_save_file">分享存档文件</string>
<string name="export_save_failed">导出存档文件失败</string>
<string name="custom_driver_not_supported">不支援自訂的驅動程式</string>
<string name="custom_driver_not_supported_description">裝置不支援自訂的驅動程式。\n請以後再來查看是否已新增支援</string>
<string name="manage_yuzu_data">管理 yuzu 資料</string>
<string name="manage_yuzu_data_description">入/匯出韌體、金鑰、使用者資料及其他項目!</string>
<string name="share_save_file">分享儲存檔案</string>
<string name="export_save_failed">無法匯出儲存檔案</string>
<string name="game_folders">遊戲資料夾</string>
<string name="deep_scan">深度掃描</string>
<string name="add_game_folder">新增遊戲資料夾</string>
<string name="folder_already_added">這個資料夾已經新增過了!</string>
<string name="game_folder_properties">遊戲資料夾屬性</string>
<plurals name="saves_import_failed">
<item quantity="other">%d 个存档导入失败</item>
</plurals>
<plurals name="saves_import_success">
<item quantity="other">成功导入 %d 个存档</item>
</plurals>
<string name="no_save_data_found">未找到存档数据</string>
<!-- Applet launcher strings -->
<string name="applets">小程式啟動器</string>
<string name="applets_description">使用已安裝的韌體啟動系統小程式</string>
<string name="applets_error_firmware">未安裝韌體</string>
<string name="applets_error_applet">無法使用小程式</string>
<string name="applets_error_description"><![CDATA[請確保您的 <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> 檔案和<a href=\"https://yuzu-emu.org/help/quickstart/#dumping-system-firmware\">韌體</a>已安裝,然後再試一次。]]></string>
<string name="album_applet">相簿</string>
<string name="album_applet_description">使用系統相片檢視器查看儲存在使用者螢幕截圖資料夾中的影像</string>
<string name="mii_edit_applet">Mii 編輯</string>
<string name="mii_edit_applet_description">使用系統編輯器來檢視並編輯 Mii</string>
<string name="cabinet_applet">Cabinet</string>
<string name="cabinet_applet_description">編輯、刪除儲存在 amiibo 上的資料</string>
<string name="cabinet_launcher">Cabinet 啟動器</string>
<string name="cabinet_nickname_and_owner">暱稱和擁有者設定</string>
<string name="cabinet_game_data_eraser">遊戲資料橡皮擦</string>
<string name="cabinet_restorer">還原程式</string>
<string name="cabinet_formatter">格式器</string>
<!-- About screen strings -->
<string name="gaia_is_not_real">Gaia 不真實</string>
@ -128,16 +164,16 @@
<string name="contributors_link">https://github.com/yuzu-emu/yuzu/graphs/contributors</string>
<string name="licenses_description">這些專案使 yuzu Android 版成為可能</string>
<string name="build">組建</string>
<string name="user_data">用户数据</string>
<string name="user_data_description">入/导出应用程序所有数据。\n\n导入用户数据时将删除当前所有的用户数据</string>
<string name="exporting_user_data">正在导出用户数据...</string>
<string name="importing_user_data">正在导入用户数据...</string>
<string name="import_user_data">导入用户数据</string>
<string name="invalid_yuzu_backup">效的 yuzu </string>
<string name="user_data_export_success">导出用户数据成功</string>
<string name="user_data_import_success">导入用户数据成功</string>
<string name="user_data_export_cancelled">已取消导出数据</string>
<string name="user_data_import_failed_description">请确保用户数据文件夹位于 zip 压缩包的根目录,并在 config/config.ini 路中包含配置文件,然后重试</string>
<string name="user_data">使用者資料</string>
<string name="user_data_description">入/匯出所有應用程式資料。\n\n匯入使用者資料時現有的使用者資料將被刪除</string>
<string name="exporting_user_data">正在匯出使用者資料…</string>
<string name="importing_user_data">正在匯入使用者資料…</string>
<string name="import_user_data">匯入使用者資料</string>
<string name="invalid_yuzu_backup">效的 yuzu </string>
<string name="user_data_export_success">使用者資料匯出成功</string>
<string name="user_data_import_success">使用者資料匯入成功</string>
<string name="user_data_export_cancelled">匯出已取消</string>
<string name="user_data_import_failed_description">請確保使用者資料夾位於 zip 壓縮檔的根目錄,並在 config/config.ini 路中包含組態檔案,並再試一次</string>
<string name="support_link">https://discord.gg/u77vRWY</string>
<string name="website_link">https://yuzu-emu.org/</string>
<string name="github_link">https://github.com/yuzu-emu</string>
@ -161,6 +197,7 @@
<string name="frame_limit_enable_description">將模擬速度限制在標準速度的指定百分比。</string>
<string name="frame_limit_slider">限制速度百分比</string>
<string name="frame_limit_slider_description">指定限制模擬速度的百分比。100% 為標準速度,更高或更低的值將會增加或減少速度限制。</string>
<string name="cpu_backend">CPU 後端</string>
<string name="cpu_accuracy">CPU 準確度</string>
<string name="value_with_units">%1$s%2$s</string>
@ -179,7 +216,7 @@
<string name="renderer_accuracy">準確度層級</string>
<string name="renderer_resolution">解析度 (手提/底座)</string>
<string name="renderer_vsync">VSync 模式</string>
<string name="renderer_screen_layout">屏幕方向</string>
<string name="renderer_screen_layout">方向</string>
<string name="renderer_aspect_ratio">長寬比</string>
<string name="renderer_scaling_filter">視窗適應過濾器</string>
<string name="renderer_anti_aliasing">消除鋸齒方法</string>
@ -191,11 +228,13 @@
<string name="renderer_reactive_flushing_description">犧牲效能,以改善部分遊戲的轉譯準確度。</string>
<string name="use_disk_shader_cache">磁碟著色器快取</string>
<string name="use_disk_shader_cache_description">透過將產生的著色器儲存並載入至磁碟,減少中斷。</string>
<string name="anisotropic_filtering">非等向性過濾</string>
<string name="anisotropic_filtering_description">改善斜角檢視時的紋理品質</string>
<!-- Debug settings strings -->
<string name="cpu">CPU</string>
<string name="cpu_debug_mode">CPU 调试</string>
<string name="cpu_debug_mode_description"> CPU 设置为较慢的调试模式。</string>
<string name="cpu_debug_mode">CPU 偵錯</string>
<string name="cpu_debug_mode_description"> CPU 設定為慢速偵錯模式。</string>
<string name="gpu">GPU</string>
<string name="renderer_api">API</string>
<string name="renderer_debug">圖形偵錯</string>
@ -203,7 +242,7 @@
<string name="fastmem">Fastmem</string>
<!-- Audio settings strings -->
<string name="audio_output_engine">出引擎</string>
<string name="audio_output_engine">出引擎</string>
<string name="audio_volume">音量</string>
<string name="audio_volume_description">指定音訊輸出音量。</string>
@ -212,11 +251,12 @@
<string name="ini_saved">已儲存設定</string>
<string name="gameid_saved">已儲存 %1$s 設定</string>
<string name="error_saving">儲存 %1$s 時發生錯誤 ini: %2$s</string>
<string name="unimplemented_menu">生效菜单</string>
<string name="unimplemented_menu">實作的選單</string>
<string name="loading">正在載入…</string>
<string name="shutting_down">正在关闭</string>
<string name="shutting_down">正在關閉</string>
<string name="reset_setting_confirmation">要將此設定重設回預設值嗎?</string>
<string name="reset_to_default">重設為預設值</string>
<string name="reset_to_default_description">重設所有進階設定</string>
<string name="reset_all_settings">重設所有設定?</string>
<string name="reset_all_settings_description">所有進階設定將被重設為預設組態,此動作無法復原。</string>
<string name="settings_reset">設定已重設</string>
@ -227,9 +267,21 @@
<string name="string_null"></string>
<string name="string_import">匯入</string>
<string name="export">匯出</string>
<string name="export_failed">出失</string>
<string name="import_failed">入失</string>
<string name="cancelling">取消</string>
<string name="export_failed">出失</string>
<string name="import_failed">入失</string>
<string name="cancelling">正在取消</string>
<string name="install">安裝</string>
<string name="delete">刪除</string>
<string name="edit">編輯</string>
<string name="export_success">已成功匯出</string>
<string name="start">開始</string>
<string name="clear">清除</string>
<string name="global">全域</string>
<string name="custom">自定义</string>
<string name="notice">通知</string>
<string name="import_complete">导入完成</string>
<string name="more_options">更多选项</string>
<string name="use_global_setting">使用全局设置</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">選取 GPU 驅動程式</string>
@ -237,7 +289,8 @@
<string name="select_gpu_driver_install">安裝</string>
<string name="select_gpu_driver_default">預設</string>
<string name="select_gpu_driver_use_default">使用預設 GPU 驅動程式</string>
<string name="select_gpu_driver_error">選取的驅動程式無效,將使用系統預設驅動程式!</string>
<string name="select_gpu_driver_error">選取的驅動程式無效</string>
<string name="driver_already_installed">驅動程式已安裝</string>
<string name="system_gpu_driver">系統 GPU 驅動程式</string>
<string name="installing_driver">正在安裝驅動程式…</string>
@ -245,14 +298,58 @@
<string name="preferences_settings">設定</string>
<string name="preferences_general">一般</string>
<string name="preferences_system">系統</string>
<string name="preferences_system_description">底座模式、區域及語言</string>
<string name="preferences_graphics">圖形</string>
<string name="preferences_graphics_description">準確度層級、解析度及著色器快取</string>
<string name="preferences_audio">音訊</string>
<string name="preferences_audio_description">輸出引擎及音量</string>
<string name="preferences_theme">主題和色彩</string>
<string name="preferences_debug">偵錯</string>
<string name="preferences_debug_description">CPU/GPU 偵錯、圖形 API 及 fastmem</string>
<!-- Game properties -->
<string name="info">資訊</string>
<string name="info_description">程式 ID、開發人員及版本資訊</string>
<string name="per_game_settings">個別遊戲設定</string>
<string name="per_game_settings_description">編輯此遊戲的特定設定</string>
<string name="launch_options">啟動組態</string>
<string name="path">路徑</string>
<string name="program_id">程式 ID</string>
<string name="developer">出版商</string>
<string name="version">版本</string>
<string name="copy_details">複製詳細資料</string>
<string name="add_ons">延伸模組</string>
<string name="add_ons_description">切換模組、更新及 DLC</string>
<string name="clear_shader_cache">清除著色器快取</string>
<string name="clear_shader_cache_description">遊玩此遊戲時移除所有著色器組建</string>
<string name="clear_shader_cache_warning_description">由於著色器快取的重新產生,您可能會感到不太順暢</string>
<string name="cleared_shaders_successfully">著色器快取已成功清除</string>
<string name="addons_game">附加元件:%1$s</string>
<string name="save_data">儲存資料</string>
<string name="save_data_description">管理此遊戲特定的儲存資料</string>
<string name="delete_save_data">刪除儲存資料</string>
<string name="delete_save_data_description">移除此遊戲特定的所有儲存資料</string>
<string name="delete_save_data_warning_description">這將會移除此遊戲的所有儲存資料,且無法復原,您確定要繼續嗎?</string>
<string name="save_data_deleted_successfully">儲存資料已成功刪除</string>
<string name="select_content_type">內容類型</string>
<string name="updates_and_dlc">更新及 DLC</string>
<string name="mods_and_cheats">模組及密技</string>
<string name="addon_notice">重要的˙附加元件通知</string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="addon_notice_description">若要安裝模組及密技,您必須選取一個包含 cheats/、romfs/ 或 exefs/ 的目錄。我們無法驗證這些內容是否與您的遊戲相容,所以請小心作業!</string>
<string name="invalid_directory">無效的目錄</string>
<!-- "cheats/" "romfs/" and "exefs/ should not be translated -->
<string name="invalid_directory_description">請確保您選取的目錄包含 cheats/、romfs/ 或 exefs/ 資料夾,然後再試一次。</string>
<string name="addon_installed_successfully">附加元件已成功安裝</string>
<string name="verifying_content">正在驗證內容…</string>
<string name="content_install_notice">內容安裝通知</string>
<string name="content_install_notice_description">您選取的內容與此遊戲不相符。\n仍要繼續安裝嗎</string>
<string name="confirm_uninstall">确认卸载</string>
<string name="confirm_uninstall_description">您确定要卸载此附加项吗?</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">您的 ROM 已加密</string>
<string name="loader_error_encrypted_roms_description"><![CDATA[请按照指南重新转储您的<a href=\"https://yuzu-emu.org/help/quickstart/#dumping-physical-titles-game-cards\">游戏卡带</a>或<a href=\"https://yuzu-emu.org/help/quickstart/#dumping-digital-titles-eshop\">已安装的游戏</a>。]]></string>
<string name="loader_error_encrypted_roms_description"><![CDATA[請依循指南重新傾印您的<a href=\"https://yuzu-emu.org/help/quickstart/#dumping-physical-titles-game-cards\">遊戲卡匣</a>或<a href=\"https://yuzu-emu.org/help/quickstart/#dumping-digital-titles-eshop\">已安裝的遊戲</a>。]]></string>
<string name="loader_error_encrypted_keys_description"><![CDATA[請確保您的 <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> 檔案已安裝,讓遊戲可以解密。]]></string>
<string name="loader_error_video_core">初始化視訊核心時發生錯誤</string>
<string name="loader_error_video_core_description">這經常由不相容的 GPU 驅動程式造成,安裝自訂 GPU 驅動程式可能會解決此問題。</string>
@ -277,6 +374,7 @@
<string name="emulation_pause">暫停模擬</string>
<string name="emulation_unpause">取消暫停模擬</string>
<string name="emulation_input_overlay">覆疊選項</string>
<string name="touchscreen">觸控螢幕</string>
<string name="load_settings">正在載入設定…</string>
@ -293,9 +391,9 @@
<string name="fatal_error">嚴重錯誤</string>
<string name="fatal_error_message">發生嚴重錯誤,檢查記錄以取得詳細資訊。\n繼續模擬可能會造成當機和錯誤。</string>
<string name="performance_warning">關閉此設定會顯著降低模擬效能!如需最佳體驗,建議您將此設定保持為啟用狀態。</string>
<string name="device_memory_inadequate">设备 RAM: %1$s\n推荐 RAM: %2$s</string>
<string name="device_memory_inadequate">裝置 RAM: %1$s\n建議 RAM: %2$s</string>
<string name="memory_formatted">%1$s%2$s</string>
<string name="no_game_present">当前没有可启动的游戏</string>
<string name="no_game_present">目前沒有可啟動的遊戲</string>
<!-- Region Names -->
<string name="region_japan">日本</string>
@ -308,9 +406,10 @@
<!-- Memory Sizes -->
<string name="memory_byte">Byte</string>
<string name="memory_byte_shorthand">B</string>
<string name="memory_kilobyte">KB</string>
<string name="memory_megabyte">MB</string>
<string name="memory_gigabyte">英國</string>
<string name="memory_gigabyte">GB</string>
<string name="memory_terabyte">TB</string>
<string name="memory_petabyte">PB</string>
<string name="memory_exabyte">EB</string>
@ -352,9 +451,13 @@
<string name="anti_aliasing_smaa">SMAA</string>
<!-- Screen Layouts -->
<string name="screen_layout_landscape">横向大屏</string>
<string name="screen_layout_portrait">纵向屏幕</string>
<string name="screen_layout_auto">自動</string>
<string name="screen_layout_sensor_landscape">感應器橫向螢幕</string>
<string name="screen_layout_landscape">橫向</string>
<string name="screen_layout_reverse_landscape">反轉橫向螢幕</string>
<string name="screen_layout_sensor_portrait">感應器直向螢幕</string>
<string name="screen_layout_portrait">直向</string>
<string name="screen_layout_reverse_portrait">反轉直向螢幕</string>
<!-- Aspect Ratios -->
<string name="ratio_default">預設 (16:9)</string>
@ -363,6 +466,10 @@
<string name="ratio_force_sixteen_ten">強制 16:10</string>
<string name="ratio_stretch">延展視窗</string>
<!-- CPU Backend -->
<string name="cpu_backend_dynarmic">動態 (慢)</string>
<string name="cpu_backend_nce">機器碼執行 (NCE)</string>
<!-- CPU Accuracy -->
<string name="cpu_accuracy_accurate">高精度</string>
<string name="cpu_accuracy_unsafe">低精度</string>
@ -391,17 +498,24 @@
<string name="theme_mode_dark">深色</string>
<!-- Audio output engines -->
<string name="oboe">oboe</string>
<string name="cubeb">cubeb</string>
<!-- Anisotropic filtering options -->
<string name="multiplier_two">2x</string>
<string name="multiplier_four">4x</string>
<string name="multiplier_eight">8x</string>
<string name="multiplier_sixteen">16x</string>
<!-- Black backgrounds theme -->
<string name="use_black_backgrounds">黑色背景</string>
<string name="use_black_backgrounds_description">使用深色主題時,套用黑色背景。</string>
<!-- Picture-In-Picture -->
<string name="picture_in_picture">画中画</string>
<string name="picture_in_picture_description">模拟器位于后台时最小化窗</string>
<string name="pause"></string>
<string name="play"></string>
<string name="picture_in_picture">子母畫面</string>
<string name="picture_in_picture_description">位於背景時最小化</string>
<string name="pause"></string>
<string name="play"></string>
<string name="mute">靜音</string>
<string name="unmute">取消靜音</string>

View File

@ -29,7 +29,7 @@
<item>@string/language_dutch</item>
<item>@string/language_english</item>
<item>@string/language_french</item>
<item>@string/langauge_german</item>
<item>@string/language_german</item>
<item>@string/language_italian</item>
<item>@string/language_japanese</item>
<item>@string/language_korean</item>
@ -228,10 +228,10 @@
<item>R</item>
<item>ZL</item>
<item>ZR</item>
<item>@string/gamepad_left_stick</item>
<item>@string/gamepad_right_stick</item>
<item>L3</item>
<item>R3</item>
<item>@string/gamepad_left_stick</item>
<item>@string/gamepad_right_stick</item>
<item>@string/gamepad_d_pad</item>
</string-array>

View File

@ -142,6 +142,13 @@
<item quantity="other">Successfully imported %d saves</item>
</plurals>
<string name="no_save_data_found">No save data found</string>
<string name="verify_installed_content">Verify installed content</string>
<string name="verify_installed_content_description">Checks all installed content for corruption</string>
<string name="keys_missing">Encryption keys are missing</string>
<string name="keys_missing_description">Firmware and retail games cannot be decrypted</string>
<string name="keys_missing_help">https://yuzu-emu.org/help/quickstart/#dumping-decryption-keys</string>
<string name="decryption_failed">System archive decryption failed</string>
<string name="decryption_failed_description">Encryption keys failed to decrypt firmware</string>
<!-- Applet launcher strings -->
<string name="applets">Applet launcher</string>
@ -286,6 +293,9 @@
<string name="custom">Custom</string>
<string name="notice">Notice</string>
<string name="import_complete">Import complete</string>
<string name="more_options">More options</string>
<string name="use_global_setting">Use global setting</string>
<string name="operation_completed_successfully">The operation completed successfully</string>
<!-- GPU driver installation -->
<string name="select_gpu_driver">Select GPU driver</string>
@ -348,6 +358,16 @@
<string name="verifying_content">Verifying content…</string>
<string name="content_install_notice">Content install notice</string>
<string name="content_install_notice_description">The content that you selected does not match this game.\nInstall anyway?</string>
<string name="confirm_uninstall">Confirm uninstall</string>
<string name="confirm_uninstall_description">Are you sure you want to uninstall this addon?</string>
<string name="verify_integrity">Verify integrity</string>
<string name="verifying">Verifying…</string>
<string name="verify_success">Integrity verification succeeded!</string>
<string name="verify_failure">Integrity verification failed!</string>
<string name="verify_failure_description">File contents may be corrupt</string>
<string name="verify_no_result">Integrity verification couldn\'t be performed</string>
<string name="verify_no_result_description">File contents were not checked for validity</string>
<string name="verification_failed_for">Verification failed for the following files:\n%1$s</string>
<!-- ROM loading errors -->
<string name="loader_error_encrypted">Your ROM is encrypted</string>
@ -377,6 +397,8 @@
<string name="emulation_unpause">Unpause emulation</string>
<string name="emulation_input_overlay">Overlay options</string>
<string name="touchscreen">Touchscreen</string>
<string name="lock_drawer">Lock drawer</string>
<string name="unlock_drawer">Unlock drawer</string>
<string name="load_settings">Loading settings…</string>
@ -410,7 +432,7 @@
<string name="language_japanese" translatable="false">日本語</string>
<string name="language_english" translatable="false">English</string>
<string name="language_french" translatable="false">Français</string>
<string name="langauge_german" translatable="false">Deutsch</string>
<string name="language_german" translatable="false">Deutsch</string>
<string name="language_italian" translatable="false">Italiano</string>
<string name="language_spanish" translatable="false">Español</string>
<string name="language_chinese" translatable="false">简体中文</string>

View File

@ -11,7 +11,7 @@ ADSP::ADSP(Core::System& system, Sink::Sink& sink) {
opus_decoder = std::make_unique<OpusDecoder::OpusDecoder>(system);
opus_decoder->Send(Direction::DSP, OpusDecoder::Message::Start);
if (opus_decoder->Receive(Direction::Host) != OpusDecoder::Message::StartOK) {
LOG_ERROR(Service_Audio, "OpusDeocder failed to initialize.");
LOG_ERROR(Service_Audio, "OpusDecoder failed to initialize.");
return;
}
}

View File

@ -8,8 +8,11 @@
#include "audio_core/sink/sink_stream.h"
#include "core/core.h"
#include "core/core_timing.h"
#include "core/guest_memory.h"
#include "core/memory.h"
#include "core/hle/kernel/k_process.h"
namespace AudioCore {
using namespace std::literals;
@ -25,7 +28,7 @@ DeviceSession::~DeviceSession() {
}
Result DeviceSession::Initialize(std::string_view name_, SampleFormat sample_format_,
u16 channel_count_, size_t session_id_, u32 handle_,
u16 channel_count_, size_t session_id_, Kernel::KProcess* handle_,
u64 applet_resource_user_id_, Sink::StreamType type_) {
if (stream) {
Finalize();
@ -36,6 +39,7 @@ Result DeviceSession::Initialize(std::string_view name_, SampleFormat sample_for
channel_count = channel_count_;
session_id = session_id_;
handle = handle_;
handle->Open();
applet_resource_user_id = applet_resource_user_id_;
if (type == Sink::StreamType::In) {
@ -54,6 +58,11 @@ void DeviceSession::Finalize() {
sink->CloseStream(stream);
stream = nullptr;
}
if (handle) {
handle->Close();
handle = nullptr;
}
}
void DeviceSession::Start() {
@ -91,7 +100,7 @@ void DeviceSession::AppendBuffers(std::span<const AudioBuffer> buffers) {
stream->AppendBuffer(new_buffer, tmp_samples);
} else {
Core::Memory::CpuGuestMemory<s16, Core::Memory::GuestMemoryFlags::UnsafeRead> samples(
system.ApplicationMemory(), buffer.samples, buffer.size / sizeof(s16));
handle->GetMemory(), buffer.samples, buffer.size / sizeof(s16));
stream->AppendBuffer(new_buffer, samples);
}
}
@ -100,7 +109,7 @@ void DeviceSession::AppendBuffers(std::span<const AudioBuffer> buffers) {
void DeviceSession::ReleaseBuffer(const AudioBuffer& buffer) const {
if (type == Sink::StreamType::In) {
auto samples{stream->ReleaseBuffer(buffer.size / sizeof(s16))};
system.ApplicationMemory().WriteBlockUnsafe(buffer.samples, samples.data(), buffer.size);
handle->GetMemory().WriteBlockUnsafe(buffer.samples, samples.data(), buffer.size);
}
}

View File

@ -20,6 +20,10 @@ struct EventType;
} // namespace Timing
} // namespace Core
namespace Kernel {
class KProcess;
} // namespace Kernel
namespace AudioCore {
namespace Sink {
@ -44,13 +48,13 @@ public:
* @param sample_format - Sample format for this device's output.
* @param channel_count - Number of channels for this device (2 or 6).
* @param session_id - This session's id.
* @param handle - Handle for this device session (unused).
* @param handle - Process handle for this device session.
* @param applet_resource_user_id - Applet resource user id for this device session (unused).
* @param type - Type of this stream (Render, In, Out).
* @return Result code for this call.
*/
Result Initialize(std::string_view name, SampleFormat sample_format, u16 channel_count,
size_t session_id, u32 handle, u64 applet_resource_user_id,
size_t session_id, Kernel::KProcess* handle, u64 applet_resource_user_id,
Sink::StreamType type);
/**
@ -137,8 +141,8 @@ private:
u16 channel_count{};
/// Session id of this device session
size_t session_id{};
/// Handle of this device session
u32 handle{};
/// Process handle of device memory owner
Kernel::KProcess* handle{};
/// Applet resource user id of this device session
u64 applet_resource_user_id{};
/// Total number of samples played by this device session

View File

@ -57,7 +57,7 @@ Result System::IsConfigValid(const std::string_view device_name,
}
Result System::Initialize(std::string device_name, const AudioInParameter& in_params,
const u32 handle_, const u64 applet_resource_user_id_) {
Kernel::KProcess* handle_, const u64 applet_resource_user_id_) {
auto result{IsConfigValid(device_name, in_params)};
if (result.IsError()) {
return result;

View File

@ -19,7 +19,8 @@ class System;
namespace Kernel {
class KEvent;
}
class KProcess;
} // namespace Kernel
namespace AudioCore::AudioIn {
@ -93,12 +94,12 @@ public:
*
* @param device_name - The name of the requested input device.
* @param in_params - Input parameters, see AudioInParameter.
* @param handle - Unused.
* @param handle - Process handle.
* @param applet_resource_user_id - Unused.
* @return Result code.
*/
Result Initialize(std::string device_name, const AudioInParameter& in_params, u32 handle,
u64 applet_resource_user_id);
Result Initialize(std::string device_name, const AudioInParameter& in_params,
Kernel::KProcess* handle, u64 applet_resource_user_id);
/**
* Start this system.
@ -244,8 +245,8 @@ public:
private:
/// Core system
Core::System& system;
/// (Unused)
u32 handle{};
/// Process handle
Kernel::KProcess* handle{};
/// (Unused)
u64 applet_resource_user_id{};
/// Buffer event, signalled when a buffer is ready

View File

@ -48,8 +48,8 @@ Result System::IsConfigValid(std::string_view device_name,
return Service::Audio::ResultInvalidChannelCount;
}
Result System::Initialize(std::string device_name, const AudioOutParameter& in_params, u32 handle_,
u64 applet_resource_user_id_) {
Result System::Initialize(std::string device_name, const AudioOutParameter& in_params,
Kernel::KProcess* handle_, u64 applet_resource_user_id_) {
auto result = IsConfigValid(device_name, in_params);
if (result.IsError()) {
return result;

View File

@ -19,7 +19,8 @@ class System;
namespace Kernel {
class KEvent;
}
class KProcess;
} // namespace Kernel
namespace AudioCore::AudioOut {
@ -84,12 +85,12 @@ public:
*
* @param device_name - The name of the requested output device.
* @param in_params - Input parameters, see AudioOutParameter.
* @param handle - Unused.
* @param handle - Process handle.
* @param applet_resource_user_id - Unused.
* @return Result code.
*/
Result Initialize(std::string device_name, const AudioOutParameter& in_params, u32 handle,
u64 applet_resource_user_id);
Result Initialize(std::string device_name, const AudioOutParameter& in_params,
Kernel::KProcess* handle, u64 applet_resource_user_id);
/**
* Start this system.
@ -228,8 +229,8 @@ public:
private:
/// Core system
Core::System& system;
/// (Unused)
u32 handle{};
/// Process handle
Kernel::KProcess* handle{};
/// (Unused)
u64 applet_resource_user_id{};
/// Buffer event, signalled when a buffer is ready

View File

@ -41,7 +41,7 @@ void CommandGenerator::GenerateDataSourceCommand(VoiceInfo& voice_info,
const VoiceState& voice_state, const s8 channel) {
if (voice_info.mix_id == UnusedMixId) {
if (voice_info.splitter_id != UnusedSplitterId) {
auto destination{splitter_context.GetDesintationData(voice_info.splitter_id, 0)};
auto destination{splitter_context.GetDestinationData(voice_info.splitter_id, 0)};
u32 dest_id{0};
while (destination != nullptr) {
if (destination->IsConfigured()) {
@ -55,7 +55,7 @@ void CommandGenerator::GenerateDataSourceCommand(VoiceInfo& voice_info,
}
}
dest_id++;
destination = splitter_context.GetDesintationData(voice_info.splitter_id, dest_id);
destination = splitter_context.GetDestinationData(voice_info.splitter_id, dest_id);
}
}
} else {
@ -234,7 +234,7 @@ void CommandGenerator::GenerateVoiceCommand(VoiceInfo& voice_info) {
if (voice_info.mix_id == UnusedMixId) {
if (voice_info.splitter_id != UnusedSplitterId) {
auto i{channel};
auto destination{splitter_context.GetDesintationData(voice_info.splitter_id, i)};
auto destination{splitter_context.GetDestinationData(voice_info.splitter_id, i)};
while (destination != nullptr) {
if (destination->IsConfigured()) {
const auto mix_id{destination->GetMixId()};
@ -249,7 +249,7 @@ void CommandGenerator::GenerateVoiceCommand(VoiceInfo& voice_info) {
}
}
i += voice_info.channel_count;
destination = splitter_context.GetDesintationData(voice_info.splitter_id, i);
destination = splitter_context.GetDestinationData(voice_info.splitter_id, i);
}
}
} else {
@ -591,7 +591,7 @@ void CommandGenerator::GenerateMixCommands(MixInfo& mix_info) {
if (mix_info.dst_splitter_id != UnusedSplitterId) {
s16 dest_id{0};
auto destination{
splitter_context.GetDesintationData(mix_info.dst_splitter_id, dest_id)};
splitter_context.GetDestinationData(mix_info.dst_splitter_id, dest_id)};
while (destination != nullptr) {
if (destination->IsConfigured()) {
auto splitter_mix_id{destination->GetMixId()};
@ -612,7 +612,7 @@ void CommandGenerator::GenerateMixCommands(MixInfo& mix_info) {
}
dest_id++;
destination =
splitter_context.GetDesintationData(mix_info.dst_splitter_id, dest_id);
splitter_context.GetDestinationData(mix_info.dst_splitter_id, dest_id);
}
}
} else {

View File

@ -9,6 +9,7 @@
#include "common/fixed_point.h"
#include "common/logging/log.h"
#include "common/scratch_buffer.h"
#include "core/guest_memory.h"
#include "core/memory.h"
namespace AudioCore::Renderer {

View File

@ -93,7 +93,7 @@ bool MixInfo::UpdateConnection(EdgeMatrix& edge_matrix, const InParameter& in_pa
for (u32 i = 0; i < destination_count; i++) {
auto destination{
splitter_context.GetDesintationData(in_params.dest_splitter_id, i)};
splitter_context.GetDestinationData(in_params.dest_splitter_id, i)};
if (destination) {
const auto destination_id{destination->GetMixId()};

View File

@ -9,7 +9,7 @@
namespace AudioCore::Renderer {
SplitterDestinationData* SplitterContext::GetDesintationData(const s32 splitter_id,
SplitterDestinationData* SplitterContext::GetDestinationData(const s32 splitter_id,
const s32 destination_id) {
return splitter_infos[splitter_id].GetData(destination_id);
}

View File

@ -42,7 +42,7 @@ public:
* @param destination_id - Destination index within the splitter.
* @return Pointer to the found destination. May be nullptr.
*/
SplitterDestinationData* GetDesintationData(s32 splitter_id, s32 destination_id);
SplitterDestinationData* GetDestinationData(s32 splitter_id, s32 destination_id);
/**
* Get a splitter from the given index.

View File

@ -106,6 +106,7 @@ add_library(common STATIC
precompiled_headers.h
quaternion.h
range_map.h
range_mutex.h
reader_writer_queue.h
ring_buffer.h
${CMAKE_CURRENT_BINARY_DIR}/scm_rev.cpp

View File

@ -30,27 +30,27 @@ NativeClock::NativeClock() {
}
std::chrono::nanoseconds NativeClock::GetTimeNS() const {
return std::chrono::nanoseconds{MultiplyHigh(GetHostTicksElapsed(), ns_cntfrq_factor)};
return std::chrono::nanoseconds{MultiplyHigh(GetUptime(), ns_cntfrq_factor)};
}
std::chrono::microseconds NativeClock::GetTimeUS() const {
return std::chrono::microseconds{MultiplyHigh(GetHostTicksElapsed(), us_cntfrq_factor)};
return std::chrono::microseconds{MultiplyHigh(GetUptime(), us_cntfrq_factor)};
}
std::chrono::milliseconds NativeClock::GetTimeMS() const {
return std::chrono::milliseconds{MultiplyHigh(GetHostTicksElapsed(), ms_cntfrq_factor)};
return std::chrono::milliseconds{MultiplyHigh(GetUptime(), ms_cntfrq_factor)};
}
u64 NativeClock::GetCNTPCT() const {
return MultiplyHigh(GetHostTicksElapsed(), guest_cntfrq_factor);
s64 NativeClock::GetCNTPCT() const {
return MultiplyHigh(GetUptime(), guest_cntfrq_factor);
}
u64 NativeClock::GetGPUTick() const {
return MultiplyHigh(GetHostTicksElapsed(), gputick_cntfrq_factor);
s64 NativeClock::GetGPUTick() const {
return MultiplyHigh(GetUptime(), gputick_cntfrq_factor);
}
u64 NativeClock::GetHostTicksNow() const {
u64 cntvct_el0 = 0;
s64 NativeClock::GetUptime() const {
s64 cntvct_el0 = 0;
asm volatile("dsb ish\n\t"
"mrs %[cntvct_el0], cntvct_el0\n\t"
"dsb ish\n\t"
@ -58,15 +58,11 @@ u64 NativeClock::GetHostTicksNow() const {
return cntvct_el0;
}
u64 NativeClock::GetHostTicksElapsed() const {
return GetHostTicksNow();
}
bool NativeClock::IsNative() const {
return true;
}
u64 NativeClock::GetHostCNTFRQ() {
s64 NativeClock::GetHostCNTFRQ() {
u64 cntfrq_el0 = 0;
std::string_view board{""};
#ifdef ANDROID

Some files were not shown because too many files have changed in this diff Show More