Merge pull request #88 from AttorneyOnline/i18n

I18n
This commit is contained in:
stonedDiscord 2019-08-08 00:20:51 +02:00 committed by GitHub
commit 7fe64163ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 4501 additions and 53 deletions

View File

@ -41,5 +41,11 @@ CONFIG += c++14
RESOURCES += resources.qrc RESOURCES += resources.qrc
TRANSLATIONS = resource/translations/ao_en.ts \
resource/translations/ao_jp.ts \
resource/translations/ao_de.ts \
resource/translations/ao_ru.ts \
resource/translations/ao_es.ts
win32:RC_ICONS = resource/logo.ico win32:RC_ICONS = resource/logo.ico
macx:ICON = resource/logo.icns macx:ICON = resource/logo.icns

View File

@ -55,6 +55,8 @@ private:
QLineEdit *ui_ms_textbox; QLineEdit *ui_ms_textbox;
QLabel *ui_discord_lbl; QLabel *ui_discord_lbl;
QCheckBox *ui_discord_cb; QCheckBox *ui_discord_cb;
QLabel *ui_language_label;
QComboBox *ui_language_combobox;
QWidget *ui_callwords_tab; QWidget *ui_callwords_tab;
QWidget *ui_callwords_widget; QWidget *ui_callwords_widget;

View File

@ -5,6 +5,8 @@
#include <ctime> #include <ctime>
#include <QDebug> #include <QDebug>
#include <string> #include <string>
#include <QCoreApplication>
#include <discord-rpc.h> #include <discord-rpc.h>
#include <cstring> #include <cstring>
@ -16,6 +18,8 @@ namespace AttorneyOnline {
class Discord class Discord
{ {
Q_DECLARE_TR_FUNCTIONS(Discord)
private: private:
const char* APPLICATION_ID = "399779271737868288"; const char* APPLICATION_ID = "399779271737868288";
std::string server_name, server_id; std::string server_name, server_id;

Binary file not shown.

View File

@ -0,0 +1,982 @@
<?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>
<location filename="../../src/aoapplication.cpp" line="163"/>
<source>Error connecting to master server. Will try again in %1 seconds.</source>
<translation>Fehler bei der Verbindung zum Master Server. Erneuter Versuch in %1 Sekunden.</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="167"/>
<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: %1</source>
<translation>Du wurdest von diesem Server geschmissen.
Grund: %1</translation>
</message>
<message>
<location filename="../../src/packet_distribution.cpp" line="651"/>
<source>You have been banned from the server.
Reason: %1</source>
<translation>Du wurdest von diesem Server verbannt.
Grund: %1</translation>
</message>
<message>
<location filename="../../src/packet_distribution.cpp" line="659"/>
<source>You are banned on this server.
Reason: %1</source>
<translation>Du bist von diesem Server verbannt.
Grund: %1</translation>
</message>
<message>
<source>You have been kicked from the server.
Reason: </source>
<translation type="vanished">Du wurdest von diesem Server geschmissen.
Grund: </translation>
</message>
<message>
<source>You are banned on this server.
Reason: </source>
<translation type="vanished">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&apos;s look as well, you&apos;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 &apos;infinite&apos;.</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 &apos;Custom shownames&apos; 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="171"/>
<source>Language:</source>
<translation>Sprache:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="172"/>
<source>Sets the language if you don&apos;t want to use your system language.</source>
<translation>Setzte die Sprache falls du nicht die Systemsprache verwenden möchtest.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="186"/>
<source>Callwords</source>
<translation>Alarmwörter</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="211"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Enter as many callwords as you would like. These are case insensitive. Make sure to leave every callword in its own line!&lt;br&gt;Do not leave a line with a space at the end -- you will be alerted everytime someone uses a space in their messages.&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Gib so viele Alarmwörter ein wie du möchtest. Groß/Kleinschreibung ist egal. Für jede Wort nur eine Zeile!&lt;br&gt;Bitte keine leere Zeile am Ende -- du bekommst sonst bei jeder Nachricht einen Alarm.&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="217"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="228"/>
<source>Audio device:</source>
<translation>Audiogerät:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="229"/>
<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="263"/>
<source>Music:</source>
<translation>Musik:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="264"/>
<source>Sets the music&apos;s default volume.</source>
<translation>Setzt die Musiklautstärke.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="276"/>
<source>SFX:</source>
<translation>SFX:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="277"/>
<source>Sets the SFX&apos;s default volume. Interjections and actual sound effects count as &apos;SFX&apos;.</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="290"/>
<source>Blips:</source>
<translation>Blips:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="291"/>
<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="309"/>
<source>Blip rate:</source>
<translation>Bliprate:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="310"/>
<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="321"/>
<source>Blank blips:</source>
<translation>Leere Blips:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="322"/>
<source>If true, the game will play a blip sound even when a space is &apos;being said&apos;.</source>
<translation>Wenn angehakt wird das Spiel auch bei einem Leerzeichen einen Blip machen.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="334"/>
<source>Casing</source>
<translation>Fälle</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="348"/>
<source>This server supports case alerts.</source>
<translation>Dieser Server unterstützt Fallalarme.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="350"/>
<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="351"/>
<source>Pretty self-explanatory.</source>
<translation>Eigentlich selbsterklärend.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="358"/>
<source>Casing:</source>
<translation>Fälle:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="359"/>
<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="372"/>
<source>Defense:</source>
<translation>Verteidigung:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="373"/>
<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="386"/>
<source>Prosecution:</source>
<translation>Kläger:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="387"/>
<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="400"/>
<source>Judge:</source>
<translation>Richter:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="401"/>
<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="414"/>
<source>Juror:</source>
<translation>Jury:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="415"/>
<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="428"/>
<source>Stenographer:</source>
<translation>Stenograph:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="429"/>
<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="442"/>
<source>CM:</source>
<translation>CM:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="443"/>
<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="456"/>
<source>Hosting cases:</source>
<translation>Fallleitung:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="457"/>
<source>If you&apos;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:
%1/%2</source>
<translation>Generiere Charaktere:
%1/%2</translation>
</message>
<message>
<source>Generating chars:
</source>
<translation type="vanished">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"/>
<location filename="../../src/courtroom.cpp" line="608"/>
<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>
<location filename="../../src/courtroom.cpp" line="566"/>
<source>Music</source>
<translation>Musik</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="568"/>
<source>Sfx</source>
<translation>Sfx</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="570"/>
<source>Blips</source>
<translation>Blips</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="573"/>
<source>Log limit</source>
<translation>Verlaufsgrenze</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="583"/>
<location filename="../../src/courtroom.cpp" line="2959"/>
<source>Server</source>
<translation>Server</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="596"/>
<source>Change character</source>
<translation>Charakter ändern</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="599"/>
<source>Reload theme</source>
<translation>Aussehen neu laden</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="602"/>
<source>Call mod</source>
<translation>Moderator rufen</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="605"/>
<source>Settings</source>
<translation>Einstellungen</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="611"/>
<source>A/M</source>
<translation>A/M</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="614"/>
<source>Preanim</source>
<translation>Voranimation</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="248"/>
<source>% offset</source>
<translation>% Abstand</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&apos;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&apos;t have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it&apos;s likely the case file you&apos;re looking for can&apos;t be found in there.</source>
<translation>Du hattest keinen &apos;base/cases&apos; 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: %1</source>
<translation>Du musst einen Dateinamen angeben (ohne .ini). Stelle sicher das er im &apos;base/cases&apos; Ordner ist und das er korrekt formatiert ist.
Verfügbare Fälle: %1</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2845"/>
<source>Case made by %1.</source>
<translation>Fall von %1.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2851"/>
<source>Navigate to %1 for the CM doc.</source>
<translation>Gehe zu %1 für das CM Dokument.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2870"/>
<source>Your case &quot;%1&quot; was loaded!</source>
<translation>Dein Fall &quot;%1&quot; wurde geladen!</translation>
</message>
<message>
<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="vanished">Du musst einen Dateinamen angeben (ohne .ini). Stelle sicher das er im &apos;base/cases&apos; 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>
<source>Case made by </source>
<translation type="vanished">Fall von </translation>
</message>
<message>
<source>Navigate to </source>
<translation type="vanished">Gehe zu </translation>
</message>
<message>
<source> for the CM doc.</source>
<translation type="vanished"> für das CM Dokument.</translation>
</message>
<message>
<source>Your case &quot;</source>
<translation type="vanished">Dein Fall &quot;</translation>
</message>
<message>
<source>&quot; was loaded!</source>
<translation type="vanished">&quot; wurde geladen!</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2882"/>
<source>You don&apos;t have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it&apos;s likely that you somehow deleted it.</source>
<translation>Du hattest keinen &apos;base/cases&apos; 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>
<source>Objection!</source>
<translation type="vanished">Einspruch!</translation>
</message>
<message>
<source>In Lobby</source>
<translation type="vanished">In Lobby</translation>
</message>
<message>
<source>Idle</source>
<translation type="vanished">Untätig</translation>
</message>
<message>
<source>In a Server</source>
<translation type="vanished">In einem Server</translation>
</message>
<message>
<source>Playing as %1</source>
<translation type="vanished">Spielt als %1</translation>
</message>
<message>
<source>Spectating</source>
<translation type="vanished">Zuschauend</translation>
</message>
</context>
<context>
<name>Lobby</name>
<message>
<location filename="../../src/lobby.cpp" line="12"/>
<source>Attorney Online 2</source>
<translation>Attorney Online 2</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="29"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="74"/>
<source>It doesn&apos;t look like your client is set up correctly.
Did you download all resources correctly from tiny.cc/getao, including the large &apos;base&apos; folder?</source>
<translation>Dein Client ist nicht korrekt eingerichtet.
Hast du ALLES von tiny.cc/getao heruntergeladen und entpackt, auch den großen &apos;base&apos; Ordner?</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="104"/>
<source>Version: %1</source>
<translation>Version: %1</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>&lt;h2&gt;Attorney Online %1&lt;/h2&gt;The courtroom drama simulator&lt;p&gt;&lt;b&gt;Source code:&lt;/b&gt; &lt;a href=&apos;https://github.com/AttorneyOnline/AO2-Client&apos;&gt;https://github.com/AttorneyOnline/AO2-Client&lt;/a&gt;&lt;p&gt;&lt;b&gt;Major development:&lt;/b&gt;&lt;br&gt;OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter&lt;p&gt;&lt;b&gt;Special thanks:&lt;/b&gt;&lt;br&gt;Remy, Iamgoofball, Hibiki, Qubrick (webAO), Ruekasu (UI design), Draxirch (UI design), Unishred, Argoneus (tsuserver), Fiercy, Noevain, Cronnicossy</source>
<translation>&lt;h2&gt;Attorney Online %1&lt;/h2&gt;Der Gerichtsdrama Simulator&lt;p&gt;&lt;b&gt;Quelltext:&lt;/b&gt; &lt;a href=&apos;https://github.com/AttorneyOnline/AO2-Client&apos;&gt;https://github.com/AttorneyOnline/AO2-Client&lt;/a&gt;&lt;p&gt;&lt;b&gt;Leitende Entwicklung:&lt;/b&gt;&lt;br&gt;OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter&lt;p&gt;&lt;b&gt;Danksagungen:&lt;/b&gt;&lt;br&gt;Remy, Iamgoofball, Hibiki, Qubrick (webAO), Ruekasu (UI design), Draxirch (UI design), Unishred, Argoneus (tsuserver), Fiercy, Noevain, Cronnicossy</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="376"/>
<source>Online: %1/%2</source>
<translation>Online: %1/%2</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="114"/>
<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>

Binary file not shown.

View File

@ -0,0 +1,826 @@
<?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="163"/>
<source>Error connecting to master server. Will try again in %1 seconds.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aoapplication.cpp" line="167"/>
<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: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/packet_distribution.cpp" line="651"/>
<source>You have been banned from the server.
Reason: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/packet_distribution.cpp" line="659"/>
<source>You are banned on this server.
Reason: %1</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&apos;s look as well, you&apos;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 &apos;infinite&apos;.</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 &apos;Custom shownames&apos; 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="171"/>
<source>Language:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="172"/>
<source>Sets the language if you don&apos;t want to use your system language.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="186"/>
<source>Callwords</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="211"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Enter as many callwords as you would like. These are case insensitive. Make sure to leave every callword in its own line!&lt;br&gt;Do not leave a line with a space at the end -- you will be alerted everytime someone uses a space in their messages.&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="217"/>
<source>Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="228"/>
<source>Audio device:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="229"/>
<source>Sets the audio device for all sounds.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="263"/>
<source>Music:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="264"/>
<source>Sets the music&apos;s default volume.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="276"/>
<source>SFX:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="277"/>
<source>Sets the SFX&apos;s default volume. Interjections and actual sound effects count as &apos;SFX&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="290"/>
<source>Blips:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="291"/>
<source>Sets the volume of the blips, the talking sound effects.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="309"/>
<source>Blip rate:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="310"/>
<source>Sets the delay between playing the blip sounds.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="321"/>
<source>Blank blips:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="322"/>
<source>If true, the game will play a blip sound even when a space is &apos;being said&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="334"/>
<source>Casing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="348"/>
<source>This server supports case alerts.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="350"/>
<source>This server does not support case alerts.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="351"/>
<source>Pretty self-explanatory.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="358"/>
<source>Casing:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="359"/>
<source>If checked, you will get alerts about case announcements.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="372"/>
<source>Defense:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="373"/>
<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="386"/>
<source>Prosecution:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="387"/>
<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="400"/>
<source>Judge:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="401"/>
<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="414"/>
<source>Juror:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="415"/>
<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="428"/>
<source>Stenographer:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="429"/>
<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="442"/>
<source>CM:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="443"/>
<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="456"/>
<source>Hosting cases:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="457"/>
<source>If you&apos;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:
%1/%2</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"/>
<location filename="../../src/courtroom.cpp" line="608"/>
<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="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: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2845"/>
<source>Case made by %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2851"/>
<source>Navigate to %1 for the CM doc.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2870"/>
<source>Your case &quot;%1&quot; was loaded!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="583"/>
<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="248"/>
<source>% offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="566"/>
<source>Music</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="568"/>
<source>Sfx</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="570"/>
<source>Blips</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="573"/>
<source>Log limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="596"/>
<source>Change character</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="599"/>
<source>Reload theme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="602"/>
<source>Call mod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="605"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="611"/>
<source>A/M</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="614"/>
<source>Preanim</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&apos;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&apos;t have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it&apos;s likely the case file you&apos;re looking for can&apos;t be found in there.</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="2882"/>
<source>You don&apos;t have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it&apos;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>Lobby</name>
<message>
<location filename="../../src/lobby.cpp" line="12"/>
<source>Attorney Online 2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="29"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="74"/>
<source>It doesn&apos;t look like your client is set up correctly.
Did you download all resources correctly from tiny.cc/getao, including the large &apos;base&apos; folder?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="104"/>
<source>Version: %1</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>&lt;h2&gt;Attorney Online %1&lt;/h2&gt;The courtroom drama simulator&lt;p&gt;&lt;b&gt;Source code:&lt;/b&gt; &lt;a href=&apos;https://github.com/AttorneyOnline/AO2-Client&apos;&gt;https://github.com/AttorneyOnline/AO2-Client&lt;/a&gt;&lt;p&gt;&lt;b&gt;Major development:&lt;/b&gt;&lt;br&gt;OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter&lt;p&gt;&lt;b&gt;Special thanks:&lt;/b&gt;&lt;br&gt;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="376"/>
<source>Online: %1/%2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="114"/>
<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>

Binary file not shown.

View File

@ -0,0 +1,881 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="es">
<context>
<name>AOApplication</name>
<message>
<location filename="../../src/aoapplication.cpp" line="138"/>
<source>Disconnected from server.</source>
<translation>Desconectado del servidor.</translation>
</message>
<message>
<location filename="../../src/aoapplication.cpp" line="163"/>
<source>Error connecting to master server. Will try again in %1 seconds.</source>
<translation>Error al conectarse a la lista de servidores. Se intentará nuevamente en %1 segundos.</translation>
</message>
<message>
<location filename="../../src/aoapplication.cpp" line="167"/>
<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>
<translatorcomment>I translated master servers as &quot;lista de servidores&quot; because literally nobody will understand if i make the literal translation &quot;servidor maestro&quot;. And in the end a master server is just a list of servers. Also removed the part about having multiple master servers, i just don&apos;t think the average user will understand this even if i do a good translation.</translatorcomment>
<translation>Hubo un error al obtener la lista de servidores. Verifique su conexión a Internet y firewall, y vuelva a intentarlo.</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>¡Versión desactualizada! Su versión: %1 Vaya a aceattorneyonline.com para actualizar.</translation>
</message>
<message>
<location filename="../../src/packet_distribution.cpp" line="114"/>
<source>You have been exiled from AO.
Have a nice day.</source>
<translation>Has sido exiliado de AO.
Que tengas un buen día.</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>Cargando</translation>
</message>
<message>
<location filename="../../src/packet_distribution.cpp" line="363"/>
<source>Loading evidence:
%1/%2</source>
<translation>Cargando evidencia:
%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>Cargando música:
%1/%2</translation>
</message>
<message>
<location filename="../../src/packet_distribution.cpp" line="467"/>
<source>Loading chars:
%1/%2</source>
<translation>Cargando personajes:
%1/%2</translation>
</message>
<message>
<location filename="../../src/packet_distribution.cpp" line="642"/>
<source>You have been kicked from the server.
Reason: %1</source>
<translation>Has sido expulsado del servidor.
Razón: %1</translation>
</message>
<message>
<location filename="../../src/packet_distribution.cpp" line="651"/>
<source>You have been banned from the server.
Reason: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/packet_distribution.cpp" line="659"/>
<source>You are banned on this server.
Reason: %1</source>
<translation>Has sido baneado en este servidor.
Razón: %1</translation>
</message>
<message>
<source>You have been kicked from the server.
Reason: </source>
<translation type="vanished">Has sido expulsado del servidor.
Razón: </translation>
</message>
<message>
<source>You are banned on this server.
Reason: </source>
<translation type="vanished">Has sido baneado en este servidor.
Razón: </translation>
</message>
</context>
<context>
<name>AOCaseAnnouncerDialog</name>
<message>
<location filename="../../src/aocaseannouncerdialog.cpp" line="9"/>
<source>Case Announcer</source>
<translation>Anunciar caso</translation>
</message>
<message>
<location filename="../../src/aocaseannouncerdialog.cpp" line="38"/>
<source>Case title:</source>
<translation>Título del caso:</translation>
</message>
<message>
<location filename="../../src/aocaseannouncerdialog.cpp" line="48"/>
<source>Defense needed</source>
<translation>Se necesita defensa</translation>
</message>
<message>
<location filename="../../src/aocaseannouncerdialog.cpp" line="50"/>
<source>Prosecution needed</source>
<translation>Se necesita fiscal</translation>
</message>
<message>
<location filename="../../src/aocaseannouncerdialog.cpp" line="52"/>
<source>Judge needed</source>
<translation>Se necesita juez</translation>
</message>
<message>
<location filename="../../src/aocaseannouncerdialog.cpp" line="54"/>
<source>Jurors needed</source>
<translation>Se necesita jurado</translation>
</message>
<message>
<location filename="../../src/aocaseannouncerdialog.cpp" line="56"/>
<source>Stenographer needed</source>
<translation>Se necesita taquígrafo</translation>
</message>
</context>
<context>
<name>AOOptionsDialog</name>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="11"/>
<source>Settings</source>
<translation>Ajustes</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="40"/>
<source>Gameplay</source>
<translation>Jugabilidad</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="51"/>
<source>Theme:</source>
<translation>Tema visual:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="52"/>
<source>Sets the theme used in-game. If the new theme changes the lobby&apos;s look as well, you&apos;ll need to reload the lobby for the changes to take effect, such as by joining a server and leaving it.</source>
<translation>Establece el tema visual utilizado en el juego. Si el nuevo tema también cambia el aspecto del lobby, deberá volver a cargar el lobby para que los cambios surtan efecto, como unirse a un servidor y volver al lobby.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="81"/>
<source>Log goes downwards:</source>
<translation>Invertir historial IC:</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>Si está marcado, los nuevos mensajes aparecerán en la parte inferior (como el chat OOC).</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="94"/>
<source>Log length:</source>
<translation>Longitud del historial:</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 &apos;infinite&apos;.</source>
<translation>La cantidad de mensajes que mantendrá el historial del chat IC antes de eliminar mensajes más antiguos. 0 significa &apos;infinito&apos;.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="113"/>
<source>Default username:</source>
<translation>Usuario predeterminado:</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>Su nombre OOC se establecerá automáticamente a este cuando se una a un servidor.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="126"/>
<source>Custom shownames:</source>
<translation>Mostrar nombres:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="127"/>
<source>Gives the default value for the in-game &apos;Custom shownames&apos; tickbox, which in turn determines whether the client should display custom in-character names.</source>
<translation>Activa la casilla &apos;Mostrar nombres&apos; de forma predeterminada en el juego, que a su vez determina si el cliente debe mostrar nombres personalizados en los personajes.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="145"/>
<source>Backup MS:</source>
<translation>MS de respaldo:</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>Si la lista de servidores predeterminada falla, el juego probará la dirección proporcionada aquí.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="158"/>
<source>Discord:</source>
<translation></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>Permite a otros en Discord ver en qué servidor estás, qué personaje juegas y cuánto tiempo has estado jugando.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="171"/>
<source>Language:</source>
<translation>Idioma:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="172"/>
<source>Sets the language if you don&apos;t want to use your system language.</source>
<translation>Establece el idioma si no desea utilizar el idioma de su sistema.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="186"/>
<source>Callwords</source>
<translation></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="211"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Enter as many callwords as you would like. These are case insensitive. Make sure to leave every callword in its own line!&lt;br&gt;Do not leave a line with a space at the end -- you will be alerted everytime someone uses a space in their messages.&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Ingrese tantas palabras de llamada como desee.&lt;br&gt;Esto no distingue entre mayúsculas y minúsculas. ¡Asegúrese de dejar cada palabra en su propia línea!&lt;br&gt;No deje una línea con un espacio al final; recibirá una alerta cada vez que alguien use un espacio en sus mensajes.&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="217"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="228"/>
<source>Audio device:</source>
<translation>Dispositivo:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="229"/>
<source>Sets the audio device for all sounds.</source>
<translation>Establece el dispositivo de audio.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="263"/>
<source>Music:</source>
<translation>Música:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="264"/>
<source>Sets the music&apos;s default volume.</source>
<translation>Establece el volumen predeterminado de la música.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="276"/>
<source>SFX:</source>
<translation></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="277"/>
<source>Sets the SFX&apos;s default volume. Interjections and actual sound effects count as &apos;SFX&apos;.</source>
<translation>Establece el volumen predeterminado de SFX. Las interjecciones y los efectos de sonido reales cuentan como &apos;SFX&apos;.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="290"/>
<source>Blips:</source>
<translation></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="291"/>
<source>Sets the volume of the blips, the talking sound effects.</source>
<translation>Establece el volumen de los blips, el sonido al hablar.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="309"/>
<source>Blip rate:</source>
<translation>Tasa de blips:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="310"/>
<source>Sets the delay between playing the blip sounds.</source>
<translation>Establece el retraso entre la reproducción de los sonidos blip.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="321"/>
<source>Blank blips:</source>
<translation>Blips en blanco:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="322"/>
<source>If true, the game will play a blip sound even when a space is &apos;being said&apos;.</source>
<translation>Si está marcada, el juego reproducirá un sonido blip incluso cuando se &apos;dice&apos; un espacio.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="334"/>
<source>Casing</source>
<translation>Caso</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="348"/>
<source>This server supports case alerts.</source>
<translation>Este servidor admite alertas de casos.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="350"/>
<source>This server does not support case alerts.</source>
<translation>Este servidor no admite alertas de casos.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="351"/>
<source>Pretty self-explanatory.</source>
<translation>Bastante autoexplicativo.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="358"/>
<source>Casing:</source>
<translation>Caso:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="359"/>
<source>If checked, you will get alerts about case announcements.</source>
<translation>Si está marcado, recibirá anuncios de casos.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="372"/>
<source>Defense:</source>
<translation>Defensa:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="373"/>
<source>If checked, you will get alerts about case announcements if a defense spot is open.</source>
<translation>Si está marcado, recibirá alertas sobre anuncios de casos si hay un lugar de defensa abierto.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="386"/>
<source>Prosecution:</source>
<translation>Fiscal:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="387"/>
<source>If checked, you will get alerts about case announcements if a prosecutor spot is open.</source>
<translation>Si está marcada, recibirá alertas sobre anuncios de casos si hay un puesto de fiscal abierto.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="400"/>
<source>Judge:</source>
<translation>Juez:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="401"/>
<source>If checked, you will get alerts about case announcements if the judge spot is open.</source>
<translation>Si está marcado, recibirá alertas sobre anuncios de casos si el puesto de juez está abierto.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="414"/>
<source>Juror:</source>
<translation>Jurado:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="415"/>
<source>If checked, you will get alerts about case announcements if a juror spot is open.</source>
<translation>Si está marcado, recibirá alertas sobre anuncios de casos si hay un puesto de jurado abierto.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="428"/>
<source>Stenographer:</source>
<translation>Taquígrafo:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="429"/>
<source>If checked, you will get alerts about case announcements if a stenographer spot is open.</source>
<translation>Si está marcado, recibirá alertas sobre anuncios de casos si hay un lugar de taquígrafo abierto.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="442"/>
<source>CM:</source>
<translation></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="443"/>
<source>If checked, you will appear amongst the potential CMs on the server.</source>
<translation>Si está marcado, aparecerá entre los posibles CM en el servidor.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="456"/>
<source>Hosting cases:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="457"/>
<source>If you&apos;re a CM, enter what cases you are willing to host.</source>
<translation>Si eres un CM, ingresa qué casos estás dispuesto a organizar.</translation>
</message>
</context>
<context>
<name>Courtroom</name>
<message>
<location filename="../../src/charselect.cpp" line="21"/>
<source>Password</source>
<translation>Contraseña</translation>
</message>
<message>
<location filename="../../src/charselect.cpp" line="27"/>
<source>Spectator</source>
<translation>Espectador</translation>
</message>
<message>
<location filename="../../src/charselect.cpp" line="30"/>
<location filename="../../src/courtroom.cpp" line="138"/>
<source>Search</source>
<translation>Buscar</translation>
</message>
<message>
<location filename="../../src/charselect.cpp" line="35"/>
<source>Passworded</source>
<translation>Contraseña</translation>
</message>
<message>
<location filename="../../src/charselect.cpp" line="39"/>
<source>Taken</source>
<translation>En uso</translation>
</message>
<message>
<location filename="../../src/charselect.cpp" line="217"/>
<source>Generating chars:
%1/%2</source>
<translation>Generando personajes:
%1/%2</translation>
</message>
<message>
<source>Generating chars:
</source>
<translation type="obsolete">Generando personajes:
</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>Mensaje</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="130"/>
<source>Name</source>
<translation>Nombre</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>Guardia</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="195"/>
<location filename="../../src/courtroom.cpp" line="608"/>
<source>Casing</source>
<translation>Caso</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>Blanco</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="218"/>
<source>Green</source>
<translation>Verde</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="219"/>
<source>Red</source>
<translation>Rojo</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="220"/>
<source>Orange</source>
<translation>Naranja</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="221"/>
<source>Blue</source>
<translation>Azul</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="222"/>
<source>Yellow</source>
<translation>Amarillo</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="223"/>
<source>Rainbow</source>
<translation>Arcoíris</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="224"/>
<source>Pink</source>
<translation>Rosado</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="225"/>
<source>Cyan</source>
<translation>Cian</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="248"/>
<source>% offset</source>
<translation>% desplazamiento</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="566"/>
<source>Music</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="568"/>
<source>Sfx</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="570"/>
<source>Blips</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="573"/>
<source>Log limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="596"/>
<source>Change character</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="599"/>
<source>Reload theme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="602"/>
<source>Call mod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="605"/>
<source>Settings</source>
<translation>Ajustes</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="611"/>
<source>A/M</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="614"/>
<source>Preanim</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="692"/>
<source>Back to Lobby</source>
<translation>Volver al lobby</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2681"/>
<source>You were granted the Guard button.</source>
<translation>Te ha sido otorgado el botón Guardia.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2688"/>
<source>This does nothing, but there you go.</source>
<translation>Esto no hace nada, pero ahí lo tienes.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2695"/>
<source>You opened the settings menu.</source>
<translation>Abriste el menú de configuración.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2710"/>
<source>You will now pair up with </source>
<translation>Ahora te emparejarás con </translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2712"/>
<source> if they also choose your character in return.</source>
<translation> si ellos también eligen a tu personaje a cambio.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2718"/>
<source>You are no longer paired with anyone.</source>
<translation>Ya no estás emparejado con nadie.</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>¿Estás seguro de que lo escribiste bien? El ID de personaje no pudo ser reconocido.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2739"/>
<source>You have set your offset to </source>
<translation>Ha configurado su desplazamiento en </translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2746"/>
<source>Your offset must be between -100% and 100%!</source>
<translation>¡Su desplazamiento debe estar entre -100% y 100%!</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2751"/>
<source>That offset does not look like one.</source>
<translation>Ese desplazamiento no se parece a uno.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2757"/>
<source>You switched your music and area list.</source>
<translation>Cambiaste tu lista de música y área.</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>Ha habilitado forzosamente funciones que el servidor puede no admitir. Es posible que no pueda hablar IC, o peor, debido a esto.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2775"/>
<source>Your pre-animations interrupt again.</source>
<translation>Sus pre-animaciones interrumpen de nuevo.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2777"/>
<source>Your pre-animations will not interrupt text.</source>
<translation>Sus pre-animaciones no interrumpirán el texto.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2788"/>
<source>Couldn&apos;t open chatlog.txt to write into.</source>
<translation>No se pudo abrir chatlog.txt para escribir.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2801"/>
<source>The IC chatlog has been saved.</source>
<translation>El chat IC se ha guardado.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2813"/>
<source>You don&apos;t have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it&apos;s likely the case file you&apos;re looking for can&apos;t be found in there.</source>
<translation>¡No tienes una carpeta `base/cases /`! Ha sido creada para ti. Pero debido a que no existia la carpeta, tampoco habían casos guardados ahí.</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: %1</source>
<translation>¡Debe dar un nombre de archivo para cargar (no se necesita extensión)! Asegúrese de que esté en la carpeta `base/cases/` y de que tenga el formato correcto.
Casos que puede cargar: %1</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2845"/>
<source>Case made by %1.</source>
<translation>Caso hecho por %1.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2851"/>
<source>Navigate to %1 for the CM doc.</source>
<translation>Navegue a %1 para el documento del CM.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2870"/>
<source>Your case &quot;%1&quot; was loaded!</source>
<translation>Su caso &quot;%1&quot; fue cargado!</translation>
</message>
<message>
<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="obsolete">¡Debe dar un nombre de archivo para cargar (no se necesita extensión)! Asegúrese de que esté en la carpeta `base/cases/` y de que tenga el formato correcto.
Casos que puede cargar: </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>¡Demasiados argumentos para cargar un caso! Solo necesita un nombre de archivo, sin extensión.</translation>
</message>
<message>
<source>Case made by </source>
<translation type="obsolete">Caso hecho por </translation>
</message>
<message>
<source>Navigate to </source>
<translation type="obsolete">Navegue a </translation>
</message>
<message>
<source> for the CM doc.</source>
<translation type="obsolete"> para el documento de CM.</translation>
</message>
<message>
<source>Your case &quot;</source>
<translation type="obsolete">Su caso &quot;</translation>
</message>
<message>
<source>&quot; was loaded!</source>
<translation type="obsolete">&quot; fue cargado!</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2882"/>
<source>You don&apos;t have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it&apos;s likely that you somehow deleted it.</source>
<translation>¡No tienes una carpeta `base/cases /`! Fue creada para ti.</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>¡Debe dar un nombre de archivo para guardar (no se necesita la extensión) y el estado de la sala del tribunal!</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>
<translatorcomment>why two exclamations, seems excesive.</translatorcomment>
<translation>¡Demasiados argumentos para salvar un caso! Solo necesita un nombre de archivo sin extensión y el estado de la sala del tribunal.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2923"/>
<source>Succesfully saved, edit doc and cmdoc link on the ini!</source>
<translation>¡Guardado con éxito, puede editar el doc y doc link en el archivo ini!</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="583"/>
<location filename="../../src/courtroom.cpp" line="2959"/>
<source>Server</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="3422"/>
<source>Reason:</source>
<translation>Razón:</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="3423"/>
<source>Call Moderator</source>
<translation>Llamar Moderador</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="3431"/>
<location filename="../../src/courtroom.cpp" line="3434"/>
<source>Error</source>
<translation>Error</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="3431"/>
<source>You must provide a reason.</source>
<translation>Debes proporcionar una razón.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="3434"/>
<source>The message is too long.</source>
<translation>El mensaje es muy largo.</translation>
</message>
<message>
<location filename="../../src/evidence.cpp" line="25"/>
<source>Choose...</source>
<translation>Elegir...</translation>
</message>
<message>
<location filename="../../src/evidence.cpp" line="194"/>
<source>Images (*.png)</source>
<translation>Imágenes (* .png)</translation>
</message>
<message>
<location filename="../../src/evidence.cpp" line="268"/>
<source>Add new evidence...</source>
<translation>Añadir nueva evidencia...</translation>
</message>
</context>
<context>
<name>Lobby</name>
<message>
<location filename="../../src/lobby.cpp" line="12"/>
<source>Attorney Online 2</source>
<translation>Attorney Online 2</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="29"/>
<source>Name</source>
<translation>Nombre</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="74"/>
<source>It doesn&apos;t look like your client is set up correctly.
Did you download all resources correctly from tiny.cc/getao, including the large &apos;base&apos; folder?</source>
<translation>No parece que su cliente esté configurado correctamente.
¿Descargó todos los recursos correctamente desde tiny.cc/getao, incluida la gran carpeta &apos;base&apos;?</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="104"/>
<source>Version: %1</source>
<translation>Versión: %1</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="147"/>
<source>Loading</source>
<translation>Cargando</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="151"/>
<source>Cancel</source>
<translation>Cancelar</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="270"/>
<source>&lt;h2&gt;Attorney Online %1&lt;/h2&gt;The courtroom drama simulator&lt;p&gt;&lt;b&gt;Source code:&lt;/b&gt; &lt;a href=&apos;https://github.com/AttorneyOnline/AO2-Client&apos;&gt;https://github.com/AttorneyOnline/AO2-Client&lt;/a&gt;&lt;p&gt;&lt;b&gt;Major development:&lt;/b&gt;&lt;br&gt;OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter&lt;p&gt;&lt;b&gt;Special thanks:&lt;/b&gt;&lt;br&gt;Remy, Iamgoofball, Hibiki, Qubrick (webAO), Ruekasu (UI design), Draxirch (UI design), Unishred, Argoneus (tsuserver), Fiercy, Noevain, Cronnicossy</source>
<translation>&lt;h2&gt;Attorney Online %1&lt;/h2&gt;El simulador de drama de la sala del tribunal&lt;p&gt;&lt;b&gt;Código fuente:&lt;/b&gt; &lt;a href=&apos;https://github.com/AttorneyOnline/AO2-Client&apos;&gt;https: //github.com/AttorneyOnline/AO2-Client&lt;/a&gt;&lt;p&gt;&lt;b&gt;Desarrollo mayor:&lt;/b&gt; &lt;br&gt;OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter&lt;p&gt;&lt;b&gt;Agradecimiento especial:&lt;/b&gt;&lt;br&gt;Remy, Iamgoofball, Hibiki, Qubrick (webAO), Ruekasu (diseño de interfaz de usuario), Draxirch (diseño de interfaz de usuario), Unishred, Argoneus (tsuserver), Fiercy, Noevain, Cronnicossy</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="376"/>
<source>Online: %1/%2</source>
<translation>En línea: %1/%2</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="114"/>
<location filename="../../src/lobby.cpp" line="316"/>
<source>Offline</source>
<translation>Fuera de línea</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">Error</translation>
</message>
<message>
<location filename="../../src/debug_functions.cpp" line="23"/>
<source>Notice</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

Binary file not shown.

View File

@ -0,0 +1,849 @@
<?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="163"/>
<source>Error connecting to master server. Will try again in %1 seconds.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aoapplication.cpp" line="167"/>
<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: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/packet_distribution.cpp" line="651"/>
<source>You have been banned from the server.
Reason: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/packet_distribution.cpp" line="659"/>
<source>You are banned on this server.
Reason: %1</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&apos;s look as well, you&apos;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 &apos;infinite&apos;.</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 &apos;Custom shownames&apos; 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="171"/>
<source>Language:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="172"/>
<source>Sets the language if you don&apos;t want to use your system language.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="186"/>
<source>Callwords</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="211"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Enter as many callwords as you would like. These are case insensitive. Make sure to leave every callword in its own line!&lt;br&gt;Do not leave a line with a space at the end -- you will be alerted everytime someone uses a space in their messages.&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="217"/>
<source>Audio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="228"/>
<source>Audio device:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="229"/>
<source>Sets the audio device for all sounds.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="263"/>
<source>Music:</source>
<translation>:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="264"/>
<source>Sets the music&apos;s default volume.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="276"/>
<source>SFX:</source>
<translation>:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="277"/>
<source>Sets the SFX&apos;s default volume. Interjections and actual sound effects count as &apos;SFX&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="290"/>
<source>Blips:</source>
<translation>:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="291"/>
<source>Sets the volume of the blips, the talking sound effects.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="309"/>
<source>Blip rate:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="310"/>
<source>Sets the delay between playing the blip sounds.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="321"/>
<source>Blank blips:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="322"/>
<source>If true, the game will play a blip sound even when a space is &apos;being said&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="334"/>
<source>Casing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="348"/>
<source>This server supports case alerts.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="350"/>
<source>This server does not support case alerts.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="351"/>
<source>Pretty self-explanatory.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="358"/>
<source>Casing:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="359"/>
<source>If checked, you will get alerts about case announcements.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="372"/>
<source>Defense:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="373"/>
<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="386"/>
<source>Prosecution:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="387"/>
<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="400"/>
<source>Judge:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="401"/>
<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="414"/>
<source>Juror:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="415"/>
<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="428"/>
<source>Stenographer:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="429"/>
<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="442"/>
<source>CM:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="443"/>
<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="456"/>
<source>Hosting cases:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="457"/>
<source>If you&apos;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:
%1/%2</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"/>
<location filename="../../src/courtroom.cpp" line="608"/>
<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="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: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2845"/>
<source>Case made by %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2851"/>
<source>Navigate to %1 for the CM doc.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2870"/>
<source>Your case &quot;%1&quot; was loaded!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="583"/>
<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="248"/>
<source>% offset</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="566"/>
<source>Music</source>
<translation></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="568"/>
<source>Sfx</source>
<translation></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="570"/>
<source>Blips</source>
<translation></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="573"/>
<source>Log limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="596"/>
<source>Change character</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="599"/>
<source>Reload theme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="602"/>
<source>Call mod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="605"/>
<source>Settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="611"/>
<source>A/M</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="614"/>
<source>Preanim</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&apos;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&apos;t have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it&apos;s likely the case file you&apos;re looking for can&apos;t be found in there.</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="2882"/>
<source>You don&apos;t have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it&apos;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></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>
<source>Objection!</source>
<translation type="vanished">!</translation>
</message>
<message>
<source>In Lobby</source>
<translation type="vanished"></translation>
</message>
<message>
<source>Idle</source>
<translation type="vanished"></translation>
</message>
<message>
<source>In a Server</source>
<translation type="vanished"></translation>
</message>
<message>
<source>Spectating</source>
<translation type="vanished"></translation>
</message>
</context>
<context>
<name>Lobby</name>
<message>
<location filename="../../src/lobby.cpp" line="12"/>
<source>Attorney Online 2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="29"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="74"/>
<source>It doesn&apos;t look like your client is set up correctly.
Did you download all resources correctly from tiny.cc/getao, including the large &apos;base&apos; folder?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="104"/>
<source>Version: %1</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>&lt;h2&gt;Attorney Online %1&lt;/h2&gt;The courtroom drama simulator&lt;p&gt;&lt;b&gt;Source code:&lt;/b&gt; &lt;a href=&apos;https://github.com/AttorneyOnline/AO2-Client&apos;&gt;https://github.com/AttorneyOnline/AO2-Client&lt;/a&gt;&lt;p&gt;&lt;b&gt;Major development:&lt;/b&gt;&lt;br&gt;OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter&lt;p&gt;&lt;b&gt;Special thanks:&lt;/b&gt;&lt;br&gt;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="376"/>
<source>Online: %1/%2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="114"/>
<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>

Binary file not shown.

View File

@ -0,0 +1,855 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ru_RU">
<context>
<name>AOApplication</name>
<message>
<location filename="../../src/aoapplication.cpp" line="138"/>
<source>Disconnected from server.</source>
<translation>Соединение с сервером прервано.</translation>
</message>
<message>
<location filename="../../src/aoapplication.cpp" line="163"/>
<source>Error connecting to master server. Will try again in %1 seconds.</source>
<translation>Ошибка соединения с главным сервером. Попытка пересоединения будет через %1 с.</translation>
</message>
<message>
<location filename="../../src/aoapplication.cpp" line="167"/>
<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>Произошла ошибка соединения с главным сервером.
Пожалуйста, проверьте ваши Интернет-соединение, настройки браундмауэра, и попробуйте перезайти.</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>Устаревшая версия! У вас установлена %1
Проследуйте на сайт aceattorneyonline.com для обновления.</translation>
</message>
<message>
<location filename="../../src/packet_distribution.cpp" line="114"/>
<source>You have been exiled from AO.
Have a nice day.</source>
<translation>Из AO вас отправили в жизнь.
Хорошего дня.</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>Загрузка</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: %1</source>
<translation>Вас выпнули с сервера.
Причина: %1</translation>
</message>
<message>
<location filename="../../src/packet_distribution.cpp" line="651"/>
<source>You have been banned from the server.
Reason: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/packet_distribution.cpp" line="659"/>
<source>You are banned on this server.
Reason: %1</source>
<translation>Вас отправили в баню.
Причина: %1</translation>
</message>
<message>
<source>You have been kicked from the server.
Reason: </source>
<translation type="vanished">Вас выпнули с сервера.
Причина: </translation>
</message>
<message>
<source>You are banned on this server.
Reason: </source>
<translation type="vanished">Вас отправили в баню.
Причина: </translation>
</message>
</context>
<context>
<name>AOCaseAnnouncerDialog</name>
<message>
<location filename="../../src/aocaseannouncerdialog.cpp" line="9"/>
<source>Case Announcer</source>
<translation>Материалы дела</translation>
</message>
<message>
<location filename="../../src/aocaseannouncerdialog.cpp" line="38"/>
<source>Case title:</source>
<translation>Название:</translation>
</message>
<message>
<location filename="../../src/aocaseannouncerdialog.cpp" line="48"/>
<source>Defense needed</source>
<translation>Сторона защиты</translation>
</message>
<message>
<location filename="../../src/aocaseannouncerdialog.cpp" line="50"/>
<source>Prosecution needed</source>
<translation>Сторона обвинения</translation>
</message>
<message>
<location filename="../../src/aocaseannouncerdialog.cpp" line="52"/>
<source>Judge needed</source>
<translation>Без судьи никак</translation>
</message>
<message>
<location filename="../../src/aocaseannouncerdialog.cpp" line="54"/>
<source>Jurors needed</source>
<translation>Суд присяжных</translation>
</message>
<message>
<location filename="../../src/aocaseannouncerdialog.cpp" line="56"/>
<source>Stenographer needed</source>
<translation>Нужен стенографист?</translation>
</message>
</context>
<context>
<name>AOOptionsDialog</name>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="11"/>
<source>Settings</source>
<translation>Настройки</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="40"/>
<source>Gameplay</source>
<translation>Игра</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="51"/>
<source>Theme:</source>
<translation>Тема:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="52"/>
<source>Sets the theme used in-game. If the new theme changes the lobby&apos;s look as well, you&apos;ll need to reload the lobby for the changes to take effect, such as by joining a server and leaving it.</source>
<translation>Устанавливает внешний вид игры. Может понадобиться перезайти на сервер.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="81"/>
<source>Log goes downwards:</source>
<translation>Портянку вниз:</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>Отметьте галочку, если хотите, чтобы сообщения в игровом чате отображались снизу, а не сверху.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="94"/>
<source>Log length:</source>
<translation>Длина игрового чата:</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 &apos;infinite&apos;.</source>
<translation>Количество сообщений, максимально хранимых в игровом чате. Значение, равное 0 или меньше, будет расценено как снятие такого ограничения.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="113"/>
<source>Default username:</source>
<translation>Никнейм по умолчанию:</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>Псевдоним, используемый при соединении с сервером. В основном, его видно в чате сервера.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="126"/>
<source>Custom shownames:</source>
<translation>Произвольные имена:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="127"/>
<source>Gives the default value for the in-game &apos;Custom shownames&apos; tickbox, which in turn determines whether the client should display custom in-character names.</source>
<translation>Отображать произвольные имена персонажей, установленные самими игроками.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="145"/>
<source>Backup MS:</source>
<translation>Запасной ГС:</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>Отображать перечень серверов от главного сервера, указанного здесь, когда не удалось соединиться с первичным ГС.</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>Показать в Discord сервер, на котором вы играете, каким персонажем управляете и время игры.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="171"/>
<source>Language:</source>
<translation>Язык:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="172"/>
<source>Sets the language if you don&apos;t want to use your system language.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="186"/>
<source>Callwords</source>
<translation>Позывные</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="211"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Enter as many callwords as you would like. These are case insensitive. Make sure to leave every callword in its own line!&lt;br&gt;Do not leave a line with a space at the end -- you will be alerted everytime someone uses a space in their messages.&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;Введите на отдельных строках свои позывные, при указании которых в сообщениях будет подан звуковой сигнал.&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="217"/>
<source>Audio</source>
<translation>Аудио</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="228"/>
<source>Audio device:</source>
<translation>Устройство воспроизведения:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="229"/>
<source>Sets the audio device for all sounds.</source>
<translation>Куда вещать звук из игры.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="263"/>
<source>Music:</source>
<translation>Музыка:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="264"/>
<source>Sets the music&apos;s default volume.</source>
<translation>Громкость музыки по умолчанию.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="276"/>
<source>SFX:</source>
<translation>Звук. эффекты:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="277"/>
<source>Sets the SFX&apos;s default volume. Interjections and actual sound effects count as &apos;SFX&apos;.</source>
<translation>Громкость звуковых эффектов по умолчанию.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="290"/>
<source>Blips:</source>
<translation>Сигналы:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="291"/>
<source>Sets the volume of the blips, the talking sound effects.</source>
<translation>Громкость сигналов, заменяющих голос, по умолчанию.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="309"/>
<source>Blip rate:</source>
<translation>Пер. сигналов:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="310"/>
<source>Sets the delay between playing the blip sounds.</source>
<translation>Период между сигналами, заменяющими голос, по умолчанию.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="321"/>
<source>Blank blips:</source>
<translation>Пустые сигналы:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="322"/>
<source>If true, the game will play a blip sound even when a space is &apos;being said&apos;.</source>
<translation>Проигрывать сигналы даже для пробелов.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="334"/>
<source>Casing</source>
<translation>Заседание</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="348"/>
<source>This server supports case alerts.</source>
<translation>Этот сервер поддерживает объявление заседания.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="350"/>
<source>This server does not support case alerts.</source>
<translation>Этот сервер не поддерживает объявление заседания.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="351"/>
<source>Pretty self-explanatory.</source>
<translation>Весьма доходчиво.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="358"/>
<source>Casing:</source>
<translation>Новое дело:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="359"/>
<source>If checked, you will get alerts about case announcements.</source>
<translation>При заведении дела вы получите уведомление.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="372"/>
<source>Defense:</source>
<translation>Защита:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="373"/>
<source>If checked, you will get alerts about case announcements if a defense spot is open.</source>
<translation>При заведении дела, в котором нужна сторона защиты, вы получите уведомление.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="386"/>
<source>Prosecution:</source>
<translation>Обвинение:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="387"/>
<source>If checked, you will get alerts about case announcements if a prosecutor spot is open.</source>
<translation>При заведении дела, в котором нужна сторона обвинения, вы получите уведомление.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="400"/>
<source>Judge:</source>
<translation>Судья:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="401"/>
<source>If checked, you will get alerts about case announcements if the judge spot is open.</source>
<translation>При заведении дела, в котором нужен судья, вы получите уведомление.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="414"/>
<source>Juror:</source>
<translation>Присяжный:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="415"/>
<source>If checked, you will get alerts about case announcements if a juror spot is open.</source>
<translation>При заведении дела, в котором нужны присяжные заседатели, вы получите уведомление.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="428"/>
<source>Stenographer:</source>
<translation>Стенографист:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="429"/>
<source>If checked, you will get alerts about case announcements if a stenographer spot is open.</source>
<translation>При заведении дела, в котором нужна стенография, вы получите уведомление.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="442"/>
<source>CM:</source>
<translation>ПД:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="443"/>
<source>If checked, you will appear amongst the potential CMs on the server.</source>
<translation>Отметьте, если вы хотите состоять в числе производителей дел.</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="456"/>
<source>Hosting cases:</source>
<translation>ПД акт.:</translation>
</message>
<message>
<location filename="../../src/aooptionsdialog.cpp" line="457"/>
<source>If you&apos;re a CM, enter what cases you are willing to host.</source>
<translation>Будучи производителем дела (ПД), вы можете войти в зону и заниматься её оркестровкой.</translation>
</message>
</context>
<context>
<name>Courtroom</name>
<message>
<location filename="../../src/charselect.cpp" line="21"/>
<source>Password</source>
<translation>Пароль</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>Поиск</translation>
</message>
<message>
<location filename="../../src/charselect.cpp" line="35"/>
<source>Passworded</source>
<translation>Ограничен паролем</translation>
</message>
<message>
<location filename="../../src/charselect.cpp" line="39"/>
<source>Taken</source>
<translation>Занят</translation>
</message>
<message>
<location filename="../../src/charselect.cpp" line="217"/>
<source>Generating chars:
%1/%2</source>
<translation>Генерация персонажей:
%1/%2</translation>
</message>
<message>
<source>Generating chars:
</source>
<translation type="vanished">Генерация персонажей:
</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="116"/>
<source>Showname</source>
<translation>Имя</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="120"/>
<source>Message</source>
<translation>Сообщение</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"/>
<location filename="../../src/courtroom.cpp" line="608"/>
<source>Casing</source>
<translation>Дело</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="200"/>
<source>Shownames</source>
<translation>Произв. имена</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="203"/>
<source>No Interrupt</source>
<translation>Говорить сразу</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>В общем-то, это ни на что не влияет...</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: %1</source>
<translation>Укажите имя файла с делом (без расширения) для загрузки. Убедитесь, что оно расположено в папке `base/cases`.
Были найдены: %1</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2845"/>
<source>Case made by %1.</source>
<translation>Дело завëл игрок: %1.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2851"/>
<source>Navigate to %1 for the CM doc.</source>
<translation>Перейдите к %1 для получения материалов дела.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2870"/>
<source>Your case &quot;%1&quot; was loaded!</source>
<translation>Дело под кодовым названием &quot;%1&quot; готово!</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="583"/>
<location filename="../../src/courtroom.cpp" line="2959"/>
<source>Server</source>
<translation>Сервер</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>Розовый</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="225"/>
<source>Cyan</source>
<translation>Голубой</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="248"/>
<source>% offset</source>
<translation>% сдвига</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="566"/>
<source>Music</source>
<translation>Музыка</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="568"/>
<source>Sfx</source>
<translation>Звук. эффекты</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="570"/>
<source>Blips</source>
<translation>Сигналы</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="573"/>
<source>Log limit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="596"/>
<source>Change character</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="599"/>
<source>Reload theme</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="602"/>
<source>Call mod</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="605"/>
<source>Settings</source>
<translation>Настройки</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="611"/>
<source>A/M</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="614"/>
<source>Preanim</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2681"/>
<source>You were granted the Guard button.</source>
<translation>Теперь у вас есть кнопка &quot;Охрана&quot;.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2695"/>
<source>You opened the settings menu.</source>
<translation>Вы открыли меню настроек.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2710"/>
<source>You will now pair up with </source>
<translation>Вы встанете парой с персонажем по имени </translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2712"/>
<source> if they also choose your character in return.</source>
<translation> (если он выберет вас в ответ).</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2718"/>
<source>You are no longer paired with anyone.</source>
<translation>Теперь вы не стоите в парах.</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>Кажется, вам нужно поменять запрос: такой идентификатор персонажа не был найден.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2739"/>
<source>You have set your offset to </source>
<translation>Вы установили сдвиг персонажа на </translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2746"/>
<source>Your offset must be between -100% and 100%!</source>
<translation>Сдвиг персонажа должен быть между -100% и 100%!</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2751"/>
<source>That offset does not look like one.</source>
<translation>Неверный сдвиг персонажа.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2757"/>
<source>You switched your music and area list.</source>
<translation>Вы переключили перечень зон и музыки.</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>Из-за того, что вы включили не поддержимаемые сервером возможности, он может не принять ваши сообщения.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2775"/>
<source>Your pre-animations interrupt again.</source>
<translation>Персонаж будет говорить только после анимации.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2777"/>
<source>Your pre-animations will not interrupt text.</source>
<translation>Персонаж будет говорить и во время анимации.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2788"/>
<source>Couldn&apos;t open chatlog.txt to write into.</source>
<translation>Не могу открыть `chatlog.txt` для записи лога.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2801"/>
<source>The IC chatlog has been saved.</source>
<translation>Лог игрового чата сохранëн.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2813"/>
<source>You don&apos;t have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it&apos;s likely the case file you&apos;re looking for can&apos;t be found in there.</source>
<translation>Файл с делом не найден. Если найдëте, положите его в папку `base/cases/`, которую мы для вас создали.</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>Введите имя файла без расширения.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2882"/>
<source>You don&apos;t have a `base/cases/` folder! It was just made for you, but seeing as it WAS just made for you, it&apos;s likely that you somehow deleted it.</source>
<translation>Папка `base/cases/` отсутствует!</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>Введите имя файла (без расширения) и предоставьте статус зоны.</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>Убедитесь, что имя файла не содержит расширение.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="2923"/>
<source>Succesfully saved, edit doc and cmdoc link on the ini!</source>
<translation>Сохранение прошло успешно!</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>Причина:</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>Ошибка</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="3431"/>
<source>You must provide a reason.</source>
<translation>Укажите причину.</translation>
</message>
<message>
<location filename="../../src/courtroom.cpp" line="3434"/>
<source>The message is too long.</source>
<translation>Слишком длинный текст.</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>Lobby</name>
<message>
<location filename="../../src/lobby.cpp" line="12"/>
<source>Attorney Online 2</source>
<translation>Attorney Online 2</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="29"/>
<source>Name</source>
<translation>Никнейм</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="74"/>
<source>It doesn&apos;t look like your client is set up correctly.
Did you download all resources correctly from tiny.cc/getao, including the large &apos;base&apos; folder?</source>
<translation>Не похоже, что ваш клиент установлен правильно.
Скачали ли вы все ресурсы (tiny.cc/getao), включая огромную папку `base`?</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="104"/>
<source>Version: %1</source>
<translation>Версия: %1</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>&lt;h2&gt;Attorney Online %1&lt;/h2&gt;The courtroom drama simulator&lt;p&gt;&lt;b&gt;Source code:&lt;/b&gt; &lt;a href=&apos;https://github.com/AttorneyOnline/AO2-Client&apos;&gt;https://github.com/AttorneyOnline/AO2-Client&lt;/a&gt;&lt;p&gt;&lt;b&gt;Major development:&lt;/b&gt;&lt;br&gt;OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter&lt;p&gt;&lt;b&gt;Special thanks:&lt;/b&gt;&lt;br&gt;Remy, Iamgoofball, Hibiki, Qubrick (webAO), Ruekasu (UI design), Draxirch (UI design), Unishred, Argoneus (tsuserver), Fiercy, Noevain, Cronnicossy</source>
<translation>&lt;h2&gt;Attorney Online %1&lt;/h2&gt;Симулятор судебной драмы&lt;p&gt;&lt;b&gt;Исходный код:&lt;/b&gt; &lt;a href=&apos;https://github.com/AttorneyOnline/AO2-Client&apos;&gt;https://github.com/AttorneyOnline/AO2-Client&lt;/a&gt;&lt;p&gt;&lt;b&gt;Основной разработкой занимались:&lt;/b&gt;&lt;br&gt;OmniTroid, stonedDiscord, longbyte1, gameboyprinter, Cerapter&lt;p&gt;&lt;b&gt;Особенная благодарность:&lt;/b&gt;&lt;br&gt;Remy, Iamgoofball, Hibiki, Qubrick (webAO), Ruekasu (дизайн интерфейса), Draxirch (дизайн интерфейса), Unishred, Argoneus (tsuserver), Fiercy, Noevain, Cronnicossy</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="376"/>
<source>Online: %1/%2</source>
<translation>Онлайн: %1/%2</translation>
</message>
<message>
<location filename="../../src/lobby.cpp" line="114"/>
<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>На заметку</translation>
</message>
</context>
</TS>

View File

@ -2,5 +2,10 @@
<qresource prefix="/"> <qresource prefix="/">
<file>resource/fonts/Ace-Attorney.ttf</file> <file>resource/fonts/Ace-Attorney.ttf</file>
<file>resource/logo.png</file> <file>resource/logo.png</file>
<file>resource/translations/ao_de.qm</file>
<file>resource/translations/ao_en.qm</file>
<file>resource/translations/ao_jp.qm</file>
<file>resource/translations/ao_es.qm</file>
<file>resource/translations/ao_ru.qm</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@ -135,7 +135,7 @@ void AOApplication::server_disconnected()
{ {
if (courtroom_constructed) if (courtroom_constructed)
{ {
call_notice("Disconnected from server."); call_notice(tr("Disconnected from server."));
construct_lobby(); construct_lobby();
destruct_courtroom(); destruct_courtroom();
} }
@ -160,16 +160,15 @@ void AOApplication::ms_connect_finished(bool connected, bool will_retry)
if (will_retry) if (will_retry)
{ {
if (lobby_constructed) if (lobby_constructed)
w_lobby->append_error("Error connecting to master server. Will try again in " w_lobby->append_error(tr("Error connecting to master server. Will try again in %1 seconds.").arg(QString::number(net_manager->ms_reconnect_delay)));
+ QString::number(net_manager->ms_reconnect_delay) + " seconds.");
} }
else 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, " "We deploy multiple master servers to mitigate any possible downtime, "
"but the client appears to have exhausted all possible methods of finding " "but the client appears to have exhausted all possible methods of finding "
"and connecting to one.\n" "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."));
} }
} }
} }

View File

@ -167,6 +167,21 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) : QDi
ui_gameplay_form->setWidget(9, QFormLayout::FieldRole, ui_discord_cb); ui_gameplay_form->setWidget(9, QFormLayout::FieldRole, ui_discord_cb);
ui_language_label = new QLabel(ui_form_layout_widget);
ui_language_label->setText(tr("Language:"));
ui_language_label->setToolTip(tr("Sets the language if you don't want to use your system language."));
ui_gameplay_form->setWidget(10, QFormLayout::LabelRole, ui_language_label);
ui_language_combobox = new QComboBox(ui_form_layout_widget);
ui_language_combobox->addItem(configini->value("language", " ").value<QString>() + " - Keep current setting");
ui_language_combobox->addItem(" - Default");
ui_language_combobox->addItem("en - English");
ui_language_combobox->addItem("de - Deutsch");
ui_language_combobox->addItem("es - Español");
ui_language_combobox->addItem("jp - 日本語");
ui_language_combobox->addItem("ru - Русский");
ui_gameplay_form->setWidget(10, QFormLayout::FieldRole, ui_language_combobox);
// Here we start the callwords tab. // Here we start the callwords tab.
ui_callwords_tab = new QWidget(); ui_callwords_tab = new QWidget();
ui_settings_tabs->addTab(ui_callwords_tab, tr("Callwords")); ui_settings_tabs->addTab(ui_callwords_tab, tr("Callwords"));
@ -466,6 +481,7 @@ void AOOptionsDialog::save_pressed()
configini->setValue("show_custom_shownames", ui_showname_cb->isChecked()); configini->setValue("show_custom_shownames", ui_showname_cb->isChecked());
configini->setValue("master", ui_ms_textbox->text()); configini->setValue("master", ui_ms_textbox->text());
configini->setValue("discord", ui_discord_cb->isChecked()); configini->setValue("discord", ui_discord_cb->isChecked());
configini->setValue("language", ui_language_combobox->currentText().left(2));
QFile* callwordsini = new QFile(ao_app->get_base_path() + "callwords.ini"); QFile* callwordsini = new QFile(ao_app->get_base_path() + "callwords.ini");

View File

@ -215,7 +215,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 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); 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_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%1/%2").arg(QString::number(ao_app->generated_chars)).arg(QString::number(ao_app->char_list_size)));
} }
} }

View File

@ -245,7 +245,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
ui_pair_list = new QListWidget(this); ui_pair_list = new QListWidget(this);
ui_pair_offset_spinbox = new QSpinBox(this); ui_pair_offset_spinbox = new QSpinBox(this);
ui_pair_offset_spinbox->setRange(-100,100); ui_pair_offset_spinbox->setRange(-100,100);
ui_pair_offset_spinbox->setSuffix("% offset"); ui_pair_offset_spinbox->setSuffix(tr("% offset"));
ui_pair_button = new AOButton(this, ao_app); ui_pair_button = new AOButton(this, ao_app);
ui_evidence_button = new AOButton(this, ao_app); ui_evidence_button = new AOButton(this, ao_app);
@ -563,14 +563,14 @@ void Courtroom::set_widgets()
ui_prosecution_bar->set_image("prosecutionbar" + QString::number(prosecution_bar_state) + ".png"); ui_prosecution_bar->set_image("prosecutionbar" + QString::number(prosecution_bar_state) + ".png");
set_size_and_pos(ui_music_label, "music_label"); set_size_and_pos(ui_music_label, "music_label");
ui_music_label->setText("Music"); ui_music_label->setText(tr("Music"));
set_size_and_pos(ui_sfx_label, "sfx_label"); set_size_and_pos(ui_sfx_label, "sfx_label");
ui_sfx_label->setText("Sfx"); ui_sfx_label->setText(tr("Sfx"));
set_size_and_pos(ui_blip_label, "blip_label"); set_size_and_pos(ui_blip_label, "blip_label");
ui_blip_label->setText("Blips"); ui_blip_label->setText(tr("Blips"));
set_size_and_pos(ui_log_limit_label, "log_limit_label"); set_size_and_pos(ui_log_limit_label, "log_limit_label");
ui_log_limit_label->setText("Log limit"); ui_log_limit_label->setText(tr("Log limit"));
set_size_and_pos(ui_hold_it, "hold_it"); set_size_and_pos(ui_hold_it, "hold_it");
ui_hold_it->set_image("holdit.png"); ui_hold_it->set_image("holdit.png");
@ -580,7 +580,7 @@ void Courtroom::set_widgets()
ui_take_that->set_image("takethat.png"); ui_take_that->set_image("takethat.png");
set_size_and_pos(ui_ooc_toggle, "ooc_toggle"); set_size_and_pos(ui_ooc_toggle, "ooc_toggle");
ui_ooc_toggle->setText("Server"); ui_ooc_toggle->setText(tr("Server"));
set_size_and_pos(ui_witness_testimony, "witness_testimony"); set_size_and_pos(ui_witness_testimony, "witness_testimony");
ui_witness_testimony->set_image("witnesstestimony.png"); ui_witness_testimony->set_image("witnesstestimony.png");
@ -593,25 +593,25 @@ void Courtroom::set_widgets()
ui_not_guilty->set_image("notguilty.png"); ui_not_guilty->set_image("notguilty.png");
set_size_and_pos(ui_change_character, "change_character"); set_size_and_pos(ui_change_character, "change_character");
ui_change_character->setText("Change character"); ui_change_character->setText(tr("Change character"));
set_size_and_pos(ui_reload_theme, "reload_theme"); set_size_and_pos(ui_reload_theme, "reload_theme");
ui_reload_theme->setText("Reload theme"); ui_reload_theme->setText(tr("Reload theme"));
set_size_and_pos(ui_call_mod, "call_mod"); set_size_and_pos(ui_call_mod, "call_mod");
ui_call_mod->setText("Call mod"); ui_call_mod->setText(tr("Call mod"));
set_size_and_pos(ui_settings, "settings"); set_size_and_pos(ui_settings, "settings");
ui_settings->setText("Settings"); ui_settings->setText(tr("Settings"));
set_size_and_pos(ui_announce_casing, "casing_button"); set_size_and_pos(ui_announce_casing, "casing_button");
ui_announce_casing->setText("Casing"); ui_announce_casing->setText(tr("Casing"));
set_size_and_pos(ui_switch_area_music, "switch_area_music"); set_size_and_pos(ui_switch_area_music, "switch_area_music");
ui_switch_area_music->setText("A/M"); ui_switch_area_music->setText(tr("A/M"));
set_size_and_pos(ui_pre, "pre"); set_size_and_pos(ui_pre, "pre");
ui_pre->setText("Preanim"); ui_pre->setText(tr("Preanim"));
set_size_and_pos(ui_pre_non_interrupt, "pre_no_interrupt"); set_size_and_pos(ui_pre_non_interrupt, "pre_no_interrupt");
set_size_and_pos(ui_flip, "flip"); set_size_and_pos(ui_flip, "flip");
@ -2685,7 +2685,7 @@ void Courtroom::on_ooc_return_pressed()
//ui_text_color->addItem("Rainbow"); //ui_text_color->addItem("Rainbow");
ui_ooc_chat_message->clear(); ui_ooc_chat_message->clear();
//rainbow_appended = true; //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; return;
} }
else if (ooc_message.startsWith("/settings")) else if (ooc_message.startsWith("/settings"))
@ -2821,7 +2821,7 @@ void Courtroom::on_ooc_return_pressed()
if (command.size() < 2) if (command.size() < 2)
{ {
append_server_chatmessage("CLIENT", tr("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.\nCases you can load: ") + caseslist.join(", "), "1"); append_server_chatmessage("CLIENT", tr("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.\nCases you can load: %1").arg(caseslist.join(", ")), "1");
ui_ooc_chat_message->clear(); ui_ooc_chat_message->clear();
return; return;
} }
@ -2842,13 +2842,13 @@ void Courtroom::on_ooc_return_pressed()
QString casestatus = casefile.value("status", "").value<QString>(); QString casestatus = casefile.value("status", "").value<QString>();
if (!caseauth.isEmpty()) if (!caseauth.isEmpty())
append_server_chatmessage("CLIENT", tr("Case made by ") + caseauth + ".", "1"); append_server_chatmessage("CLIENT", tr("Case made by %1.").arg(caseauth), "1");
if (!casedoc.isEmpty()) if (!casedoc.isEmpty())
ao_app->send_server_packet(new AOPacket("CT#" + ui_ooc_chat_name->text() + "#/doc " + casedoc + "#%")); ao_app->send_server_packet(new AOPacket("CT#" + ui_ooc_chat_name->text() + "#/doc " + casedoc + "#%"));
if (!casestatus.isEmpty()) if (!casestatus.isEmpty())
ao_app->send_server_packet(new AOPacket("CT#" + ui_ooc_chat_name->text() + "#/status " + casestatus + "#%")); ao_app->send_server_packet(new AOPacket("CT#" + ui_ooc_chat_name->text() + "#/status " + casestatus + "#%"));
if (!cmdoc.isEmpty()) if (!cmdoc.isEmpty())
append_server_chatmessage("CLIENT", tr("Navigate to ") + cmdoc + tr(" for the CM doc."), "1"); append_server_chatmessage("CLIENT", tr("Navigate to %1 for the CM doc.").arg(cmdoc), "1");
for (int i = local_evidence_list.size() - 1; i >= 0; i--) { for (int i = local_evidence_list.size() - 1; i >= 0; i--) {
ao_app->send_server_packet(new AOPacket("DE#" + QString::number(i) + "#%")); ao_app->send_server_packet(new AOPacket("DE#" + QString::number(i) + "#%"));
@ -2867,7 +2867,7 @@ void Courtroom::on_ooc_return_pressed()
ao_app->send_server_packet(new AOPacket("PE", f_contents)); ao_app->send_server_packet(new AOPacket("PE", f_contents));
} }
append_server_chatmessage("CLIENT", tr("Your case \"") + command[1] + tr("\" was loaded!"), "1"); append_server_chatmessage("CLIENT", tr("Your case \"%1\" was loaded!").arg(command[1]), "1");
ui_ooc_chat_message->clear(); ui_ooc_chat_message->clear();
return; return;
} }

View File

@ -1,11 +1,14 @@
#include <QMessageBox>
#include <QCoreApplication>
#include "debug_functions.h" #include "debug_functions.h"
void call_error(QString p_message) void call_error(QString p_message)
{ {
QMessageBox *msgBox = new QMessageBox; QMessageBox *msgBox = new QMessageBox;
msgBox->setText("Error: " + p_message); msgBox->setText(QCoreApplication::translate("debug_functions", "Error: %1").arg(p_message));
msgBox->setWindowTitle("Error"); msgBox->setWindowTitle(QCoreApplication::translate("debug_functions", "Error"));
//msgBox->setWindowModality(Qt::NonModal); //msgBox->setWindowModality(Qt::NonModal);
@ -17,7 +20,7 @@ void call_notice(QString p_message)
QMessageBox *msgBox = new QMessageBox; QMessageBox *msgBox = new QMessageBox;
msgBox->setText(p_message); msgBox->setText(p_message);
msgBox->setWindowTitle("Notice"); msgBox->setWindowTitle(QCoreApplication::translate("debug_functions", "Notice"));
//msgBox->setWindowModality(Qt::NonModal); //msgBox->setWindowModality(Qt::NonModal);

View File

@ -22,7 +22,7 @@ void Courtroom::construct_evidence()
ui_evidence_delete = new AOButton(ui_evidence_overlay, ao_app); ui_evidence_delete = new AOButton(ui_evidence_overlay, ao_app);
ui_evidence_image_name = new AOLineEdit(ui_evidence_overlay); ui_evidence_image_name = new AOLineEdit(ui_evidence_overlay);
ui_evidence_image_button = new AOButton(ui_evidence_overlay, ao_app); 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_x = new AOButton(ui_evidence_overlay, ao_app);
ui_evidence_description = new AOTextEdit(ui_evidence_overlay); 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 (p_state)
{ {
if (final_id == local_evidence_list.size()) 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()) else if (final_id < local_evidence_list.size())
ui_evidence_name->setText(local_evidence_list.at(final_id).name); ui_evidence_name->setText(local_evidence_list.at(final_id).name);
} }

View File

@ -9,7 +9,7 @@ Lobby::Lobby(AOApplication *p_ao_app) : QMainWindow()
{ {
ao_app = p_ao_app; ao_app = p_ao_app;
this->setWindowTitle("Attorney Online 2"); this->setWindowTitle(tr("Attorney Online 2"));
this->setWindowIcon(QIcon(":/logo.png")); this->setWindowIcon(QIcon(":/logo.png"));
ui_background = new AOImage(this, ao_app); ui_background = new AOImage(this, ao_app);
@ -26,7 +26,7 @@ Lobby::Lobby(AOApplication *p_ao_app) : QMainWindow()
ui_chatbox = new AOTextArea(this); ui_chatbox = new AOTextArea(this);
ui_chatbox->setOpenExternalLinks(true); ui_chatbox->setOpenExternalLinks(true);
ui_chatname = new QLineEdit(this); ui_chatname = new QLineEdit(this);
ui_chatname->setPlaceholderText("Name"); ui_chatname->setPlaceholderText(tr("Name"));
ui_chatname->setText(ao_app->get_ooc_name()); ui_chatname->setText(ao_app->get_ooc_name());
ui_chatmessage = new QLineEdit(this); ui_chatmessage = new QLineEdit(this);
ui_loading_background = new AOImage(this, ao_app); ui_loading_background = new AOImage(this, ao_app);
@ -71,9 +71,9 @@ void Lobby::set_widgets()
qDebug() << "W: did not find lobby width or height in " << filename; qDebug() << "W: did not find lobby width or height in " << filename;
// Most common symptom of bad config files and missing assets. // 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, " "Did you download all resources correctly from tiny.cc/getao, "
"including the large 'base' folder?"); "including the large 'base' folder?"));
this->resize(517, 666); this->resize(517, 666);
} }
@ -101,7 +101,7 @@ void Lobby::set_widgets()
ui_connect->set_image("connect.png"); ui_connect->set_image("connect.png");
set_size_and_pos(ui_version, "version"); set_size_and_pos(ui_version, "version");
ui_version->setText("Version: " + ao_app->get_version_string()); ui_version->setText(tr("Version: %1").arg(ao_app->get_version_string()));
set_size_and_pos(ui_about, "about"); set_size_and_pos(ui_about, "about");
ui_about->set_image("about.png"); ui_about->set_image("about.png");
@ -111,7 +111,7 @@ void Lobby::set_widgets()
"font: bold;"); "font: bold;");
set_size_and_pos(ui_player_count, "player_count"); set_size_and_pos(ui_player_count, "player_count");
ui_player_count->setText("Offline"); ui_player_count->setText(tr("Offline"));
ui_player_count->setStyleSheet("font: bold;" ui_player_count->setStyleSheet("font: bold;"
"color: white;" "color: white;"
"qproperty-alignment: AlignCenter;"); "qproperty-alignment: AlignCenter;");
@ -144,11 +144,11 @@ void Lobby::set_widgets()
ui_loading_text->setFrameStyle(QFrame::NoFrame); ui_loading_text->setFrameStyle(QFrame::NoFrame);
ui_loading_text->setStyleSheet("background-color: rgba(0, 0, 0, 0);" ui_loading_text->setStyleSheet("background-color: rgba(0, 0, 0, 0);"
"color: rgba(255, 128, 0, 255);"); "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_progress_bar, "progress_bar");
set_size_and_pos(ui_cancel, "cancel"); set_size_and_pos(ui_cancel, "cancel");
ui_cancel->setText("Cancel"); ui_cancel->setText(tr("Cancel"));
ui_loading_background->hide(); ui_loading_background->hide();
@ -313,7 +313,7 @@ void Lobby::on_server_list_clicked(QModelIndex p_model)
ui_description->moveCursor(QTextCursor::Start); ui_description->moveCursor(QTextCursor::Start);
ui_description->ensureCursorVisible(); ui_description->ensureCursorVisible();
ui_player_count->setText("Offline"); ui_player_count->setText(tr("Offline"));
ui_connect->setEnabled(false); ui_connect->setEnabled(false);
@ -373,7 +373,7 @@ void Lobby::append_error(QString f_message)
void Lobby::set_player_count(int players_online, int max_players) void Lobby::set_player_count(int players_online, int max_players)
{ {
QString f_string = "Online: " + QString::number(players_online) + "/" + QString::number(max_players); QString f_string = tr("Online: %1/%2").arg(QString::number(players_online)).arg(QString::number(max_players));
ui_player_count->setText(f_string); ui_player_count->setText(f_string);
} }

View File

@ -1,4 +1,3 @@
#include "aoapplication.h" #include "aoapplication.h"
#include "datatypes.h" #include "datatypes.h"
@ -7,6 +6,9 @@
#include "courtroom.h" #include "courtroom.h"
#include <QPluginLoader> #include <QPluginLoader>
#include <QDebug> #include <QDebug>
#include <QTranslator>
#include <QLibraryInfo>
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
#if QT_VERSION > QT_VERSION_CHECK(5, 6, 0) #if QT_VERSION > QT_VERSION_CHECK(5, 6, 0)
@ -17,6 +19,23 @@ int main(int argc, char *argv[])
#endif #endif
AOApplication main_app(argc, argv); AOApplication main_app(argc, argv);
QSettings *configini = main_app.configini;
QString p_language = configini->value("language", QLocale::system().name()).toString();
if (p_language == " " || p_language == "")
p_language = QLocale::system().name();
QTranslator qtTranslator;
qtTranslator.load("qt_" + p_language,
QLibraryInfo::location(QLibraryInfo::TranslationsPath));
main_app.installTranslator(&qtTranslator);
QTranslator appTranslator;
qDebug() << ":/resource/translations/ao_" + p_language;
appTranslator.load("ao_" + p_language, ":/resource/translations/");
main_app.installTranslator(&appTranslator);
main_app.construct_lobby(); main_app.construct_lobby();
main_app.net_manager->connect_to_master(); main_app.net_manager->connect_to_master();
main_app.w_lobby->show(); main_app.w_lobby->show();

View File

@ -103,15 +103,16 @@ void AOApplication::ms_packet_received(AOPacket *p_packet)
} }
} }
call_notice("Outdated version! Your version: " + get_version_string() call_notice(tr("Outdated version! Your version: %1\n"
+ "\nPlease go to aceattorneyonline.com to update."); "Please go to aceattorneyonline.com to update.")
.arg(get_version_string()));
destruct_courtroom(); destruct_courtroom();
destruct_lobby(); destruct_lobby();
} }
else if (header == "DOOM") else if (header == "DOOM")
{ {
call_notice("You have been exiled from AO." call_notice(tr("You have been exiled from AO.\n"
"Have a nice day."); "Have a nice day."));
destruct_courtroom(); destruct_courtroom();
destruct_lobby(); destruct_lobby();
} }
@ -245,7 +246,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
courtroom_loaded = false; courtroom_loaded = false;
QString window_title = "Attorney Online 2"; QString window_title = tr("Attorney Online 2");
int selected_server = w_lobby->get_selected_server(); int selected_server = w_lobby->get_selected_server();
QString server_address = "", server_name = ""; 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_courtroom->set_window_title(window_title);
w_lobby->show_loading_overlay(); w_lobby->show_loading_overlay();
w_lobby->set_loading_text("Loading"); w_lobby->set_loading_text(tr("Loading"));
w_lobby->set_loading_value(0); w_lobby->set_loading_value(0);
AOPacket *f_packet; AOPacket *f_packet;
@ -359,7 +360,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
++loaded_evidence; ++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); w_courtroom->append_evidence(f_evi);
@ -391,7 +392,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
++loaded_music; ++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) if (musics_time)
{ {
@ -463,7 +464,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
++loaded_chars; ++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); w_courtroom->append_char(f_char);
@ -486,7 +487,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
{ {
++loaded_music; ++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) if (musics_time)
{ {
@ -638,7 +639,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
{ {
if (courtroom_constructed && f_contents.size() >= 1) 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: %1").arg(f_contents.at(0)));
construct_lobby(); construct_lobby();
destruct_courtroom(); destruct_courtroom();
} }
@ -647,7 +648,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
{ {
if (courtroom_constructed && f_contents.size() >= 1) if (courtroom_constructed && f_contents.size() >= 1)
{ {
call_notice("You have been banned from the server.\nReason: " + f_contents.at(0)); call_notice(tr("You have been banned from the server.\nReason: %1").arg(f_contents.at(0)));
construct_lobby(); construct_lobby();
destruct_courtroom(); destruct_courtroom();
} }
@ -655,7 +656,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
} }
else if (header == "BD") 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: %1").arg(f_contents.at(0)));
} }
else if (header == "ZZ") else if (header == "ZZ")
{ {