Compare commits

...

21 Commits
v0.9 ... v1.3

Author SHA1 Message Date
dualshock-tools
346add9b3e Add zh_tw translation 2024-06-21 11:06:55 +02:00
Yyiyun
580df44de5 Update zh_cn.json 2024-06-19 11:03:13 +02:00
dualshock-tools
7b13ccdd18 Add joystick information 2024-06-18 11:34:05 +02:00
dualshock-tools
d67e5003df Improved pl_pl translation 2024-06-02 11:08:55 +02:00
dualshock-tools
f57e1dc4ec Updated pl_pl translation 2024-06-02 11:07:11 +02:00
dualshock-tools
cbd6237ddd Add popup to update DualSense firmware if too old 2024-06-02 11:02:30 +02:00
dualshock-tools
5f7480e028 Detect if the controller is connected via USB 2024-05-30 16:04:48 +02:00
dualshock-tools
9e48207fcc Improved pl_pl translation 2024-05-30 10:01:47 +02:00
Marekk2k
86fc8624be Update core.js
Adding Polish language (email)
2024-05-29 12:02:43 +02:00
dualshock-tools
b179d4c446 Add pl_pl translation 2024-05-29 12:02:19 +02:00
dualshock-tools
e98f41b858 Updated discord link 2024-05-29 11:54:30 +02:00
dualshock-tools
20075c4552 fix JDM-040 condition 2024-05-14 21:05:35 +02:00
dualshock-tools
d5e9bade48 Updated controller model detection 2024-05-14 07:19:41 +02:00
dualshock-tools
3112784087 fix fr_fr 2024-05-13 22:49:44 +02:00
dualshock-tools
26c406b19a Removed duplicate translation 2024-05-13 20:57:33 +02:00
dualshock-tools
fadb822d6e Improved hu_hu translation 2024-05-03 23:26:13 +02:00
dualshock-tools
1c36ead286 Fixed pt_br translator name 2024-04-29 23:35:51 +02:00
dualshock-tools
ecd904c70e Add pt_br translation 2024-04-28 10:29:57 +02:00
dualshock-tools
d38f69c45a Add empty translations to es_es and hu_hu 2024-04-28 10:28:45 +02:00
dualshock-tools
5ed9b14616 Disable rare message for 0x74 and 0x93 2024-04-28 10:20:45 +02:00
dualshock-tools
ad38ee688c Update board detection 2024-04-27 14:50:27 +02:00
15 changed files with 1205 additions and 239 deletions

551
core.js
View File

@@ -9,6 +9,7 @@ var lang_disabled = true;
var gj = 0;
var gu = 0;
// Alphabetical order
var available_langs = {
"bg_bg": { "name": "Български", "file": "bg_bg.json"},
"de_de": { "name": "Deutsch", "file": "de_de.json"},
@@ -17,13 +18,16 @@ var available_langs = {
"hu_hu": { "name": "Magyar", "file": "hu_hu.json"},
"it_it": { "name": "Italiano", "file": "it_it.json"},
"jp_jp": { "name": "日本語", "file": "jp_jp.json"},
"pl_pl": { "name": "Polski", "file": "pl_pl.json"},
"pt_br": { "name": "Português do Brasil", "file": "pt_br.json"},
"ru_ru": { "name": "Русский", "file": "ru_ru.json"},
"tr_tr": { "name": "Türkçe", "file": "tr_tr.json"},
"zh_cn": { "name": "中文", "file": "zh_cn.json"},
"zh_tw": { "name": "中文(繁)", "file": "zh_tw.json"},
};
function buf2hex(buffer) {
return [...new Uint8Array(buffer)] .map(x => x.toString(16).padStart(2, '0')) .join('');
return [...new Uint8Array(buffer)].map(x => x.toString(16).padStart(2, '0')) .join('');
}
function dec2hex(i) {
@@ -61,12 +65,14 @@ function ds4_hw_to_bm(hw_ver) {
return "JDM-011";
} else if(a == 0x54) {
return "JDM-030";
} else if(a == 0x64) {
} else if(a >= 0x64 && a <= 0x74) {
return "JDM-040";
} else if(a > 0x80 && a < 0x84) {
} else if((a > 0x80 && a < 0x84) || a == 0x93) {
return "JDM-020";
} else if(a == 0xa4) {
return "JDM-050";
} else if(a == 0xb0) {
return "JDM-055 (Scuf?)";
} else if(a == 0xb4) {
return "JDM-055";
} else {
@@ -78,7 +84,8 @@ function ds4_hw_to_bm(hw_ver) {
function is_rare(hw_ver) {
a = hw_ver >> 8;
return (a == 0x74 || a == 0x93 || a == 0xb0 || a == 0xa0);
b = a >> 4;
return ((b == 7 && a > 0x74) || (b == 9 && a != 0x93) || a == 0xa0);
}
async function ds4_info() {
@@ -463,46 +470,59 @@ async function ds4_nvunlock() {
}
async function ds5_info() {
const view = lf("ds5_info", await device.receiveFeatureReport(0x20));
try {
const view = lf("ds5_info", await device.receiveFeatureReport(0x20));
var cmd = view.getUint8(0, true);
if(cmd != 0x20 || view.buffer.byteLength != 64)
var cmd = view.getUint8(0, true);
if(cmd != 0x20 || view.buffer.byteLength != 64)
return false;
var build_date = new TextDecoder().decode(view.buffer.slice(1, 1+11));
var build_time = new TextDecoder().decode(view.buffer.slice(12, 20));
var fwtype = view.getUint16(20, true);
var swseries = view.getUint16(22, true);
var hwinfo = view.getUint32(24, true);
var fwversion = view.getUint32(28, true);
var deviceinfo = new TextDecoder().decode(view.buffer.slice(32, 32+12));
var updversion = view.getUint16(44, true);
var unk = view.getUint16(46, true);
var fwversion1 = view.getUint32(50, true);
var fwversion2 = view.getUint32(54, true);
var fwversion3 = view.getUint32(58, true);
clear_info();
append_info(l("Build Date:"), build_date + " " + build_time);
append_info(l("Firmware Type:"), "0x" + dec2hex(fwtype));
append_info(l("SW Series:"), "0x" + dec2hex(swseries));
append_info(l("HW Info:"), "0x" + dec2hex32(hwinfo));
append_info(l("SW Version:"), "0x" + dec2hex32(fwversion));
append_info(l("UPD Version:"), "0x" + dec2hex(updversion));
append_info(l("FW Version1:"), "0x" + dec2hex32(fwversion1));
append_info(l("FW Version2:"), "0x" + dec2hex32(fwversion2));
append_info(l("FW Version3:"), "0x" + dec2hex32(fwversion3));
b_info = '&nbsp;<a class="link-body-emphasis" href="#" onclick="board_model_info()">' +
'<svg class="bi" width="1.3em" height="1.3em"><use xlink:href="#info"/></svg></a>';
append_info(l("Board Model:"), ds5_hw_to_bm(hwinfo) + b_info);
old_controller = build_date.search(/ 2020| 2021/);
if(old_controller != -1) {
la("ds5_info_error", {"r": "old"})
disable_btn = true;
return true;
}
await ds5_nvstatus();
await ds5_getbdaddr();
} catch(e) {
la("ds5_info_error", {"r": e})
show_popup(l("Cannot read controller information"));
return false;
var build_date = new TextDecoder().decode(view.buffer.slice(1, 1+11));
var build_time = new TextDecoder().decode(view.buffer.slice(12, 20));
var fwtype = view.getUint16(20, true);
var swseries = view.getUint16(22, true);
var hwinfo = view.getUint32(24, true);
var fwversion = view.getUint32(28, true);
var deviceinfo = new TextDecoder().decode(view.buffer.slice(32, 32+12));
var updversion = view.getUint16(44, true);
var unk = view.getUint16(46, true);
var fwversion1 = view.getUint32(50, true);
var fwversion2 = view.getUint32(54, true);
var fwversion3 = view.getUint32(58, true);
clear_info();
append_info(l("Build Date:"), build_date + " " + build_time);
append_info(l("Firmware Type:"), "0x" + dec2hex(fwtype));
append_info(l("SW Series:"), "0x" + dec2hex(swseries));
append_info(l("HW Info:"), "0x" + dec2hex32(hwinfo));
append_info(l("SW Version:"), "0x" + dec2hex32(fwversion));
append_info(l("UPD Version:"), "0x" + dec2hex(updversion));
append_info(l("FW Version1:"), "0x" + dec2hex32(fwversion1));
append_info(l("FW Version2:"), "0x" + dec2hex32(fwversion2));
append_info(l("FW Version3:"), "0x" + dec2hex32(fwversion3));
b_info = '&nbsp;<a class="link-body-emphasis" href="#" onclick="board_model_info()">' +
'<svg class="bi" width="1.3em" height="1.3em"><use xlink:href="#info"/></svg></a>';
append_info(l("Board Model:"), ds5_hw_to_bm(hwinfo) + b_info);
await ds5_nvstatus();
await ds5_getbdaddr();
}
return true;
}
@@ -761,10 +781,12 @@ async function disconnect() {
device.close();
device = null;
disable_btn = false;
reset_circularity();
$("#offlinebar").show();
$("#onlinebar").hide();
$("#mainmenu").hide();
$("#d-nvstatus").text = l("Unknown");
$("#d-bdaddr").text = l("Unknown");
close_calibrate_window();
}
@@ -824,6 +846,8 @@ function gboot() {
window.addEventListener('DOMContentLoaded', function() {
lang_init();
welcome_modal();
$("#checkCircularity").on('change', on_circ_check_change);
on_circ_check_change();
});
if (!("hid" in navigator)) {
@@ -852,8 +876,379 @@ function alloc_req(id, data=[]) {
return out;
}
var last_lx = 0, last_ly = 0, last_rx = 0, last_ry = 0;
var ll_updated = false;
var ll_data=new Array(48);
var rr_data=new Array(48);
var enable_circ_test = false;
function reset_circularity() {
for(i=0;i<ll_data.length;i++) ll_data[i] = 0;
for(i=0;i<rr_data.length;i++) rr_data[i] = 0;
enable_circ_test = false;
ll_updated = false;
$("#checkCircularity").prop('checked', false);
refresh_stick_pos();
}
function refresh_stick_pos() {
var c = document.getElementById("stickCanvas");
var ctx = c.getContext("2d");
var sz = 60;
var hb = 20 + sz;
var yb = 15 + sz;
var w = c.width;
ctx.clearRect(0, 0, c.width, c.height);
ctx.lineWidth = 1;
ctx.fillStyle = '#ffffff';
ctx.strokeStyle = '#000000';
// Left circle
ctx.beginPath();
ctx.arc(hb, yb, sz, 0, 2 * Math.PI);
ctx.closePath();
ctx.fill();
ctx.stroke();
// Right circle
ctx.beginPath();
ctx.arc(w - hb, yb, sz, 0, 2 * Math.PI);
ctx.closePath();
ctx.fill();
ctx.stroke();
function cc_to_color(cc) {
var dd = Math.sqrt(Math.pow((1.0 - cc), 2));
if(cc <= 1.0)
hh = 220 - 220 * Math.min(1.0, Math.max(0, (dd - 0.05)) / 0.1);
else
hh = (245 + (360-245) * Math.min(1.0, Math.max(0, (dd - 0.05)) / 0.15)) % 360;
return hh;
}
if(enable_circ_test) {
var MAX_N = ll_data.length;
for(i=0;i<MAX_N;i++) {
var kd = ll_data[i];
var kd1 = ll_data[(i+1) % ll_data.length];
if (kd === undefined || kd1 === undefined) continue;
var ka = i * Math.PI * 2 / MAX_N;
var ka1 = ((i+1)%MAX_N) * 2 * Math.PI / MAX_N;
var kx = Math.cos(ka) * kd;
var ky = Math.sin(ka) * kd;
var kx1 = Math.cos(ka1) * kd1;
var ky1 = Math.sin(ka1) * kd1;
ctx.beginPath();
ctx.moveTo(hb, yb);
ctx.lineTo(hb+kx*sz, yb+ky*sz);
ctx.lineTo(hb+kx1*sz, yb+ky1*sz);
ctx.lineTo(hb, yb);
ctx.closePath();
var cc = (kd + kd1) / 2;
var hh = cc_to_color(cc);
ctx.fillStyle = 'hsla(' + parseInt(hh) + ', 100%, 50%, 0.5)';
ctx.fill();
}
for(i=0;i<MAX_N;i++) {
var kd = rr_data[i];
var kd1 = rr_data[(i+1) % rr_data.length];
if (kd === undefined || kd1 === undefined) continue;
var ka = i * Math.PI * 2 / MAX_N;
var ka1 = ((i+1)%MAX_N) * 2 * Math.PI / MAX_N;
var kx = Math.cos(ka) * kd;
var ky = Math.sin(ka) * kd;
var kx1 = Math.cos(ka1) * kd1;
var ky1 = Math.sin(ka1) * kd1;
ctx.beginPath();
ctx.moveTo(w-hb, yb);
ctx.lineTo(w-hb+kx*sz, yb+ky*sz);
ctx.lineTo(w-hb+kx1*sz, yb+ky1*sz);
ctx.lineTo(w-hb, yb);
ctx.closePath();
var cc = (kd + kd1) / 2;
var hh = cc_to_color(cc);
ctx.fillStyle = 'hsla(' + parseInt(hh) + ', 100%, 50%, 0.5)';
ctx.fill();
}
}
ctx.strokeStyle = '#aaaaaa';
ctx.beginPath();
ctx.moveTo(hb-sz, yb);
ctx.lineTo(hb+sz, yb);
ctx.closePath();
ctx.stroke();
ctx.beginPath();
ctx.moveTo(w-hb-sz, yb);
ctx.lineTo(w-hb+sz, yb);
ctx.closePath();
ctx.stroke();
ctx.beginPath();
ctx.moveTo(hb, yb-sz);
ctx.lineTo(hb, yb+sz);
ctx.closePath();
ctx.stroke();
ctx.beginPath();
ctx.moveTo(w-hb, yb-sz);
ctx.lineTo(w-hb, yb+sz);
ctx.closePath();
ctx.stroke();
var plx = last_lx;
var ply = last_ly;
var prx = last_rx;
var pry = last_ry;
if(enable_circ_test) {
var pld = Math.sqrt(plx*plx + ply*ply);
var pla = (parseInt(Math.round(Math.atan2(ply, plx) * MAX_N / 2.0 / Math.PI)) + MAX_N) % MAX_N;
var old = ll_data[pla];
if(old === undefined) old = 0;
ll_data[pla] = Math.max(old, pld);
var prd = Math.sqrt(prx*prx + pry*pry);
var pra = (parseInt(Math.round(Math.atan2(pry, prx) * MAX_N / 2.0 / Math.PI)) + MAX_N) % MAX_N;
var old = rr_data[pra];
if(old === undefined) old = 0;
rr_data[pra] = Math.max(old, prd);
}
ctx.fillStyle = '#000000';
ctx.strokeStyle = '#000000';
ctx.beginPath();
ctx.arc(hb+plx*sz,yb+ply*sz,4, 0, 2*Math.PI);
ctx.fill();
ctx.beginPath();
ctx.moveTo(hb, yb);
ctx.lineTo(hb+plx*sz, yb+ply*sz);
ctx.stroke();
ctx.beginPath();
ctx.arc(w-hb+prx*sz, yb+pry*sz,4, 0, 2*Math.PI);
ctx.fill();
ctx.beginPath();
ctx.moveTo(w-hb, yb);
ctx.lineTo(w-hb+prx*sz, yb+pry*sz);
ctx.stroke();
var lbl = "", lbx = "";
$("#lx-lbl").text(float_to_str(plx));
$("#ly-lbl").text(float_to_str(ply));
$("#rx-lbl").text(float_to_str(prx));
$("#ry-lbl").text(float_to_str(pry));
if(enable_circ_test) {
var ofl = 0, ofr = 0, lcounter = 0, rcounter = 0;
ofl = 0; ofr = 0;
for (i=0;i<ll_data.length;i++)
if(ll_data[i] > 0.2) {
lcounter += 1;
ofl += Math.pow(ll_data[i] - 1, 2);
}
for (i=0;i<rr_data.length;i++) {
if(ll_data[i] > 0.2) {
rcounter += 1;
ofr += Math.pow(rr_data[i] - 1, 2);
}
}
if(lcounter > 0)
ofl = Math.sqrt(ofl / lcounter) * 100;
if(rcounter > 0)
ofr = Math.sqrt(ofr / rcounter) * 100;
el = ofl.toFixed(2) + "%";
er = ofr.toFixed(2) + "%";
$("#el-lbl").text(el);
$("#er-lbl").text(er);
}
}
function circ_checked() { return $("#checkCircularity").is(':checked') }
function on_circ_check_change() {
enable_circ_test = circ_checked();
for(i=0;i<ll_data.length;i++) ll_data[i] = 0;
for(i=0;i<rr_data.length;i++) rr_data[i] = 0;
if(enable_circ_test) {
$("#circ-data").show();
} else {
$("#circ-data").hide();
}
refresh_stick_pos();
}
function float_to_str(f) {
if(f < 0.004 && f >= -0.004) return "+0.00";
return (f<0?"":"+") + f.toFixed(2);
}
var on_delay = false;
function timeout_ok() {
on_delay = false;
if(ll_updated)
refresh_stick_pos();
}
function refresh_sticks() {
if(on_delay)
return;
refresh_stick_pos();
on_delay = true;
setTimeout(timeout_ok, 20);
}
function process_ds4_input(data) {
var lx = data.data.getUint8(0);
var ly = data.data.getUint8(1);
var rx = data.data.getUint8(2);
var ry = data.data.getUint8(3);
var new_lx = Math.round((lx - 127.5) / 128 * 100) / 100;
var new_ly = Math.round((ly - 127.5) / 128 * 100) / 100;
var new_rx = Math.round((rx - 127.5) / 128 * 100) / 100;
var new_ry = Math.round((ry - 127.5) / 128 * 100) / 100;
if(last_lx != new_lx || last_ly != new_ly || last_rx != new_rx || last_ry != new_ry) {
last_lx = new_lx;
last_ly = new_ly;
last_rx = new_rx;
last_ry = new_ry;
ll_updated = true;
refresh_sticks();
}
}
function process_ds_input(data) {
var lx = data.data.getUint8(0);
var ly = data.data.getUint8(1);
var rx = data.data.getUint8(2);
var ry = data.data.getUint8(3);
var new_lx = Math.round((lx - 127.5) / 128 * 100) / 100;
var new_ly = Math.round((ly - 127.5) / 128 * 100) / 100;
var new_rx = Math.round((rx - 127.5) / 128 * 100) / 100;
var new_ry = Math.round((ry - 127.5) / 128 * 100) / 100;
if(last_lx != new_lx || last_ly != new_ly || last_rx != new_rx || last_ry != new_ry) {
last_lx = new_lx;
last_ly = new_ly;
last_rx = new_rx;
last_ry = new_ry;
ll_updated = true;
refresh_sticks();
}
}
async function continue_connection(report) {
try {
device.oninputreport = null;
var reportLen = report.data.byteLength;
var connected = false;
// Detect if the controller is connected via USB
if(reportLen != 63) {
$("#btnconnect").prop("disabled", false);
$("#connectspinner").hide();
disconnect();
show_popup(l("Please connect the device using a USB cable."))
return;
}
if(device.productId == 0x05c4) {
if(await ds4_info()) {
connected = true;
mode = 1;
devname = l("Sony DualShock 4 V1");
device.oninputreport = process_ds4_input;
}
} else if(device.productId == 0x09cc) {
if(await ds4_info()) {
connected = true;
mode = 1;
devname = l("Sony DualShock 4 V2");
device.oninputreport = process_ds4_input;
}
} else if(device.productId == 0x0ce6) {
if(await ds5_info()) {
connected = true;
mode = 2;
devname = l("Sony DualSense");
device.oninputreport = process_ds_input;
}
} else if(device.productId == 0x0df2) {
if(await ds5_info()) {
connected = true;
mode = 0;
devname = l("Sony DualSense Edge");
disable_btn = true;
}
} else {
$("#btnconnect").prop("disabled", false);
$("#connectspinner").hide();
show_popup(l("Connected invalid device: ") + dec2hex(device.vendorId) + ":" + dec2hex(device.productId))
disconnect();
return;
}
if(connected) {
$("#devname").text(devname + " (" + dec2hex(device.vendorId) + ":" + dec2hex(device.productId) + ")");
$("#offlinebar").hide();
$("#onlinebar").show();
$("#mainmenu").show();
$("#resetBtn").show();
$("#d-nvstatus").text = l("Unknown");
$("#d-bdaddr").text = l("Unknown");
} else {
show_popup(l("Connected invalid device: ") + l("Error 1"));
$("#btnconnect").prop("disabled", false);
$("#connectspinner").hide();
disconnect();
return;
}
if(disable_btn) {
if(device.productId == 0x0ce6) {
show_popup(l("This DualSense controller has outdated firmware.") + "<br>" + l("Please update the firmware and try again."), true);
} else if(device.productId == 0x0df2) {
show_popup(l("Calibration of the DualSense Edge is not currently supported."));
} else {
show_popup(l("The device appears to be a DS4 clone. All functionalities are disabled."));
}
}
$(".ds-btn").prop("disabled", disable_btn);
$("#btnconnect").prop("disabled", false);
$("#connectspinner").hide();
} catch(error) {
$("#btnconnect").prop("disabled", false);
$("#connectspinner").hide();
show_popup(l("Error: ") + error);
return;
}
}
async function connect() {
gj = crypto.randomUUID();
reset_circularity();
la("begin");
try {
$("#btnconnect").prop("disabled", true);
@@ -888,63 +1283,9 @@ async function connect() {
device = devices[0]
la("connect", {"p": device.productId, "v": device.vendorId});
var connected = false
if(device.productId == 0x05c4) {
if(await ds4_info()) {
connected = true
mode = 1;
devname = l("Sony DualShock 4 V1");
}
} else if(device.productId == 0x09cc) {
if(await ds4_info()) {
connected = true
mode = 1;
devname = l("Sony DualShock 4 V2");
}
} else if(device.productId == 0x0ce6) {
if(await ds5_info()) {
connected = true
mode = 2;
devname = l("Sony DualSense");
}
} else if(device.productId == 0x0df2) {
if(await ds5_info()) {
connected = true
mode = 0;
devname = l("Sony DualSense Edge");
disable_btn = true;
}
} else {
$("#btnconnect").prop("disabled", false);
$("#connectspinner").hide();
show_popup(l("Connected invalid device: ") + dec2hex(device.vendorId) + ":" + dec2hex(device.productId))
disconnect();
return;
}
if(connected) {
$("#devname").text(devname + " (" + dec2hex(device.vendorId) + ":" + dec2hex(device.productId) + ")");
$("#offlinebar").hide();
$("#onlinebar").show();
$("#mainmenu").show();
$("#resetBtn").show();
$("#d-nvstatus").text = l("Unknown");
$("#d-bdaddr").text = l("Unknown");
}
if(disable_btn) {
if(device.productId == 0x0df2) {
show_popup(l("Calibration of the DualSense Edge is not currently supported."));
} else {
show_popup(l("The device appears to be a DS4 clone. All functionalities are disabled."));
}
}
$(".ds-btn").prop("disabled", disable_btn);
$("#btnconnect").prop("disabled", false);
$("#connectspinner").hide();
device.oninputreport = continue_connection
} catch(error) {
$("#btnconnect").prop("disabled", false);
$("#connectspinner").hide();
@@ -1005,9 +1346,10 @@ async function multi_calib_sticks_begin(pc) {
async function multi_calib_sticks_end(pc) {
if(mode == 1)
return ds4_calibrate_sticks_end(pc);
await ds4_calibrate_sticks_end(pc);
else
return ds5_calibrate_sticks_end(pc);
await ds5_calibrate_sticks_end(pc);
on_circ_check_change();
}
async function multi_calib_sticks_sample() {
@@ -1038,9 +1380,10 @@ async function multi_calibrate_range(perm_ch) {
async function multi_calibrate_range_on_close() {
if(mode == 1)
ds4_calibrate_range_end(last_perm_ch);
await ds4_calibrate_range_end(last_perm_ch);
else
ds5_calibrate_range_end(last_perm_ch);
await ds5_calibrate_range_end(last_perm_ch);
on_circ_check_change();
}

View File

@@ -112,16 +112,67 @@
<br>
</div>
<div class="col-md-6 col-sm-12">
<div class="col-md-6 col-sm-12" style="min-width: 330px;">
<div class="vstack gap-2 p-2">
<button id="btnmcs2" type="button" class="btn btn-primary ds-btn ds-i18n" onclick="calib_open()">Calibrate stick center</button>
<div class="hstack gap-2">
<button type="button" class="btn btn-primary ds-btn ds-i18n" onclick="multi_calibrate_range(true)">Calibrate stick range (permanent)</button>
<button type="button" class="btn btn-primary ds-btn ds-i18n" onclick="multi_calibrate_range(false)">Calibrate stick range (temporary)</button>
<button type="button" class="ms-auto btn btn-primary ds-btn ds-i18n" onclick="multi_calibrate_range(false)">Calibrate stick range (temporary)</button>
</div>
<button type="button" class="btn btn-danger ds-btn ds-i18n" onclick="multi_reset()" id="resetBtn">Reset controller</button>
<div class="card text-bg-light" >
<div class="card-header ds-i18n">Joystick Info</div>
<div class="vstack px-2">
<center>
<canvas id="stickCanvas" width="300" height="150"></canvas>
</center>
</div>
<div class="px-2">
<div class="hstack">
<div class="vstack" style="text-align: center;">
<span>LX:</span>
<pre id="lx-lbl" style="min-width: 80px;"></pre>
</div>
<div class="vstack" style="text-align: center;">
<span>LY:</span>
<pre id="ly-lbl" style="min-width: 80px;"></pre>
</div>
<div class="vstack" style="text-align: center;">
<span>RX:</span>
<pre id="rx-lbl" style="min-width: 80px;"></pre>
</div>
<div class="vstack" style="text-align: center;">
<span>RY:</span>
<pre id="ry-lbl" style="min-width: 80px;"></pre>
</div>
</div>
</div>
<div class="px-2">
<center>
<input class="form-check-input" type="checkbox" value="" id="checkCircularity">
<label class="form-check-label ds-i18n" for="checkCircularity">Check circularity</label>
<div class="hstack" id="circ-data">
<div class="vstack" style="text-align: center;">
<span class="ds-i18n">Err R:</span>
<pre id="el-lbl" style="min-width: 80px;"></pre>
</div>
<div class="vstack" style="text-align: center;">
<span class="ds-i18n">Err L:</span>
<pre id="er-lbl" style="min-width: 80px;"></pre>
</div>
</div>
</center>
</div>
</div>
</div>
</div>
</div>
<div class="row">
@@ -457,11 +508,11 @@
<div class="container">
<footer>
<div class="d-flex flex-column flex-sm-row justify-content-between py-4 my-4 border-top" id="footbody">
<p><span class="ds-i18n">Version</span> 0.9 (2024-04-25) - <a href="#" class="ds-i18n" onclick="show_donate_modal();">Support this project</a>&nbsp;<span id="authorMsg"></span></p>
<p><span class="ds-i18n">Version</span> 1.3 (2024-06-21) - <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">
<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="#" onclick="discord_popup()"><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://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>

View File

@@ -103,7 +103,6 @@
"Sampling...": "Проба...",
"Calibration in progress": "Калибрация в ход",
"Start": "Започни",
"Done": "Готово",
"Continue": "Продължи",
"You can check the calibration with the": "Можете да проверите калибрацията с",
"Have a nice day :)": "Приятен ден! :)",
@@ -155,12 +154,18 @@
"Ship me a controller you would love to add (send me an email for organization).": "Изпратете ми контролер, който бихте искали да добавите (изпратете ми имейл за организация).",
"Translate this website in your language": "Преведете този уебсайт на ваш език",
", to help more people like you!": ", за да помогнете на повече хора като вас!",
"Board Model:": "",
"This feature is experimental.": "",
"Please let me know if the board model of your controller is not detected correctly.": "",
"Board model detection thanks to": "",
"This website uses analytics to improve the service.": "Този уебсайт използва анализи за подобряване на услугата.",
"Board Model:": "Модел на платката:",
"This feature is experimental.": "Тази функция е експериментална.",
"Please let me know if the board model of your controller is not detected correctly.": "Моля, уведомете ме, ако моделът на платката на вашия контролер не е разпознат правилно.",
"Board model detection thanks to": "Разпознаване на модела на платката благодарение на",
"Please connect the device using a USB cable.": "Моля, свържете устройството с USB кабел.",
"This DualSense controller has outdated firmware.": "Този контролер DualSense има остарял фърмуер.",
"Please update the firmware and try again.": "Моля, актуализирайте фърмуера и опитайте отново.",
"Joystick Info": "Информация за джойстика",
"Err R:": "Грешка Д:",
"Err L:": "Грешка Л:",
"Check circularity": "Проверка на кръговостта",
"": ""
}

View File

@@ -103,7 +103,6 @@
"Sampling...": "Probenahme...",
"Calibration in progress": "Kalibrierung läuft",
"Start": "Start",
"Done": "Fertig",
"Continue": "Fortfahren",
"You can check the calibration with the": "Sie können die Kalibrierung mit dem",
"Have a nice day :)": "Einen schönen Tag noch! :)",
@@ -155,12 +154,18 @@
"Ship me a controller you would love to add (send me an email for organization).": "Schicken Sie mir einen Controller, den Sie gerne hinzufügen möchten (senden Sie mir eine E-Mail zur Organisation).",
"Translate this website in your language": "Übersetzen Sie diese Website in Ihre Sprache",
", to help more people like you!": ", um mehr Menschen wie Sie zu helfen!",
"Board Model:": "",
"This feature is experimental.": "",
"Please let me know if the board model of your controller is not detected correctly.": "",
"Board model detection thanks to": "",
"This website uses analytics to improve the service.": "Diese Website verwendet Analytics, um den Service zu verbessern.",
"Board Model:": "Platinentyp:",
"This feature is experimental.": "Diese Funktion ist experimentell.",
"Please let me know if the board model of your controller is not detected correctly.": "Bitte lassen Sie mich wissen, wenn das Platinentyp Ihres Controllers nicht korrekt erkannt wird.",
"Board model detection thanks to": "Platinentyp-Erkennung dank",
"Please connect the device using a USB cable.": "Bitte verbinden Sie das Gerät mit einem USB-Kabel.",
"This DualSense controller has outdated firmware.": "Dieser DualSense-Controller hat eine veraltete Firmware.",
"Please update the firmware and try again.": "Bitte aktualisieren Sie die Firmware und versuchen Sie es erneut.",
"Joystick Info": "Joystick-Informationen",
"Err R:": "Fehler R:",
"Err L:": "Fehler L:",
"Check circularity": "Kreisförmigkeit prüfen",
"": ""
}

View File

@@ -103,7 +103,6 @@
"Sampling...": "Muestra...",
"Calibration in progress": "Calibración en proceso",
"Start": "Empezar",
"Done": "Listo",
"Continue": "Continuar",
"You can check the calibration with the": "Puedes verificar tu calibración con",
"Have a nice day :)": "Ten un buen dia! :)",
@@ -155,7 +154,18 @@
"Ship me a controller you would love to add (send me an email for organization).": "Enviame un mando que te gustaria añadir (envia el email para organizar).",
"Translate this website in your language": "Traduz esta web en tu idioma",
", to help more people like you!": ", para que ayude mas personas como tu!",
"This website uses analytics to improve the service.": "Este sitio web utiliza análisis para mejorar el servicio.",
"Board Model:": "Modelo de la placa:",
"This feature is experimental.": "Esta función es experimental.",
"Please let me know if the board model of your controller is not detected correctly.": "Por favor, avísame si el modelo de la placa de tu controlador no se detecta correctamente.",
"Board model detection thanks to": "Detección del modelo de la placa gracias a",
"Please connect the device using a USB cable.": "Por favor, conecta el dispositivo usando un cable USB.",
"This DualSense controller has outdated firmware.": "Este controlador DualSense tiene un firmware desactualizado.",
"Please update the firmware and try again.": "Por favor, actualiza el firmware y vuelve a intentarlo.",
"Joystick Info": "Información del joystick",
"Err R:": "Error D:",
"Err L:": "Error I:",
"Check circularity": "Comprobar circularidad",
"": ""
}

View File

@@ -48,8 +48,8 @@
"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",
"<b>;The controller is now sampling data!</b>;": "<b>;La manette est maintenant en train d'échantillonner les données !</b>;",
"Rotate the sticks slowly to cover the whole range. Press \"Done\" when completed.": "Faites tourner doucement les joysticks afin de couvrir toute leur portée. Appuyez sur \"Fait\" une fois terminé.",
"Done": "Fait",
"Rotate the sticks slowly to cover the whole range. Press \"Done\" when completed.": "Faites tourner doucement les joysticks afin de couvrir toute leur portée. Appuyez sur \"Terminer\" une fois terminé.",
"Done": "Terminer",
"Hi, thank you for using this software.": "Salut, merci d'avoir utilisé cet outil.",
"If you're finding it helpful and you want to support my efforts, feel free to": "Si vous le trouvez utile et que vous souhaitez soutenir mon travail, n'hésitez pas à",
"buy me a coffee": "m'offrir un café ",
@@ -103,7 +103,6 @@
"Sampling...": "Échantillonnage...",
"Calibration in progress": "Calibrage en cours",
"Start": "Démarrer",
"Done": "Terminer",
"Continue": "Continuer",
"You can check the calibration with the": "Vous pouvez vérifier le calibrage avec le:",
"Have a nice day :)": "Bonne journée :)",
@@ -115,52 +114,55 @@
"Before doing the permanent calibration, try the temporary one to ensure that everything is working well.": "Avant de procéder à un calibrage permanent, essayez de manière temporaire afin de vous assurer que tout fonctionne bien.",
"Understood": "Compris",
"Version": "Version",
"Frequently Asked Questions": "",
"Close": "",
"Welcome to the F.A.Q. section! Below, you'll find answers to some of the most commonly asked questions about this website. If you have any other inquiries or need further assistance, feel free to reach out to me directly. Your feedback and questions are always welcome!": "",
"How does it work?": "",
"Behind the scenes, this website is the culmination of one year of dedicated effort in reverse-engineering DualShock controllers for fun/hobby from a random guy on the internet.": "",
"Through": "",
"this research": "",
", it was discovered that there exist some undocumented commands on DualShock controllers that can be sent via USB and are used during factory assembly process. If these commands are sent, the controller starts the recalibration of analog sticks.": "",
"While the primary focus of this research wasn't initially centered on recalibration, it became apparent that a service offering this capability could greatly benefit numerous individuals. And thus, here we are.": "",
"Does the calibration remain effective during gameplay on PS4/PS5?": "",
"Yes, if you tick the checkbox \"Write changes permanently in the controller\". In that case, the calibration is flashed directly in the controller firmware. This ensures that it remains in place regardless of the console it's connected to.": "",
"Is this an officially endorsed service?": "",
"No, this service is simply a creation by a DualShock enthusiast.": "",
"Does this website detects if a controller is a clone?": "",
"Yes, only DualShock4 at the moment. This happened because I accidentally purchased some clones, spent time identifying the differences and added this functionality to prevent future deception.": "",
"Unfortunately, the clones cannot be calibrated anyway, because they only clone the behavior of a DualShock4 during a normal gameplay, not all the undocumented functionalities.": "",
"If you want to extend this detection functionality to DualSense, please ship me a fake DualSense and you'll see it in few weeks.": "",
"What development is in plan?": "",
"I maintain two separate to-do lists for this project, although the priority has yet to be established.": "",
"The first list is about enhancing support for DualShock4 and DualSense controllers:": "",
"Implement calibration of L2/R2 triggers.": "",
"Improve detection of clones, particularly beneficial for those seeking to purchase used controllers with assurance of authenticity.": "",
"Enhance user interface (e.g. provide additional controller information)": "",
"Add support for recalibrating IMUs.": "",
"Additionally, explore the possibility of reviving non-functioning DualShock controllers (further discussion available on Discord for interested parties).": "",
"The second list contains new controllers I aim to support:": "",
"DualSense Edge": "",
"DualShock 3": "",
"XBox Controllers": "",
"Each of these tasks presents both immense interest and significant time investment. To provide context, supporting a new controller typically demands 6-12 months of full-time research, alongside a stroke of good fortune.": "",
"I love this service, it helped me! How can I contribute?": "",
"I'm glad to hear that you found this helpful! If you're interested in contributing, here are a few ways you can help me:": "",
"Consider making a": "",
"donation": "",
"to support my late-night caffeine-fueled reverse-engineering efforts.": "",
"Ship me a controller you would love to add (send me an email for organization).": "",
"Translate this website in your language": "",
", to help more people like you!": "",
"Board Model:": "",
"This feature is experimental.": "",
"Please let me know if the board model of your controller is not detected correctly.": "",
"Board model detection thanks to": "",
"Frequently Asked Questions": "Foire Aux Questions",
"Close": "Fermer",
"Welcome to the F.A.Q. section! Below, you'll find answers to some of the most commonly asked questions about this website. If you have any other inquiries or need further assistance, feel free to reach out to me directly. Your feedback and questions are always welcome!": "Bienvenue dans la section FAQ ! Vous trouverez ci-dessous les réponses aux questions les plus fréquemment posées sur ce site. Si vous avez d'autres questions ou besoin d'aide, n'hésitez pas à me contacter directement. Vos commentaires et questions sont toujours les bienvenus !",
"How does it work?": "Comment ça fonctionne ?",
"Behind the scenes, this website is the culmination of one year of dedicated effort in reverse-engineering DualShock controllers for fun/hobby from a random guy on the internet.": "En coulisses, ce site est le fruit d'une année d'efforts dédiés au rétro-engineering des manettes DualShock par un passionné anonyme sur Internet.",
"Through": "Grâce à",
"this research": "cette recherche",
", it was discovered that there exist some undocumented commands on DualShock controllers that can be sent via USB and are used during factory assembly process. If these commands are sent, the controller starts the recalibration of analog sticks.": ", il a été découvert qu'il existe des commandes non documentées sur les manettes DualShock qui peuvent être envoyées via USB et utilisées lors du processus d'assemblage en usine. Si ces commandes sont envoyées, la manette commence la recalibration des sticks analogiques.",
"While the primary focus of this research wasn't initially centered on recalibration, it became apparent that a service offering this capability could greatly benefit numerous individuals. And thus, here we are.": "Bien que le but principal de cette recherche n'était pas initialement axé sur la recalibration, il est devenu évident qu'un service offrant cette capacité pourrait grandement bénéficier à de nombreuses personnes. Et nous y voilà.",
"Does the calibration remain effective during gameplay on PS4/PS5?": "La calibration reste-t-elle efficace pendant le jeu sur PS4/PS5 ?",
"Yes, if you tick the checkbox \"Write changes permanently in the controller\". In that case, the calibration is flashed directly in the controller firmware. This ensures that it remains in place regardless of the console it's connected to.": "Oui, si vous cochez la case \"Écrire les modifications de manière permanente dans la manette\". Dans ce cas, la calibration est directement enregistrée dans le firmware de la manette. Cela garantit qu'elle reste en place, quelle que soit la console à laquelle elle est connectée.",
"Is this an officially endorsed service?": "S'agit-il d'un service officiellement approuvé ?",
"No, this service is simply a creation by a DualShock enthusiast.": "Non, ce service est simplement une création d'un passionné de DualShock.",
"Does this website detects if a controller is a clone?": "Ce site détecte-t-il si une manette est un clone ?",
"Yes, only DualShock4 at the moment. This happened because I accidentally purchased some clones, spent time identifying the differences and added this functionality to prevent future deception.": "Oui, uniquement la DualShock4 pour le moment. Cela est arrivé parce que j'ai accidentellement acheté des clones, j'ai passé du temps à identifier les différences et j'ai ajouté cette fonctionnalité pour éviter les futures déceptions.",
"Unfortunately, the clones cannot be calibrated anyway, because they only clone the behavior of a DualShock4 during a normal gameplay, not all the undocumented functionalities.": "Malheureusement, les clones ne peuvent pas être calibrés de toute façon, car ils ne copient que le comportement d'une DualShock4 pendant un jeu normal, pas toutes les fonctionnalités non documentées.",
"If you want to extend this detection functionality to DualSense, please ship me a fake DualSense and you'll see it in few weeks.": "Si vous souhaitez étendre cette fonctionnalité de détection à la DualSense, veuillez m'envoyer une fausse DualSense et vous la verrez dans quelques semaines.",
"What development is in plan?": "Quels développements sont prévus?",
"I maintain two separate to-do lists for this project, although the priority has yet to be established.": "Je maintiens deux listes de tâches séparées pour ce projet, bien que la priorité n'ait pas encore été établie.",
"The first list is about enhancing support for DualShock4 and DualSense controllers:": "La première liste concerne l'amélioration du support pour les manettes DualShock4 et DualSense :",
"Implement calibration of L2/R2 triggers.": "Mettre en œuvre la calibration des gâchettes L2/R2.",
"Improve detection of clones, particularly beneficial for those seeking to purchase used controllers with assurance of authenticity.": "Améliorer la détection des clones, particulièrement bénéfique pour ceux qui cherchent à acheter des manettes d'occasion avec une assurance d'authenticité.",
"Enhance user interface (e.g. provide additional controller information)": "Améliorer l'interface utilisateur (par exemple, fournir des informations supplémentaires sur la manette)",
"Add support for recalibrating IMUs.": "Ajouter le support pour recalibrer les IMU.",
"Additionally, explore the possibility of reviving non-functioning DualShock controllers (further discussion available on Discord for interested parties).": "De plus, explorer la possibilité de réanimer les manettes DualShock non fonctionnelles (discussion supplémentaire disponible sur Discord pour les parties intéressées).",
"The second list contains new controllers I aim to support:": "La deuxième liste contient les nouvelles manettes que je vise à supporter:",
"DualSense Edge": "DualSense Edge",
"DualShock 3": "DualShock 3",
"XBox Controllers": "Manettes XBox",
"Each of these tasks presents both immense interest and significant time investment. To provide context, supporting a new controller typically demands 6-12 months of full-time research, alongside a stroke of good fortune.": "Chacune de ces tâches présente un immense intérêt et un investissement de temps significatif. Pour donner un contexte, supporter une nouvelle manette nécessite généralement 6 à 12 mois de recherche à plein temps, avec un peu de chance.",
"I love this service, it helped me! How can I contribute?": "J'adore ce service, il m'a aidé! Comment puis-je contribuer?",
"I'm glad to hear that you found this helpful! If you're interested in contributing, here are a few ways you can help me:": "Je suis ravi d'apprendre que vous avez trouvé cela utile ! Si vous êtes intéressé à contribuer, voici quelques façons dont vous pouvez m'aider:",
"Consider making a": "Envisagez de faire un",
"donation": "don",
"to support my late-night caffeine-fueled reverse-engineering efforts.": "pour soutenir mes efforts de rétro-engineering alimentés par la caféine tard dans la nuit.",
"Ship me a controller you would love to add (send me an email for organization).": "Envoyez-moi une manette que vous aimeriez ajouter (envoyez-moi un e-mail pour l'organisation).",
"Translate this website in your language": "Traduisez ce site dans votre langue",
", to help more people like you!": ", pour aider plus de gens comme vous !",
"This website uses analytics to improve the service.": "Ce site utilise des analyses pour améliorer le service.",
"Board Model:": "Modèle de carte:",
"This feature is experimental.": "Cette fonctionnalité est expérimentale.",
"Please let me know if the board model of your controller is not detected correctly.": "Veuillez me faire savoir si le modèle de la carte de votre manette n'est pas détecté correctement.",
"Board model detection thanks to": "Détection du modèle de la carte grâce à",
"Please connect the device using a USB cable.": "Veuillez connecter l'appareil à l'aide d'un câble USB.",
"This DualSense controller has outdated firmware.": "Cette manette DualSense a un firmware obsolète.",
"Please update the firmware and try again.": "Veuillez mettre à jour le firmware et réessayer.",
"Joystick Info": "Infos Joystick",
"Err R:": "Err D:",
"Err L:": "Err G:",
"Check circularity": "Vérifier la circularité",
"": ""
}

View File

@@ -103,7 +103,6 @@
"Sampling...": "Mintavételezés...",
"Calibration in progress": "Kalibrálás folyamatban",
"Start": "Kezdés",
"Done": "Befejezés",
"Continue": "Folytatás",
"You can check the calibration with the": "Az újrakalibrálást ellenőrizheted az alábbi alkalmazással is:",
"Have a nice day :)": "További szép napot kívánunk! :)",
@@ -116,46 +115,56 @@
"Understood": "Megértettem és elfogadom",
"Version": "Verzió",
"Frequently Asked Questions": "",
"Close": "",
"Welcome to the F.A.Q. section! Below, you'll find answers to some of the most commonly asked questions about this website. If you have any other inquiries or need further assistance, feel free to reach out to me directly. Your feedback and questions are always welcome!": "",
"How does it work?": "",
"Behind the scenes, this website is the culmination of one year of dedicated effort in reverse-engineering DualShock controllers for fun/hobby from a random guy on the internet.": "",
"Through": "",
"this research": "",
", it was discovered that there exist some undocumented commands on DualShock controllers that can be sent via USB and are used during factory assembly process. If these commands are sent, the controller starts the recalibration of analog sticks.": "",
"While the primary focus of this research wasn't initially centered on recalibration, it became apparent that a service offering this capability could greatly benefit numerous individuals. And thus, here we are.": "",
"Does the calibration remain effective during gameplay on PS4/PS5?": "",
"Yes, if you tick the checkbox \"Write changes permanently in the controller\". In that case, the calibration is flashed directly in the controller firmware. This ensures that it remains in place regardless of the console it's connected to.": "",
"Is this an officially endorsed service?": "",
"No, this service is simply a creation by a DualShock enthusiast.": "",
"Does this website detects if a controller is a clone?": "",
"Yes, only DualShock4 at the moment. This happened because I accidentally purchased some clones, spent time identifying the differences and added this functionality to prevent future deception.": "",
"Unfortunately, the clones cannot be calibrated anyway, because they only clone the behavior of a DualShock4 during a normal gameplay, not all the undocumented functionalities.": "",
"If you want to extend this detection functionality to DualSense, please ship me a fake DualSense and you'll see it in few weeks.": "",
"What development is in plan?": "",
"I maintain two separate to-do lists for this project, although the priority has yet to be established.": "",
"The first list is about enhancing support for DualShock4 and DualSense controllers:": "",
"Implement calibration of L2/R2 triggers.": "",
"Improve detection of clones, particularly beneficial for those seeking to purchase used controllers with assurance of authenticity.": "",
"Enhance user interface (e.g. provide additional controller information)": "",
"Add support for recalibrating IMUs.": "",
"Additionally, explore the possibility of reviving non-functioning DualShock controllers (further discussion available on Discord for interested parties).": "",
"The second list contains new controllers I aim to support:": "",
"DualSense Edge": "",
"DualShock 3": "",
"XBox Controllers": "",
"Each of these tasks presents both immense interest and significant time investment. To provide context, supporting a new controller typically demands 6-12 months of full-time research, alongside a stroke of good fortune.": "",
"I love this service, it helped me! How can I contribute?": "",
"I'm glad to hear that you found this helpful! If you're interested in contributing, here are a few ways you can help me:": "",
"Consider making a": "",
"donation": "",
"to support my late-night caffeine-fueled reverse-engineering efforts.": "",
"Ship me a controller you would love to add (send me an email for organization).": "",
"Translate this website in your language": "",
", to help more people like you!": "",
"Frequently Asked Questions": "Gyakran Ismételt Kérdések",
"Close": "Bezár",
"Welcome to the F.A.Q. section! Below, you'll find answers to some of the most commonly asked questions about this website. If you have any other inquiries or need further assistance, feel free to reach out to me directly. Your feedback and questions are always welcome!": "Üdvözöllek a gyakran ismételt kérdések szekcióban! Az alábbiakban választ találsz a weboldallal kapcsolatban leggyakrabban feltett kérdésekre. Ha további kérdésed van, vagy további segítségre van szükséged, fordulj közvetlenül a szoftver készítőjéhez. Visszajelzésed és kérdéseid mindig szívesen fogadja!",
"How does it work?": "Hogyan működik ez a felület?",
"Behind the scenes, this website is the culmination of one year of dedicated effort in reverse-engineering DualShock controllers for fun/hobby from a random guy on the internet.": "A színfalak mögött ez a weboldal több évnyi kutatás és erőfeszítés betetőzése a DualShock kontrollerek visszafejtése terén szórakozásból/hobbiból egy véletlenszerű sráctól az interneten.",
"Through": "A kutatás során",
"this research": "kiderült",
", it was discovered that there exist some undocumented commands on DualShock controllers that can be sent via USB and are used during factory assembly process. If these commands are sent, the controller starts the recalibration of analog sticks.": ", hogy a DualShock kontrollereken vannak olyan nem dokumentált parancsok, amelyek USB-n keresztül küldhetők, és a gyártás során használatosak. Ha ezeket a parancsokat elküldjük, a kontroller elindítja az analóg karok újrakalibrálását.",
"While the primary focus of this research wasn't initially centered on recalibration, it became apparent that a service offering this capability could greatly benefit numerous individuals. And thus, here we are.": "Noha ennek a kutatásnak az elsődleges célja kezdetben nem az újrakalibrálásra irányult, nyilvánvalóvá vált, hogy egy ilyen lehetőség sokak számára hasznos lehet. És így, itt vagyunk.",
"Does the calibration remain effective during gameplay on PS4/PS5?": "A kalibráció maradandó és használható játék közben PS4/PS5 rendszeren?",
"Yes, if you tick the checkbox \"Write changes permanently in the controller\". In that case, the calibration is flashed directly in the controller firmware. This ensures that it remains in place regardless of the console it's connected to.": "Igen, ha bejelölöd a \"A változtatások végleges írása a kontrollerbe\" jelölőnégyzetet. Ebben az esetben a kalibrálás közvetlenül a kontroller firmware-ében jelenik meg. Ez biztosítja, hogy a helyén maradjon és aktív legyen, függetlenül attól, hogy melyik konzolhoz csatlakozik.",
"Is this an officially endorsed service?": "Ez egy hivatalosan jóváhagyott szolgáltatás?",
"No, this service is simply a creation by a DualShock enthusiast.": "Nem, ez a szolgáltatás egyszerűen egy DualShock kontroller rajongó által készített szolgáltatás.",
"Does this website detects if a controller is a clone?": "Ez a webhely érzékeli, hogy a csatlakoztatott kontroller klón?",
"Yes, only DualShock4 at the moment. This happened because I accidentally purchased some clones, spent time identifying the differences and added this functionality to prevent future deception.": "Igen, jelenleg csak a DualShock 4 kontrollereken. Ez azért történt, mert a készítő véletlenül vásárolt néhány klónt, időt töltött a különbségek azonosításával, és hozzáadta ezt a funkciót, hogy megakadályozza a jövőbeni megtévesztést.",
"Unfortunately, the clones cannot be calibrated anyway, because they only clone the behavior of a DualShock4 during a normal gameplay, not all the undocumented functionalities.": "Sajnos a klónokat amúgy sem lehet kalibrálni, mert csak a DualShock 4 kontroller viselkedését klónozzák normál játék közben, nem az összes dokumentálatlan funkciót.",
"If you want to extend this detection functionality to DualSense, please ship me a fake DualSense and you'll see it in few weeks.": "Ha szeretnél segíteni ezt az észlelési funkciót kiterjeszteni a DualSense-re, küldj a fejlesztőnek egy hamis DualSense-t, és az alaklamzás néhány héten belül látni fogja.",
"What development is in plan?": "Milyen fejlesztés van tervben?",
"I maintain two separate to-do lists for this project, although the priority has yet to be established.": "A fejlesztő két külön listát vezet ehhez a projekthez, bár a prioritást még meg kell határozni.",
"The first list is about enhancing support for DualShock4 and DualSense controllers:": "Az első lista a DualShock 4 és DualSense kontrollerek támogatásának javításáról szól:",
"Implement calibration of L2/R2 triggers.": "Az L2/R2 ravaszok kalibrálásának lehetősége.",
"Improve detection of clones, particularly beneficial for those seeking to purchase used controllers with assurance of authenticity.": "A klón kontrollerek észlelésének javítása, különösen azok számára, akik megbízható, eredeti kontrollert szeretnének vásárolni.",
"Enhance user interface (e.g. provide additional controller information)": "A felhasználói felület fejlesztése (pl. további kontrollerinformációk megadása)",
"Add support for recalibrating IMUs.": "Az IMU-k újrakalibrálási lehetőségének hozzáadása.",
"Additionally, explore the possibility of reviving non-functioning DualShock controllers (further discussion available on Discord for interested parties).": "Ezenkívül a nem működő DualShock kontroller újjáélesztési lehetőségének vizsgálata (további megbeszélések elérhetők a Discord-on az érdeklődők számára).",
"The second list contains new controllers I aim to support:": "A második lista új kontrollereket tartalmaz, amelyeket a fejlesztő támogatni kíván:",
"DualSense Edge": "DualSense Edge",
"DualShock 3": "DualShock 3",
"XBox Controllers": "Xbox kontrollerek",
"Each of these tasks presents both immense interest and significant time investment. To provide context, supporting a new controller typically demands 6-12 months of full-time research, alongside a stroke of good fortune.": "Ezen feladatok mindegyike jelentős mennyiségű kutatást és időbefektetést jelent. A kontextus biztosítása érdekében egy új kontroller támogatása általában 6-12 hónapos teljes munkaidős kutatást igényel, egy csöpnyi szerencsével meghintve.",
"I love this service, it helped me! How can I contribute?": "Imádom ezt a szolgáltatást, segített! Hogyan tudok hozzájárulni?",
"I'm glad to hear that you found this helpful! If you're interested in contributing, here are a few ways you can help me:": "Örülök, hogy ezt hasznosnak találtad! Ha érdekel a hozzájárulás, itt van néhány módszer, amellyel segíthetsz a fejlesztőnek:",
"Consider making a": "Fontold meg a",
"donation": "fejlesztő támogatását",
"to support my late-night caffeine-fueled reverse-engineering efforts.": ", hogy a hosszú éjszakákba nyúló koffeinbevitel biztosítva legyen a visszafejtési műveletek közben!",
"Ship me a controller you would love to add (send me an email for organization).": "Küldj a fejlesztőnek egy kontrollert, amelyet szívesen látnál a támogatott kontrollerek listájában (küldj e-mailt a fejlesztőnek).",
"Translate this website in your language": "Fordítsd le ezt a webhelyet a saját nyelvedre",
", to help more people like you!": ", hogy több hozzád hasonló embernek segítsen!",
"This website uses analytics to improve the service.": "Ez a weboldal analitikát használ a szolgáltatás javításához.",
"Board Model:": "Alaplap verzió",
"This feature is experimental.": "Ez egy kisérleti funkció",
"Please let me know if the board model of your controller is not detected correctly.": "Kérlek értesítsd a fejlesztőt, ha az alaplap verziója nem egyezik meg a felimert verzióval!",
"Board model detection thanks to": "Az alaplapfelismerési funkciőért köszönet neki:",
"Please connect the device using a USB cable.": "Kérjük, csatlakoztassa az eszközt USB-kábellel.",
"This DualSense controller has outdated firmware.": "Ennek a DualSense vezérlőnek elavult a firmware-e.",
"Please update the firmware and try again.": "Kérjük, frissítse a firmware-t, és próbálja újra.",
"Joystick Info": "Joystick Információ",
"Err R:": "Hiba J:",
"Err L:": "Hiba B:",
"Check circularity": "Ellenőrizze a körkörösséget",
"": ""
}

View File

@@ -103,7 +103,6 @@
"Sampling...": "Campiono...",
"Calibration in progress": "Calibrazione in corso",
"Start": "Avvia",
"Done": "Fatto",
"Continue": "Continua",
"You can check the calibration with the": "Puoi controllare la calibrazione con il",
"Have a nice day :)": "Buona giornata! :)",
@@ -155,12 +154,18 @@
"Ship me a controller you would love to add (send me an email for organization).": "Spediscimi un controller che vorresti aggiungere (mandami un'email per l'organizzazione).",
"Translate this website in your language": "Traduci questo sito web nella tua lingua",
", to help more people like you!": ", per aiutare più persone come te!",
"This website uses analytics to improve the service.": "Questo sito web utilizza analytics per migliorare il servizio.",
"Board Model:": "Modello scheda:",
"This feature is experimental.": "Questa funzionalità è sperimentale.",
"Please let me know if the board model of your controller is not detected correctly.": "Scrivimi se il modello della scheda del tuo controller non viene riconosciuto correttamente.",
"Board model detection thanks to": "Rilevamento del modello della scheda grazie a",
"Please connect the device using a USB cable.": "Connetti il controller usando un cavo USB.",
"This DualSense controller has outdated firmware.": "Questo controller DualSense ha un firmware non aggiornato.",
"Please update the firmware and try again.": "Aggiorna il firmware e riprova.",
"Joystick Info": "Informazioni sui Joystick",
"Err R:": "Err Dx:",
"Err L:": "Err Sx:",
"Check circularity": "Controlla circolarità",
"This website uses analytics to improve the service.": "Questo sito web utilizza analytics per migliorare il servizio.",
"": ""
}

View File

@@ -103,7 +103,6 @@
"Sampling...": "サンプリング...",
"Calibration in progress": "キャリブレーション進行中",
"Start": "開始",
"Done": "完了",
"Continue": "続行",
"You can check the calibration with the": "キャリブレーションは次で確認できます",
"Have a nice day :)": "良い1日を :)",
@@ -155,12 +154,19 @@
"Ship me a controller you would love to add (send me an email for organization).": "追加したいコントローラーを送ってください(組織のためにメールを送ってください)。",
"Translate this website in your language": "このウェブサイトをあなたの言語に翻訳する",
", to help more people like you!": "、あなたのような多くの人々を助けるために!",
"Board Model:": "",
"This feature is experimental.": "",
"Please let me know if the board model of your controller is not detected correctly.": "",
"Board model detection thanks to": "",
"This website uses analytics to improve the service.": "このウェブサイトはサービスを向上させるためにアナリティクスを使用しています。",
"Board Model:": "基板モデル:",
"This feature is experimental.": "この機能は実験的です。",
"Please let me know if the board model of your controller is not detected correctly.": "コントローラーの基板モデルが正しく検出されない場合はお知らせください。",
"Board model detection thanks to": "基板モデルの検出には感謝します",
"Please connect the device using a USB cable.": "デバイスをUSBケーブルで接続してください。",
"This DualSense controller has outdated firmware.": "このDualSenseコントローラーのファームウェアは古くなっています。",
"Please update the firmware and try again.": "ファームウェアを更新してから再試行してください。",
"Joystick Info": "ジョイスティック情報",
"Err R:": "エラー 右:",
"Err L:": "エラー 左:",
"Check circularity": "円形を確認",
"": ""
}

173
lang/pl_pl.json Normal file
View File

@@ -0,0 +1,173 @@
{
".authorMsg": "Tłumaczenie na język polski wykonał - Marekk",
"DualShock Calibration GUI": "DualShock Calibration GUI",
"Unsupported browser. Please use a web browser with WebHID support (e.g. Chrome).": "Nie wspierana przeglądarka! Proszę użyć przeglądarki internetowej wpierającą WebHID (np. Chrome).",
"Connect a DualShock 4 or a DualSense controller to your computer and press Connect.": "Podłącz swój kontroler Dualshock 4, lub Dualsense do komputera, i wciśnij przycisk Połącz.",
"Connect": "Połącz",
"Connected to:": "Połączono z:",
"Disconnect": "Rozłącz",
"Firmware Info": "Informacje o Firmware",
"Calibrate stick center": "Skalibruj centralny punkt drążków",
"Calibrate stick range (permanent)": "Skalibruj maksymalny zasięg drążków (na stałe)",
"Calibrate stick range (temporary)": "Skalibruj maksymalny zasięg drążków (chwilowo)",
"Reset controller": "Zresetuj kontroler",
"Sections below are not useful, just some debug infos or manual commands": "Poniższe sekcje nie są przydatne, zawierają jedynie informacje dotyczące debugowania lub ręcznych poleceń",
"NVS Status": "Status NVS",
"Unknown": "Nieznany",
"BD Addr": "Adres BD",
"Debug buttons": "Przyciski do debugowania",
"Query NVS status": "Zapytanie o status NVS",
"NVS unlock": "Odblokuj NVS",
"NVS lock": "Zablokuj NVS",
"Get BDAddr": "Zdobądź BDAddr",
"Fast calibrate stick center (OLD)": "Szybka kalibracja punktu drążków (stara wersja)",
"Stick center calibration": "Kalibracja centralna drążków",
"Welcome": "Witamy",
"Step 1": "Krok 1",
"Step 2": "Krok 2",
"Step 3": "Krok 3",
"Step 4": "Krok 4",
"Completed": "Zakończono",
"Welcome to the stick center-calibration wizard!": "Witamy w narzędziu kalibracyjnym centralnego punktu drążków!",
"This tool will guide you in re-centering the analog sticks of your controller. It consists in four steps: you will be asked to move both sticks in a direction and release them.": "To narzędzie pomoże Ci w ponownym wycentrowaniu drążków kontrolera. Składa się z czterech kroków: zostaniesz poproszony o przesunięcie obu drążków w określonych kierunkach, a następnie w ich puszczeniu.",
"Please be aware that, <i>once the calibration is running, it cannot be canceled</i>. Do not close this page or disconnect your controller until is completed.": "Prosimy pamiętać, żeby po rozpoczęciu kalibracji nie anulować całej procedury. Nie zamykaj tej strony ani nie odłączaj kontrolera do czasu zakończenia.",
"Calibration storage": "Magazyn kalibracji",
"By default the calibration is only saved in a volatile storage, so that if you (or this tool) mess something up, a reset of the controller is enough to make it work again.": "Domyślnie kalibracja zapisana jest jedynie w pamięci tymczasowej, więc w przypadku awarii (lub spowodowanej przez to narzędzie) wystarczy zresetować sterownik, aby ponownie zaczął działać.",
"If you wish to store the calibration permanently in the controller, tick the checkbox below:": "Jeżeli chcesz trwale zapisać kalibrację w sterowniku zaznacz pole poniżej:",
"Write changes permanently in the controller": "Zapisz zmiany na stałe w kontrolerze",
"<small>Warning: <font color=\"red\">Do not store the calibration permanently if the controller battery is low or disconnected. It will damage your controller.</font></small>": "<small>Uwaga: <font color=\"red\">Nie zapisuj trwale kalibracji, jeśli bateria kontrolera jest słaba lub została odłączona. W przeciwnym wypadku kontroler ulegnie całkowitemu uszkodzeniu.</font></small>",
"Press <b>Start</b> to begin calibration.": "Naciśnij <b>Start</b>, żeby rozpocząć kalibrację.",
"Please move both sticks to the <b>top-left corner</b> and release them.": "Proszę przesuń oba drążki maksymalnie do <b>Lewego górnego rogu</b> a następnie je puść.",
"When the sticks are back in the center, press <b>Continue</b>.": "Gdy drążki znajdą się z powrotem na środku, naciśnij <b>Kontynuuj</b>.",
"Please move both sticks to the <b>top-right corner</b> and release them.": "Proszę przesuń oba drążki maksymalnie do <b>Prawego górnego rogu</b> a następnie je puść.",
"Please move both sticks to the <b>bottom-left corner</b> and release them.": "Proszę przesuń oba drążki maksymalnie do <b>Lewego dolnego rogu</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>Prawego dolnego rogu</b> a następnie je puść.",
"Calibration completed successfully!": "Kalibracja została wykonana pomyślnie!",
"Next": "Dalej",
"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. ",
"Range calibration": "Kalibracja maksymalnego zasięgu drążków",
"<b>The controller is now sampling data!</b>": "<b>Kontroler zbiera teraz dane!</b>",
"Rotate the sticks slowly to cover the whole range. Press \"Done\" when completed.": "Obracaj powoli drążkami w ich maksymalnym możliwym zasięgu, a następnie je puść. Naciśnij \"Gotowe\", jeżeli skończyłeś.",
"Done": "Gotowe",
"Hi, thank you for using this software.": "Cześć, dzięki ci za użycie tego oprogramowania.",
"If you're finding it helpful and you want to support my efforts, feel free to": "Jeżeli uznałeś to narzędzie za pomocne, i chcesz wesprzeć mój wysiłek, nie krępuj się",
"buy me a coffee": "Kup mi kawę",
"! :)": "! :)",
"Do you have any suggestion or issue? Drop me a message via email or discord.": "Czy masz jakąś sugestię lub problem? Napisz do mnie wiadomość e-mailem lub na Discordzie.",
"Cheers!": "dzięki!",
"Support this project": "Wesprzyj projekt",
"unknown": "nieznany",
"original": "oryginał",
"clone": "klon",
"locked": "zablokowany",
"unlocked": "odblokowany",
"error": "błąd",
"Build Date:": "Data Produkcji:",
"HW Version:": "Wersja HW:",
"SW Version:": "Wersja SW:",
"Device Type:": "Rodzaj urządzenia:",
"Firmware Type:": "Rodzaj Firmware'u:",
"SW Series:": "Seria SW:",
"HW Info:": "Informacje o HW:",
"SW Version:": "Wersja SW:",
"UPD Version:": "Wersja UTD:",
"FW Version1:": "FW Wersja 1:",
"FW Version2:": "FW Wersja 2:",
"FW Version3:": "FW Wersja 3:",
"Range calibration completed": "Kalibracja maksymalnego zasięgu drążków została zakończona pomyślnie",
"Range calibration failed: ": "Kalibracja maksymalnego zasięgu drążków została nieuadana: ",
"Cannot unlock NVS": "Nie można odblokować NVS",
"Cannot relock NVS": "Nie można ponownie zablokować NVS",
"Error 1": "Błąd 1",
"Error 2": "Błąd 2",
"Error 3": "Błąd 3",
"Stick calibration failed: ": "Kalibracja drążków nie powiodła się: ",
"Stick calibration completed": "Kalibracja drążków powiodła się",
"NVS Lock failed: ": "Blokada NVS nie powiodła się: ",
"NVS Unlock failed: ": "Odblokowanie NVS nie powiodło się: ",
"Please connect only one controller at time.": "Proszę podłączyć tylko jeden kontoler.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2",
"Sony DualSense": "Sony DualSense",
"Sony DualSense Edge": "Sony DualSense Edge",
"Connected invalid device: ": "Podłączono nieznane urządzenie: ",
"Calibration of the DualSense Edge is not currently supported.": "Kalibracja kontrolera DualSense Edge nie jest obecnie jeszcze wspierana.",
"The device appears to be a DS4 clone. All functionalities are disabled.": "Wykryto urządzenie jako klon Dualshock 4. Wszystkie funkcje zostają wyłączone.",
"Error: ": "Błąd: ",
"My handle on discord is: the_al": "Mój Discord to: the_al",
"Initializing...": "Initializowanie...",
"Storing calibration...": "Zapisywanie kalibracji...",
"Sampling...": "Próbowanie...",
"Calibration in progress": "Kalibracja w toku",
"Start": "Start",
"Continue": "Kontynuuj",
"You can check the calibration with the": "Możesz sprawdzić kalibrację za pomocą",
"Have a nice day :)": "Życzę ci miłego dnia! :)",
"Welcome to the Calibration GUI": "Witamy w Calibration GUI",
"Just few things to know before you can start:": "O to kilka rzeczy o których musisz wiedzieć przed rozpoczęciem",
"This website is not affiliated with Sony, PlayStation &amp; co.": "Ta strona nie jest w żaden sposób spowiązana z Sony, PlayStation &amp; co.",
"This service is provided without warranty. Use at your own risk.": "Ta usługa nie świadczy, ani nie podlega żadnej gwarancji. Robisz to wszystko to na własne ryzyko.",
"Keep the internal battery of the controller connected and ensure it is well charged. If the battery dies during operations, the controller will be damaged and rendered unusable.": "Upewnij się przed procesem kalibracji, czy twoja bateria w kontrolerze jest dobrze naładowana. W przeciwnym razie gdy bateria się rozładuje, to wewnętrzny sterownik kontrolera może ulec całkowitemu uszkodzeniu",
"Before doing the permanent calibration, try the temporary one to ensure that everything is working well.": "Przed wykonaniem kalibracji stałej wypróbuj kalibrację tymczasową, aby upewnić się, że wszystko działa dobrze.",
"Understood": "Zrozumiano",
"Version": "Wersja",
"Frequently Asked Questions": "Często zadawane pytania",
"Close": "Zamknij",
"Welcome to the F.A.Q. section! Below, you'll find answers to some of the most commonly asked questions about this website. If you have any other inquiries or need further assistance, feel free to reach out to me directly. Your feedback and questions are always welcome!": "Witaj w sekcji FAQ! Poniżej znajdziesz odpowiedzi na niektóre z najczęściej zadawanych pytań dotyczących tej witryny. Jeśli masz inne pytania lub potrzebujesz dalszej pomocy, skontaktuj się ze mną bezpośrednio. Twoje opinie i pytania są zawsze mile widziane!",
"How does it work?": "Jak to działa?",
"Behind the scenes, this website is the culmination of one year of dedicated effort in reverse-engineering DualShock controllers for fun/hobby from a random guy on the internet.": "Za kulisami ta witryna internetowa jest wynikiem całorocznych wysiłków związanych z inżynierią wsteczną kontrolerów DualShock dla zabawy/hobby jakiegoś przypadkowego faceta w Internecie.",
"Through": "Poprzez",
"this research": "badania",
", it was discovered that there exist some undocumented commands on DualShock controllers that can be sent via USB and are used during factory assembly process. If these commands are sent, the controller starts the recalibration of analog sticks.": "odkryto, że w kontrolerach DualShock znajdują się pewne nieudokumentowane polecenia, które można wysyłać przez USB i wykorzystywać w procesie produkcyjnym. Po wysłaniu tych poleceń sterownik rozpoczyna ponowną kalibrację drążków.",
"While the primary focus of this research wasn't initially centered on recalibration, it became apparent that a service offering this capability could greatly benefit numerous individuals. And thus, here we are.": "Chociaż początkowo główny nacisk w tych badaniach nie skupiał się na ponownej kalibracji, stało się jasne, że usługa oferująca taką możliwość może przynieść ogromne korzyści wielu osobom. I tak oto jesteśmy.",
"Does the calibration remain effective during gameplay on PS4/PS5?": "Czy kalibracja pozostaje skuteczna podczas gry na PS4/PS5?",
"Yes, if you tick the checkbox \"Write changes permanently in the controller\". In that case, the calibration is flashed directly in the controller firmware. This ensures that it remains in place regardless of the console it's connected to.": "Tak, jeśli zaznaczysz w checkbox \"Zapisz zmiany na stałe w kontrolerze\" W takim przypadku kalibracja zostanie wczytana bezpośrednio w oprogramowaniu sterownika. Dzięki temu pozostanie na swoim miejscu niezależnie od konsoli, do której jest podłączony.",
"Is this an officially endorsed service?": "Czy jest to oficjalnie zatwierdzona usługa?",
"No, this service is simply a creation by a DualShock enthusiast.": "Nie, ta usługa jest po prostu dziełem entuzjasty DualShock'a",
"Does this website detects if a controller is a clone?": "Czy ta witryna internetowa wykrywa, czy kontroler jest klonem?",
"Yes, only DualShock4 at the moment. This happened because I accidentally purchased some clones, spent time identifying the differences and added this functionality to prevent future deception.": "Tak, obecnie tylko DualShock 4. Stało się tak, ponieważ przez przypadek kupiłem kilka klonów, spędziłem czas na identyfikowaniu różnic i dodałem tę funkcję, aby zapobiec przyszłym oszustwom.",
"Unfortunately, the clones cannot be calibrated anyway, because they only clone the behavior of a DualShock4 during a normal gameplay, not all the undocumented functionalities.": "Niestety klonów i tak nie da się skalibrować, ponieważ klonują jedynie zachowanie DualShocka 4 podczas normalnej rozgrywki, a nie wszystkie nieudokumentowane funkcje.",
"If you want to extend this detection functionality to DualSense, please ship me a fake DualSense and you'll see it in few weeks.": "Jeśli chcesz rozszerzyć tę funkcję wykrywania na DualSense, prześlij mi fałszywy DualSense, a zobaczysz go za kilka tygodni.",
"What development is in plan?": "Jakie masz dalsze plany na rozwój?",
"I maintain two separate to-do lists for this project, although the priority has yet to be established.": "Prowadzę dwie osobne listy rzeczy do zrobienia dla tego projektu, chociaż priorytet nie został jeszcze ustalony.",
"The first list is about enhancing support for DualShock4 and DualSense controllers:": "Pierwsza lista dotyczy ulepszenia obsługi kontrolerów DualShock 4 i DualSense:",
"Implement calibration of L2/R2 triggers.": "Implementacja funkcji kalibracji przycisków L2/R2.",
"Improve detection of clones, particularly beneficial for those seeking to purchase used controllers with assurance of authenticity.": "Usprawnienie do wykrywania klonów, co jest szczególnie korzystne dla osób chcących kupić używane kontrolery z gwarancją autentyczności.",
"Enhance user interface (e.g. provide additional controller information)": "Ulepszenie interfejsu użytkownika (np. dodatkowe informacje o kontrolerze)",
"Add support for recalibrating IMUs.": "Dodanie obsługi ponownej kalibracji IMU.",
"Additionally, explore the possibility of reviving non-functioning DualShock controllers (further discussion available on Discord for interested parties).": "Możliwość zbadania niedziałających kontrolerów DualShock w celu możliwości ich ożywienia (dalsza dyskusja dostępna na Discordzie dla zainteresowanych).",
"The second list contains new controllers I aim to support:": "Druga lista zawiera nowe kontrolery, które chcę wspierać:",
"DualSense Edge": "DualSense Edge",
"DualShock 3": "DualShock 3",
"XBox Controllers": "Kontroler Xbox",
"Each of these tasks presents both immense interest and significant time investment. To provide context, supporting a new controller typically demands 6-12 months of full-time research, alongside a stroke of good fortune.": "Każde z tych zadań oferuje zarówno ogromne zainteresowanie, jak i znaczną inwestycję czasową. Aby zapewnić pewien kontekst, obsługa nowego kontrolera zazwyczaj wymaga 612 miesięcy badań w pełnym wymiarze godzin i odrobiny szczęścia.",
"I love this service, it helped me! How can I contribute?": "Uwielbiam tę usługę, pomogła mi! Jak mogę się odwdzięczyć?",
"I'm glad to hear that you found this helpful! If you're interested in contributing, here are a few ways you can help me:": "Miło mi słyszeć, że okazało się to pomocne! Jeśli jesteś zainteresowany wsparciem, oto kilka sposobów, w jakie możesz mi pomóc:",
"Consider making a": "Rozważ tworzenie ",
"donation": "Donacja",
"to support my late-night caffeine-fueled reverse-engineering efforts.": "aby wesprzeć moje nocne wysiłki w zakresie inżynierii wstecznej napędzane kofeiną.",
"Ship me a controller you would love to add (send me an email for organization).": "Wyślij mi kontroler, który chciałbyś dodać (wyślij mi e-mail do organizacji).",
"Translate this website in your language": "Przetłumacz tę stronę na swój język",
", to help more people like you!": ", aby pomóc większej ilości osób takich jak ty!",
"This website uses analytics to improve the service.": "Ta strona korzysta z analiz w celu ulepszenia usług.",
"Board Model:": "Model płytki:",
"This feature is experimental.": "Ta funkcja jest eksperymentalna.",
"Please let me know if the board model of your controller is not detected correctly.": "Proszę daj mi znać jaki model płytki kontrolera nie został wykryty poprawnie",
"Board model detection thanks to": "Podziękowania dla osoby która wykryła model płytki",
"Please connect the device using a USB cable.": "Proszę podłącz urządzenie przy pomocy kabla USB.",
"This DualSense controller has outdated firmware.": "",
"Please update the firmware and try again.": "",
"Joystick Info": "",
"Err R:": "",
"Err L:": "",
"Check circularity": "",
"": ""
}

172
lang/pt_br.json Normal file
View File

@@ -0,0 +1,172 @@
{
".authorMsg": "- Tradução para o Português realizada por Padula, Diego A. :)",
"DualShock Calibration GUI": "GUI de Calibração DualShock",
"Unsupported browser. Please use a web browser with WebHID support (e.g. Chrome).": "Navegador não suportado. Por favor, use um navegador da web com suporte ao WebHID (por exemplo, Chrome).",
"Connect a DualShock 4 or a DualSense controller to your computer and press Connect.": "Conecte um controlador DualShock 4 ou DualSense ao seu computador e pressione Conectar.",
"Connect": "Conectar",
"Connected to:": "Conectado a:",
"Disconnect": "Desconectar",
"Firmware Info": "Informações do Firmware",
"Calibrate stick center": "Calibrar centro do Analog",
"Calibrate stick range (permanent)": "Calibrar o intervalo do Analog (permanente)",
"Calibrate stick range (temporary)": "Calibrar o intervalo do Analog (temporário)",
"Reset controller": "Redefinir controlador",
"Sections below are not useful, just some debug infos or manual commands": "As seções abaixo não são úteis, apenas algumas informações de depuração ou comandos manuais",
"NVS Status": "Status NVS",
"Unknown": "Desconhecido",
"BD Addr": "Endereço BD",
"Debug buttons": "Botões de depuração",
"Query NVS status": "Consultar status NVS",
"NVS unlock": "Desbloquear NVS",
"NVS lock": "Bloquear NVS",
"Get BDAddr": "Obter BDAddr",
"Fast calibrate stick center (OLD)": "Calibrar rapidamente o centro do Analog (Antigo)",
"Stick center calibration": "Calibração do centro do Analog",
"Welcome": "Bem-vindo",
"Step 1": "Passo 1",
"Step 2": "Passo 2",
"Step 3": "Passo 3",
"Step 4": "Passo 4",
"Completed": "Concluído",
"Welcome to the stick center-calibration wizard!": "Bem-vindo ao assistente de calibração do centro do Analog!",
"This tool will guide you in re-centering the analog sticks of your controller. It consists of four steps: you will be asked to move both sticks in a direction and release them.": "Esta ferramenta irá guiá-lo na recentragem dos sticks analógicos do seu controlador. Consiste em quatro etapas: será solicitado que mova ambos os sticks em uma direção e os solte.",
"Please be aware that, <i>once the calibration is running, it cannot be canceled</i>. Do not close this page or disconnect your controller until it is completed.": "Esteja ciente de que, <i>uma vez que a calibração esteja em execução, ela não pode ser cancelada</i>. Não feche esta página ou desconecte seu controlador até que esteja concluído.",
"Calibration storage": "Calibração armazenada!",
"By default the calibration is only saved in a volatile storage, so that if you (or this tool) mess something up, a reset of the controller is enough to make it work again.": "Por padrão, a calibração é armazenada apenas em um armazenamento volátil, para que, se você (ou esta ferramenta) bagunçar algo, uma redefinição do controlador seja suficiente para fazê-lo funcionar novamente.",
"If you wish to store the calibration permanently in the controller, tick the checkbox below:": "Se desejar armazenar a calibração permanentemente no controlador, marque a caixa de seleção abaixo:",
"Write changes permanently in the controller": "Gravar alterações permanentemente no controlador",
"<small>Warning: <font color=\"red\">Do not store the calibration permanently if the controller battery is low or disconnected. It will damage your controller.</font></small>": "<small>Aviso: <font color='red'>Não armazene a calibração permanentemente se a bateria do controlador estiver baixa ou desconectada. Isso danificará seu controlador.</font></small>",
"Press <b>Start</b> to begin calibration.": "Pressione <b>Iniciar</b> para iniciar a calibração.",
"Please move both sticks to the <b>top-left corner</b> and release them.": "Mova ambos os sticks para o <b>canto superior esquerdo</b> e solte-os.",
"When the sticks are back in the center, press <b>Continue</b>.": "Quando os sticks voltarem ao centro, pressione <b>Continuar</b>.",
"Please move both sticks to the <b>top-right corner</b> and release them.": "Mova ambos os sticks para o <b>canto superior direito</b> e solte-os.",
"Please move both sticks to the <b>bottom-left corner</b> and release them.": "Mova ambos os sticks para o <b>canto inferior esquerdo</b> e solte-os.",
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Mova ambos os sticks para o <b>canto inferior direito</b> e solte-os.",
"Calibration completed successfully!": "Calibração concluída com sucesso!",
"Next": "Próximo",
"Recentering the controller sticks. ": "Recentrando os sticks 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 seu controlador. ",
"Range calibration": "Calibração do intervalo",
"<b>The controller is now sampling data!</b>": "<b>O controlador está agora a amostrar dados!</b>",
"Rotate the sticks slowly to cover the whole range. Press \"Done\" when completed.": "Gire os sticks lentamente para cobrir todo o intervalo. Pressione \"Concluído\" quando terminar.",
"Done": "Concluído",
"Hi, thank you for using this software.": "Olá, obrigado por usar este software.",
"If you're finding it helpful and you want to support my efforts, feel free to": "Se você achar útil e quiser apoiar meus esforços, sinta-se à vontade para",
"buy me a coffee": "me comprar um café",
"! :)": "! :)",
"Do you have any suggestion or issue? Drop me a message via email or discord.": "Tem alguma sugestão ou problema? Envie-me uma mensagem por e-mail ou discord.",
"Cheers!": "Saúde!",
"Support this project": "Apoie este projeto",
"unknown": "desconhecido",
"original": "original",
"clone": "clone",
"locked": "bloqueado",
"unlocked": "desbloqueado",
"error": "erro",
"Build Date:": "Data de Compilação:",
"HW Version:": "Versão HW:",
"SW Version:": "Versão SW:",
"Device Type:": "Tipo de Dispositivo:",
"Firmware Type:": "Tipo de Firmware:",
"SW Series:": "Série SW:",
"HW Info:": "Informações HW:",
"SW Version:": "Versão SW:",
"UPD Version:": "Versão UPD:",
"FW Version1:": "Versão FW1:",
"FW Version2:": "Versão FW2:",
"FW Version3:": "Versão FW3:",
"Range calibration completed": "Calibración de rango completada",
"Range calibration failed: ": "Calibración de rango fallida: ",
"Cannot unlock NVS": "No se puede desbloquear NVS",
"Cannot relock NVS": "No se puede bloquear NVS",
"Error 1": "Error 1",
"Error 2": "Error 2",
"Error 3": "Error 3",
"Stick calibration failed: ": "Calibración de stick fallida: ",
"Stick calibration completed": "Calibración de stick completada",
"NVS Lock failed: ": "Bloqueo de NVS fallido: ",
"NVS Unlock failed: ": "Desbloqueo de NVS fallido: ",
"Please connect only one controller at time.": "Por favor, conecta solo un controlador a la vez.",
"Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2",
"Sony DualSense": "Sony DualSense",
"Sony DualSense Edge": "Sony DualSense Edge",
"Connected invalid device: ": "Dispositivo conectado inválido: ",
"Calibration of the DualSense Edge is not currently supported.": "La calibración del DualSense Edge no está soportada actualmente.",
"The device appears to be a DS4 clone. All functionalities are disabled.": "El dispositivo parece ser un clon DS4. Todas las funcionalidades están deshabilitadas.",
"Error: ": "Error: ",
"My handle on discord is: the_al": "Mi nombre en discord es: the_al",
"Initializing...": "Inicializando...",
"Storing calibration...": "Guardando calibración...",
"Sampling...": "Muestreo...",
"Calibration in progress": "Calibración en progreso",
"Start": "Inicio",
"Continue": "Continuar",
"You can check the calibration with the": "Puedes verificar la calibración con",
"Have a nice day :)": "¡Que tengas un buen día! :)",
"Welcome to the Calibration GUI": "Bienvenido a la interfaz de calibración",
"Just few things to know before you can start:": "Solo algunas cosas para saber antes de comenzar:",
"This website is not affiliated with Sony, PlayStation &amp; co.": "Este sitio web no está afiliado con Sony, PlayStation &amp; co.",
"This service is provided without warranty. Use at your own risk.": "Este servicio se proporciona sin garantía. Úsalo bajo tu propio riesgo.",
"Keep the internal battery of the controller connected and ensure it is well charged. If the battery dies during operations, the controller will be damaged and rendered unusable.": "Mantén la batería interna del controlador conectada y asegúrate de que esté bien cargada. Si la batería se agota durante las operaciones, el controlador se dañará y quedará inutilizable.",
"Before doing the permanent calibration, try the temporary one to ensure that everything is working well.": "Antes de hacer la calibración permanente, prueba la temporal para asegurarte de que todo funcione bien.",
"Understood": "Entendido",
"Version": "Versión",
"Frequently Asked Questions": "Perguntas Frequentes",
"Close": "Fechar",
"Welcome to the F.A.Q. section! Below, you'll find answers to some of the most commonly asked questions about this website. If you have any other inquiries or need further assistance, feel free to reach out to me directly. Your feedback and questions are always welcome!": "Bem-vindo à seção de Perguntas Frequentes! Abaixo, você encontrará respostas para algumas das perguntas mais comuns sobre este site. Se tiver outras dúvidas ou precisar de mais assistência, sinta-se à vontade para entrar em contato diretamente comigo. Seus comentários e perguntas são sempre bem-vindos!",
"How does it work?": "Como funciona?",
"Behind the scenes, this website is the culmination of one year of dedicated effort in reverse-engineering DualShock controllers for fun/hobby from a random guy on the internet.": "Nos bastidores, este site é o resultado de um ano de esforço dedicado à engenharia reversa dos controladores DualShock por diversão/hobby de um cara qualquer na internet.",
"Through": "Através",
"this research": "desta pesquisa",
", it was discovered that there exist some undocumented commands on DualShock controllers that can be sent via USB and are used during factory assembly process. If these commands are sent, the controller starts the recalibration of analog sticks.": ", foi descoberto que existem alguns comandos não documentados nos controladores DualShock que podem ser enviados via USB e são usados durante o processo de montagem na fábrica. Se esses comandos forem enviados, o controlador inicia a recalibração dos sticks analógicos.",
"While the primary focus of this research wasn't initially centered on recalibration, it became apparent that a service offering this capability could greatly benefit numerous individuals. And thus, here we are.": "Embora o foco principal desta pesquisa não estivesse inicialmente centrado na recalibração, ficou evidente que um serviço oferecendo essa capacidade poderia beneficiar enormemente várias pessoas. E assim, aqui estamos.",
"Does the calibration remain effective during gameplay on PS4/PS5?": "A calibração permanece eficaz durante o jogo no PS4/PS5?",
"Yes, if you tick the checkbox \"Write changes permanently in the controller\". In that case, the calibration is flashed directly in the controller firmware. This ensures that it remains in place regardless of the console it's connected to.": "Sim, se você marcar a caixa de seleção \"Gravar mudanças permanentemente no controle\". Nesse caso, a calibração é gravada diretamente no firmware do controle. Isso garante que ela permaneça no lugar, independentemente do console ao qual está conectado.",
"Is this an officially endorsed service?": "Este é um serviço oficialmente endossado?",
"No, this service is simply a creation by a DualShock enthusiast.": "Não, este serviço é apenas uma criação de um entusiasta do DualShock.",
"Does this website detect if a controller is a clone?": "Este site detecta se um controle é um clone?",
"Yes, only DualShock4 at the moment. This happened because I accidentally purchased some clones, spent time identifying the differences and added this functionality to prevent future deception.": "Sim, apenas DualShock4 no momento. Isso aconteceu porque comprei alguns clones por acidente, passei tempo identificando as diferenças e adicionei essa funcionalidade para evitar futuras decepções.",
"Unfortunately, the clones cannot be calibrated anyway, because they only clone the behavior of a DualShock4 during normal gameplay, not all the undocumented functionalities.": "Infelizmente, os clones não podem ser calibrados de qualquer maneira, porque eles apenas clonam o comportamento de um DualShock4 durante o jogo normal, não todas as funcionalidades não documentadas.",
"If you want to extend this detection functionality to DualSense, please ship me a fake DualSense and you'll see it in few weeks.": "Se você quiser estender essa funcionalidade de detecção ao DualSense, por favor, me envie um DualSense falso e você verá isso em algumas semanas.",
"What development is in plan?": "Quais são os planos de desenvolvimento?",
"I maintain two separate to-do lists for this project, although the priority has yet to be established.": "Mantenho duas listas de tarefas separadas para este projeto, embora a prioridade ainda não tenha sido estabelecida.",
"The first list is about enhancing support for DualShock4 and DualSense controllers:": "A primeira lista é sobre aprimorar o suporte para os controladores DualShock4 e DualSense:",
"Implement calibration of L2/R2 triggers.": "Implementar a calibração dos gatilhos L2/R2.",
"Improve detection of clones, particularly beneficial for those seeking to purchase used controllers with assurance of authenticity.": "Melhorar a detecção de clones, especialmente benéfico para aqueles que buscam comprar controles usados com garantia de autenticidade.",
"Enhance user interface (e.g. provide additional controller information)": "Melhorar a interface do usuário (por exemplo, fornecer informações adicionais do controle)",
"Add support for recalibrating IMUs.": "Adicionar suporte para recalibrar IMUs.",
"Additionally, explore the possibility of reviving non-functioning DualShock controllers (further discussion available on Discord for interested parties).": "Além disso, explore a possibilidade de reviver controles DualShock que não estão funcionando (mais discussão disponível no Discord para partes interessadas).",
"The second list contains new controllers I aim to support:": "A segunda lista contém novos controles que pretendo dar suporte:",
"DualSense Edge": "DualSense Edge",
"DualShock 3": "DualShock 3",
"XBox Controllers": "Controles Xbox",
"Each of these tasks presents both immense interest and significant time investment. To provide context, supporting a new controller typically demands 6-12 months of full-time research, alongside a stroke of good fortune.": "Cada uma dessas tarefas apresenta um imenso interesse e um investimento significativo de tempo. Para contextualizar, dar suporte a um novo controle geralmente exige de 6 a 12 meses de pesquisa em tempo integral, além de um golpe de sorte.",
"I love this service, it helped me! How can I contribute?": "Adoro este serviço, ele me ajudou! Como posso contribuir?",
"I'm glad to hear that you found this helpful! If you're interested in contributing, here are a few ways you can help me:": "Fico feliz em saber que você achou isso útil! Se você estiver interessado em contribuir, aqui estão algumas maneiras de me ajudar:",
"Consider making a": "Considere fazer uma ",
"donation": "doação",
"to support my late-night caffeine-fueled reverse-engineering efforts.": "para apoiar meus esforços de engenharia reversa impulsionados pela cafeína noturna.",
"Ship me a controller you would love to add (send me an email for organization).": "Envie-me um controle que você adoraria adicionar (envie-me um e-mail para organização).",
"Translate this website in your language": "Traduza este site para o seu idioma",
", to help more people like you!": ", para ajudar mais pessoas como você!",
"This website uses analytics to improve the service.": "Este site utiliza análises para melhorar o serviço.",
"Board Model:": "Modelo da Placa:",
"This feature is experimental.": "Esta funcionalidade é experimental.",
"Please let me know if the board model of your controller is not detected correctly.": "Por favor, avise-me se o modelo da placa do seu controle não for detectado corretamente.",
"Board model detection thanks to": "Detecção do modelo da placa graças a",
"Please connect the device using a USB cable.": "Por favor, conecte o dispositivo usando um cabo USB.",
"This DualSense controller has outdated firmware.": "Este controle DualSense possui um firmware desatualizado.",
"Please update the firmware and try again.": "Por favor, atualize o firmware e tente novamente.",
"Joystick Info": "Informações do Joystick",
"Err R:": "Erro D:",
"Err L:": "Erro E:",
"Check circularity": "Verificar circularidade",
"": ""
}

View File

@@ -103,7 +103,6 @@
"Sampling...": "Выборка...",
"Calibration in progress": "Калибровка в процессе",
"Start": "Старт",
"Done": "Готово",
"Continue": "Продолжить",
"You can check the calibration with the": "Вы можете проверить калибровку с помощью",
"Have a nice day :)": "Хорошего дня! :)",
@@ -155,12 +154,19 @@
"Ship me a controller you would love to add (send me an email for organization).": "Отправьте мне контроллер, который вы хотели бы добавить (отправьте мне электронное письмо для организации).",
"Translate this website in your language": "Переведите этот сайт на свой язык",
", to help more people like you!": ", чтобы помочь большему числу людей, подобных вам!",
"Board Model:": "",
"This feature is experimental.": "",
"Please let me know if the board model of your controller is not detected correctly.": "",
"Board model detection thanks to": "",
"This website uses analytics to improve the service.": "Этот сайт использует аналитику для улучшения сервиса.",
"Board Model:": "Модель платы:",
"This feature is experimental.": "Эта функция экспериментальная.",
"Please let me know if the board model of your controller is not detected correctly.": "Пожалуйста, дайте знать, если модель платы вашего контроллера определена неправильно.",
"Board model detection thanks to": "Определение модели платы благодаря",
"Please connect the device using a USB cable.": "Пожалуйста, подключите устройство с помощью USB-кабеля.",
"This DualSense controller has outdated firmware.": "Прошивка этого контроллера DualSense устарела.",
"Please update the firmware and try again.": "Пожалуйста, обновите прошивку и попробуйте снова.",
"Joystick Info": "Информация о джойстике",
"Err R:": "Ошибка П:",
"Err L:": "Ошибка Л:",
"Check circularity": "Проверить округлость",
"": ""
}

View File

@@ -103,7 +103,6 @@
"Sampling...": "Örnekleme yapılıyor...",
"Calibration in progress": "Kalibrasyon devam ediyor",
"Start": "Başlat",
"Done": "Tamamlandı",
"Continue": "Devam",
"You can check the calibration with the": "Kalibrasyonu şununla kontrol edebilirsiniz:",
"Have a nice day :)": "İyi günler! :)",
@@ -155,12 +154,19 @@
"Ship me a controller you would love to add (send me an email for organization).": "Eklemek istediğiniz bir denetleyiciyi var ise bana gönderin (organizasyon için bana bir e-posta gönderin).",
"Translate this website in your language": "Bu web sitesini kendi dilinize çevirin",
", to help more people like you!": ", sizin gibi daha fazla insanın faydalanması için!",
"Board Model:": "",
"This feature is experimental.": "",
"Please let me know if the board model of your controller is not detected correctly.": "",
"Board model detection thanks to": "",
"This website uses analytics to improve the service.": "Bu web sitesi hizmeti iyileştirmek için analiz kullanıyor.",
"Board Model:": "Kart Modeli:",
"This feature is experimental.": "Bu özellik deneysel.",
"Please let me know if the board model of your controller is not detected correctly.": "Denetleyicinizin kart modeli doğru tespit edilmezse lütfen bana bildirin.",
"Board model detection thanks to": "Kart modeli tespiti sayesinde",
"Please connect the device using a USB cable.": "Lütfen cihazı bir USB kablosu kullanarak bağlayın.",
"This DualSense controller has outdated firmware.": "Bu DualSense denetleyicisinin yazılımı güncel değil.",
"Please update the firmware and try again.": "Lütfen yazılımı güncelleyin ve tekrar deneyin.",
"Joystick Info": "Joystick Bilgisi",
"Err R:": "Hata D:",
"Err L:": "Hata S:",
"Check circularity": "Daireselliği kontrol et",
"": ""
}

View File

@@ -103,7 +103,6 @@
"Sampling...": "采样中...",
"Calibration in progress": "校准进行中",
"Start": "开始",
"Done": "完成",
"Continue": "继续",
"You can check the calibration with the": "您可以通过以下方式检查校准",
"Have a nice day :)": "祝您有美好的一天! :)",
@@ -155,12 +154,20 @@
"Ship me a controller you would love to add (send me an email for organization).": "给我寄送一个您想添加的手柄(发送电子邮件给我进行安排)。",
"Translate this website in your language": "将这个网站翻译成您的语言",
", to help more people like you!": "以帮助更多像您一样的人!",
"This website uses analytics to improve the service.": "该网站使用分析工具来改善服务。",
"Board Model:": "主板型号",
"This feature is experimental.": "此功能为实验性质。",
"Please let me know if the board model of your controller is not detected correctly.": "如果您的手柄的主板型号没有被正确检测,请告诉我。",
"Board model detection thanks to": "主板型号检测功能需要感谢",
"This website uses analytics to improve the service.": "该网站使用分析工具来改善服务。",
"Please connect the device using a USB cable.": "请使用USB线连接设备。",
"This DualSense controller has outdated firmware.": "该DualSense手柄的固件已过时。",
"Please update the firmware and try again.": "请更新固件后重试。",
"Joystick Info": "摇杆信息",
"Err R:": "右摇杆错误率",
"Err L:": "左摇杆错误率",
"Check circularity": "检查摇杆外圈圆度。",
"": ""
}

166
lang/zh_tw.json Normal file
View File

@@ -0,0 +1,166 @@
{
".authorMsg": "- 中文(繁體)翻譯由 JEFF 提供",
"DualShock Calibration GUI": "手把校準界面",
"Unsupported browser. Please use a web browser with WebHID support (e.g. Chrome).": "不支持的瀏覽器。請使用支持 WebHID 的瀏覽器 (例如 Chrome)。",
"Connect a DualShock 4 or a DualSense controller to your computer and press Connect.": "將 DualShock 4 或 DualSense 手把連結到您的電腦,然後按下連結。",
"Connect": "連結",
"Connected to:": "連結至:",
"Disconnect": "斷開連結",
"Firmware Info": "韌體資訊",
"Calibrate stick center": "校準搖桿中心",
"Calibrate stick range (permanent)": "校準搖桿外圈 (永久)",
"Calibrate stick range (temporary)": "校準搖桿外圈 (臨時)",
"Reset controller": "重置手把",
"Sections below are not useful, just some debug infos or manual commands": "以下部分沒有用處,只是一些除錯資訊或手動命令",
"NVS Status": "NVS 狀態",
"Unknown": "未知",
"BD Addr": "BD 地址",
"Debug buttons": "除錯按钮",
"Query NVS status": "查詢 NVS 狀態",
"NVS unlock": "解鎖 NVS",
"NVS lock": "鎖定 NVS",
"Get BDAddr": "獲取 BD 地址",
"Fast calibrate stick center (OLD)": "快速校準搖桿中心 (舊版)",
"Stick center calibration": "搖桿中心校準",
"Welcome": "歡迎",
"Step 1": "步驟 1",
"Step 2": "步驟 2",
"Step 3": "步驟 3",
"Step 4": "步驟 4",
"Completed": "已完成",
"Welcome to the stick center-calibration wizard!": "歡迎使用搖桿中心校準嚮導!",
"This tool will guide you in re-centering the analog sticks of your controller. It consists in four steps: you will be asked to move both sticks in a direction and release them.": "此工具將指導您重新定位手把的模擬搖桿。 它包括四個步驟:您將被要求將兩個搖桿移動到一個方向並釋放它們。",
"Please be aware that, <i>once the calibration is running, it cannot be canceled</i>. Do not close this page or disconnect your controller until is completed.": "請注意,<i>一旦校準开始,就無法取消</i>。 在完成之前,請不要關閉此頁面或斷開手把的連結。",
"Calibration storage": "校準儲存",
"By default the calibration is only saved in a volatile storage, so that if you (or this tool) mess something up, a reset of the controller is enough to make it work again.": "默認情況下,校準僅保存在隨機存取記憶體中,因此,如果您(或此工具)出錯,重新設置手把就足以使其再次工作。",
"If you wish to store the calibration permanently in the controller, tick the checkbox below:": "如果您希望永久保存校準數據到手把中,請在下方的複選框中打勾:",
"Write changes permanently in the controller": "將變更永久寫入手把中",
"<small>Warning: <font color=\"red\">Do not store the calibration permanently if the controller battery is low or disconnected. It will damage your controller.</font></small>": "<small>警告:<font color='red'>如果手把電池電量低或斷開連結,請勿永久儲存校準數據。這將損壞您的手把。</font></small>",
"Press <b>Start</b> to begin calibration.": "按 <b>開始</b> 開始校準。",
"Please move both sticks to the <b>top-left corner</b> and release them.": "請將兩個搖桿移到 <b>左上角</b> 並釋放它們。",
"When the sticks are back in the center, press <b>Continue</b>.": "當搖桿回到中心位置時,按 <b>繼續</b>。",
"Please move both sticks to the <b>top-right corner</b> and release them.": "請將兩個搖桿移到 <b>右上角</b> 並釋放它們。",
"Please move both sticks to the <b>bottom-left 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!": "校準成功完成!",
"Next": "下一步",
"Recentering the controller sticks. ": "重新定位手把摇杆。 ",
"Please do not close this window and do not disconnect your controller. ": "請不要關閉此窗口,也不要斷開手把的連接。 ",
"Range calibration": "摇杆外圈校準",
"<b>The controller is now sampling data!</b>": "<b>手把現在正在採樣數據!</b>",
"Rotate the sticks slowly to cover the whole range. Press \"Done\" when completed.": "緩慢轉動搖桿以覆蓋整個範圍。 完成後按 \"完成\"。",
"Done": "完成",
"Hi, thank you for using this software.": "嗨,感謝您使用此軟體。",
"If you're finding it helpful and you want to support my efforts, feel free to": "如果您覺得有幫助,想支持我的努力,請隨時",
"buy me a coffee": "請我喝咖啡",
"! :)": "! :)",
"Do you have any suggestion or issue? Drop me a message via email or discord.": "您有任何建議或問題嗎?透過電子郵件或 Discord 給我留言。",
"Cheers!": "乾杯!",
"Support this project": "支持此項目",
"unknown": "未知設備",
"original": "原廠正品",
"clone": "克隆盜版",
"locked": "已鎖定",
"unlocked": "已解鎖",
"error": "錯誤",
"Build Date:": "建置日期:",
"HW Version:": "硬體版本:",
"SW Version:": "軟體版本:",
"Device Type:": "設備類型:",
"Firmware Type:": "韌體類型:",
"SW Series:": "軟體系列:",
"HW Info:": "硬件資訊:",
"SW Version:": "軟體版本:",
"UPD Version:": "更新版本:",
"FW Version1:": "韌體版本1:",
"FW Version2:": "韌體版本2:",
"FW Version3:": "韌體版本3:",
"Range calibration completed": "搖桿外圈校準已完成",
"Range calibration failed: ": "搖桿外圈校準失敗: ",
"Cannot unlock NVS": "無法解鎖 NVS",
"Cannot relock NVS": "無法重新鎖定 NVS",
"Error 1": "錯誤 1",
"Error 2": "錯誤 2",
"Error 3": "錯誤 3",
"Stick calibration failed: ": "摇杆校準失敗: ",
"Stick calibration completed": "摇杆校準完成",
"NVS Lock failed: ": "NVS 鎖定失敗: ",
"NVS Unlock failed: ": "NVS 解鎖失敗: ",
"Please connect only one controller at time.": "請一次只連接一個手把。",
"Sony DualShock 4 V1": "Sony DualShock 4 V1",
"Sony DualShock 4 V2": "Sony DualShock 4 V2",
"Sony DualSense": "Sony DualSense",
"Sony DualSense Edge": "Sony DualSense Edge",
"Connected invalid device: ": "連接了無效設備: ",
"Calibration of the DualSense Edge is not currently supported.": "目前不支援對 DualSense Edge 的校準。",
"The device appears to be a DS4 clone. All functionalities are disabled.": "該設備似乎是 DS4 盜版。所有功能均已停用。",
"Error: ": "錯誤: ",
"My handle on discord is: the_al": "我的 Discord 用戶名是: the_al",
"Initializing...": "初始化...",
"Storing calibration...": "正在儲存校準...",
"Sampling...": "採樣中...",
"Calibration in progress": "校準進行中",
"Start": "開始",
"Continue": "繼續",
"You can check the calibration with the": "您可以透過以下方式檢查校準",
"Have a nice day :)": "祝您有美好的一天! :)",
"Welcome to the Calibration GUI": "歡迎使用校準 GUI",
"Just few things to know before you can start:": "在開始之前,有幾件事情要了解:",
"This website is not affiliated with Sony, PlayStation &amp; co.": "此網站與 Sony、PlayStation 等無關。",
"This service is provided without warranty. Use at your own risk.": "此服務不附帶任何保固。使用需自負風險。",
"Keep the internal battery of the controller connected and ensure it is well charged. If the battery dies during operations, the controller will be damaged and rendered unusable.": "保持手把的內部電池連接,並確保其充電充足。如果在操作過程中電池電量耗盡,手把將受損並無法使用。",
"Before doing the permanent calibration, try the temporary one to ensure that everything is working well.": "在進行永久校準之前,先嘗試臨時校準以確保一切正常。",
"Understood": "知道了",
"Version": "版本",
"Frequently Asked Questions": "常見問題",
"Close": "關閉",
"Welcome to the F.A.Q. section! Below, you'll find answers to some of the most commonly asked questions about this website. If you have any other inquiries or need further assistance, feel free to reach out to me directly. Your feedback and questions are always welcome!": "歡迎來到常見問題的解答部分!在下面,您將找到關於本網站常見問題的答案。如果您有任何其他疑問或需要進一步協助,請隨時直接與我聯繫。您的回饋和問題都是受歡迎的!",
"How does it work?": "它是如何工作的?",
"Behind the scenes, this website is the culmination of one year of dedicated effort in reverse-engineering DualShock controllers for fun/hobby from a random guy on the internet.": "在幕後這個網站是一個來自網路上一個普通人花了一年時間來為了娛樂和愛好而逆向DualShock手把的努力結晶。",
"Through": "通過",
"this research": "這項研究",
", it was discovered that there exist some undocumented commands on DualShock controllers that can be sent via USB and are used during factory assembly process. If these commands are sent, the controller starts the recalibration of analog sticks.": "透過這項研究發現DualShock手把上存在一些未記錄的命令可以透過USB發送並在工廠組裝過程中使用。如果發送了這些命令手把將開始重新校準模擬搖桿。",
"While the primary focus of this research wasn't initially centered on recalibration, it became apparent that a service offering this capability could greatly benefit numerous individuals. And thus, here we are.": "雖然最初這項研究的主要焦點並不是集中在重新校準上,但很明顯,提供這種能力的服務可以極大地惠及許多人。顯而易見,我們也在這其中。",
"Does the calibration remain effective during gameplay on PS4/PS5?": "在PS4/PS5上使用時校準是否仍然有效",
"Yes, if you tick the checkbox \"Write changes permanently in the controller\". In that case, the calibration is flashed directly in the controller firmware. This ensures that it remains in place regardless of the console it's connected to.": "是的,如果您勾選了「在手把中永久寫入變更」複選框。在這種情況下,校準直接刷新到手把韌體中。這確保了它無論連接到哪個遊戲機都會生效。",
"Is this an officially endorsed service?": "這是官方認可的工具嗎?",
"No, this service is simply a creation by a DualShock enthusiast.": "不這個工具只是一個DualShock愛好者的創作。",
"Does this website detects if a controller is a clone?": "這個網站能偵測到手把是否是正品嗎?",
"Yes, only DualShock4 at the moment. This happened because I accidentally purchased some clones, spent time identifying the differences and added this functionality to prevent future deception.": "是的目前只有DualShock4。這是因為我不小心買到了一些盜版因此花了一些時間鑑別了它們的差異並添加了這個功能以防止未來被騙。",
"Unfortunately, the clones cannot be calibrated anyway, because they only clone the behavior of a DualShock4 during a normal gameplay, not all the undocumented functionalities.": "不幸的是盜版無論如何都不能進行校準因為它們只複製了在正常遊戲過程中DualShock4的功能部分而不是所有未記錄的功能。",
"If you want to extend this detection functionality to DualSense, please ship me a fake DualSense and you'll see it in few weeks.": "如果您想將此檢測功能擴展到DualSense請寄給我一個假的DualSense您將在幾週內看到結果。",
"What development is in plan?": "有什麼發展計畫嗎?",
"I maintain two separate to-do lists for this project, although the priority has yet to be established.": "我為這個項目維護兩個單獨的待辦事項列表,儘管優先順序尚未確定。",
"The first list is about enhancing support for DualShock4 and DualSense controllers:": "第一個清單是關於增強對DualShock4和DualSense手把的支援",
"Implement calibration of L2/R2 triggers.": "實現L2/R2扳機的校準。",
"Improve detection of clones, particularly beneficial for those seeking to purchase used controllers with assurance of authenticity.": "改進盜版的檢測,對那些希望購買原廠正品的二手手把的人特別有益。",
"Enhance user interface (e.g. provide additional controller information)": "增強使用者資訊介面(例如提供額外的手把資訊)",
"Add support for recalibrating IMUs.": "新增支援重新校準IMU陀螺儀。",
"Additionally, explore the possibility of reviving non-functioning DualShock controllers (further discussion available on Discord for interested parties).": "此外探討復活不工作的DualShock手把的可能性對此有興趣的人可在Discord上進一步的討論。",
"The second list contains new controllers I aim to support:": "第二個清單包含我打算支援的新手把:",
"DualSense Edge": "DualSense Edge",
"DualShock 3": "DualShock 3",
"XBox Controllers": "XBox 手把",
"Each of these tasks presents both immense interest and significant time investment. To provide context, supporting a new controller typically demands 6-12 months of full-time research, alongside a stroke of good fortune.": "每項任務都需要巨大的興趣和顯著的時間投入。為了提供支持相容於新的手把通常需要6-12個月的全職研究同時還需要一點好運才能做到。",
"I love this service, it helped me! How can I contribute?": "我喜歡這個工具,它幫助了我!我如何做出貢獻?",
"I'm glad to hear that you found this helpful! If you're interested in contributing, here are a few ways you can help me:": "很高興聽到本工具對您有幫助!如果您有興趣做出貢獻,以下是您可以幫助我的幾種方式:",
"Consider making a": "考慮完成一項",
"donation": "捐贈",
"to support my late-night caffeine-fueled reverse-engineering efforts.": "以支持我的深夜因一杯咖啡而激發對逆向工程努力。",
"Ship me a controller you would love to add (send me an email for organization).": "給我寄一個您想添加的手把(發送電子郵件給我進行安排)。",
"Translate this website in your language": "將這個網站翻譯成您的語言",
", to help more people like you!": "以幫助更多像您一樣的人!",
"This website uses analytics to improve the service.": "該網站使用分析工具來改善服務。",
"Board Model:": "主機板型號",
"This feature is experimental.": "此功能為實驗性質。",
"Please let me know if the board model of your controller is not detected correctly.": "如果您的手把的主機板型號沒有被正確檢測,請告訴我。",
"Board model detection thanks to": "主機板型號檢測功能需要感謝",
"Please connect the device using a USB cable.": "請使用USB線連接設備。",
"This DualSense controller has outdated firmware.": "該DualSense手把的韌體已過時。",
"Please update the firmware and try again.": "請更新韌體後重試。",
"Joystick Info": "搖桿資訊",
"Err R:": "右搖桿錯誤率",
"Err L:": "左搖桿錯誤率",
"Check circularity": "檢查搖桿外圈圓度。",
"": ""
}