Compare commits

...

5 commits

Author SHA1 Message Date
tooomm
b545efb929
[Readme] Add hint on building docs (#7389)
Some checks failed
CodeQL / Analyze (cpp) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
Build Desktop / Configure (push) Has been cancelled
Build Docker / Servatrice (arm) (push) Has been cancelled
Build Docker / Servatrice (x86) (push) Has been cancelled
Build Desktop / Debian 13 (push) Has been cancelled
Build Desktop / Debian 12 (push) Has been cancelled
Build Desktop / Fedora 44 (push) Has been cancelled
Build Desktop / Fedora 43 (push) Has been cancelled
Build Desktop / Servatrice_Debian 12 (push) Has been cancelled
Build Desktop / Ubuntu 26.04 (push) Has been cancelled
Build Desktop / Ubuntu 24.04 (push) Has been cancelled
Build Desktop / Arch (push) Has been cancelled
Build Desktop / macOS 13 Intel (push) Has been cancelled
Build Desktop / macOS 14 (push) Has been cancelled
Build Desktop / macOS 15 (push) Has been cancelled
Build Desktop / macOS 26 Debug (push) Has been cancelled
Build Desktop / Windows 10 (push) Has been cancelled
Build Docker / Publish multi-platform Servatrice image (push) Has been cancelled
* add hint on building docs

* Update README.md

* Update README.md

* Expand doxygen README
2026-10-04 21:48:10 +02:00
tooomm
a02523ee9e
Add CONTRIBUTING file to doc links (#7395) 2026-10-04 21:46:56 +02:00
github-actions[bot]
a8e9eb3c1b
Update translation source strings (#7397) 2026-10-04 21:08:47 +02:00
tooomm
327a6bfd8a
[CI] Fix permissions for automations around translations (#7394)
* Update translations-push.yml

* Update translations-pull.yml
2026-10-04 20:20:28 +02:00
BruebachL
86039d7eb6
Change release name for 3.1.0 release. (#7388)
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
2026-10-04 20:15:31 +02:00
7 changed files with 5709 additions and 2053 deletions

View file

@ -1,7 +1,7 @@
name: Update Translations
permissions:
contents: read
contents: write
pull-requests: write
on:

View file

@ -1,7 +1,7 @@
name: Update Translation Source
permissions:
contents: read
contents: write
pull-requests: write
on:

View file

@ -90,7 +90,7 @@ project("Cockatrice" VERSION 3.1.0)
# Set release name if not provided via env/cmake var
if(NOT DEFINED GIT_TAG_RELEASENAME)
set(GIT_TAG_RELEASENAME "Graduation Day")
set(GIT_TAG_RELEASENAME "Reality Check")
endif()
# Use c++20 for all targets

View file

@ -102,6 +102,7 @@ There are various places where useful information for different needs are mainta
- [Official Wiki](https://github.com/Cockatrice/Cockatrice/wiki) `Community supported`
- [Official Webpage](https://cockatrice.github.io/)
- [Official README](https://github.com/Cockatrice/Cockatrice/blob/master/README.md) `This file`
- [Official CONTRIBUTING](https://github.com/Cockatrice/Cockatrice/blob/master/.github/CONTRIBUTING.md)
Cockatrice tries to use the [Google Developer Documentation Style Guide](https://developers.google.com/style/) to ensure consistent documentation. We encourage you to improve the documentation by suggesting edits based on this guide.
@ -159,6 +160,12 @@ The following flags (with their non-default values) can be passed to `cmake`:
| `-DUPDATE_TRANSLATIONS=1` | Configure `make` to update the translation .ts files for new strings in the source code<br> **Note:** `make clean` will remove the .ts files |
| `-DTEST=1` | Enable regression tests<br> **Note:** `make test` to run tests, *googletest* will be downloaded if not available |
> [!TIP]
> Build code documentation ([Doxygen](https://www.doxygen.nl)) according to our [configuration](https://github.com/Cockatrice/Cockatrice/blob/master/Doxyfile) into `/docs`:
> ```bash
> doxygen Doxyfile
> ```
# Run

File diff suppressed because it is too large Load diff

View file

@ -1,3 +1,14 @@
## Building Doxygen Documentation
We use [Doxygen](https://www.doxygen.nl) for our code documentation.
After installing the tool, you can build a HTML webpage into `/docs` folder according to our [configuration](https://github.com/Cockatrice/Cockatrice/blob/master/Doxyfile):
```bash
doxygen Doxyfile
```
Open the `index.html` file in the `/docs/html/` folder to view and use it.
There is also an online version we host at the Cockatrice webpage: [cockatrice.github.io/docs](https://cockatrice.github.io/docs)
## 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:

View file

@ -4,22 +4,22 @@
<context>
<name>IntroPage</name>
<message>
<location filename="src/pages.cpp" line="127"/>
<location filename="src/pages.cpp" line="239"/>
<source>Introduction</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="128"/>
<location filename="src/pages.cpp" line="240"/>
<source>This wizard will import the list of sets, cards, and tokens that will be used by Cockatrice.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="130"/>
<location filename="src/pages.cpp" line="242"/>
<source>Interface language:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="131"/>
<location filename="src/pages.cpp" line="243"/>
<source>Version:</source>
<translation type="unfinished"></translation>
</message>
@ -27,192 +27,206 @@
<context>
<name>LoadSetsPage</name>
<message>
<location filename="src/pages.cpp" line="200"/>
<location filename="src/pages.cpp" line="317"/>
<source>Source selection</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="201"/>
<location filename="src/pages.cpp" line="318"/>
<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 type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="205"/>
<location filename="src/pages.cpp" line="322"/>
<source>Download URL:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="206"/>
<location filename="src/pages.cpp" line="323"/>
<source>Local file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="207"/>
<location filename="src/pages.cpp" line="324"/>
<source>Restore default URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="208"/>
<location filename="src/pages.cpp" line="325"/>
<source>Choose file...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="218"/>
<location filename="src/pages.cpp" line="335"/>
<source>Load sets file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="228"/>
<location filename="src/pages.cpp" line="345"/>
<source>Sets file (%1)</source>
<oldsource>Sets JSON file (%1)</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
<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"/>
<location filename="src/pages.cpp" line="375"/>
<location filename="src/pages.cpp" line="394"/>
<location filename="src/pages.cpp" line="469"/>
<location filename="src/pages.cpp" line="604"/>
<location filename="src/pages.cpp" line="644"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="258"/>
<location filename="src/pages.cpp" line="375"/>
<source>The provided URL is not valid.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="262"/>
<source>Downloading (0MB)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="277"/>
<location filename="src/pages.cpp" line="394"/>
<source>Please choose a file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="282"/>
<location filename="src/pages.cpp" line="576"/>
<source>Cannot open file &apos;%1&apos;.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="345"/>
<source>Downloading (%1MB)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="354"/>
<location filename="src/pages.cpp" line="469"/>
<source>Network error: %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="392"/>
<location filename="src/pages.cpp" line="524"/>
<source>Parsing file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="414"/>
<location filename="src/pages.cpp" line="100"/>
<source>Xz extraction failed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="421"/>
<location filename="src/pages.cpp" line="108"/>
<source>Sorry, this version of Oracle does not support xz compressed files.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="441"/>
<location filename="src/pages.cpp" line="120"/>
<source>Failed to open Zip archive: %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="446"/>
<location filename="src/pages.cpp" line="126"/>
<source>Zip extraction failed: the Zip archive doesn&apos;t contain exactly one file.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="454"/>
<location filename="src/pages.cpp" line="137"/>
<source>Zip extraction failed: %1.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="462"/>
<location filename="src/pages.cpp" line="144"/>
<source>Sorry, this version of Oracle does not support zipped files.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="485"/>
<location filename="src/pages.cpp" line="164"/>
<source>Failed to interpret downloaded data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="498"/>
<location filename="src/pages.cpp" line="379"/>
<source>Downloading (0 MB)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="460"/>
<source>Downloading (%1 MB)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="509"/>
<source>Parsing file (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="524"/>
<source>Extracting file...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="604"/>
<source>Do you want to download the uncompressed file instead?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="520"/>
<location filename="src/pages.cpp" line="635"/>
<location filename="src/pages.cpp" line="657"/>
<source>The file was retrieved successfully, but it does not contain any sets data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="666"/>
<source>Parsing file (100%)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoadSpoilersPage</name>
<message>
<location filename="src/pages.cpp" line="716"/>
<location filename="src/pages.cpp" line="952"/>
<source>Save spoiler database</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="721"/>
<location filename="src/pages.cpp" line="957"/>
<source>XML; spoiler database (*.xml)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="726"/>
<location filename="src/pages.cpp" line="962"/>
<source>spoiler</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="731"/>
<location filename="src/pages.cpp" line="967"/>
<source>Spoilers import</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="732"/>
<location filename="src/pages.cpp" line="968"/>
<source>Please specify a compatible source for spoiler data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="734"/>
<location filename="src/pages.cpp" line="970"/>
<source>Download URL:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="735"/>
<location filename="src/pages.cpp" line="971"/>
<source>Local file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="736"/>
<location filename="src/pages.cpp" line="972"/>
<source>Restore default URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="737"/>
<location filename="src/pages.cpp" line="973"/>
<source>Choose file...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="739"/>
<location filename="src/pages.cpp" line="975"/>
<source>The spoiler database will be saved at the following location:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="741"/>
<location filename="src/pages.cpp" line="977"/>
<source>Save to a custom path (not recommended)</source>
<translation type="unfinished"></translation>
</message>
@ -220,57 +234,57 @@
<context>
<name>LoadTokensPage</name>
<message>
<location filename="src/pages.cpp" line="671"/>
<location filename="src/pages.cpp" line="907"/>
<source>Save token database</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="676"/>
<location filename="src/pages.cpp" line="912"/>
<source>XML; token database (*.xml)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="681"/>
<location filename="src/pages.cpp" line="917"/>
<source>tokens</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="686"/>
<location filename="src/pages.cpp" line="922"/>
<source>Tokens import</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="687"/>
<location filename="src/pages.cpp" line="923"/>
<source>Please specify a compatible source for token data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="689"/>
<location filename="src/pages.cpp" line="925"/>
<source>Download URL:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="690"/>
<location filename="src/pages.cpp" line="926"/>
<source>Local file:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="691"/>
<location filename="src/pages.cpp" line="927"/>
<source>Restore default URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="692"/>
<location filename="src/pages.cpp" line="928"/>
<source>Choose file...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="694"/>
<location filename="src/pages.cpp" line="930"/>
<source>The token database will be saved at the following location:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="696"/>
<location filename="src/pages.cpp" line="932"/>
<source>Save to a custom path (not recommended)</source>
<translation type="unfinished"></translation>
</message>
@ -278,7 +292,7 @@
<context>
<name>OracleImporter</name>
<message>
<location filename="src/oracleimporter.cpp" line="542"/>
<location filename="src/oracleimporter.cpp" line="770"/>
<source>Dummy set containing tokens</source>
<translation type="unfinished"></translation>
</message>
@ -286,7 +300,7 @@
<context>
<name>OracleWizard</name>
<message>
<location filename="src/oraclewizard.cpp" line="101"/>
<location filename="src/oraclewizard.cpp" line="106"/>
<source>Oracle Importer</source>
<translation type="unfinished"></translation>
</message>
@ -294,22 +308,22 @@
<context>
<name>OutroPage</name>
<message>
<location filename="src/pages.cpp" line="136"/>
<location filename="src/pages.cpp" line="248"/>
<source>Finished</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="137"/>
<location filename="src/pages.cpp" line="249"/>
<source>The wizard has finished.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="138"/>
<location filename="src/pages.cpp" line="250"/>
<source>You can now start using Cockatrice with the newly updated cards.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="139"/>
<location filename="src/pages.cpp" line="251"/>
<source>If the card databases don&apos;t reload automatically, restart the Cockatrice client.</source>
<translation type="unfinished"></translation>
</message>
@ -317,73 +331,76 @@
<context>
<name>SaveSetsPage</name>
<message>
<location filename="src/pages.cpp" line="563"/>
<location filename="src/pages.cpp" line="638"/>
<location filename="src/pages.cpp" line="789"/>
<location filename="src/pages.cpp" line="874"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="563"/>
<location filename="src/pages.cpp" line="780"/>
<location filename="src/pages.cpp" line="789"/>
<source>No set has been imported.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="574"/>
<location filename="src/pages.cpp" line="795"/>
<source>Sets imported</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="576"/>
<source>A cockatrice database file of %1 MB has been downloaded.</source>
<location filename="src/pages.cpp" line="797"/>
<source>A Cockatrice card database file of %1 MB has been downloaded.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="579"/>
<location filename="src/pages.cpp" line="800"/>
<source>The following sets have been found:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="582"/>
<location filename="src/pages.cpp" line="803"/>
<source>Press &quot;Save&quot; to store the imported cards in the Cockatrice database.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="583"/>
<location filename="src/pages.cpp" line="804"/>
<source>The card database will be saved at the following location:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="585"/>
<location filename="src/pages.cpp" line="806"/>
<source>Save to a custom path (not recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="587"/>
<location filename="src/pages.cpp" line="808"/>
<source>&amp;Save</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="593"/>
<location filename="src/pages.cpp" line="820"/>
<location filename="src/pages.cpp" line="823"/>
<source>Import finished: %1 cards.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="596"/>
<location filename="src/pages.cpp" line="828"/>
<location filename="src/pages.cpp" line="831"/>
<source>%1: %2 cards imported</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="605"/>
<location filename="src/pages.cpp" line="841"/>
<source>Save card database</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="606"/>
<location filename="src/pages.cpp" line="842"/>
<source>XML; card database (*.xml)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/pages.cpp" line="638"/>
<location filename="src/pages.cpp" line="874"/>
<source>The file could not be saved to %1</source>
<translation type="unfinished"></translation>
</message>
@ -416,7 +433,8 @@
</message>
<message>
<location filename="src/pagetemplates.cpp" line="115"/>
<source>Downloading (0MB)</source>
<source>Downloading (0 MB)</source>
<oldsource>Downloading (0MB)</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
@ -589,7 +607,7 @@
<context>
<name>i18n</name>
<message>
<location filename="src/oraclewizard.cpp" line="22"/>
<location filename="src/oraclewizard.cpp" line="24"/>
<source>English</source>
<translation type="unfinished"></translation>
</message>
@ -597,12 +615,12 @@
<context>
<name>main</name>
<message>
<location filename="src/main.cpp" line="62"/>
<location filename="src/main.cpp" line="48"/>
<source>Only run in spoiler mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="src/main.cpp" line="63"/>
<location filename="src/main.cpp" line="49"/>
<source>Run in no-confirm background mode</source>
<translation type="unfinished"></translation>
</message>