Compare commits

...

9 Commits

Author SHA1 Message Date
tooomm
d1eaf8a99c Move comments to dedicated README to not fail config check 2026-01-18 18:06:03 +01:00
tooomm
7613db0348 Merge branch 'master' into tooomm-doxy_awesome_theme 2026-01-12 22:32:24 +01:00
tooomm
304c15383c css and cleanup 2026-01-12 22:24:38 +01:00
transifex-integration[bot]
52547bbfe8 Updates for project Cockatrice and language de (#6508)
* Translate oracle/oracle_en@source.ts in de

100% translated source file: 'oracle/oracle_en@source.ts'
on 'de'.

* Translate oracle/oracle_en@source.ts in de

100% translated source file: 'oracle/oracle_en@source.ts'
on 'de'.

---------

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
2026-01-11 14:41:16 +01:00
BruebachL
9ab398f08d [Doxygen] Add documentation for beta channel. (#6510)
* [Doxygen] Add documentation for beta channel.

Took 36 minutes

* [Doxygen] Use default theme.

Took 13 minutes

---------

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
2026-01-11 12:48:31 +01:00
RickyRister
0deaa9d9b4 [DeckEditor] Don't change widget focus when adding card (#6503) 2026-01-09 18:27:54 -08:00
tooomm
a46419bde9 hide nav sync button 2025-12-28 19:45:42 +01:00
tooomm
dc5abc41c1 enable theme and disable not needed code references 2025-12-28 18:47:31 +01:00
tooomm
368785b128 add doxygen-theme-css submodule 2025-12-21 15:27:55 +01:00
20 changed files with 292 additions and 112 deletions

3
.gitmodules vendored
View File

@@ -1,3 +1,6 @@
[submodule "vcpkg"]
path = vcpkg
url = https://github.com/microsoft/vcpkg.git
[submodule "doxygen-awesome-css"]
path = doc/doxygen/theme
url = https://github.com/jothepro/doxygen-awesome-css.git

View File

@@ -54,7 +54,7 @@ PROJECT_NUMBER = $(COCKATRICE_REF)
# for a project that appears at the top of each page and should give viewers a
# quick idea about the purpose of the project. Keep the description short.
PROJECT_BRIEF = "A cross-platform virtual tabletop for multiplayer card games"
PROJECT_BRIEF = "A virtual tabletop for multiplayer card games"
# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
@@ -1068,6 +1068,8 @@ RECURSIVE = YES
EXCLUDE = build/ \
cmake/ \
doc/doxygen/theme/docs/ \
doc/doxygen/theme/include/ \
vcpkg/ \
webclient/
@@ -1430,7 +1432,9 @@ HTML_STYLESHEET =
# documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_EXTRA_STYLESHEET = doc/doxygen/css/doxygen_style.css
HTML_EXTRA_STYLESHEET = doc/doxygen/theme/doxygen-awesome.css \
doc/doxygen/css/hide_nav_sync.css \
doc/doxygen/css/cockatrice_docs_style.css
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the HTML output directory. Note
@@ -1453,7 +1457,7 @@ HTML_EXTRA_FILES = doc/doxygen/js/graph_toggle.js
# The default value is: AUTO_LIGHT.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_COLORSTYLE = AUTO_DARK
HTML_COLORSTYLE = LIGHT
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
# will adjust the colors in the style sheet and background images according to
@@ -1764,7 +1768,7 @@ ECLIPSE_DOC_ID = org.doxygen.Project
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
DISABLE_INDEX = YES
DISABLE_INDEX = NO
# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
# structure should be generated to display hierarchical information. If the tag

View File

@@ -49,4 +49,4 @@ searches are case insensitive.
<dt>Grouping:</dt>
<dd><a href="#red -([[]]:100 or aggro)">red -([[]]:100 or aggro)</a> <small>(Any deck that has red in its filename but is not 100 cards or has aggro in its filename)</small></dd>
</dl>
</dl>

View File

@@ -67,4 +67,4 @@ In this list of examples below, each entry has an explanation and can be clicked
<dd>[o:/counter target .* spell/](#o:/counter target .* spell/) <small>(Any card text with "counter target *something* spell")</small></dd>
<dd>[o:/for each .* and\/or .*/](#o:/for each .* and\/or .*/) <small>(/'s can be escaped with a \)</small></dd>
</dl>
</dl>

View File

@@ -459,12 +459,15 @@ void DeckEditorDeckDockWidget::syncBannerCardComboBoxSelectionWithDeck()
}
}
void DeckEditorDeckDockWidget::setSelectedIndex(const QModelIndex &newCardIndex)
void DeckEditorDeckDockWidget::setSelectedIndex(const QModelIndex &newCardIndex, bool preserveWidgetFocus)
{
deckView->clearSelection();
deckView->setCurrentIndex(newCardIndex);
recursiveExpand(newCardIndex);
deckView->setFocus(Qt::FocusReason::MouseFocusReason);
if (!preserveWidgetFocus) {
deckView->setFocus(Qt::FocusReason::MouseFocusReason);
}
}
void DeckEditorDeckDockWidget::syncDisplayWidgetsToModel()

View File

@@ -100,7 +100,7 @@ private slots:
void writeComments();
void writeBannerCard(int);
void applyActiveGroupCriteria();
void setSelectedIndex(const QModelIndex &newCardIndex);
void setSelectedIndex(const QModelIndex &newCardIndex, bool preserveWidgetFocus);
void updateHash();
void refreshShortcuts();
void updateShowBannerCardComboBox(bool visible);

View File

@@ -182,7 +182,7 @@ QModelIndex DeckStateManager::addCard(const ExactCard &card, const QString &zone
QModelIndex idx = modifyDeck(reason, [&card, &zone](auto model) { return model->addCard(card, zone); });
if (idx.isValid()) {
emit focusIndexChanged(idx);
emit focusIndexChanged(idx, true);
}
return idx;
@@ -208,7 +208,7 @@ QModelIndex DeckStateManager::decrementCard(const ExactCard &card, const QString
}
if (idx.isValid()) {
emit focusIndexChanged(idx);
emit focusIndexChanged(idx, true);
}
return idx;

View File

@@ -290,8 +290,9 @@ signals:
/**
* The selected card on any views connected to this deck should be changed to this index.
* @param index The model index
* @param preserveWidgetFocus Whether to keep the widget focus unchanged
*/
void focusIndexChanged(QModelIndex index);
void focusIndexChanged(QModelIndex index, bool preserveWidgetFocus);
};
#endif // COCKATRICE_DECK_STATE_MANAGER_H

View File

@@ -198,7 +198,7 @@ void CardAmountWidget::addPrinting(const QString &zone)
});
if (newCardIndex.isValid()) {
emit deckStateManager->focusIndexChanged(newCardIndex);
emit deckStateManager->focusIndexChanged(newCardIndex, false);
}
}

View File

@@ -7,7 +7,7 @@
<tab type="pages" visible="yes" title="" intro=""/>
<tab type="topics" visible="yes" title="" intro=""/>
<tab type="usergroup" title="Code Reference">
<tab type="modules" visible="yes" title="" intro="">
<tab type="modules" visible="no" title="" intro="">
<tab type="modulelist" visible="yes" title="" intro=""/>
<tab type="modulemembers" visible="yes" title="" intro=""/>
</tab>
@@ -15,9 +15,8 @@
<tab type="namespacelist" visible="yes" title="" intro=""/>
<tab type="namespacemembers" visible="yes" title="" intro=""/>
</tab>
<tab type="concepts" visible="yes" title="">
</tab>
<tab type="interfaces" visible="yes" title="">
<tab type="concepts" visible="no" title=""/>
<tab type="interfaces" visible="no" title="">
<tab type="interfacelist" visible="yes" title="" intro=""/>
<tab type="interfaceindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="interfacehierarchy" visible="yes" title="" intro=""/>
@@ -28,11 +27,11 @@
<tab type="hierarchy" visible="yes" title="" intro=""/>
<tab type="classmembers" visible="yes" title="" intro=""/>
</tab>
<tab type="structs" visible="yes" title="">
<tab type="structs" visible="no" title="">
<tab type="structlist" visible="yes" title="" intro=""/>
<tab type="structindex" visible="$ALPHABETICAL_INDEX" title=""/>
</tab>
<tab type="exceptions" visible="yes" title="">
<tab type="exceptions" visible="no" title="">
<tab type="exceptionlist" visible="yes" title="" intro=""/>
<tab type="exceptionindex" visible="$ALPHABETICAL_INDEX" title=""/>
<tab type="exceptionhierarchy" visible="yes" title="" intro=""/>
@@ -41,7 +40,7 @@
<tab type="filelist" visible="yes" title="" intro=""/>
<tab type="globals" visible="yes" title="" intro=""/>
</tab>
<tab type="examples" visible="yes" title="" intro=""/>
<tab type="examples" visible="no" title="" intro=""/>
</tab>
</navindex>

14
doc/doxygen/README.md Normal file
View File

@@ -0,0 +1,14 @@
## Doxygen Documentation Theme
Required changes to the `Doxyfile` config from the [theme docs](https://jothepro.github.io/doxygen-awesome-css/index.html#autotoc_md16) to make [doxygen-awesome-css](https://github.com/jothepro/doxygen-awesome-css) work:
```
HTML_EXTRA_STYLESHEET = doxygen-awesome.css # Main CSS file of the theme
GENERATE_TREEVIEW = YES # Optional, also works without
HTML_COLORSTYLE = LIGHT # Required with doxygen-awesome-css theme, Auto Dark Mode will still work
DISABLE_INDEX = NO # YES is bugged in the theme, see jothepro/doxygen-awesome-css/issues/201
FULL_SIDEBAR = NO # Required for doxygen-awesome-css theme
```
<br>
Cockatrice dedicated color adjustments are configured in the [cockatrice_docs_style.css](https://github.com/Cockatrice/Cockatrice/blob/master/doc/doxygen/css/cockatrice_docs_style.css) file that uses & overrides the theme definitions.

View File

@@ -0,0 +1,33 @@
/*
See "Awesome Doxygen CSS" theme docs:
https://jothepro.github.io/doxygen-awesome-css/md_docs_2customization.html#autotoc_md36
Adjustments here are based on the css file of the theme and variables defined there.
*/
/* Light Mode overrides */
html {
--primary-color: #33a946;
--primary-dark-color: #33a946;
--primary-light-color: #33a946;
}
/* Dark Mode overrides */
@media (prefers-color-scheme: dark) {
html:not(.light-mode) {
--primary-color: #33a946;
--primary-dark-color: #33a946;
--primary-light-color: #33a946;
}
}
/* Dark Mode overrides, defined twice to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */
html.dark-mode {
color-scheme: dark;
--primary-color: #33a946;
--primary-dark-color: #33a946;
--primary-light-color: #33a946;
}

View File

@@ -0,0 +1,10 @@
/* hide navigation sync control and icons */
#nav-sync,
#nav-sync * {
display: none !important;
}
div.nav-sync-icon,
div.nav-sync-icon * {
display: none !important;
}

View File

@@ -1,10 +1,8 @@
@mainpage Cockatrice Documentation
@mainpage Documentation
# Welcome
Welcome to the Cockatrice code documentation.
This is the **main landing page** of the Cockatrice documentation.
- @subpage user_reference
- @subpage developer_reference
- Go to the @subpage user_reference page
- Review the @subpage developer_reference
Or check out the <a href="https://cockatrice.github.io/" target="_blank" rel="noopener noreferrer">Cockatrice Webpage</a>.
Please also check the <a href="https://cockatrice.github.io/" target="_blank" rel="noopener noreferrer">Cockatrice Webpage</a> or our <a href="https://github.com/Cockatrice/Cockatrice" target="_blank" rel="noopener noreferrer">Code Repository</a> for general information.

View File

@@ -1,9 +1,17 @@
@page user_reference User Reference
- @subpage search_syntax_help
- @subpage deck_search_syntax_help
## Deck Management
- @subpage creating_decks
- @subpage importing_decks
- @subpage editing_decks
- @subpage exporting_decks
## Release Channels
- @subpage beta_release
## Syntax Help
- @subpage search_syntax_help
- @subpage deck_search_syntax_help

View File

@@ -0,0 +1,54 @@
@page beta_release Beta Release
The beta version of Cockatrice features all the newest features before they make their way into the latest stable
release.
It allows us to test these features ahead of time and you to give feedback on them.
We release new betas very frequently and usually release a follow-up beta with a fix within a day or two if we break
anything. In contrast, stable releases are released much less frequently but ensured to be stable.
# What to Expect from the Beta
Using the beta and giving feedback on it helps us improve Cockatrice a lot.
We do not perform any automatic data collection so your voluntary feedback is the only way for us to get a sense of what
you enjoy, expect, or would like to change.
We highly appreciate your active participation and feedback.
That being said, some words of warning should be issued:
The beta release may contain unfinished features, bugs, or performance issues.
It is intended for testing and feedback and may be less stable than the default release.
We recommend using the beta only if you are comfortable encountering issues and helping us improve Cockatrice.
# Switching to the Beta
To switch to the Beta, navigate to your settings, using the Tab "Cockatrice → Settings" or Ctrl + Shift + P (default
shortcut).
Within the settings, in the first tab 'General', the first section 'Personal Settings' contains the setting 'Release
Channel'.
\image html release_channel_beta.png
Switch this to 'Beta'.
Afterwards, close your settings, and use the 'Help' tab to search for a client update. You should be prompted to install
the beta version.
# Switching back to Stable
Follow the same steps as above, but set Release Channel to 'Default'.
# Giving Feedback
If you encounter a bug or unexpected behavior while using the beta, please report it on:
- GitHub: https://github.com/Cockatrice/Cockatrice/issues
- Discord: https://discord.gg/4hNswvHeFd in #beta-testing
When reporting issues, please include:
- Your operating system
- The beta version number (found in 'Help → About Cockatrice')
- Steps to reproduce the problem, if possible

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

1
doc/doxygen/theme Submodule

Submodule doc/doxygen/theme added at 1f3620084f

View File

@@ -2,22 +2,22 @@
<context>
<name>IntroPage</name>
<message>
<location filename="src/oraclewizard.cpp" line="215"/>
<location filename="src/pages.cpp" line="127"/>
<source>Introduction</source>
<translation>Einführung</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="216"/>
<location filename="src/pages.cpp" line="128"/>
<source>This wizard will import the list of sets, cards, and tokens that will be used by Cockatrice.</source>
<translation>Dieser Assistent wird eine Liste aller Editionen, Karten und Spielsteine importieren, die von Cockatrice genutzt werden.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="218"/>
<location filename="src/pages.cpp" line="130"/>
<source>Interface language:</source>
<translation>Interfacesprache:</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="219"/>
<location filename="src/pages.cpp" line="131"/>
<source>Version:</source>
<translation>Version:</translation>
</message>
@@ -25,134 +25,134 @@
<context>
<name>LoadSetsPage</name>
<message>
<location filename="src/oraclewizard.cpp" line="288"/>
<location filename="src/pages.cpp" line="200"/>
<source>Source selection</source>
<translation>Quellenauswahl</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="289"/>
<location filename="src/pages.cpp" line="201"/>
<source>Please specify a compatible source for the list of sets and cards. You can specify a URL address that will be downloaded or use an existing file from your computer.</source>
<translation>Bitte geben Sie eine kompatible Quelle für die Liste der Editionen und Karten an. Sie können eine URL-Adresse zum Herunterladen angeben oder eine existierende Datei von Ihrem Computer verwenden.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="293"/>
<location filename="src/pages.cpp" line="205"/>
<source>Download URL:</source>
<translation>Download URL:</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="294"/>
<location filename="src/pages.cpp" line="206"/>
<source>Local file:</source>
<translation>Lokale Datei:</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="295"/>
<location filename="src/pages.cpp" line="207"/>
<source>Restore default URL</source>
<translation>Standard-URL wiederherstellen</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="296"/>
<location filename="src/pages.cpp" line="208"/>
<source>Choose file...</source>
<translation>Datei auswählen...</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="306"/>
<location filename="src/pages.cpp" line="218"/>
<source>Load sets file</source>
<translation>Editionsdatei wird geladen</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="316"/>
<location filename="src/pages.cpp" line="228"/>
<source>Sets file (%1)</source>
<oldsource>Sets JSON file (%1)</oldsource>
<translation>Sets Datei (%1)</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="346"/>
<location filename="src/oraclewizard.cpp" line="365"/>
<location filename="src/oraclewizard.cpp" line="370"/>
<location filename="src/oraclewizard.cpp" line="438"/>
<location filename="src/oraclewizard.cpp" line="569"/>
<location filename="src/oraclewizard.cpp" line="582"/>
<location filename="src/oraclewizard.cpp" line="603"/>
<location filename="src/pages.cpp" line="258"/>
<location filename="src/pages.cpp" line="277"/>
<location filename="src/pages.cpp" line="282"/>
<location filename="src/pages.cpp" line="354"/>
<location filename="src/pages.cpp" line="485"/>
<location filename="src/pages.cpp" line="498"/>
<location filename="src/pages.cpp" line="519"/>
<source>Error</source>
<translation>Fehler</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="346"/>
<location filename="src/pages.cpp" line="258"/>
<source>The provided URL is not valid.</source>
<translation>Die eingegebene URL ist nicht gültig.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="350"/>
<location filename="src/pages.cpp" line="262"/>
<source>Downloading (0MB)</source>
<translation>Herunterladen (0MB)</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="365"/>
<location filename="src/pages.cpp" line="277"/>
<source>Please choose a file.</source>
<translation>Bitte wählen Sie eine Datei.</translation>
<translation>Bitte wähle eine Datei aus.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="370"/>
<location filename="src/pages.cpp" line="282"/>
<source>Cannot open file &apos;%1&apos;.</source>
<translation>Datei &apos;%1&apos; kann nicht geöffnet werden.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="429"/>
<location filename="src/pages.cpp" line="345"/>
<source>Downloading (%1MB)</source>
<translation>Herunterladen (%1MB)</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="438"/>
<location filename="src/pages.cpp" line="354"/>
<source>Network error: %1.</source>
<translation>Netzwerkfehler: %1.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="476"/>
<location filename="src/pages.cpp" line="392"/>
<source>Parsing file</source>
<translation>Datei wird verarbeitet</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="498"/>
<location filename="src/pages.cpp" line="414"/>
<source>Xz extraction failed.</source>
<translation>Fehler beim Extrahieren der xz Datei.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="505"/>
<location filename="src/pages.cpp" line="421"/>
<source>Sorry, this version of Oracle does not support xz compressed files.</source>
<translation>Es tut uns Leid, diese Version von Oracle unterstützt keine xz komprimierten Dateien.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="525"/>
<location filename="src/pages.cpp" line="441"/>
<source>Failed to open Zip archive: %1.</source>
<translation>Fehler beim Öffnen des Zip Archivs: %1.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="530"/>
<location filename="src/pages.cpp" line="446"/>
<source>Zip extraction failed: the Zip archive doesn&apos;t contain exactly one file.</source>
<translation>Fehler beim Extrahieren: Das Zip Archiv enthält mehr als eine Datei.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="538"/>
<location filename="src/pages.cpp" line="454"/>
<source>Zip extraction failed: %1.</source>
<translation>Fehler beim Extrahieren: %1.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="546"/>
<location filename="src/pages.cpp" line="462"/>
<source>Sorry, this version of Oracle does not support zipped files.</source>
<translation>Es tut uns Leid, diese Version von Oracle unterstützt keine Zip Archive.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="569"/>
<location filename="src/pages.cpp" line="485"/>
<source>Failed to interpret downloaded data.</source>
<translation>Interpretation der heruntergeladenen Daten fehlgeschlagen.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="582"/>
<location filename="src/pages.cpp" line="498"/>
<source>Do you want to download the uncompressed file instead?</source>
<translation>Möchten Sie stattdessen die unkomprimierte Datei herunterladen?</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="604"/>
<location filename="src/pages.cpp" line="520"/>
<source>The file was retrieved successfully, but it does not contain any sets data.</source>
<translation>Die Datei wurde erfolgreich abgerufen, sie enthält aber keine Editionsdaten.</translation>
</message>
@@ -160,42 +160,57 @@
<context>
<name>LoadSpoilersPage</name>
<message>
<location filename="src/oraclewizard.cpp" line="790"/>
<location filename="src/pages.cpp" line="716"/>
<source>Save spoiler database</source>
<translation>Speichere Spoilerdatenbank</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="795"/>
<location filename="src/pages.cpp" line="721"/>
<source>XML; spoiler database (*.xml)</source>
<translation>XML; Spoilerdatenbank (*.xml)</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="800"/>
<location filename="src/pages.cpp" line="726"/>
<source>spoiler</source>
<translation>Spoiler</translation>
</message>
<message>
<location filename="src/pages.cpp" line="731"/>
<source>Spoilers import</source>
<translation>Spoilerimport</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="801"/>
<location filename="src/pages.cpp" line="732"/>
<source>Please specify a compatible source for spoiler data.</source>
<translation>Bitte geben Sie eine kompatible Quelle für Spoilerdaten an.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="803"/>
<location filename="src/pages.cpp" line="734"/>
<source>Download URL:</source>
<translation>Download URL:</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="804"/>
<location filename="src/pages.cpp" line="735"/>
<source>Local file:</source>
<translation>Lokale Datei:</translation>
</message>
<message>
<location filename="src/pages.cpp" line="736"/>
<source>Restore default URL</source>
<translation>Standard-URL wiederherstellen</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="805"/>
<location filename="src/pages.cpp" line="737"/>
<source>Choose file...</source>
<translation>Datei auswählen...</translation>
</message>
<message>
<location filename="src/pages.cpp" line="739"/>
<source>The spoiler database will be saved at the following location:</source>
<translation>Die Spoilerdatenbank wird in folgendem Pfad gespeichert:</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="807"/>
<location filename="src/pages.cpp" line="741"/>
<source>Save to a custom path (not recommended)</source>
<translation>Speichere in benutzerdefiniertem Pfad (nicht empfohlen)</translation>
</message>
@@ -203,42 +218,57 @@
<context>
<name>LoadTokensPage</name>
<message>
<location filename="src/oraclewizard.cpp" line="753"/>
<location filename="src/pages.cpp" line="671"/>
<source>Save token database</source>
<translation>Speichere Spielsteindatenbank</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="758"/>
<location filename="src/pages.cpp" line="676"/>
<source>XML; token database (*.xml)</source>
<translation>XML; Spielsteindatenbank (*.xml)</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="763"/>
<location filename="src/pages.cpp" line="681"/>
<source>tokens</source>
<translation>Spielsteine</translation>
</message>
<message>
<location filename="src/pages.cpp" line="686"/>
<source>Tokens import</source>
<translation>Spielsteinimport</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="764"/>
<location filename="src/pages.cpp" line="687"/>
<source>Please specify a compatible source for token data.</source>
<translation>Bitte geben Sie eine kompatible Quelle für Spielsteindaten an.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="766"/>
<location filename="src/pages.cpp" line="689"/>
<source>Download URL:</source>
<translation>Download URL:</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="767"/>
<location filename="src/pages.cpp" line="690"/>
<source>Local file:</source>
<translation>Lokale Datei:</translation>
</message>
<message>
<location filename="src/pages.cpp" line="691"/>
<source>Restore default URL</source>
<translation>Standard-URL wiederherstellen</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="768"/>
<location filename="src/pages.cpp" line="692"/>
<source>Choose file...</source>
<translation>Datei auswählen...</translation>
</message>
<message>
<location filename="src/pages.cpp" line="694"/>
<source>The token database will be saved at the following location:</source>
<translation>Die Spielsteindatenbank wird in folgendem Pfad gespeichert:</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="770"/>
<location filename="src/pages.cpp" line="696"/>
<source>Save to a custom path (not recommended)</source>
<translation>Speichere in benutzerdefiniertem Pfad (nicht empfohlen)</translation>
</message>
@@ -246,7 +276,7 @@
<context>
<name>OracleImporter</name>
<message>
<location filename="src/oracleimporter.cpp" line="466"/>
<location filename="src/oracleimporter.cpp" line="541"/>
<source>Dummy set containing tokens</source>
<translation>Platzhalter Edition mit Spielsteinen</translation>
</message>
@@ -254,7 +284,7 @@
<context>
<name>OracleWizard</name>
<message>
<location filename="src/oraclewizard.cpp" line="106"/>
<location filename="src/oraclewizard.cpp" line="70"/>
<source>Oracle Importer</source>
<translation>Oracle Importer</translation>
</message>
@@ -262,22 +292,22 @@
<context>
<name>OutroPage</name>
<message>
<location filename="src/oraclewizard.cpp" line="224"/>
<location filename="src/pages.cpp" line="136"/>
<source>Finished</source>
<translation>Fertig</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="225"/>
<location filename="src/pages.cpp" line="137"/>
<source>The wizard has finished.</source>
<translation>Der Wizard ist fertig.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="226"/>
<location filename="src/pages.cpp" line="138"/>
<source>You can now start using Cockatrice with the newly updated cards.</source>
<translation>Sie können nun Cockatrice mit den aktuellen Karten verwenden.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="227"/>
<location filename="src/pages.cpp" line="139"/>
<source>If the card databases don&apos;t reload automatically, restart the Cockatrice client.</source>
<translation>Falls die Datenbanken nicht automatisch neu geladen werden, starten Sie bitte Cockatrice neu.</translation>
</message>
@@ -285,73 +315,73 @@
<context>
<name>SaveSetsPage</name>
<message>
<location filename="src/oraclewizard.cpp" line="646"/>
<location filename="src/oraclewizard.cpp" line="720"/>
<location filename="src/pages.cpp" line="563"/>
<location filename="src/pages.cpp" line="638"/>
<source>Error</source>
<translation>Fehler</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="646"/>
<location filename="src/pages.cpp" line="563"/>
<source>No set has been imported.</source>
<translation>Es wurden keine Editionen importiert.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="656"/>
<location filename="src/pages.cpp" line="574"/>
<source>Sets imported</source>
<translation>Editionen wurden importiert</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="658"/>
<location filename="src/pages.cpp" line="576"/>
<source>A cockatrice database file of %1 MB has been downloaded.</source>
<translation>Eine Cockatrice-Datenbankdatei der Größe %1 MB wurde heruntergeladen.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="661"/>
<location filename="src/pages.cpp" line="579"/>
<source>The following sets have been found:</source>
<translation>Die folgenden Sets wurden gefunden:</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="664"/>
<location filename="src/pages.cpp" line="582"/>
<source>Press &quot;Save&quot; to store the imported cards in the Cockatrice database.</source>
<translation>Drücken Sie &quot;Speichern&quot;, um die importierten Karten in der Datenbank zu speichern.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="665"/>
<location filename="src/pages.cpp" line="583"/>
<source>The card database will be saved at the following location:</source>
<translation>Die Kartendatenbank wird in folgendem Pfad gespeichert:</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="667"/>
<location filename="src/pages.cpp" line="585"/>
<source>Save to a custom path (not recommended)</source>
<translation>Speichere in benutzerdefiniertem Pfad (nicht empfohlen)</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="669"/>
<location filename="src/pages.cpp" line="587"/>
<source>&amp;Save</source>
<translation>&amp;Speichern</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="675"/>
<location filename="src/pages.cpp" line="593"/>
<source>Import finished: %1 cards.</source>
<translation>Importieren abgeschlossen: %1 Karten.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="678"/>
<location filename="src/pages.cpp" line="596"/>
<source>%1: %2 cards imported</source>
<translation>%1: %2 Karten importiert.</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="687"/>
<location filename="src/pages.cpp" line="605"/>
<source>Save card database</source>
<translation>Kartendatenbank speichern</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="688"/>
<location filename="src/pages.cpp" line="606"/>
<source>XML; card database (*.xml)</source>
<translation>XML; Kartendatenbank (*.xml)</translation>
</message>
<message>
<location filename="src/oraclewizard.cpp" line="720"/>
<location filename="src/pages.cpp" line="638"/>
<source>The file could not be saved to %1</source>
<translation>Die Datei konnte nicht gespeichert werden:
%1 </translation>
@@ -360,34 +390,56 @@
<context>
<name>SimpleDownloadFilePage</name>
<message>
<location filename="src/pagetemplates.cpp" line="73"/>
<location filename="src/pagetemplates.cpp" line="113"/>
<location filename="src/pagetemplates.cpp" line="169"/>
<location filename="src/pagetemplates.cpp" line="72"/>
<source>Load %1 file</source>
<translation>Lade %1 Datei</translation>
</message>
<message>
<location filename="src/pagetemplates.cpp" line="82"/>
<source>%1 file (%1)</source>
<translation>%1 Datei (%1)</translation>
</message>
<message>
<location filename="src/pagetemplates.cpp" line="111"/>
<location filename="src/pagetemplates.cpp" line="129"/>
<location filename="src/pagetemplates.cpp" line="134"/>
<location filename="src/pagetemplates.cpp" line="168"/>
<location filename="src/pagetemplates.cpp" line="224"/>
<source>Error</source>
<translation>Fehler</translation>
</message>
<message>
<location filename="src/pagetemplates.cpp" line="73"/>
<location filename="src/pagetemplates.cpp" line="111"/>
<source>The provided URL is not valid: </source>
<translation>Die bereitgestellte URL ist nicht gültig:</translation>
</message>
<message>
<location filename="src/pagetemplates.cpp" line="77"/>
<location filename="src/pagetemplates.cpp" line="115"/>
<source>Downloading (0MB)</source>
<translation>Herunterladen (0MB)</translation>
</message>
<message>
<location filename="src/pagetemplates.cpp" line="104"/>
<location filename="src/pagetemplates.cpp" line="129"/>
<source>Please choose a file.</source>
<translation>Bitte wähle eine Datei aus.</translation>
</message>
<message>
<location filename="src/pagetemplates.cpp" line="134"/>
<source>Cannot open file &apos;%1&apos;.</source>
<translation>Datei &apos;%1&apos; kann nicht geöffnet werden.</translation>
</message>
<message>
<location filename="src/pagetemplates.cpp" line="159"/>
<source>Downloading (%1MB)</source>
<translation>Herunterladen (%1MB)</translation>
</message>
<message>
<location filename="src/pagetemplates.cpp" line="113"/>
<location filename="src/pagetemplates.cpp" line="168"/>
<source>Network error: %1.</source>
<translation>Netzwerkfehler: %1.</translation>
</message>
<message>
<location filename="src/pagetemplates.cpp" line="169"/>
<location filename="src/pagetemplates.cpp" line="224"/>
<source>The file could not be saved to %1</source>
<translation>Die Datei konnte nicht in %1 gespeichert werden</translation>
</message>
@@ -536,7 +588,7 @@
<context>
<name>i18n</name>
<message>
<location filename="src/oraclewizard.cpp" line="58"/>
<location filename="src/oraclewizard.cpp" line="22"/>
<source>English</source>
<translation>Deutsch (German)</translation>
</message>