Review and improve error handling and error messages

This commit is contained in:
Mathias Malmqvist
2025-09-11 19:11:47 +02:00
committed by dualshock-tools
parent 48fc4b5dce
commit c295cfa508
34 changed files with 463 additions and 338 deletions

View File

@@ -1,5 +1,10 @@
/* Main styles for DualShock Calibration GUI */ /* Main styles for DualShock Calibration GUI */
/* Add padding to body to prevent content from being hidden behind fixed footer */
body {
padding-bottom: 80px;
}
dl.row dt { dl.row dt {
font-weight: normal; font-weight: normal;
} }

View File

@@ -289,22 +289,32 @@
</div> </div>
</div> </div>
</div> </div>
</div>
<!-- Alert Messages Container -->
<div class="container-fluid fixed-bottom " style="z-index: 1040; pointer-events: none; bottom: 70px;">
<div class="container"> <div class="container">
<footer> <div id="alert-container" class="mb-3" style="pointer-events: auto;">
<div class="d-flex flex-column flex-sm-row justify-content-between py-4 my-4 border-top" id="footbody"> <!-- Alert messages will be dynamically inserted here -->
<p><a target="_blank" href="https://github.com/dualshock-tools/dualshock-tools.github.io/commits/main/"><span class="ds-i18n">Version</span> 2.16 beta 4</a> (2025-09-09) - <a href="#" class="ds-i18n" onclick="show_donate_modal();">Support this project</a>&nbsp;<span id="authorMsg"></span></p> </div>
<ul class="list-unstyled d-flex">
<li class="ms-3"><a class="link-body-emphasis" href="mailto:ds4@the.al" target="_blank"><svg class="bi" width="24" height="24"><use xlink:href="#mail"/></svg></a></li>
<li class="ms-3"><a class="link-body-emphasis" href="https://discord.gg/w2P7Rrs2Yp" target="_blank"><svg class="bi" width="24" height="24"><use xlink:href="#discord"/></svg></a></li>
<li class="ms-3"><a class="link-body-emphasis" href="https://github.com/dualshock-tools/" target="_blank"><svg class="bi" width="24" height="24"><use xlink:href="#github"/></svg></a></li>
</ul>
</div>
</footer>
</div> </div>
</div> </div>
<!-- Fixed Footer -->
<footer class="fixed-bottom bg-body-tertiary border-top">
<div class="container">
<div class="d-flex flex-column flex-sm-row justify-content-between py-3" id="footbody">
<p class="mb-0"><a target="_blank" href="https://github.com/dualshock-tools/dualshock-tools.github.io/commits/main/"><span class="ds-i18n">Version</span> 2.16 beta 9</a> (2025-09-11) - <a href="#" class="ds-i18n" onclick="show_donate_modal();">Support this project</a>&nbsp;<span id="authorMsg"></span></p>
<ul class="list-unstyled d-flex mb-0">
<li class="ms-3"><a class="link-body-emphasis" href="mailto:ds4@the.al" target="_blank"><svg class="bi" width="24" height="24"><use xlink:href="#mail"/></svg></a></li>
<li class="ms-3"><a class="link-body-emphasis" href="https://discord.gg/w2P7Rrs2Yp" target="_blank"><svg class="bi" width="24" height="24"><use xlink:href="#discord"/></svg></a></li>
<li class="ms-3"><a class="link-body-emphasis" href="https://github.com/dualshock-tools/" target="_blank"><svg class="bi" width="24" height="24"><use xlink:href="#github"/></svg></a></li>
</ul>
</div>
</div>
</footer>
</body> </body>
<!-- Google tag (gtag.js) --> <!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-FSXPMDXLLS"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-FSXPMDXLLS"></script>

View File

@@ -184,7 +184,7 @@ class ControllerManager {
async nvsLock() { async nvsLock() {
const res = await this.currentController.nvsLock(); const res = await this.currentController.nvsLock();
if (!res.ok) { if (!res.ok) {
throw new Error(this.l("NVS Lock failed: ") + String(res.error)); throw new Error(this.l("NVS Lock failed"), { cause: res.error });
} }
await this.queryNvStatus(); // Refresh NVS status await this.queryNvStatus(); // Refresh NVS status
@@ -197,8 +197,7 @@ class ControllerManager {
async calibrateSticksBegin() { async calibrateSticksBegin() {
const res = await this.currentController.calibrateSticksBegin(); const res = await this.currentController.calibrateSticksBegin();
if (!res.ok) { if (!res.ok) {
const detail = res.code ? (this.l("Error ") + String(res.code)) : String(res.error || ""); throw new Error(this.l("Stick calibration failed"), { cause: res.error });
throw new Error(this.l("Stick calibration failed: ") + detail);
} }
} }
@@ -209,8 +208,7 @@ class ControllerManager {
const res = await this.currentController.calibrateSticksSample(); const res = await this.currentController.calibrateSticksSample();
if (!res.ok) { if (!res.ok) {
await sleep(500); await sleep(500);
const detail = res.code ? (this.l("Error ") + String(res.code)) : String(res.error || ""); throw new Error(this.l("Stick calibration failed"), { cause: res.error });
throw new Error(this.l("Stick calibration failed: ") + detail);
} }
} }
@@ -221,8 +219,7 @@ class ControllerManager {
const res = await this.currentController.calibrateSticksEnd(); const res = await this.currentController.calibrateSticksEnd();
if (!res.ok) { if (!res.ok) {
await sleep(500); await sleep(500);
const detail = res.code ? (this.l("Error ") + String(res.code)) : String(res.error || ""); throw new Error(this.l("Stick calibration failed"), { cause: res.error });
throw new Error(this.l("Stick calibration failed: ") + detail);
} }
this.setHasChangesToWrite(true); this.setHasChangesToWrite(true);
@@ -234,8 +231,7 @@ class ControllerManager {
async calibrateRangeBegin() { async calibrateRangeBegin() {
const ret = await this.currentController.calibrateRangeBegin(); const ret = await this.currentController.calibrateRangeBegin();
if (!ret.ok) { if (!ret.ok) {
const detail = ret.code ? (this.l("Error ") + String(ret.code)) : String(ret.error || ""); throw new Error(this.l("Range calibration failed"), { cause: ret.error } );
throw new Error(this.l("Range calibration failed: ") + detail);
} }
} }
@@ -259,8 +255,8 @@ class ControllerManager {
console.log("Range calibration end failed with unexpected error:", res); console.log("Range calibration end failed with unexpected error:", res);
await sleep(500); await sleep(500);
const msg = res?.code ? (this.l("Range calibration failed: ") + this.l("Error ") + String(res.code)) : (this.l("Range calibration failed: ") + String(res?.error || "")); const msg = res?.code ? (this.l("Range calibration failed") + this.l("Error ") + String(res.code)) : (this.l("Range calibration failed") + String(res?.error || ""));
return { success: false, message: msg }; return { success: false, message: msg, error: res?.error };
} }
} }

View File

@@ -94,7 +94,7 @@ class BaseController {
* Close the HID device connection * Close the HID device connection
*/ */
async close() { async close() {
if (this.device && this.device.opened) { if (this.device?.opened) {
await this.device.close(); await this.device.close();
} }
} }

View File

@@ -113,9 +113,9 @@ class DS4Controller extends BaseController {
const disable_bits = is_clone ? 1 : 0; // 1: clone const disable_bits = is_clone ? 1 : 0; // 1: clone
return { ok: true, infoItems, nv, disable_bits, rare }; return { ok: true, infoItems, nv, disable_bits, rare };
} catch(e) { } catch(error) {
// Return error but do not touch DOM // Return error but do not touch DOM
return { ok: false, error: e, disable_bits: 1 }; return { ok: false, error, disable_bits: 1 };
} }
} }
@@ -128,7 +128,7 @@ class DS4Controller extends BaseController {
return { success: true, message: this.l("Changes saved successfully") }; return { success: true, message: this.l("Changes saved successfully") };
} catch(error) { } catch(error) {
throw new Error(this.l("Error while saving changes: ") + String(error)); throw new Error(this.l("Error while saving changes"), { cause: error });
} }
} }
@@ -145,8 +145,8 @@ class DS4Controller extends BaseController {
try { try {
await this.sendFeatureReport(0xa0, [10,1,0]); await this.sendFeatureReport(0xa0, [10,1,0]);
return { ok: true }; return { ok: true };
} catch(e) { } catch(error) {
return { ok: false, error: e }; return { ok: false, error };
} }
} }
@@ -155,8 +155,8 @@ class DS4Controller extends BaseController {
try { try {
await this.sendFeatureReport(0xa0, [10,2,0x3e,0x71,0x7f,0x89]); await this.sendFeatureReport(0xa0, [10,2,0x3e,0x71,0x7f,0x89]);
return { ok: true }; return { ok: true };
} catch(e) { } catch(error) {
return { ok: false, error: e }; return { ok: false, error };
} }
} }
@@ -181,9 +181,9 @@ class DS4Controller extends BaseController {
return { ok: false, code: 1, d1, d2 }; return { ok: false, code: 1, d1, d2 };
} }
return { ok: true }; return { ok: true };
} catch(e) { } catch(error) {
la("ds4_calibrate_range_begin_failed", {"r": e}); la("ds4_calibrate_range_begin_failed", {"r": error});
return { ok: false, error: String(e) }; return { ok: false, error };
} }
} }
@@ -203,9 +203,9 @@ class DS4Controller extends BaseController {
} }
return { ok: true }; return { ok: true };
} catch(e) { } catch(error) {
la("ds4_calibrate_range_end_failed", {"r": e}); la("ds4_calibrate_range_end_failed", {"r": error});
return { ok: false, error: String(e) }; return { ok: false, error };
} }
} }
@@ -226,9 +226,9 @@ class DS4Controller extends BaseController {
} }
return { ok: true }; return { ok: true };
} catch(e) { } catch(error) {
la("ds4_calibrate_sticks_begin_failed", {"r": e}); la("ds4_calibrate_sticks_begin_failed", {"r": error});
return { ok: false, error: String(e) }; return { ok: false, error };
} }
} }
@@ -248,8 +248,8 @@ class DS4Controller extends BaseController {
return { ok: false, code: 2, d1, d2 }; return { ok: false, code: 2, d1, d2 };
} }
return { ok: true }; return { ok: true };
} catch(e) { } catch(error) {
return { ok: false, error: String(e) }; return { ok: false, error };
} }
} }
@@ -269,9 +269,9 @@ class DS4Controller extends BaseController {
} }
return { ok: true }; return { ok: true };
} catch(e) { } catch(error) {
la("ds4_calibrate_sticks_end_failed", {"r": e}); la("ds4_calibrate_sticks_end_failed", {"r": error});
return { ok: false, error: String(e) }; return { ok: false, error };
} }
} }
@@ -289,8 +289,8 @@ class DS4Controller extends BaseController {
default: default:
return { ...res, status: 'unknown', locked: null }; return { ...res, status: 'unknown', locked: null };
} }
} catch (e) { } catch (error) {
return { device: 'ds4', status: 'error', locked: null, code: 2, error: e }; return { device: 'ds4', status: 'error', locked: null, code: 2, error };
} }
} }

View File

@@ -160,10 +160,9 @@ class DS5Controller extends BaseController {
const pending_reboot = (nv?.status === 'pending_reboot'); const pending_reboot = (nv?.status === 'pending_reboot');
return { ok: true, infoItems, nv, disable_bits, pending_reboot }; return { ok: true, infoItems, nv, disable_bits, pending_reboot };
} catch(e) { } catch(error) {
la("ds5_info_error", {"r": e}) la("ds5_info_error", {"r": error})
console.error(e.stack); return { ok: false, error, disable_bits: 1 };
return { ok: false, error: e, disable_bits: 1 };
} }
} }
@@ -176,7 +175,7 @@ class DS5Controller extends BaseController {
return { success: true, message: this.l("Changes saved successfully") }; return { success: true, message: this.l("Changes saved successfully") };
} catch(error) { } catch(error) {
throw new Error(this.l("Error while saving changes: ") + String(error)); throw new Error(this.l("Error while saving changes"), { cause: error });
} }
} }
@@ -194,8 +193,8 @@ class DS5Controller extends BaseController {
await this.sendFeatureReport(0x80, [3,1]); await this.sendFeatureReport(0x80, [3,1]);
await this.receiveFeatureReport(0x81); await this.receiveFeatureReport(0x81);
return { ok: true }; return { ok: true };
} catch(e) { } catch(error) {
return { ok: false, error: e }; return { ok: false, error };
} }
} }
@@ -204,9 +203,9 @@ class DS5Controller extends BaseController {
try { try {
await this.sendFeatureReport(0x80, [3,2, 101, 50, 64, 12]); await this.sendFeatureReport(0x80, [3,2, 101, 50, 64, 12]);
const data = await this.receiveFeatureReport(0x81); const data = await this.receiveFeatureReport(0x81);
} catch(e) { } catch(error) {
await sleep(500); await sleep(500);
throw new Error(this.l("NVS Unlock failed: ") + e); throw new Error(this.l("NVS Unlock failed"), { cause: error });
} }
} }
@@ -239,12 +238,12 @@ class DS5Controller extends BaseController {
if(data.getUint32(0, false) != 0x83010101) { if(data.getUint32(0, false) != 0x83010101) {
const d1 = dec2hex32(data.getUint32(0, false)); const d1 = dec2hex32(data.getUint32(0, false));
la("ds5_calibrate_sticks_begin_failed", {"d1": d1}); la("ds5_calibrate_sticks_begin_failed", {"d1": d1});
return { ok: false, code: 1, d1 }; throw new Error(`Stick center calibration begin failed: ${d1}`);
} }
return { ok: true }; return { ok: true };
} catch(e) { } catch(error) {
la("ds5_calibrate_sticks_begin_failed", {"r": e}); la("ds5_calibrate_sticks_begin_failed", {"r": e});
return { ok: false, error: String(e) }; return { ok: false, error };
} }
} }
@@ -259,12 +258,12 @@ class DS5Controller extends BaseController {
if(data.getUint32(0, false) != 0x83010101) { if(data.getUint32(0, false) != 0x83010101) {
const d1 = dec2hex32(data.getUint32(0, false)); const d1 = dec2hex32(data.getUint32(0, false));
la("ds5_calibrate_sticks_sample_failed", {"d1": d1}); la("ds5_calibrate_sticks_sample_failed", {"d1": d1});
return { ok: false, code: 2, d1 }; throw new Error(`Stick center calibration sample failed: ${d1}`);
} }
return { ok: true }; return { ok: true };
} catch(e) { } catch(error) {
la("ds5_calibrate_sticks_sample_failed", {"r": e}); la("ds5_calibrate_sticks_sample_failed", {"r": e});
return { ok: false, error: String(e) }; return { ok: false, error };
} }
} }
@@ -279,13 +278,13 @@ class DS5Controller extends BaseController {
if(data.getUint32(0, false) != 0x83010102) { if(data.getUint32(0, false) != 0x83010102) {
const d1 = dec2hex32(data.getUint32(0, false)); const d1 = dec2hex32(data.getUint32(0, false));
la("ds5_calibrate_sticks_failed", {"s": 3, "d1": d1}); la("ds5_calibrate_sticks_failed", {"s": 3, "d1": d1});
return { ok: false, code: 3, d1 }; throw new Error(`Stick center calibration end failed: ${d1}`);
} }
return { ok: true }; return { ok: true };
} catch(e) { } catch(error) {
la("ds5_calibrate_sticks_end_failed", {"r": e}); la("ds5_calibrate_sticks_end_failed", {"r": e});
return { ok: false, error: String(e) }; return { ok: false, error };
} }
} }
@@ -300,12 +299,12 @@ class DS5Controller extends BaseController {
if(data.getUint32(0, false) != 0x83010201) { if(data.getUint32(0, false) != 0x83010201) {
const d1 = dec2hex32(data.getUint32(0, false)); const d1 = dec2hex32(data.getUint32(0, false));
la("ds5_calibrate_range_begin_failed", {"d1": d1}); la("ds5_calibrate_range_begin_failed", {"d1": d1});
return { ok: false, code: 1, d1 }; throw new Error(`Stick range calibration begin failed: ${d1}`);
} }
return { ok: true }; return { ok: true };
} catch(e) { } catch(error) {
la("ds5_calibrate_range_begin_failed", {"r": e}); la("ds5_calibrate_range_begin_failed", {"r": e});
return { ok: false, error: String(e) }; return { ok: false, error };
} }
} }
@@ -321,13 +320,13 @@ class DS5Controller extends BaseController {
if(data.getUint32(0, false) != 0x83010202) { if(data.getUint32(0, false) != 0x83010202) {
const d1 = dec2hex32(data.getUint32(0, false)); const d1 = dec2hex32(data.getUint32(0, false));
la("ds5_calibrate_range_end_failed", {"d1": d1}); la("ds5_calibrate_range_end_failed", {"d1": d1});
return { ok: false, code: 3, d1 }; throw new Error(`Stick range calibration end failed: ${d1}`);
} }
return { ok: true }; return { ok: true };
} catch(e) { } catch(error) {
la("ds5_calibrate_range_end_failed", {"r": e}); la("ds5_calibrate_range_end_failed", {"r": e});
return { ok: false, error: String(e) }; return { ok: false, error };
} }
} }

View File

@@ -46,7 +46,7 @@ class DS5EdgeController extends DS5Controller {
}; };
} }
} catch(error) { } catch(error) {
throw new Error(this.l("Error while saving changes: ") + String(error)); throw new Error(this.l("Error while saving changes"), { cause: error });
} }
} }

View File

@@ -35,9 +35,66 @@ let controller = null;
function gboot() { function gboot() {
app.gu = crypto.randomUUID(); app.gu = crypto.randomUUID();
$("#infoshowall").hide();
async function initializeApp() { async function initializeApp() {
window.addEventListener("error", (event) => {
console.error(event.error?.stack || event.message);
show_popup(event.error?.message || event.message);
});
window.addEventListener("unhandledrejection", async (event) => {
console.error("Unhandled rejection:", event.reason?.stack || event.reason);
close_all_modals();
// show_popup(event.reason?.message || event.reason);
// Format the error message for better readability
let errorMessage = "An unexpected error occurred";
if (event.reason) {
if (event.reason.message) {
errorMessage = `<strong>Error:</strong> ${event.reason.message}`;
} else if (typeof event.reason === 'string') {
errorMessage = `<strong>Error:</strong> ${event.reason}`;
}
// Collect all stack traces (main error and causes) for a single expandable section
let allStackTraces = '';
if (event.reason.stack) {
const stackTrace = event.reason.stack.replace(/\n/g, '<br>').replace(/ /g, '&nbsp;');
allStackTraces += `<strong>Main Error Stack:</strong><br>${stackTrace}`;
}
// Add error chain information if available (ES2022 error chaining)
let currentError = event.reason;
let chainLevel = 0;
while (currentError?.cause && chainLevel < 5) {
chainLevel++;
currentError = currentError.cause;
if (currentError.stack) {
const causeStackTrace = currentError.stack.replace(/\n/g, '<br>').replace(/ /g, '&nbsp;');
if (allStackTraces) allStackTraces += '<br><br>';
allStackTraces += `<strong>Cause ${chainLevel} Stack:</strong><br>${causeStackTrace}`;
}
}
// Add single expandable section if we have any stack traces
if (allStackTraces) {
errorMessage += `
<br>
<details style="margin-top: 0px;">
<summary style="cursor: pointer; color: #666;">Details</summary>
<div style="font-family: monospace; font-size: 0.85em; margin-top: 8px; padding: 8px; background-color: #f8f9fa; border-radius: 4px; overflow-x: auto;">
${allStackTraces}
</div>
</details>
`;
}
}
errorAlert(errorMessage);
// Prevent the default browser behavior (logging to console, again)
event.preventDefault();
});
await loadAllTemplates(); await loadAllTemplates();
await init_svg_controller(); await init_svg_controller();
@@ -45,19 +102,6 @@ function gboot() {
show_welcome_modal(); show_welcome_modal();
$("input[name='displayMode']").on('change', on_stick_mode_change); $("input[name='displayMode']").on('change', on_stick_mode_change);
window.addEventListener("error", (event) => {
console.error(event.error?.stack || event.message);
show_popup(event.error?.message || event.message);
});
window.addEventListener("unhandledrejection", (event) => {
console.error("Unhandled rejection:", event.reason?.stack || event.reason);
close_all_modals();
show_popup(event.reason?.message || event.reason);
// Prevent the default browser behavior (logging to console, again)
event.preventDefault();
});
} }
// Since modules are deferred, DOM might already be loaded // Since modules are deferred, DOM might already be loaded
@@ -87,6 +131,9 @@ async function connect() {
la("begin"); la("begin");
reset_circularity_mode(); reset_circularity_mode();
clearAllAlerts();
await sleep(200);
try { try {
$("#btnconnect").prop("disabled", true); $("#btnconnect").prop("disabled", true);
$("#connectspinner").show(); $("#connectspinner").show();
@@ -101,11 +148,16 @@ async function connect() {
if (devices.length == 0) { if (devices.length == 0) {
$("#btnconnect").prop("disabled", false); $("#btnconnect").prop("disabled", false);
$("#connectspinner").hide(); $("#connectspinner").hide();
await disconnect();
return; return;
} }
if (devices.length > 1) { if (devices.length > 1) { //mm: this should never happen
throw new Error(l("Please connect only one controller at time.")); infoAlert(l("Please connect only one controller at time."));
$("#btnconnect").prop("disabled", false);
$("#connectspinner").hide();
await disconnect();
return;
} }
const [device] = devices; const [device] = devices;
@@ -117,28 +169,29 @@ async function connect() {
await device.open(); await device.open();
la("connect", {"p": device.productId, "v": device.vendorId}); la("connect", {"p": device.productId, "v": device.vendorId});
device.oninputreport = continue_connection device.oninputreport = continue_connection; // continue below
} catch(error) { } catch(error) {
$("#btnconnect").prop("disabled", false); $("#btnconnect").prop("disabled", false);
$("#connectspinner").hide(); $("#connectspinner").hide();
throw new Error(l("Error: ") + error); await disconnect();
throw error;
} }
} }
async function continue_connection({data, device}) { async function continue_connection({data, device}) {
try { try {
if (!controller || controller.isConnected()) { if (!controller || controller.isConnected()) {
console.log("Already connected. Reset input report handler."); device.oninputreport = null; // this function is called repeatedly if not cleared
controller?.setInputReportHandler(null);
return; return;
} }
let connected = false;
// Detect if the controller is connected via USB // Detect if the controller is connected via USB
const reportLen = data.byteLength; const reportLen = data.byteLength;
if(reportLen != 63) { if(reportLen != 63) {
throw new Error(l("Please connect the device using a USB cable.")); // throw new Error(l("Please connect the device using a USB cable."));
infoAlert(l("The device is connected via Bluetooth. Disconnect and reconnect using a USB cable instead."));
await disconnect();
return;
} }
// Helper to apply basic UI visibility based on device type // Helper to apply basic UI visibility based on device type
@@ -159,20 +212,18 @@ async function continue_connection({data, device}) {
info = await controllerInstance.getInfo(); info = await controllerInstance.getInfo();
} catch (error) { } catch (error) {
if (device) { const contextMessage = device
throw new Error(l("Connected invalid device: ") + dec2hex(device.vendorId) + ":" + dec2hex(device.productId)); ? l("Connected invalid device: ") + dec2hex(device.vendorId) + ":" + dec2hex(device.productId)
} else { : l("Failed to connect to device");
throw new Error(l("Failed to connect to device")); throw new Error(contextMessage, { cause: error });
}
} }
if(!info?.ok) { if(!info?.ok) {
// Not connected/failed to fetch info // Not connected/failed to fetch info
if(info) console.error(JSON.stringify(info, null, 2)); if(info) console.error(JSON.stringify(info, null, 2));
throw new Error(l("Connected invalid device: ") + l("Error 1") + (info?.error ? ` (${info.error}).` : '. ')); throw new Error(l("Connected invalid device: ") + l("Error 1"), { cause: info?.error });
} }
connected = true;
// Get UI configuration and device name // Get UI configuration and device name
const ui = ControllerFactory.getUIConfig(device.productId); const ui = ControllerFactory.getUIConfig(device.productId);
applyDeviceUI(ui); applyDeviceUI(ui);
@@ -198,7 +249,9 @@ async function continue_connection({data, device}) {
// Edge-specific: pending reboot check (from nv) // Edge-specific: pending reboot check (from nv)
if (model == "DS5_Edge" && info?.pending_reboot) { if (model == "DS5_Edge" && info?.pending_reboot) {
throw new Error(l("A reboot is needed to continue using this DualSense Edge. Please disconnect and reconnect your controller.")); infoAlert(l("A reboot is needed to continue using this DualSense Edge. Please disconnect and reconnect your controller."));
await disconnect();
return;
} }
// Render info collected from device // Render info collected from device
@@ -256,8 +309,7 @@ async function disconnect() {
// Wrapper function for HTML onclick handlers // Wrapper function for HTML onclick handlers
function disconnectSync() { function disconnectSync() {
disconnect().catch(error => { disconnect().catch(error => {
console.error("Error during disconnect:", error); throw new Error("Failed to disconnect", { cause: error });
show_popup("Error during disconnect: " + error.message);
}); });
} }
@@ -269,7 +321,7 @@ async function handleDisconnectedDevice(e) {
function render_nvstatus_to_dom(nv) { function render_nvstatus_to_dom(nv) {
if(!nv?.status) { if(!nv?.status) {
throw new Error("Invalid NVS status data"); throw new Error("Invalid NVS status data", { cause: nv?.error });
} }
switch (nv.status) { switch (nv.status) {
@@ -676,7 +728,11 @@ async function flash_all_changes() {
const progressCallback = controller.getModel() == "DS5_Edge" ? set_edge_progress : null; const progressCallback = controller.getModel() == "DS5_Edge" ? set_edge_progress : null;
const result = await controller.flash(progressCallback); const result = await controller.flash(progressCallback);
if (result?.success) { if (result?.success) {
show_popup(result.message, result.isHtml); if(result.isHtml) {
show_popup(result.message, result.isHtml);
} else {
successAlert(result.message);
}
} }
} }
@@ -833,8 +889,8 @@ const trigger_haptic_motors = (() => {
// Stop rumble after duration // Stop rumble after duration
clearTimeout(haptic_timeout); clearTimeout(haptic_timeout);
haptic_timeout = setTimeout(stop_haptic_motors, 250); haptic_timeout = setTimeout(stop_haptic_motors, 250);
} catch(e) { } catch(error) {
throw new Error(l("Error triggering rumble: ") + e); throw new Error(l("Error triggering rumble"), { cause: error });
} }
}; };
})(); })();
@@ -854,15 +910,90 @@ async function stop_haptic_motors() {
} }
// Alert Management Functions
let alertCounter = 0;
/**
* Push a new alert message to the bottom of the screen
* @param {string} message - The message to display
* @param {string} type - Bootstrap alert type: 'primary', 'secondary', 'success', 'danger', 'warning', 'info', 'light', 'dark'
* @param {number} duration - Auto-dismiss duration in milliseconds (0 = no auto-dismiss)
* @param {boolean} dismissible - Whether the alert can be manually dismissed
* @returns {string} - The ID of the created alert element
*/
function pushAlert(message, type = 'info', duration = 0, dismissible = true) {
const alertContainer = document.getElementById('alert-container');
if (!alertContainer) {
console.error('Alert container not found');
return null;
}
const alertId = `alert-${++alertCounter}`;
const alertDiv = document.createElement('div');
alertDiv.id = alertId;
alertDiv.className = `alert alert-${type} alert-dismissible fade show`;
alertDiv.setAttribute('role', 'alert');
alertDiv.innerHTML = `
${message}
${dismissible ? '<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>' : ''}
`;
alertContainer.appendChild(alertDiv);
if (duration > 0) {
setTimeout(() => {
dismissAlert(alertId);
}, duration);
}
return alertId;
}
function dismissAlert(alertId) {
const alertElement = document.getElementById(alertId);
if (alertElement) {
const bsAlert = new bootstrap.Alert(alertElement);
bsAlert.close();
}
}
function clearAllAlerts() {
const alertContainer = document.getElementById('alert-container');
if (alertContainer) {
const alerts = alertContainer.querySelectorAll('.alert');
alerts.forEach(alert => {
const bsAlert = new bootstrap.Alert(alert);
bsAlert.close();
});
}
}
function successAlert(message, duration = 1_500) {
return pushAlert(message, 'success', duration, false);
}
function errorAlert(message, duration = 15_000) {
return pushAlert(message, 'danger', /* duration */);
}
function warningAlert(message, duration = 8_000) {
return pushAlert(message, 'warning', duration);
}
function infoAlert(message, duration = 5_000) {
return pushAlert(message, 'info', duration, false);
}
// Export functions to global scope for HTML onclick handlers // Export functions to global scope for HTML onclick handlers
window.gboot = gboot; window.gboot = gboot;
window.connect = connect; window.connect = connect;
window.disconnect = disconnectSync; window.disconnect = disconnectSync;
window.show_faq_modal = show_faq_modal; window.show_faq_modal = show_faq_modal;
window.show_info_tab = show_info_tab; window.show_info_tab = show_info_tab;
window.calibrate_range = () => calibrate_range(controller, { resetStickDiagrams, show_popup }); window.calibrate_range = () => calibrate_range(controller, { resetStickDiagrams, successAlert });
window.calibrate_stick_centers = () => calibrate_stick_centers(controller, { resetStickDiagrams, show_popup, set_progress }); window.calibrate_stick_centers = () => calibrate_stick_centers(controller, { resetStickDiagrams, show_popup, set_progress });
window.auto_calibrate_stick_centers = () => auto_calibrate_stick_centers(controller, { resetStickDiagrams, show_popup, set_progress }); window.auto_calibrate_stick_centers = () => auto_calibrate_stick_centers(controller, { resetStickDiagrams, successAlert, set_progress });
window.ds5_finetune = () => ds5_finetune(controller, { ll_data, rr_data, clear_circularity }); window.ds5_finetune = () => ds5_finetune(controller, { ll_data, rr_data, clear_circularity });
window.flash_all_changes = flash_all_changes; window.flash_all_changes = flash_all_changes;
window.reboot_controller = reboot_controller; window.reboot_controller = reboot_controller;

View File

@@ -8,10 +8,10 @@ import { l } from '../translations.js';
* Handles step-by-step manual stick center calibration * Handles step-by-step manual stick center calibration
*/ */
export class CalibCenterModal { export class CalibCenterModal {
constructor(controllerInstance, { resetStickDiagrams, show_popup, set_progress }) { constructor(controllerInstance, { resetStickDiagrams, successAlert, set_progress }) {
this.controller = controllerInstance; this.controller = controllerInstance;
this.resetStickDiagrams = resetStickDiagrams; this.resetStickDiagrams = resetStickDiagrams;
this.show_popup = show_popup; this.successAlert = successAlert;
this.set_progress = set_progress; this.set_progress = set_progress;
this._initEventListeners(); this._initEventListeners();
@@ -130,7 +130,7 @@ export class CalibCenterModal {
this.resetStickDiagrams(); this.resetStickDiagrams();
if (result?.message) { if (result?.message) {
this.show_popup(result.message); this.successAlert(result.message);
} }
} }

View File

@@ -7,11 +7,11 @@ import { sleep } from '../utils.js';
* Handles stick range calibration * Handles stick range calibration
*/ */
export class CalibRangeModal { export class CalibRangeModal {
constructor(controllerInstance, { resetStickDiagrams, show_popup }) { constructor(controllerInstance, { resetStickDiagrams, successAlert }) {
// Dependencies // Dependencies
this.controller = controllerInstance; this.controller = controllerInstance;
this.resetStickDiagrams = resetStickDiagrams; this.resetStickDiagrams = resetStickDiagrams;
this.show_popup = show_popup; this.successAlert = successAlert;
} }
async open() { async open() {
@@ -30,7 +30,7 @@ export class CalibRangeModal {
const result = await this.controller.calibrateRangeOnClose(); const result = await this.controller.calibrateRangeOnClose();
if (result?.message) { if (result?.message) {
this.show_popup(result.message); this.successAlert(result.message);
} }
} }
} }

View File

@@ -14,33 +14,28 @@ async function loadTemplate(templateName) {
return templateCache.get(templateName); return templateCache.get(templateName);
} }
try { // Check if we have bundled assets (production mode)
// Check if we have bundled assets (production mode) if (window.BUNDLED_ASSETS && window.BUNDLED_ASSETS.templates) {
if (window.BUNDLED_ASSETS && window.BUNDLED_ASSETS.templates) { const templateHtml = window.BUNDLED_ASSETS.templates[templateName];
const templateHtml = window.BUNDLED_ASSETS.templates[templateName]; if (templateHtml) {
if (templateHtml) { templateCache.set(templateName, templateHtml);
templateCache.set(templateName, templateHtml); return templateHtml;
return templateHtml;
}
} }
// Fallback to fetching from server (development mode)
// Only append .html if the templateName doesn't already have an extension
const hasExtension = templateName.includes('.');
const templatePath = hasExtension ? `templates/${templateName}` : `templates/${templateName}.html`;
const response = await fetch(templatePath);
if (!response.ok) {
throw new Error(`Failed to load template: ${templateName}`);
}
const templateHtml = await response.text();
templateCache.set(templateName, templateHtml);
return templateHtml;
} catch (error) {
console.error(`Error loading template ${templateName}:`, error);
return '';
} }
// Fallback to fetching from server (development mode)
// Only append .html if the templateName doesn't already have an extension
const hasExtension = templateName.includes('.');
const templatePath = hasExtension ? `templates/${templateName}` : `templates/${templateName}.html`;
const response = await fetch(templatePath);
if (!response.ok) {
throw new Error(`Failed to load template: ${templateName}`);
}
const templateHtml = await response.text();
templateCache.set(templateName, templateHtml);
return templateHtml;
} }
/** /**
@@ -49,59 +44,48 @@ async function loadTemplate(templateName) {
* @returns {Promise<string>} - Promise that resolves with the SVG content * @returns {Promise<string>} - Promise that resolves with the SVG content
*/ */
async function loadSvgAsset(assetPath) { async function loadSvgAsset(assetPath) {
try { // Check if we have bundled assets (production mode)
// Check if we have bundled assets (production mode) if (window.BUNDLED_ASSETS && window.BUNDLED_ASSETS.svg) {
if (window.BUNDLED_ASSETS && window.BUNDLED_ASSETS.svg) { const svgContent = window.BUNDLED_ASSETS.svg[assetPath];
const svgContent = window.BUNDLED_ASSETS.svg[assetPath]; if (svgContent) {
if (svgContent) { return svgContent;
return svgContent;
}
} }
// Fallback to fetching from server (development mode)
const response = await fetch(`assets/${assetPath}`);
if (!response.ok) {
throw new Error(`Failed to load SVG asset: ${assetPath}`);
}
return await response.text();
} catch (error) {
console.error(`Error loading SVG asset ${assetPath}:`, error);
return '';
} }
// Fallback to fetching from server (development mode)
const response = await fetch(`assets/${assetPath}`);
if (!response.ok) {
throw new Error(`Failed to load SVG asset: ${assetPath}`);
}
return await response.text();
} }
/** /**
* Load all templates and insert them into the DOM * Load all templates and insert them into the DOM
*/ */
export async function loadAllTemplates() { export async function loadAllTemplates() {
try { // Load SVG icons
// Load SVG icons const iconsHtml = await loadSvgAsset('icons.svg');
const iconsHtml = await loadSvgAsset('icons.svg'); const iconsContainer = document.createElement('div');
const iconsContainer = document.createElement('div'); iconsContainer.innerHTML = iconsHtml;
iconsContainer.innerHTML = iconsHtml; document.body.prepend(iconsContainer);
document.body.prepend(iconsContainer);
// Load modals // Load modals
const faqModalHtml = await loadTemplate('faq-modal'); const faqModalHtml = await loadTemplate('faq-modal');
const popupModalHtml = await loadTemplate('popup-modal'); const popupModalHtml = await loadTemplate('popup-modal');
const finetuneModalHtml = await loadTemplate('finetune-modal'); const finetuneModalHtml = await loadTemplate('finetune-modal');
const calibCenterModalHtml = await loadTemplate('calib-center-modal'); const calibCenterModalHtml = await loadTemplate('calib-center-modal');
const welcomeModalHtml = await loadTemplate('welcome-modal'); const welcomeModalHtml = await loadTemplate('welcome-modal');
const calibrateModalHtml = await loadTemplate('calibrate-modal'); const calibrateModalHtml = await loadTemplate('calibrate-modal');
const rangeModalHtml = await loadTemplate('range-modal'); const rangeModalHtml = await loadTemplate('range-modal');
const edgeProgressModalHtml = await loadTemplate('edge-progress-modal'); const edgeProgressModalHtml = await loadTemplate('edge-progress-modal');
const edgeModalHtml = await loadTemplate('edge-modal'); const edgeModalHtml = await loadTemplate('edge-modal');
const donateModalHtml = await loadTemplate('donate-modal'); const donateModalHtml = await loadTemplate('donate-modal');
// Create modals container // Create modals container
const modalsContainer = document.createElement('div'); const modalsContainer = document.createElement('div');
modalsContainer.id = 'modals-container'; modalsContainer.id = 'modals-container';
modalsContainer.innerHTML = faqModalHtml + popupModalHtml + finetuneModalHtml + calibCenterModalHtml + welcomeModalHtml + calibrateModalHtml + rangeModalHtml + edgeProgressModalHtml + edgeModalHtml + donateModalHtml; modalsContainer.innerHTML = faqModalHtml + popupModalHtml + finetuneModalHtml + calibCenterModalHtml + welcomeModalHtml + calibrateModalHtml + rangeModalHtml + edgeProgressModalHtml + edgeModalHtml + donateModalHtml;
document.body.appendChild(modalsContainer); document.body.appendChild(modalsContainer);
console.log('All templates loaded successfully');
} catch (error) {
console.error('Error loading templates:', error);
}
} }

View File

@@ -34,7 +34,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "الرجاء حرك كلا العصي إلى <b>أسفل اليمين</b> وتركهما.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "الرجاء حرك كلا العصي إلى <b>أسفل اليمين</b> وتركهما.",
"Calibration completed successfully!": "انتهت المعايرة بنجاح!", "Calibration completed successfully!": "انتهت المعايرة بنجاح!",
"Next": "التالي", "Next": "التالي",
"Recentering the controller sticks. ": "إعادة تسجيل عصا وحدة التحكم. ", "Recentering the controller sticks.": "إعادة تسجيل عصا وحدة التحكم.",
"Please do not close this window and do not disconnect your controller. ": "الرجاء عدم إغلاق هذه النافذة وعدم قطع اتصال يد التحكم. ", "Please do not close this window and do not disconnect your controller. ": "الرجاء عدم إغلاق هذه النافذة وعدم قطع اتصال يد التحكم. ",
"Range calibration": "معايرة المدى", "Range calibration": "معايرة المدى",
"<b>The controller is now sampling data!</b>": "<b>يد التحكم تقوم الآن بأخذ عينات من البيانات!</b>", "<b>The controller is now sampling data!</b>": "<b>يد التحكم تقوم الآن بأخذ عينات من البيانات!</b>",
@@ -58,16 +58,16 @@
"SW Version": "إصدار البرمجيات", "SW Version": "إصدار البرمجيات",
"Device Type": "نوع الجهاز", "Device Type": "نوع الجهاز",
"Range calibration completed": "أكملت معايرة المدى", "Range calibration completed": "أكملت معايرة المدى",
"Range calibration failed: ": "فشل في معايرة المدى،", "Range calibration failed": "فشل في معايرة المدى،",
"Cannot unlock NVS": "لا يمكن فتح قفل NVS", "Cannot unlock NVS": "لا يمكن فتح قفل NVS",
"Cannot relock NVS": "لا يمكن إعادة قفل NVS", "Cannot relock NVS": "لا يمكن إعادة قفل NVS",
"Error 1": "خطأ 1", "Error 1": "خطأ 1",
"Error 2": "خطأ 2", "Error 2": "خطأ 2",
"Error 3": "خطأ 3", "Error 3": "خطأ 3",
"Stick calibration failed: ": "فشل في معايرة العصا،", "Stick calibration failed": "فشل في معايرة العصا،",
"Stick calibration completed": "أكملت معايرة العصا", "Stick calibration completed": "أكملت معايرة العصا",
"NVS Lock failed: ": "فشل في قفل NVS", "NVS Lock failed": "فشل في قفل NVS",
"NVS Unlock failed: ": "فشل فتح قفل NVS", "NVS Unlock failed": "فشل فتح قفل NVS",
"Please connect only one controller at time.": "الرجاء ربط يد تحكم واحدة فقط.", "Please connect only one controller at time.": "الرجاء ربط يد تحكم واحدة فقط.",
"Sony DualShock 4 V1": "Sony DualShock 4 الإصدار الأول", "Sony DualShock 4 V1": "Sony DualShock 4 الإصدار الأول",
"Sony DualShock 4 V2": "Sony DualShock 4 الإصدار الثاني", "Sony DualShock 4 V2": "Sony DualShock 4 الإصدار الثاني",
@@ -157,7 +157,7 @@
"Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "تحقق من لمس حواف إطار عصا التحكم وتدويرها ببطء، ويفضل أن يكون ذلك في اتجاه عقارب الساعة وعلى عكس اتجاه عقرب الساعة.", "Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "تحقق من لمس حواف إطار عصا التحكم وتدويرها ببطء، ويفضل أن يكون ذلك في اتجاه عقارب الساعة وعلى عكس اتجاه عقرب الساعة.",
"Only after you have done that, you click on \"Done\".": "فقط بعد أن تقوم بذلك، انقر فوق \"تم\".", "Only after you have done that, you click on \"Done\".": "فقط بعد أن تقوم بذلك، انقر فوق \"تم\".",
"Changes saved successfully": "تم حفظ التغييرات بنجاح", "Changes saved successfully": "تم حفظ التغييرات بنجاح",
"Error while saving changes:": "حدث خطأ أثناء حفظ التغييرات:", "Error while saving changes": "حدث خطأ أثناء حفظ التغييرات:",
"Save changes permanently": "حفظ التغييرات بشكل دائم", "Save changes permanently": "حفظ التغييرات بشكل دائم",
"Reboot controller": "إعادة تشغيل عصا التحكم", "Reboot controller": "إعادة تشغيل عصا التحكم",
"Controller Info": "معلومات عصا التحكم", "Controller Info": "معلومات عصا التحكم",
@@ -209,7 +209,7 @@
"Cosmic Red": "", "Cosmic Red": "",
"Debug": "", "Debug": "",
"DualSense Edge Calibration": "", "DualSense Edge Calibration": "",
"Error triggering rumble: ": "", "Error triggering rumble": "",
"Finetune stick calibration": "", "Finetune stick calibration": "",
"For more info or help, feel free to reach out on Discord.": "", "For more info or help, feel free to reach out on Discord.": "",
"Fortnite": "", "Fortnite": "",

View File

@@ -32,7 +32,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Моля, преместете двата джойстика в <b>долния десен ъгъл</b> и ги освободете.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "Моля, преместете двата джойстика в <b>долния десен ъгъл</b> и ги освободете.",
"Calibration completed successfully!": "Калибрацията завърши успешно!", "Calibration completed successfully!": "Калибрацията завърши успешно!",
"Next": "Следващо", "Next": "Следващо",
"Recentering the controller sticks. ": "Повторно центриране на джойстиците на контролера. ", "Recentering the controller sticks.": "Повторно центриране на джойстиците на контролера.",
"Please do not close this window and do not disconnect your controller. ": "Моля, не затваряйте този прозорец и не изключвайте контролера си. ", "Please do not close this window and do not disconnect your controller. ": "Моля, не затваряйте този прозорец и не изключвайте контролера си. ",
"Range calibration": "Калибриране на обхвата", "Range calibration": "Калибриране на обхвата",
"<b>The controller is now sampling data!</b>": "<b>Контролерът в момента примерява данни!</b>", "<b>The controller is now sampling data!</b>": "<b>Контролерът в момента примерява данни!</b>",
@@ -56,16 +56,16 @@
"SW Version": "Версия на софтуера", "SW Version": "Версия на софтуера",
"Device Type": "Тип устройство", "Device Type": "Тип устройство",
"Range calibration completed": "Калибрация на обхвата завършена", "Range calibration completed": "Калибрация на обхвата завършена",
"Range calibration failed: ": "Калибрация на обхвата неуспешна: ", "Range calibration failed": "Калибрация на обхвата неуспешна",
"Cannot unlock NVS": "Не може да се отключи NVS", "Cannot unlock NVS": "Не може да се отключи NVS",
"Cannot relock NVS": "Не може да се затвори NVS", "Cannot relock NVS": "Не може да се затвори NVS",
"Error 1": "Грешка 1", "Error 1": "Грешка 1",
"Error 2": "Грешка 2", "Error 2": "Грешка 2",
"Error 3": "Грешка 3", "Error 3": "Грешка 3",
"Stick calibration failed: ": "Калибрация на джойстиците неуспешна: ", "Stick calibration failed": "Калибрация на джойстиците неуспешна",
"Stick calibration completed": "Калибрация на джойстиците завършена", "Stick calibration completed": "Калибрация на джойстиците завършена",
"NVS Lock failed: ": "Заключване на NVS неуспешно: ", "NVS Lock failed": "Заключване на NVS неуспешно",
"NVS Unlock failed: ": "Отключване на NVS неуспешно: ", "NVS Unlock failed": "Отключване на NVS неуспешно",
"Please connect only one controller at time.": "Моля, свържете само един контролер по време на", "Please connect only one controller at time.": "Моля, свържете само един контролер по време на",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -155,7 +155,7 @@
"Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Убедете се, че докосвате краищата на рамката на джойстика и завъртате бавно, предпочитано в двете посоки - по часовниковата стрелка и обратно на часовниковата стрелка.", "Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Убедете се, че докосвате краищата на рамката на джойстика и завъртате бавно, предпочитано в двете посоки - по часовниковата стрелка и обратно на часовниковата стрелка.",
"Only after you have done that, you click on \"Done\".": "Само след като сте направили това, натиснете \"Готово\".", "Only after you have done that, you click on \"Done\".": "Само след като сте направили това, натиснете \"Готово\".",
"Changes saved successfully": "Промените са запазени успешно", "Changes saved successfully": "Промените са запазени успешно",
"Error while saving changes:": "Грешка при запазване на промените:", "Error while saving changes": "Грешка при запазване на промените:",
"Save changes permanently": "Запазете промените постоянно", "Save changes permanently": "Запазете промените постоянно",
"Reboot controller": "Рестартирайте контролера", "Reboot controller": "Рестартирайте контролера",
"(beta)": "", "(beta)": "",
@@ -188,7 +188,7 @@
"Debug Info": "", "Debug Info": "",
"Debug buttons": "", "Debug buttons": "",
"DualSense Edge Calibration": "", "DualSense Edge Calibration": "",
"Error triggering rumble: ": "", "Error triggering rumble": "",
"FW Build Date": "", "FW Build Date": "",
"FW Series": "", "FW Series": "",
"FW Type": "", "FW Type": "",

View File

@@ -32,7 +32,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Přesuňte prosím obě páčky do <b>pravého dolního rohu</b> a uvolněte je.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "Přesuňte prosím obě páčky do <b>pravého dolního rohu</b> a uvolněte je.",
"Calibration completed successfully!": "KKalibrace úspěšně dokončena!", "Calibration completed successfully!": "KKalibrace úspěšně dokončena!",
"Next": "Další", "Next": "Další",
"Recentering the controller sticks. ": "Vycentrování páček. ", "Recentering the controller sticks.": "Vycentrování páček.",
"Please do not close this window and do not disconnect your controller. ": "Nezavírejte toto okno a neodpojujte ovladač. ", "Please do not close this window and do not disconnect your controller. ": "Nezavírejte toto okno a neodpojujte ovladač. ",
"Range calibration": "Kalibrace rozsahu", "Range calibration": "Kalibrace rozsahu",
"<b>The controller is now sampling data!</b>": "<b>Regulátor nyní vzorkuje data!</b>", "<b>The controller is now sampling data!</b>": "<b>Regulátor nyní vzorkuje data!</b>",
@@ -56,16 +56,16 @@
"SW Version": "Verze SW", "SW Version": "Verze SW",
"Device Type": "Typ zařízení", "Device Type": "Typ zařízení",
"Range calibration completed": "Kalibrace rozsahu dokončena", "Range calibration completed": "Kalibrace rozsahu dokončena",
"Range calibration failed: ": "Kalibrace rozsahu se nezdařila: ", "Range calibration failed": "Kalibrace rozsahu se nezdařila",
"Cannot unlock NVS": "Nelze odemknout NVS", "Cannot unlock NVS": "Nelze odemknout NVS",
"Cannot relock NVS": "Nelze znovu zamknout NVS", "Cannot relock NVS": "Nelze znovu zamknout NVS",
"Error 1": "Chyba 1", "Error 1": "Chyba 1",
"Error 2": "Chyba 2", "Error 2": "Chyba 2",
"Error 3": "Chyba 3", "Error 3": "Chyba 3",
"Stick calibration failed: ": "Kalibrace páček se nezdařila: ", "Stick calibration failed": "Kalibrace páček se nezdařila",
"Stick calibration completed": "Kalibrace páček dokončena", "Stick calibration completed": "Kalibrace páček dokončena",
"NVS Lock failed: ": "Zámek NVS se nezdařil: ", "NVS Lock failed": "Zámek NVS se nezdařil",
"NVS Unlock failed: ": "Odemknutí NVS se nezdařilo: ", "NVS Unlock failed": "Odemknutí NVS se nezdařilo",
"Please connect only one controller at time.": "Připojte vždy pouze jeden ovladač.", "Please connect only one controller at time.": "Připojte vždy pouze jeden ovladač.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -175,8 +175,8 @@
"Debug buttons": "", "Debug buttons": "",
"Does this software resolve stickdrift?": "", "Does this software resolve stickdrift?": "",
"DualSense Edge Calibration": "", "DualSense Edge Calibration": "",
"Error triggering rumble: ": "", "Error triggering rumble": "",
"Error while saving changes:": "", "Error while saving changes": "",
"FW Build Date": "", "FW Build Date": "",
"FW Series": "", "FW Series": "",
"FW Type": "", "FW Type": "",

View File

@@ -34,7 +34,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Flyt begge styrepinde til det <b>nederste højre hjørne</b>, og slip dem.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "Flyt begge styrepinde til det <b>nederste højre hjørne</b>, og slip dem.",
"Calibration completed successfully!": "Kalibreringen er gennemført med succes!", "Calibration completed successfully!": "Kalibreringen er gennemført med succes!",
"Next": "Næste", "Next": "Næste",
"Recentering the controller sticks. ": "Genjustering af controllerens styrepinde. ", "Recentering the controller sticks.": "Genjustering af controllerens styrepinde.",
"Please do not close this window and do not disconnect your controller. ": "Luk venligst ikke dette vindue, og frakobl ikke din controller. ", "Please do not close this window and do not disconnect your controller. ": "Luk venligst ikke dette vindue, og frakobl ikke din controller. ",
"Range calibration": "Rækkeviddekalibrering", "Range calibration": "Rækkeviddekalibrering",
"<b>The controller is now sampling data!</b>": "<b>Controlleren indsamler nu data!</b>", "<b>The controller is now sampling data!</b>": "<b>Controlleren indsamler nu data!</b>",
@@ -58,16 +58,16 @@
"SW Version": "SW Version", "SW Version": "SW Version",
"Device Type": "Enhedstype", "Device Type": "Enhedstype",
"Range calibration completed": "Rækkeviddekalibrering gennemført", "Range calibration completed": "Rækkeviddekalibrering gennemført",
"Range calibration failed: ": "Rækkeviddekalibrering mislykkedes: ", "Range calibration failed": "Rækkeviddekalibrering mislykkedes",
"Cannot unlock NVS": "Kan ikke låse NVS op", "Cannot unlock NVS": "Kan ikke låse NVS op",
"Cannot relock NVS": "Kan ikke låse NVS igen", "Cannot relock NVS": "Kan ikke låse NVS igen",
"Error 1": "Fejl 1", "Error 1": "Fejl 1",
"Error 2": "Fejl 2", "Error 2": "Fejl 2",
"Error 3": "Fejl 3", "Error 3": "Fejl 3",
"Stick calibration failed: ": "Kalibrering af styrepinde mislykkedes: ", "Stick calibration failed": "Kalibrering af styrepinde mislykkedes",
"Stick calibration completed": "Kalibrering af styrepinde gennemført", "Stick calibration completed": "Kalibrering af styrepinde gennemført",
"NVS Lock failed: ": "NVS låsning mislykkedes: ", "NVS Lock failed": "NVS låsning mislykkedes",
"NVS Unlock failed: ": "NVS oplåsning mislykkedes: ", "NVS Unlock failed": "NVS oplåsning mislykkedes",
"Please connect only one controller at time.": "Forbind kun én controller ad gangen.", "Please connect only one controller at time.": "Forbind kun én controller ad gangen.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -157,7 +157,7 @@
"Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Sørg for at røre ved kanterne af styrepindens ramme og drej langsomt, helst i begge retninger - med uret og mod uret.", "Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Sørg for at røre ved kanterne af styrepindens ramme og drej langsomt, helst i begge retninger - med uret og mod uret.",
"Only after you have done that, you click on \"Done\".": "Først når du har gjort det, skal du klikke på \"Færdig\".", "Only after you have done that, you click on \"Done\".": "Først når du har gjort det, skal du klikke på \"Færdig\".",
"Changes saved successfully": "Ændringer gemt med succes", "Changes saved successfully": "Ændringer gemt med succes",
"Error while saving changes:": "Fejl under gemning af ændringer", "Error while saving changes": "Fejl under gemning af ændringer",
"Save changes permanently": "Gem ændringer permanent", "Save changes permanently": "Gem ændringer permanent",
"Reboot controller": "Genstart Controller", "Reboot controller": "Genstart Controller",
"Controller Info": "Controller Info", "Controller Info": "Controller Info",
@@ -242,7 +242,7 @@
"10x zoom": "10x zoom", "10x zoom": "10x zoom",
"Calibration": "Kalibrering", "Calibration": "Kalibrering",
"Debug": "Fejlfinding", "Debug": "Fejlfinding",
"Error triggering rumble: ": "Fejl ved aktivering af vibration", "Error triggering rumble": "Fejl ved aktivering af vibration",
"Info": "Info", "Info": "Info",
"Normal": "Normal", "Normal": "Normal",
"Please note: the stick modules on the DS Edge <b>cannot be calibrated via software alone</b>.": "Bemærk venligst: Styrepindmodulerne på DS Edge <b>kan ikke kalibreres udelukkende via software</b>.", "Please note: the stick modules on the DS Edge <b>cannot be calibrated via software alone</b>.": "Bemærk venligst: Styrepindmodulerne på DS Edge <b>kan ikke kalibreres udelukkende via software</b>.",

View File

@@ -34,7 +34,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Bewege bitte beide Sticks in die <b>untere rechte Ecke</b> und lasse sie los.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "Bewege bitte beide Sticks in die <b>untere rechte Ecke</b> und lasse sie los.",
"Calibration completed successfully!": "Kalibrierung erfolgreich abgeschlossen!", "Calibration completed successfully!": "Kalibrierung erfolgreich abgeschlossen!",
"Next": "Weiter", "Next": "Weiter",
"Recentering the controller sticks. ": "Controller-Sticks zurücksetzen. ", "Recentering the controller sticks.": "Controller-Sticks zurücksetzen.",
"Please do not close this window and do not disconnect your controller. ": "Bitte schließe das Fenster nicht und trenne deinen Controller nicht. ", "Please do not close this window and do not disconnect your controller. ": "Bitte schließe das Fenster nicht und trenne deinen Controller nicht. ",
"Range calibration": "Bereichskalibrierung", "Range calibration": "Bereichskalibrierung",
"<b>The controller is now sampling data!</b>": "<b>Der Controller erfasst jetzt Daten!</b>", "<b>The controller is now sampling data!</b>": "<b>Der Controller erfasst jetzt Daten!</b>",
@@ -58,16 +58,16 @@
"SW Version": "SW-Version", "SW Version": "SW-Version",
"Device Type": "Gerätetyp", "Device Type": "Gerätetyp",
"Range calibration completed": "Bereichskalibrierung abgeschlossen", "Range calibration completed": "Bereichskalibrierung abgeschlossen",
"Range calibration failed: ": "Bereichskalibrierung fehlgeschlagen: ", "Range calibration failed": "Bereichskalibrierung fehlgeschlagen",
"Cannot unlock NVS": "NVS kann nicht entsperrt werden", "Cannot unlock NVS": "NVS kann nicht entsperrt werden",
"Cannot relock NVS": "NVS kann nicht wieder gesperrt werden", "Cannot relock NVS": "NVS kann nicht wieder gesperrt werden",
"Error 1": "Fehler 1", "Error 1": "Fehler 1",
"Error 2": "Fehler 2", "Error 2": "Fehler 2",
"Error 3": "Fehler 3", "Error 3": "Fehler 3",
"Stick calibration failed: ": "Stick-Kalibrierung fehlgeschlagen: ", "Stick calibration failed": "Stick-Kalibrierung fehlgeschlagen",
"Stick calibration completed": "Stick-Kalibrierung abgeschlossen", "Stick calibration completed": "Stick-Kalibrierung abgeschlossen",
"NVS Lock failed: ": "NVS-Sperrung fehlgeschlagen: ", "NVS Lock failed": "NVS-Sperrung fehlgeschlagen",
"NVS Unlock failed: ": "NVS-Entsperrung fehlgeschlagen: ", "NVS Unlock failed": "NVS-Entsperrung fehlgeschlagen",
"Please connect only one controller at time.": "Bitte verbinde jeweils nur einen Controller.", "Please connect only one controller at time.": "Bitte verbinde jeweils nur einen Controller.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -157,7 +157,7 @@
"Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Stelle sicher, dass du die Ränder des Joystick-Gehäuses berührst und drehe sie langsam, am besten in beide Richtungen.", "Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Stelle sicher, dass du die Ränder des Joystick-Gehäuses berührst und drehe sie langsam, am besten in beide Richtungen.",
"Only after you have done that, you click on \"Done\".": "Erst wenn du das gemacht hast, klickst du auf \"Fertig\".", "Only after you have done that, you click on \"Done\".": "Erst wenn du das gemacht hast, klickst du auf \"Fertig\".",
"Changes saved successfully": "Änderungen erfolgreich gespeichert", "Changes saved successfully": "Änderungen erfolgreich gespeichert",
"Error while saving changes:": "Fehler beim Speichern der Änderungen", "Error while saving changes": "Fehler beim Speichern der Änderungen",
"Save changes permanently": "Änderungen Permanent speichern", "Save changes permanently": "Änderungen Permanent speichern",
"Reboot controller": "Controller Neustarten", "Reboot controller": "Controller Neustarten",
"Controller Info": "Controller Infos", "Controller Info": "Controller Infos",
@@ -207,7 +207,7 @@
"Cosmic Red": "", "Cosmic Red": "",
"Debug": "", "Debug": "",
"DualSense Edge Calibration": "", "DualSense Edge Calibration": "",
"Error triggering rumble: ": "", "Error triggering rumble": "",
"FW Update": "", "FW Update": "",
"FW Update Info": "", "FW Update Info": "",
"FW Version": "", "FW Version": "",

View File

@@ -32,7 +32,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Mueva ambos análogos hacia la esquina <b>inferior-derecha</b> y luego suéltelos.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "Mueva ambos análogos hacia la esquina <b>inferior-derecha</b> y luego suéltelos.",
"Calibration completed successfully!": "Calibración realizada con exito!", "Calibration completed successfully!": "Calibración realizada con exito!",
"Next": "Siguiente", "Next": "Siguiente",
"Recentering the controller sticks. ": "Re-centrando los análogos del mando. ", "Recentering the controller sticks.": "Re-centrando los análogos del mando.",
"Please do not close this window and do not disconnect your controller. ": "Por favor, no cierre esta ventana y/o desconecte el mando. ", "Please do not close this window and do not disconnect your controller. ": "Por favor, no cierre esta ventana y/o desconecte el mando. ",
"Range calibration": "Calibración de rango", "Range calibration": "Calibración de rango",
"<b>The controller is now sampling data!</b>": "<b>El mando ahora esta captando información!</b>", "<b>The controller is now sampling data!</b>": "<b>El mando ahora esta captando información!</b>",
@@ -56,16 +56,16 @@
"SW Version": "Versión SW", "SW Version": "Versión SW",
"Device Type": "Tipo de dispositivo", "Device Type": "Tipo de dispositivo",
"Range calibration completed": "Calibración de Rango completada", "Range calibration completed": "Calibración de Rango completada",
"Range calibration failed: ": "Calibración de Rango fallida", "Range calibration failed": "Calibración de Rango fallida",
"Cannot unlock NVS": "No fue posible desbloquear la NVS", "Cannot unlock NVS": "No fue posible desbloquear la NVS",
"Cannot relock NVS": "No fue posible re-bloquear la NVS", "Cannot relock NVS": "No fue posible re-bloquear la NVS",
"Error 1": "Error 1", "Error 1": "Error 1",
"Error 2": "Error 2", "Error 2": "Error 2",
"Error 3": "Error 3", "Error 3": "Error 3",
"Stick calibration failed: ": "Calibración de análogos fallida: ", "Stick calibration failed": "Calibración de análogos fallida",
"Stick calibration completed": "Calibración de análogos completada", "Stick calibration completed": "Calibración de análogos completada",
"NVS Lock failed: ": "Bloqueo NVS Fallido: ", "NVS Lock failed": "Bloqueo NVS Fallido",
"NVS Unlock failed: ": "Desbloqueo NVS Fallido: ", "NVS Unlock failed": "Desbloqueo NVS Fallido",
"Please connect only one controller at time.": "Por favor, conecte solo un mando a la vez.", "Please connect only one controller at time.": "Por favor, conecte solo un mando a la vez.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -175,8 +175,8 @@
"Debug buttons": "", "Debug buttons": "",
"Does this software resolve stickdrift?": "", "Does this software resolve stickdrift?": "",
"DualSense Edge Calibration": "", "DualSense Edge Calibration": "",
"Error triggering rumble: ": "", "Error triggering rumble": "",
"Error while saving changes:": "", "Error while saving changes": "",
"FW Build Date": "", "FW Build Date": "",
"FW Series": "", "FW Series": "",
"FW Type": "", "FW Type": "",

View File

@@ -32,7 +32,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Veuillez déplacer les deux joysticks <b>en bas à droite</b> puis relachez-les.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "Veuillez déplacer les deux joysticks <b>en bas à droite</b> puis relachez-les.",
"Calibration completed successfully!": "Calibrage terminé avec succès !", "Calibration completed successfully!": "Calibrage terminé avec succès !",
"Next": "Suivant", "Next": "Suivant",
"Recentering the controller sticks. ": "Recentrement des joysticks de la manette en cours. ", "Recentering the controller sticks.": "Recentrement des joysticks de la manette en cours.",
"Please do not close this window and do not disconnect your controller. ": "Veuillez ne pas fermer cette fenêtre et ne déconnectez pas votre manette. ", "Please do not close this window and do not disconnect your controller. ": "Veuillez ne pas fermer cette fenêtre et ne déconnectez pas votre manette. ",
"Range calibration": "Calibrage de la portée du joystick", "Range calibration": "Calibrage de la portée du joystick",
"<b>The controller is now sampling data!</b>": "<b>La manette est maintenant en train d'échantillonner les données !</b>", "<b>The controller is now sampling data!</b>": "<b>La manette est maintenant en train d'échantillonner les données !</b>",
@@ -56,16 +56,16 @@
"SW Version": "Version du SW", "SW Version": "Version du SW",
"Device Type": "Type d'appareil", "Device Type": "Type d'appareil",
"Range calibration completed": "Calibrage de la portée terminé", "Range calibration completed": "Calibrage de la portée terminé",
"Range calibration failed: ": "Échec du calibrage de la portée: ", "Range calibration failed": "Échec du calibrage de la portée",
"Cannot unlock NVS": "Impossible de dévérouiller le NVS", "Cannot unlock NVS": "Impossible de dévérouiller le NVS",
"Cannot relock NVS": "Impossible de vérouiller le NVS", "Cannot relock NVS": "Impossible de vérouiller le NVS",
"Error 1": "Erreur 1", "Error 1": "Erreur 1",
"Error 2": "Erreur 2", "Error 2": "Erreur 2",
"Error 3": "Erreur 3", "Error 3": "Erreur 3",
"Stick calibration failed: ": "Échec du calibrage des joysticks: ", "Stick calibration failed": "Échec du calibrage des joysticks",
"Stick calibration completed": "Calibrage des joysticks terminé", "Stick calibration completed": "Calibrage des joysticks terminé",
"NVS Lock failed: ": "Échec du vérouillage du NVS: ", "NVS Lock failed": "Échec du vérouillage du NVS",
"NVS Unlock failed: ": "Échec du dévérouillage du NVS: ", "NVS Unlock failed": "Échec du dévérouillage du NVS",
"Please connect only one controller at time.": "Veuillez ne connecter qu'une seule manette à la fois.", "Please connect only one controller at time.": "Veuillez ne connecter qu'une seule manette à la fois.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -175,8 +175,8 @@
"Debug buttons": "", "Debug buttons": "",
"Does this software resolve stickdrift?": "", "Does this software resolve stickdrift?": "",
"DualSense Edge Calibration": "", "DualSense Edge Calibration": "",
"Error triggering rumble: ": "", "Error triggering rumble": "",
"Error while saving changes:": "", "Error while saving changes": "",
"FW Build Date": "", "FW Build Date": "",
"FW Series": "", "FW Series": "",
"FW Type": "", "FW Type": "",

View File

@@ -33,7 +33,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Kérlek, mozgasd mindkét hüvelykujjkart átlósan a <b>jobb alsó sarokba</b>, és engedd el őket.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "Kérlek, mozgasd mindkét hüvelykujjkart átlósan a <b>jobb alsó sarokba</b>, és engedd el őket.",
"Calibration completed successfully!": "A kalibrálás sikeresen befejeződött!", "Calibration completed successfully!": "A kalibrálás sikeresen befejeződött!",
"Next": "Következő", "Next": "Következő",
"Recentering the controller sticks. ": "A kontroller hüvelykujjkar középállásának újrakalibrálása. ", "Recentering the controller sticks.": "A kontroller hüvelykujjkar középállásának újrakalibrálása.",
"Please do not close this window and do not disconnect your controller. ": "Kérlek, ne zárd be ezt az ablakot, és ne válaszd le a kontrollert. ", "Please do not close this window and do not disconnect your controller. ": "Kérlek, ne zárd be ezt az ablakot, és ne válaszd le a kontrollert. ",
"Range calibration": "Elmozdulási tartomány kalibrálása", "Range calibration": "Elmozdulási tartomány kalibrálása",
"<b>The controller is now sampling data!</b>": "<b>A kontroller most az adatokat mintavételezi!</b>", "<b>The controller is now sampling data!</b>": "<b>A kontroller most az adatokat mintavételezi!</b>",
@@ -57,16 +57,16 @@
"SW Version": "SW verzió", "SW Version": "SW verzió",
"Device Type": "Eszköz típusa", "Device Type": "Eszköz típusa",
"Range calibration completed": "A tartománykalibráció befejeződött", "Range calibration completed": "A tartománykalibráció befejeződött",
"Range calibration failed: ": "A tartománykalibráció meghiúsult: ", "Range calibration failed": "A tartománykalibráció meghiúsult",
"Cannot unlock NVS": "NVS feloldása nem lehetséges", "Cannot unlock NVS": "NVS feloldása nem lehetséges",
"Cannot relock NVS": "NVS újbóli zárolása nem lehetséges", "Cannot relock NVS": "NVS újbóli zárolása nem lehetséges",
"Error 1": "Hiba 1", "Error 1": "Hiba 1",
"Error 2": "Hiba 2", "Error 2": "Hiba 2",
"Error 3": "Hiba 3", "Error 3": "Hiba 3",
"Stick calibration failed: ": "Hüvelykujjkar kalibrálása sikertelen: ", "Stick calibration failed": "Hüvelykujjkar kalibrálása sikertelen",
"Stick calibration completed": "Hüvelykujjkar kalibrálása befejeződött", "Stick calibration completed": "Hüvelykujjkar kalibrálása befejeződött",
"NVS Lock failed: ": "NVS zárolása sikertelen: ", "NVS Lock failed": "NVS zárolása sikertelen",
"NVS Unlock failed: ": "NVS feloldása sikertelen: ", "NVS Unlock failed": "NVS feloldása sikertelen",
"Please connect only one controller at time.": "Kérlek, egyidejűleg csak egy kontrollert csatlakoztass.", "Please connect only one controller at time.": "Kérlek, egyidejűleg csak egy kontrollert csatlakoztass.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -156,7 +156,7 @@
"Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Ügyelj arra, hogy a hüvelykujjakrok érjenek el a keret széléig és annak mentén forgasd lassan, lehetőleg mindkét irányban - óramutató járásával megegyezően és ellentétesen is.", "Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Ügyelj arra, hogy a hüvelykujjakrok érjenek el a keret széléig és annak mentén forgasd lassan, lehetőleg mindkét irányban - óramutató járásával megegyezően és ellentétesen is.",
"Only after you have done that, you click on \"Done\".": "Csak miután ezt megtetted, azután kattints a \"Kész\" gombra.", "Only after you have done that, you click on \"Done\".": "Csak miután ezt megtetted, azután kattints a \"Kész\" gombra.",
"Changes saved successfully": "A változások sikeresen mentésre kerültek", "Changes saved successfully": "A változások sikeresen mentésre kerültek",
"Error while saving changes:": "A változások mentése közben hiba lépett fel", "Error while saving changes": "A változások mentése közben hiba lépett fel",
"Save changes permanently": "A változtatások végleges mentése a kontrollerbe", "Save changes permanently": "A változtatások végleges mentése a kontrollerbe",
"Reboot controller": "Kontroller újraindítása", "Reboot controller": "Kontroller újraindítása",
"Controller Info": "Információk a kontrollerről", "Controller Info": "Információk a kontrollerről",
@@ -242,7 +242,7 @@
"Chroma Teal": "", "Chroma Teal": "",
"Circularity (R1)": "", "Circularity (R1)": "",
"Debug": "", "Debug": "",
"Error triggering rumble: ": "", "Error triggering rumble": "",
"Fortnite": "", "Fortnite": "",
"Info": "", "Info": "",
"Move the stick to select it for tuning, then without touching the stick use the D-pad buttons to adjust the center point. Flick it and adjust it again if it is off center or flickers.": "", "Move the stick to select it for tuning, then without touching the stick use the D-pad buttons to adjust the center point. Flick it and adjust it again if it is off center or flickers.": "",

View File

@@ -33,7 +33,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Muovi entrambi gli analogici <b>in basso a destra</b> e rilasciali.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "Muovi entrambi gli analogici <b>in basso a destra</b> e rilasciali.",
"Calibration completed successfully!": "Calibrazione completata con successo!", "Calibration completed successfully!": "Calibrazione completata con successo!",
"Next": "Avanti", "Next": "Avanti",
"Recentering the controller sticks. ": "Ricentro gli analogici. ", "Recentering the controller sticks.": "Ricentro gli analogici.",
"Please do not close this window and do not disconnect your controller. ": "Non chiudere questa finestra e non disconnettere il controller. ", "Please do not close this window and do not disconnect your controller. ": "Non chiudere questa finestra e non disconnettere il controller. ",
"Range calibration": "Calibrazione del range", "Range calibration": "Calibrazione del range",
"<b>The controller is now sampling data!</b>": "<b>Il controller sta campionando i dati!</b>", "<b>The controller is now sampling data!</b>": "<b>Il controller sta campionando i dati!</b>",
@@ -57,16 +57,16 @@
"SW Version": "Versione SW", "SW Version": "Versione SW",
"Device Type": "Tipo Device", "Device Type": "Tipo Device",
"Range calibration completed": "Calibrazione range completata", "Range calibration completed": "Calibrazione range completata",
"Range calibration failed: ": "Calibrazione range fallita: ", "Range calibration failed": "Calibrazione range fallita",
"Cannot unlock NVS": "Impossibile sbloccare NVS", "Cannot unlock NVS": "Impossibile sbloccare NVS",
"Cannot relock NVS": "Impossibile ribloccare NVS", "Cannot relock NVS": "Impossibile ribloccare NVS",
"Error 1": "Errore 1", "Error 1": "Errore 1",
"Error 2": "Errore 2", "Error 2": "Errore 2",
"Error 3": "Errore 3", "Error 3": "Errore 3",
"Stick calibration failed: ": "Calibrazione analogici fallita: ", "Stick calibration failed": "Calibrazione analogici fallita",
"Stick calibration completed": "Calibrazione analogici completata", "Stick calibration completed": "Calibrazione analogici completata",
"NVS Lock failed: ": "Blocco NVS fallito: ", "NVS Lock failed": "Blocco NVS fallito",
"NVS Unlock failed: ": "Sblocco NVS fallito: ", "NVS Unlock failed": "Sblocco NVS fallito",
"Please connect only one controller at time.": "Connettere un solo controller alla volta, grazie.", "Please connect only one controller at time.": "Connettere un solo controller alla volta, grazie.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -155,7 +155,7 @@
"Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Assicurati di ruotare gli analogici fino a toccare i bordi, preferibilmente in ogni direzione - senso orario e antiorario.", "Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Assicurati di ruotare gli analogici fino a toccare i bordi, preferibilmente in ogni direzione - senso orario e antiorario.",
"Only after you have done that, you click on \"Done\".": "Solo dopo che hai fatto questo, clicca \"Fatto\".", "Only after you have done that, you click on \"Done\".": "Solo dopo che hai fatto questo, clicca \"Fatto\".",
"Changes saved successfully": "Modifiche salvate con successo", "Changes saved successfully": "Modifiche salvate con successo",
"Error while saving changes:": "Errore nel salvare le modifiche:", "Error while saving changes": "Errore nel salvare le modifiche:",
"Save changes permanently": "Salva i cambiamenti permanentemente", "Save changes permanently": "Salva i cambiamenti permanentemente",
"Reboot controller": "Riavvia il controller", "Reboot controller": "Riavvia il controller",
"Controller Info": "Informazioni sul Controller", "Controller Info": "Informazioni sul Controller",
@@ -244,7 +244,7 @@
"Normal": "Normale", "Normal": "Normale",
"Calibration": "Calibrazione", "Calibration": "Calibrazione",
"Debug": "Debug", "Debug": "Debug",
"Error triggering rumble: ": "Errore nell'avvio della vibrazione: ", "Error triggering rumble": "Errore nell'avvio della vibrazione",
"Info": "Info", "Info": "Info",
"Press L2 to test the strong (left) haptic motor": "Premi L2 per testare il motore forte (sinistro)", "Press L2 to test the strong (left) haptic motor": "Premi L2 per testare il motore forte (sinistro)",
"Press R2 to test the weak (right) haptic motor": "Premi R2 per testare il motore debole (destro)", "Press R2 to test the weak (right) haptic motor": "Premi R2 per testare il motore debole (destro)",
@@ -260,4 +260,4 @@
"Show raw numbers": "Mostra i dati raw", "Show raw numbers": "Mostra i dati raw",
"While holding the stick to be adjusted straight up/down/left/right, <em>observe the highlighted value below the circle</em>, then use the D-pad buttons to adjust the value to ±0.99 (just below ±1.00).": "Mentre tieni lo stick da calibrare verso l'alto, il basso, sinistra o destra, <em>osserva il valore evidenziato sotto il cerchio</em>, quindi usa i pulsanti del D-pad per regolare il valore a ±0.99 (appena sotto ±1.00).", "While holding the stick to be adjusted straight up/down/left/right, <em>observe the highlighted value below the circle</em>, then use the D-pad buttons to adjust the value to ±0.99 (just below ±1.00).": "Mentre tieni lo stick da calibrare verso l'alto, il basso, sinistra o destra, <em>osserva il valore evidenziato sotto il cerchio</em>, quindi usa i pulsanti del D-pad per regolare il valore a ±0.99 (appena sotto ±1.00).",
"": "" "": ""
} }

View File

@@ -32,7 +32,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "両方のスティックを<b>右下の隅</b>に倒して、戻してください。", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "両方のスティックを<b>右下の隅</b>に倒して、戻してください。",
"Calibration completed successfully!": "キャリブレーションが正常に完了しました!", "Calibration completed successfully!": "キャリブレーションが正常に完了しました!",
"Next": "次へ", "Next": "次へ",
"Recentering the controller sticks. ": "コントローラのスティックを再センタリングしています。 ", "Recentering the controller sticks.": "コントローラのスティックを再センタリングしています。",
"Please do not close this window and do not disconnect your controller. ": "このウインドウを閉じたり、コントローラーを切断したりしないでください。 ", "Please do not close this window and do not disconnect your controller. ": "このウインドウを閉じたり、コントローラーを切断したりしないでください。 ",
"Range calibration": "範囲キャリブレーション", "Range calibration": "範囲キャリブレーション",
"<b>The controller is now sampling data!</b>": "<b>コントローラは現在データをサンプリングしています!</b>", "<b>The controller is now sampling data!</b>": "<b>コントローラは現在データをサンプリングしています!</b>",
@@ -56,16 +56,16 @@
"SW Version": "SWバージョン", "SW Version": "SWバージョン",
"Device Type": "デバイスタイプ", "Device Type": "デバイスタイプ",
"Range calibration completed": "範囲キャリブレーションが完了しました", "Range calibration completed": "範囲キャリブレーションが完了しました",
"Range calibration failed: ": "範囲キャリブレーションに失敗しました", "Range calibration failed": "範囲キャリブレーションに失敗しました",
"Cannot unlock NVS": "NVSをロック解除できません", "Cannot unlock NVS": "NVSをロック解除できません",
"Cannot relock NVS": "NVSを再ロックできません", "Cannot relock NVS": "NVSを再ロックできません",
"Error 1": "エラー1", "Error 1": "エラー1",
"Error 2": "エラー2", "Error 2": "エラー2",
"Error 3": "エラー3", "Error 3": "エラー3",
"Stick calibration failed: ": "スティックのキャリブレーションに失敗しました", "Stick calibration failed": "スティックのキャリブレーションに失敗しました",
"Stick calibration completed": "スティックのキャリブレーションが完了しました", "Stick calibration completed": "スティックのキャリブレーションが完了しました",
"NVS Lock failed: ": "NVSロックに失敗しました", "NVS Lock failed": "NVSロックに失敗しました",
"NVS Unlock failed: ": "NVSロック解除に失敗しました", "NVS Unlock failed": "NVSロック解除に失敗しました",
"Please connect only one controller at time.": "コントローラーは、一度に一つのみ接続してください。", "Please connect only one controller at time.": "コントローラーは、一度に一つのみ接続してください。",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -184,8 +184,8 @@
"Debug buttons": "", "Debug buttons": "",
"Does this software resolve stickdrift?": "", "Does this software resolve stickdrift?": "",
"DualSense Edge Calibration": "", "DualSense Edge Calibration": "",
"Error triggering rumble: ": "", "Error triggering rumble": "",
"Error while saving changes:": "", "Error while saving changes": "",
"FW Build Date": "", "FW Build Date": "",
"FW Series": "", "FW Series": "",
"FW Type": "", "FW Type": "",

View File

@@ -33,7 +33,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "양쪽 스틱을 <b>오른쪽 아래</b> 방향으로 끝까지 민 다음 놓아주세요.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "양쪽 스틱을 <b>오른쪽 아래</b> 방향으로 끝까지 민 다음 놓아주세요.",
"Calibration completed successfully!": "보정이 성공적으로 완료되었습니다!", "Calibration completed successfully!": "보정이 성공적으로 완료되었습니다!",
"Next": "다음", "Next": "다음",
"Recentering the controller sticks. ": "컨트롤러 스틱 중앙을 다시 설정하는 중입니다.", "Recentering the controller sticks.": "컨트롤러 스틱 중앙을 다시 설정하는 중입니다.",
"Please do not close this window and do not disconnect your controller. ": "이 창을 닫거나 컨트롤러 연결을 해제하지 마십시오.", "Please do not close this window and do not disconnect your controller. ": "이 창을 닫거나 컨트롤러 연결을 해제하지 마십시오.",
"Range calibration": "범위 보정", "Range calibration": "범위 보정",
"<b>The controller is now sampling data!</b>": "<b>컨트롤러가 데이터 샘플링을 시작했습니다!</b>", "<b>The controller is now sampling data!</b>": "<b>컨트롤러가 데이터 샘플링을 시작했습니다!</b>",
@@ -57,16 +57,16 @@
"SW Version": "소프트웨어 버전", "SW Version": "소프트웨어 버전",
"Device Type": "기기 종류", "Device Type": "기기 종류",
"Range calibration completed": "범위 보정이 완료되었습니다.", "Range calibration completed": "범위 보정이 완료되었습니다.",
"Range calibration failed: ": "범위 보정에 실패했습니다:", "Range calibration failed": "범위 보정에 실패했습니다",
"Cannot unlock NVS": "NVS를 잠금 해제할 수 없습니다.", "Cannot unlock NVS": "NVS를 잠금 해제할 수 없습니다.",
"Cannot relock NVS": "NVS를 다시 잠글 수 없습니다.", "Cannot relock NVS": "NVS를 다시 잠글 수 없습니다.",
"Error 1": "오류 1", "Error 1": "오류 1",
"Error 2": "오류 2", "Error 2": "오류 2",
"Error 3": "오류 3", "Error 3": "오류 3",
"Stick calibration failed: ": "스틱 보정에 실패했습니다:", "Stick calibration failed": "스틱 보정에 실패했습니다",
"Stick calibration completed": "스틱 보정이 완료되었습니다.", "Stick calibration completed": "스틱 보정이 완료되었습니다.",
"NVS Lock failed: ": "NVS 잠금에 실패했습니다:", "NVS Lock failed": "NVS 잠금에 실패했습니다",
"NVS Unlock failed: ": "NVS 잠금 해제에 실패했습니다:", "NVS Unlock failed": "NVS 잠금 해제에 실패했습니다",
"Please connect only one controller at time.": "한 번에 하나의 컨트롤러만 연결해주세요.", "Please connect only one controller at time.": "한 번에 하나의 컨트롤러만 연결해주세요.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -156,7 +156,7 @@
"Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "조이스틱 프레임 가장자리까지 닿도록 천천히, 가급적 시계 방향과 시계 반대 방향으로 모두 돌려주세요.", "Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "조이스틱 프레임 가장자리까지 닿도록 천천히, 가급적 시계 방향과 시계 반대 방향으로 모두 돌려주세요.",
"Only after you have done that, you click on \"Done\".": "그 과정을 마친 후에 \"완료\"를 클릭해야 합니다.", "Only after you have done that, you click on \"Done\".": "그 과정을 마친 후에 \"완료\"를 클릭해야 합니다.",
"Changes saved successfully": "변경 사항이 성공적으로 저장되었습니다.", "Changes saved successfully": "변경 사항이 성공적으로 저장되었습니다.",
"Error while saving changes:": "변경 사항 저장 중 오류 발생:", "Error while saving changes": "변경 사항 저장 중 오류 발생",
"Save changes permanently": "변경 사항 영구 저장", "Save changes permanently": "변경 사항 영구 저장",
"Reboot controller": "컨트롤러 재부팅", "Reboot controller": "컨트롤러 재부팅",
"Controller Info": "컨트롤러 정보", "Controller Info": "컨트롤러 정보",
@@ -208,7 +208,7 @@
"Cosmic Red": "코스믹 레드", "Cosmic Red": "코스믹 레드",
"Debug": "디버그", "Debug": "디버그",
"DualSense Edge Calibration": "DualSense Edge 보정", "DualSense Edge Calibration": "DualSense Edge 보정",
"Error triggering rumble: ": "진동 활성화 오류: ", "Error triggering rumble": "진동 활성화 오류",
"Finetune stick calibration": "스틱 보정 미세 조정", "Finetune stick calibration": "스틱 보정 미세 조정",
"For more info or help, feel free to reach out on Discord.": "더 많은 정보나 도움이 필요하시면 Discord로 문의해주세요.", "For more info or help, feel free to reach out on Discord.": "더 많은 정보나 도움이 필요하시면 Discord로 문의해주세요.",
"Fortnite": "포트나이트", "Fortnite": "포트나이트",

View File

@@ -32,7 +32,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Verplaats alstublieft beide sticks in de <b>rechter onderhoek</b> en laat ze los.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "Verplaats alstublieft beide sticks in de <b>rechter onderhoek</b> en laat ze los.",
"Calibration completed successfully!": "Kalibratie succesvol voltooid!", "Calibration completed successfully!": "Kalibratie succesvol voltooid!",
"Next": "Next", "Next": "Next",
"Recentering the controller sticks. ": "Her-centreer de controller sticks. ", "Recentering the controller sticks.": "Her-centreer de controller sticks.",
"Please do not close this window and do not disconnect your controller. ": "Sluit dit venster niet en koppel uw controller niet los. ", "Please do not close this window and do not disconnect your controller. ": "Sluit dit venster niet en koppel uw controller niet los. ",
"Range calibration": "Bereik kalibratie", "Range calibration": "Bereik kalibratie",
"<b>The controller is now sampling data!</b>": "<b>De controller verzamelt nu gegevens!</b>", "<b>The controller is now sampling data!</b>": "<b>De controller verzamelt nu gegevens!</b>",
@@ -56,16 +56,16 @@
"SW Version": "SW-versie", "SW Version": "SW-versie",
"Device Type": "Apparaat type", "Device Type": "Apparaat type",
"Range calibration completed": "Kalibratie van het bereik is voltooid", "Range calibration completed": "Kalibratie van het bereik is voltooid",
"Range calibration failed: ": " Kalibratie van het bereik is mislukt: ", "Range calibration failed": " Kalibratie van het bereik is mislukt",
"Cannot unlock NVS": " Kan NVS niet ontgrendelen", "Cannot unlock NVS": " Kan NVS niet ontgrendelen",
"Cannot relock NVS": "Kan NVS niet opnieuw vergrendelen", "Cannot relock NVS": "Kan NVS niet opnieuw vergrendelen",
"Error 1": "Fout 1", "Error 1": "Fout 1",
"Error 2": "Fout 2", "Error 2": "Fout 2",
"Error 3": "Fout 3", "Error 3": "Fout 3",
"Stick calibration failed: ": "Stick kalibratie mislukt: ", "Stick calibration failed": "Stick kalibratie mislukt",
"Stick calibration completed": "Stick kalibratie voltooid", "Stick calibration completed": "Stick kalibratie voltooid",
"NVS Lock failed: ": "NVS vergrendeling mislukt: ", "NVS Lock failed": "NVS vergrendeling mislukt",
"NVS Unlock failed: ": "NVS ontgrendeling mislukt: ", "NVS Unlock failed": "NVS ontgrendeling mislukt",
"Please connect only one controller at time.": "Sluit slechts één controller tegelijk aan.", "Please connect only one controller at time.": "Sluit slechts één controller tegelijk aan.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -175,8 +175,8 @@
"Debug buttons": "", "Debug buttons": "",
"Does this software resolve stickdrift?": "", "Does this software resolve stickdrift?": "",
"DualSense Edge Calibration": "", "DualSense Edge Calibration": "",
"Error triggering rumble: ": "", "Error triggering rumble": "",
"Error while saving changes:": "", "Error while saving changes": "",
"FW Build Date": "", "FW Build Date": "",
"FW Series": "", "FW Series": "",
"FW Type": "", "FW Type": "",

View File

@@ -34,7 +34,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Proszę przesuń oba drążki maksymalnie do <b>prawy-dolny-róg</b> a następnie je puść.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "Proszę przesuń oba drążki maksymalnie do <b>prawy-dolny-róg</b> a następnie je puść.",
"Calibration completed successfully!": "Kalibracja została wykonana pomyślnie!", "Calibration completed successfully!": "Kalibracja została wykonana pomyślnie!",
"Next": "Dalej", "Next": "Dalej",
"Recentering the controller sticks. ": "Ponowne centrowanie drążków kontrolera. ", "Recentering the controller sticks.": "Ponowne centrowanie drążków kontrolera.",
"Please do not close this window and do not disconnect your controller. ": "Proszę nie zamykaj tego okna, ani nie odłączaj swojego kontrolera. ", "Please do not close this window and do not disconnect your controller. ": "Proszę nie zamykaj tego okna, ani nie odłączaj swojego kontrolera. ",
"Range calibration": "Kalibracja maksymalnego zakresu drążków", "Range calibration": "Kalibracja maksymalnego zakresu drążków",
"<b>The controller is now sampling data!</b>": "<b>Kontroler zbiera teraz dane!</b>", "<b>The controller is now sampling data!</b>": "<b>Kontroler zbiera teraz dane!</b>",
@@ -58,16 +58,16 @@
"SW Version": "Wersja SW", "SW Version": "Wersja SW",
"Device Type": "Rodzaj urządzenia", "Device Type": "Rodzaj urządzenia",
"Range calibration completed": "Kalibracja maksymalnego zakresu drążków została zakończona pomyślnie", "Range calibration completed": "Kalibracja maksymalnego zakresu drążków została zakończona pomyślnie",
"Range calibration failed: ": "Kalibracja maksymalnego zakresu drążków została nieuadana: ", "Range calibration failed": "Kalibracja maksymalnego zakresu drążków została nieuadana",
"Cannot unlock NVS": "Nie można odblokować NVS", "Cannot unlock NVS": "Nie można odblokować NVS",
"Cannot relock NVS": "Nie można ponownie zablokować NVS", "Cannot relock NVS": "Nie można ponownie zablokować NVS",
"Error 1": "Błąd 1", "Error 1": "Błąd 1",
"Error 2": "Błąd 2", "Error 2": "Błąd 2",
"Error 3": "Błąd 3", "Error 3": "Błąd 3",
"Stick calibration failed: ": "Kalibracja drążków nie powiodła się: ", "Stick calibration failed": "Kalibracja drążków nie powiodła się",
"Stick calibration completed": "Kalibracja drążków powiodła się", "Stick calibration completed": "Kalibracja drążków powiodła się",
"NVS Lock failed: ": "Blokada NVS nie powiodła się: ", "NVS Lock failed": "Blokada NVS nie powiodła się",
"NVS Unlock failed: ": "Odblokowanie NVS nie powiodło się: ", "NVS Unlock failed": "Odblokowanie NVS nie powiodło się",
"Please connect only one controller at time.": "Proszę podłączyć tylko jeden kontoler.", "Please connect only one controller at time.": "Proszę podłączyć tylko jeden kontoler.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -157,7 +157,7 @@
"Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Pamiętaj o dotykaniu krawędzi ramki drążka i jego powolnym obracaniu, najlepiej w każdym kierunku zgodnie z ruchem wskazówek zegara, i na odwrót.", "Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Pamiętaj o dotykaniu krawędzi ramki drążka i jego powolnym obracaniu, najlepiej w każdym kierunku zgodnie z ruchem wskazówek zegara, i na odwrót.",
"Only after you have done that, you click on \"Done\".": "Dopiero po wykonaniu tej czynności, kliknij \"Gotowe\".", "Only after you have done that, you click on \"Done\".": "Dopiero po wykonaniu tej czynności, kliknij \"Gotowe\".",
"Changes saved successfully": "Zmiany zostały zapisane pomyślnie", "Changes saved successfully": "Zmiany zostały zapisane pomyślnie",
"Error while saving changes:": "Wystąpił błąd podczas zapisywania zmian", "Error while saving changes": "Wystąpił błąd podczas zapisywania zmian",
"Save changes permanently": "Zapisz zmiany permanentnie", "Save changes permanently": "Zapisz zmiany permanentnie",
"Reboot controller": "Uruchom ponownie kontroler", "Reboot controller": "Uruchom ponownie kontroler",
"Controller Info": "Informacje o kontrolerze", "Controller Info": "Informacje o kontrolerze",
@@ -244,7 +244,7 @@
"10x zoom": "10-krotne przybliżenie", "10x zoom": "10-krotne przybliżenie",
"Calibration": "Kalibracja", "Calibration": "Kalibracja",
"Debug": "Wyszukiwanie błędów", "Debug": "Wyszukiwanie błędów",
"Error triggering rumble: ": "Błąd wyzwalania wibracji: ", "Error triggering rumble": "Błąd wyzwalania wibracji",
"Info": "Informacje", "Info": "Informacje",
"Normal": "Normalne", "Normal": "Normalne",
"Press L2 to test the strong (left) haptic motor": "Naciśnij L2 by sprawdzić silniejszy (lewy) silnik haptyczny", "Press L2 to test the strong (left) haptic motor": "Naciśnij L2 by sprawdzić silniejszy (lewy) silnik haptyczny",

View File

@@ -32,7 +32,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Mova ambos os analógicos para o <b>canto inferior direito</b> e solte-os.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "Mova ambos os analógicos para o <b>canto inferior direito</b> e solte-os.",
"Calibration completed successfully!": "Calibração concluída com sucesso!", "Calibration completed successfully!": "Calibração concluída com sucesso!",
"Next": "Próximo", "Next": "Próximo",
"Recentering the controller sticks. ": "Recentrando os analógicos do controle. ", "Recentering the controller sticks.": "Recentrando os analógicos do controle.",
"Please do not close this window and do not disconnect your controller. ": "Por favor, não feche esta janela e não desconecte seu controle. ", "Please do not close this window and do not disconnect your controller. ": "Por favor, não feche esta janela e não desconecte seu controle. ",
"Range calibration": "Calibração do intervalo", "Range calibration": "Calibração do intervalo",
"<b>The controller is now sampling data!</b>": "<b>O controlador está agora a amostrar dados!</b>", "<b>The controller is now sampling data!</b>": "<b>O controlador está agora a amostrar dados!</b>",
@@ -56,16 +56,16 @@
"SW Version": "Versão SW", "SW Version": "Versão SW",
"Device Type": "Tipo de Dispositivo", "Device Type": "Tipo de Dispositivo",
"Range calibration completed": "Calibração de alcance completa", "Range calibration completed": "Calibração de alcance completa",
"Range calibration failed: ": "Calibração de alcance falhou: ", "Range calibration failed": "Calibração de alcance falhou",
"Cannot unlock NVS": "Não é possível desbloquear NVS", "Cannot unlock NVS": "Não é possível desbloquear NVS",
"Cannot relock NVS": "Não é possível bloquear NVS", "Cannot relock NVS": "Não é possível bloquear NVS",
"Error 1": "Erro 1", "Error 1": "Erro 1",
"Error 2": "Erro 2", "Error 2": "Erro 2",
"Error 3": "Erro 3", "Error 3": "Erro 3",
"Stick calibration failed: ": "Calibração de analógico falhou: ", "Stick calibration failed": "Calibração de analógico falhou",
"Stick calibration completed": "Calibração de analógico completa", "Stick calibration completed": "Calibração de analógico completa",
"NVS Lock failed: ": "Bloqueio de NVS falhou: ", "NVS Lock failed": "Bloqueio de NVS falhou",
"NVS Unlock failed: ": "Desbloqueio de NVS falhou: ", "NVS Unlock failed": "Desbloqueio de NVS falhou",
"Please connect only one controller at time.": "Por favor, conecte somente um controle por vez.", "Please connect only one controller at time.": "Por favor, conecte somente um controle por vez.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -155,7 +155,7 @@
"Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Certifique-se de encostar nos limites do analógico e rotacione lentamente, prefrerencialmente em cada direção.", "Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Certifique-se de encostar nos limites do analógico e rotacione lentamente, prefrerencialmente em cada direção.",
"Only after you have done that, you click on \"Done\".": "Somente após você fazer isso, você clica em \"Concluído\"", "Only after you have done that, you click on \"Done\".": "Somente após você fazer isso, você clica em \"Concluído\"",
"Changes saved successfully": "Alterações salvas com sucesso", "Changes saved successfully": "Alterações salvas com sucesso",
"Error while saving changes:": "Erro ao salvar as alterações.", "Error while saving changes": "Erro ao salvar as alterações.",
"Save changes permanently": "Salvar alterações permanentemente.", "Save changes permanently": "Salvar alterações permanentemente.",
"Reboot controller": "Reiniciar controle", "Reboot controller": "Reiniciar controle",
"(beta)": "(beta)", "(beta)": "(beta)",
@@ -188,7 +188,7 @@
"Debug Info": "", "Debug Info": "",
"Debug buttons": "", "Debug buttons": "",
"DualSense Edge Calibration": "", "DualSense Edge Calibration": "",
"Error triggering rumble: ": "", "Error triggering rumble": "",
"FW Build Date": "", "FW Build Date": "",
"FW Series": "", "FW Series": "",
"FW Type": "", "FW Type": "",

View File

@@ -32,7 +32,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Mova ambos os joysticks para o <b>canto inferior direito</b> e solte-os.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "Mova ambos os joysticks para o <b>canto inferior direito</b> e solte-os.",
"Calibration completed successfully!": "Calibração concluída com sucesso!", "Calibration completed successfully!": "Calibração concluída com sucesso!",
"Next": "Próximo", "Next": "Próximo",
"Recentering the controller sticks. ": "A recentrar os manípulos do controlador", "Recentering the controller sticks.": "A recentrar os manípulos do controlador.",
"Please do not close this window and do not disconnect your controller. ": "Por favor, não feche esta janela e não desconecte o seu controlador. ", "Please do not close this window and do not disconnect your controller. ": "Por favor, não feche esta janela e não desconecte o seu controlador. ",
"Range calibration": "Calibração de alcançe", "Range calibration": "Calibração de alcançe",
"<b>The controller is now sampling data!</b>": "<b>O controlador está agora a recolher dados!</b>", "<b>The controller is now sampling data!</b>": "<b>O controlador está agora a recolher dados!</b>",
@@ -56,16 +56,16 @@
"SW Version": "Versão SW", "SW Version": "Versão SW",
"Device Type": "Tipo de Dispositivo", "Device Type": "Tipo de Dispositivo",
"Range calibration completed": "Calibração de alcance completa", "Range calibration completed": "Calibração de alcance completa",
"Range calibration failed: ": "Calibração de alcance falhou: ", "Range calibration failed": "Calibração de alcance falhou",
"Cannot unlock NVS": "Não é possível desbloquear NVS", "Cannot unlock NVS": "Não é possível desbloquear NVS",
"Cannot relock NVS": "Não é possível bloquear NVS", "Cannot relock NVS": "Não é possível bloquear NVS",
"Error 1": "Erro 1", "Error 1": "Erro 1",
"Error 2": "Erro 2", "Error 2": "Erro 2",
"Error 3": "Erro 3", "Error 3": "Erro 3",
"Stick calibration failed: ": "Calibração do joystick falhou: ", "Stick calibration failed": "Calibração do joystick falhou",
"Stick calibration completed": "Calibração do joystick completa", "Stick calibration completed": "Calibração do joystick completa",
"NVS Lock failed: ": "Bloqueio de NVS falhou: ", "NVS Lock failed": "Bloqueio de NVS falhou",
"NVS Unlock failed: ": "Desbloqueio de NVS falhou: ", "NVS Unlock failed": "Desbloqueio de NVS falhou",
"Please connect only one controller at time.": "Por favor, ligue apenas um controlador de cada vez.", "Please connect only one controller at time.": "Por favor, ligue apenas um controlador de cada vez.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -155,7 +155,7 @@
"Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Certifique-se que toca nas extremidades da estrutura do Joystick e gire lentamente, de prefrerencia em ambas as direções - no sentido dos ponteiros do relógio e no sentido contrário.", "Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Certifique-se que toca nas extremidades da estrutura do Joystick e gire lentamente, de prefrerencia em ambas as direções - no sentido dos ponteiros do relógio e no sentido contrário.",
"Only after you have done that, you click on \"Done\".": "So depois de o fazer, clique em \"Concluído\".", "Only after you have done that, you click on \"Done\".": "So depois de o fazer, clique em \"Concluído\".",
"Changes saved successfully": "Alterações salvas com sucesso", "Changes saved successfully": "Alterações salvas com sucesso",
"Error while saving changes:": "Erro ao salvar as alterações.", "Error while saving changes": "Erro ao salvar as alterações.",
"Save changes permanently": "Salvar alterações permanentemente.", "Save changes permanently": "Salvar alterações permanentemente.",
"Reboot controller": "Reiniciar controlador", "Reboot controller": "Reiniciar controlador",
"(beta)": "(beta)", "(beta)": "(beta)",
@@ -233,7 +233,7 @@
"Cobalt Blue": "", "Cobalt Blue": "",
"Cosmic Red": "", "Cosmic Red": "",
"Debug": "", "Debug": "",
"Error triggering rumble: ": "", "Error triggering rumble": "",
"Fortnite": "", "Fortnite": "",
"Galactic Purple": "", "Galactic Purple": "",
"God of War Ragnarok": "", "God of War Ragnarok": "",

View File

@@ -33,7 +33,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Molimo vas da pomerite oba džojstika u <b>donji desni ugao</b> i zatim ih otpustite.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "Molimo vas da pomerite oba džojstika u <b>donji desni ugao</b> i zatim ih otpustite.",
"Calibration completed successfully!": "Kalibracija je uspešno završena!", "Calibration completed successfully!": "Kalibracija je uspešno završena!",
"Next": "Sledeće", "Next": "Sledeće",
"Recentering the controller sticks. ": "Ponovno centriranje džojstika kontrolera. ", "Recentering the controller sticks.": "Ponovno centriranje džojstika kontrolera.",
"Please do not close this window and do not disconnect your controller. ": "Molimo vas da ne zatvarate ovaj prozor i da ne prekidate vezu sa kontrolerom. ", "Please do not close this window and do not disconnect your controller. ": "Molimo vas da ne zatvarate ovaj prozor i da ne prekidate vezu sa kontrolerom. ",
"Range calibration": "Kalibracija opsega džojstika", "Range calibration": "Kalibracija opsega džojstika",
"<b>The controller is now sampling data!</b>": "<b>Kontroler sada prikuplja podatke!</b>", "<b>The controller is now sampling data!</b>": "<b>Kontroler sada prikuplja podatke!</b>",
@@ -57,16 +57,16 @@
"SW Version": "Verzija softvera", "SW Version": "Verzija softvera",
"Device Type": "Tip uređaja", "Device Type": "Tip uređaja",
"Range calibration completed": "Kalibracija opsega završena", "Range calibration completed": "Kalibracija opsega završena",
"Range calibration failed: ": "Kalibracija opsega nije uspela: ", "Range calibration failed": "Kalibracija opsega nije uspela",
"Cannot unlock NVS": "Nije moguće otključati NVS", "Cannot unlock NVS": "Nije moguće otključati NVS",
"Cannot relock NVS": "Nije moguće zaključati NVS", "Cannot relock NVS": "Nije moguće zaključati NVS",
"Error 1": "Greška 1", "Error 1": "Greška 1",
"Error 2": "Greška 2", "Error 2": "Greška 2",
"Error 3": "Greška 3", "Error 3": "Greška 3",
"Stick calibration failed: ": "Kalibracija džojstika nije uspela: ", "Stick calibration failed": "Kalibracija džojstika nije uspela",
"Stick calibration completed": "Kalibracija džojstika završena", "Stick calibration completed": "Kalibracija džojstika završena",
"NVS Lock failed: ": "Zaključavanje NVS nije uspelo: ", "NVS Lock failed": "Zaključavanje NVS nije uspelo",
"NVS Unlock failed: ": "Otključavanje NVS nije uspelo: ", "NVS Unlock failed": "Otključavanje NVS nije uspelo",
"Please connect only one controller at time.": "Molimo vas da povežete samo jedan kontroler istovremeno.", "Please connect only one controller at time.": "Molimo vas da povežete samo jedan kontroler istovremeno.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -156,7 +156,7 @@
"Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Obavezno dodirnite ivice okvira džojstika i rotirajte polako, po mogućstvu u oba pravca - u smeru kazaljke na satu i suprotno.", "Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Obavezno dodirnite ivice okvira džojstika i rotirajte polako, po mogućstvu u oba pravca - u smeru kazaljke na satu i suprotno.",
"Only after you have done that, you click on \"Done\".": "Tek nakon što to uradite, kliknite na \"Završeno\".", "Only after you have done that, you click on \"Done\".": "Tek nakon što to uradite, kliknite na \"Završeno\".",
"Changes saved successfully": "Promene uspešno sačuvane", "Changes saved successfully": "Promene uspešno sačuvane",
"Error while saving changes:": "Greška prilikom čuvanja promena:", "Error while saving changes": "Greška prilikom čuvanja promena:",
"Save changes permanently": "Sačuvaj promene trajno", "Save changes permanently": "Sačuvaj promene trajno",
"Reboot controller": "Ponovo pokreni kontroler", "Reboot controller": "Ponovo pokreni kontroler",
"Controller Info": "Informacije o kontroleru", "Controller Info": "Informacije o kontroleru",
@@ -217,7 +217,7 @@
"Cosmic Red": "", "Cosmic Red": "",
"Debug": "", "Debug": "",
"DualSense Edge Calibration": "", "DualSense Edge Calibration": "",
"Error triggering rumble: ": "", "Error triggering rumble": "",
"For more info or help, feel free to reach out on Discord.": "", "For more info or help, feel free to reach out on Discord.": "",
"Fortnite": "", "Fortnite": "",
"Galactic Purple": "", "Galactic Purple": "",

View File

@@ -32,7 +32,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Пожалуйста, переместите оба джойстика в <b>нижний правый угол</b> и отпустите их.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "Пожалуйста, переместите оба джойстика в <b>нижний правый угол</b> и отпустите их.",
"Calibration completed successfully!": "Калибровка успешно завершена!", "Calibration completed successfully!": "Калибровка успешно завершена!",
"Next": "Далее", "Next": "Далее",
"Recentering the controller sticks. ": "Центрирование стиков контроллера. ", "Recentering the controller sticks.": "Центрирование стиков контроллера.",
"Please do not close this window and do not disconnect your controller. ": "Пожалуйста, не закрывайте это окно и не отключайте контроллер. ", "Please do not close this window and do not disconnect your controller. ": "Пожалуйста, не закрывайте это окно и не отключайте контроллер. ",
"Range calibration": "Калибровка диапазона", "Range calibration": "Калибровка диапазона",
"<b>The controller is now sampling data!</b>": "<b>Контроллер в настоящее время собирает данные!</b>", "<b>The controller is now sampling data!</b>": "<b>Контроллер в настоящее время собирает данные!</b>",
@@ -56,16 +56,16 @@
"SW Version": "Версия программного обеспечения", "SW Version": "Версия программного обеспечения",
"Device Type": "Тип устройства", "Device Type": "Тип устройства",
"Range calibration completed": "Калибровка диапазона завершена", "Range calibration completed": "Калибровка диапазона завершена",
"Range calibration failed: ": "Калибровка диапазона не удалась: ", "Range calibration failed": "Калибровка диапазона не удалась",
"Cannot unlock NVS": "Не удается разблокировать NVS", "Cannot unlock NVS": "Не удается разблокировать NVS",
"Cannot relock NVS": "Не удается заблокировать NVS повторно", "Cannot relock NVS": "Не удается заблокировать NVS повторно",
"Error 1": "Ошибка 1", "Error 1": "Ошибка 1",
"Error 2": "Ошибка 2", "Error 2": "Ошибка 2",
"Error 3": "Ошибка 3", "Error 3": "Ошибка 3",
"Stick calibration failed: ": "Калибровка джойстика не удалась: ", "Stick calibration failed": "Калибровка джойстика не удалась",
"Stick calibration completed": "Калибровка джойстика завершена", "Stick calibration completed": "Калибровка джойстика завершена",
"NVS Lock failed: ": "Блокировка NVS не удалась: ", "NVS Lock failed": "Блокировка NVS не удалась",
"NVS Unlock failed: ": "Разблокировка NVS не удалась: ", "NVS Unlock failed": "Разблокировка NVS не удалась",
"Please connect only one controller at time.": "Пожалуйста, подключайте только один контроллер за раз.", "Please connect only one controller at time.": "Пожалуйста, подключайте только один контроллер за раз.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -155,7 +155,7 @@
"Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Убедитесь, что касаетесь краев рамы джойстика и вращайте медленно, предпочтительно в обоих направлениях — по часовой стрелке и против часовой стрелки.", "Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Убедитесь, что касаетесь краев рамы джойстика и вращайте медленно, предпочтительно в обоих направлениях — по часовой стрелке и против часовой стрелки.",
"Only after you have done that, you click on \"Done\".": "Только после того, как вы это сделали, нажмите \"Готово\".", "Only after you have done that, you click on \"Done\".": "Только после того, как вы это сделали, нажмите \"Готово\".",
"Changes saved successfully": "Изменения успешно сохранены", "Changes saved successfully": "Изменения успешно сохранены",
"Error while saving changes:": "Ошибка при сохранении изменений:", "Error while saving changes": "Ошибка при сохранении изменений:",
"Save changes permanently": "Сохранить изменения навсегда", "Save changes permanently": "Сохранить изменения навсегда",
"Reboot controller": "Перезагрузить контроллер", "Reboot controller": "Перезагрузить контроллер",
"(beta)": "Бета", "(beta)": "Бета",
@@ -233,7 +233,7 @@
"Cobalt Blue": "", "Cobalt Blue": "",
"Cosmic Red": "", "Cosmic Red": "",
"Debug": "", "Debug": "",
"Error triggering rumble: ": "", "Error triggering rumble": "",
"Fortnite": "", "Fortnite": "",
"Galactic Purple": "", "Galactic Purple": "",
"God of War Ragnarok": "", "God of War Ragnarok": "",

View File

@@ -32,7 +32,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Lütfen her iki analogu <b>sağ alt köşeye</b> taşıyın ve bırakın.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "Lütfen her iki analogu <b>sağ alt köşeye</b> taşıyın ve bırakın.",
"Calibration completed successfully!": "Kalibrasyon başarıyla tamamlandı!", "Calibration completed successfully!": "Kalibrasyon başarıyla tamamlandı!",
"Next": "İleri", "Next": "İleri",
"Recentering the controller sticks. ": "Denetleyici analoglarını yeniden merkezleme. ", "Recentering the controller sticks.": "Denetleyici analoglarını yeniden merkezleme.",
"Please do not close this window and do not disconnect your controller. ": "Lütfen bu pencereyi kapatmayın ve denetleyici bağlantısını kesmeyin. ", "Please do not close this window and do not disconnect your controller. ": "Lütfen bu pencereyi kapatmayın ve denetleyici bağlantısını kesmeyin. ",
"Range calibration": "Ara Mesafe Kalibrasyonu", "Range calibration": "Ara Mesafe Kalibrasyonu",
"<b>The controller is now sampling data!</b>": "<b>Denetleyici şu anda veri örnekleme yapıyor!</b>", "<b>The controller is now sampling data!</b>": "<b>Denetleyici şu anda veri örnekleme yapıyor!</b>",
@@ -56,16 +56,16 @@
"SW Version": "Yazılım Sürümü", "SW Version": "Yazılım Sürümü",
"Device Type": "Cihaz Türü", "Device Type": "Cihaz Türü",
"Range calibration completed": "Ara mesafe kalibrasyonu tamamlandı", "Range calibration completed": "Ara mesafe kalibrasyonu tamamlandı",
"Range calibration failed: ": "Ara mesafe kalibrasyonu başarısız oldu: ", "Range calibration failed": "Ara mesafe kalibrasyonu başarısız oldu",
"Cannot unlock NVS": "NVS kilidi açılamıyor", "Cannot unlock NVS": "NVS kilidi açılamıyor",
"Cannot relock NVS": "NVS kilidi tekrar kilitlenemiyor", "Cannot relock NVS": "NVS kilidi tekrar kilitlenemiyor",
"Error 1": "1.Hata", "Error 1": "1.Hata",
"Error 2": "2.Hata", "Error 2": "2.Hata",
"Error 3": "3.Hata", "Error 3": "3.Hata",
"Stick calibration failed: ": "Analog kalibrasyonu başarısız oldu: ", "Stick calibration failed": "Analog kalibrasyonu başarısız oldu",
"Stick calibration completed": "Analog kalibrasyonu tamamlandı", "Stick calibration completed": "Analog kalibrasyonu tamamlandı",
"NVS Lock failed: ": "NVS kilidi kilitlenemedi: ", "NVS Lock failed": "NVS kilidi kilitlenemedi",
"NVS Unlock failed: ": "NVS kilidi açılamadı: ", "NVS Unlock failed": "NVS kilidi açılamadı",
"Please connect only one controller at time.": "Lütfen sadece bir denetleyici bağlayın.", "Please connect only one controller at time.": "Lütfen sadece bir denetleyici bağlayın.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -155,7 +155,7 @@
"Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Analog çerçevesinin kenarlarına dokunduğunuzdan emin olun ve yavaşça döndürün; tercihen her iki yönde - hem saat yönünde, hem saat yönünün tersine.", "Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Analog çerçevesinin kenarlarına dokunduğunuzdan emin olun ve yavaşça döndürün; tercihen her iki yönde - hem saat yönünde, hem saat yönünün tersine.",
"Only after you have done that, you click on \"Done\".": "Ancak bunu yaptıktan sonra \"Tamam\" butonuna basmalısınız.", "Only after you have done that, you click on \"Done\".": "Ancak bunu yaptıktan sonra \"Tamam\" butonuna basmalısınız.",
"Changes saved successfully": "Değişiklikler başarıyla kaydedildi.", "Changes saved successfully": "Değişiklikler başarıyla kaydedildi.",
"Error while saving changes:": "Değişiklikleri kaydederken hata:", "Error while saving changes": "Değişiklikleri kaydederken hata:",
"Save changes permanently": "Değişiklikleri kalıcı olarak kaydet", "Save changes permanently": "Değişiklikleri kalıcı olarak kaydet",
"Reboot controller": "Denetleyiciyi yeniden başlat", "Reboot controller": "Denetleyiciyi yeniden başlat",
"(beta)": "(beta)", "(beta)": "(beta)",
@@ -243,7 +243,7 @@
"10x zoom": "10x Yakınlaştırma", "10x zoom": "10x Yakınlaştırma",
"Calibration": "KALİBRASYON", "Calibration": "KALİBRASYON",
"Debug": "HATA AYIKLAMA", "Debug": "HATA AYIKLAMA",
"Error triggering rumble: ": "Titreşim tetiklenirken hata oluştu:", "Error triggering rumble": "Titreşim tetiklenirken hata oluştu",
"Info": "BİLGİ", "Info": "BİLGİ",
"Normal": "Normal", "Normal": "Normal",
"Press L2 to test the strong (left) haptic motor": "Güçlü (sol) dokunsal motoru test etmek için L2'ye basın", "Press L2 to test the strong (left) haptic motor": "Güçlü (sol) dokunsal motoru test etmek için L2'ye basın",
@@ -260,4 +260,4 @@
"Show raw numbers": "Ham değerleri göster", "Show raw numbers": "Ham değerleri göster",
"While holding the stick to be adjusted straight up/down/left/right, <em>observe the highlighted value below the circle</em>, then use the D-pad buttons to adjust the value to ±0.99 (just below ±1.00).": "Ayarlanacak analoğu yukarı/aşağı/sola/sağa doğru basılı tutarken, <em>dairenin altındaki vurgulanan değeri gözlemleyin</em> ve ardından değeri ±0,99a (±1,00ın hemen altına) ayarlamak için yön tuşlarını kullanın.", "While holding the stick to be adjusted straight up/down/left/right, <em>observe the highlighted value below the circle</em>, then use the D-pad buttons to adjust the value to ±0.99 (just below ±1.00).": "Ayarlanacak analoğu yukarı/aşağı/sola/sağa doğru basılı tutarken, <em>dairenin altındaki vurgulanan değeri gözlemleyin</em> ve ardından değeri ±0,99a (±1,00ın hemen altına) ayarlamak için yön tuşlarını kullanın.",
"": "" "": ""
} }

View File

@@ -33,7 +33,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Будь ласка, перемістіть обидва стіки в <b>нижній правий кут</b> і відпустіть їх.", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "Будь ласка, перемістіть обидва стіки в <b>нижній правий кут</b> і відпустіть їх.",
"Calibration completed successfully!": "Калібрування успішно завершено!", "Calibration completed successfully!": "Калібрування успішно завершено!",
"Next": "Далі", "Next": "Далі",
"Recentering the controller sticks. ": "Центрування стіків контролера. ", "Recentering the controller sticks.": "Центрування стіків контролера.",
"Please do not close this window and do not disconnect your controller. ": "Будь ласка, не закривайте це вікно і не відключайте ваш контролер. ", "Please do not close this window and do not disconnect your controller. ": "Будь ласка, не закривайте це вікно і не відключайте ваш контролер. ",
"Range calibration": "Калібрування діапазону.", "Range calibration": "Калібрування діапазону.",
"<b>The controller is now sampling data!</b>": "<b>Контролер зараз збирає дані!</b>", "<b>The controller is now sampling data!</b>": "<b>Контролер зараз збирає дані!</b>",
@@ -57,16 +57,16 @@
"SW Version": "Версія програмного забезпечення", "SW Version": "Версія програмного забезпечення",
"Device Type": "Тип пристрою", "Device Type": "Тип пристрою",
"Range calibration completed": "Калібрування діапазону завершено", "Range calibration completed": "Калібрування діапазону завершено",
"Range calibration failed: ": "Калібрування діапазону не вдалося: ", "Range calibration failed": "Калібрування діапазону не вдалося",
"Cannot unlock NVS": "Не вдається розблокувати NVS", "Cannot unlock NVS": "Не вдається розблокувати NVS",
"Cannot relock NVS": "Не вдається заблокувати NVS повторно", "Cannot relock NVS": "Не вдається заблокувати NVS повторно",
"Error 1": "Помилка 1", "Error 1": "Помилка 1",
"Error 2": "Помилка 2", "Error 2": "Помилка 2",
"Error 3": "Помилка 3", "Error 3": "Помилка 3",
"Stick calibration failed: ": "Калібрування джойстика не вдалося: ", "Stick calibration failed": "Калібрування джойстика не вдалося",
"Stick calibration completed": "Калібрування джойстика завершено", "Stick calibration completed": "Калібрування джойстика завершено",
"NVS Lock failed: ": "Блокування NVS не вдалося: ", "NVS Lock failed": "Блокування NVS не вдалося",
"NVS Unlock failed: ": "Розблокування NVS не вдалося: ", "NVS Unlock failed": "Розблокування NVS не вдалося",
"Please connect only one controller at time.": "Будь ласка, підключайте лише один контролер одночасно.", "Please connect only one controller at time.": "Будь ласка, підключайте лише один контролер одночасно.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -156,7 +156,7 @@
"Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Переконайтеся, що ви торкаєтесь країв рами джойстика та обертаєте його повільно, бажано в обох напрямках — за годинниковою стрілкою та проти годинникової.", "Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "Переконайтеся, що ви торкаєтесь країв рами джойстика та обертаєте його повільно, бажано в обох напрямках — за годинниковою стрілкою та проти годинникової.",
"Only after you have done that, you click on \"Done\".": "Тільки після того, як ви це зробите, натискайте \"Готово\".", "Only after you have done that, you click on \"Done\".": "Тільки після того, як ви це зробите, натискайте \"Готово\".",
"Changes saved successfully": "Зміни успішно збережено", "Changes saved successfully": "Зміни успішно збережено",
"Error while saving changes:": "Помилка при збереженні змін:", "Error while saving changes": "Помилка при збереженні змін:",
"Save changes permanently": "Зберегти зміни назавжди", "Save changes permanently": "Зберегти зміни назавжди",
"Reboot controller": "Перезавантажити контролер", "Reboot controller": "Перезавантажити контролер",
"Controller Info": "Інформація про контролер", "Controller Info": "Інформація про контролер",
@@ -244,7 +244,7 @@
"Normal": "Нормальний маштаб", "Normal": "Нормальний маштаб",
"Calibration": "Калібрування", "Calibration": "Калібрування",
"Debug": "Налагодження", "Debug": "Налагодження",
"Error triggering rumble: ": "Помилка під час запуску вібрації: ", "Error triggering rumble": "Помилка під час запуску вібрації",
"Info": "Інформація", "Info": "Інформація",
"Press L2 to test the strong (left) haptic motor": "Натисніть L2, щоб протестувати потужний (лівий) вібромотор", "Press L2 to test the strong (left) haptic motor": "Натисніть L2, щоб протестувати потужний (лівий) вібромотор",
"Press R2 to test the weak (right) haptic motor": "Натисніть R2, щоб протестувати слабкий (правий) вібромотор", "Press R2 to test the weak (right) haptic motor": "Натисніть R2, щоб протестувати слабкий (правий) вібромотор",
@@ -260,4 +260,4 @@
"Show raw numbers": "Показати необроблені значення", "Show raw numbers": "Показати необроблені значення",
"While holding the stick to be adjusted straight up/down/left/right, <em>observe the highlighted value below the circle</em>, then use the D-pad buttons to adjust the value to ±0.99 (just below ±1.00).": "Утримуючи стік, який потрібно налаштувати, максимально вгору/вниз/вліво/вправо, <em>стежте за виділеним значенням під колом</em>, потім використовуйте кнопки D-pad, щоб відрегулювати значення до ±0.99 (трохи нижче за ±1.00).", "While holding the stick to be adjusted straight up/down/left/right, <em>observe the highlighted value below the circle</em>, then use the D-pad buttons to adjust the value to ±0.99 (just below ±1.00).": "Утримуючи стік, який потрібно налаштувати, максимально вгору/вниз/вліво/вправо, <em>стежте за виділеним значенням під колом</em>, потім використовуйте кнопки D-pad, щоб відрегулювати значення до ±0.99 (трохи нижче за ±1.00).",
"": "" "": ""
} }

View File

@@ -33,7 +33,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "请将两个摇杆移动到 <b>右下角</b> 并松开摇杆。", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "请将两个摇杆移动到 <b>右下角</b> 并松开摇杆。",
"Calibration completed successfully!": "校准成功完成!", "Calibration completed successfully!": "校准成功完成!",
"Next": "下一步", "Next": "下一步",
"Recentering the controller sticks. ": "重新定位摇杆中心。 ", "Recentering the controller sticks.": "重新定位摇杆中心。",
"Please do not close this window and do not disconnect your controller. ": "请不要关闭此窗口,也不要断开手柄的连接。 ", "Please do not close this window and do not disconnect your controller. ": "请不要关闭此窗口,也不要断开手柄的连接。 ",
"Range calibration": "摇杆外圈校准", "Range calibration": "摇杆外圈校准",
"<b>The controller is now sampling data!</b>": "<b>手柄现在正在采样数据!</b>", "<b>The controller is now sampling data!</b>": "<b>手柄现在正在采样数据!</b>",
@@ -57,16 +57,16 @@
"SW Version": "软件版本", "SW Version": "软件版本",
"Device Type": "设备类型", "Device Type": "设备类型",
"Range calibration completed": "摇杆外圈校准已完成", "Range calibration completed": "摇杆外圈校准已完成",
"Range calibration failed: ": "摇杆外圈校准失败: ", "Range calibration failed": "摇杆外圈校准失败",
"Cannot unlock NVS": "无法解锁 NVS", "Cannot unlock NVS": "无法解锁 NVS",
"Cannot relock NVS": "无法重新锁定 NVS", "Cannot relock NVS": "无法重新锁定 NVS",
"Error 1": "错误 1", "Error 1": "错误 1",
"Error 2": "错误 2", "Error 2": "错误 2",
"Error 3": "错误 3", "Error 3": "错误 3",
"Stick calibration failed: ": "摇杆校准失败: ", "Stick calibration failed": "摇杆校准失败",
"Stick calibration completed": "摇杆校准完成", "Stick calibration completed": "摇杆校准完成",
"NVS Lock failed: ": "NVS 锁定失败: ", "NVS Lock failed": "NVS 锁定失败",
"NVS Unlock failed: ": "NVS 解锁失败: ", "NVS Unlock failed": "NVS 解锁失败",
"Please connect only one controller at time.": "一次只能连接一个手柄。", "Please connect only one controller at time.": "一次只能连接一个手柄。",
"Sony DualShock 4 V1": "PS4手柄一代(Sony DualShock 4 V1)", "Sony DualShock 4 V1": "PS4手柄一代(Sony DualShock 4 V1)",
"Sony DualShock 4 V2": "PS4手柄二代(Sony DualShock 4 V2)", "Sony DualShock 4 V2": "PS4手柄二代(Sony DualShock 4 V2)",
@@ -156,7 +156,7 @@
"Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "确保摇杆接触摇杆圈,并慢慢旋转,最好顺时针和逆时针方向各旋转一次。", "Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "确保摇杆接触摇杆圈,并慢慢旋转,最好顺时针和逆时针方向各旋转一次。",
"Only after you have done that, you click on \"Done\".": "完成上述操作后,才能点击“完成”按钮。", "Only after you have done that, you click on \"Done\".": "完成上述操作后,才能点击“完成”按钮。",
"Changes saved successfully": "更改已成功保存。", "Changes saved successfully": "更改已成功保存。",
"Error while saving changes:": "保存更改时出错:", "Error while saving changes": "保存更改时出错:",
"Save changes permanently": "永久保存更改", "Save changes permanently": "永久保存更改",
"Reboot controller": "重启手柄", "Reboot controller": "重启手柄",
"Controller Info": "手柄信息", "Controller Info": "手柄信息",
@@ -243,7 +243,7 @@
"10x zoom": "10倍速测试", "10x zoom": "10倍速测试",
"Calibration": "校准", "Calibration": "校准",
"Debug": "调试", "Debug": "调试",
"Error triggering rumble: ": "触发震动时出错", "Error triggering rumble": "触发震动时出错",
"Info": "信息", "Info": "信息",
"Normal": "正常", "Normal": "正常",
"Press L2 to test the strong (left) haptic motor": "按下L2键测试强震动", "Press L2 to test the strong (left) haptic motor": "按下L2键测试强震动",

View File

@@ -32,7 +32,7 @@
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "請將兩個搖桿移到 <b>右下角</b> 並釋放它們。", "Please move both sticks to the <b>bottom-right corner</b> and release them.": "請將兩個搖桿移到 <b>右下角</b> 並釋放它們。",
"Calibration completed successfully!": "校準成功完成!", "Calibration completed successfully!": "校準成功完成!",
"Next": "下一步", "Next": "下一步",
"Recentering the controller sticks. ": "重新定位手把摇杆。 ", "Recentering the controller sticks.": "重新定位手把摇杆。",
"Please do not close this window and do not disconnect your controller. ": "請不要關閉此窗口,也不要斷開手把的連接。 ", "Please do not close this window and do not disconnect your controller. ": "請不要關閉此窗口,也不要斷開手把的連接。 ",
"Range calibration": "摇杆外圈校準", "Range calibration": "摇杆外圈校準",
"<b>The controller is now sampling data!</b>": "<b>手把現在正在採樣數據!</b>", "<b>The controller is now sampling data!</b>": "<b>手把現在正在採樣數據!</b>",
@@ -56,16 +56,16 @@
"SW Version": "軟體版本", "SW Version": "軟體版本",
"Device Type": "設備類型", "Device Type": "設備類型",
"Range calibration completed": "搖桿外圈校準已完成", "Range calibration completed": "搖桿外圈校準已完成",
"Range calibration failed: ": "搖桿外圈校準失敗: ", "Range calibration failed": "搖桿外圈校準失敗",
"Cannot unlock NVS": "無法解鎖 NVS", "Cannot unlock NVS": "無法解鎖 NVS",
"Cannot relock NVS": "無法重新鎖定 NVS", "Cannot relock NVS": "無法重新鎖定 NVS",
"Error 1": "錯誤 1", "Error 1": "錯誤 1",
"Error 2": "錯誤 2", "Error 2": "錯誤 2",
"Error 3": "錯誤 3", "Error 3": "錯誤 3",
"Stick calibration failed: ": "摇杆校準失敗: ", "Stick calibration failed": "摇杆校準失敗",
"Stick calibration completed": "摇杆校準完成", "Stick calibration completed": "摇杆校準完成",
"NVS Lock failed: ": "NVS 鎖定失敗: ", "NVS Lock failed": "NVS 鎖定失敗",
"NVS Unlock failed: ": "NVS 解鎖失敗: ", "NVS Unlock failed": "NVS 解鎖失敗",
"Please connect only one controller at time.": "請一次只連接一個手把。", "Please connect only one controller at time.": "請一次只連接一個手把。",
"Sony DualShock 4 V1": "Sony DualShock 4 V1", "Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2", "Sony DualShock 4 V2": "Sony DualShock 4 V2",
@@ -155,7 +155,7 @@
"Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "確保觸摸搖桿框架的邊緣,並慢慢旋轉,最好是每個方向 - 順時針和逆時針。", "Make sure to touch the edges of the joystick frame and rotate slowly, preferably in each direction - clockwise and anti-clockwise.": "確保觸摸搖桿框架的邊緣,並慢慢旋轉,最好是每個方向 - 順時針和逆時針。",
"Only after you have done that, you click on \"Done\".": "只有在這樣做之後,你才可以點擊\"完成\"。", "Only after you have done that, you click on \"Done\".": "只有在這樣做之後,你才可以點擊\"完成\"。",
"Changes saved successfully": "更改已成功保存", "Changes saved successfully": "更改已成功保存",
"Error while saving changes:": "保存更改時出錯:", "Error while saving changes": "保存更改時出錯:",
"Save changes permanently": "永久保存更改", "Save changes permanently": "永久保存更改",
"Reboot controller": "重啟手把", "Reboot controller": "重啟手把",
"(beta)": "測試版本", "(beta)": "測試版本",
@@ -243,7 +243,7 @@
"10x zoom": "10倍速測試", "10x zoom": "10倍速測試",
"Calibration": "校準", "Calibration": "校準",
"Debug": "調試", "Debug": "調試",
"Error triggering rumble: ": "觸發震動時出錯", "Error triggering rumble": "觸發震動時出錯",
"Info": "信息", "Info": "信息",
"Normal": "正常", "Normal": "正常",
"Press L2 to test the strong (left) haptic motor": "按下L2鍵測試強震動", "Press L2 to test the strong (left) haptic motor": "按下L2鍵測試強震動",

View File

@@ -6,7 +6,7 @@
<h1 class="modal-title fs-5" id="staticBackdropLabel">Calibrating center</h1> <h1 class="modal-title fs-5" id="staticBackdropLabel">Calibrating center</h1>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<p class="ds-i18n">Recentering the controller sticks. </p> <p class="ds-i18n">Recentering the controller sticks.</p>
<p class="ds-i18n">Please do not close this window and do not disconnect your controller. </p> <p class="ds-i18n">Please do not close this window and do not disconnect your controller. </p>
<div class="progress" role="progressbar" aria-label="Centering" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"> <div class="progress" role="progressbar" aria-label="Centering" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">
<div class="progress-bar" style="width: 0%"></div> <div class="progress-bar" style="width: 0%"></div>

View File

@@ -167,7 +167,7 @@
<label class="form-check-label ds-i18n" for="showRawNumbersCheckbox">Show raw numbers</label> <label class="form-check-label ds-i18n" for="showRawNumbersCheckbox">Show raw numbers</label>
</div> </div>
<button type="button" class="btn btn-secondary ds-i18n" onclick="finetune_cancel()">Cancel</button> <button type="button" class="btn btn-secondary ds-i18n" onclick="finetune_cancel()">Cancel</button>
<button type="button" class="btn btn-primary ds-i18n" onclick="finetune_save()">Save</button> <button type="button" class="btn btn-primary ds-i18n" onclick="finetune_save()">Done</button>
</div> </div>
</div> </div>
</div> </div>