mirror of
https://github.com/dualshock-tools/dualshock-tools.github.io.git
synced 2026-07-18 13:44:17 +03:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3ad7b18516 | ||
|
|
225ba206bc | ||
|
|
e93eeddbda | ||
|
|
22d50ebce8 | ||
|
|
d2fa963132 | ||
|
|
bb7eb2d4d7 | ||
|
|
5320bb018b | ||
|
|
c927d24133 | ||
|
|
eab28d4a2c | ||
|
|
cc7b646d93 | ||
|
|
b4f4aa8b30 | ||
|
|
ca88ac20b6 | ||
|
|
346add9b3e | ||
|
|
580df44de5 | ||
|
|
7b13ccdd18 | ||
|
|
d67e5003df | ||
|
|
f57e1dc4ec | ||
|
|
cbd6237ddd |
576
core.js
576
core.js
@@ -1,7 +1,10 @@
|
||||
var device = null;
|
||||
var devname = "";
|
||||
var mode = 0;
|
||||
var disable_btn = false;
|
||||
|
||||
// bitmask: 1: clone, 2: update ds5 firmware, 4: battery low, 8: ds-edge not supported
|
||||
var disable_btn = 0;
|
||||
var last_disable_btn = 0;
|
||||
|
||||
var lang_orig_text = {};
|
||||
var lang_cur = {};
|
||||
@@ -12,17 +15,20 @@ var gu = 0;
|
||||
// Alphabetical order
|
||||
var available_langs = {
|
||||
"bg_bg": { "name": "Български", "file": "bg_bg.json"},
|
||||
"cz_cz": { "name": "Čeština", "file": "cz_cz.json"},
|
||||
"de_de": { "name": "Deutsch", "file": "de_de.json"},
|
||||
"es_es": { "name": "Español", "file": "es_es.json"},
|
||||
"fr_fr": { "name": "Français", "file": "fr_fr.json"},
|
||||
"hu_hu": { "name": "Magyar", "file": "hu_hu.json"},
|
||||
"it_it": { "name": "Italiano", "file": "it_it.json"},
|
||||
"ko_kr": { "name": "한국어", "file": "ko_kr.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) {
|
||||
@@ -51,6 +57,8 @@ function ds5_hw_to_bm(hw_ver) {
|
||||
return "BDM-030";
|
||||
} else if(a == 0x06) {
|
||||
return "BDM-040";
|
||||
} else if(a == 0x07) {
|
||||
return "BDM-050";
|
||||
} else {
|
||||
return l("Unknown");
|
||||
}
|
||||
@@ -89,11 +97,18 @@ function is_rare(hw_ver) {
|
||||
|
||||
async function ds4_info() {
|
||||
try {
|
||||
var ooc = l("unknown");
|
||||
var is_clone = false;
|
||||
|
||||
const view = lf("ds4_info", await device.receiveFeatureReport(0xa3));
|
||||
|
||||
var cmd = view.getUint8(0, true);
|
||||
if(cmd != 0xa3 || view.buffer.byteLength != 49) {
|
||||
return false;
|
||||
|
||||
if(cmd != 0xa3 || view.buffer.byteLength < 49) {
|
||||
if(view.buffer.byteLength != 49) {
|
||||
ooc = l("clone");
|
||||
is_clone = true;
|
||||
}
|
||||
}
|
||||
|
||||
var k1 = new TextDecoder().decode(view.buffer.slice(1, 0x10));
|
||||
@@ -105,19 +120,16 @@ async function ds4_info() {
|
||||
var hw_ver_minor= view.getUint16(0x23, true)
|
||||
var sw_ver_major= view.getUint32(0x25, true)
|
||||
var sw_ver_minor= view.getUint16(0x25+4, true)
|
||||
var ooc = l("unknown");
|
||||
|
||||
ooc = l("original");
|
||||
|
||||
var is_clone = false;
|
||||
try {
|
||||
const view = await device.receiveFeatureReport(0x81);
|
||||
ooc = l("original");
|
||||
if(!is_clone) {
|
||||
const view = await device.receiveFeatureReport(0x81);
|
||||
ooc = l("original");
|
||||
}
|
||||
} catch(e) {
|
||||
la("clone");
|
||||
is_clone = true;
|
||||
ooc = "<font color='red'><b>" + l("clone") + "</b></font>";
|
||||
disable_btn = true;
|
||||
disable_btn |= 1;
|
||||
}
|
||||
|
||||
clear_info();
|
||||
@@ -140,7 +152,7 @@ async function ds4_info() {
|
||||
}
|
||||
} catch(e) {
|
||||
ooc = "<font color='red'><b>" + l("clone") + "</b></font>";
|
||||
disable_btn = true;
|
||||
disable_btn |= 1;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -148,7 +160,7 @@ async function ds4_info() {
|
||||
async function ds4_reset() {
|
||||
la("ds4_reset");
|
||||
try {
|
||||
await device.sendFeatureReport(0xa0, alloc_req(0x80, [4,1,0]))
|
||||
await device.sendFeatureReport(0xa0, alloc_req(0xa0, [4,1,0]))
|
||||
} catch(error) {
|
||||
}
|
||||
}
|
||||
@@ -469,46 +481,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 = ' <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 |= 2;
|
||||
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 = ' <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;
|
||||
}
|
||||
|
||||
@@ -766,8 +791,8 @@ async function disconnect() {
|
||||
mode = 0;
|
||||
device.close();
|
||||
device = null;
|
||||
disable_btn = false;
|
||||
|
||||
disable_btn = 0;
|
||||
reset_circularity();
|
||||
$("#offlinebar").show();
|
||||
$("#onlinebar").hide();
|
||||
$("#mainmenu").hide();
|
||||
@@ -832,6 +857,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)) {
|
||||
@@ -860,6 +887,388 @@ 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);
|
||||
}
|
||||
|
||||
var last_bat_txt = "";
|
||||
var last_bat_disable = null;
|
||||
|
||||
function bat_percent_to_text(bat_charge, is_charging, is_error) {
|
||||
var icon_txt = "";
|
||||
|
||||
if(bat_charge < 20) {
|
||||
icon_txt = 'fa-battery-empty';
|
||||
} else if(bat_charge < 40) {
|
||||
icon_txt = 'fa-battery-quarter';
|
||||
} else if(bat_charge < 60) {
|
||||
icon_txt = 'fa-battery-half';
|
||||
} else if(bat_charge < 80) {
|
||||
icon_txt = 'fa-battery-three-quarters';
|
||||
} else {
|
||||
icon_txt = 'fa-battery-full';
|
||||
}
|
||||
|
||||
var icon_full = '<i class="fa-solid ' + icon_txt + '"></i>';
|
||||
var bolt_txt = '';
|
||||
if(is_charging)
|
||||
bolt_txt = '<i class="fa-solid fa-bolt"></i>';
|
||||
bat_txt = bat_charge + "%" + ' ' + bolt_txt + ' ' + icon_full;
|
||||
|
||||
if(is_error) {
|
||||
bat_txt = '<font color="red">' + l("error") + '</font>';
|
||||
}
|
||||
return bat_txt;
|
||||
}
|
||||
|
||||
function update_battery_status(bat_capacity, cable_connected, is_charging, is_error) {
|
||||
var bat_txt = bat_percent_to_text(bat_capacity, is_charging);
|
||||
var can_use_tool = (bat_capacity >= 30 && cable_connected && !is_error);
|
||||
|
||||
if(bat_txt != last_bat_txt) {
|
||||
$("#d-bat").html(bat_txt);
|
||||
last_bat_txt = bat_txt;
|
||||
}
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
// Read battery
|
||||
var bat = data.data.getUint8(29);
|
||||
var bat_data = bat & 0x0f;
|
||||
var bat_status = (bat >> 4) & 1;
|
||||
|
||||
var bat_capacity = 0;
|
||||
var cable_connected = false;
|
||||
var is_charging = false;
|
||||
var is_error = false;
|
||||
|
||||
if(bat_status == 1) {
|
||||
cable_connected = true;
|
||||
if(bat_data < 10) {
|
||||
bat_capacity = Math.min(bat_data * 10 + 5, 100);
|
||||
is_charging = true;
|
||||
} else if(bat_data == 10) {
|
||||
bat_capacity = 100;
|
||||
is_charging = true;
|
||||
} else if(bat_data == 11) {
|
||||
bat_capacity = 100;
|
||||
// charged
|
||||
} else {
|
||||
// error
|
||||
bat_capacity = 0;
|
||||
is_error = true;
|
||||
}
|
||||
} else {
|
||||
cable_connected = false;
|
||||
if(bat_data < 10) {
|
||||
bat_capacity = bat_data * 10 + 5;
|
||||
} else {
|
||||
bat_capacity = 100;
|
||||
}
|
||||
}
|
||||
|
||||
update_battery_status(bat_capacity, cable_connected, is_charging, is_error);
|
||||
}
|
||||
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
var bat = data.data.getUint8(52);
|
||||
var bat_charge = bat & 0x0f;
|
||||
var bat_status = bat >> 4;
|
||||
|
||||
var bat_capacity = 0;
|
||||
var cable_connected = false;
|
||||
var is_charging = false;
|
||||
var is_error = false;
|
||||
|
||||
if(bat_status == 0) {
|
||||
bat_capacity = Math.min(bat_charge * 10 + 5, 100);
|
||||
} else if(bat_status == 1) {
|
||||
bat_capacity = Math.max(bat_charge * 10 + 5, 100);
|
||||
is_charging = true;
|
||||
cable_connected = true;
|
||||
} else if(bat_status == 2) {
|
||||
bat_capacity = 100;
|
||||
cable_connected = true;
|
||||
} else {
|
||||
is_error = true;
|
||||
}
|
||||
|
||||
update_battery_status(bat_capacity, cable_connected, is_charging, is_error);
|
||||
}
|
||||
|
||||
async function continue_connection(report) {
|
||||
try {
|
||||
device.oninputreport = null;
|
||||
@@ -871,8 +1280,8 @@ async function continue_connection(report) {
|
||||
if(reportLen != 63) {
|
||||
$("#btnconnect").prop("disabled", false);
|
||||
$("#connectspinner").hide();
|
||||
show_popup(l("Please connect the device using a USB cable."))
|
||||
disconnect();
|
||||
show_popup(l("Please connect the device using a USB cable."))
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -881,25 +1290,28 @@ async function continue_connection(report) {
|
||||
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;
|
||||
disable_btn |= 8;
|
||||
}
|
||||
} else {
|
||||
$("#btnconnect").prop("disabled", false);
|
||||
@@ -917,17 +1329,16 @@ async function continue_connection(report) {
|
||||
$("#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 == 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);
|
||||
if(disable_btn != 0)
|
||||
update_disable_btn();
|
||||
|
||||
$("#btnconnect").prop("disabled", false);
|
||||
$("#connectspinner").hide();
|
||||
@@ -939,9 +1350,36 @@ async function continue_connection(report) {
|
||||
}
|
||||
}
|
||||
|
||||
function update_disable_btn() {
|
||||
if(disable_btn == last_disable_btn)
|
||||
return;
|
||||
|
||||
if(disable_btn == 0) {
|
||||
$(".ds-btn").prop("disabled", false);
|
||||
last_disable_btn = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
$(".ds-btn").prop("disabled", true);
|
||||
|
||||
// show only one popup
|
||||
if(disable_btn & 1 && !(last_disable_btn & 1)) {
|
||||
show_popup(l("The device appears to be a DS4 clone. All functionalities are disabled."));
|
||||
} else if(disable_btn & 2 && !(last_disable_btn & 2)) {
|
||||
show_popup(l("This DualSense controller has outdated firmware.") + "<br>" + l("Please update the firmware and try again."), true);
|
||||
} else if(disable_btn & 8 && !(last_disable_btn & 8)) {
|
||||
show_popup(l("Calibration of the DualSense Edge is not currently supported."));
|
||||
} else if(disable_btn & 4 && !(last_disable_btn & 4)) {
|
||||
show_popup(l("Please charge controller battery over 30% to use this tool."));
|
||||
}
|
||||
last_disable_btn = disable_btn;
|
||||
}
|
||||
|
||||
async function connect() {
|
||||
gj = crypto.randomUUID();
|
||||
reset_circularity();
|
||||
la("begin");
|
||||
last_bat_txt = "";
|
||||
try {
|
||||
$("#btnconnect").prop("disabled", true);
|
||||
$("#connectspinner").show();
|
||||
@@ -1038,9 +1476,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() {
|
||||
@@ -1071,9 +1510,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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
75
index.html
75
index.html
@@ -10,9 +10,14 @@
|
||||
integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH"
|
||||
crossorigin="anonymous">
|
||||
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.6.0/css/fontawesome.min.css"
|
||||
integrity="sha384-NvKbDTEnL+A8F/AA5Tc5kmMLSJHUO868P+lDtTpJIeQdGYaUIuLr4lVGOEA1OcMy"
|
||||
crossorigin="anonymous">
|
||||
|
||||
<link rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.4.2/css/fontawesome.min.css"
|
||||
integrity="sha384-BY+fdrpOd3gfeRvTSMT+VUZmA728cfF9Z2G42xpaRkUGu2i3DyzpTURDo5A6CaLK"
|
||||
href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.6.0/css/all.min.css"
|
||||
integrity="sha384-h/hnnw1Bi4nbpD6kE7nYfCXzovi622sY5WBxww8ARKwpdLj5kUWjRuyiXaD1U2JT"
|
||||
crossorigin="anonymous">
|
||||
|
||||
<script src="https://code.jquery.com/jquery-3.7.1.min.js"
|
||||
@@ -97,7 +102,14 @@
|
||||
</div>
|
||||
|
||||
<div id="onlinebar" class="vstack p-2" style="display: none;">
|
||||
<div class="hstack gap-2"><p><b class="ds-i18n">Connected to:</b></p><p id="devname"></p></div>
|
||||
<div class="row">
|
||||
<div class="col-sm-9 hstack">
|
||||
<p><b class="ds-i18n">Connected to:</b></p> <p id="devname"></p>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<p id="d-bat" style="text-align: right;"></p>
|
||||
</div>
|
||||
</div>
|
||||
<button type="button" class="btn btn-outline-secondary ds-i18n" onclick="disconnect()">Disconnect</button><br>
|
||||
</div>
|
||||
|
||||
@@ -112,16 +124,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,7 +520,7 @@
|
||||
<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> 1.0 (2024-05-30) - <a href="#" class="ds-i18n" onclick="show_donate_modal();">Support this project</a> <span id="authorMsg"></span></p>
|
||||
<p><span class="ds-i18n">Version</span> 1.4 (2024-08-14) - <a href="#" class="ds-i18n" onclick="show_donate_modal();">Support this project</a> <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>
|
||||
|
||||
@@ -155,12 +155,17 @@
|
||||
"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.": "",
|
||||
"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/cz_cz.json
Normal file
173
lang/cz_cz.json
Normal file
@@ -0,0 +1,173 @@
|
||||
{
|
||||
".authorMsg": "Překlad od Rowan_CZE <a href='https://beardedvillains.cz/'>Bearded Villains Czech Republic</a>",
|
||||
"DualShock Calibration GUI": "DualShock Calibration GUI",
|
||||
"Unsupported browser. Please use a web browser with WebHID support (e.g. Chrome).": "Nepodporovaný prohlížeč. Použijte prosím webový prohlížeč s podporou WebHID (např. Chrome).",
|
||||
"Connect a DualShock 4 or a DualSense controller to your computer and press Connect.": "Připojte k počítači ovladač DualShock 4 nebo DualSense a stiskněte Připojit.",
|
||||
"Connect": "Připojit",
|
||||
"Connected to:": "Připojeno:",
|
||||
"Disconnect": "Odpojit",
|
||||
"Firmware Info": "Informace o firmwaru",
|
||||
"Calibrate stick center": "Kalibrujte střed páčky",
|
||||
"Calibrate stick range (permanent)": "Kalibrace dosahu páčky (trvalý)",
|
||||
"Calibrate stick range (temporary)": "Kalibrace dosahu páčky (dočasný)",
|
||||
"Reset controller": "Resetujte ovladač",
|
||||
"Sections below are not useful, just some debug infos or manual commands": "Sekce níže nejsou užitečné, jen některé informace o ladění nebo ruční příkazy",
|
||||
"NVS Status": "Status NVS",
|
||||
"Unknown": "Neznámý",
|
||||
"BD Addr": "Adresa BD",
|
||||
"Debug buttons": "Tlačítka ladění",
|
||||
"Query NVS status": "Dotaz na stav NVS",
|
||||
"NVS unlock": "Odblokuj NVS",
|
||||
"NVS lock": "Zablokuj NVS",
|
||||
"Get BDAddr": "Získejte BDAddr",
|
||||
"Fast calibrate stick center (OLD)": "Rychlá kalibrace středu páčky (OLD)",
|
||||
"Stick center calibration": "Kalibrace středu páčky",
|
||||
"Welcome": "Vítej",
|
||||
"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!": "Vítejte v průvodci kalibrací středu páček!",
|
||||
"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.": "Tento nástroj vás provede opětovným vycentrováním analogových pák vašeho ovladače. Skládá se ze čtyř kroků: budete požádáni, abyste pohnuli oběma pákami ve směru a uvolnili je.",
|
||||
"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.": "Mějte prosím na paměti, že <i>jakmile je kalibrace spuštěna, nelze ji zrušit</i>. Nezavírejte tuto stránku ani neodpojujte ovladač, dokud nebude dokončena.",
|
||||
"Calibration storage": "Kalibrační úložiště",
|
||||
"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.": "Ve výchozím nastavení se kalibrace ukládá pouze do nestálého úložiště, takže pokud vy (nebo tento nástroj) něco pokazíte, stačí reset ovladače, aby znovu fungoval.",
|
||||
"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": "Zapisovat změny trvale do ovladače",
|
||||
"<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>Upozornění: <font color=\"red\">Neuchovávejte kalibraci trvale, pokud je baterie ovladače vybitá nebo odpojená. Poškodí váš ovladač.</font></small>",
|
||||
"Press <b>Start</b> to begin calibration.": "Stisknutím tlačítka <b>Start</b> zahájíte kalibraci.",
|
||||
"Please move both sticks to the <b>top-left corner</b> and release them.": "Přesuňte prosím obě páčky do <b>levého horního rohu</b> a uvolněte je.",
|
||||
"When the sticks are back in the center, press <b>Continue</b>.": "Když jsou tyče zpět ve středu, stiskněte <b>Pokračovat</b>.",
|
||||
"Please move both sticks to the <b>top-right corner</b> and release them.": "Přesuňte prosím obě páčky do <b>pravého horního rohu</b> a uvolněte je.",
|
||||
"Please move both sticks to the <b>bottom-left corner</b> and release them.": "Přesuňte prosím obě páčky do <b>levého dolního rohu</b> a uvolněte je.",
|
||||
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Přesuňte prosím obě páčky do <b>pravého dolního rohu</b> a uvolněte je.",
|
||||
"Calibration completed successfully!": "KKalibrace úspěšně dokončena!",
|
||||
"Next": "Další",
|
||||
"Recentering the controller sticks. ": "Vycentrování páček. ",
|
||||
"Please do not close this window and do not disconnect your controller. ": "Nezavírejte toto okno a neodpojujte ovladač. ",
|
||||
"Range calibration": "Kalibrace rozsahu",
|
||||
"<b>The controller is now sampling data!</b>": "<b>Regulátor nyní vzorkuje data!</b>",
|
||||
"Rotate the sticks slowly to cover the whole range. Press \"Done\" when completed.": "Pomalu otáčejte páčkami, abyste pokryli celý rozsah. Po dokončení stiskněte \"Hotovo\".",
|
||||
"Done": "Hotovo",
|
||||
"Hi, thank you for using this software.": "Dobrý den, děkujeme, že používáte tento software.",
|
||||
"If you're finding it helpful and you want to support my efforts, feel free to": "Pokud to považujete za užitečné a chcete mé úsilí podpořit, neváhejte",
|
||||
"buy me a coffee": "Kup mi kávu",
|
||||
"! :)": "! :)",
|
||||
"Do you have any suggestion or issue? Drop me a message via email or discord.": "Máte nějaký návrh nebo problém? Napište mi zprávu na e-mail nebo diskord.",
|
||||
"Cheers!": "Na zdraví!",
|
||||
"Support this project": "Podpořte tento projekt",
|
||||
|
||||
"unknown": "Neznámý",
|
||||
"original": "Original",
|
||||
"clone": "Klon",
|
||||
"locked": "Uzamčeno",
|
||||
"unlocked": "Odemčeno",
|
||||
"error": "Chyba",
|
||||
"Build Date:": "Build Date:",
|
||||
"HW Version:": "Verze HW:",
|
||||
"SW Version:": "Verze SW:",
|
||||
"Device Type:": "Typ zařízení:",
|
||||
"Firmware Type:": "Typ firmwaru:",
|
||||
"SW Series:": "Řada SW:",
|
||||
"HW Info:": "Informace o HW:",
|
||||
"SW Version:": "Verze SW:",
|
||||
"UPD Version:": "Verze UTD:",
|
||||
"FW Version1:": "FW Verze 1:",
|
||||
"FW Version2:": "FW Verze 2:",
|
||||
"FW Version3:": "FW Verze 3:",
|
||||
|
||||
"Range calibration completed": "Kalibrace rozsahu dokončena",
|
||||
"Range calibration failed: ": "Kalibrace rozsahu se nezdařila: ",
|
||||
"Cannot unlock NVS": "Nelze odemknout NVS",
|
||||
"Cannot relock NVS": "Nelze znovu zamknout NVS",
|
||||
"Error 1": "Chyba 1",
|
||||
"Error 2": "Chyba 2",
|
||||
"Error 3": "Chyba 3",
|
||||
"Stick calibration failed: ": "Kalibrace páček se nezdařila: ",
|
||||
"Stick calibration completed": "Kalibrace páček dokončena",
|
||||
"NVS Lock failed: ": "Zámek NVS se nezdařil: ",
|
||||
"NVS Unlock failed: ": "Odemknutí NVS se nezdařilo: ",
|
||||
"Please connect only one controller at time.": "Připojte vždy pouze jeden ovladač.",
|
||||
"Sony DualShock 4 V1": "Sony DualShock 4 V1",
|
||||
"Sony DualShock 4 V2": "Sony DualShock 4 V2",
|
||||
"Sony DualSense": "Sony DualSense",
|
||||
"Sony DualSense Edge": "Sony DualSense Edge",
|
||||
"Connected invalid device: ": "Připojené neplatné zařízení: ",
|
||||
"Calibration of the DualSense Edge is not currently supported.": "Kalibrace zařízení DualSense Edge není aktuálně podporována.",
|
||||
"The device appears to be a DS4 clone. All functionalities are disabled.": "Zdá se, že zařízení je klon DS4. Všechny funkce jsou deaktivovány.",
|
||||
"Error: ": "Chyba: ",
|
||||
"My handle on discord is: the_al": "Můj Discord to: the_al",
|
||||
"Initializing...": "Inicializace...",
|
||||
"Storing calibration...": "Uložení kalibrace...",
|
||||
"Sampling...": "Vzorkování...",
|
||||
"Calibration in progress": "Probíhá kalibrace",
|
||||
"Start": "Start",
|
||||
"Continue": "Pokračovat",
|
||||
"You can check the calibration with the": "Kalibraci můžete zkontrolovat pomocí",
|
||||
"Have a nice day :)": "Hezký den :)",
|
||||
"Welcome to the Calibration GUI": "Vítejte v GUI kalibrace",
|
||||
"Just few things to know before you can start:": "Jen pár věcí, které byste měli vědět, než začnete",
|
||||
"This website is not affiliated with Sony, PlayStation & co.": "Tato webová stránka není přidružena k Sony, PlayStation & co.",
|
||||
"This service is provided without warranty. Use at your own risk.": "Tato služba je poskytována bez záruky. Použití na vlastní nebezpečí.",
|
||||
"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.": "Udržujte vnitřní baterii ovladače připojenou a ujistěte se, že je dobře nabitá. Pokud se baterie během provozu vybije, ovladač se poškodí a stane se nepoužitelným.",
|
||||
"Before doing the permanent calibration, try the temporary one to ensure that everything is working well.": "Před provedením trvalé kalibrace vyzkoušejte dočasnou, abyste se ujistili, že vše funguje dobře.",
|
||||
"Understood": "Pochopil",
|
||||
"Version": "Verze",
|
||||
|
||||
"Frequently Asked Questions": "Často kladené otázky",
|
||||
"Close": "Zavřít",
|
||||
"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!": "Vítejte v F.A.Q. sekce! Níže naleznete odpovědi na některé z nejčastěji kladených otázek o tomto webu. Pokud máte nějaké další dotazy nebo potřebujete další pomoc, neváhejte se na mě obrátit přímo. Vaše názory a dotazy jsou vždy vítány!",
|
||||
"How does it work?": "Jak to funguje?",
|
||||
"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.": "V zákulisí je tato webová stránka vyvrcholením jednoho roku oddaného úsilí v reverzním inženýrství ovladačů DualShock pro zábavu/hobby od náhodného kluka na internetu.",
|
||||
"Through": "Přes",
|
||||
"this research": "tento výzkum",
|
||||
", 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.": ", bylo zjištěno, že na ovladačích DualShock existují některé nezdokumentované příkazy, které lze odeslat přes USB a používají se během výrobního procesu montáže. Pokud jsou tyto příkazy odeslány, ovladač zahájí rekalibraci analogových ovladačů.",
|
||||
"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.": "I když primární zaměření tohoto výzkumu nebylo zpočátku zaměřeno na rekalibraci, ukázalo se, že služba nabízející tuto schopnost může být velkým přínosem pro mnoho jednotlivců. A tak jsme tady.",
|
||||
"Does the calibration remain effective during gameplay on PS4/PS5?": "Zůstává kalibrace účinná během hraní 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.": "Ano, pokud zaškrtnete políčko \"Zapsat změny trvale do ovladače\". V takovém případě se kalibrace zobrazí přímo ve firmwaru regulátoru. To zajišťuje, že zůstane na svém místě bez ohledu na konzolu, ke které je připojen.",
|
||||
"Is this an officially endorsed service?": "Je to oficiálně schválená služba?",
|
||||
"No, this service is simply a creation by a DualShock enthusiast.": "Ne, tato služba je jednoduše výtvorem nadšence pro DualShock.",
|
||||
"Does this website detects if a controller is a clone?": "Detekuje tento web, zda je ovladač klon?",
|
||||
"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.": "Ano, momentálně pouze DualShock4. Stalo se to proto, že jsem omylem zakoupil nějaké klony, strávil čas identifikací rozdílů a přidal tuto funkci, abych zabránil budoucímu podvodu.",
|
||||
"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.": "Bohužel klony stejně nelze zkalibrovat, protože klonují pouze chování DualShocku4 při běžném hraní, ne všechny nezdokumentované funkce.",
|
||||
"If you want to extend this detection functionality to DualSense, please ship me a fake DualSense and you'll see it in few weeks.": "Pokud chcete rozšířit tuto funkci detekce na DualSense, pošlete mi prosím falešný DualSense a uvidíte ho za několik týdnů.",
|
||||
"What development is in plan?": "Jaký vývoj je v plánu?",
|
||||
|
||||
"I maintain two separate to-do lists for this project, although the priority has yet to be established.": "Pro tento projekt udržuji dva samostatné seznamy úkolů, ačkoli priorita ještě nebyla stanovena.",
|
||||
"The first list is about enhancing support for DualShock4 and DualSense controllers:": "První seznam se týká vylepšení podpory pro ovladač DualShock4 a DualSense:",
|
||||
"Implement calibration of L2/R2 triggers.": "Proveďte kalibraci spouštěčů L2/R2.",
|
||||
"Improve detection of clones, particularly beneficial for those seeking to purchase used controllers with assurance of authenticity.": "Zlepšete detekci klonů, což je zvláště výhodné pro ty, kteří chtějí koupit použité ovladače s jistotou pravosti.",
|
||||
"Enhance user interface (e.g. provide additional controller information)": "Vylepšení uživatelského rozhraní (např. poskytnutí dalších informací o ovladači)",
|
||||
"Add support for recalibrating IMUs.": "Přidejte podporu pro rekalibraci IMU.",
|
||||
"Additionally, explore the possibility of reviving non-functioning DualShock controllers (further discussion available on Discord for interested parties).": "Kromě toho prozkoumejte možnost oživení nefunkčních ovladačů DualShock (další diskuze je pro zainteresované strany k dispozici na Discordu).",
|
||||
"The second list contains new controllers I aim to support:": "Druhý seznam obsahuje nové ovladače, které se snažím podporovat:",
|
||||
"DualSense Edge": "DualSense Edge",
|
||||
"DualShock 3": "DualShock 3",
|
||||
"XBox Controllers": "Ovládač 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ždý z těchto úkolů představuje obrovský zájem a značnou časovou investici. Aby bylo možné poskytnout kontext, podpora nového ovladače obvykle vyžaduje 6–12 měsíců výzkumu na plný úvazek a štěstí.",
|
||||
"I love this service, it helped me! How can I contribute?": "Miluji tuto službu, pomohla mi! Jak mohu přispět?",
|
||||
"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:": "Těší mě, že vám to pomohlo! Pokud máte zájem přispět, zde je několik způsobů, jak mi můžete pomoci:",
|
||||
"Consider making a": "Zvažte vytvoření a ",
|
||||
"donation": "Příspěvek",
|
||||
"to support my late-night caffeine-fueled reverse-engineering efforts.": "na podporu mého nočního úsilí o reverzní inženýrství poháněné kofeinem.",
|
||||
"Ship me a controller you would love to add (send me an email for organization).": "Zašlete mi ovladač, který byste rádi přidali (zašlete mi e-mail pro organizaci).",
|
||||
"Translate this website in your language": "Přeložte tento web do svého jazyka",
|
||||
", to help more people like you!": ", pomoci více lidem, jako jste vy!",
|
||||
"This website uses analytics to improve the service.": "Tento web používá analýzy ke zlepšení služeb.",
|
||||
|
||||
"Board Model:": "Model základní desky:",
|
||||
"This feature is experimental.": "Tato funkce je experimentální.",
|
||||
"Please let me know if the board model of your controller is not detected correctly.": "Prosím, dejte mi vědět, pokud model základní desky vašeho ovládače není správně detekován",
|
||||
"Board model detection thanks to": "díky za detekci modelu základní desky",
|
||||
|
||||
"Please connect the device using a USB cable.": "Připojte zařízení pomocí kabelu USB.",
|
||||
"This DualSense controller has outdated firmware.": "Tento ovladač DualSense má zastaralý firmware.",
|
||||
"Please update the firmware and try again.": "Aktualizujte firmware a zkuste to znovu.",
|
||||
"Joystick Info": "Informace o joysticku",
|
||||
"Err R:": "Chyba R",
|
||||
"Err L:": "Chyba L",
|
||||
"Check circularity": "Zkontrolujte rozsah",
|
||||
|
||||
"": ""
|
||||
}
|
||||
@@ -155,12 +155,17 @@
|
||||
"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!",
|
||||
"This website uses analytics to improve the service.": "Diese Website verwendet Analytics, um den Service zu verbessern.",
|
||||
|
||||
"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.": "",
|
||||
"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",
|
||||
|
||||
"": ""
|
||||
}
|
||||
|
||||
@@ -155,12 +155,17 @@
|
||||
"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:": "",
|
||||
"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.": "",
|
||||
"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",
|
||||
|
||||
"": ""
|
||||
}
|
||||
|
||||
@@ -114,53 +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!": "",
|
||||
"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:": "",
|
||||
"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.": "",
|
||||
|
||||
"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é",
|
||||
"": ""
|
||||
}
|
||||
|
||||
@@ -155,12 +155,17 @@
|
||||
"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:",
|
||||
"Board model detection thanks to": "Az alaplapfelismerési funkciőért köszönet illeti:",
|
||||
"Please connect the device using a USB cable.": "Kérlek csatlakoztasd az eszközt USB kábel használatával.",
|
||||
"This DualSense controller has outdated firmware.": "Ennek a DualSense vezérlőnek elavult a firmware-e.",
|
||||
"Please update the firmware and try again.": "Kérlek frissítsd a firmware-t, és próbáld újra.",
|
||||
"Joystick Info": "Analógkar Információ",
|
||||
"Err R:": "Hibaarány J:",
|
||||
"Err L:": "Hibaarány B:",
|
||||
"Check circularity": "Körkörösség ellenőrzése",
|
||||
|
||||
"Please connect the device using a USB cable.": "",
|
||||
"": ""
|
||||
}
|
||||
|
||||
@@ -155,12 +155,17 @@
|
||||
"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à",
|
||||
|
||||
"": ""
|
||||
}
|
||||
|
||||
@@ -156,11 +156,17 @@
|
||||
", 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.": "",
|
||||
"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": "円形を確認",
|
||||
|
||||
"": ""
|
||||
}
|
||||
|
||||
170
lang/ko_kr.json
Normal file
170
lang/ko_kr.json
Normal file
@@ -0,0 +1,170 @@
|
||||
{
|
||||
".authorMsg": "한국어 번역(제타)",
|
||||
"DualShock Calibration GUI": "듀얼쇼크 캘리브레이션 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.": "듀얼쇼크4 또는 듀얼센스 컨트롤러를 컴퓨터에 연결하고 [연결] 버튼을 누릅니다.",
|
||||
"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": "Unknown",
|
||||
"BD Addr": "BD 주소",
|
||||
"Debug buttons": "디버그 버튼",
|
||||
"Query NVS status": "NVS 상태 조회",
|
||||
"NVS unlock": "NVS 잠금 해제",
|
||||
"NVS lock": "NVS 잠금 설정",
|
||||
"Get BDAddr": "BD 주소 받기",
|
||||
"Fast calibrate stick center (OLD)": "스틱 중앙을 빠르게 캘리브레이션 (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.": "이 도구는 컨트롤러의 아날로그 스틱을 다시 중앙에 위치하도록 안내하며, 4단계로 구성되어 두 스틱을 특정 방향으로 움직인 후 해제하라는 메시지가 표시됩니다.",
|
||||
"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> 경고: </font></small> 경고: <font color='red'",
|
||||
"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.": "제안이나 의견이 있으신가요? 이메일이나 디스코드로 알려주세요.",
|
||||
"Cheers!": "건배!",
|
||||
"Support this project": "이 프로젝트 지원",
|
||||
|
||||
"unknown": "불명",
|
||||
"original": "오리지날",
|
||||
"clone": "클론",
|
||||
"locked": "잠김",
|
||||
"unlocked": "잠김 해제",
|
||||
"error": "에러",
|
||||
"Build Date:": "빌드 날짜:",
|
||||
"HW Version:": "HW 버전:",
|
||||
"SW Version:": "SW 버전:",
|
||||
"Device Type:": "장치 타입:",
|
||||
"Firmware Type:": "펌웨어 타입:",
|
||||
"SW Series:": "SW 시리즈:",
|
||||
"HW Info:": "HW 정보:",
|
||||
"SW Version:": "SW 버전:",
|
||||
"UPD Version:": "UPD 버전:",
|
||||
"FW Version1:": "FW버전1:",
|
||||
"FW Version2:": "FW버전2:",
|
||||
"FW Version3:": "FW버전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 & co.": "이 웹사이트는 소니, 플레이스테이션 등과 무관합니다.",
|
||||
"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.": "이 웹사이트는 1년 동안 인터넷에서 무작위 사람들이 재미와 취미를 위해 듀얼쇼크 컨트롤러를 리버스 엔지니어링하는 데 전념한 결과물이다.",
|
||||
"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.": "이 프로젝트에서는 아직 우선순위가 정해지지 않았지만, 두 개의 별도 ToDo 리스트를 관리하고 있다.",
|
||||
"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": "원형 확인",
|
||||
|
||||
"": ""
|
||||
}
|
||||
@@ -3,13 +3,13 @@
|
||||
"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łączono",
|
||||
"Connected to:": "Połączono do:",
|
||||
"Disconnect": "Rozłączono",
|
||||
"Connect": "Połącz",
|
||||
"Connected to:": "Połączono z:",
|
||||
"Disconnect": "Rozłącz",
|
||||
"Firmware Info": "Informacje o Firmware",
|
||||
"Calibrate stick center": "Skalibruj centralny punkt drążka",
|
||||
"Calibrate stick range (permanent)": "Skalibruj maksymalny zasięg drążka (na stałe)",
|
||||
"Calibrate stick range (temporary)": "Skalibruj maksymalny zasięg drążka (chwilowo)",
|
||||
"Calibrate stick center": "Skalibruj centralny punkt drążków",
|
||||
"Calibrate stick range (permanent)": "Skalibruj maksymalny zasięg drążków (stale)",
|
||||
"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",
|
||||
@@ -20,35 +20,35 @@
|
||||
"NVS unlock": "Odblokuj NVS",
|
||||
"NVS lock": "Zablokuj NVS",
|
||||
"Get BDAddr": "Zdobądź BDAddr",
|
||||
"Fast calibrate stick center (OLD)": "Szybka kalibracja punktu drążka (stare)",
|
||||
"Stick center calibration": "Kalibracja centralna drążka",
|
||||
"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ążka!",
|
||||
"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 razie przyczyni się do uszkodzenia kontrolera.</font></small>",
|
||||
"<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 do <b>Lewy górny róg</b> a następnie je puść.",
|
||||
"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 do <b>Prawy górny róg</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 do <b>Lewy dolny róg</b> a następnie je puść.",
|
||||
"Please move both sticks to the <b>bottom-right corner</b> and release them.": "Proszę przesuń oba drążki do <b>Prawy dolny róg</b> a następnie je puść.",
|
||||
"Calibration completed successfully!": "Kalibracja wykonana pomyślnie!",
|
||||
"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": "Zasięg kalibracji",
|
||||
"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 obrębie zasięgu. Naciśnij \"Gotowe\", jeżeli zakończyłeś.",
|
||||
"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ę",
|
||||
@@ -70,22 +70,22 @@
|
||||
"Device Type:": "Rodzaj urządzenia:",
|
||||
"Firmware Type:": "Rodzaj Firmware'u:",
|
||||
"SW Series:": "Seria SW:",
|
||||
"HW Info:": "Info HW:",
|
||||
"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": "Zasięg kalibracji zakończony",
|
||||
"Range calibration failed: ": "Zasięg kalibracji nieuadany: ",
|
||||
"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ążka nie powiodła się: ",
|
||||
"Stick calibration completed": "Kalibracja drążka powiodła się",
|
||||
"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.",
|
||||
@@ -109,15 +109,15 @@
|
||||
"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 & co.": "Ta strona nie jest w żaden sposób spowiązana z Sony, PlayStation & co.",
|
||||
"This service is provided without warranty. Use at your own risk.": "Ta usługa jest świadczona bez żadnej gwarancji. Robisz 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.": "Podtrzymuj wewnętrzą baterię kontrolera tak żeby w czasie pracy była ona dobrze naładowana. W przeciwnym razie gdy bateria się rozładuje, to wewnętrzny sterownik kontrolera może ulec całkowitemu uszkodzeniu",
|
||||
"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!": "Witamy 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!",
|
||||
"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",
|
||||
@@ -132,15 +132,15 @@
|
||||
"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?": "Jaki rozwój jest planowany?",
|
||||
"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.": "Zastosuj kalibrację przycisków L2/R2.",
|
||||
"Improve detection of clones, particularly beneficial for those seeking to purchase used controllers with assurance of authenticity.": "Usprawnij wykrywanie 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)": "Ulepsz interfejs użytkownika (np. podaj dodatkowe informacje o kontrolerze)",
|
||||
"Add support for recalibrating IMUs.": "Dodaj obsługę ponownej kalibracji IMU.",
|
||||
"Additionally, explore the possibility of reviving non-functioning DualShock controllers (further discussion available on Discord for interested parties).": "Dodatkowo zbadaj możliwość ożywienia niedziałających kontrolerów DualShock (dalsza dyskusja dostępna na Discordzie dla zainteresowanych).",
|
||||
"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",
|
||||
@@ -161,6 +161,13 @@
|
||||
"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.": "",
|
||||
"Please connect the device using a USB cable.": "Proszę podłącz urządzenie przy pomocy kabla USB.",
|
||||
"This DualSense controller has outdated firmware.": "Ten kontroler Dualsense posiada przestarzały firmware.",
|
||||
"Please update the firmware and try again.": "Proszę zaktualizuj firmware i spróbuj ponownie.",
|
||||
"Joystick Info": "Informacje o drążkach",
|
||||
"Err R:": "Błędność R",
|
||||
"Err L:": "Błędność L",
|
||||
"Check circularity": "Sprawdź okrężność",
|
||||
|
||||
"": ""
|
||||
}
|
||||
|
||||
@@ -156,11 +156,17 @@
|
||||
", 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:": "",
|
||||
"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.": "",
|
||||
"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",
|
||||
|
||||
"": ""
|
||||
}
|
||||
|
||||
@@ -156,11 +156,17 @@
|
||||
", 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.": "",
|
||||
"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": "Проверить округлость",
|
||||
|
||||
"": ""
|
||||
}
|
||||
|
||||
@@ -156,11 +156,17 @@
|
||||
", to help more people like you!": ", sizin gibi daha fazla insanın faydalanması için!",
|
||||
"This website uses analytics to improve the service.": "Bu web sitesi hizmeti iyileştirmek için analiz kullanıyor.",
|
||||
|
||||
"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.": "",
|
||||
"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",
|
||||
|
||||
"": ""
|
||||
}
|
||||
|
||||
@@ -161,6 +161,13 @@
|
||||
"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.": "",
|
||||
"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
166
lang/zh_tw.json
Normal 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 & 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": "檢查搖桿外圈圓度。",
|
||||
"": ""
|
||||
}
|
||||
Reference in New Issue
Block a user