mirror of
https://github.com/Lime3DS/Lime3DS
synced 2024-12-25 16:42:39 -06:00
Restore Web tab
This commit is contained in:
parent
f9c96d1b76
commit
fd6ab2da95
39 changed files with 4244 additions and 22 deletions
136
dist/languages/da_DK.ts
vendored
136
dist/languages/da_DK.ts
vendored
|
@ -3583,6 +3583,142 @@ Drag points to change position, or double-click table cells to edit values.</sou
|
||||||
<translation>Engelsk</translation>
|
<translation>Engelsk</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Form</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Citras webservice</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>Ved at give dit brugernavn og token, accepterer du at Citra indsamler yderligere brugsdata, som måske kan indeholde brugeridentificerende information.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Bekræft</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Opret konto</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Token:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Brugernavn:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Hvad er min token?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>Konfiguration af webservicen kan kun ændres mens du ikke er vært af et offentligt rum.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Telemetri</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Del anonym brugsdata med udviklerne af Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Lær mere</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>Telemetri-id:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Generer nyt</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Discord-presence</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Vis kørende spil som din Discord-status</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Lær mere</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Opret bruger</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Hvad er min token?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>Telemetri-id: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Godkender...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Bekræftelse mislykkedes</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/de.ts
vendored
136
dist/languages/de.ts
vendored
|
@ -3585,6 +3585,142 @@ Ziehe Punkte, um ihre Position zu verändern, oder doppelklicke auf Zellen in de
|
||||||
<translation>Englisch</translation>
|
<translation>Englisch</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Form</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Citra Web Service</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>Mit dem Bereitstellen Ihres Nutzernamens und Tokens, erlauben Sie Citra, zusätzliche Nutzungsdaten zu sammeln. Die Nutzungsdaten können auch Daten zur Nutzeridentifikation beinhalten.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Verifizieren</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Registrieren</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Token: </translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Nutzername:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Was ist mein Token?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>Die Web-Service-Konfiguration kann nur geändert werden, wenn kein öffentlicher Raum gehostet wird.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Telemetrie</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Anonyme Nutzungsdaten an das Citra-Team senden</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Mehr erfahren</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>Telemetrie-ID:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Regenerieren</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Discord Presence</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Aktuelles Spiel in Ihrem Discordstatus anzeigen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Mehr erfahren</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Anmelden</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Was ist mein Token?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>Nicht spezifiziert</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>Telemetrie-ID: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>Token nicht verifiziert</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation>Der Token wurde nicht verifiziert. Die Änderung zu dem Token wurde nicht gespeichert.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Verifizieren...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Verifizierung fehlgeschlagen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation>Verifizierung fehlgeschlagen. Stellen Sie sicher, dass Sie sowohl Ihren Token korrekt eingegeben haben und dass Sie mit dem Internet verbunden sind.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/el.ts
vendored
136
dist/languages/el.ts
vendored
|
@ -3584,6 +3584,142 @@ Drag points to change position, or double-click table cells to edit values.</sou
|
||||||
<translation>Αγγλικά</translation>
|
<translation>Αγγλικά</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Φόρμα</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Citra Web Service</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>Παρέχοντας το όνομα χρήστη και το αναγνωριστικό σας, επιτρέπετε στο Citra να συλλέξει περισσότερα δεδομένα χρήσης, που ενδέχεται να περιέχουν αναγνωριστικές πληροφορίες χρήστη.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Επαλήθευση</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Εγγραφή</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Αναγνωριστικό: </translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Όνομα χρήστη:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Ποιο είναι το αναγνωριστικό μου;</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>Η ρύθμιση της διαδικτυακής υπηρεσίας μπορεί να αλλάξει μόνο όταν δεν είναι σε λειτουργία κάποιο δημόσιο δωμάτιο.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Τηλεμετρία</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Κοινοποίηση ανώνυμων δεδομένων χρήσης στην ομάδα του Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Μάθετε περισσότερα</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>ID τηλεμετρίας:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Επαναδημιουργία</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Παρουσία Discord</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Εμφάνιση τρέχοντος παιχνιδιού στην κατάσταση Discord σας</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Μάθετε περισσότερα</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Εγγραφή</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Ποιο είναι το αναγνωριστικό μου;</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>Δεν έχει καθοριστεί</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>ID τηλεμετρίας: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>Μη επαληθευμένο αναγνωριστικό</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation>Το αναγνωριστικό δεν επαληθεύτηκε. Η αλλαγή στο αναγνωριστικό σας δεν έχει αποθηκευτεί.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Επαλήθευση...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Αποτυχία επαλήθευσης</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation>Αποτυχία επαλήθευσης. Βεβαιωθείτε ότι έχετε εισαγάγει σωστά το αναγνωστικό σας και ότι λειτουργεί η σύνδεσή σας στο διαδίκτυο.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/es_ES.ts
vendored
136
dist/languages/es_ES.ts
vendored
|
@ -3585,6 +3585,142 @@ Mueve los puntos para cambiar la posición, o haz doble click en las celdas de l
|
||||||
<translation>Inglés (English)</translation>
|
<translation>Inglés (English)</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Formulario</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Servicio Web de Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>Al dar tu nombre de usuario y tu token, das tu consentimiento a que Citra recopile datos de uso adicionales, que pueden incluir información que identifique al usuario.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Verificar</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Registrarse</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Token:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Nombre de usuario:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>¿Cuál es mi token?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>La configuración del Servicio Web sólo puede ser cambiada cuando una sala pública no está siendo alojada.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Telemetría</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Compartir datos de uso anónimos con el equipo de Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Más Información</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>ID de Telemetría:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Regenerar</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Presencia en Discord</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Mostrar Juego Actual en el Estado de Discord</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Más información</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Regístrate</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">¿Cuál es mi token?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>Sin especificar</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>ID de Telemetría: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>Token no verificado</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation>El token no ha sido verificado. El cambio a tu token no se ha guardado.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Verificando...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>La verificación falló</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation>La verificación ha fallado. Comprueba que has introducido tu token correctamente y que tu conexión a Internet funcione correctamente.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/fi.ts
vendored
136
dist/languages/fi.ts
vendored
|
@ -3583,6 +3583,142 @@ Drag points to change position, or double-click table cells to edit values.</sou
|
||||||
<translation>Englanti</translation>
|
<translation>Englanti</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Muot</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Citran Nettipalvelu</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Todenna</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Rekisteröidy</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Avain:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Käyttäjänimi</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Mikä on avaimeni?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Telemetria</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Jaa anonyymejä käyttötietoja Citran tekiöiden kanssa</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Opi lisää</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>Telemetria tunnus:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Uudista</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Discord läsnäolo</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Näytä nykyinen peli Discord tilassa</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Lue lisää</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Kirjaudu</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Mikä on avaimeni?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>Telemetria tunnus: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Varmennetaan...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Varmennus epäonnistui</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/fr.ts
vendored
136
dist/languages/fr.ts
vendored
|
@ -3585,6 +3585,142 @@ Glissez les points pour modifier la position, ou double-cliquez les cellules pou
|
||||||
<translation>Anglais</translation>
|
<translation>Anglais</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Forme</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Service web de Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>En fournissant votre nom d'utilisateur et votre jeton, vous acceptez d'autoriser Citra à collecter des données d'utilisation supplémentaires, qui peuvent inclure des informations d'identification de l'utilisateur.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Vérifier</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>S'inscrire</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Jeton :</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Nom d'utilisateur</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Quel est mon jeton ?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>La configuration du service Web ne peut être modifiée que si un salon publique n'est pas en cours d'hébergement.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Télémétrie</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Partage des données d'utilisation anonymes avec l'équipe Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>En savoir plus</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>ID de télémétrie :</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Régénérer</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Présence sur Discord</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Afficher votre jeu en cours dans votre statut Discord</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">En savoir plus</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">S'inscrire</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Quel est mon jeton ?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>Non spécifié</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>ID de télémétrie: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>Jeton non vérifié</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation>Jeton non vérifié. La modification de votre jeton n'a pas été sauvegardée.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Vérification en cours...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Échec de la vérification</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation>Échec de la vérification. Vérifiez que le jeton a été écris correctement et que votre connexion internet fonctionne.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
184
dist/languages/hu_HU.ts
vendored
184
dist/languages/hu_HU.ts
vendored
|
@ -3582,6 +3582,190 @@ Drag points to change position, or double-click table cells to edit values.</sou
|
||||||
<translation>Angol</translation>
|
<translation>Angol</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Forma</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Citra Web-szolgáltatás</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>A felhasználóneved és tokened megadásával, belegyezel abba, hogy a Citra használati adatokat gyűjtsön, ami felhasználó azonosító információt tartalmazhat.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Ellenőrzés</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Regisztráció</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Token:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Felhasználónév:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Mi a tokenem?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Telemetria</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Névtelen használati adat megosztása a Citra csapatával</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Tudj meg többet</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>Telemetria ID:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Regeneráció</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Discord jelenlét</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Jelenlegi játék megjelenítése a Discord állapotodban</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Tudj meg többet</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Regisztráció</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Mi a tokenem?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>Nem meghatározott</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>Telemetria ID: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>Token nincs megerősítve</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation>Token nincs megerősítve. A változtatások nem lettek elmentve.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Megerősítés...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Ellenőrzés sikertelen</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation>Sikertelen megerősítés. Győződj meg róla, hogy helyesen írtad be a tokened, és van internetkapcsolatod.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>DirectConnect</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/multiplayer/direct_connect.ui" line="14"/>
|
||||||
|
<source>Direct Connect</source>
|
||||||
|
<translation>Közvetlen Kapcsolódás</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/multiplayer/direct_connect.ui" line="47"/>
|
||||||
|
<source>Server Address</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/multiplayer/direct_connect.ui" line="54"/>
|
||||||
|
<source><html><head/><body><p>Server address of the host</p></body></html></source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/multiplayer/direct_connect.ui" line="64"/>
|
||||||
|
<source>Port</source>
|
||||||
|
<translation>Port</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/multiplayer/direct_connect.ui" line="71"/>
|
||||||
|
<source><html><head/><body><p>Port number the host is listening on</p></body></html></source>
|
||||||
|
<translation><html><head/><body><p>Annak a portnak a száma, amire a gazda figyel</p></body></html></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/multiplayer/direct_connect.ui" line="77"/>
|
||||||
|
<source>24872</source>
|
||||||
|
<translation>24872</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/multiplayer/direct_connect.ui" line="97"/>
|
||||||
|
<source>Nickname</source>
|
||||||
|
<translation>Becenév</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/multiplayer/direct_connect.ui" line="111"/>
|
||||||
|
<source>Password</source>
|
||||||
|
<translation>Jelszó</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/multiplayer/direct_connect.ui" line="153"/>
|
||||||
|
<source>Connect</source>
|
||||||
|
<translation>Kapcsolás</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnectWindow</name>
|
<name>DirectConnectWindow</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
137
dist/languages/id.ts
vendored
137
dist/languages/id.ts
vendored
|
@ -3584,6 +3584,143 @@ Drag points to change position, or double-click table cells to edit values.</sou
|
||||||
<translation>Inggris</translation>
|
<translation>Inggris</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Formulir</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Layanan Web Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>Dengan memberikan nama user dan token, Anda menyetujui Citra untuk mengumpulkan data penggunaan tambahan, mungkin termaksud informasi identifikasi pengguna.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Verifikasi</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Daftar</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Token: </translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Nama User:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Apa token Saya?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>Konfigurasi Servis Web hanya bisa di ubah ketika ruangan publik sedang tidak digunakan</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Telemetri</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Bagikan data penggunaan anonim dengan tim Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Pelajari lebih Banyak</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>ID Telemetri:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Memperbarui</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Status Discord</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Tampilkan Game Saat Ini ke Status Discord Anda</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Pelajari lebih banyak</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Daftar</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Apa token saya ?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>Tidak di spesifikasi</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>ID Telemetri: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>Token tidak ter-verifikasi</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation>Token tidak di verifikasi.
|
||||||
|
Perubahan pada token anda belum tersimpan.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Mem-verifikasi...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Verifikasi gagal</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation>Verifikasi gagal. Pastikan nama user dan token yang Anda masukkan benar dan koneksi internet Anda menyala.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/it.ts
vendored
136
dist/languages/it.ts
vendored
|
@ -3585,6 +3585,142 @@ Trascina i punti per cambiarne la posizione, o fai doppio clic sulla tabella per
|
||||||
<translation>Inglese</translation>
|
<translation>Inglese</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Modulo</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Servizio web di Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>Fornendo i tuoi nome utente e token, permetti a Citra di raccogliere dati di utilizzo aggiuntivi, che potrebbero contenere informazioni identificative dell'utente.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Verifica</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Registrati</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Token:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Nome utente</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Qual è il mio token?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>La configurazione del servizio web può essere cambiata solo quando non si sta ospitando una stanza pubblica.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Telemetria</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Condividi dati anonimi sull'utilizzo con il team di Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Per saperne di più</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>ID telemetria:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Rigenera</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Discord Presence</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Mostra il gioco attuale nel tuo stato di Discord</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Per saperne di più</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Registrati</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Qual è il mio token?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>Non specificato</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>ID telemetria: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>Token non verificato</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation>Il token non è stato verificato. La modifica al token non è stata salvata.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Verifica...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Verifica fallita</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation>Verifica fallita. Controlla di aver inserito il token correttamente, e che la tua connessione a internet sia funzionante.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/ja_JP.ts
vendored
136
dist/languages/ja_JP.ts
vendored
|
@ -3587,6 +3587,142 @@ Drag points to change position, or double-click table cells to edit values.</sou
|
||||||
<translation>英語</translation>
|
<translation>英語</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>フォーム</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Citra Webサービス</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>ユーザー名とトークンを提供することにより、Citraへの追加の情報データの収集(ユーザー識別情報含む)へ同意したものとします。</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>確認</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>ユーザー登録</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>トークン</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>ユーザー名</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>トークンの取得</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>Web設定はPublicなルームをホスティング中は変更できません</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>テレメトリーの設定</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Citraチームに匿名で使用データを共有する</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>もっと詳しく</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>テレメトリーID</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>再作成</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Discord Presence</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>プレイ中のゲームをDiscordに表示</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">もっと詳しく</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">サインアップ</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">トークンの取得</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>未指定</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>テレメトリーID: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>トークン未検証</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation>トークンが未検証です。トークンの変更は保存されていません。</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>検証中…</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>検証失敗</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation>検証に失敗しました。トークンが正しく入力されているか、ネット接続が正常に機能しているか確認してください。</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/ko_KR.ts
vendored
136
dist/languages/ko_KR.ts
vendored
|
@ -3585,6 +3585,142 @@ Drag points to change position, or double-click table cells to edit values.</sou
|
||||||
<translation>English</translation>
|
<translation>English</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>종류</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Citra 웹 서비스</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>사용자 이름과 토큰을 제공하므로써 Citra가 사용자 식별 정보를 포함한 추가 사용 데이터를 수집하도록 허용하는 데 동의하게 됩니다.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>인증</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>가입</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>토큰:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>사용자 이름:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>나의 토큰이 무엇인가요?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>공개 방이 호스팅되지 않을 때만 웹 서비스 설정을 변경할 수 있습니다.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>텔레메트리</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Citra팀과 익명 사용 데이터 공유하겠습니다</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>자세히 알아보기</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>텔레메트리 ID:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>재생성</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>디스코드 있음</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>사용자의 디스코드 상태에 현재 게임 표시하기</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">자세히 알아보기</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">가입</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">나의 토큰이 무엇인가요?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>불특정</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>텔레메트리 ID: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>토큰이 확인되지 않음</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation>토큰이 확인되지 않았습니다. 토큰 변경 사항이 저장되지 않을 것입니다.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>인증중...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>인증 실패</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation>인증에 실패했습니다. 토큰을 올바르게 입력했으며 인터넷 연결이 작동하는지 확인하십시오.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/lt_LT.ts
vendored
136
dist/languages/lt_LT.ts
vendored
|
@ -3581,6 +3581,142 @@ Drag points to change position, or double-click table cells to edit values.</sou
|
||||||
<translation>Anglų k.</translation>
|
<translation>Anglų k.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Forma</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>„Citra“ interneto tarnyba</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>Įrašydami jūsų vartotojo vardą ir simbolinį ID, jūs sutinkate, kad „Citra“ rinktų papildomus naudojimo duomenis, tarp kurių gali būti informacija, skirta atpažinti vartotoją.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Patikrinti</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Užsiregistruoti</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Simbolinis ID:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Vartotojo vardas:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Koks yra mano simbolinis ID?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Telemetrija</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Pasidalinti anonimiškais naudojimo duomenimis su „Citra“ komanda</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Sužinoti daugiau</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>Telemetrijos ID:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Regeneruoti</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Discord nustatymai</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Rodyti jūsų žaidžiamą žaidimą Discord'e</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Sužinoti daugiau</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Užsiregistruoti</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Koks yra mano simbolinis ID?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>Telemetrijos ID: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Tikrinama...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Tikrinimas nepavyko</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/nb.ts
vendored
136
dist/languages/nb.ts
vendored
|
@ -3584,6 +3584,142 @@ Dra punkter for å endre posisjon, eller dobbeltklikk på tabellceller for å re
|
||||||
<translation>Engelsk</translation>
|
<translation>Engelsk</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Form</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Citra Web Tjenester</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>Ved å gi brukernavn og nøkkel, samtykker du i å tillate Citra å samle inn brukerdata, som kan inneholde bruker indentifiserende informasjon.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Verifisere</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Registrer deg</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Nøkkel: </translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Brukernavn:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Hva er min nøkkel?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>Web Service-konfigurasjon kan bare endres når et offentlig rom ikke blir hostet.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Telemetri</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Del anonyme brukerdata med Citra-teamet</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Lær mer</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>Telemetri ID:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Regenerere</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Discord tilstedeværelse</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Vis Gjeldende Spill i Discord Statusen din.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Lær mer</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Registrer deg</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Hva er min nøkkel?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>Uspesifisert</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>Telemetri ID: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>Nøkkel ikke bekreftet</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation>Nøkkel ble ikke bekreftet. Endringen til nøkelen ditt er ikke lagret.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Verifiserer...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Verifikasjon misslyktes</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation>Bekreftelsen mislyktes. Sjekk at du har lagt inn nøkkelen riktig, og at internettforbindelsen din fungerer.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/nl.ts
vendored
136
dist/languages/nl.ts
vendored
|
@ -3585,6 +3585,142 @@ Sleep punten om de positie te wijzigen of dubbelklik op tabelcellen om waarden t
|
||||||
<translation>Engels</translation>
|
<translation>Engels</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Formulier</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Citra-webdienst</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>Door het voorzien van je gebruikersnaam en token, ga je akkoord dat Citra aanvullende gebruiksdata verzameld, waaronder informatie waarmee de gebruiker zou kunnen worden geïdentificeerd.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Verifiëren </translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Registreren</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Token:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Gebruikersnaam:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Wat is mijn token?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>De webserviceconfiguratie kan alleen worden gewijzigd als er geen publieke ruimte wordt gehost.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Telemetrie</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Deel anonieme gebruiksdata met het Citra team</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Meer leren</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>Telemetrie ID:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Regenereren</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Discord Presence</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Toon Huidige Spel in je Discord Status</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Meer leren</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Registreren</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Wat is mijn token?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>Ongespecificeerd</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>Telemetrie ID: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>Token niet geverifieerd</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation>Token is niet geverifieerd. De wijziging van uw token is niet opgeslagen.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Verifiëren...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Verificatie mislukt</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation>Verificatie mislukt. Controleer of je je token correct hebt ingevoerd en of uw internetverbinding werkt.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/pl_PL.ts
vendored
136
dist/languages/pl_PL.ts
vendored
|
@ -3583,6 +3583,142 @@ Drag points to change position, or double-click table cells to edit values.</sou
|
||||||
<translation>Angielski (English)</translation>
|
<translation>Angielski (English)</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Formularz</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Usługa Sieciowa Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>Poprzez wprowadzenia nazwy użytkownika i tokenu, wyrażasz zgodę na wysłanie dodatkowych danych do Citra. Dane te mogą zawierać informacje identyfikujące użytkownika.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Zweryfikuj</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Zarejestruj się</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Token: </translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Nazwa Użytkownika:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Czym jest mój token?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Telemetria</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Udostępnij anonimowe dane użytkowania zespołowi Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Dowiedz się więcej</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>ID Telemetrii:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Regeneruj</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Widoczność na Discordzie</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Pokaż obecnie włączoną grę w statusie na Discrodzie</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Dowiedz się więcej</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Czym jest mój token?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>ID Telemetrii: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>Token nie zweryfikowany</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Weryfikowanie...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Weryfikacja nieudana</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/pt_BR.ts
vendored
136
dist/languages/pt_BR.ts
vendored
|
@ -3585,6 +3585,142 @@ Arraste os pontos para alterar a posição ou clique duas vezes nas células da
|
||||||
<translation>Inglês (English)</translation>
|
<translation>Inglês (English)</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Formulário</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Citra Web Service</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>Ao informar o seu usuário e token, você concorda em permitir ao Citra recolher dados de utilização adicionais, que podem incluir informações de identificação de usuário.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Verificar</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Registrar-se</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Token:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Nome de usuário</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Qual é o meu token?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>As configurações do Web Service não podem ser alteradas quando uma sala pública criada por você estiver em operação.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Telemetria</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Compartilhar anonimamente dados de utilização com a equipe do Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Saiba mais</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>ID de telemetria:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Gerar um novo</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Presença no Discord</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Mostrar o jogo atual no seu perfil do Discord</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Saber mais</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Registrar-se</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Qual é o meu token?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>Não especificado</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>ID de telemetria: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>Token não verificado</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation>O token não foi verificado. A alteração no seu token não foi salva.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Verificando...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Falha na verificação</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation>Falha na verificação. Verifique se o token foi inserido corretamente e se a conexão à internet está funcionando.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/ro_RO.ts
vendored
136
dist/languages/ro_RO.ts
vendored
|
@ -3584,6 +3584,142 @@ Drag points to change position, or double-click table cells to edit values.</sou
|
||||||
<translation>Engleză</translation>
|
<translation>Engleză</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Model</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Citra Serviciu Web</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>Furnizând numele de utilizator și token-ul, sunteți de acord să permiți companiei Citra să colecteze date suplimentare de utilizare, care pot include informații de identificare a utilizatorului.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Verificați</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Înregistrare</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Token: </translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Nume de utilizator:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Care este token-ul meu?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>Configurarea de săli publice poate fi modificată doar când o sală publică nu este găzduită.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Telemetrie</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Distribuiți date de utilizare anonime cu echipa Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Mai multe informații</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>ID telemetrie:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Regenerează</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Prezență pe Discord</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Afișează Jocul Prezent pe Statusul Discord</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Mai multe informații</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Înregistrare</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Care este token-ul meu?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>Nespecificat</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>ID de Telemetrie: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Verificănd...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Verificare eșuată</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
137
dist/languages/ru_RU.ts
vendored
137
dist/languages/ru_RU.ts
vendored
|
@ -3587,6 +3587,143 @@ Drag points to change position, or double-click table cells to edit values.</sou
|
||||||
<translation>Английский</translation>
|
<translation>Английский</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Форма</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Веб-сервис Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>Отправка имени пользователя и токена означает согласие на сбор приложением Citra дополнительных данных об использовании,
|
||||||
|
которые могут включать сведения, идентифицирующие пользователя.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Подтвердить</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Регистрация</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Токен:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Имя пользователя:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Что такое токен?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>Настройки веб-сервиса можно изменять только в том случае, если на компьютере не размещается публичная комната чата.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Телеметрия</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Поделиться анонимными данными использования с командой Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Дополнительная информация</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>ID телеметрии:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Пересоздать</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Интеграция с Discord</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Показывать текущую игру в статусе Discord</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Дополнительная информация</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Зарегистрироваться</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Что такое токен?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>Не указано</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>ID телеметрии: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>Токен не проверен</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation>Токен не был проверен. Изменения к токену сохранены не были.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Проверка...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Сбой проверки</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation>Сбой проверки. Убедитесь в том, что токен введён верно и подключение к Интернету работает.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/tr_TR.ts
vendored
136
dist/languages/tr_TR.ts
vendored
|
@ -3583,6 +3583,142 @@ Drag points to change position, or double-click table cells to edit values.</sou
|
||||||
<translation>İngilizce</translation>
|
<translation>İngilizce</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Form</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Citra Ağ Servisi</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>Kullanıcı adınızı ve tokeninizi sağlayarak Citra'nın ek kullanım verilerini toplamasına izin vermeyi kabul ediyorsunuz, bu kullanıcı tanımlayıcı bilgileri de içerebilir.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Doğrula</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Kaydol</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Token:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Kullanıcı Adı:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Tokenim nedir?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>Web servisi yapılandırması yalnızca Herkese Açık Oda sunulmadığı sürece değiştirilebilir.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Telemetri</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Citra ekibiyle anonim kullanım verilerini paylaş</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Daha fazla bilgi edinin</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>Telemetri ID:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Yeniden Oluştur</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Discord Görünümü</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Şu Anki Oyunu Discord Durumunda Göster</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Daha fazla bilgi edinin</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Kaydol</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Tokenim nedir?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>Belirtilmemiş</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>Telemetri ID: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>Token doğrulanmadı</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation>Token doğrulanmadı. Token'inizdeki değişiklikler kaydedilmeyecektir.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Doğrulanıyor...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Doğrulama başarısız oldu</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation>Doğrulama başarısız oldu. Token'inizi doğru girdiğinizden ve internet bağlantınızın çalıştığından emin olun.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/vi_VN.ts
vendored
136
dist/languages/vi_VN.ts
vendored
|
@ -3583,6 +3583,142 @@ Drag points to change position, or double-click table cells to edit values.</sou
|
||||||
<translation>Tiếng Anh</translation>
|
<translation>Tiếng Anh</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Định dạng</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Dịch vụ Web Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>Bằng việc cung cấp tên tài khoản và token, bạn đã cho phép Citra thu thập các thông tin liên quan đến giả lập, cũng như bao gồm các thông tin định danh người dùng.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>Xác thực</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>Đăng ký</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>Token: </translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>Tên người dùng:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>Token của tôi là gì?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>Thiết lập cho Dịch vụ web chỉ thay đổi được khi đang không tổ chức phòng công khai nào.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>Theo dõi từ xa</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>Gửi các dữ liệu sử dụng nặc danh cho đội ngũ Citra</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>Tìm hiểu thêm</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>Mã theo dõi:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>Tạo mới</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>Hiển thị game đang chơi trên trạng thái Discord</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Tìm hiểu thêm</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Đăng ký</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">Token là gì?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>Chưa định nghĩa</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>Mã theo dõi: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>Token không được xác thực</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation>Token này chưa được xác thực. Thay đổi về token chưa được lưu.</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>Đang xác thực...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>Xác thực thất bại</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation>Xác thực thất bại. Vui lòng kiểm tra token đã nhập vào là đúng, và hiện thiết bị đang kết nối đến mạng.</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/zh_CN.ts
vendored
136
dist/languages/zh_CN.ts
vendored
|
@ -3585,6 +3585,142 @@ Drag points to change position, or double-click table cells to edit values.</sou
|
||||||
<translation>英语</translation>
|
<translation>英语</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>格式</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Citra 网络服务</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>提供您的用户名和令牌意味着您同意让 Citra 收集额外的使用数据,其中可能包括用户识别信息。</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>验证</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>注册</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>令牌:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>用户名:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>我的令牌是?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>您只能在公共房间未被创建时更改网络服务设置。</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>使用数据共享</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>与 Citra 团队共享匿名使用数据</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>了解更多</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>数据 ID:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>重新生成</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Discord 状态</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>在您的 Discord 状态中显示当前游戏</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">了解更多</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">注册</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">我的令牌是?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation>未指定</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>数据 ID: 0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation>您的令牌未被验证</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation>令牌未验证。您对令牌的更改未被保存。</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>验证中...</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>验证失败</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation>验证失败。请检查您输入的令牌并确保您的网络连接正常。</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
136
dist/languages/zh_TW.ts
vendored
136
dist/languages/zh_TW.ts
vendored
|
@ -3584,6 +3584,142 @@ Drag points to change position, or double-click table cells to edit values.</sou
|
||||||
<translation>English</translation>
|
<translation>English</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>ConfigureWeb</name>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="14"/>
|
||||||
|
<source>Form</source>
|
||||||
|
<translation>Form</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="22"/>
|
||||||
|
<source>Citra Web Service</source>
|
||||||
|
<translation>Citra 網路服務</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="28"/>
|
||||||
|
<source>By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</source>
|
||||||
|
<translation>提供使用者名稱和權杖,即代表您同意讓 Citra 收集額外的使用資料,其中可能包含使用者辨識資訊。</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="46"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="140"/>
|
||||||
|
<source>Verify</source>
|
||||||
|
<translation>驗證</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="53"/>
|
||||||
|
<source>Sign up</source>
|
||||||
|
<translation>註冊</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="63"/>
|
||||||
|
<source>Token: </source>
|
||||||
|
<translation>權杖:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="73"/>
|
||||||
|
<source>Username: </source>
|
||||||
|
<translation>使用者名稱:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="90"/>
|
||||||
|
<source>What is my token?</source>
|
||||||
|
<translation>什麼是 Citra 權杖?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="115"/>
|
||||||
|
<source>Web Service configuration can only be changed when a public room isn't being hosted.</source>
|
||||||
|
<translation>您不能在公共房間建立時更改網路服務設定。</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="125"/>
|
||||||
|
<source>Telemetry</source>
|
||||||
|
<translation>遠端遙測</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="131"/>
|
||||||
|
<source>Share anonymous usage data with the Citra team</source>
|
||||||
|
<translation>分享匿名使用資料給 Citra 團隊</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="138"/>
|
||||||
|
<source>Learn more</source>
|
||||||
|
<translation>了解更多</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="147"/>
|
||||||
|
<source>Telemetry ID:</source>
|
||||||
|
<translation>遙測 ID:</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="163"/>
|
||||||
|
<source>Regenerate</source>
|
||||||
|
<translation>更換 ID</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="177"/>
|
||||||
|
<source>Discord Presence</source>
|
||||||
|
<translation>Discord 狀態</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.ui" line="183"/>
|
||||||
|
<source>Show Current Game in your Discord Status</source>
|
||||||
|
<translation>在 Discord 狀態中顯示正在玩的遊戲</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="58"/>
|
||||||
|
<source><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">Learn more</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/entry/telemetry-and-why-thats-a-good-thing/'><span style="text-decoration: underline; color:#039be5;">了解更多</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="66"/>
|
||||||
|
<source><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">Sign up</span></a></source>
|
||||||
|
<translation><a href='https://profile.citra-emu.org/'><span style="text-decoration: underline; color:#039be5;">註冊</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="70"/>
|
||||||
|
<source><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">What is my token?</span></a></source>
|
||||||
|
<translation><a href='https://citra-emu.org/wiki/citra-web-service/'><span style="text-decoration: underline; color:#039be5;">什麼是 Citra 權杖?</span></a></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="76"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="151"/>
|
||||||
|
<source>Unspecified</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="87"/>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="111"/>
|
||||||
|
<source>Telemetry ID: 0x%1</source>
|
||||||
|
<translation>遙測 ID:0x%1</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="103"/>
|
||||||
|
<source>Token not verified</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="104"/>
|
||||||
|
<source>Token was not verified. The change to your token has not been saved.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="130"/>
|
||||||
|
<source>Verifying...</source>
|
||||||
|
<translation>驗證中…</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="152"/>
|
||||||
|
<source>Verification failed</source>
|
||||||
|
<translation>驗證失敗</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../../src/lime_qt/configuration/configure_web.cpp" line="153"/>
|
||||||
|
<source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>DirectConnect</name>
|
<name>DirectConnect</name>
|
||||||
<message>
|
<message>
|
||||||
|
|
|
@ -130,6 +130,8 @@ add_library(lime_common STATIC
|
||||||
string_util.cpp
|
string_util.cpp
|
||||||
string_util.h
|
string_util.h
|
||||||
swap.h
|
swap.h
|
||||||
|
telemetry.cpp
|
||||||
|
telemetry.h
|
||||||
texture.cpp
|
texture.cpp
|
||||||
texture.h
|
texture.h
|
||||||
thread.cpp
|
thread.cpp
|
||||||
|
|
|
@ -1 +1,92 @@
|
||||||
|
// Copyright 2017 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstring>
|
||||||
|
#include "common/arch.h"
|
||||||
|
#include "common/assert.h"
|
||||||
|
#include "common/scm_rev.h"
|
||||||
|
#include "common/telemetry.h"
|
||||||
|
|
||||||
|
#if CITRA_ARCH(x86_64)
|
||||||
|
#include "common/x64/cpu_detect.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace Common::Telemetry {
|
||||||
|
|
||||||
|
void FieldCollection::Accept(VisitorInterface& visitor) const {
|
||||||
|
for (const auto& field : fields) {
|
||||||
|
field.second->Accept(visitor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void FieldCollection::AddField(std::unique_ptr<FieldInterface> field) {
|
||||||
|
fields[field->GetName()] = std::move(field);
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
void Field<T>::Accept(VisitorInterface& visitor) const {
|
||||||
|
visitor.Visit(*this);
|
||||||
|
}
|
||||||
|
|
||||||
|
template class Field<bool>;
|
||||||
|
template class Field<double>;
|
||||||
|
template class Field<float>;
|
||||||
|
template class Field<u8>;
|
||||||
|
template class Field<u16>;
|
||||||
|
template class Field<u32>;
|
||||||
|
template class Field<u64>;
|
||||||
|
template class Field<s8>;
|
||||||
|
template class Field<s16>;
|
||||||
|
template class Field<s32>;
|
||||||
|
template class Field<s64>;
|
||||||
|
template class Field<std::string>;
|
||||||
|
template class Field<const char*>;
|
||||||
|
template class Field<std::chrono::microseconds>;
|
||||||
|
|
||||||
|
void AppendBuildInfo(FieldCollection& fc) {
|
||||||
|
const bool is_git_dirty{std::strstr(Common::g_scm_desc, "dirty") != nullptr};
|
||||||
|
fc.AddField(FieldType::App, "Git_IsDirty", is_git_dirty);
|
||||||
|
fc.AddField(FieldType::App, "Git_Branch", Common::g_scm_branch);
|
||||||
|
fc.AddField(FieldType::App, "Git_Revision", Common::g_scm_rev);
|
||||||
|
fc.AddField(FieldType::App, "BuildDate", Common::g_build_date);
|
||||||
|
fc.AddField(FieldType::App, "BuildName", Common::g_build_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AppendCPUInfo(FieldCollection& fc) {
|
||||||
|
#if CITRA_ARCH(x86_64)
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_Model", Common::GetCPUCaps().cpu_string);
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_BrandString", Common::GetCPUCaps().brand_string);
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_Extension_x64_AES", Common::GetCPUCaps().aes);
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_Extension_x64_AVX", Common::GetCPUCaps().avx);
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_Extension_x64_AVX2", Common::GetCPUCaps().avx2);
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_Extension_x64_AVX512", Common::GetCPUCaps().avx512);
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_Extension_x64_BMI1", Common::GetCPUCaps().bmi1);
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_Extension_x64_BMI2", Common::GetCPUCaps().bmi2);
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_Extension_x64_FMA", Common::GetCPUCaps().fma);
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_Extension_x64_FMA4", Common::GetCPUCaps().fma4);
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_Extension_x64_SSE", Common::GetCPUCaps().sse);
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_Extension_x64_SSE2", Common::GetCPUCaps().sse2);
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_Extension_x64_SSE3", Common::GetCPUCaps().sse3);
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_Extension_x64_SSSE3", Common::GetCPUCaps().ssse3);
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_Extension_x64_SSE41", Common::GetCPUCaps().sse4_1);
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_Extension_x64_SSE42", Common::GetCPUCaps().sse4_2);
|
||||||
|
#else
|
||||||
|
fc.AddField(FieldType::UserSystem, "CPU_Model", "Other");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void AppendOSInfo(FieldCollection& fc) {
|
||||||
|
#ifdef __APPLE__
|
||||||
|
fc.AddField(FieldType::UserSystem, "OsPlatform", "Apple");
|
||||||
|
#elif defined(_WIN32)
|
||||||
|
fc.AddField(FieldType::UserSystem, "OsPlatform", "Windows");
|
||||||
|
#elif defined(__linux__) || defined(linux) || defined(__linux)
|
||||||
|
fc.AddField(FieldType::UserSystem, "OsPlatform", "Linux");
|
||||||
|
#else
|
||||||
|
fc.AddField(FieldType::UserSystem, "OsPlatform", "Unknown");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace Common::Telemetry
|
||||||
|
|
|
@ -1 +1,199 @@
|
||||||
|
// Copyright 2017 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <chrono>
|
||||||
|
#include <map>
|
||||||
|
#include <memory>
|
||||||
|
#include <string>
|
||||||
|
#include "common/common_types.h"
|
||||||
|
|
||||||
|
namespace Common::Telemetry {
|
||||||
|
|
||||||
|
/// Field type, used for grouping fields together in the final submitted telemetry log
|
||||||
|
enum class FieldType : u8 {
|
||||||
|
None = 0, ///< No specified field group
|
||||||
|
App, ///< Citra application fields (e.g. version, branch, etc.)
|
||||||
|
Session, ///< Emulated session fields (e.g. title ID, log, etc.)
|
||||||
|
Performance, ///< Emulated performance (e.g. fps, emulated CPU speed, etc.)
|
||||||
|
UserFeedback, ///< User submitted feedback (e.g. star rating, user notes, etc.)
|
||||||
|
UserConfig, ///< User configuration fields (e.g. emulated CPU core, renderer, etc.)
|
||||||
|
UserSystem, ///< User system information (e.g. host CPU type, RAM, etc.)
|
||||||
|
};
|
||||||
|
|
||||||
|
struct VisitorInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface class for telemetry data fields.
|
||||||
|
*/
|
||||||
|
class FieldInterface : NonCopyable {
|
||||||
|
public:
|
||||||
|
virtual ~FieldInterface() = default;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Accept method for the visitor pattern.
|
||||||
|
* @param visitor Reference to the visitor that will visit this field.
|
||||||
|
*/
|
||||||
|
virtual void Accept(VisitorInterface& visitor) const = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the name of this field.
|
||||||
|
* @returns Name of this field as a string.
|
||||||
|
*/
|
||||||
|
virtual const std::string& GetName() const = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a telemetry data field, i.e. a unit of data that gets logged and submitted to our
|
||||||
|
* telemetry web service.
|
||||||
|
*/
|
||||||
|
template <typename T>
|
||||||
|
class Field : public FieldInterface {
|
||||||
|
public:
|
||||||
|
Field(FieldType type, std::string name, T value)
|
||||||
|
: name(std::move(name)), type(type), value(std::move(value)) {}
|
||||||
|
|
||||||
|
Field(const Field&) = default;
|
||||||
|
Field& operator=(const Field&) = default;
|
||||||
|
|
||||||
|
Field(Field&&) = default;
|
||||||
|
Field& operator=(Field&& other) = default;
|
||||||
|
|
||||||
|
void Accept(VisitorInterface& visitor) const override;
|
||||||
|
|
||||||
|
[[nodiscard]] const std::string& GetName() const override {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the type of the field.
|
||||||
|
*/
|
||||||
|
[[nodiscard]] FieldType GetType() const {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the value of the field.
|
||||||
|
*/
|
||||||
|
[[nodiscard]] const T& GetValue() const {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
[[nodiscard]] bool operator==(const Field& other) const {
|
||||||
|
return (type == other.type) && (name == other.name) && (value == other.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
[[nodiscard]] bool operator!=(const Field& other) const {
|
||||||
|
return !operator==(other);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::string name; ///< Field name, must be unique
|
||||||
|
FieldType type{}; ///< Field type, used for grouping fields together
|
||||||
|
T value; ///< Field value
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Collection of data fields that have been logged.
|
||||||
|
*/
|
||||||
|
class FieldCollection final : NonCopyable {
|
||||||
|
public:
|
||||||
|
FieldCollection() = default;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Accept method for the visitor pattern, visits each field in the collection.
|
||||||
|
* @param visitor Reference to the visitor that will visit each field.
|
||||||
|
*/
|
||||||
|
void Accept(VisitorInterface& visitor) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new field and adds it to the field collection.
|
||||||
|
* @param type Type of the field to add.
|
||||||
|
* @param name Name of the field to add.
|
||||||
|
* @param value Value for the field to add.
|
||||||
|
*/
|
||||||
|
template <typename T>
|
||||||
|
void AddField(FieldType type, const char* name, T value) {
|
||||||
|
return AddField(std::make_unique<Field<T>>(type, name, std::move(value)));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a new field to the field collection.
|
||||||
|
* @param field Field to add to the field collection.
|
||||||
|
*/
|
||||||
|
void AddField(std::unique_ptr<FieldInterface> field);
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::map<std::string, std::unique_ptr<FieldInterface>> fields;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Telemetry fields visitor interface class. A backend to log to a web service should implement
|
||||||
|
* this interface.
|
||||||
|
*/
|
||||||
|
struct VisitorInterface : NonCopyable {
|
||||||
|
virtual ~VisitorInterface() = default;
|
||||||
|
|
||||||
|
virtual void Visit(const Field<bool>& field) = 0;
|
||||||
|
virtual void Visit(const Field<double>& field) = 0;
|
||||||
|
virtual void Visit(const Field<float>& field) = 0;
|
||||||
|
virtual void Visit(const Field<u8>& field) = 0;
|
||||||
|
virtual void Visit(const Field<u16>& field) = 0;
|
||||||
|
virtual void Visit(const Field<u32>& field) = 0;
|
||||||
|
virtual void Visit(const Field<u64>& field) = 0;
|
||||||
|
virtual void Visit(const Field<s8>& field) = 0;
|
||||||
|
virtual void Visit(const Field<s16>& field) = 0;
|
||||||
|
virtual void Visit(const Field<s32>& field) = 0;
|
||||||
|
virtual void Visit(const Field<s64>& field) = 0;
|
||||||
|
virtual void Visit(const Field<std::string>& field) = 0;
|
||||||
|
virtual void Visit(const Field<const char*>& field) = 0;
|
||||||
|
virtual void Visit(const Field<std::chrono::microseconds>& field) = 0;
|
||||||
|
|
||||||
|
/// Completion method, called once all fields have been visited
|
||||||
|
virtual void Complete() = 0;
|
||||||
|
virtual bool SubmitTestcase() = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Empty implementation of VisitorInterface that drops all fields. Used when a functional
|
||||||
|
* backend implementation is not available.
|
||||||
|
*/
|
||||||
|
struct NullVisitor : public VisitorInterface {
|
||||||
|
~NullVisitor() = default;
|
||||||
|
|
||||||
|
void Visit(const Field<bool>& /*field*/) override {}
|
||||||
|
void Visit(const Field<double>& /*field*/) override {}
|
||||||
|
void Visit(const Field<float>& /*field*/) override {}
|
||||||
|
void Visit(const Field<u8>& /*field*/) override {}
|
||||||
|
void Visit(const Field<u16>& /*field*/) override {}
|
||||||
|
void Visit(const Field<u32>& /*field*/) override {}
|
||||||
|
void Visit(const Field<u64>& /*field*/) override {}
|
||||||
|
void Visit(const Field<s8>& /*field*/) override {}
|
||||||
|
void Visit(const Field<s16>& /*field*/) override {}
|
||||||
|
void Visit(const Field<s32>& /*field*/) override {}
|
||||||
|
void Visit(const Field<s64>& /*field*/) override {}
|
||||||
|
void Visit(const Field<std::string>& /*field*/) override {}
|
||||||
|
void Visit(const Field<const char*>& /*field*/) override {}
|
||||||
|
void Visit(const Field<std::chrono::microseconds>& /*field*/) override {}
|
||||||
|
|
||||||
|
void Complete() override {}
|
||||||
|
bool SubmitTestcase() override {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/// Appends build-specific information to the given FieldCollection,
|
||||||
|
/// such as branch name, revision hash, etc.
|
||||||
|
void AppendBuildInfo(FieldCollection& fc);
|
||||||
|
|
||||||
|
/// Appends CPU-specific information to the given FieldCollection,
|
||||||
|
/// such as instruction set extensions, etc.
|
||||||
|
void AppendCPUInfo(FieldCollection& fc);
|
||||||
|
|
||||||
|
/// Appends OS-specific information to the given FieldCollection,
|
||||||
|
/// such as platform name, etc.
|
||||||
|
void AppendOSInfo(FieldCollection& fc);
|
||||||
|
|
||||||
|
} // namespace Common::Telemetry
|
||||||
|
|
|
@ -467,6 +467,8 @@ add_library(lime_core STATIC
|
||||||
savestate_data.h
|
savestate_data.h
|
||||||
system_titles.cpp
|
system_titles.cpp
|
||||||
system_titles.h
|
system_titles.h
|
||||||
|
telemetry_session.cpp
|
||||||
|
telemetry_session.h
|
||||||
tracer/citrace.h
|
tracer/citrace.h
|
||||||
tracer/recorder.cpp
|
tracer/recorder.cpp
|
||||||
tracer/recorder.h
|
tracer/recorder.h
|
||||||
|
|
|
@ -47,6 +47,7 @@
|
||||||
#ifdef ENABLE_SCRIPTING
|
#ifdef ENABLE_SCRIPTING
|
||||||
#include "core/rpc/server.h"
|
#include "core/rpc/server.h"
|
||||||
#endif
|
#endif
|
||||||
|
#include "core/telemetry_session.h"
|
||||||
#include "network/network.h"
|
#include "network/network.h"
|
||||||
#include "video_core/custom_textures/custom_tex_manager.h"
|
#include "video_core/custom_textures/custom_tex_manager.h"
|
||||||
#include "video_core/gpu.h"
|
#include "video_core/gpu.h"
|
||||||
|
@ -438,6 +439,8 @@ System::ResultStatus System::Init(Frontend::EmuWindow& emu_window,
|
||||||
Settings::values.output_device.GetValue());
|
Settings::values.output_device.GetValue());
|
||||||
dsp_core->EnableStretching(Settings::values.enable_audio_stretching.GetValue());
|
dsp_core->EnableStretching(Settings::values.enable_audio_stretching.GetValue());
|
||||||
|
|
||||||
|
telemetry_session = std::make_unique<Core::TelemetrySession>();
|
||||||
|
|
||||||
#ifdef ENABLE_SCRIPTING
|
#ifdef ENABLE_SCRIPTING
|
||||||
rpc_server = std::make_unique<RPC::Server>(*this);
|
rpc_server = std::make_unique<RPC::Server>(*this);
|
||||||
#endif
|
#endif
|
||||||
|
@ -572,6 +575,7 @@ void System::Shutdown(bool is_deserializing) {
|
||||||
app_loader.reset();
|
app_loader.reset();
|
||||||
}
|
}
|
||||||
custom_tex_manager.reset();
|
custom_tex_manager.reset();
|
||||||
|
telemetry_session.reset();
|
||||||
#ifdef ENABLE_SCRIPTING
|
#ifdef ENABLE_SCRIPTING
|
||||||
rpc_server.reset();
|
rpc_server.reset();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -72,6 +72,7 @@ class AppLoader;
|
||||||
namespace Core {
|
namespace Core {
|
||||||
|
|
||||||
class ARM_Interface;
|
class ARM_Interface;
|
||||||
|
class TelemetrySession;
|
||||||
class ExclusiveMonitor;
|
class ExclusiveMonitor;
|
||||||
class Timing;
|
class Timing;
|
||||||
|
|
||||||
|
@ -164,6 +165,14 @@ public:
|
||||||
return is_powered_on;
|
return is_powered_on;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a reference to the telemetry session for this emulation session.
|
||||||
|
* @returns Reference to the telemetry session.
|
||||||
|
*/
|
||||||
|
[[nodiscard]] Core::TelemetrySession& TelemetrySession() const {
|
||||||
|
return *telemetry_session;
|
||||||
|
}
|
||||||
|
|
||||||
/// Prepare the core emulation for a reschedule
|
/// Prepare the core emulation for a reschedule
|
||||||
void PrepareReschedule();
|
void PrepareReschedule();
|
||||||
|
|
||||||
|
@ -376,6 +385,9 @@ private:
|
||||||
/// When true, signals that a reschedule should happen
|
/// When true, signals that a reschedule should happen
|
||||||
bool reschedule_pending{};
|
bool reschedule_pending{};
|
||||||
|
|
||||||
|
/// Telemetry session for this emulation session
|
||||||
|
std::unique_ptr<Core::TelemetrySession> telemetry_session;
|
||||||
|
|
||||||
std::unique_ptr<VideoCore::GPU> gpu;
|
std::unique_ptr<VideoCore::GPU> gpu;
|
||||||
|
|
||||||
/// Service manager
|
/// Service manager
|
||||||
|
|
176
src/core/telemetry_session.cpp
Normal file
176
src/core/telemetry_session.cpp
Normal file
|
@ -0,0 +1,176 @@
|
||||||
|
// Copyright 2017 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include <cryptopp/osrng.h>
|
||||||
|
|
||||||
|
#include "common/assert.h"
|
||||||
|
#include "common/common_types.h"
|
||||||
|
#include "common/file_util.h"
|
||||||
|
#include "common/logging/log.h"
|
||||||
|
#include "common/scm_rev.h"
|
||||||
|
#include "common/settings.h"
|
||||||
|
#include "core/core.h"
|
||||||
|
#include "core/loader/loader.h"
|
||||||
|
#include "core/telemetry_session.h"
|
||||||
|
#include "network/network_settings.h"
|
||||||
|
|
||||||
|
#ifdef ENABLE_WEB_SERVICE
|
||||||
|
#include "web_service/telemetry_json.h"
|
||||||
|
#include "web_service/verify_login.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace Core {
|
||||||
|
|
||||||
|
namespace Telemetry = Common::Telemetry;
|
||||||
|
|
||||||
|
static u64 GenerateTelemetryId() {
|
||||||
|
u64 telemetry_id{};
|
||||||
|
CryptoPP::AutoSeededRandomPool rng;
|
||||||
|
rng.GenerateBlock(reinterpret_cast<CryptoPP::byte*>(&telemetry_id), sizeof(u64));
|
||||||
|
return telemetry_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
u64 GetTelemetryId() {
|
||||||
|
u64 telemetry_id{};
|
||||||
|
const std::string filename{FileUtil::GetUserPath(FileUtil::UserPath::ConfigDir) +
|
||||||
|
"telemetry_id"};
|
||||||
|
|
||||||
|
if (FileUtil::Exists(filename)) {
|
||||||
|
FileUtil::IOFile file(filename, "rb");
|
||||||
|
if (!file.IsOpen()) {
|
||||||
|
LOG_ERROR(Core, "failed to open telemetry_id: {}", filename);
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
file.ReadBytes(&telemetry_id, sizeof(u64));
|
||||||
|
} else {
|
||||||
|
FileUtil::IOFile file(filename, "wb");
|
||||||
|
if (!file.IsOpen()) {
|
||||||
|
LOG_ERROR(Core, "failed to open telemetry_id: {}", filename);
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
telemetry_id = GenerateTelemetryId();
|
||||||
|
file.WriteBytes(&telemetry_id, sizeof(u64));
|
||||||
|
}
|
||||||
|
|
||||||
|
return telemetry_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
u64 RegenerateTelemetryId() {
|
||||||
|
const u64 new_telemetry_id{GenerateTelemetryId()};
|
||||||
|
const std::string filename{FileUtil::GetUserPath(FileUtil::UserPath::ConfigDir) +
|
||||||
|
"telemetry_id"};
|
||||||
|
|
||||||
|
FileUtil::IOFile file(filename, "wb");
|
||||||
|
if (!file.IsOpen()) {
|
||||||
|
LOG_ERROR(Core, "failed to open telemetry_id: {}", filename);
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
file.WriteBytes(&new_telemetry_id, sizeof(u64));
|
||||||
|
return new_telemetry_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool VerifyLogin(const std::string& username, const std::string& token) {
|
||||||
|
#ifdef ENABLE_WEB_SERVICE
|
||||||
|
return WebService::VerifyLogin(NetSettings::values.web_api_url, username, token);
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
TelemetrySession::TelemetrySession() = default;
|
||||||
|
|
||||||
|
TelemetrySession::~TelemetrySession() {
|
||||||
|
// Log one-time session end information
|
||||||
|
const s64 shutdown_time{std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||||
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
|
.count()};
|
||||||
|
AddField(Telemetry::FieldType::Session, "Shutdown_Time", shutdown_time);
|
||||||
|
|
||||||
|
#ifdef ENABLE_WEB_SERVICE
|
||||||
|
auto backend = std::make_unique<WebService::TelemetryJson>(NetSettings::values.web_api_url,
|
||||||
|
NetSettings::values.citra_username,
|
||||||
|
NetSettings::values.citra_token);
|
||||||
|
#else
|
||||||
|
auto backend = std::make_unique<Telemetry::NullVisitor>();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Complete the session, submitting to the web service backend if necessary
|
||||||
|
field_collection.Accept(*backend);
|
||||||
|
if (NetSettings::values.enable_telemetry) {
|
||||||
|
backend->Complete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TelemetrySession::AddInitialInfo(Loader::AppLoader& app_loader) {
|
||||||
|
// Log one-time top-level information
|
||||||
|
AddField(Telemetry::FieldType::None, "TelemetryId", GetTelemetryId());
|
||||||
|
|
||||||
|
// Log one-time session start information
|
||||||
|
const s64 init_time{std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||||
|
std::chrono::system_clock::now().time_since_epoch())
|
||||||
|
.count()};
|
||||||
|
AddField(Telemetry::FieldType::Session, "Init_Time", init_time);
|
||||||
|
std::string program_name;
|
||||||
|
const Loader::ResultStatus res{app_loader.ReadTitle(program_name)};
|
||||||
|
if (res == Loader::ResultStatus::Success) {
|
||||||
|
AddField(Telemetry::FieldType::Session, "ProgramName", program_name);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Log application information
|
||||||
|
Telemetry::AppendBuildInfo(field_collection);
|
||||||
|
|
||||||
|
// Log user system information
|
||||||
|
Telemetry::AppendCPUInfo(field_collection);
|
||||||
|
Telemetry::AppendOSInfo(field_collection);
|
||||||
|
|
||||||
|
// Log user configuration information
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "Audio_SinkId",
|
||||||
|
static_cast<int>(Settings::values.output_type.GetValue()));
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "Audio_EnableAudioStretching",
|
||||||
|
Settings::values.enable_audio_stretching.GetValue());
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "Core_UseCpuJit",
|
||||||
|
Settings::values.use_cpu_jit.GetValue());
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "Renderer_ResolutionFactor",
|
||||||
|
Settings::values.resolution_factor.GetValue());
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "Renderer_FrameLimit",
|
||||||
|
Settings::values.frame_limit.GetValue());
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "Renderer_Backend",
|
||||||
|
static_cast<int>(Settings::values.graphics_api.GetValue()));
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "Renderer_UseHwShader",
|
||||||
|
Settings::values.use_hw_shader.GetValue());
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "Renderer_ShadersAccurateMul",
|
||||||
|
Settings::values.shaders_accurate_mul.GetValue());
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "Renderer_UseShaderJit",
|
||||||
|
Settings::values.use_shader_jit.GetValue());
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "Renderer_UseVsync",
|
||||||
|
Settings::values.use_vsync_new.GetValue());
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "Renderer_FilterMode",
|
||||||
|
Settings::values.filter_mode.GetValue());
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "Renderer_Render3d",
|
||||||
|
static_cast<int>(Settings::values.render_3d.GetValue()));
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "Renderer_Factor3d",
|
||||||
|
Settings::values.factor_3d.GetValue());
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "Renderer_MonoRenderOption",
|
||||||
|
static_cast<int>(Settings::values.mono_render_option.GetValue()));
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "System_IsNew3ds",
|
||||||
|
Settings::values.is_new_3ds.GetValue());
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "System_LLEApplets",
|
||||||
|
Settings::values.lle_applets.GetValue());
|
||||||
|
AddField(Telemetry::FieldType::UserConfig, "System_RegionValue",
|
||||||
|
Settings::values.region_value.GetValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TelemetrySession::SubmitTestcase() {
|
||||||
|
#ifdef ENABLE_WEB_SERVICE
|
||||||
|
auto backend = std::make_unique<WebService::TelemetryJson>(NetSettings::values.web_api_url,
|
||||||
|
NetSettings::values.citra_username,
|
||||||
|
NetSettings::values.citra_token);
|
||||||
|
field_collection.Accept(*backend);
|
||||||
|
return backend->SubmitTestcase();
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace Core
|
91
src/core/telemetry_session.h
Normal file
91
src/core/telemetry_session.h
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
// Copyright 2017 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
#include <string>
|
||||||
|
#include "common/telemetry.h"
|
||||||
|
|
||||||
|
namespace Loader {
|
||||||
|
class AppLoader;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace Core {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instruments telemetry for this emulation session. Creates a new set of telemetry fields on each
|
||||||
|
* session, logging any one-time fields. Interfaces with the telemetry backend used for submitting
|
||||||
|
* data to the web service. Submits session data on close.
|
||||||
|
*/
|
||||||
|
class TelemetrySession {
|
||||||
|
public:
|
||||||
|
explicit TelemetrySession();
|
||||||
|
~TelemetrySession();
|
||||||
|
|
||||||
|
TelemetrySession(const TelemetrySession&) = delete;
|
||||||
|
TelemetrySession& operator=(const TelemetrySession&) = delete;
|
||||||
|
|
||||||
|
TelemetrySession(TelemetrySession&&) = delete;
|
||||||
|
TelemetrySession& operator=(TelemetrySession&&) = delete;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds the initial telemetry info necessary when starting up a title.
|
||||||
|
*
|
||||||
|
* This includes information such as:
|
||||||
|
* - Telemetry ID
|
||||||
|
* - Initialization time
|
||||||
|
* - Title ID
|
||||||
|
* - Title name
|
||||||
|
* - Title file format
|
||||||
|
* - Miscellaneous settings values.
|
||||||
|
*
|
||||||
|
* @param app_loader The application loader to use to retrieve
|
||||||
|
* title-specific information.
|
||||||
|
*/
|
||||||
|
void AddInitialInfo(Loader::AppLoader& app_loader);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wrapper around the Telemetry::FieldCollection::AddField method.
|
||||||
|
* @param type Type of the field to add.
|
||||||
|
* @param name Name of the field to add.
|
||||||
|
* @param value Value for the field to add.
|
||||||
|
*/
|
||||||
|
template <typename T>
|
||||||
|
void AddField(Common::Telemetry::FieldType type, const char* name, T value) {
|
||||||
|
field_collection.AddField(type, name, std::move(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Submits a Testcase.
|
||||||
|
* @returns A bool indicating whether the submission succeeded
|
||||||
|
*/
|
||||||
|
bool SubmitTestcase();
|
||||||
|
|
||||||
|
private:
|
||||||
|
/// Tracks all added fields for the session
|
||||||
|
Common::Telemetry::FieldCollection field_collection;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets TelemetryId, a unique identifier used for the user's telemetry sessions.
|
||||||
|
* @returns The current TelemetryId for the session.
|
||||||
|
*/
|
||||||
|
u64 GetTelemetryId();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Regenerates TelemetryId, a unique identifier used for the user's telemetry sessions.
|
||||||
|
* @returns The new TelemetryId that was generated.
|
||||||
|
*/
|
||||||
|
u64 RegenerateTelemetryId();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verifies the username and token.
|
||||||
|
* @param username Citra username to use for authentication.
|
||||||
|
* @param token Citra token to use for authentication.
|
||||||
|
* @returns Future with bool indicating whether the verification succeeded
|
||||||
|
*/
|
||||||
|
bool VerifyLogin(const std::string& username, const std::string& token);
|
||||||
|
|
||||||
|
} // namespace Core
|
|
@ -81,6 +81,9 @@ add_executable(lime-qt
|
||||||
configuration/configure_ui.cpp
|
configuration/configure_ui.cpp
|
||||||
configuration/configure_ui.h
|
configuration/configure_ui.h
|
||||||
configuration/configure_ui.ui
|
configuration/configure_ui.ui
|
||||||
|
configuration/configure_web.cpp
|
||||||
|
configuration/configure_web.h
|
||||||
|
configuration/configure_web.ui
|
||||||
configuration/configure_cheats.cpp
|
configuration/configure_cheats.cpp
|
||||||
configuration/configure_cheats.h
|
configuration/configure_cheats.h
|
||||||
configuration/configure_cheats.ui
|
configuration/configure_cheats.ui
|
||||||
|
|
|
@ -97,6 +97,12 @@
|
||||||
<header>configuration/configure_enhancements.h</header>
|
<header>configuration/configure_enhancements.h</header>
|
||||||
<container>1</container>
|
<container>1</container>
|
||||||
</customwidget>
|
</customwidget>
|
||||||
|
<customwidget>
|
||||||
|
<class>ConfigureWeb</class>
|
||||||
|
<extends>QWidget</extends>
|
||||||
|
<header>configuration/configure_web.h</header>
|
||||||
|
<container>1</container>
|
||||||
|
</customwidget>
|
||||||
<customwidget>
|
<customwidget>
|
||||||
<class>ConfigureUi</class>
|
<class>ConfigureUi</class>
|
||||||
<extends>QWidget</extends>
|
<extends>QWidget</extends>
|
||||||
|
|
165
src/lime_qt/configuration/configure_web.cpp
Normal file
165
src/lime_qt/configuration/configure_web.cpp
Normal file
|
@ -0,0 +1,165 @@
|
||||||
|
// Copyright 2017 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include <QIcon>
|
||||||
|
#include <QMessageBox>
|
||||||
|
#include <QtConcurrent/QtConcurrentRun>
|
||||||
|
#include "core/telemetry_session.h"
|
||||||
|
#include "lime_qt/configuration/configure_web.h"
|
||||||
|
#include "lime_qt/uisettings.h"
|
||||||
|
#include "network/network_settings.h"
|
||||||
|
#include "ui_configure_web.h"
|
||||||
|
|
||||||
|
static constexpr char token_delimiter{':'};
|
||||||
|
|
||||||
|
static std::string GenerateDisplayToken(const std::string& username, const std::string& token) {
|
||||||
|
if (username.empty() || token.empty()) {
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::string unencoded_display_token{username + token_delimiter + token};
|
||||||
|
QByteArray b{unencoded_display_token.c_str()};
|
||||||
|
QByteArray b64 = b.toBase64();
|
||||||
|
return b64.toStdString();
|
||||||
|
}
|
||||||
|
|
||||||
|
static std::string UsernameFromDisplayToken(const std::string& display_token) {
|
||||||
|
const std::string unencoded_display_token{
|
||||||
|
QByteArray::fromBase64(display_token.c_str()).toStdString()};
|
||||||
|
return unencoded_display_token.substr(0, unencoded_display_token.find(token_delimiter));
|
||||||
|
}
|
||||||
|
|
||||||
|
static std::string TokenFromDisplayToken(const std::string& display_token) {
|
||||||
|
const std::string unencoded_display_token{
|
||||||
|
QByteArray::fromBase64(display_token.c_str()).toStdString()};
|
||||||
|
return unencoded_display_token.substr(unencoded_display_token.find(token_delimiter) + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
ConfigureWeb::ConfigureWeb(QWidget* parent)
|
||||||
|
: QWidget(parent), ui(std::make_unique<Ui::ConfigureWeb>()) {
|
||||||
|
ui->setupUi(this);
|
||||||
|
connect(ui->button_regenerate_telemetry_id, &QPushButton::clicked, this,
|
||||||
|
&ConfigureWeb::RefreshTelemetryID);
|
||||||
|
connect(ui->button_verify_login, &QPushButton::clicked, this, &ConfigureWeb::VerifyLogin);
|
||||||
|
connect(&verify_watcher, &QFutureWatcher<bool>::finished, this, &ConfigureWeb::OnLoginVerified);
|
||||||
|
|
||||||
|
#ifndef USE_DISCORD_PRESENCE
|
||||||
|
ui->discord_group->setVisible(false);
|
||||||
|
#endif
|
||||||
|
SetConfiguration();
|
||||||
|
}
|
||||||
|
|
||||||
|
ConfigureWeb::~ConfigureWeb() = default;
|
||||||
|
|
||||||
|
void ConfigureWeb::SetConfiguration() {
|
||||||
|
ui->web_credentials_disclaimer->setWordWrap(true);
|
||||||
|
ui->telemetry_learn_more->setOpenExternalLinks(true);
|
||||||
|
ui->telemetry_learn_more->setText(tr("<a "
|
||||||
|
"href='https://citra-emu.org/entry/"
|
||||||
|
"telemetry-and-why-thats-a-good-thing/'><span "
|
||||||
|
"style=\"text-decoration: underline; "
|
||||||
|
"color:#039be5;\">Learn more</span></a>"));
|
||||||
|
|
||||||
|
ui->web_signup_link->setOpenExternalLinks(true);
|
||||||
|
ui->web_signup_link->setText(
|
||||||
|
tr("<a href='https://profile.citra-emu.org/'><span style=\"text-decoration: underline; "
|
||||||
|
"color:#039be5;\">Sign up</span></a>"));
|
||||||
|
ui->web_token_info_link->setOpenExternalLinks(true);
|
||||||
|
ui->web_token_info_link->setText(
|
||||||
|
tr("<a href='https://citra-emu.org/wiki/citra-web-service/'><span style=\"text-decoration: "
|
||||||
|
"underline; color:#039be5;\">What is my token?</span></a>"));
|
||||||
|
|
||||||
|
ui->toggle_telemetry->setChecked(NetSettings::values.enable_telemetry);
|
||||||
|
|
||||||
|
if (NetSettings::values.citra_username.empty()) {
|
||||||
|
ui->username->setText(tr("Unspecified"));
|
||||||
|
} else {
|
||||||
|
ui->username->setText(QString::fromStdString(NetSettings::values.citra_username));
|
||||||
|
}
|
||||||
|
|
||||||
|
ui->edit_token->setText(QString::fromStdString(
|
||||||
|
GenerateDisplayToken(NetSettings::values.citra_username, NetSettings::values.citra_token)));
|
||||||
|
|
||||||
|
// Connect after setting the values, to avoid calling OnLoginChanged now
|
||||||
|
connect(ui->edit_token, &QLineEdit::textChanged, this, &ConfigureWeb::OnLoginChanged);
|
||||||
|
ui->label_telemetry_id->setText(
|
||||||
|
tr("Telemetry ID: 0x%1").arg(QString::number(Core::GetTelemetryId(), 16).toUpper()));
|
||||||
|
user_verified = true;
|
||||||
|
|
||||||
|
ui->toggle_discordrpc->setChecked(UISettings::values.enable_discord_presence.GetValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConfigureWeb::ApplyConfiguration() {
|
||||||
|
NetSettings::values.enable_telemetry = ui->toggle_telemetry->isChecked();
|
||||||
|
UISettings::values.enable_discord_presence = ui->toggle_discordrpc->isChecked();
|
||||||
|
if (user_verified) {
|
||||||
|
NetSettings::values.citra_username =
|
||||||
|
UsernameFromDisplayToken(ui->edit_token->text().toStdString());
|
||||||
|
NetSettings::values.citra_token =
|
||||||
|
TokenFromDisplayToken(ui->edit_token->text().toStdString());
|
||||||
|
} else {
|
||||||
|
QMessageBox::warning(
|
||||||
|
this, tr("Token not verified"),
|
||||||
|
tr("Token was not verified. The change to your token has not been saved."));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConfigureWeb::RefreshTelemetryID() {
|
||||||
|
const u64 new_telemetry_id{Core::RegenerateTelemetryId()};
|
||||||
|
ui->label_telemetry_id->setText(
|
||||||
|
tr("Telemetry ID: 0x%1").arg(QString::number(new_telemetry_id, 16).toUpper()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConfigureWeb::OnLoginChanged() {
|
||||||
|
if (ui->edit_token->text().isEmpty()) {
|
||||||
|
user_verified = true;
|
||||||
|
|
||||||
|
const QPixmap pixmap = QIcon::fromTheme(QStringLiteral("checked")).pixmap(16);
|
||||||
|
ui->label_token_verified->setPixmap(pixmap);
|
||||||
|
} else {
|
||||||
|
user_verified = false;
|
||||||
|
|
||||||
|
const QPixmap pixmap = QIcon::fromTheme(QStringLiteral("failed")).pixmap(16);
|
||||||
|
ui->label_token_verified->setPixmap(pixmap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConfigureWeb::VerifyLogin() {
|
||||||
|
ui->button_verify_login->setDisabled(true);
|
||||||
|
ui->button_verify_login->setText(tr("Verifying..."));
|
||||||
|
verify_watcher.setFuture(QtConcurrent::run(
|
||||||
|
[username = UsernameFromDisplayToken(ui->edit_token->text().toStdString()),
|
||||||
|
token = TokenFromDisplayToken(ui->edit_token->text().toStdString())] {
|
||||||
|
return Core::VerifyLogin(username, token);
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConfigureWeb::OnLoginVerified() {
|
||||||
|
ui->button_verify_login->setEnabled(true);
|
||||||
|
ui->button_verify_login->setText(tr("Verify"));
|
||||||
|
if (verify_watcher.result()) {
|
||||||
|
user_verified = true;
|
||||||
|
|
||||||
|
const QPixmap pixmap = QIcon::fromTheme(QStringLiteral("checked")).pixmap(16);
|
||||||
|
ui->label_token_verified->setPixmap(pixmap);
|
||||||
|
ui->username->setText(
|
||||||
|
QString::fromStdString(UsernameFromDisplayToken(ui->edit_token->text().toStdString())));
|
||||||
|
} else {
|
||||||
|
const QPixmap pixmap = QIcon::fromTheme(QStringLiteral("failed")).pixmap(16);
|
||||||
|
ui->label_token_verified->setPixmap(pixmap);
|
||||||
|
ui->username->setText(tr("Unspecified"));
|
||||||
|
QMessageBox::critical(this, tr("Verification failed"),
|
||||||
|
tr("Verification failed. Check that you have entered your token "
|
||||||
|
"correctly, and that your internet connection is working."));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConfigureWeb::RetranslateUI() {
|
||||||
|
ui->retranslateUi(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConfigureWeb::SetWebServiceConfigEnabled(bool enabled) {
|
||||||
|
ui->label_disable_info->setVisible(!enabled);
|
||||||
|
ui->groupBoxWebConfig->setEnabled(enabled);
|
||||||
|
}
|
37
src/lime_qt/configuration/configure_web.h
Normal file
37
src/lime_qt/configuration/configure_web.h
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
// Copyright 2017 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
#include <QFutureWatcher>
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
class ConfigureWeb;
|
||||||
|
}
|
||||||
|
|
||||||
|
class ConfigureWeb : public QWidget {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit ConfigureWeb(QWidget* parent = nullptr);
|
||||||
|
~ConfigureWeb() override;
|
||||||
|
|
||||||
|
void ApplyConfiguration();
|
||||||
|
void RetranslateUI();
|
||||||
|
void SetConfiguration();
|
||||||
|
void SetWebServiceConfigEnabled(bool enabled);
|
||||||
|
|
||||||
|
private:
|
||||||
|
void RefreshTelemetryID();
|
||||||
|
void OnLoginChanged();
|
||||||
|
void VerifyLogin();
|
||||||
|
void OnLoginVerified();
|
||||||
|
|
||||||
|
bool user_verified = true;
|
||||||
|
QFutureWatcher<bool> verify_watcher;
|
||||||
|
|
||||||
|
std::unique_ptr<Ui::ConfigureWeb> ui;
|
||||||
|
};
|
214
src/lime_qt/configuration/configure_web.ui
Normal file
214
src/lime_qt/configuration/configure_web.ui
Normal file
|
@ -0,0 +1,214 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>ConfigureWeb</class>
|
||||||
|
<widget class="QWidget" name="ConfigureWeb">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>996</width>
|
||||||
|
<height>561</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Form</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBoxWebConfig">
|
||||||
|
<property name="title">
|
||||||
|
<string>Lime3DS Web Service</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayoutCitraWebService">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="web_credentials_disclaimer">
|
||||||
|
<property name="text">
|
||||||
|
<string>Currently not supported by Lime. By providing your username and token, you agree to allow Citra to collect additional usage data, which may include user identifying information.</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QGridLayout" name="gridLayoutCitraUsername">
|
||||||
|
<item row="2" column="3">
|
||||||
|
<widget class="QPushButton" name="button_verify_login">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="layoutDirection">
|
||||||
|
<enum>Qt::RightToLeft</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Verify</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="web_signup_link">
|
||||||
|
<property name="text">
|
||||||
|
<string>Sign up</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1" colspan="3">
|
||||||
|
<widget class="QLabel" name="username"/>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="label_token">
|
||||||
|
<property name="text">
|
||||||
|
<string>Token: </string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="4">
|
||||||
|
<widget class="QLabel" name="label_token_verified"/>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_username">
|
||||||
|
<property name="text">
|
||||||
|
<string>Username: </string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1" colspan="3">
|
||||||
|
<widget class="QLineEdit" name="edit_token">
|
||||||
|
<property name="maxLength">
|
||||||
|
<number>80</number>
|
||||||
|
</property>
|
||||||
|
<property name="echoMode">
|
||||||
|
<enum>QLineEdit::Password</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
|
<widget class="QLabel" name="web_token_info_link">
|
||||||
|
<property name="text">
|
||||||
|
<string>What is my token?</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="2">
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_disable_info">
|
||||||
|
<property name="text">
|
||||||
|
<string>Web Service configuration can only be changed when a public room isn't being hosted.</string>
|
||||||
|
</property>
|
||||||
|
<property name="wordWrap">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="groupBox">
|
||||||
|
<property name="title">
|
||||||
|
<string>Telemetry</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="toggle_telemetry">
|
||||||
|
<property name="text">
|
||||||
|
<string>Share anonymous usage data with the Lime3DS team</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="telemetry_learn_more">
|
||||||
|
<property name="text">
|
||||||
|
<string>Learn more</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QGridLayout" name="gridLayoutTelemetryId">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_telemetry_id">
|
||||||
|
<property name="text">
|
||||||
|
<string>Telemetry ID:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QPushButton" name="button_regenerate_telemetry_id">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="layoutDirection">
|
||||||
|
<enum>Qt::RightToLeft</enum>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Regenerate</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="discord_group">
|
||||||
|
<property name="title">
|
||||||
|
<string>Discord Presence</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout_21">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="toggle_discordrpc">
|
||||||
|
<property name="text">
|
||||||
|
<string>Show Current Game in your Discord Status</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<tabstops>
|
||||||
|
<tabstop>edit_token</tabstop>
|
||||||
|
<tabstop>button_verify_login</tabstop>
|
||||||
|
<tabstop>toggle_telemetry</tabstop>
|
||||||
|
<tabstop>button_regenerate_telemetry_id</tabstop>
|
||||||
|
<tabstop>toggle_discordrpc</tabstop>
|
||||||
|
</tabstops>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
|
@ -10,6 +10,7 @@ namespace NetSettings {
|
||||||
|
|
||||||
struct Values {
|
struct Values {
|
||||||
// WebService
|
// WebService
|
||||||
|
bool enable_telemetry;
|
||||||
std::string web_api_url;
|
std::string web_api_url;
|
||||||
std::string citra_username;
|
std::string citra_username;
|
||||||
std::string citra_token;
|
std::string citra_token;
|
||||||
|
|
|
@ -2,6 +2,8 @@ add_library(web_service STATIC
|
||||||
announce_room_json.cpp
|
announce_room_json.cpp
|
||||||
announce_room_json.h
|
announce_room_json.h
|
||||||
precompiled_headers.h
|
precompiled_headers.h
|
||||||
|
telemetry_json.cpp
|
||||||
|
telemetry_json.h
|
||||||
verify_login.cpp
|
verify_login.cpp
|
||||||
verify_login.h
|
verify_login.h
|
||||||
verify_user_jwt.cpp
|
verify_user_jwt.cpp
|
||||||
|
|
130
src/web_service/telemetry_json.cpp
Normal file
130
src/web_service/telemetry_json.cpp
Normal file
|
@ -0,0 +1,130 @@
|
||||||
|
// Copyright 2017 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include <json.hpp>
|
||||||
|
#include "common/detached_tasks.h"
|
||||||
|
#include "common/web_result.h"
|
||||||
|
#include "web_service/telemetry_json.h"
|
||||||
|
#include "web_service/web_backend.h"
|
||||||
|
|
||||||
|
namespace WebService {
|
||||||
|
|
||||||
|
namespace Telemetry = Common::Telemetry;
|
||||||
|
|
||||||
|
struct TelemetryJson::Impl {
|
||||||
|
Impl(std::string host, std::string username, std::string token)
|
||||||
|
: host{std::move(host)}, username{std::move(username)}, token{std::move(token)} {}
|
||||||
|
|
||||||
|
nlohmann::json& TopSection() {
|
||||||
|
return sections[static_cast<u8>(Telemetry::FieldType::None)];
|
||||||
|
}
|
||||||
|
|
||||||
|
const nlohmann::json& TopSection() const {
|
||||||
|
return sections[static_cast<u8>(Telemetry::FieldType::None)];
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
void Serialize(Telemetry::FieldType type, const std::string& name, T value) {
|
||||||
|
sections[static_cast<u8>(type)][name] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SerializeSection(Telemetry::FieldType type, const std::string& name) {
|
||||||
|
TopSection()[name] = sections[static_cast<unsigned>(type)];
|
||||||
|
}
|
||||||
|
|
||||||
|
nlohmann::json output;
|
||||||
|
std::array<nlohmann::json, 7> sections;
|
||||||
|
std::string host;
|
||||||
|
std::string username;
|
||||||
|
std::string token;
|
||||||
|
};
|
||||||
|
|
||||||
|
TelemetryJson::TelemetryJson(std::string host, std::string username, std::string token)
|
||||||
|
: impl{std::make_unique<Impl>(std::move(host), std::move(username), std::move(token))} {}
|
||||||
|
TelemetryJson::~TelemetryJson() = default;
|
||||||
|
|
||||||
|
void TelemetryJson::Visit(const Telemetry::Field<bool>& field) {
|
||||||
|
impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
void TelemetryJson::Visit(const Telemetry::Field<double>& field) {
|
||||||
|
impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
void TelemetryJson::Visit(const Telemetry::Field<float>& field) {
|
||||||
|
impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
void TelemetryJson::Visit(const Telemetry::Field<u8>& field) {
|
||||||
|
impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
void TelemetryJson::Visit(const Telemetry::Field<u16>& field) {
|
||||||
|
impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
void TelemetryJson::Visit(const Telemetry::Field<u32>& field) {
|
||||||
|
impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
void TelemetryJson::Visit(const Telemetry::Field<u64>& field) {
|
||||||
|
impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
void TelemetryJson::Visit(const Telemetry::Field<s8>& field) {
|
||||||
|
impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
void TelemetryJson::Visit(const Telemetry::Field<s16>& field) {
|
||||||
|
impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
void TelemetryJson::Visit(const Telemetry::Field<s32>& field) {
|
||||||
|
impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
void TelemetryJson::Visit(const Telemetry::Field<s64>& field) {
|
||||||
|
impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
void TelemetryJson::Visit(const Telemetry::Field<std::string>& field) {
|
||||||
|
impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
void TelemetryJson::Visit(const Telemetry::Field<const char*>& field) {
|
||||||
|
impl->Serialize(field.GetType(), field.GetName(), std::string(field.GetValue()));
|
||||||
|
}
|
||||||
|
|
||||||
|
void TelemetryJson::Visit(const Telemetry::Field<std::chrono::microseconds>& field) {
|
||||||
|
impl->Serialize(field.GetType(), field.GetName(), field.GetValue().count());
|
||||||
|
}
|
||||||
|
|
||||||
|
void TelemetryJson::Complete() {
|
||||||
|
impl->SerializeSection(Telemetry::FieldType::App, "App");
|
||||||
|
impl->SerializeSection(Telemetry::FieldType::Session, "Session");
|
||||||
|
impl->SerializeSection(Telemetry::FieldType::Performance, "Performance");
|
||||||
|
impl->SerializeSection(Telemetry::FieldType::UserConfig, "UserConfig");
|
||||||
|
impl->SerializeSection(Telemetry::FieldType::UserSystem, "UserSystem");
|
||||||
|
|
||||||
|
auto content = impl->TopSection().dump();
|
||||||
|
// Send the telemetry async but don't handle the errors since they were written to the log
|
||||||
|
Common::DetachedTasks::AddTask([host{impl->host}, content]() {
|
||||||
|
Client{host, "", ""}.PostJson("/telemetry", content, true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TelemetryJson::SubmitTestcase() {
|
||||||
|
impl->SerializeSection(Telemetry::FieldType::App, "App");
|
||||||
|
impl->SerializeSection(Telemetry::FieldType::Session, "Session");
|
||||||
|
impl->SerializeSection(Telemetry::FieldType::UserFeedback, "UserFeedback");
|
||||||
|
impl->SerializeSection(Telemetry::FieldType::UserSystem, "UserSystem");
|
||||||
|
|
||||||
|
auto content = impl->TopSection().dump();
|
||||||
|
Client client(impl->host, impl->username, impl->token);
|
||||||
|
auto value = client.PostJson("/gamedb/testcase", content, false);
|
||||||
|
|
||||||
|
return value.result_code == Common::WebResult::Code::Success;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace WebService
|
46
src/web_service/telemetry_json.h
Normal file
46
src/web_service/telemetry_json.h
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
// Copyright 2017 Citra Emulator Project
|
||||||
|
// Licensed under GPLv2 or any later version
|
||||||
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <chrono>
|
||||||
|
#include <string>
|
||||||
|
#include "common/announce_multiplayer_room.h"
|
||||||
|
#include "common/telemetry.h"
|
||||||
|
|
||||||
|
namespace WebService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implementation of VisitorInterface that serialized telemetry into JSON, and submits it to the
|
||||||
|
* Citra web service
|
||||||
|
*/
|
||||||
|
class TelemetryJson : public Common::Telemetry::VisitorInterface {
|
||||||
|
public:
|
||||||
|
TelemetryJson(std::string host, std::string username, std::string token);
|
||||||
|
~TelemetryJson() override;
|
||||||
|
|
||||||
|
void Visit(const Common::Telemetry::Field<bool>& field) override;
|
||||||
|
void Visit(const Common::Telemetry::Field<double>& field) override;
|
||||||
|
void Visit(const Common::Telemetry::Field<float>& field) override;
|
||||||
|
void Visit(const Common::Telemetry::Field<u8>& field) override;
|
||||||
|
void Visit(const Common::Telemetry::Field<u16>& field) override;
|
||||||
|
void Visit(const Common::Telemetry::Field<u32>& field) override;
|
||||||
|
void Visit(const Common::Telemetry::Field<u64>& field) override;
|
||||||
|
void Visit(const Common::Telemetry::Field<s8>& field) override;
|
||||||
|
void Visit(const Common::Telemetry::Field<s16>& field) override;
|
||||||
|
void Visit(const Common::Telemetry::Field<s32>& field) override;
|
||||||
|
void Visit(const Common::Telemetry::Field<s64>& field) override;
|
||||||
|
void Visit(const Common::Telemetry::Field<std::string>& field) override;
|
||||||
|
void Visit(const Common::Telemetry::Field<const char*>& field) override;
|
||||||
|
void Visit(const Common::Telemetry::Field<std::chrono::microseconds>& field) override;
|
||||||
|
|
||||||
|
void Complete() override;
|
||||||
|
bool SubmitTestcase() override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
struct Impl;
|
||||||
|
std::unique_ptr<Impl> impl;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace WebService
|
Loading…
Reference in a new issue