Merge pull request #21285 from hrydgard/lang-fixes

Minor translation fixes
This commit is contained in:
Henrik Rydgård
2026-02-20 10:21:24 +01:00
committed by GitHub
12 changed files with 153 additions and 209 deletions
+102 -190
View File
@@ -302,7 +302,7 @@ fn check_keys(target_ini: &IniFile) -> io::Result<()> {
Ok(())
}
fn fixup_keys(target_ini: IniFile, dry_run: bool) -> io::Result<()> {
fn fixup_keys(target_ini: &IniFile, dry_run: bool) -> io::Result<()> {
for section in &target_ini.sections {
let mut mismatches = Vec::new();
@@ -611,7 +611,7 @@ fn generate_prompt(filenames: &[String], section: &str, value: &str, extra: &str
let base_str = format!("Please translate '{value}' from US English to all of these languages: {languages}.
Output in json format, a single dictionary, key=value. Include en_US first (the original string).
For context, the string will be in the translation section '{section}', and these strings are UI strings for my PSP emulator application.
Keep the strings relatively short, don't let them become more than 40% longer than the original string.
Keep the strings relatively short, try not to let them become more than 60% longer than the original string.
Do not output any text before or after the list of translated strings, do not ask followups.
{extra}");
@@ -664,7 +664,7 @@ fn execute_command(cmd: Command, ai: Option<&ChatGPT>, dry_run: bool, verbose: b
let root = "../../assets/lang";
let reference_ini_filename = "en_US.ini";
let mut reference_ini =
let reference_ini =
IniFile::parse_file(&format!("{root}/{reference_ini_filename}")).unwrap();
let mut filenames = Vec::new();
@@ -672,9 +672,6 @@ fn execute_command(cmd: Command, ai: Option<&ChatGPT>, dry_run: bool, verbose: b
// Grab them all.
for path in std::fs::read_dir(root).unwrap() {
let path = path.unwrap();
if path.file_name() == reference_ini_filename {
continue;
}
let filename = path.file_name();
let filename = filename.to_string_lossy();
if !filename.ends_with(".ini") {
@@ -767,6 +764,8 @@ fn execute_command(cmd: Command, ai: Option<&ChatGPT>, dry_run: bool, verbose: b
let mut target_ini = IniFile::parse_file(&target_ini_filename).unwrap();
let is_reference = filename == reference_ini_filename;
match cmd {
Command::ApplyRegex {
ref section,
@@ -793,27 +792,48 @@ fn execute_command(cmd: Command, ai: Option<&ChatGPT>, dry_run: bool, verbose: b
language: _,
section: _,
} => {}
Command::FixupRefKeys => {}
Command::CheckRefKeys => {}
Command::FixupRefKeys => if is_reference {
fixup_keys(&target_ini, dry_run).unwrap();
}
Command::CheckRefKeys => if is_reference {
check_keys(&target_ini).unwrap();
}
Command::CopyMissingLines {
dont_comment_missing,
} => {
copy_missing_lines(reference_ini, &mut target_ini, !dont_comment_missing).unwrap();
}
Command::CommentUnknownLines {} => {
deal_with_unknown_lines(reference_ini, &mut target_ini, UnknownLineAction::Comment)
if !is_reference {
deal_with_unknown_lines(
reference_ini,
&mut target_ini,
UnknownLineAction::Comment,
)
.unwrap();
}
}
Command::RemoveUnknownLines {} => {
deal_with_unknown_lines(reference_ini, &mut target_ini, UnknownLineAction::Remove)
if !is_reference {
deal_with_unknown_lines(
reference_ini,
&mut target_ini,
UnknownLineAction::Remove,
)
.unwrap();
}
}
Command::ListUnknownLines {} => {
deal_with_unknown_lines(reference_ini, &mut target_ini, UnknownLineAction::Log)
.unwrap();
if !is_reference {
deal_with_unknown_lines(reference_ini, &mut target_ini, UnknownLineAction::Log)
.unwrap();
}
}
Command::GetNewKeys => {
print_keys_if_not_in(reference_ini, &mut target_ini, &target_ini_filename).unwrap();
if !is_reference {
print_keys_if_not_in(reference_ini, &mut target_ini, &target_ini_filename)
.unwrap();
}
}
Command::SortSection { ref section } => sort_section(&mut target_ini, section).unwrap(),
Command::RenameKey {
@@ -828,51 +848,73 @@ fn execute_command(cmd: Command, ai: Option<&ChatGPT>, dry_run: bool, verbose: b
Command::AddNewKeyAI {
ref section,
ref key,
extra: _,
ref extra,
overwrite_translated,
} => {
let lang = filename.split_once('.').unwrap().0;
if let Some(ai_response) = &ai_response {
// Process it.
if let Some(translated_string) = ai_response.get(lang) {
println!("{lang}:");
add_new_key(
&mut target_ini,
section,
key,
&format!("{translated_string} # AI translated"),
overwrite_translated,
)
.unwrap();
} else {
println!("Language {lang} not found in response. Bailing.");
return;
if !is_reference {
let lang = filename.split_once('.').unwrap().0;
if let Some(ai_response) = &ai_response {
// Process it.
if let Some(translated_string) = ai_response.get(lang) {
println!("{lang}:");
add_new_key(
&mut target_ini,
section,
key,
&format!("{translated_string} # AI translated"),
overwrite_translated,
)
.unwrap();
} else {
println!("Language {lang} not found in response. Bailing.");
return;
}
}
} else {
if ai_response.is_some() {
let _ = extra;
add_new_key(&mut target_ini, section, key, key, overwrite_translated)
.unwrap();
}
}
}
Command::AddNewKeyValueAI {
ref section,
ref key,
value: _, // was translated above
extra: _,
ref value, // was translated above
ref extra,
overwrite_translated,
} => {
let lang = filename.split_once('.').unwrap().0;
if let Some(ai_response) = &ai_response {
// Process it.
if let Some(translated_string) = ai_response.get(lang) {
println!("{lang}:");
if !is_reference {
let lang = filename.split_once('.').unwrap().0;
if let Some(ai_response) = &ai_response {
// Process it.
if let Some(translated_string) = ai_response.get(lang) {
println!("{lang}:");
add_new_key(
&mut target_ini,
section,
key,
&format!("{translated_string} # AI translated"),
overwrite_translated,
)
.unwrap();
} else {
println!("Language {lang} not found in response. Bailing.");
return;
}
}
} else {
if ai_response.is_some() {
let _ = extra;
add_new_key(
&mut target_ini,
section,
key,
&format!("{translated_string} # AI translated"),
value,
overwrite_translated,
)
.unwrap();
} else {
println!("Language {lang} not found in response. Bailing.");
return;
}
}
}
@@ -920,29 +962,31 @@ fn execute_command(cmd: Command, ai: Option<&ChatGPT>, dry_run: bool, verbose: b
ref section,
ref key,
} => {
let lang_id = filename.strip_suffix(".ini").unwrap();
if let Some(single_section) = &single_ini_section {
if let Some(target_section) = target_ini.get_section_mut(section) {
if let Some(single_line) = single_section.get_line(lang_id) {
if let Some(value) = line_value(&single_line) {
println!(
"Inserting value {value} for key {key} in section {section} in {target_ini_filename}"
);
if !target_section.insert_line_if_missing(&format!(
"{key} = {value} # AI translated"
)) {
// Didn't insert it, so it exists. We need to replace it.
target_section.set_value(key, value, Some("AI translated"));
if !is_reference {
let lang_id = filename.strip_suffix(".ini").unwrap();
if let Some(single_section) = &single_ini_section {
if let Some(target_section) = target_ini.get_section_mut(section) {
if let Some(single_line) = single_section.get_line(lang_id) {
if let Some(value) = line_value(&single_line) {
println!(
"Inserting value {value} for key {key} in section {section} in {target_ini_filename}"
);
if !target_section.insert_line_if_missing(&format!(
"{key} = {value} # AI translated"
)) {
// Didn't insert it, so it exists. We need to replace it.
target_section.set_value(key, value, Some("AI translated"));
}
}
} else {
println!("No lang_id {lang_id} in single section");
}
} else {
println!("No lang_id {lang_id} in single section");
println!("No section {section} in {target_ini_filename}");
}
} else {
println!("No section {section} in {target_ini_filename}");
println!("No section {section} in {filename}");
}
} else {
println!("No section {section} in {filename}");
}
}
}
@@ -954,138 +998,6 @@ fn execute_command(cmd: Command, ai: Option<&ChatGPT>, dry_run: bool, verbose: b
println!("Langtool processing reference {reference_ini_filename}");
// Some commands also apply to the reference ini.
match cmd {
Command::ApplyRegex {
ref section,
ref key,
ref pattern,
ref replacement,
} => {
apply_regex(
&mut reference_ini,
section,
key,
pattern,
replacement.as_ref().unwrap_or(&"".to_string()),
)
.unwrap();
}
Command::FinishLanguageWithAI {
language: _,
section: _,
} => {}
Command::CheckRefKeys => check_keys(&reference_ini).unwrap(),
Command::FixupRefKeys => fixup_keys(reference_ini.clone(), dry_run).unwrap(),
Command::AddNewKey {
ref section,
ref key,
} => {
add_new_key(&mut reference_ini, section, key, key, false).unwrap();
}
Command::AddNewKeyAI {
ref section,
ref key,
ref extra,
overwrite_translated,
} => {
if ai_response.is_some() {
let _ = extra;
add_new_key(&mut reference_ini, section, key, key, overwrite_translated).unwrap();
}
}
Command::AddNewKeyValueAI {
ref section,
ref key,
ref value,
extra,
overwrite_translated,
} => {
if ai_response.is_some() {
let _ = extra;
add_new_key(
&mut reference_ini,
section,
key,
value,
overwrite_translated,
)
.unwrap();
}
}
Command::AddNewKeyValue {
ref section,
ref key,
ref value,
} => {
add_new_key(&mut reference_ini, section, key, value, false).unwrap();
}
Command::SortSection { ref section } => sort_section(&mut reference_ini, section).unwrap(),
Command::RenameKey {
ref section,
ref old,
ref new,
} => {
if old == new {
println!("WARNING: old == new");
}
rename_key(&mut reference_ini, section, old, new).unwrap();
}
Command::MoveKey {
ref old,
ref new,
ref key,
} => {
move_key(&mut reference_ini, old, new, key).unwrap();
}
Command::CopyKey {
// between sections
ref old_section,
ref new_section,
ref key,
} => {
copy_key(&mut reference_ini, old_section, new_section, key).unwrap();
}
Command::DupeKey {
// Inside a section, preserving a value
ref section,
ref old,
ref new,
} => {
dupe_key(&mut reference_ini, section, old, new).unwrap();
}
Command::SplitKey {
ref section,
ref key,
} => {
split_key(&mut reference_ini, section, key).unwrap();
}
Command::RemoveKey {
ref section,
ref key,
} => {
remove_key(&mut reference_ini, section, key).unwrap();
}
Command::RemoveLinebreaks {
ref section,
ref key,
} => {
remove_linebreaks(&mut reference_ini, section, key).unwrap();
}
Command::CopyMissingLines {
dont_comment_missing: _,
} => {}
Command::ListUnknownLines {} => {}
Command::CommentUnknownLines {} => {}
Command::RemoveUnknownLines {} => {}
Command::GetNewKeys => {}
Command::ImportSingle {
filename: _,
section: _,
key: _,
} => {}
}
if !dry_run {
reference_ini.write().unwrap();
}
+5
View File
@@ -1676,6 +1676,11 @@ void GameSettingsScreen::OnChangeBackground(UI::EventParams &e) {
}
void GameSettingsScreen::dialogFinished(const Screen *dialog, DialogResult result) {
if (equals(dialog->tag(), "NewLanguage") && result == DR_OK) {
screenManager()->RecreateAllViews();
return;
}
bool recreate = false;
if (result == DialogResult::DR_OK) {
g_Config.iFpsLimit1 = iAlternateSpeedPercent1_ < 0 ? -1 : (iAlternateSpeedPercent1_ * 60) / 100;
+11 -12
View File
@@ -108,7 +108,7 @@ Binds = Qoşulmalar
Button Binding = Düymə Qoşulması
Button Opacity = Düymə Şəffaflığı
Button style = Düymə biçimi
Calibrate Analog Stick = Analoq Çubuğunu Kalibrə et
Calibrate analog stick = Analoq Çubuğunu Kalibrə et
Calibrate = Kalibrə et
Calibrated = Kalibirlənib
Calibration = Kalibirləmə
@@ -116,16 +116,16 @@ Circular deadzone = Dairəvi ölü bölgə
Circular stick input = Dairəvi çubuq girişi
Classic = Klassik
Confine Mouse = Siçanı pəncərə/görüntü içində tut
Control Mapping = Yönəltmə xəritələnişi
Custom Key Setting = Özəl Düymə Quruluşu
Customize = Özəlləşdir
Customize Touch Controls = Toxunuşlu yönəltmə düzənini düzəlt...
Control mapping = Yönəltmə xəritələnişi
Custom touch button setup = Custom touch button setup
Customize = Özəlləşdir # Customize Touch Controls = Toxunuşlu yönəltmə düzənini düzəlt...
D-PAD = D-Pad
Deadzone radius = Ölü bölgə radiusu
Disable D-Pad diagonals (4-way touch) = D-Pad diaqonallarını bağla (4-yönlü toxunma)
Disable diagonal input = Diaqonal girişi bağla
Double tap = İkili basma
Easier sweeping movements = Asan sürükləmə hərəkətləri
Edit touch control layout = Edit touch control layout
Enable analog stick gesture = Analoq çubuğunun hərəkətini aç
Enable gesture control = Hərəkət yönəltməsini aç
Enable standard shortcut keys = Standart qısayol düymələrini aç
@@ -158,7 +158,7 @@ Mouse wheel button-release delay = Siçan təkər düyməsinin buraxılış geci
MouseControl Tip = 'M' simgəsini basaraq, Siz artıq yönləndirmə xəritələnişi ekranında siçanı xəritələyə bilərsiniz.
None (Disabled) = Heç nə (bağlıdır)
Off = Sönülü
OnScreen = Ekran Üstü Yönləndirmə
On-screen touch controls = On-screen touch controls
Portrait = Portret
Portrait Reversed = Tərs Portret
PSP Action Buttons = PSP eyləm düymələri
@@ -225,7 +225,6 @@ Exit = &Çıx
Extract File... = Faylları Ç&ıxart...
File = &Fayl
Frame Skipping = &Kadr buraxılışı
Frame Skipping Type = Kadr buraxılış biçimi
Fullscreen = &Bütün Ekran
Game Settings = &Oyun Quruluşları
GE Debugger... = GE &Yolaqoyanı...
@@ -282,8 +281,6 @@ Savestate Slot = Duru&m Qorunuşu Yuvası
Screen Scaling Filter = &Ekran Ölçəklənişi Süzgəci
Show Debug Statistics = Yolaqoyuş Durumlarını &Göstər
Show FPS Counter = &FPS Sayğacını Göstər
Skip Number of Frames = Kadr buraxma sayı
Skip Percent of FPS = FPS Buraxma Yüzdəsi
Smart 2D texture filtering = Ağıllı 2D toxuma süzgüsü
Stop = &Dayan
Switch UMD = UMD'ni Dəyiş
@@ -327,7 +324,6 @@ Enable Logging = Çözüm gündəliklənişini aç
Enable shader cache = Kölgələyici önyaddaşını
Enter address = Adresi yaz
Fast = Sürətli
Fast-forward mode = Sürətli irəli veriş modu
FPU = FPU
Fragment = Bölüntü
Frame timing = Kadr Zamanlaması
@@ -531,7 +527,7 @@ Failed to load executable: = işlənə bilənin yüklənişi uğursuz oldu:
File corrupt = Fayl korlanıb
File format not supported = Fayl formatı dəstəklənmir # AI translated
File not found: %1 = Fayl tapılmayıb: %1
Game disc read error - ISO korlanıb = Oyun diskində oxunuş yanlışı: ISO korlanıb.
Game disc read error - ISO corrupt = Oyun diskində oxunuş yanlışı: ISO korlanıb.
GenericAllStartupError = PPSSPP istənilən arxa-uclu görüntü kartı ilə başlada bilmədi. Kartınızı və başqa sürücülərinizi yüksəltməyi sınayın.
GenericBackendSwitchCrash = PPSSPP başlayarkən çökdü.\n\nÇox vaxt bu, görüntü sürücüsündəki sıxıntıdan qaynaqlanır. Görüntü sürücülərini yüksəltməyə çalışın.\n\nGörüntü arxa-ucu dəyişildi:
GenericGraphicsError = Görüntü Yanlışı
@@ -668,6 +664,7 @@ Device = Qurğu
Direct3D 11 = Direct3D 11
Disable culling = Ayıqlamanı bağla
Disabled = Bağlıdır
Display = Display
Display layout & effects = Ekran qaplaması və effektlər
Display Resolution (HW scaler) = Ekran çözünürlüyü (Qurğu ölçəkləyicisi)
Display rotation = Görüntü dönüşü
@@ -706,6 +703,7 @@ Lazy texture caching Tip = Sürətlidir, ancaq bir sıra oyunda yazı sıxıntı
Lens flare occlusion = Linza parlaması tıxanıqlığı
Linear = Düz xəttli
Low = Aşağı
Low latency display = Low latency display
LowCurves = Spline/Bezier əyrisi keyfiyyəti
LowCurves Tip = Ancaq bir sıra oyunda işlənir. Əyrilərin axışqanlığını yönəldir
Lower resolution for effects = Effektlər üçün aşağı çözünürlük
@@ -1001,6 +999,7 @@ Error = Yanlış
Failed to Bind Localhost IP = Localhost IP'ni birləşdirmə uğursuz oldu
Failed to Bind Port = Portu birləşdirmə uğursuz oldu
Failed to connect to Adhoc Server = Ad hoc qulluqçusuna qoşulma uğursuz oldu
File transfer completed: %1 = File transfer completed: %1
Forced First Connect = İlk qoşulmaya güc verdi (daha sürətli qoşulma)
GM: Data from Unknown Port = GM: Bilinməyən Port Veriləni
Hostname = Sahibin adı
@@ -1040,6 +1039,7 @@ UPnP need to be reinitialized = UPnP, yenidən başladılmalıdır
UPnP use original port = UPnP doğma portu işlədir (açıqdır = PSP uyumluğu)
UseOriginalPort Tip = Bütün qurğular və ya oyunlar üçün işləməyə bilər, vikiyə baxın.
Validating address... = Adres doğrulanır...
With a web browser on the same network, go to: = With a web browser on the same network, go to:
WLAN Channel = WLAN kanalı
You're in Offline Mode, go to lobby or online hall = Siz bağlantısızsınız, girişə ya da çevrimiçi zalına gedin
@@ -1157,7 +1157,6 @@ translators5 =
translators6 =
website = Saytımıza baş çəkin:
written = Sürət və daşınabilərlik baxımından C++ ilə yazılıb
X @PPSSPP_emu = X @PPSSPP_emu
[RemoteISO]
Browse Games = Oyunlara göz at
+14 -2
View File
@@ -72,6 +72,7 @@ Audio file format not supported. Must be WAV or MP3. = Audio-Dateiformat wird ni
Audio playback = Audio-Wiedergabe
AudioBufferingForBluetooth = Bluetooth-freundliche Pufferung (langsamer)
Auto = Autom.
Buffer size = Buffer size
Classic (lowest latency) = Klassisch (niedrigste Latenz)
Device = Gerät
Disabled = Deaktiviert
@@ -250,6 +251,7 @@ Nearest = Nächster Nachbar
Pause when not focused = Pausieren im Hintergrund
Recent = &Zuletzt
Restart Graphics = Grafiken neu starten
Save frame dump = Save frame d&ump
Skip Buffer Effects = Puffereffekte überspringen
Off = Aus
Open Chat = Chat öffnen
@@ -320,6 +322,7 @@ Enable driver bug workarounds = Treiberfehler-Umgehungen aktivieren
Enable Logging = Fehlerbehebungs-Protokollierung aktivieren
Enable shader cache = Schattierer-Cache aktivieren
Enter address = Adresse eingeben
Fast = Fast
FPU = FPU
Fragment = Fragment
Frame timing = Einzelbild-Timing
@@ -331,6 +334,7 @@ GPU Allocator Viewer = GPU-Allokator-Anzeige
GPU Driver Test = GPU-Treibertest
GPU log profiler = GPU Protokollprofilierer
GPU Profile = GPU-Profil
Instant (may stutter) = Instant (may stutter)
Jit Compare = JIT-Vergleich
JIT debug tools = JIT-Fehlerbehebungs-Werkzeuge
Log Dropped Frame Statistics = Statistik für fehlende Einzelbilder protokollieren
@@ -338,14 +342,17 @@ Log Level = Protokollierungsstufe
Log to file = In Datei protokollieren
Log View = Protokollansicht
Logging Channels = Protkollkanäle
Medium = Medium
Multi-threaded rendering = Multi-threaded rendering
Next = Nächstes
No block = Kein Block
Off = Aus
Prev = Vorheriges
Prevent loading overlays = Prevent loading overlays
Random = Zufall
Remote debugger = Fern-Debugger
Replace textures = Texturen ersetzen
Replacement texture load speed = Replacement texture load speed
Reset = Zurücksetzen
Reset limited logging = Eingeschränkte Protokollierung zurücksetzen
RestoreDefaultSettings = Alle Einstellungen auf ihre Vorgabewerte zurücksetzen?\nDies kann nicht rückgängig gemacht werden.\nBitte starte PPSSPP nach Wiederherstellung neu.
@@ -355,12 +362,12 @@ Save new textures = Neue Texturen speichern
Shader Viewer = Schattierer-Anzeige
Show GPO LEDs = GPO-LEDs anzeigen
Show in-game developer menu = Entwicklermenü anzeigen
Slow (smooth) = Slow (smooth)
Stats = Statistiken
System Information = Systeminformationen
Tests = Tests
Texture ini file created = Textur-ini-Datei erstellt
Texture Replacement = Texturaustausch
Toggle Debugger = Fehlerbeheber umschalten
Audio Debug = Audio-Fehlerbehebung
Control Debug = Steuerungs-Fehlerbehebung
Toggle Freeze = Einfrieren umschalten
@@ -449,6 +456,7 @@ Logging in... = Anmeldung...
More info = Weitere Infos
Move = Bewegen
Move Down = Abwärts bewegen
Move to trash = Move to trash
Move Up = Aufwärts bewegen
Network Connection = Netzwerkverbindung
NEW DATA = NEUE DATEN
@@ -485,6 +493,7 @@ SSID = SSID
Submit = Einreichen
Supported = Unterstützt
There is no data = Keine Daten vorhanden
This change will not take effect until PPSSPP is restarted. = This change will not take effect until PPSSPP is restarted.
This will overwrite the existing configuration = Dies überschreibt die vorhandene Konfiguration # AI translated
Toggle All = Alle umschalten
Toggle List = Liste umschalten
@@ -904,10 +913,11 @@ Swipe Up = Aufwärts wischen
tap to customize = zum Anpassen antippen
Texture Dumping = Texturspeicherung
Texture Replacement = Texturersetzung
Toggle Debugger = Fehlerbeheber umschalten
Toggle Fullscreen = Vollbild umschalten
Toggle mode = Modus umschalten
Toggle mouse input = Mauseingabe umschalten
Toggle tilt control = Toggle tilt control
Toggle tilt control = Neigungskontrolle umschalten
Toggle touch controls = Berührungssteuerung umschalten
Toggle WLAN = WLAN umschalten
Triangle = Dreieck
@@ -1307,6 +1317,7 @@ DPI = DPI
Driver bugs = Treiberfehler
Driver Version = Treiberversion
EGL Extensions = EGL-Erweiterungen
Font cache = Font cache
Frames per buffer = Einzelbilder pro Zwischenspeicher
GPU Flags = GPU Flags
GPU Information = GPU-Information
@@ -1436,6 +1447,7 @@ PSP Settings = PSP-Einstellungen
PSP-1000 = PSP-1000
PSP-2000/3000 = PSP-2000/3000
Raw game image = Rohes Spielbild
Recent games = Recent games
Record Audio = Ton aufzeichnen
Record Display = Bildschirm aufzeichnen
Recording = Aufnahme
+1
View File
@@ -1001,6 +1001,7 @@ Network connected = Network connected
Network functionality in this game is not guaranteed = Network functionality in this game is not guaranteed
Network initialized = Network initialized
Other versions of this game that should work: = Other versions of this game that should work:
PacketRelayHint = Available on servers that provide 'aemu_postoffice' packet relay, like socom.cc. Disable this for LAN or VPN play. Can be more reliable, but sometimes slower.
P2P mode = P2P mode
Please change your Port Offset = Please change your port offset
Port offset = Port offset (0 = PSP compatibility)
+1
View File
@@ -597,6 +597,7 @@ Remove From Recent = Poista "äskettäin" listalta...
SaveData = Tallennustieto
Setting Background = Taustakuvan asetus
ime Played: %1h %2m %3s = Pelattu aika: %1t %2m %3s
Time Played: %1h %2m %3s = Time Played: %1h %2m %3s
Uncompressed = Pakkauksen purku tehty
USA = USA
Use background as UI background = Käytä käyttöliittymän taustakuvaa
+3
View File
@@ -439,6 +439,7 @@ Finish = םייס
GE Frame Dumps = GE Frame Dumps
GoldOverview1 = Buying PPSSPP Gold supports the PPSSPP project.\nIt also gives you a shiny icon to show off!
GoldOverview2 = Your support is what makes it possible for me to continue spending so much time on PPSSPP. Thank you!
GoldThankYou = Thank you for supporting the PPSSPP project!
Grid = Grid
Inactive = Inactive
Installing... = Installing...
@@ -453,6 +454,7 @@ Log in = Log in
Log out = Log out
Logged in! = Logged in!
Logging in... = Logging in...
More info = More info
Move = Move
Move Down = Move Down
Move to trash = Move to trash
@@ -471,6 +473,7 @@ Remove = Remove
Reset = Reset
Resize = Resize
Restart = Restart
Restore purchase = Restore purchase
Retry = Retry
Right side = ןימ יצד # AI translated
Save = Save
+1 -1
View File
@@ -208,7 +208,7 @@ Backend = Rendering di fondo (riavvia il PPSSPP)
Bicubic = Bicubico
Break = Interruzione
Break on Load = Fermati al caricamento
Buy Gold = Acquista la Versione Gold
Buy PPSSPP Gold = Compra PPSSPP Gold
Control Mapping... = Impostazioni dei Controlli...
Copy PSP memory base address = Copia indirizzo base di memoria PSP
Debugging = Debug
+11
View File
@@ -78,6 +78,7 @@ Device = Urządzenie
Disabled = Wył.
Enable Sound = Włącz dźwięk
Fill audio gaps = Wypełnij luki dźwiękowe
Game preview volume = Game preview volume
Game volume = Głośność globalna
Microphone = Mikrofon
Microphone Device = Mikrofon
@@ -417,6 +418,7 @@ DeleteConfirm = Dane zapisu zostaną usunięte. Czy na pewno chcesz kontynuować
DeleteConfirmAll = Czy na pewno chcesz usunąć wszystkie dane zapisu tej gry?
DeleteConfirmGame = Czy na pewno chcesz usunąć tę grę ze swojego urządzenia? Nie można tego cofnąć.
DeleteConfirmGameConfig = Czy na pewno chcesz usunąć ustawienia dla tej gry?
DeleteConfirmSaveState = Are you sure you want to permanently delete this save state?
DeleteFailed = Nie można usunąć danych.
Deleting = Usuwanie\nProszę czekać...
Details = Zmiany
@@ -607,6 +609,7 @@ Use background as UI background = Użyj tego tła
% of the void = % pustej przestrzeni
% of viewport = % widocznego obszaru
%, 0:unlimited = %, 0 = bez limitu
'Mailbox' (lower latency, recommended) = 'Mailbox' (lower latency, recommended)
(supersampling) = (supersampling)
(upscaling) = (skalowanie)
1x PSP = 1× PSP
@@ -673,8 +676,12 @@ Driver requires Android API version %1, current is %2 = Sterownik wymaga wersji
Drivers = Sterowniki
Enable Cardboard VR = Aktywuj Cardboard VR
Faster, input lag = Szybsze, może powodować lagi sterowania
FIFO (higher latency, framerate stability) = FIFO (higher latency, framerate stability)
FIFO: latest ready = FIFO: latest ready
FIFO: relaxed = FIFO: relaxed
Force 60 Hz = Force 60 Hz
FPS = Tylko FPS
Frame presentation mode = Frame presentation mode
Frame Rate Control = Kontrola klatek na sekundę
Frame Skipping = Pomijanie klatek
Framerate mode = Tryb liczby klatek
@@ -690,6 +697,7 @@ High = Wysokie
Hybrid = Hybrydowe
Hybrid + Bicubic = Hybrydowe + Dwusześcienne
Ignore camera notch when centering = Ignoruj przesunięcie kamery podczas centrowania
Immediate (lower latency, tearing) = Immediate (lower latency, tearing)
Install custom driver... = Zainstaluj niestandardowy sterownik...
Integer scale factor = Całkowity współczynnik skali
Internal Resolution = Rozdzielczość wewnętrzna
@@ -764,6 +772,7 @@ VSync = Synchronizacja pionowa
Vulkan = Vulkan
Window Size = Rozmiar okna
xBRZ = xBRZ
Your display is set to a low refresh rate: %1 Hz. 60 Hz or higher is recommended. = Your display is set to a low refresh rate: %1 Hz. 60 Hz or higher is recommended.
[InstallZip]
Data to import = Dane do importu
@@ -1068,6 +1077,7 @@ Settings = Ustawienia
Switch UMD = Podmień UMD
Undo last load = Cofnij ostatnio wczytane
Undo last save = Cofnij ostatni zapis
Using save states is not recommended in this game = Using save states is not recommended in this game
[PostShaders]
(duplicated setting, previous slider will be used) = (zduplikowane ustawienia; użyte zostanie poprzednie ustawienie)
@@ -1111,6 +1121,7 @@ Strength = Siła
Tex4xBRZ = 4xBRZ
TexMMPX = MMPX
UpscaleBicubic = UpscaleBicubic
UpscaleSharpBilinear = Sharp bilinear upscaler
UpscaleSpline36 = Skalowanie Spline36
VideoSmoothingAA = Wygładzanie wideo
Vignette = Winieta
+1
View File
@@ -1002,6 +1002,7 @@ Network functionality in this game is not guaranteed =A funcionalidade da rede n
Network initialized = Rede inicializada
Other versions of this game that should work: = Outras versões deste jogo que devem funcionar:
P2P mode = Modo P2P # AI translated
PacketRelayHint = Available on servers that provide 'aemu_postoffice' packet relay, like socom.cc. Disable this for LAN or VPN play. Can be more reliable, but sometimes slower.
Please change your Port Offset = Por favor mude seu deslocamento da porta
Port offset = Deslocamento da porta (0 = Compatibilidade com o PSP)
Open PPSSPP Multiplayer Wiki Page = Abrir a Página do Multiplayer do Wiki do PPSSPP
+1
View File
@@ -672,6 +672,7 @@ CPU texture upscaler (slow) = Tipo de ampliação (CPU)
Current GPU driver = Driver atual da GPU
Default GPU driver = Driver padrão da GPU
Disable culling = Desativar culling
Disabled = Disabled
Display = Tela
Display layout & effects = Mostrar o editor dos esquemas
Display rotation = Rotação da tela
+2 -4
View File
@@ -692,8 +692,7 @@ Faster, input lag = เร็วขึ้น, อาจทำให้เกิ
FIFO (higher latency, framerate stability) = FIFO (ความหน่วงสูงขึ้น, ความเสถียรของอัตราเฟรม)
FIFO: latest ready = FIFO: ล่าสุดพร้อม
FIFO: relaxed = FIFO: ผ่อนคลาย
Force 60 Hz = Force 60 Hz
Force 60Hz = บังคับที่ 60Hz
Force 60 Hz = บังคับที่ 60Hz
FPS = เฟรมต่อวินาที
Frame presentation mode = โหมดการแสดงเฟรม
Frame Rate Control = การควบคุมเฟรมเรท
@@ -749,8 +748,7 @@ RenderDuplicateFrames Tip = ช่วยให้ภาพดูลื่นต
Rendering Mode = โหมดที่ใช้ในการแสดงผล
Rendering Resolution = ความละเอียดในการแสดงผลภาพ
RenderingMode NonBuffered Tip = เร็วขึ้นก็จริง แต่กราฟิกอาจจะขาดหายไปในบางเกม
Request 60 Hz = Request 60 Hz
Request 60Hz = ต้องการที่ 60Hz
Request 60 Hz = ต้องการที่ 60Hz
Rotate controls = หมุนการควบคุม # AI translated
Rotation = หมุนจอ
Safe = ปลอดภัย