diff options
| -rw-r--r-- | Attorney_Online.pro | 4 | ||||
| -rw-r--r-- | include/discord_rich_presence.h | 4 | ||||
| -rw-r--r-- | resource/translations/ao_de.qm | bin | 0 -> 22162 bytes | |||
| -rw-r--r-- | resource/translations/ao_de.ts | 889 | ||||
| -rw-r--r-- | resource/translations/ao_en.qm | bin | 0 -> 23 bytes | |||
| -rw-r--r-- | resource/translations/ao_en.ts | 773 | ||||
| -rw-r--r-- | resource/translations/ao_ja.qm | bin | 0 -> 2051 bytes | |||
| -rw-r--r-- | resource/translations/ao_ja.ts | 773 | ||||
| -rw-r--r-- | resources.qrc | 3 | ||||
| -rw-r--r-- | src/aoapplication.cpp | 6 | ||||
| -rw-r--r-- | src/charselect.cpp | 2 | ||||
| -rw-r--r-- | src/courtroom.cpp | 2 | ||||
| -rw-r--r-- | src/debug_functions.cpp | 9 | ||||
| -rw-r--r-- | src/evidence.cpp | 4 | ||||
| -rw-r--r-- | src/lobby.cpp | 10 | ||||
| -rw-r--r-- | src/main.cpp | 13 | ||||
| -rw-r--r-- | src/packet_distribution.cpp | 25 |
17 files changed, 2490 insertions, 27 deletions
diff --git a/Attorney_Online.pro b/Attorney_Online.pro index 20a61d36..7e597b45 100644 --- a/Attorney_Online.pro +++ b/Attorney_Online.pro @@ -41,5 +41,9 @@ CONFIG += c++14 RESOURCES += resources.qrc +TRANSLATIONS = resource/translations/ao_en.ts \ + resource/translations/ao_ja.ts \ + resource/translations/ao_de.ts + win32:RC_ICONS = resource/logo.ico macx:ICON = resource/logo.icns diff --git a/include/discord_rich_presence.h b/include/discord_rich_presence.h index e7ecc6ef..4115b516 100644 --- a/include/discord_rich_presence.h +++ b/include/discord_rich_presence.h @@ -5,6 +5,8 @@ #include <ctime> #include <QDebug> #include <string> +#include <QCoreApplication> + #include <discord-rpc.h> #include <cstring> @@ -16,6 +18,8 @@ namespace AttorneyOnline { class Discord { + Q_DECLARE_TR_FUNCTIONS(Discord) + private: const char* APPLICATION_ID = "399779271737868288"; std::string server_name, server_id; diff --git a/resource/translations/ao_de.qm b/resource/translations/ao_de.qm Binary files differnew file mode 100644 index 00000000..1f4defe0 --- /dev/null +++ b/resource/translations/ao_de.qm diff --git a/resource/translations/ao_de.ts b/resource/translations/ao_de.ts new file mode 100644 index 00000000..11af5570 --- /dev/null +++ b/resource/translations/ao_de.ts @@ -0,0 +1,889 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="de_DE"> +<context> + <name>AOApplication</name> + <message> + <location filename="../src/aoapplication.cpp" line="138"/> + <source>Disconnected from server.</source> + <translation>Vom Server getrennt.</translation> + </message> + <message> + <source>Error connecting to master server. Will try again in %n seconds.</source> + <translation type="vanished">Fehler bei der Verbindung zum Master Server. Erneuter Versuch in %n Sekunden.</translation> + </message> + <message> + <location filename="../src/aoapplication.cpp" line="168"/> + <source>There was an error connecting to the master server. +We deploy multiple master servers to mitigate any possible downtime, but the client appears to have exhausted all possible methods of finding and connecting to one. +Please check your Internet connection and firewall, and please try again.</source> + <translation>Es gab einen Fehler beim Verbinden zum Master Server. +Wir verwenden mehrere Master Server um Ausfälle zu verhindern, jedoch hat der Client alle Möglichkeiten einen zu finden erschöpft. +Bitte prüfe deine Internetverbindung und Firewall, und versuche es erneut.</translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="106"/> + <source>Outdated version! Your version: %1 +Please go to aceattorneyonline.com to update.</source> + <translation>Version zu alt! Deine Version: %1 +Bitte besuche aceattorneyonline.com für ein Update.</translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="114"/> + <source>You have been exiled from AO. +Have a nice day.</source> + <translation>Du wurdest von AO befreit. +Schönen Urlaub.</translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="249"/> + <source>Attorney Online 2</source> + <translation>Attorney Online 2</translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="275"/> + <source>Loading</source> + <translation>Laden</translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="363"/> + <source>Loading evidence: +%1/%2</source> + <translation>Lade Beweisstücke: +%1/%2</translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="395"/> + <location filename="../src/packet_distribution.cpp" line="490"/> + <source>Loading music: +%1/%2</source> + <translation>Lade Musik: +%1/%2</translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="467"/> + <source>Loading chars: +%1/%2</source> + <translation>Lade Charaktere: +%1/%2</translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="642"/> + <source>You have been kicked from the server. +Reason: </source> + <translation>Du wurdest von diesem Server geschmissen. +Grund: </translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="659"/> + <source>You are banned on this server. +Reason: </source> + <translation>Du wurdest von diesem Server verbannt. +Grund: </translation> + </message> + <message> + <source>You have been kicked.</source> + <translation type="vanished">Du wurdest rausgeschmissen.</translation> + </message> + <message> + <source>You are banned on this server.</source> + <translation type="vanished">Du wurdest verbannt.</translation> + </message> +</context> +<context> + <name>AOCaseAnnouncerDialog</name> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="9"/> + <source>Case Announcer</source> + <translation>Fallansager</translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="38"/> + <source>Case title:</source> + <translation>Fallname:</translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="48"/> + <source>Defense needed</source> + <translation>Verteidiger benötigt</translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="50"/> + <source>Prosecution needed</source> + <translation>Kläger benötigt</translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="52"/> + <source>Judge needed</source> + <translation>Richter benötigt</translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="54"/> + <source>Jurors needed</source> + <translation>Jury benötigt</translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="56"/> + <source>Stenographer needed</source> + <translation>Stenograph benötigt</translation> + </message> +</context> +<context> + <name>AOOptionsDialog</name> + <message> + <location filename="../src/aooptionsdialog.cpp" line="11"/> + <source>Settings</source> + <translation>Einstellungen</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="40"/> + <source>Gameplay</source> + <translation>Spiel</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="51"/> + <source>Theme:</source> + <translation>Theme:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="52"/> + <source>Sets the theme used in-game. If the new theme changes the lobby's look as well, you'll need to reload the lobby for the changes to take effect, such as by joining a server and leaving it.</source> + <translation>Setzt das Theme. Wenn das neue Theme auch das Aussehen der Lobby verändert, must du diese neu laden um die Änderungen zu sehen.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="81"/> + <source>Log goes downwards:</source> + <translation>Verlauf geht nach unten:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="82"/> + <source>If ticked, new messages will appear at the bottom (like the OOC chatlog). The traditional (AO1) behaviour is equivalent to this being unticked.</source> + <translation>Wenn angehakt werden neue Nachrichten unten erscheinen (wie beim OOC). Das traditionelle (AO1) Verhalten wäre nicht angehakt.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="94"/> + <source>Log length:</source> + <translation>Länge:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="95"/> + <source>The amount of messages the IC chatlog will keep before deleting older messages. A value of 0 or below counts as 'infinite'.</source> + <translation>Die Menge an Nachrichten die aufgehoben werden bevor alte gelöscht werden. 0 bedeutet unendlich.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="113"/> + <source>Default username:</source> + <translation>Standard Benutzername:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="114"/> + <source>Your OOC name will be automatically set to this value when you join a server.</source> + <translation>Dein OOC Name wird automatisch auf dies gesetzt.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="126"/> + <source>Custom shownames:</source> + <translation>Eigener Anzeigename:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="127"/> + <source>Gives the default value for the in-game 'Custom shownames' tickbox, which in turn determines whether the client should display custom in-character names.</source> + <translation>Standardwert für die Anzeigename Box, welche den In-Charakter Namen bestimmt.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="145"/> + <source>Backup MS:</source> + <translation>Rückfall MS:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="146"/> + <source>If the built-in server lookups fail, the game will try the address given here and use it as a backup master server address.</source> + <translation>Wenn dereingebaute Master Server fehlschlägt, wird das Spiel diesen hier verwenden.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="158"/> + <source>Discord:</source> + <translation>Discord:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="159"/> + <source>Allows others on Discord to see what server you are in, what character are you playing, and how long you have been playing for.</source> + <translation>Erlaubt anderen auf Discord zu sehen auf welchem Server du spielst, welchen Charakter du spielst und wie lange.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="172"/> + <source>Callwords</source> + <translation>Alarmwörter</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="197"/> + <source><html><head/><body>Enter as many callwords as you would like. These are case insensitive. Make sure to leave every callword in its own line!<br>Do not leave a line with a space at the end -- you will be alerted everytime someone uses a space in their messages.</body></html></source> + <translation><html><head/><body>Gib so viele Alarmwörter ein wie du möchtest. Groß/Kleinschreibung ist egal. Für jede Wort nur eine Zeile!<br>Bitte keine leere Zeile am Ende -- du bekommst sonst bei jeder Nachricht einen Alarm.</body></html></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="204"/> + <source>Audio</source> + <translation>Audio</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="215"/> + <source>Audio device:</source> + <translation>Audiogerät:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="216"/> + <source>Sets the audio device for all sounds.</source> + <translation>Setzt das Audiogerät für all Geräusche.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="247"/> + <source>Music:</source> + <translation>Musik:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="248"/> + <source>Sets the music's default volume.</source> + <translation>Setzt die Musiklautstärke.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="260"/> + <source>SFX:</source> + <translation>SFX:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="261"/> + <source>Sets the SFX's default volume. Interjections and actual sound effects count as 'SFX'.</source> + <translation>Setzt die Lautstärke der Soundeffekte wie Einsprüche und die Geräusche der Charaktere.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="274"/> + <source>Blips:</source> + <translation>Blips:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="275"/> + <source>Sets the volume of the blips, the talking sound effects.</source> + <translation>Setzt die Lautstärke der Blips, das ist das Geräusch das die Charaktere beim Reden machen.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="293"/> + <source>Blip rate:</source> + <translation>Bliprate:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="294"/> + <source>Sets the delay between playing the blip sounds.</source> + <translation>Setzt die Pause zwischen einzelnen Blips.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="305"/> + <source>Blank blips:</source> + <translation>Leere Blips:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="306"/> + <source>If true, the game will play a blip sound even when a space is 'being said'.</source> + <translation>Wenn angehakt wird das Spiel auch bei einem Leerzeichen einen Blip machen.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="319"/> + <source>Casing</source> + <translation>Fälle</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="333"/> + <source>This server supports case alerts.</source> + <translation>Dieser Server unterstützt Fallalarme.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="335"/> + <source>This server does not support case alerts.</source> + <translation>Dieser Server unterstützt Fallalarme nicht.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="336"/> + <source>Pretty self-explanatory.</source> + <translation>Eigentlich selbsterklärend.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="343"/> + <source>Casing:</source> + <translation>Fälle:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="344"/> + <source>If checked, you will get alerts about case announcements.</source> + <translation>Wenn angehakt wirst du benachrichtigt wenn ein Fall angekündigt wird.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="357"/> + <source>Defense:</source> + <translation>Verteidigung:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="358"/> + <source>If checked, you will get alerts about case announcements if a defense spot is open.</source> + <translation>Wenn angehakt wirst du benachrichtigt wenn ein Verteidiger benötigt wird.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="371"/> + <source>Prosecution:</source> + <translation>Kläger:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="372"/> + <source>If checked, you will get alerts about case announcements if a prosecutor spot is open.</source> + <translation>Wenn angehakt wirst du benachrichtigt wenn ein Kläger benötigt wird.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="385"/> + <source>Judge:</source> + <translation>Richter:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="386"/> + <source>If checked, you will get alerts about case announcements if the judge spot is open.</source> + <translation>Wenn angehakt wirst du benachrichtigt wenn ein Richter benötigt wird.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="399"/> + <source>Juror:</source> + <translation>Jury:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="400"/> + <source>If checked, you will get alerts about case announcements if a juror spot is open.</source> + <translation>Wenn angehakt wirst du benachrichtigt wenn eine Jury benötigt wird.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="413"/> + <source>Stenographer:</source> + <translation>Stenograph:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="414"/> + <source>If checked, you will get alerts about case announcements if a stenographer spot is open.</source> + <translation>Wenn angehakt wirst du benachrichtigt wenn ein Stenograph benötigt wird.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="427"/> + <source>CM:</source> + <translation>CM:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="428"/> + <source>If checked, you will appear amongst the potential CMs on the server.</source> + <translation>Wenn angehakt wirst du als potentielle CM angezeigt.</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="441"/> + <source>Hosting cases:</source> + <translation>Fallleitung:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="442"/> + <source>If you're a CM, enter what cases you are willing to host.</source> + <translation>Wenn du CM bist, gib ein welche Fälle du spielen möchtest.</translation> + </message> +</context> +<context> + <name>Courtroom</name> + <message> + <location filename="../src/charselect.cpp" line="21"/> + <source>Password</source> + <translation>Passwort</translation> + </message> + <message> + <location filename="../src/charselect.cpp" line="27"/> + <source>Spectator</source> + <translation>Zuschauer</translation> + </message> + <message> + <location filename="../src/charselect.cpp" line="30"/> + <location filename="../src/courtroom.cpp" line="138"/> + <source>Search</source> + <translation>Suche</translation> + </message> + <message> + <location filename="../src/charselect.cpp" line="35"/> + <source>Passworded</source> + <translation>Gesperrt</translation> + </message> + <message> + <location filename="../src/charselect.cpp" line="39"/> + <source>Taken</source> + <translation>Benutzt</translation> + </message> + <message> + <location filename="../src/charselect.cpp" line="217"/> + <source>Generating chars: +</source> + <translation>Generiere Charaktere: +</translation> + </message> + <message> + <source>Could not find %1</source> + <translation type="vanished">Konnte %1 nicht finden.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="116"/> + <source>Showname</source> + <translation>Anzeigename</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="120"/> + <source>Message</source> + <translation>Nachricht</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="130"/> + <source>Name</source> + <translation>Name</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="183"/> + <source>Pre</source> + <translation>Vor</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="186"/> + <source>Flip</source> + <translation>Spiegeln</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="190"/> + <source>Guard</source> + <translation>Wache</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="195"/> + <source>Casing</source> + <translation>Fall</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="200"/> + <source>Shownames</source> + <translation>Anzeigenamen</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="203"/> + <source>No Interrupt</source> + <translation>Keine Unterbrechung</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="217"/> + <source>White</source> + <translation>Weiß</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="218"/> + <source>Green</source> + <translation>Grün</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="219"/> + <source>Red</source> + <translation>Rot</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="220"/> + <source>Orange</source> + <translation>Orange</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="221"/> + <source>Blue</source> + <translation>Blau</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="222"/> + <source>Yellow</source> + <translation>Gelb</translation> + </message> + <message> + <source>Music</source> + <translation type="vanished">Musik</translation> + </message> + <message> + <source>Sfx</source> + <translation type="vanished">Sfx</translation> + </message> + <message> + <source>Blips</source> + <translation type="vanished">Blips</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2959"/> + <source>Server</source> + <translation>Server</translation> + </message> + <message> + <source>Change character</source> + <translation type="vanished">Charakter ändern</translation> + </message> + <message> + <source>Reload theme</source> + <translation type="vanished">Aussehen neu laden</translation> + </message> + <message> + <source>Call mod</source> + <translation type="vanished">Moderator rufen</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="692"/> + <source>Back to Lobby</source> + <translation>Zurück zur Lobby</translation> + </message> + <message> + <source>You have been banned.</source> + <translation type="vanished">Du wurdest verbannt.</translation> + </message> + <message> + <source>%1 has played a song: %2</source> + <translation type="vanished">%1 hat ein Lied gespielt: %2</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="223"/> + <source>Rainbow</source> + <translation>Regenbogen</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="224"/> + <source>Pink</source> + <translation>Pink</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="225"/> + <source>Cyan</source> + <translation>Cyan</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2681"/> + <source>You were granted the Guard button.</source> + <translation>Dir wurde der Wache Knopf gegeben.</translation> + </message> + <message> + <source>This does nohing, but there you go.</source> + <translation type="vanished">Dies bewirkt nichts, aber egal.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2688"/> + <source>This does nothing, but there you go.</source> + <translation>Dies bewirkt nichts, aber egal.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2695"/> + <source>You opened the settings menu.</source> + <translation>Du hast die Einstellungen geöffnet.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2710"/> + <source>You will now pair up with </source> + <translation>Du wirst nun mit </translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2712"/> + <source> if they also choose your character in return.</source> + <translation> gepaart, wenn der andere dies auch tut.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2718"/> + <source>You are no longer paired with anyone.</source> + <translation>Du bist nicht mehr gepaart.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2723"/> + <source>Are you sure you typed that well? The char ID could not be recognised.</source> + <translation>Hast du dich vertippt? Die ID konnte nicht erkannt werden.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2739"/> + <source>You have set your offset to </source> + <translation>Dein Abstand ist auf </translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2746"/> + <source>Your offset must be between -100% and 100%!</source> + <translation>Der Abstand muss zwischen -100% und 100% liegen!</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2751"/> + <source>That offset does not look like one.</source> + <translation>Das sieht nicht wie ein Abstand aus.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2757"/> + <source>You switched your music and area list.</source> + <translation>Du hast zwischen Musik- und Gebitsliste umgeschaltet.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2764"/> + <source>You have forcefully enabled features that the server may not support. You may not be able to talk IC, or worse, because of this.</source> + <translation>Du hast Funktionen erzwungen die der Server eventuell nicht unterstützt. Möglicherweise wirst du nicht mehr sprechen können.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2775"/> + <source>Your pre-animations interrupt again.</source> + <translation>Deine Voranimation unterbrechen nun Text.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2777"/> + <source>Your pre-animations will not interrupt text.</source> + <translation>Deine Voranimation unterbrechen Text nicht.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2788"/> + <source>Couldn't open chatlog.txt to write into.</source> + <translation>Konnte chatlog.txt nicht öffnen.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2801"/> + <source>The IC chatlog has been saved.</source> + <translation>Der IC Verlauf wurde gespeichert.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2813"/> + <source>You don't have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it's likely the case file you're looking for can't be found in there.</source> + <translation>Du hattest keinen 'base/cases' Ordner! Ich hab ihn nun angelegt aber bedenke das er leer sein wird.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2824"/> + <source>You need to give a filename to load (extension not needed)! Make sure that it is in the `base/cases/` folder, and that it is a correctly formatted ini. +Cases you can load: </source> + <translation>Du musst einen Dateinamen angeben (ohne .ini). Stelle sicher das er im 'base/cases' Ordner ist und das er korrekt formatiert ist. +Verfügbare Fälle: </translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2832"/> + <source>Too many arguments to load a case! You only need one filename, without extension.</source> + <translation>Zu viele Argumente! Du brauchst nur den Dateinamen, ohne Erweiterung.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2845"/> + <source>Case made by </source> + <translation>Fall von </translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2851"/> + <source>Navigate to </source> + <translation>Gehe zu </translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2851"/> + <source> for the CM doc.</source> + <translation> für das CM Dokument.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2870"/> + <source>Your case "</source> + <translation>Dein Fall "</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2870"/> + <source>" was loaded!</source> + <translation>" wurde geladen!</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2882"/> + <source>You don't have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it's likely that you somehow deleted it.</source> + <translation>Du hattest keinen 'base/cases' Ordner! Ich hab ihn nun angelegt aber bedenke das er leer sein wird.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2893"/> + <source>You need to give a filename to save (extension not needed) and the courtroom status!</source> + <translation>Du musst einen Dateinamen (ohne Erweiterung) angebenn, sowie den Gebietsstatus!</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2901"/> + <source>Too many arguments to save a case! You only need a filename without extension and the courtroom status!</source> + <translation>Zu viele Argumente! Du brauchst nur den Dateinamen, ohne Erweiterung sowie den Gebietsstatus!</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2923"/> + <source>Succesfully saved, edit doc and cmdoc link on the ini!</source> + <translation>Erfolgreich gespeichert!</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2951"/> + <source>Master</source> + <translation>Master</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="3422"/> + <source>Reason:</source> + <translation>Grund:</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="3423"/> + <source>Call Moderator</source> + <translation>Moderator rufen</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="3431"/> + <location filename="../src/courtroom.cpp" line="3434"/> + <source>Error</source> + <translation>Fehler</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="3431"/> + <source>You must provide a reason.</source> + <translation>Du musst einen Grund angeben.</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="3434"/> + <source>The message is too long.</source> + <translation>Die Nachricht ist zu lang.</translation> + </message> + <message> + <source>Choose..</source> + <translation type="vanished">Wähle..</translation> + </message> + <message> + <location filename="../src/evidence.cpp" line="25"/> + <source>Choose...</source> + <translation>Wähle...</translation> + </message> + <message> + <location filename="../src/evidence.cpp" line="194"/> + <source>Images (*.png)</source> + <translation>Bilder (*.png)</translation> + </message> + <message> + <location filename="../src/evidence.cpp" line="268"/> + <source>Add new evidence...</source> + <translation>Neues Beweisstück...</translation> + </message> +</context> +<context> + <name>Discord</name> + <message> + <location filename="../src/discord_rich_presence.cpp" line="34"/> + <location filename="../src/discord_rich_presence.cpp" line="49"/> + <location filename="../src/discord_rich_presence.cpp" line="75"/> + <location filename="../src/discord_rich_presence.cpp" line="94"/> + <source>Objection!</source> + <translation>Einspruch!</translation> + </message> + <message> + <location filename="../src/discord_rich_presence.cpp" line="37"/> + <source>In Lobby</source> + <translation>In Lobby</translation> + </message> + <message> + <location filename="../src/discord_rich_presence.cpp" line="38"/> + <source>Idle</source> + <translation>Untätig</translation> + </message> + <message> + <location filename="../src/discord_rich_presence.cpp" line="54"/> + <source>In a Server</source> + <translation>In einem Server</translation> + </message> + <message> + <location filename="../src/discord_rich_presence.cpp" line="69"/> + <source>Playing as %1</source> + <translation>Spielt als %1</translation> + </message> + <message> + <location filename="../src/discord_rich_presence.cpp" line="100"/> + <source>Spectating</source> + <translation>Zuschauend</translation> + </message> +</context> +<context> + <name>Lobby</name> + <message> + <source>Attorney Online 2</source> + <translation type="vanished">Attorney Online 2</translation> + </message> + <message> + <source>Name</source> + <translation type="vanished">Name</translation> + </message> + <message> + <location filename="../src/lobby.cpp" line="74"/> + <source>It doesn't look like your client is set up correctly. +Did you download all resources correctly from tiny.cc/getao, including the large 'base' folder?</source> + <translation>Dein Client ist nicht korrekt eingerichtet. +Hast du ALLES von tiny.cc/getao heruntergeladen und entpackt, auch den großen 'base' Ordner?</translation> + </message> + <message> + <location filename="../src/lobby.cpp" line="147"/> + <source>Loading</source> + <translation>Laden</translation> + </message> + <message> + <location filename="../src/lobby.cpp" line="151"/> + <source>Cancel</source> + <translation>Abbrechen</translation> + </message> + <message> + <location filename="../src/lobby.cpp" line="270"/> + <source><h2>Attorney Online %1</h2>The courtroom drama simulator<p><b>Source code:</b> <a href='https://github.com/AttorneyOnline/AO2-Client'>https://github.com/AttorneyOnline/AO2-Client</a><p><b>Major development:</b><br>OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter<p><b>Special thanks:</b><br>Remy, Iamgoofball, Hibiki, Qubrick (webAO), Ruekasu (UI design), Draxirch (UI design), Unishred, Argoneus (tsuserver), Fiercy, Noevain, Cronnicossy</source> + <translation><h2>Attorney Online %1</h2>Der Gerichtsdrama Simulator<p><b>Quelltext:</b> <a href='https://github.com/AttorneyOnline/AO2-Client'>https://github.com/AttorneyOnline/AO2-Client</a><p><b>Leitende Entwicklung:</b><br>OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter<p><b>Danksagungen:</b><br>Remy, Iamgoofball, Hibiki, Qubrick (webAO), Ruekasu (UI design), Draxirch (UI design), Unishred, Argoneus (tsuserver), Fiercy, Noevain, Cronnicossy</translation> + </message> + <message> + <source>Attorney Online 2 is built using Qt 5.11. + +Lead development: +longbyte1 +OmniTroid + +stonedDiscord +Supporting development: +Fiercy + +UI design: +Ruekasu +Draxirch + +Special thanks: +Unishred +Argoneus +Noevain +Cronnicossy</source> + <translation type="vanished">Attorney Online 2 wurde gemacht mit Qt 5.11. + +Leitende Entwicklung: +longbyte1 +OmniTroid +stonedDiscord + +Unterstützende Entwicklung: +Fiercy + +UI Design: +Ruekasu +Draxirch + +Speziellen Dank: +Unishred +Argoneus +Noevain +Cronnicossy</translation> + </message> + <message> + <location filename="../src/lobby.cpp" line="316"/> + <source>Offline</source> + <translation>Offline</translation> + </message> +</context> +<context> + <name>debug_functions</name> + <message> + <location filename="../src/debug_functions.cpp" line="10"/> + <source>Error: %1</source> + <translation>Fehler: %1</translation> + </message> + <message> + <location filename="../src/debug_functions.cpp" line="11"/> + <source>Error</source> + <translation>Fehler</translation> + </message> + <message> + <location filename="../src/debug_functions.cpp" line="23"/> + <source>Notice</source> + <translation>Hinweis</translation> + </message> +</context> +</TS> diff --git a/resource/translations/ao_en.qm b/resource/translations/ao_en.qm Binary files differnew file mode 100644 index 00000000..9dad8dff --- /dev/null +++ b/resource/translations/ao_en.qm diff --git a/resource/translations/ao_en.ts b/resource/translations/ao_en.ts new file mode 100644 index 00000000..2128630b --- /dev/null +++ b/resource/translations/ao_en.ts @@ -0,0 +1,773 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="en_US"> +<context> + <name>AOApplication</name> + <message> + <location filename="../src/aoapplication.cpp" line="138"/> + <source>Disconnected from server.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aoapplication.cpp" line="168"/> + <source>There was an error connecting to the master server. +We deploy multiple master servers to mitigate any possible downtime, but the client appears to have exhausted all possible methods of finding and connecting to one. +Please check your Internet connection and firewall, and please try again.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="106"/> + <source>Outdated version! Your version: %1 +Please go to aceattorneyonline.com to update.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="114"/> + <source>You have been exiled from AO. +Have a nice day.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="249"/> + <source>Attorney Online 2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="275"/> + <source>Loading</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="363"/> + <source>Loading evidence: +%1/%2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="395"/> + <location filename="../src/packet_distribution.cpp" line="490"/> + <source>Loading music: +%1/%2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="467"/> + <source>Loading chars: +%1/%2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="642"/> + <source>You have been kicked from the server. +Reason: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="659"/> + <source>You are banned on this server. +Reason: </source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>AOCaseAnnouncerDialog</name> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="9"/> + <source>Case Announcer</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="38"/> + <source>Case title:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="48"/> + <source>Defense needed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="50"/> + <source>Prosecution needed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="52"/> + <source>Judge needed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="54"/> + <source>Jurors needed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="56"/> + <source>Stenographer needed</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>AOOptionsDialog</name> + <message> + <location filename="../src/aooptionsdialog.cpp" line="11"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="40"/> + <source>Gameplay</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="51"/> + <source>Theme:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="52"/> + <source>Sets the theme used in-game. If the new theme changes the lobby's look as well, you'll need to reload the lobby for the changes to take effect, such as by joining a server and leaving it.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="81"/> + <source>Log goes downwards:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="82"/> + <source>If ticked, new messages will appear at the bottom (like the OOC chatlog). The traditional (AO1) behaviour is equivalent to this being unticked.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="94"/> + <source>Log length:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="95"/> + <source>The amount of messages the IC chatlog will keep before deleting older messages. A value of 0 or below counts as 'infinite'.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="113"/> + <source>Default username:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="114"/> + <source>Your OOC name will be automatically set to this value when you join a server.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="126"/> + <source>Custom shownames:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="127"/> + <source>Gives the default value for the in-game 'Custom shownames' tickbox, which in turn determines whether the client should display custom in-character names.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="145"/> + <source>Backup MS:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="146"/> + <source>If the built-in server lookups fail, the game will try the address given here and use it as a backup master server address.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="158"/> + <source>Discord:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="159"/> + <source>Allows others on Discord to see what server you are in, what character are you playing, and how long you have been playing for.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="172"/> + <source>Callwords</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="197"/> + <source><html><head/><body>Enter as many callwords as you would like. These are case insensitive. Make sure to leave every callword in its own line!<br>Do not leave a line with a space at the end -- you will be alerted everytime someone uses a space in their messages.</body></html></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="204"/> + <source>Audio</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="215"/> + <source>Audio device:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="216"/> + <source>Sets the audio device for all sounds.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="247"/> + <source>Music:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="248"/> + <source>Sets the music's default volume.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="260"/> + <source>SFX:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="261"/> + <source>Sets the SFX's default volume. Interjections and actual sound effects count as 'SFX'.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="274"/> + <source>Blips:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="275"/> + <source>Sets the volume of the blips, the talking sound effects.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="293"/> + <source>Blip rate:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="294"/> + <source>Sets the delay between playing the blip sounds.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="305"/> + <source>Blank blips:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="306"/> + <source>If true, the game will play a blip sound even when a space is 'being said'.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="319"/> + <source>Casing</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="333"/> + <source>This server supports case alerts.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="335"/> + <source>This server does not support case alerts.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="336"/> + <source>Pretty self-explanatory.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="343"/> + <source>Casing:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="344"/> + <source>If checked, you will get alerts about case announcements.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="357"/> + <source>Defense:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="358"/> + <source>If checked, you will get alerts about case announcements if a defense spot is open.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="371"/> + <source>Prosecution:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="372"/> + <source>If checked, you will get alerts about case announcements if a prosecutor spot is open.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="385"/> + <source>Judge:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="386"/> + <source>If checked, you will get alerts about case announcements if the judge spot is open.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="399"/> + <source>Juror:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="400"/> + <source>If checked, you will get alerts about case announcements if a juror spot is open.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="413"/> + <source>Stenographer:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="414"/> + <source>If checked, you will get alerts about case announcements if a stenographer spot is open.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="427"/> + <source>CM:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="428"/> + <source>If checked, you will appear amongst the potential CMs on the server.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="441"/> + <source>Hosting cases:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="442"/> + <source>If you're a CM, enter what cases you are willing to host.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Courtroom</name> + <message> + <location filename="../src/charselect.cpp" line="21"/> + <source>Password</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/charselect.cpp" line="27"/> + <source>Spectator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/charselect.cpp" line="30"/> + <location filename="../src/courtroom.cpp" line="138"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/charselect.cpp" line="35"/> + <source>Passworded</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/charselect.cpp" line="39"/> + <source>Taken</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/charselect.cpp" line="217"/> + <source>Generating chars: +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="116"/> + <source>Showname</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="120"/> + <source>Message</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="130"/> + <source>Name</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="183"/> + <source>Pre</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="186"/> + <source>Flip</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="190"/> + <source>Guard</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="195"/> + <source>Casing</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="200"/> + <source>Shownames</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="203"/> + <source>No Interrupt</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="217"/> + <source>White</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="218"/> + <source>Green</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="219"/> + <source>Red</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="220"/> + <source>Orange</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="221"/> + <source>Blue</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="222"/> + <source>Yellow</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2688"/> + <source>This does nothing, but there you go.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2959"/> + <source>Server</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="692"/> + <source>Back to Lobby</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="223"/> + <source>Rainbow</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="224"/> + <source>Pink</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="225"/> + <source>Cyan</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2681"/> + <source>You were granted the Guard button.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2695"/> + <source>You opened the settings menu.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2710"/> + <source>You will now pair up with </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2712"/> + <source> if they also choose your character in return.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2718"/> + <source>You are no longer paired with anyone.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2723"/> + <source>Are you sure you typed that well? The char ID could not be recognised.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2739"/> + <source>You have set your offset to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2746"/> + <source>Your offset must be between -100% and 100%!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2751"/> + <source>That offset does not look like one.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2757"/> + <source>You switched your music and area list.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2764"/> + <source>You have forcefully enabled features that the server may not support. You may not be able to talk IC, or worse, because of this.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2775"/> + <source>Your pre-animations interrupt again.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2777"/> + <source>Your pre-animations will not interrupt text.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2788"/> + <source>Couldn't open chatlog.txt to write into.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2801"/> + <source>The IC chatlog has been saved.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2813"/> + <source>You don't have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it's likely the case file you're looking for can't be found in there.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2824"/> + <source>You need to give a filename to load (extension not needed)! Make sure that it is in the `base/cases/` folder, and that it is a correctly formatted ini. +Cases you can load: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2832"/> + <source>Too many arguments to load a case! You only need one filename, without extension.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2845"/> + <source>Case made by </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2851"/> + <source>Navigate to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2851"/> + <source> for the CM doc.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2870"/> + <source>Your case "</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2870"/> + <source>" was loaded!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2882"/> + <source>You don't have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it's likely that you somehow deleted it.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2893"/> + <source>You need to give a filename to save (extension not needed) and the courtroom status!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2901"/> + <source>Too many arguments to save a case! You only need a filename without extension and the courtroom status!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2923"/> + <source>Succesfully saved, edit doc and cmdoc link on the ini!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2951"/> + <source>Master</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="3422"/> + <source>Reason:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="3423"/> + <source>Call Moderator</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="3431"/> + <location filename="../src/courtroom.cpp" line="3434"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="3431"/> + <source>You must provide a reason.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="3434"/> + <source>The message is too long.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/evidence.cpp" line="25"/> + <source>Choose...</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/evidence.cpp" line="194"/> + <source>Images (*.png)</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/evidence.cpp" line="268"/> + <source>Add new evidence...</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Discord</name> + <message> + <location filename="../src/discord_rich_presence.cpp" line="34"/> + <location filename="../src/discord_rich_presence.cpp" line="49"/> + <location filename="../src/discord_rich_presence.cpp" line="75"/> + <location filename="../src/discord_rich_presence.cpp" line="94"/> + <source>Objection!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/discord_rich_presence.cpp" line="37"/> + <source>In Lobby</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/discord_rich_presence.cpp" line="38"/> + <source>Idle</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/discord_rich_presence.cpp" line="54"/> + <source>In a Server</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/discord_rich_presence.cpp" line="69"/> + <source>Playing as %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/discord_rich_presence.cpp" line="100"/> + <source>Spectating</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Lobby</name> + <message> + <location filename="../src/lobby.cpp" line="74"/> + <source>It doesn't look like your client is set up correctly. +Did you download all resources correctly from tiny.cc/getao, including the large 'base' folder?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/lobby.cpp" line="147"/> + <source>Loading</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/lobby.cpp" line="151"/> + <source>Cancel</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/lobby.cpp" line="270"/> + <source><h2>Attorney Online %1</h2>The courtroom drama simulator<p><b>Source code:</b> <a href='https://github.com/AttorneyOnline/AO2-Client'>https://github.com/AttorneyOnline/AO2-Client</a><p><b>Major development:</b><br>OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter<p><b>Special thanks:</b><br>Remy, Iamgoofball, Hibiki, Qubrick (webAO), Ruekasu (UI design), Draxirch (UI design), Unishred, Argoneus (tsuserver), Fiercy, Noevain, Cronnicossy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/lobby.cpp" line="316"/> + <source>Offline</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>debug_functions</name> + <message> + <location filename="../src/debug_functions.cpp" line="10"/> + <source>Error: %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/debug_functions.cpp" line="11"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/debug_functions.cpp" line="23"/> + <source>Notice</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/resource/translations/ao_ja.qm b/resource/translations/ao_ja.qm Binary files differnew file mode 100644 index 00000000..2e7093ac --- /dev/null +++ b/resource/translations/ao_ja.qm diff --git a/resource/translations/ao_ja.ts b/resource/translations/ao_ja.ts new file mode 100644 index 00000000..7d3eb8b0 --- /dev/null +++ b/resource/translations/ao_ja.ts @@ -0,0 +1,773 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="ja_JP"> +<context> + <name>AOApplication</name> + <message> + <location filename="../src/aoapplication.cpp" line="138"/> + <source>Disconnected from server.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aoapplication.cpp" line="168"/> + <source>There was an error connecting to the master server. +We deploy multiple master servers to mitigate any possible downtime, but the client appears to have exhausted all possible methods of finding and connecting to one. +Please check your Internet connection and firewall, and please try again.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="106"/> + <source>Outdated version! Your version: %1 +Please go to aceattorneyonline.com to update.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="114"/> + <source>You have been exiled from AO. +Have a nice day.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="249"/> + <source>Attorney Online 2</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="275"/> + <source>Loading</source> + <translation>ロード中</translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="363"/> + <source>Loading evidence: +%1/%2</source> + <translation>証拠がロード中: %1/%2</translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="395"/> + <location filename="../src/packet_distribution.cpp" line="490"/> + <source>Loading music: +%1/%2</source> + <translation>音楽がロード中: %1/%2</translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="467"/> + <source>Loading chars: +%1/%2</source> + <translation>キャラがロード中: %1/%2</translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="642"/> + <source>You have been kicked from the server. +Reason: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/packet_distribution.cpp" line="659"/> + <source>You are banned on this server. +Reason: </source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>AOCaseAnnouncerDialog</name> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="9"/> + <source>Case Announcer</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="38"/> + <source>Case title:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="48"/> + <source>Defense needed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="50"/> + <source>Prosecution needed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="52"/> + <source>Judge needed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="54"/> + <source>Jurors needed</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aocaseannouncerdialog.cpp" line="56"/> + <source>Stenographer needed</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>AOOptionsDialog</name> + <message> + <location filename="../src/aooptionsdialog.cpp" line="11"/> + <source>Settings</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="40"/> + <source>Gameplay</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="51"/> + <source>Theme:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="52"/> + <source>Sets the theme used in-game. If the new theme changes the lobby's look as well, you'll need to reload the lobby for the changes to take effect, such as by joining a server and leaving it.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="81"/> + <source>Log goes downwards:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="82"/> + <source>If ticked, new messages will appear at the bottom (like the OOC chatlog). The traditional (AO1) behaviour is equivalent to this being unticked.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="94"/> + <source>Log length:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="95"/> + <source>The amount of messages the IC chatlog will keep before deleting older messages. A value of 0 or below counts as 'infinite'.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="113"/> + <source>Default username:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="114"/> + <source>Your OOC name will be automatically set to this value when you join a server.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="126"/> + <source>Custom shownames:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="127"/> + <source>Gives the default value for the in-game 'Custom shownames' tickbox, which in turn determines whether the client should display custom in-character names.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="145"/> + <source>Backup MS:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="146"/> + <source>If the built-in server lookups fail, the game will try the address given here and use it as a backup master server address.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="158"/> + <source>Discord:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="159"/> + <source>Allows others on Discord to see what server you are in, what character are you playing, and how long you have been playing for.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="172"/> + <source>Callwords</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="197"/> + <source><html><head/><body>Enter as many callwords as you would like. These are case insensitive. Make sure to leave every callword in its own line!<br>Do not leave a line with a space at the end -- you will be alerted everytime someone uses a space in their messages.</body></html></source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="204"/> + <source>Audio</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="215"/> + <source>Audio device:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="216"/> + <source>Sets the audio device for all sounds.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="247"/> + <source>Music:</source> + <translation>音楽:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="248"/> + <source>Sets the music's default volume.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="260"/> + <source>SFX:</source> + <translation>効果音:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="261"/> + <source>Sets the SFX's default volume. Interjections and actual sound effects count as 'SFX'.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="274"/> + <source>Blips:</source> + <translation>ブリップ:</translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="275"/> + <source>Sets the volume of the blips, the talking sound effects.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="293"/> + <source>Blip rate:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="294"/> + <source>Sets the delay between playing the blip sounds.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="305"/> + <source>Blank blips:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="306"/> + <source>If true, the game will play a blip sound even when a space is 'being said'.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="319"/> + <source>Casing</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="333"/> + <source>This server supports case alerts.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="335"/> + <source>This server does not support case alerts.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="336"/> + <source>Pretty self-explanatory.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="343"/> + <source>Casing:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="344"/> + <source>If checked, you will get alerts about case announcements.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="357"/> + <source>Defense:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="358"/> + <source>If checked, you will get alerts about case announcements if a defense spot is open.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="371"/> + <source>Prosecution:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="372"/> + <source>If checked, you will get alerts about case announcements if a prosecutor spot is open.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="385"/> + <source>Judge:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="386"/> + <source>If checked, you will get alerts about case announcements if the judge spot is open.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="399"/> + <source>Juror:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="400"/> + <source>If checked, you will get alerts about case announcements if a juror spot is open.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="413"/> + <source>Stenographer:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="414"/> + <source>If checked, you will get alerts about case announcements if a stenographer spot is open.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="427"/> + <source>CM:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="428"/> + <source>If checked, you will appear amongst the potential CMs on the server.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="441"/> + <source>Hosting cases:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/aooptionsdialog.cpp" line="442"/> + <source>If you're a CM, enter what cases you are willing to host.</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>Courtroom</name> + <message> + <location filename="../src/charselect.cpp" line="21"/> + <source>Password</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/charselect.cpp" line="27"/> + <source>Spectator</source> + <translation>観客</translation> + </message> + <message> + <location filename="../src/charselect.cpp" line="30"/> + <location filename="../src/courtroom.cpp" line="138"/> + <source>Search</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/charselect.cpp" line="35"/> + <source>Passworded</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/charselect.cpp" line="39"/> + <source>Taken</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/charselect.cpp" line="217"/> + <source>Generating chars: +</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="116"/> + <source>Showname</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="120"/> + <source>Message</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="130"/> + <source>Name</source> + <translation>名前</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="183"/> + <source>Pre</source> + <translation>前</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="186"/> + <source>Flip</source> + <translation>フリップ</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="190"/> + <source>Guard</source> + <translation>ガード</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="195"/> + <source>Casing</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="200"/> + <source>Shownames</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="203"/> + <source>No Interrupt</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="217"/> + <source>White</source> + <translation>白</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="218"/> + <source>Green</source> + <translation>緑</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="219"/> + <source>Red</source> + <translation>赤</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="220"/> + <source>Orange</source> + <translation>オレンジ</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="221"/> + <source>Blue</source> + <translation>青</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="222"/> + <source>Yellow</source> + <translation>黄色</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2688"/> + <source>This does nothing, but there you go.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2959"/> + <source>Server</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="692"/> + <source>Back to Lobby</source> + <translation>ロビーに戻る</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="223"/> + <source>Rainbow</source> + <translation>虹</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="224"/> + <source>Pink</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="225"/> + <source>Cyan</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2681"/> + <source>You were granted the Guard button.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2695"/> + <source>You opened the settings menu.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2710"/> + <source>You will now pair up with </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2712"/> + <source> if they also choose your character in return.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2718"/> + <source>You are no longer paired with anyone.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2723"/> + <source>Are you sure you typed that well? The char ID could not be recognised.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2739"/> + <source>You have set your offset to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2746"/> + <source>Your offset must be between -100% and 100%!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2751"/> + <source>That offset does not look like one.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2757"/> + <source>You switched your music and area list.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2764"/> + <source>You have forcefully enabled features that the server may not support. You may not be able to talk IC, or worse, because of this.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2775"/> + <source>Your pre-animations interrupt again.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2777"/> + <source>Your pre-animations will not interrupt text.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2788"/> + <source>Couldn't open chatlog.txt to write into.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2801"/> + <source>The IC chatlog has been saved.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2813"/> + <source>You don't have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it's likely the case file you're looking for can't be found in there.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2824"/> + <source>You need to give a filename to load (extension not needed)! Make sure that it is in the `base/cases/` folder, and that it is a correctly formatted ini. +Cases you can load: </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2832"/> + <source>Too many arguments to load a case! You only need one filename, without extension.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2845"/> + <source>Case made by </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2851"/> + <source>Navigate to </source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2851"/> + <source> for the CM doc.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2870"/> + <source>Your case "</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2870"/> + <source>" was loaded!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2882"/> + <source>You don't have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it's likely that you somehow deleted it.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2893"/> + <source>You need to give a filename to save (extension not needed) and the courtroom status!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2901"/> + <source>Too many arguments to save a case! You only need a filename without extension and the courtroom status!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2923"/> + <source>Succesfully saved, edit doc and cmdoc link on the ini!</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="2951"/> + <source>Master</source> + <translation>マスター</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="3422"/> + <source>Reason:</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="3423"/> + <source>Call Moderator</source> + <translation>モデレーターを呼ぶ</translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="3431"/> + <location filename="../src/courtroom.cpp" line="3434"/> + <source>Error</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="3431"/> + <source>You must provide a reason.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/courtroom.cpp" line="3434"/> + <source>The message is too long.</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/evidence.cpp" line="25"/> + <source>Choose...</source> + <translation>選択...</translation> + </message> + <message> + <location filename="../src/evidence.cpp" line="194"/> + <source>Images (*.png)</source> + <translation>イメージ (*.png)</translation> + </message> + <message> + <location filename="../src/evidence.cpp" line="268"/> + <source>Add new evidence...</source> + <translation>新しい証拠を付け加える...</translation> + </message> +</context> +<context> + <name>Discord</name> + <message> + <location filename="../src/discord_rich_presence.cpp" line="34"/> + <location filename="../src/discord_rich_presence.cpp" line="49"/> + <location filename="../src/discord_rich_presence.cpp" line="75"/> + <location filename="../src/discord_rich_presence.cpp" line="94"/> + <source>Objection!</source> + <translation>意義あり!</translation> + </message> + <message> + <location filename="../src/discord_rich_presence.cpp" line="37"/> + <source>In Lobby</source> + <translation>ロビーでいる</translation> + </message> + <message> + <location filename="../src/discord_rich_presence.cpp" line="38"/> + <source>Idle</source> + <translation>落ちている</translation> + </message> + <message> + <location filename="../src/discord_rich_presence.cpp" line="54"/> + <source>In a Server</source> + <translation>サーバーでいます</translation> + </message> + <message> + <location filename="../src/discord_rich_presence.cpp" line="69"/> + <source>Playing as %1</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/discord_rich_presence.cpp" line="100"/> + <source>Spectating</source> + <translation>観客している</translation> + </message> +</context> +<context> + <name>Lobby</name> + <message> + <location filename="../src/lobby.cpp" line="74"/> + <source>It doesn't look like your client is set up correctly. +Did you download all resources correctly from tiny.cc/getao, including the large 'base' folder?</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/lobby.cpp" line="147"/> + <source>Loading</source> + <translation>ロード中</translation> + </message> + <message> + <location filename="../src/lobby.cpp" line="151"/> + <source>Cancel</source> + <translation>キャンセル</translation> + </message> + <message> + <location filename="../src/lobby.cpp" line="270"/> + <source><h2>Attorney Online %1</h2>The courtroom drama simulator<p><b>Source code:</b> <a href='https://github.com/AttorneyOnline/AO2-Client'>https://github.com/AttorneyOnline/AO2-Client</a><p><b>Major development:</b><br>OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter<p><b>Special thanks:</b><br>Remy, Iamgoofball, Hibiki, Qubrick (webAO), Ruekasu (UI design), Draxirch (UI design), Unishred, Argoneus (tsuserver), Fiercy, Noevain, Cronnicossy</source> + <translation type="unfinished"></translation> + </message> + <message> + <location filename="../src/lobby.cpp" line="316"/> + <source>Offline</source> + <translation>オフライン</translation> + </message> +</context> +<context> + <name>debug_functions</name> + <message> + <location filename="../src/debug_functions.cpp" line="10"/> + <source>Error: %1</source> + <translation>エラー: %1</translation> + </message> + <message> + <location filename="../src/debug_functions.cpp" line="11"/> + <source>Error</source> + <translation>エラー</translation> + </message> + <message> + <location filename="../src/debug_functions.cpp" line="23"/> + <source>Notice</source> + <translation type="unfinished"></translation> + </message> +</context> +</TS> diff --git a/resources.qrc b/resources.qrc index bc9f322e..81f2d8fc 100644 --- a/resources.qrc +++ b/resources.qrc @@ -2,5 +2,8 @@ <qresource prefix="/"> <file>resource/fonts/Ace-Attorney.ttf</file> <file>resource/logo.png</file> + <file>resource/translations/ao_de.qm</file> + <file>resource/translations/ao_en.qm</file> + <file>resource/translations/ao_ja.qm</file> </qresource> </RCC> diff --git a/src/aoapplication.cpp b/src/aoapplication.cpp index 4ef1edd3..c47f3507 100644 --- a/src/aoapplication.cpp +++ b/src/aoapplication.cpp @@ -135,7 +135,7 @@ void AOApplication::server_disconnected() { if (courtroom_constructed) { - call_notice("Disconnected from server."); + call_notice(tr("Disconnected from server.")); construct_lobby(); destruct_courtroom(); } @@ -165,11 +165,11 @@ void AOApplication::ms_connect_finished(bool connected, bool will_retry) } else { - call_error("There was an error connecting to the master server.\n" + call_error(tr("There was an error connecting to the master server.\n" "We deploy multiple master servers to mitigate any possible downtime, " "but the client appears to have exhausted all possible methods of finding " "and connecting to one.\n" - "Please check your Internet connection and firewall, and please try again."); + "Please check your Internet connection and firewall, and please try again.")); } } } diff --git a/src/charselect.cpp b/src/charselect.cpp index 4987cf57..58c990ba 100644 --- a/src/charselect.cpp +++ b/src/charselect.cpp @@ -214,7 +214,7 @@ void Courtroom::character_loading_finished() int total_loading_size = ao_app->char_list_size * 2 + ao_app->evidence_list_size + ao_app->music_list_size; int loading_value = int(((ao_app->loaded_chars + ao_app->generated_chars + ao_app->loaded_music + ao_app->loaded_evidence) / static_cast<double>(total_loading_size)) * 100); ao_app->w_lobby->set_loading_value(loading_value); - ao_app->w_lobby->set_loading_text("Generating chars:\n" + QString::number(ao_app->generated_chars) + "/" + QString::number(ao_app->char_list_size)); + ao_app->w_lobby->set_loading_text(tr("Generating chars:\n") + QString::number(ao_app->generated_chars) + "/" + QString::number(ao_app->char_list_size)); } } diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 7907b543..2ba3ba2c 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -2685,7 +2685,7 @@ void Courtroom::on_ooc_return_pressed() //ui_text_color->addItem("Rainbow"); ui_ooc_chat_message->clear(); //rainbow_appended = true; - append_server_chatmessage("CLIENT", tr("This does nohing, but there you go."), "1"); + append_server_chatmessage("CLIENT", tr("This does nothing, but there you go."), "1"); return; } else if (ooc_message.startsWith("/settings")) diff --git a/src/debug_functions.cpp b/src/debug_functions.cpp index 77f2f35a..a790610d 100644 --- a/src/debug_functions.cpp +++ b/src/debug_functions.cpp @@ -1,11 +1,14 @@ +#include <QMessageBox> +#include <QCoreApplication> + #include "debug_functions.h" void call_error(QString p_message) { QMessageBox *msgBox = new QMessageBox; - msgBox->setText("Error: " + p_message); - msgBox->setWindowTitle("Error"); + msgBox->setText(QCoreApplication::translate("debug_functions", "Error: %1").arg(p_message)); + msgBox->setWindowTitle(QCoreApplication::translate("debug_functions", "Error")); //msgBox->setWindowModality(Qt::NonModal); @@ -17,7 +20,7 @@ void call_notice(QString p_message) QMessageBox *msgBox = new QMessageBox; msgBox->setText(p_message); - msgBox->setWindowTitle("Notice"); + msgBox->setWindowTitle(QCoreApplication::translate("debug_functions", "Notice")); //msgBox->setWindowModality(Qt::NonModal); diff --git a/src/evidence.cpp b/src/evidence.cpp index ebef7490..341bed0f 100644 --- a/src/evidence.cpp +++ b/src/evidence.cpp @@ -22,7 +22,7 @@ void Courtroom::construct_evidence() ui_evidence_delete = new AOButton(ui_evidence_overlay, ao_app); ui_evidence_image_name = new AOLineEdit(ui_evidence_overlay); ui_evidence_image_button = new AOButton(ui_evidence_overlay, ao_app); - ui_evidence_image_button->setText("Choose.."); + ui_evidence_image_button->setText(tr("Choose...")); ui_evidence_x = new AOButton(ui_evidence_overlay, ao_app); ui_evidence_description = new AOTextEdit(ui_evidence_overlay); @@ -265,7 +265,7 @@ void Courtroom::on_evidence_hover(int p_id, bool p_state) if (p_state) { if (final_id == local_evidence_list.size()) - ui_evidence_name->setText("Add new evidence..."); + ui_evidence_name->setText(tr("Add new evidence...")); else if (final_id < local_evidence_list.size()) ui_evidence_name->setText(local_evidence_list.at(final_id).name); } diff --git a/src/lobby.cpp b/src/lobby.cpp index 4a96e567..776528c9 100644 --- a/src/lobby.cpp +++ b/src/lobby.cpp @@ -71,9 +71,9 @@ void Lobby::set_widgets() qDebug() << "W: did not find lobby width or height in " << filename; // Most common symptom of bad config files and missing assets. - call_notice("It doesn't look like your client is set up correctly.\n" + call_notice(tr("It doesn't look like your client is set up correctly.\n" "Did you download all resources correctly from tiny.cc/getao, " - "including the large 'base' folder?"); + "including the large 'base' folder?")); this->resize(517, 666); } @@ -144,11 +144,11 @@ void Lobby::set_widgets() ui_loading_text->setFrameStyle(QFrame::NoFrame); ui_loading_text->setStyleSheet("background-color: rgba(0, 0, 0, 0);" "color: rgba(255, 128, 0, 255);"); - ui_loading_text->append("Loading"); + ui_loading_text->append(tr("Loading")); set_size_and_pos(ui_progress_bar, "progress_bar"); set_size_and_pos(ui_cancel, "cancel"); - ui_cancel->setText("Cancel"); + ui_cancel->setText(tr("Cancel")); ui_loading_background->hide(); @@ -313,7 +313,7 @@ void Lobby::on_server_list_clicked(QModelIndex p_model) ui_description->moveCursor(QTextCursor::Start); ui_description->ensureCursorVisible(); - ui_player_count->setText("Offline"); + ui_player_count->setText(tr("Offline")); ui_connect->setEnabled(false); diff --git a/src/main.cpp b/src/main.cpp index 80ea93bb..7c2daa66 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7,6 +7,9 @@ #include "courtroom.h" #include <QPluginLoader> #include <QDebug> +#include <QTranslator> +#include <QLibraryInfo> + int main(int argc, char *argv[]) { #if QT_VERSION > QT_VERSION_CHECK(5, 6, 0) @@ -17,6 +20,16 @@ int main(int argc, char *argv[]) #endif AOApplication main_app(argc, argv); + + QTranslator qtTranslator; + qtTranslator.load("qt_" + QLocale::system().name(), + QLibraryInfo::location(QLibraryInfo::TranslationsPath)); + main_app.installTranslator(&qtTranslator); + + QTranslator appTranslator; + appTranslator.load("ao_" + QLocale::system().name(),":/resource/translations/"); + main_app.installTranslator(&appTranslator); + main_app.construct_lobby(); main_app.net_manager->connect_to_master(); main_app.w_lobby->show(); diff --git a/src/packet_distribution.cpp b/src/packet_distribution.cpp index 942c275d..2bd26936 100644 --- a/src/packet_distribution.cpp +++ b/src/packet_distribution.cpp @@ -103,15 +103,16 @@ void AOApplication::ms_packet_received(AOPacket *p_packet) } } - call_notice("Outdated version! Your version: " + get_version_string() - + "\nPlease go to aceattorneyonline.com to update."); + call_notice(tr("Outdated version! Your version: %1\n" + "Please go to aceattorneyonline.com to update.") + .arg(get_version_string())); destruct_courtroom(); destruct_lobby(); } else if (header == "DOOM") { - call_notice("You have been exiled from AO." - "Have a nice day."); + call_notice(tr("You have been exiled from AO.\n" + "Have a nice day.")); destruct_courtroom(); destruct_lobby(); } @@ -245,7 +246,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) courtroom_loaded = false; - QString window_title = "Attorney Online 2"; + QString window_title = tr("Attorney Online 2"); int selected_server = w_lobby->get_selected_server(); QString server_address = "", server_name = ""; @@ -271,7 +272,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) w_courtroom->set_window_title(window_title); w_lobby->show_loading_overlay(); - w_lobby->set_loading_text("Loading"); + w_lobby->set_loading_text(tr("Loading")); w_lobby->set_loading_value(0); AOPacket *f_packet; @@ -359,7 +360,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) ++loaded_evidence; - w_lobby->set_loading_text("Loading evidence:\n" + QString::number(loaded_evidence) + "/" + QString::number(evidence_list_size)); + w_lobby->set_loading_text(tr("Loading evidence:\n%1/%2").arg(QString::number(loaded_evidence)).arg(QString::number(evidence_list_size))); w_courtroom->append_evidence(f_evi); @@ -391,7 +392,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) ++loaded_music; - w_lobby->set_loading_text("Loading music:\n" + QString::number(loaded_music) + "/" + QString::number(music_list_size)); + w_lobby->set_loading_text(tr("Loading music:\n%1/%2").arg(QString::number(loaded_music)).arg(QString::number(music_list_size))); if (musics_time) { @@ -463,7 +464,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) ++loaded_chars; - w_lobby->set_loading_text("Loading chars:\n" + QString::number(loaded_chars) + "/" + QString::number(char_list_size)); + w_lobby->set_loading_text(tr("Loading chars:\n%1/%2").arg(QString::number(loaded_chars)).arg(QString::number(char_list_size))); w_courtroom->append_char(f_char); @@ -486,7 +487,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) { ++loaded_music; - w_lobby->set_loading_text("Loading music:\n" + QString::number(loaded_music) + "/" + QString::number(music_list_size)); + w_lobby->set_loading_text(tr("Loading music:\n%1/%2").arg(QString::number(loaded_music)).arg(QString::number(music_list_size))); if (musics_time) { @@ -638,7 +639,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) { if (courtroom_constructed && f_contents.size() >= 1) { - call_notice("You have been kicked from the server.\nReason: " + f_contents.at(0)); + call_notice(tr("You have been kicked from the server.\nReason: ") + f_contents.at(0)); construct_lobby(); destruct_courtroom(); } @@ -655,7 +656,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet) } else if (header == "BD") { - call_notice("You are banned on this server.\nReason: " + f_contents.at(0)); + call_notice(tr("You are banned on this server.\nReason: ") + f_contents.at(0)); } else if (header == "ZZ") { |
