Add copy button for firmware information

This commit is contained in:
Alain Carlucci
2025-12-06 16:42:58 +01:00
parent 420648d851
commit 6bea7dfec2
26 changed files with 85 additions and 94 deletions

View File

@@ -178,7 +178,7 @@ class DS4Controller extends BaseController {
if(!is_clone) {
// Add Board Model (UI will append the info icon)
infoItems.push({ key: l("Board Model"), value: this.hwToBoardModel(hw_ver_minor), cat: "hw", addInfoIcon: 'board' });
infoItems.push({ key: l("Board Model"), value: this.hwToBoardModel(hw_ver_minor), cat: "hw", addInfoIcon: 'board', copyable: true });
const bd_addr = await this.getBdAddr();
infoItems.push({ key: l("Bluetooth Address"), value: bd_addr, cat: "hw" });

View File

@@ -298,16 +298,16 @@ class DS5Controller extends BaseController {
const serial_number = await this.getSystemInfo(1, 19, 17);
const color = ds5_color(serial_number);
const infoItems = [
{ key: l("Serial Number"), value: serial_number, cat: "hw" },
{ key: l("MCU Unique ID"), value: await this.getSystemInfo(1, 9, 9, false), cat: "hw", isExtra: true },
{ key: l("Serial Number"), value: serial_number, cat: "hw", copyable: true },
{ key: l("MCU Unique ID"), value: await this.getSystemInfo(1, 9, 9, false), cat: "hw", isExtra: true, copyable: true },
{ key: l("PCBA ID"), value: reverse_str(await this.getSystemInfo(1, 17, 14)), cat: "hw", isExtra: true },
{ key: l("Battery Barcode"), value: await this.getSystemInfo(1, 24, 23), cat: "hw", isExtra: true },
{ key: l("VCM Left Barcode"), value: await this.getSystemInfo(1, 26, 16), cat: "hw", isExtra: true },
{ key: l("VCM Right Barcode"), value: await this.getSystemInfo(1, 28, 16), cat: "hw", isExtra: true },
{ key: l("Battery Barcode"), value: await this.getSystemInfo(1, 24, 23), cat: "hw", isExtra: true, copyable: true },
{ key: l("VCM Left Barcode"), value: await this.getSystemInfo(1, 26, 16), cat: "hw", isExtra: true, copyable: true },
{ key: l("VCM Right Barcode"), value: await this.getSystemInfo(1, 28, 16), cat: "hw", isExtra: true, copyable: true },
{ key: l("Color"), value: l(color), cat: "hw", addInfoIcon: 'color' },
{ key: l("Color"), value: l(color), cat: "hw", addInfoIcon: 'color', copyable: true },
...(is_edge ? [] : [{ key: l("Board Model"), value: this.hwToBoardModel(hwinfo), cat: "hw", addInfoIcon: 'board' }]),
...(is_edge ? [] : [{ key: l("Board Model"), value: this.hwToBoardModel(hwinfo), cat: "hw", addInfoIcon: 'board', copyable: true }]),
{ key: l("FW Build Date"), value: build_date + " " + build_time, cat: "fw" },
{ key: l("FW Type"), value: "0x" + dec2hex(fwtype), cat: "fw", isExtra: true },
@@ -320,7 +320,7 @@ class DS5Controller extends BaseController {
{ key: l("Venom FW Version"), value: "0x" + dec2hex32(fwversion2), cat: "fw", isExtra: true },
{ key: l("Spider FW Version"), value: "0x" + dec2hex32(fwversion3), cat: "fw", isExtra: true },
{ key: l("Touchpad ID"), value: await this.getSystemInfo(5, 2, 8, false), cat: "hw", isExtra: true },
{ key: l("Touchpad ID"), value: await this.getSystemInfo(5, 2, 8, false), cat: "hw", isExtra: true, copyable: true },
{ key: l("Touchpad FW Version"), value: await this.getSystemInfo(5, 4, 8, false), cat: "fw", isExtra: true },
];

View File

@@ -885,20 +885,11 @@ function render_info_to_dom(infoItems) {
if (!Array.isArray(infoItems)) return;
// Add new info items
infoItems.forEach(({key, value, addInfoIcon, severity, isExtra, cat}) => {
infoItems.forEach(({key, value, addInfoIcon, severity, isExtra, cat, copyable}) => {
if (!key) return;
// Compose value with optional info icon
let valueHtml = String(value ?? "");
if (addInfoIcon === 'board') {
const icon = '&nbsp;<a class="link-body-emphasis" href="#" onclick="board_model_info()">' +
'<svg class="bi" width="1.3em" height="1.3em"><use xlink:href="#info"/></svg></a>';
valueHtml += icon;
} else if (addInfoIcon === 'color') {
const icon = '&nbsp;<a class="link-body-emphasis" href="#" onclick="edge_color_info()">' +
'<svg class="bi" width="1.3em" height="1.3em"><use xlink:href="#info"/></svg></a>';
valueHtml += icon;
}
// Apply severity formatting if requested
if (severity) {
@@ -908,25 +899,43 @@ function render_info_to_dom(infoItems) {
}
if (isExtra) {
append_info_extra(key, valueHtml, cat || "hw");
appendInfoExtra(key, valueHtml, cat || "hw", copyable ?? false);
} else {
append_info(key, valueHtml, cat || "hw");
appendInfo(key, valueHtml, cat || "hw", copyable ?? false);
}
});
}
function append_info_extra(key, value, cat) {
function copyValueToClipboard(text) {
navigator.clipboard.writeText(text).then(function() {
infoAlert(l("The item has been copied to the clipboard."), 2000);
}).catch(function(err) {
errorAlert(l("Cannot copy text to the clipboard:") + " " + str(err));
});
}
function genCopyString(value, copyable) {
if(!copyable)
return '';
const cleanStringRegex = value.match(/^[A-Za-z0-9_.-]+/);
const escapedValue = cleanStringRegex ? cleanStringRegex[0] : "";
return '&nbsp;<i style="cursor:pointer;" class="fa-regular fa-copy" onclick=\'copyValueToClipboard("' + escapedValue + '")\'></i>';
}
function appendInfoExtra(key, value, cat, copyable) {
// TODO escape html
const s = '<dt class="text-muted col-sm-4 col-md-6 col-xl-5">' + key + '</dt><dd class="col-sm-8 col-md-6 col-xl-7" style="text-align: right;">' + value + '</dd>';
const s = '<dt class="text-muted col-sm-4 col-md-6 col-xl-5">' + key + '</dt><dd class="col-sm-8 col-md-6 col-xl-7" style="text-align: right;">' + value + genCopyString(value, copyable) + '</dd>';
$("#fwinfoextra-" + cat).html($("#fwinfoextra-" + cat).html() + s);
}
function append_info(key, value, cat) {
function appendInfo(key, value, cat, copyable) {
// TODO escape html
const s = '<dt class="text-muted col-6">' + key + '</dt><dd class="col-6" style="text-align: right;">' + value + '</dd>';
const s = '<dt class="text-muted col-6">' + key + '</dt><dd class="col-6" style="text-align: right;">' + value + genCopyString(value, copyable) + '</dd>';
$("#fwinfo").html($("#fwinfo").html() + s);
append_info_extra(key, value, cat);
appendInfoExtra(key, value, cat, copyable);
}
function show_popup(text, is_html = false) {
@@ -964,25 +973,6 @@ function show_info_tab() {
$('#info-tab').tab('show');
}
function discord_popup() {
la("discord_popup");
show_popup(l("My handle on discord is: the_al"));
}
function edge_color_info() {
la("cm_info");
const text = l("Color detection thanks to") + ' romek77 from Poland.';
show_popup(text, true);
}
function board_model_info() {
la("bm_info");
const l1 = l("This feature is experimental.");
const l2 = l("Please let me know if the board model of your controller is not detected correctly.");
const l3 = l("Board model detection thanks to") + ' <a href="https://battlebeavercustoms.com/">Battle Beaver Customs</a>.';
show_popup(l3 + "<br><br>" + l1 + " " + l2, true);
}
// Alert Management Functions
let alertCounter = 0;
@@ -1068,6 +1058,7 @@ window.connect = connect;
window.disconnect = disconnectSync;
window.show_faq_modal = show_faq_modal;
window.show_info_tab = show_info_tab;
window.copyValueToClipboard = copyValueToClipboard;
window.calibrate_range = () => calibrate_range(
controller,
{ ll_data, rr_data },
@@ -1112,8 +1103,6 @@ window.nvsunlock = nvsunlock;
window.nvslock = nvslock;
window.welcome_accepted = welcome_accepted;
window.show_donate_modal = show_donate_modal;
window.board_model_info = board_model_info;
window.edge_color_info = edge_color_info;
window.show_quick_test_modal = () => {
show_quick_test_modal(controller).catch(error => {
throw new Error("Failed to show quick test modal", { cause: error });

View File

@@ -126,7 +126,6 @@
"Board Model": "نوع اللوحة",
"This feature is experimental.": "هذه الخاصية تجريبية.",
"Please let me know if the board model of your controller is not detected correctly.": "من فضلك أخبرني إذا لم يتم اكتشاف نوع لوحة التحكم بشكل صحيح.",
"Board model detection thanks to": "كشف نوع اللوحة بفضل",
"This DualSense controller has outdated firmware.": "يد تحكم DualSense هذه تستخدم برمجيات قديمة.",
"Please update the firmware and try again.": "الرجاء حدث البرمجيات وحاول مرة أخرى.",
"Joystick Info": "معلومات عصا التحكم",
@@ -190,6 +189,7 @@
"Calibration": "",
"Calibration is being stored in the stick modules.": "",
"Cancel": "",
"Cannot copy text to the clipboard:": "",
"Cannot lock": "",
"Cannot store data into": "",
"Cannot unlock": "",
@@ -202,7 +202,6 @@
"Circularity (R1)": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
"Controller does not support adaptive trigger control": "",
"Cosmic Red": "",
"Debug": "",
@@ -283,6 +282,7 @@
"The Last of Us": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The device is connected via Bluetooth. Disconnect and reconnect using a USB cable instead.": "",
"The item has been copied to the clipboard.": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This test checks all controller buttons by requiring you to press each button up to three times.": "",

View File

@@ -125,7 +125,6 @@
"Board Model": "Модел на платката",
"This feature is experimental.": "Тази функция е експериментална.",
"Please let me know if the board model of your controller is not detected correctly.": "Моля, уведомете ме, ако моделът на платката на вашия контролер не е разпознат правилно.",
"Board model detection thanks to": "Разпознаване на модела на платката благодарение на",
"This DualSense controller has outdated firmware.": "Този контролер DualSense има остарял фърмуер.",
"Please update the firmware and try again.": "Моля, актуализирайте фърмуера и опитайте отново.",
"Joystick Info": "Информация за джойстика",
@@ -167,6 +166,7 @@
"Calibration": "",
"Calibration is being stored in the stick modules.": "",
"Cancel": "",
"Cannot copy text to the clipboard:": "",
"Cannot lock": "",
"Cannot store data into": "",
"Cannot unlock": "",
@@ -179,7 +179,6 @@
"Circularity (R1)": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
"Controller Info": "",
"Controller does not support adaptive trigger control": "",
"Cosmic Red": "",
@@ -278,6 +277,7 @@
"The Last of Us": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The device is connected via Bluetooth. Disconnect and reconnect using a USB cable instead.": "",
"The item has been copied to the clipboard.": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This test checks all controller buttons by requiring you to press each button up to three times.": "",

View File

@@ -125,7 +125,6 @@
"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",
"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",
@@ -152,6 +151,7 @@
"Can I reset a permanent calibration to previous calibration?": "",
"Can you overwrite a permanent calibration?": "",
"Cancel": "",
"Cannot copy text to the clipboard:": "",
"Cannot lock": "",
"Cannot store data into": "",
"Cannot unlock": "",
@@ -165,7 +165,6 @@
"Circularity (R1)": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
"Controller Info": "",
"Controller does not support adaptive trigger control": "",
"Cosmic Red": "",
@@ -274,6 +273,7 @@
"The Last of Us": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The device is connected via Bluetooth. Disconnect and reconnect using a USB cable instead.": "",
"The item has been copied to the clipboard.": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This issue happens because you have clicked \"Done\" immediately after starting a range calibration.": "",

View File

@@ -127,7 +127,6 @@
"Board Model": "Board Model",
"This feature is experimental.": "Denne funktion er eksperimentel.",
"Please let me know if the board model of your controller is not detected correctly.": "Giv mig venligst besked, hvis board modellen på din controller ikke bliver registreret korrekt.",
"Board model detection thanks to": "Board model detektion, tak til",
"This DualSense controller has outdated firmware.": "Denne DualSense controller har forældet firmware.",
"Please update the firmware and try again.": "Opdater venligst firmwaren og prøv igen.",
"Joystick Info": "Joystick Info",
@@ -182,7 +181,6 @@
"Chroma Teal": "Chroma Teal",
"Cobalt Blue": "Cobalt Blue",
"Color": "Farve",
"Color detection thanks to": "Farvedetektering, tak til",
"Cosmic Red": "Cosmic Red",
"DualSense Edge Calibration": "DualSense Edge Kalibrering",
"FW Update": "FW Opdatering",
@@ -311,6 +309,8 @@
"skipped": "sprunget over",
"tests completed": "tests er gennemført",
"to increase the non-circularity.": "for at øge ikke-cirkulariteten.",
"Cannot copy text to the clipboard:": "",
"Please connect a DualShock 4, a DualSense, DualSense Edge or VR2 controller to your computer and press Connect.": "",
"The item has been copied to the clipboard.": "",
"": ""
}

View File

@@ -126,7 +126,6 @@
"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 lasse mich wissen, wenn das Platinentyp Ihres Controllers nicht korrekt erkannt wird.",
"Board model detection thanks to": "Platinentyp-Erkennung dank",
"This DualSense controller has outdated firmware.": "Dieser DualSense-Controller hat eine veraltete Firmware.",
"Please update the firmware and try again.": "Bitte aktualisiere die Firmware und versuche es erneut.",
"Joystick Info": "Joystick-Informationen",
@@ -182,6 +181,7 @@
"Buttons": "",
"Calibration": "",
"Calibration is being stored in the stick modules.": "",
"Cannot copy text to the clipboard:": "",
"Cannot lock": "",
"Cannot store data into": "",
"Cannot unlock": "",
@@ -194,7 +194,6 @@
"Circularity (R1)": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
"Controller does not support adaptive trigger control": "",
"Cosmic Red": "",
"Debug": "",
@@ -280,6 +279,7 @@
"The Last of Us": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The device is connected via Bluetooth. Disconnect and reconnect using a USB cable instead.": "",
"The item has been copied to the clipboard.": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This test checks all controller buttons by requiring you to press each button up to three times.": "",

View File

@@ -125,7 +125,6 @@
"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",
"This DualSense controller has outdated firmware.": "Este mando 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",
@@ -152,6 +151,7 @@
"Can I reset a permanent calibration to previous calibration?": "",
"Can you overwrite a permanent calibration?": "",
"Cancel": "",
"Cannot copy text to the clipboard:": "",
"Cannot lock": "",
"Cannot store data into": "",
"Cannot unlock": "",
@@ -165,7 +165,6 @@
"Circularity (R1)": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
"Controller Info": "",
"Controller does not support adaptive trigger control": "",
"Cosmic Red": "",
@@ -274,6 +273,7 @@
"The Last of Us": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The device is connected via Bluetooth. Disconnect and reconnect using a USB cable instead.": "",
"The item has been copied to the clipboard.": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This issue happens because you have clicked \"Done\" immediately after starting a range calibration.": "",

View File

@@ -143,6 +143,7 @@
"Add test": "",
"Be gentle to avoid damage.": "",
"Buttons": "",
"Cannot copy text to the clipboard:": "",
"Center": "",
"Circularity": "",
"Controller does not support adaptive trigger control": "",
@@ -194,6 +195,7 @@
"Test all buttons, or long-press [square] to Pass and [cross] to Fail, or [circle] to skip.": "",
"The <b>Done</b> button will unlock after at most 15 seconds. If you press <b>Done</b> without rotating the sticks, the calibration will be incomplete and you will need to repeat it.": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The item has been copied to the clipboard.": "",
"This test checks all controller buttons by requiring you to press each button up to three times.": "",
"This test checks the headphone jack functionality.": "",
"This test checks the reliability of the USB port.": "",

View File

@@ -125,7 +125,6 @@
"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 à",
"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",
@@ -152,6 +151,7 @@
"Can I reset a permanent calibration to previous calibration?": "",
"Can you overwrite a permanent calibration?": "",
"Cancel": "",
"Cannot copy text to the clipboard:": "",
"Cannot lock": "",
"Cannot store data into": "",
"Cannot unlock": "",
@@ -165,7 +165,6 @@
"Circularity (R1)": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
"Controller Info": "",
"Controller does not support adaptive trigger control": "",
"Cosmic Red": "",
@@ -274,6 +273,7 @@
"The Last of Us": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The device is connected via Bluetooth. Disconnect and reconnect using a USB cable instead.": "",
"The item has been copied to the clipboard.": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This issue happens because you have clicked \"Done\" immediately after starting a range calibration.": "",

View File

@@ -126,7 +126,6 @@
"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 illeti:",
"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ó",
@@ -197,7 +196,6 @@
"Cannot store data into": "Adatok tárolása nem lehetséges ide:",
"Cannot unlock": "Feloldás nem lehetséges",
"Color": "Szín",
"Color detection thanks to": "A színészlelésért köszönet illeti:",
"If the calibration is not stored permanently, please double-check the wirings of the hardware mod.": "Ha a kalibráció nem került véglegesen tárolásra, kérlek, ellenőrizd újra a hardvermódosítás vezetékezését!",
"Left Module Barcode": "Bal modul vonalkódja",
"Right Module Barcode": "Jobb modul vonalkódja",
@@ -314,5 +312,7 @@
"skipped": "kihagyva",
"tests completed": "befejezett teszt",
"to increase the non-circularity.": "a nem-körkörösség növeléséhez.",
"Cannot copy text to the clipboard:": "",
"The item has been copied to the clipboard.": "",
"": ""
}

View File

@@ -126,7 +126,6 @@
"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",
"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",
@@ -197,7 +196,6 @@
"Cannot store data into": "Non riesco a salvare i dati nel",
"Cannot unlock": "Non riesco a sbloccare il",
"Color": "Colore",
"Color detection thanks to": "Riconoscimento colore grazie a",
"If the calibration is not stored permanently, please double-check the wirings of the hardware mod.": "Se la calibrazione non è salvata permanentemente, controlla i cablaggi della mod hardware.",
"Left Module Barcode": "Codice modulo sinistro",
"Right Module Barcode": "Codice modulo destro",
@@ -308,6 +306,8 @@
"tests completed": "test completati",
"to increase the non-circularity.": "per aumentare la non-circolarità.",
"Please connect a DualShock 4, a DualSense, DualSense Edge or VR2 controller to your computer and press Connect.": "Connetti un controller DualShock 4, DualSense, DualSense Edge o VR2 al computer e premi Connetti.",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"Cannot copy text to the clipboard:": "Non posso copiare il testo negli appunti:",
"The device appears to be a clone. All calibration functionality is disabled.": "Il dispositivo sembra un clone. Le funzioni di calibrazione sono disattivate.",
"The item has been copied to the clipboard.": "Testo copiato negli appunti.",
"": ""
}

View File

@@ -125,7 +125,6 @@
"Board Model": "基板モデル",
"This feature is experimental.": "この機能は実験的です。",
"Please let me know if the board model of your controller is not detected correctly.": "コントローラーの基板モデルが正しく検出されない場合はお知らせください。",
"Board model detection thanks to": "基板モデルの検出には感謝します",
"This DualSense controller has outdated firmware.": "このDualSenseコントローラーのファームウェアは古くなっています。",
"Please update the firmware and try again.": "ファームウェアを更新してから再試行してください。",
"Joystick Info": "ジョイスティック情報",
@@ -155,6 +154,7 @@
"Calibration is being stored in the stick modules.": "",
"Can I reset a permanent calibration to previous calibration?": "",
"Can you overwrite a permanent calibration?": "",
"Cannot copy text to the clipboard:": "",
"Cannot lock": "",
"Cannot store data into": "",
"Cannot unlock": "",
@@ -168,7 +168,6 @@
"Circularity (R1)": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
"Controller Info": "",
"Controller does not support adaptive trigger control": "",
"Cosmic Red": "",
@@ -274,6 +273,7 @@
"The Last of Us": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The device is connected via Bluetooth. Disconnect and reconnect using a USB cable instead.": "",
"The item has been copied to the clipboard.": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This issue happens because you have clicked \"Done\" immediately after starting a range calibration.": "",

View File

@@ -125,7 +125,6 @@
"Board Model": "보드 모델",
"This feature is experimental.": "이 기능은 실험적인 기능입니다.",
"Please let me know if the board model of your controller is not detected correctly.": "컨트롤러의 보드 모델이 올바르게 감지되지 않으면 알려주세요.",
"Board model detection thanks to": "보드 모델 감지 도움:",
"This DualSense controller has outdated firmware.": "이 DualSense 컨트롤러의 펌웨어가 오래되었습니다.",
"Please update the firmware and try again.": "펌웨어를 업데이트한 후 다시 시도해주세요.",
"Joystick Info": "조이스틱 정보",
@@ -192,7 +191,6 @@
"Circularity (R1)": "원형성 (R1)",
"Cobalt Blue": "코발트 블루",
"Color": "색상",
"Color detection thanks to": "색상 감지 도움:",
"Cosmic Red": "코스믹 레드",
"Debug": "디버그",
"DualSense Edge Calibration": "DualSense Edge 보정",
@@ -240,6 +238,7 @@
"Add test": "",
"Be gentle to avoid damage.": "",
"Buttons": "",
"Cannot copy text to the clipboard:": "",
"Center": "",
"Circularity": "",
"Controller does not support adaptive trigger control": "",
@@ -292,6 +291,7 @@
"The <b>Done</b> button will unlock after at most 15 seconds. If you press <b>Done</b> without rotating the sticks, the calibration will be incomplete and you will need to repeat it.": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The device is connected via Bluetooth. Disconnect and reconnect using a USB cable instead.": "",
"The item has been copied to the clipboard.": "",
"This test checks all controller buttons by requiring you to press each button up to three times.": "",
"This test checks the headphone jack functionality.": "",
"This test checks the reliability of the USB port.": "",

View File

@@ -125,7 +125,6 @@
"Board Model": "Board Model",
"This feature is experimental.": "Deze functie is experimenteel.",
"Please let me know if the board model of your controller is not detected correctly.": "Laat het me weten als het model van uw controller niet correct wordt gedetecteerd.",
"Board model detection thanks to": "Bordmodel detectie dankzij",
"This DualSense controller has outdated firmware.": "Deze DualSense-controller heeft verouderde firmware.",
"Please update the firmware and try again.": "Update de firmware en probeer het opnieuw.",
"Joystick Info": "Joystick Info",
@@ -152,6 +151,7 @@
"Can I reset a permanent calibration to previous calibration?": "",
"Can you overwrite a permanent calibration?": "",
"Cancel": "",
"Cannot copy text to the clipboard:": "",
"Cannot lock": "",
"Cannot store data into": "",
"Cannot unlock": "",
@@ -165,7 +165,6 @@
"Circularity (R1)": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
"Controller Info": "",
"Controller does not support adaptive trigger control": "",
"Cosmic Red": "",
@@ -274,6 +273,7 @@
"The Last of Us": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The device is connected via Bluetooth. Disconnect and reconnect using a USB cable instead.": "",
"The item has been copied to the clipboard.": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This issue happens because you have clicked \"Done\" immediately after starting a range calibration.": "",

View File

@@ -126,7 +126,6 @@
"Board Model": "Model płytki",
"This feature is experimental.": "Ta funkcja jest eksperymentalna.",
"Please let me know if the board model of your controller is not detected correctly.": "Jeżeli model płytki został wykryty błędnie prosimy o kontakt",
"Board model detection thanks to": "Podziękowania dla osoby za funkcję wykrywania modelu płytki",
"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",
@@ -189,7 +188,6 @@
"Cannot unlock": "Nie można odblokować",
"Cobalt Blue": "Cobalt Blue",
"Color": "Kolor",
"Color detection thanks to": "Podziękowania dla osoby za funkcję wykrywania kolorów",
"Cosmic Red": "Cosmic Red",
"DualSense Edge Calibration": "Kalibracja Dualsense Edge",
"For more info or help, feel free to reach out on Discord.": "Aby uzyskać więcej informacji lub pomoc, skontaktuj się do nas na Discordzie",
@@ -241,6 +239,7 @@
"Add test": "",
"Be gentle to avoid damage.": "",
"Buttons": "",
"Cannot copy text to the clipboard:": "",
"Center": "",
"Circularity": "",
"Controller does not support adaptive trigger control": "",
@@ -293,6 +292,7 @@
"The <b>Done</b> button will unlock after at most 15 seconds. If you press <b>Done</b> without rotating the sticks, the calibration will be incomplete and you will need to repeat it.": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The device is connected via Bluetooth. Disconnect and reconnect using a USB cable instead.": "",
"The item has been copied to the clipboard.": "",
"This test checks all controller buttons by requiring you to press each button up to three times.": "",
"This test checks the headphone jack functionality.": "",
"This test checks the reliability of the USB port.": "",

View File

@@ -125,7 +125,6 @@
"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",
"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",
@@ -167,6 +166,7 @@
"Calibration": "",
"Calibration is being stored in the stick modules.": "",
"Cancel": "",
"Cannot copy text to the clipboard:": "",
"Cannot lock": "",
"Cannot store data into": "",
"Cannot unlock": "",
@@ -179,7 +179,6 @@
"Circularity (R1)": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
"Controller Info": "",
"Controller does not support adaptive trigger control": "",
"Cosmic Red": "",
@@ -278,6 +277,7 @@
"The Last of Us": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The device is connected via Bluetooth. Disconnect and reconnect using a USB cable instead.": "",
"The item has been copied to the clipboard.": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This test checks all controller buttons by requiring you to press each button up to three times.": "",

View File

@@ -125,7 +125,6 @@
"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 controlador não for detectado corretamente.",
"Board model detection thanks to": "Detecção do modelo da placa graças a",
"This DualSense controller has outdated firmware.": "Este controlador 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",
@@ -195,7 +194,6 @@
"Cannot store data into": "Não é possível armazenar dados em",
"Cannot unlock": "Não é possível desbloquear",
"Color": "Cor",
"Color detection thanks to": "Detecção de cor graças a",
"FW Series": "Série do FW",
"If the calibration is not stored permanently, please double-check the wirings of the hardware mod.": "Se a calibração não for armazenada permanentemente, verifique novamente os fios soldados na modificação de hardware.",
"Left Module Barcode": "Código de barras do módulo esquerdo",
@@ -290,6 +288,7 @@
"to increase the non-circularity.": "para aumentar a não circularidade.",
"30th Anniversary": "",
"Astro Bot": "",
"Cannot copy text to the clipboard:": "",
"Chroma Indigo": "",
"Chroma Pearl": "",
"Chroma Teal": "",
@@ -307,6 +306,7 @@
"Sterling Silver": "",
"The Last of Us": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The item has been copied to the clipboard.": "",
"Volcanic Red": "",
"White": "",
"": ""

View File

@@ -126,7 +126,6 @@
"Board Model": "Model ploče",
"This feature is experimental.": "Ova funkcionalnost je eksperimentalna.",
"Please let me know if the board model of your controller is not detected correctly.": "Molimo vas da mi javite ako model ploče vašeg kontrolera nije tačno detektovan.",
"Board model detection thanks to": "Detekcija modela ploče zahvaljujući",
"This DualSense controller has outdated firmware.": "Ovaj DualSense kontroler ima zastareli firmware.",
"Please update the firmware and try again.": "Molimo vas da ažurirate firmware i pokušate ponovo.",
"Joystick Info": "Informacije o džojstiku",
@@ -193,6 +192,7 @@
"Buttons": "",
"Calibration": "",
"Calibration is being stored in the stick modules.": "",
"Cannot copy text to the clipboard:": "",
"Cannot lock": "",
"Cannot store data into": "",
"Cannot unlock": "",
@@ -205,7 +205,6 @@
"Circularity (R1)": "",
"Cobalt Blue": "",
"Color": "",
"Color detection thanks to": "",
"Controller does not support adaptive trigger control": "",
"Cosmic Red": "",
"Debug": "",
@@ -283,6 +282,7 @@
"The Last of Us": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The device is connected via Bluetooth. Disconnect and reconnect using a USB cable instead.": "",
"The item has been copied to the clipboard.": "",
"This involves temporarily disabling write protection by applying <b>+1.8V</b> to a specific test point on each module.": "",
"This is only for advanced users. If you're not sure what you're doing, please do not attempt it.": "",
"This test checks all controller buttons by requiring you to press each button up to three times.": "",

View File

@@ -125,7 +125,6 @@
"Board Model": "Модель платы",
"This feature is experimental.": "Эта функция экспериментальная.",
"Please let me know if the board model of your controller is not detected correctly.": "Пожалуйста, дайте знать, если модель платы вашего контроллера определена неправильно.",
"Board model detection thanks to": "Определение модели платы благодаря",
"This DualSense controller has outdated firmware.": "Прошивка этого контроллера DualSense устарела.",
"Please update the firmware and try again.": "Пожалуйста, обновите прошивку и попробуйте снова.",
"Joystick Info": "Информация о джойстике",
@@ -160,7 +159,6 @@
"Cannot store data into": "Не удалось сохранить данные",
"Cannot unlock": "Не удалось разблокировать",
"Color": "Цвет",
"Color detection thanks to": "За определение цвета спасибо",
"Controller Info": "Инфо контроллера",
"Debug Info": "Дебаг-информация",
"Debug buttons": "Отладка кнопок",
@@ -214,6 +212,7 @@
"Be gentle to avoid damage.": "",
"Buttons": "",
"Calibration": "",
"Cannot copy text to the clipboard:": "",
"Center": "",
"Center (L1)": "",
"Chroma Indigo": "",
@@ -291,6 +290,7 @@
"The Last of Us": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The device is connected via Bluetooth. Disconnect and reconnect using a USB cable instead.": "",
"The item has been copied to the clipboard.": "",
"This test checks all controller buttons by requiring you to press each button up to three times.": "",
"This test checks the headphone jack functionality.": "",
"This test checks the reliability of the USB port.": "",

View File

@@ -126,7 +126,6 @@
"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",
"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",
@@ -167,7 +166,6 @@
"Chroma Teal": "Kroma Turkuaz",
"Cobalt Blue": "Kobalt Mavisi",
"Color": "Renk",
"Color detection thanks to": "Renk tespiti sayesinde",
"Controller Info": "Denetleyici Bilgisi",
"Cosmic Red": "Kozmik Kırmızı",
"Debug Info": "Hata Ayıklama Bilgisi",
@@ -309,5 +307,7 @@
"tests completed": "Tamamlanan Testler",
"to increase the non-circularity.": "Dairesellikten sapmayı artırmak için.",
"Please connect a DualShock 4, a DualSense, DualSense Edge or VR2 controller to your computer and press Connect.": "Lütfen bir DualShock 4, DualSense, DualSense Edge veya VR2 kontrolcüsünü bilgisayarınıza bağlayın ve Bağlan butonuna basın.",
"Cannot copy text to the clipboard:": "",
"The item has been copied to the clipboard.": "",
"": ""
}
}

View File

@@ -126,7 +126,6 @@
"Board Model": "Модель плати",
"This feature is experimental.": "Ця функція є експериментальною.",
"Please let me know if the board model of your controller is not detected correctly.": "Будь ласка, повідомте, якщо модель плати вашого контролера визначена неправильно.",
"Board model detection thanks to": "Визначення моделі плати завдяки",
"This DualSense controller has outdated firmware.": "Прошивка цього контролера DualSense застаріла.",
"Please update the firmware and try again.": "Будь ласка, оновіть прошивку та спробуйте знову.",
"Joystick Info": "Інформація про джойстик",
@@ -200,7 +199,6 @@
"Cannot unlock": "Не вдалося розблокувати",
"Cobalt Blue": "Кобальтово-синій",
"Color": "Колір",
"Color detection thanks to": "Розпізнавання кольору завдяки",
"Cosmic Red": "Космічний червоний",
"Galactic Purple": "Галактичний пурпуровий",
"God of War Ragnarok": "Обмежена серія God of War: Ragnarok",
@@ -309,5 +307,7 @@
"to increase the non-circularity.": "щоб збільшити неокруглість.",
"Please connect a DualShock 4, a DualSense, DualSense Edge or VR2 controller to your computer and press Connect.": "Під’єднайте контролер DualShock 4, DualSense, DualSense Edge або VR2 до комп’ютера та натисніть «Підключити».",
"The device appears to be a clone. All calibration functionality is disabled.": "Схоже, цей пристрій є підробкою. Усі функції калібрування вимкнено.",
"Cannot copy text to the clipboard:": "",
"The item has been copied to the clipboard.": "",
"": ""
}
}

View File

@@ -127,7 +127,6 @@
"Board Model": "Mẫu bo mạch",
"This feature is experimental.": "Tính năng này mang tính thử nghiệm.",
"Please let me know if the board model of your controller is not detected correctly.": "Nếu mẫu bo mạch của tay cầm không được phát hiện chính xác, vui lòng cho tao biết.",
"Board model detection thanks to": "Phát hiện mẫu bo mạch nhờ",
"This DualSense controller has outdated firmware.": "Tay cầm DualSense này có firmware đã lỗi thời.",
"Please update the firmware and try again.": "Vui lòng cập nhật firmware và thử lại.",
"Joystick Info": "Thông tin Joystick",
@@ -199,7 +198,6 @@
"Cannot store data into": "Không thể lưu dữ liệu vào",
"Cannot unlock": "Không thể mở khóa",
"Color": "Màu sắc",
"Color detection thanks to": "Phát hiện màu sắc nhờ",
"Left Module Barcode": "Mã vạch Mô-đun Trái",
"Right Module Barcode": "Mã vạch Mô-đun Phải",
"left module": "mô-đun trái",
@@ -308,6 +306,8 @@
"skipped": "đã bỏ qua",
"tests completed": "bài kiểm tra đã hoàn thành",
"to increase the non-circularity.": "để tăng độ không tròn.",
"Cannot copy text to the clipboard:": "",
"Please connect a DualShock 4, a DualSense, DualSense Edge or VR2 controller to your computer and press Connect.": "",
"The item has been copied to the clipboard.": "",
"": ""
}

View File

@@ -126,7 +126,6 @@
"Board Model": "主板型号",
"This feature is experimental.": "此功能为实验性质。",
"Please let me know if the board model of your controller is not detected correctly.": "如果没有正确检测您手柄的主板型号,请告诉我。",
"Board model detection thanks to": "主板型号检测功能需要感谢",
"This DualSense controller has outdated firmware.": "该DualSense手柄的固件已过时。",
"Please update the firmware and try again.": "请更新固件后重试。",
"Joystick Info": "摇杆信息",
@@ -198,7 +197,6 @@
"Cannot store data into": "无法将数据存储到",
"Cannot unlock": "无法解锁",
"Color": "颜色",
"Color detection thanks to": "颜色检测由",
"Left Module Barcode": "左侧模块条形码",
"Right Module Barcode": "右侧模块条形码",
"left module": "左侧模块",
@@ -307,7 +305,9 @@
"skipped": "跳过",
"tests completed": "测试已完成",
"to increase the non-circularity.": "增加非圆度",
"Cannot copy text to the clipboard:": "",
"Please connect a DualShock 4, a DualSense, DualSense Edge or VR2 controller to your computer and press Connect.": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The item has been copied to the clipboard.": "",
"": ""
}

View File

@@ -125,7 +125,6 @@
"Board Model": "主機板型號",
"This feature is experimental.": "此功能為實驗性質。",
"Please let me know if the board model of your controller is not detected correctly.": "如果您的手把的主機板型號沒有被正確檢測,請告訴我。",
"Board model detection thanks to": "主機板型號檢測功能需要感謝",
"This DualSense controller has outdated firmware.": "該DualSense手把的韌體已過時。",
"Please update the firmware and try again.": "請更新韌體後重試。",
"Joystick Info": "搖桿資訊",
@@ -193,7 +192,6 @@
"Cannot store data into": "無法將數據存儲到",
"Cannot unlock": "無法解鎖",
"Color": "顏色",
"Color detection thanks to": "顏色檢測由",
"Left Module Barcode": "左側模塊條形碼",
"MCU Unique ID": "MCU唯壹ID",
"Right Module Barcode": "右側模塊條形碼",
@@ -234,6 +232,7 @@
"Add test": "",
"Be gentle to avoid damage.": "",
"Buttons": "",
"Cannot copy text to the clipboard:": "",
"Center": "",
"Center (L1)": "",
"Circularity": "",
@@ -293,6 +292,7 @@
"The <b>Done</b> button will unlock after at most 15 seconds. If you press <b>Done</b> without rotating the sticks, the calibration will be incomplete and you will need to repeat it.": "",
"The device appears to be a clone. All calibration functionality is disabled.": "",
"The device is connected via Bluetooth. Disconnect and reconnect using a USB cable instead.": "",
"The item has been copied to the clipboard.": "",
"This test checks all controller buttons by requiring you to press each button up to three times.": "",
"This test checks the headphone jack functionality.": "",
"This test checks the reliability of the USB port.": "",