Merge branch 'master' of https://gitlab.com/es-de/emulationstation-de into retrodeck-main
Some checks are pending
Build ES-DE / Building_RetroDECK-ES-DE (push) Waiting to run

This commit is contained in:
XargonWan 2024-10-28 10:41:10 +09:00
commit 8d38b741d8
74 changed files with 6377 additions and 117 deletions

View file

@ -4,8 +4,7 @@ This document contains information specific to the Android release, for more gen
It's also generally recommended to read the [Frequently Asked Questions (FAQ) for Android](FAQ-ANDROID.md) document prior to diving into the information in this document.
You can buy the Android APK from our Patreon page: \
https://www.patreon.com/es_de
You can buy the Android APK via [Patreon](https://www.patreon.com/es_de), the [Samsung Galaxy Store](https://galaxystore.samsung.com/detail/org.es_de.frontend.galaxy) or [Huawei AppGallery](https://appgallery.huawei.com/#/app/C111315115)
Table of contents:
@ -215,6 +214,12 @@ If you prefer to apply the NetherSX2 patch yourself (i.e. build the APK) then yo
https://github.com/Trixarian/NetherSX2-patch
### Cemu
This emulator can be downloaded from the following GitHub site. Note that this repository is not from the official Cemu project, we consider Cemu as experimental on Android for the time being.
https://github.com/SSimco/Cemu/releases
### Citra
The original Citra emulator project is no longer alive, but there is a fork that should work as a drop-in replacement. The Citra MMJ fork is also a viable alternative. Both of these emulators are available for download from their GitHub sites.
@ -302,8 +307,9 @@ https://github.com/jtothebell/fake-08/releases
### Flycast
Flycast is not available on the Play store or the F-Droid store, but it can be downloaded from their GitHub site.
This emulator can be installed from the Play store or it can be downloaded from their GitHub site.
https://play.google.com/store/apps/details?id=com.flycast.emulator \
https://github.com/flyinghead/flycast/releases
### fMSX
@ -547,6 +553,7 @@ This is clearly not a complete list of Android devices, but rather those we know
| Anbernic | RG ARC | 12 | Yes | None | LineageOS |
| Anbernic | RG Cube | 13 | Yes | None | |
| AYANEO | Pocket Air | 12 | Yes | None | |
| AYANEO | Pocket Micro | 13 | Yes | None | |
| AYANEO | Pocket S | 13 | Yes | None | |
| Ayn | Odin (Base/Pro) | 10 | Yes | None | |
| Ayn | Odin Lite | 11 | Yes | None | |
@ -615,8 +622,8 @@ This is clearly not a complete list of Android devices, but rather those we know
| Samsung | Galaxy A71 5G | 13 | Yes | None | |
| Samsung | Galaxy M52 5G | 13 | Yes | None | |
| Samsung | Galaxy Note 9 | 10 | Yes | None | |
| Samsung | Galaxy Note 20 | 13 | No | Fails at configurator/onboarding | |
| Samsung | Galaxy Note 20 Ultra 5G | 13 | Yes | None | |
| Samsung | Galaxy Note 20 | 13 | Yes | None | The configurator/onboarding may fail if the device is in portrait mode, so always use landscape mode when running through the initial setup |
| Samsung | Galaxy Note 20 Ultra 5G | 13 | Yes | None | The configurator/onboarding may fail if the device is in portrait mode, so always use landscape mode when running through the initial setup |
| Samsung | Galaxy S9+ | 10 | Yes | None | |
| Samsung | Galaxy S10 | 12 | Yes | None | |
| Samsung | Galaxy S20 | 13 | Yes | None | |
@ -835,7 +842,7 @@ The **@** symbol indicates that the emulator is _deprecated_ and will be removed
| vsmile | VTech V.Smile | MAME4droid 2024 **(Standalone)** | | Yes | Single archive or ROM file |
| wasm4 | WASM-4 Fantasy Console | WASM-4 | | No | Single .wasm file |
| wii | Nintendo Wii | Dolphin | Dolphin **(Standalone)**,<br>Dolphin MMJR **(Standalone)**,<br>Dolphin MMJR2 **(Standalone)** | No | |
| wiiu | Nintendo Wii U | _Placeholder_ | | | |
| wiiu | Nintendo Wii U | Cemu **(Standalone)** | | No | See the specific _Nintendo Wii U_ section in the user guide |
| windows | Microsoft Windows | Winlator Cmod Glibc **(Standalone)** | Winlator Cmod PRoot **(Standalone)** | No | See the _Winlator_ section elsewhere in this document |
| windows3x | Microsoft Windows 3.x | DOSBox-Pure | | No | |
| windows9x | Microsoft Windows 9x | DOSBox-Pure | | No | |

View file

@ -4,8 +4,7 @@ This document contains information specific to the Android release, for more gen
It's also generally recommended to read the [Frequently Asked Questions (FAQ) for Android](FAQ-ANDROID.md) document prior to diving into the information in this document.
You can buy the Android APK from our Patreon page: \
https://www.patreon.com/es_de
You can buy the Android APK via [Patreon](https://www.patreon.com/es_de), the [Samsung Galaxy Store](https://galaxystore.samsung.com/detail/org.es_de.frontend.galaxy) or [Huawei AppGallery](https://appgallery.huawei.com/#/app/C111315115)
Table of contents:
@ -302,8 +301,9 @@ https://github.com/jtothebell/fake-08/releases
### Flycast
Flycast is not available on the Play store or the F-Droid store, but it can be downloaded from their GitHub site.
This emulator can be installed from the Play store or it can be downloaded from their GitHub site.
https://play.google.com/store/apps/details?id=com.flycast.emulator \
https://github.com/flyinghead/flycast/releases
### fMSX
@ -547,6 +547,7 @@ This is clearly not a complete list of Android devices, but rather those we know
| Anbernic | RG ARC | 12 | Yes | None | LineageOS |
| Anbernic | RG Cube | 13 | Yes | None | |
| AYANEO | Pocket Air | 12 | Yes | None | |
| AYANEO | Pocket Micro | 13 | Yes | None | |
| AYANEO | Pocket S | 13 | Yes | None | |
| Ayn | Odin (Base/Pro) | 10 | Yes | None | |
| Ayn | Odin Lite | 11 | Yes | None | |
@ -615,8 +616,8 @@ This is clearly not a complete list of Android devices, but rather those we know
| Samsung | Galaxy A71 5G | 13 | Yes | None | |
| Samsung | Galaxy M52 5G | 13 | Yes | None | |
| Samsung | Galaxy Note 9 | 10 | Yes | None | |
| Samsung | Galaxy Note 20 | 13 | No | Fails at configurator/onboarding | |
| Samsung | Galaxy Note 20 Ultra 5G | 13 | Yes | None | |
| Samsung | Galaxy Note 20 | 13 | Yes | None | The configurator/onboarding may fail if the device is in portrait mode, so always use landscape mode when running through the initial setup |
| Samsung | Galaxy Note 20 Ultra 5G | 13 | Yes | None | The configurator/onboarding may fail if the device is in portrait mode, so always use landscape mode when running through the initial setup |
| Samsung | Galaxy S9+ | 10 | Yes | None | |
| Samsung | Galaxy S10 | 12 | Yes | None | |
| Samsung | Galaxy S20 | 13 | Yes | None | |

View file

@ -10,15 +10,31 @@
### Detailed list of changes
* Added translations for Catalan (ca_ES)
* Added translations for German (de_DE)
* Added translations for Dutch (nl_NL)
* Added translations for Korean (ko_KR)
* Decreased the memory footprint under some circumstances by completely freeing up video player resources after finishing view transitions
* The Git index stat cache is now refreshed for all themes when starting the theme downloader (this speeds up the inventory under some circumstances)
* (Android) Added experimental support for the Nintendo Wii U (wiiu) game system
* (Android) Changed Flycast standalone to use %ROMSAF% instead of %ROM% as the latter caused game launching to fail on some devices
* (Android) Improved the experience when running in multi-window mode
* (Android) Added exception handling to the onboarding configurator for broken devices where the SAF directory picker is missing
* (Android) Added a temporary workaround to avoid crashes on non-character keyboard input when editing text (caused by a bug in the SDL library)
* (modern-es-de) Replaced some legacy carousel icons
* Added the Nanum Square Neo Korean font
### Bug fixes
* Pressing the "Clear" button in the text editor and then entering some value in the input field crashed the application
* (Android) Switching from ES-DE to another app and back again while the "no ROMs" dialog was shown crashed the application
* (Android) Switching from ES-DE to the home app and back again while the onboarding configurator was running crashed the application
* There was a regression where filesystem case-sensitivity was not considered when looking for media files for the screensaver
* Invalid popup notifications were sometimes shown after a download error message had been displayed in the theme downloader
* Attempting to view media for a game that had no downloaded media paused the playback of all static theme videos
* Newly entered ScreenScraper username and password values were positioned incorrectly vertically in the account settings menu
* (linear-es-de) The carousel icon for tanodragon was incorrectly showing the dragon32 system
* (modern-es-de) The carousel icon for tanodragon was incorrectly showing the dragon32 system
## Version 3.1.0 / 3.1.0-32

View file

@ -19,6 +19,8 @@ Nils Bonenberger
**English (United Kingdom)** \
Weestuarty \
**Catalan** \
Johnnydement \
**German** \
Thorsten \
Pest \
@ -28,6 +30,8 @@ Dani (stshunz) \
Fredy27 (neuromancer974) \
**Italian** \
Viler \
**Dutch**\
Stefan VDB\
**Polish** \
kycho \
**Portuguese (Brazil)** \

View file

@ -16,7 +16,7 @@ The Android release specifically is not free, it's a paid app available for purc
## I bought ES-DE on Patreon, how do I get access to future releases?
When a new release is available you will be sent a download link to the email address you used to sign up for Patreon. Note that if you pay once on Patreon and cancel your paid membership you'll get one month of access to all posts and content, and when this month has passed you will no longer have access. This is how the Patreon platform works, and it's the reason why updates are distributed via email. As indicated in the welcome message when you join the ES-DE Patreon it's a good idea to save the download link so you have it available if you need to download the APK again.
When a new release is available you will be sent a download link to the email address you used to sign up for Patreon. Note that if you pay once on Patreon and cancel your paid membership you'll get one month of access to all posts and content, and when this month has passed you will no longer have access. This is how the Patreon platform works, and it's the reason why updates are distributed via email. As indicated in the welcome message when you join the ES-DE Patreon it's a good idea to save the download link so you have it available if you need to download the APK again. It's also possible to resend the latest update email to yourself using our self-service tool which can be found at https://resend.es-de.org
## Can I use ES-DE on more than a single Android device or do I need to buy it multiple times?

View file

@ -1,8 +1,8 @@
# ES-DE Frontend - Haiku documentation
Note that support for Haiku is currently experimental as the operating system itself is experimental.
ES-DE is available via HaikuDepot but if you still want to build it yourself then you can find detailed instructions in the _Building on Haiku_ section of the [INSTALL.md](INSTALL.md#building-on-haiku) document.
There are currently no pre-built packages available so you'll need to build ES-DE yourself. Detailed instructions are available in the _Building on Haiku_ section of the [INSTALL-DEV.md](INSTALL-DEV.md#building-on-haiku) document.
Note that support for Haiku is currently experimental as the operating system itself is experimental.
Table of contents:
@ -14,6 +14,8 @@ Table of contents:
* There is no 3D acceleration as the operating system does not support that
* ES-DE may crash or behave strange when used on Haiku Nightly (i.e. it's due to operating system issues, make sure to run R1/beta5 which should work fine)
## Emulator problems
In contrast with all other platforms which ES-DE runs on, on Haiku emulators which are not working correctly are still included in the configuration. This is done with the belief that things will improve in the future as the operating system matures.

View file

@ -451,12 +451,10 @@ Run the following to build the .hpkg package:
```
cd ~
git clone https://github.com/haikuports/haikuports.git --depth=50
mkdir haikuports/games-emulation/es-de
git clone https://github.com/leonstyhre/haikuports.git --depth=50
pkgman install haikuporter
cp /boot/system/settings/haikuports.conf ~/config/settings/
cd emulationstation-de
cp es-app/assets/es_de-3.1.0.recipe ~/haikuports/games-emulation/es-de
haikuporter --purge es_de
haikuporter -S --no-source-packages --get-dependencies -j8 es_de
```

View file

@ -449,12 +449,10 @@ Run the following to build the .hpkg package:
```
cd ~
git clone https://github.com/haikuports/haikuports.git --depth=50
mkdir haikuports/games-emulation/es-de
git clone https://github.com/leonstyhre/haikuports.git --depth=50
pkgman install haikuporter
cp /boot/system/settings/haikuports.conf ~/config/settings/
cd emulationstation-de
cp es-app/assets/es_de-3.1.0.recipe ~/haikuports/games-emulation/es-de
haikuporter --purge es_de
haikuporter -S --no-source-packages --get-dependencies -j8 es_de
```

View file

@ -276,7 +276,7 @@ Here is a very simple theme that changes the color of the game name text:
## How it works
All configuration must be contained within a `<theme>` tag pair. That is true for each separate .xml file used to build the completely theme.
All configuration must be contained within a `<theme>` tag pair. That is true for each separate .xml file used to build the complete theme.
The `<view>` tag pair refers to the available views within ES-DE, which is either _system_ or _gamelist_. There is a special _all_ view available as well, but that is only used for defining the navigation sounds as these are always applied globally to both view types.
@ -714,6 +714,7 @@ Here's an example configuration:
<gameCounterPos>0.4 0.6437</gameCounterPos>
<gameNameFontSize>0.006</gameNameFontSize>
</variables>
</fontSize>
<fontSize name="small, x-small">
<variables>
<publisherFontSize>0.011</publisherFontSize>
@ -726,6 +727,7 @@ Here's an example configuration:
<size>1 0.056</size>
<fontSize>${gameCounterFontSize}</fontSize>
</text>
</view>
<view name="gamelist">
<text name="gameName">
<pos>0.2 0.3412</pos>
@ -755,10 +757,12 @@ The following languages are supported:
| :------------ | :----------------------- | :----------------------- |
| en_US | English (United States) | English (United States) |
| en_GB | English (United Kingdom) | English (United Kingdom) |
| ca_ES | Catalan | Català |
| de_DE | German | Deutsch |
| es_ES | Spanish (Spain) | Español (España) |
| fr_FR | French | Français |
| it_IT | Italian | Italiano |
| nl_NL | Dutch | Nederlands |
| pl_PL | Polish | Polski |
| pt_BR | Portuguese (Brazil) | Português (Brasil) |
| ro_RO | Romanian | Română |

View file

@ -274,7 +274,7 @@ Here is a very simple theme that changes the color of the game name text:
## How it works
All configuration must be contained within a `<theme>` tag pair. That is true for each separate .xml file used to build the completely theme.
All configuration must be contained within a `<theme>` tag pair. That is true for each separate .xml file used to build the complete theme.
The `<view>` tag pair refers to the available views within ES-DE, which is either _system_ or _gamelist_. There is a special _all_ view available as well, but that is only used for defining the navigation sounds as these are always applied globally to both view types.
@ -712,6 +712,7 @@ Here's an example configuration:
<gameCounterPos>0.4 0.6437</gameCounterPos>
<gameNameFontSize>0.006</gameNameFontSize>
</variables>
</fontSize>
<fontSize name="small, x-small">
<variables>
<publisherFontSize>0.011</publisherFontSize>
@ -724,6 +725,7 @@ Here's an example configuration:
<size>1 0.056</size>
<fontSize>${gameCounterFontSize}</fontSize>
</text>
</view>
<view name="gamelist">
<text name="gameName">
<pos>0.2 0.3412</pos>

View file

@ -243,6 +243,8 @@ Just make sure to never place games or other resources on network shares using t
Also make sure that you don't use the exFAT filesystem as its very poor disk I/O performance will make ES-DE run really slowly. Using this filesystem will make the theme downloader fail as well.
There is also a limitation in Windows where the complete file path can't exceed 260 characters. So if you have files with extremely long names ES-DE may state that there are file permission problems for various operations such as when scraping or when running the orphaned data cleanup utility. In this case simply renaming the problematic game files to use shorter names should resolve the situation. If you use the portable release of ES-DE you could also relocate the entire application directory closer to the root of the filesystem to have shorter overall paths.
In order for ES-DE to run, graphics drivers with OpenGL support have to be installed. If not, the application simply won't start. For really old graphics cards the available drivers may not provide an OpenGL version that is modern enough for ES-DE to work, and in this case a last resort solution would be to install the _Mesa3D for Windows_ library which provides software-based OpenGL rendering. The 64-bit version of this library can be downloaded from https://fdossena.com/?p=mesa/index.frag and you simply extract the opengl32.dll file into the ES-DE installation directory. Just be aware that the performance may be quite bad.
On some GPUs with buggy drivers, ES-DE may only display a black screen on startup or when launching a game. The problem can be worked around by specifying a window size for ES-DE that is a single pixel wider than the actual screen resolution. So for example for a 1280x800 display, the resolution can be set to 1281x800 and then rendering should work correctly. This is applied using the --resolution command line option, for example:
@ -314,7 +316,7 @@ The Android port of ES-DE is quite different than the other versions, so it has
## Specific notes for Haiku
The [Haiku](https://www.haiku-os.org) port of ES-DE is currently experimental as the OS itself is experimental and has some issues. Still most functionality in ES-DE is working and there is support for a quite large number of systems and emulators. If you're interested in Haiku it's for sure worth trying it out. See the dedicated [HAIKU.md](HAIKU.md) document for more details.
The [Haiku](https://www.haiku-os.org) port of ES-DE is currently experimental as the OS itself is experimental and has some issues. Still most functionality is working and there is support for a quite large number of systems and emulators. If you're interested in Haiku it's for sure worth trying it out as ES-DE can be easily installed via HaikuDepot. See the dedicated [HAIKU.md](HAIKU.md) document for more details.
## Specific notes for Raspberry Pi
@ -3991,7 +3993,7 @@ The collection will now be created and the collection edit mode will be entered.
Removing a game works the same way, just press _Y_ to remove it if it's already present in your collection. You can do this either from the gamelist where the game was added, or from the collection itself.
Only files can be part of collections, not folders. Games marked as hidden or to not be counted as games can't be added either.
Only files can be part of collections, not folders. Games marked as hidden or set to not be counted as games can't be added either.
During the time that the collection is being edited, any game that is part of the collection is marked with a leading tick symbol in the game name if a textlist is used, and a _collection_ badge is displayed for the currently selected game as well (assuming the theme support badges).

View file

@ -241,6 +241,8 @@ Just make sure to never place games or other resources on network shares using t
Also make sure that you don't use the exFAT filesystem as its very poor disk I/O performance will make ES-DE run really slowly. Using this filesystem will make the theme downloader fail as well.
There is also a limitation in Windows where the complete file path can't exceed 260 characters. So if you have files with extremely long names ES-DE may state that there are file permission problems for various operations such as when scraping or when running the orphaned data cleanup utility. In this case simply renaming the problematic game files to use shorter names should resolve the situation. If you use the portable release of ES-DE you could also relocate the entire application directory closer to the root of the filesystem to have shorter overall paths.
In order for ES-DE to run, graphics drivers with OpenGL support have to be installed. If not, the application simply won't start. For really old graphics cards the available drivers may not provide an OpenGL version that is modern enough for ES-DE to work, and in this case a last resort solution would be to install the _Mesa3D for Windows_ library which provides software-based OpenGL rendering. The 64-bit version of this library can be downloaded from https://fdossena.com/?p=mesa/index.frag and you simply extract the opengl32.dll file into the ES-DE installation directory. Just be aware that the performance may be quite bad.
On some GPUs with buggy drivers, ES-DE may only display a black screen on startup or when launching a game. The problem can be worked around by specifying a window size for ES-DE that is a single pixel wider than the actual screen resolution. So for example for a 1280x800 display, the resolution can be set to 1281x800 and then rendering should work correctly. This is applied using the --resolution command line option, for example:
@ -312,7 +314,7 @@ The Android port of ES-DE is quite different than the other versions, so it has
## Specific notes for Haiku
The [Haiku](https://www.haiku-os.org) port of ES-DE is currently experimental as the OS itself is experimental and has some issues. Still most functionality in ES-DE is working and there is support for a quite large number of systems and emulators. If you're interested in Haiku it's for sure worth trying it out. See the dedicated [HAIKU.md](HAIKU.md) document for more details.
The [Haiku](https://www.haiku-os.org) port of ES-DE is currently experimental as the OS itself is experimental and has some issues. Still most functionality is working and there is support for a quite large number of systems and emulators. If you're interested in Haiku it's for sure worth trying it out as ES-DE can be easily installed via HaikuDepot. See the dedicated [HAIKU.md](HAIKU.md) document for more details.
## Specific notes for Raspberry Pi
@ -3989,7 +3991,7 @@ The collection will now be created and the collection edit mode will be entered.
Removing a game works the same way, just press _Y_ to remove it if it's already present in your collection. You can do this either from the gamelist where the game was added, or from the collection itself.
Only files can be part of collections, not folders. Games marked as hidden or to not be counted as games can't be added either.
Only files can be part of collections, not folders. Games marked as hidden or set to not be counted as games can't be added either.
During the time that the collection is being edited, any game that is part of the collection is marked with a leading tick symbol in the game name if a textlist is used, and a _collection_ badge is displayed for the currently selected game as well (assuming the theme support badges).

View file

@ -0,0 +1,65 @@
resource app_flags B_SINGLE_LAUNCH;
resource app_version {
major = @MAJOR@,
middle = @MIDDLE@,
minor = @MINOR@,
variety = B_APPV_FINAL,
internal = 0,
short_info = "ES-DE",
long_info = "ES-DE Frontend"
};
resource app_signature "@APP_SIGNATURE@";
resource vector_icon {
$"6E6369660503A0001C010004063F05FE04003F05FF05020DCC7DB781CC7DB781"
$"CC7DB721CBCEB6D3CC2EB6D3C49DB6D3B63BB6D3BD6CB6D3B5DBB6D3B510B74E"
$"B554B70AB489B7D5B37BB8E3B402B85CB337B92720BA0E20B9AE20BEB220C7FB"
$"204920C85BB3AEC8A9B34EC8A9BADFC8A9C941C8A9C210C8A9C9A1C8A9CA6CC8"
$"2ECA28C872CAF3C7A7CC01C699CB7AC720CC45C655CC7CC56ECC7CC5CECC7CC0"
$"CACC7DB781CC7DBC26CC7DB7810217C974C089C974C089C8EDC002C7DF3EC866"
$"BF7BC79BBEB0C6B5BE78C715BE78C650BE78C586BE78C5EBBE78C526BE78C4D7"
$"BE78C4D7BE78C4D7BE78C553BDFCC50FBE40C6B3BC9CC974B9DBC814BB3BC9B8"
$"B997C941B95FC9A1B95FC729B95FC2F9B95FC511B95FC299B95FC1CFB9DBC213"
$"B997BD0ABEA0B380C82AB845C365B363C846B333C876B348C861B353C896B3AE"
$"C8AAB37EC8AAB3AEC8AAB3AFC8AAB3AEC8AAB5BBC8AAB9D4C8AAB7C7C8AABD45"
$"C8AAC428C8AAC0B7C8AA4CC8AAC4D7C8A9C4D7C8A9C4D8C8A9C553C82DC50FC8"
$"71C6B4C6CDC974C40CC814C56DC9B8C3C8C9F0C2E2C9F0C342C9F0C27DC9F0C1"
$"B3C9F0C218C9F0C153C974C089C9B8C0CDC974C089C974C089C974C089C974C0"
$"890222C2F9C104C2F9C104C299C104C1CFC089C213C0CDC148C002C03A3EC0C1"
$"BF7BBFF6BEB0BFBEBDC9BFBFBE2ABFBEBD64BFBEBC9ABFBEBCFFBFBEBC3AC03A"
$"BB70BFF6BBB4C0C1BAE9C1CFB9DBC148BA62C213B997C2F9B95FC299B95FC511"
$"B95FC941B95FC729B95FC9A1B95FC974B9DBC9B8B997C8EDBA62C7DFBB70C866"
$"BAE9C79BBBB4C6B5BBECC715BBECC576BBECC2F9BBECC438BBECC299BBECC24B"
$"BC9AC24BBC3AC24BBCFFC24BBDC9C24BBD64C24BBE2AC2F9BE78C299BE78C438"
$"BE78C6B5BE78C576BE78C715BE78C7DF3EC79BBEB0C866BF7BC974C089C8EDC0"
$"02C9B8C0CDC9F0C1B3C9F0C153C9F0C218C9F0C2E2C9F0C27DC9F0C342C974C4"
$"0CC9B8C3C8C8EDC493C7DFC5A2C866C51BC79BC5E6C6B5C61DC715C61DC576C6"
$"1DC2F9C61DC438C61DC299C61DC1CFC5A2C213C5E6C148C51BC03AC40CC0C1C4"
$"93BFF6C3C8C06DC391C00DC391C285C391C6B5C391C49DC391C715C391C764C2"
$"E2C764C342C764C27DC764C1B3C764C218C764C153C764C104C764C104C764C1"
$"04C6B5C104C715C104C576C104C2F9C104C438C104C2F9C104021B20BF3020BF"
$"3020BED020BE7C20BE7F20BE7AB37BBDFCB337BE40B4DCBC9CB79DB9DBB63CBB"
$"3BB7E1B997B8C7B95FB867B95FBADFB95FBF0FB95FBCF7B95FBF6FB95FBF42B9"
$"DBBF86B997BDE2BB3BBB21BDFCBC81BC9CBADDBE40BAA5BE78BAA5BE78BAA5BE"
$"78BB54BE78BAF4BE78BBB9BE78BC83BE78BC1EBE78BCE3BE78BD25BF27BD2CBE"
$"C7BD1FBF78BD13C01CBD19BFCABD0DC07CBCE7C0EBBCF9C0D9BCD5C0FCBC4BC1"
$"86BC8FC142BBC7C20BBABEC313BB43C28FBA7AC357BA42C390BA42C38FBA41C3"
$"90BAF0C391BA8FC391BB4EC391BC0BC391BBACC391BC6BC391BD3AC407BCF3C3"
$"C6BDC7C489BEE0C58CBE54C50ABF27C5CDBF5FC606BF61C604BF5DC608BEE0C6"
$"85BF24C641BE29C73CBCBCC8A9BD73C7F3B9B7C8AAB3AFC8AAB6B3C8AAB34EC8"
$"AA20C7FB20C85B20C50C20BF3020C21E20BF30021DB8C7C391B8C7C391B867C3"
$"91B819C2E2B819C342B819C27DB819C1B3B819C218B819C153B8C7C104B867C1"
$"04BA06C104BC83C104BB44C104BCE3C104BD31C055BD31C0B6BD31BFF1BD31BF"
$"27BD31BF8CBD31BEC7BC83BE78BCE3BE78BB44BE78B8C7BE78BA06BE78B867BE"
$"78B819BDC9B819BE2AB819BD64B819BC9AB819BCFFB819BC3AB8C7BBECB867BB"
$"ECBA06BBECBC83BBECBB44BBECBCE3BBECBDADBB70BD69BBB4BE34BAE9BF42B9"
$"DBBEBBBA62BF86B997BF0FB95FBF6FB95FBCF7B95FB8C7B95FBADFB95FB867B9"
$"5FB79DB9DBB7E1B997B716BA62B608BB70B68FBAE9B5C4BBB4B58CBC9AB58CBC"
$"3AB58CBEB2B58CC2E2B58CC0CAB58CC342B608C40CB5C4C3C8B68FC494B79DC5"
$"A2B716C51BB7E1C5E6B8C7C61DB867C61DBADFC61DBF0FC61DBCF7C61DBF6FC6"
$"1DBF42C5A2BF86C5E6BEBBC51BBDADC40CBE34C493BD69C3C8BC83C391BCE3C3"
$"91BB44C391B8C7C391BA06C391B8C7C391050A000100000A010101000A020102"
$"000A030103000A04010400"
};

View file

@ -11,6 +11,7 @@ SOURCE_URI="https://gitlab.com/es-de/emulationstation-de/-/archive/$srcGitRev/em
CHECKSUM_SHA256="52c820beddba7e08014f589120c087d6b84b79a88b6213bf13a4e025fd728285"
SOURCE_FILENAME="emulationstation-de-$portVersion-$srcGitRev.tar.gz"
SOURCE_DIR="emulationstation-de-$srcGitRev"
ADDITIONAL_FILES="es-de.rdef.in"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
@ -48,7 +49,7 @@ BUILD_REQUIRES="
devel:libfreeimage$secondaryArchSuffix
devel:libfreetype$secondaryArchSuffix
devel:libharfbuzz$secondaryArchSuffix
devel:libgit2$secondaryArchSuffix
devel:libgit2$secondaryArchSuffix >= 1.5
devel:libicuuc$secondaryArchSuffix
devel:libintl$secondaryArchSuffix
devel:libpoppler$secondaryArchSuffix
@ -57,9 +58,9 @@ BUILD_REQUIRES="
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:g++$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:cmake$secondaryArchSuffix
cmd:make
cmd:msgfmt$secondaryArchSuffix
cmd:pkg_config$secondaryArchSuffix
@ -67,7 +68,7 @@ BUILD_PREREQUIRES="
BUILD()
{
cmake $cmakeDirArgs -DCMAKE_BUILD_TYPE=Release .
cmake -DCMAKE_INSTALL_PREFIX=$prefix -DCMAKE_BUILD_TYPE=Release .
make $jobArgs
}
@ -84,7 +85,7 @@ INSTALL()
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
$sourceDir/es-app/assets/es-de_haiku.rdef.in > es-de.rdef
$portDir/additional-files/es-de.rdef.in > es-de.rdef
addResourcesToBinaries es-de.rdef \
"$appsDir"/es-de

View file

@ -299,10 +299,10 @@ namespace GamelistFileParser
// application restart.
if (!Settings::getInstance()->getBool("ShowHiddenGames")) {
if (file->getHidden()) {
LOG(LogDebug) << "GamelistFileParser::parseGamelist(): Skipping hidden "
<< (type == GAME ? "file" : "folder") << " entry \""
<< file->getName() << "\""
<< " (\"" << file->getPath() << "\")";
LOG(LogDebug)
<< "GamelistFileParser::parseGamelist(): Skipping hidden "
<< (type == GAME ? "file" : "folder") << " entry \"" << file->getName()
<< "\"" << " (\"" << file->getPath() << "\")";
FileData* parent {file->getParent()};
delete file;
// In case there are no entries left in the folder.

View file

@ -898,8 +898,7 @@ std::string MiximageGenerator::getSavePath() const
#if defined(__ANDROID__)
if (!Utils::FileSystem::exists(path + ".nomedia")) {
LOG(LogInfo) << "Creating \"no media\" file \"" << path + ".nomedia"
<< "\"...";
LOG(LogInfo) << "Creating \"no media\" file \"" << path + ".nomedia" << "\"...";
Utils::FileSystem::createEmptyFile(path + ".nomedia");
if (!Utils::FileSystem::exists(path + ".nomedia")) {
LOG(LogWarning) << "Couldn't create file, permission problems?";

View file

@ -156,9 +156,8 @@ bool PDFViewer::startPDFViewer(FileData* game)
#if (DEBUG_PDF_CONVERSION)
LOG(LogDebug) << "Page " << i << ": Orientation: " << mPages[i].orientation << " / "
<< "crop box width: " << width << " / "
<< "crop box height: " << height << " / "
<< "size ratio: " << width / height << " / "
<< "crop box width: " << width << " / " << "crop box height: " << height
<< " / " << "size ratio: " << width / height << " / "
<< "texture size: " << mPages[i].width << "x" << mPages[i].height;
#endif
}

View file

@ -425,14 +425,47 @@ void Screensaver::generateImageList()
"/titlescreens"};
const std::string mediaDirCovers {FileData::getMediaDirectory() +
(*it)->getRootFolder()->getSystemName() + "/covers"};
const Utils::FileSystem::StringList dirContentMiximages {
Utils::FileSystem::getDirContent(mediaDirMiximages, true)};
const Utils::FileSystem::StringList dirContentScreenshots {
Utils::FileSystem::getDirContent(mediaDirScreenshots, true)};
const Utils::FileSystem::StringList dirContentTitlescreens {
Utils::FileSystem::getDirContent(mediaDirTitlescreens, true)};
const Utils::FileSystem::StringList dirContentCovers {
Utils::FileSystem::getDirContent(mediaDirCovers, true)};
Utils::FileSystem::StringList dirContentMiximages;
Utils::FileSystem::StringList dirContentScreenshots;
Utils::FileSystem::StringList dirContentTitlescreens;
Utils::FileSystem::StringList dirContentCovers;
#if defined(_WIN64) || defined(__APPLE__) || defined(__ANDROID__)
// Although macOS may have filesystem case-sensitivity enabled it's rare and the impact
// would not be severe in this case anyway.
const bool caseSensitiveFilesystem {false};
#else
const bool caseSensitiveFilesystem {true};
#endif
for (auto& entry : Utils::FileSystem::getDirContent(mediaDirMiximages, true)) {
if (caseSensitiveFilesystem)
dirContentMiximages.emplace_back(entry);
else
dirContentMiximages.emplace_back(Utils::String::toLower(entry));
}
for (auto& entry : Utils::FileSystem::getDirContent(mediaDirScreenshots, true)) {
if (caseSensitiveFilesystem)
dirContentScreenshots.emplace_back(entry);
else
dirContentScreenshots.emplace_back(Utils::String::toLower(entry));
}
for (auto& entry : Utils::FileSystem::getDirContent(mediaDirTitlescreens, true)) {
if (caseSensitiveFilesystem)
dirContentTitlescreens.emplace_back(entry);
else
dirContentTitlescreens.emplace_back(Utils::String::toLower(entry));
}
for (auto& entry : Utils::FileSystem::getDirContent(mediaDirCovers, true)) {
if (caseSensitiveFilesystem)
dirContentCovers.emplace_back(entry);
else
dirContentCovers.emplace_back(Utils::String::toLower(entry));
}
std::string subFolders;
@ -450,26 +483,38 @@ void Screensaver::generateImageList()
const std::string gamePath {subFolders + "/" + (*it2)->getDisplayName()};
for (auto& extension : FileData::sImageExtensions) {
if (std::find(dirContentMiximages.cbegin(), dirContentMiximages.cend(),
mediaDirMiximages + gamePath + extension) !=
if (std::find(
dirContentMiximages.cbegin(), dirContentMiximages.cend(),
(caseSensitiveFilesystem ?
mediaDirMiximages + gamePath + extension :
Utils::String::toLower(mediaDirMiximages + gamePath + extension))) !=
dirContentMiximages.cend()) {
mImageFiles.push_back((*it2));
break;
}
if (std::find(dirContentScreenshots.cbegin(), dirContentScreenshots.cend(),
mediaDirScreenshots + gamePath + extension) !=
if (std::find(
dirContentScreenshots.cbegin(), dirContentScreenshots.cend(),
(caseSensitiveFilesystem ?
mediaDirScreenshots + gamePath + extension :
Utils::String::toLower(mediaDirScreenshots + gamePath + extension))) !=
dirContentScreenshots.cend()) {
mImageFiles.push_back((*it2));
break;
}
if (std::find(dirContentTitlescreens.cbegin(), dirContentTitlescreens.cend(),
mediaDirTitlescreens + gamePath + extension) !=
(caseSensitiveFilesystem ?
mediaDirTitlescreens + gamePath + extension :
Utils::String::toLower(mediaDirTitlescreens + gamePath +
extension))) !=
dirContentTitlescreens.cend()) {
mImageFiles.push_back((*it2));
break;
}
if (std::find(dirContentCovers.cbegin(), dirContentCovers.cend(),
mediaDirCovers + gamePath + extension) != dirContentCovers.cend()) {
(caseSensitiveFilesystem ?
mediaDirCovers + gamePath + extension :
Utils::String::toLower(mediaDirCovers + gamePath +
extension))) != dirContentCovers.cend()) {
mImageFiles.push_back((*it2));
break;
}
@ -497,8 +542,21 @@ void Screensaver::generateVideoList()
// very expensive on such problematic platforms.
const std::string mediaDir {FileData::getMediaDirectory() +
(*it)->getRootFolder()->getSystemName() + "/videos"};
const Utils::FileSystem::StringList dirContent {
Utils::FileSystem::getDirContent(mediaDir, true)};
Utils::FileSystem::StringList dirContent;
#if defined(_WIN64) || defined(__APPLE__) || defined(__ANDROID__)
// Although macOS may have filesystem case-sensitivity enabled it's rare and the impact
// would not be severe in this case anyway.
const bool caseSensitiveFilesystem {false};
#else
const bool caseSensitiveFilesystem {true};
#endif
for (auto& entry : Utils::FileSystem::getDirContent(mediaDir, true)) {
if (caseSensitiveFilesystem)
dirContent.emplace_back(entry);
else
dirContent.emplace_back(Utils::String::toLower(entry));
}
std::string subFolders;
@ -517,7 +575,10 @@ void Screensaver::generateVideoList()
for (auto& extension : FileData::sVideoExtensions) {
if (std::find(dirContent.cbegin(), dirContent.cend(),
mediaDir + gamePath + extension) != dirContent.cend()) {
(caseSensitiveFilesystem ?
mediaDir + gamePath + extension :
Utils::String::toLower(mediaDir + gamePath + extension))) !=
dirContent.cend()) {
mVideoFiles.push_back((*it2));
break;
}

View file

@ -54,7 +54,6 @@ GuiMenu::GuiMenu()
{
const bool isFullUI {UIModeController::getInstance()->isUIModeFull()};
if (isFullUI)
addEntry(_("SCRAPER"), mMenuColorPrimary, true, [this] { openScraperOptions(); });
@ -581,10 +580,12 @@ void GuiMenu::openUIOptions()
selectedApplicationLanguage == "en_US");
applicationLanguage->add("ENGLISH (UNITED KINGDOM)", "en_GB",
selectedApplicationLanguage == "en_GB");
applicationLanguage->add("CATALÀ", "ca_ES", selectedApplicationLanguage == "ca_ES");
applicationLanguage->add("DEUTSCH", "de_DE", selectedApplicationLanguage == "de_DE");
applicationLanguage->add("ESPAÑOL (ESPAÑA)", "es_ES", selectedApplicationLanguage == "es_ES");
applicationLanguage->add("FRANÇAIS", "fr_FR", selectedApplicationLanguage == "fr_FR");
applicationLanguage->add("ITALIANO", "it_IT", selectedApplicationLanguage == "it_IT");
applicationLanguage->add("NEDERLANDS", "nl_NL", selectedApplicationLanguage == "nl_NL");
applicationLanguage->add("POLSKI", "pl_PL", selectedApplicationLanguage == "pl_PL");
applicationLanguage->add("PORTUGUÊS (BRASIL)", "pt_BR", selectedApplicationLanguage == "pt_BR");
applicationLanguage->add("ROMÂNĂ", "ro_RO", selectedApplicationLanguage == "ro_RO");
@ -2305,7 +2306,11 @@ void GuiMenu::openQuitMenu()
_("NO"), nullptr));
});
auto quitText = std::make_shared<TextComponent>(
#if defined(__RETRODECK__)
_("QUIT RETRODECK"), Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary);
# else
_("QUIT ES-DE"), Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary);
#endif
quitText->setSelectable(true);
row.addElement(quitText, true);
s->addRow(row);

View file

@ -200,9 +200,13 @@ void GuiSettings::addEditableTextComponent(const std::string label,
auto lbl = std::make_shared<TextComponent>(Utils::String::toUpper(label),
Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary,
ALIGN_LEFT, ALIGN_CENTER, glm::ivec2 {0, 0});
row.addElement(lbl, true);
row.addElement(lbl, false);
row.addElement(ed, true);
const float maxLabelWidth {mMenu.getSize().x * 0.65f};
lbl->setSize(glm::clamp(lbl->getTextCache()->metrics.size.x, 0.0f, maxLabelWidth),
lbl->getSize().y);
auto spacer = std::make_shared<GuiComponent>();
spacer->setSize(Renderer::getScreenWidth() * 0.005f, 0.0f);
row.addElement(spacer, false);

View file

@ -435,8 +435,8 @@ bool GuiThemeDownloader::checkLocalChanges(git_repository* repository)
// it possible to add custom files to the repository without overwriting these when
// pulling theme updates.
statusOptions.show = GIT_STATUS_SHOW_INDEX_AND_WORKDIR;
statusOptions.flags =
GIT_STATUS_OPT_RENAMES_HEAD_TO_INDEX | GIT_STATUS_OPT_SORT_CASE_SENSITIVELY;
statusOptions.flags = GIT_STATUS_OPT_RENAMES_HEAD_TO_INDEX |
GIT_STATUS_OPT_SORT_CASE_SENSITIVELY | GIT_STATUS_OPT_UPDATE_INDEX;
errorCode = git_status_list_new(&status, repository, &statusOptions);
if (errorCode == 0)
@ -465,7 +465,8 @@ bool GuiThemeDownloader::checkCorruptRepository(git_repository* repository)
#endif
statusOptions.show = GIT_STATUS_SHOW_INDEX_AND_WORKDIR;
statusOptions.flags = GIT_STATUS_OPT_RENAMES_HEAD_TO_INDEX |
GIT_STATUS_OPT_SORT_CASE_SENSITIVELY | GIT_STATUS_OPT_INCLUDE_UNMODIFIED;
GIT_STATUS_OPT_SORT_CASE_SENSITIVELY | GIT_STATUS_OPT_INCLUDE_UNMODIFIED |
GIT_STATUS_OPT_UPDATE_INDEX;
errorCode = git_status_list_new(&status, repository, &statusOptions);
if (errorCode == 0)
@ -1085,6 +1086,7 @@ void GuiThemeDownloader::update(int deltaTime)
mWindow->pushGui(new GuiMsgBox(
getHelpStyle(), errorMessage, _("OK"), [] { return; }, "", nullptr, "",
nullptr, nullptr, true));
mRepositoryError = RepositoryError::NO_REPO_ERROR;
mMessage = "";
getHelpPrompts();
}

View file

@ -880,8 +880,7 @@ const std::string applicationName =
}
}
if (!Utils::FileSystem::exists(themeDir + "/.nomedia")) {
LOG(LogInfo) << "Creating \"no media\" file \"" << themeDir + "/.nomedia"
<< "\"...";
LOG(LogInfo) << "Creating \"no media\" file \"" << themeDir + "/.nomedia" << "\"...";
Utils::FileSystem::createEmptyFile(themeDir + "/.nomedia");
if (!Utils::FileSystem::exists(themeDir + "/.nomedia")) {
LOG(LogWarning) << "Couldn't create file, permission problems?";
@ -1181,8 +1180,7 @@ const std::string applicationName =
#if defined(__ANDROID__)
if (!Utils::FileSystem::exists(FileData::getROMDirectory() + ".nomedia")) {
LOG(LogInfo) << "Creating \"no media\" file \""
<< FileData::getROMDirectory() + ".nomedia"
<< "\"...";
<< FileData::getROMDirectory() + ".nomedia" << "\"...";
Utils::FileSystem::createEmptyFile(FileData::getROMDirectory() + ".nomedia");
if (!Utils::FileSystem::exists(FileData::getROMDirectory() + ".nomedia")) {
LOG(LogWarning) << "Couldn't create file, permission problems?";

View file

@ -726,8 +726,7 @@ std::string getSaveAsPath(const ScraperSearchParams& params,
#if defined(__ANDROID__)
if (!Utils::FileSystem::exists(path + ".nomedia")) {
LOG(LogInfo) << "Creating \"no media\" file \"" << path + ".nomedia"
<< "\"...";
LOG(LogInfo) << "Creating \"no media\" file \"" << path + ".nomedia" << "\"...";
Utils::FileSystem::createEmptyFile(path + ".nomedia");
if (!Utils::FileSystem::exists(path + ".nomedia")) {
LOG(LogWarning) << "Couldn't create file, permission problems?";

View file

@ -52,6 +52,9 @@ void SystemView::onShow()
void SystemView::onHide()
{
if (mPrimary == nullptr || mPrimary->getCursor() + 1 > static_cast<int>(mSystemElements.size()))
return;
for (auto& video : mSystemElements[mPrimary->getCursor()].videoComponents)
video->stopVideoPlayer(false);
}

View file

@ -177,8 +177,7 @@ void ViewController::setMenuColors()
void ViewController::legacyAppDataDialog()
{
const std::string upgradeMessage
{
const std::string upgradeMessage {
"AS OF ES-DE 3.0 THE APPLICATION DATA DIRECTORY HAS CHANGED FROM \".emulationstation\" "
"to \"ES-DE\"\nPLEASE RENAME YOUR CURRENT DATA DIRECTORY:\n" +
#if defined(_WIN64)
@ -186,12 +185,10 @@ void ViewController::legacyAppDataDialog()
"\nTO THE FOLLOWING:\n" +
Utils::String::replace(
Utils::FileSystem::getParent(Utils::FileSystem::getAppDataDirectory()), "/", "\\") +
"\\ES-DE"
};
"\\ES-DE"};
#else
Utils::FileSystem::getAppDataDirectory() + "\nTO THE FOLLOWING:\n" +
Utils::FileSystem::getParent(Utils::FileSystem::getAppDataDirectory()) + "/ES-DE"
};
Utils::FileSystem::getParent(Utils::FileSystem::getAppDataDirectory()) + "/ES-DE"};
#endif
mWindow->pushGui(new GuiMsgBox(

View file

@ -86,7 +86,11 @@ public:
void pauseViewVideos() override { mCurrentView->pauseViewVideos(); }
void muteViewVideos() override { mCurrentView->muteViewVideos(); }
// Needed on Android to reset the static image delay timer on activity resume.
void resetViewVideosTimer() override { mCurrentView->resetViewVideosTimer(); }
void resetViewVideosTimer() override
{
if (mCurrentView != nullptr)
mCurrentView->resetViewVideosTimer();
}
void onFileChanged(FileData* file, bool reloadGamelist);
void triggerGameLaunch(FileData* game)

View file

@ -106,10 +106,12 @@ std::vector<std::pair<std::string, std::string>> ThemeData::sSupportedLanguages
{"automatic", "automatic"},
{"en_US", "ENGLISH (UNITED STATES)"},
{"en_GB", "ENGLISH (UNITED KINGDOM)"},
{"ca_ES", "CATALÀ"},
{"de_DE", "DEUTSCH"},
{"es_ES", "ESPAÑOL (ESPAÑA)"},
{"fr_FR", "FRANÇAIS"},
{"it_IT", "ITALIANO"},
{"nl_NL", "NEDERLANDS"},
{"pl_PL", "POLSKI"},
{"pt_BR", "PORTUGUÊS (BRASIL)"},
{"ro_RO", "ROMÂNĂ"},

View file

@ -344,6 +344,9 @@ void TextEditComponent::onTextChanged()
if (mCursor > static_cast<int>(mText.length()))
mCursor = static_cast<int>(mText.length());
if (mCursorShapedText > static_cast<int>(Utils::String::unicodeLength(mText)))
mCursorShapedText = static_cast<int>(Utils::String::unicodeLength(mText));
}
void TextEditComponent::onCursorChanged()

View file

@ -332,8 +332,22 @@ TextCache* Font::buildTextCache(const std::string& text,
Glyph* glyph {nullptr};
// Invalid character.
if (!segment.doShape && character == 0)
if (!segment.doShape && character == 0) {
if (needGlyphsPos) {
// TODO: This is a temporary workaround for a problem that only seems to be
// present on Android, and that is that non-character input from a physical
// keyboard generates SDL_TEXTINPUT events even though it shouldn't. This
// workaround is not a proper fix, it's only there to prevent ES-DE from
// crashing if such input is received when editing text. The issue has been
// reported to the SDL developers as it needs to be addressed there.
if (glyphPositions.size() > 0)
glyphPositions.emplace_back(glyphPositions.back().x,
glyphPositions.back().y);
else
glyphPositions.emplace_back(0.0f, 0.0f);
}
continue;
}
if (!segment.doShape && character == '\n') {
x = 0.0f;

View file

@ -31,10 +31,12 @@ namespace Utils
// When adding a new locale, then make sure to also update ThemeData::sSupportedLanguages.
const std::vector<std::pair<std::string, std::string>> sSupportedLocales {{{"en"}, {"US"}},
{{"en"}, {"GB"}},
{{"ca"}, {"ES"}},
{{"de"}, {"DE"}},
{{"es"}, {"ES"}},
{{"fr"}, {"FR"}},
{{"it"}, {"IT"}},
{{"nl"}, {"NL"}},
{{"pl"}, {"PL"}},
{{"pt"}, {"BR"}},
{{"ro"}, {"RO"}},
@ -186,7 +188,9 @@ namespace Utils
}
// Language-specific menu title scale factor.
if (localePair.first == "de")
if (localePair.first == "ca")
sMenuTitleScaleFactor = 0.92f;
else if (localePair.first == "de")
sMenuTitleScaleFactor = 0.92f;
else if (localePair.first == "es")
sMenuTitleScaleFactor = 0.90f;
@ -194,6 +198,8 @@ namespace Utils
sMenuTitleScaleFactor = 0.90f;
else if (localePair.first == "it")
sMenuTitleScaleFactor = 0.94f;
else if (localePair.first == "nl")
sMenuTitleScaleFactor = 0.94f;
else if (localePair.first == "pl")
sMenuTitleScaleFactor = 0.94f;
else if (localePair.first == "pt")

View file

@ -6,9 +6,9 @@
"version": "3.1.0",
"release": "45",
"date": "2024-09-13",
"androidVersionName": "3.0.3-26",
"androidVersionCode": "26",
"androidDate": "2024-06-14",
"androidVersionName": "3.1.0-32",
"androidVersionCode": "32",
"androidDate": "2024-09-13",
"packages": [
{
"name": "WindowsPortable",

View file

@ -1,9 +1,11 @@
en_US
en_GB
ca_ES
de_DE
es_ES
fr_FR
it_IT
nl_NL
pl_PL
pt_BR
ro_RO

2889
locale/po/ca_ES.po Normal file

File diff suppressed because it is too large Load diff

View file

@ -11,7 +11,7 @@ msgstr ""
"PO-Revision-Date: 2024-09-01 18:27+0200\n"
"Last-Translator: Northwestern Software <info@es-de.org>\n"
"Language-Team: Español (España) <info@es-de.org>\n"
"Language: es\n"
"Language: es_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

View file

@ -866,10 +866,10 @@ msgid "back"
msgstr "retour"
msgid "SCREENSCRAPER USERNAME"
msgstr "NOM D'UTILISATEUR"
msgstr "NOM D'UTILISATEUR SCREENSCRAPER"
msgid "SCREENSCRAPER PASSWORD"
msgstr "MOT DE PASSE"
msgstr "MOT DE PASSE SCREENSCRAPER"
msgid "USE THIS ACCOUNT FOR SCREENSCRAPER"
msgstr "UTILISER CE COMPTE POUR SCREENSCRAPER"
@ -1840,10 +1840,10 @@ msgstr ""
"ETES-VOUS SÛR?"
msgid "DELETE"
msgstr "EFFACE"
msgstr "SUPPRIME"
msgid "delete game"
msgstr "efface le jeu"
msgstr "supprimer le jeu"
msgid "MIXIMAGE OFFLINE GENERATOR"
msgstr "GÉNÉRATEUR OFFLINE DE MIXIMAGE"

View file

@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: ES-DE Frontend\n"
"Report-Msgid-Bugs-To: info@es-de.org\n"
"POT-Creation-Date: 2024-09-04 17:44+0200\n"
"PO-Revision-Date: 2024-09-12 14:49+0900\n"
"PO-Revision-Date: 2024-09-24 14:56+0900\n"
"Last-Translator: wakeboxer <ljhmd0825@gmail.com>\n"
"Language-Team: 한국어 <info@es-de.org>\n"
"Language: ko_KR\n"
@ -345,10 +345,10 @@ msgid "MANUFACTURER, RELEASE YEAR"
msgstr "제조사, 발매연도"
msgid "HW TYPE, RELEASE YEAR"
msgstr "하드웨어타입, 발매연도"
msgstr "하드웨어유형, 발매연도"
msgid "MANUFACTURER, HW TYPE, REL. YEAR"
msgstr "제조사, 하드웨어타입, 발매연도"
msgstr "제조사, 하드웨어유형, 발매연도"
msgctxt "short"
msgid "GAMES DEFAULT SORT ORDER"
@ -838,7 +838,7 @@ msgid "ACCOUNT SETTINGS"
msgstr "계정 설정"
msgid "CONTENT SETTINGS"
msgstr "텐츠 설정"
msgstr "텐츠 설정"
msgid "MIXIMAGE SETTINGS"
msgstr "믹스이미지 설정"
@ -1080,7 +1080,7 @@ msgid "PLEASE SELECT AT LEAST ONE SYSTEM TO SCRAPE"
msgstr "스크랩할 시스템을 하나 이상 선택하세요"
msgid "PLEASE SELECT AT LEAST ONE CONTENT TYPE TO SCRAPE"
msgstr "스크랩할 텐츠 유형을 하나 이상 선택하세요"
msgstr "스크랩할 텐츠 유형을 하나 이상 선택하세요"
msgid "ALL GAMES WERE FILTERED, NOTHING TO SCRAPE"
msgstr "모든 게임이 필터링되었으며 스크랩할 것이 없습니다"
@ -1596,7 +1596,7 @@ msgid "TOTAL ENTRIES REMOVED:"
msgstr "삭제된 총 항목 수:"
msgid "LAST PROCESSED SYSTEM:"
msgstr "마지막으로 처리된 시스템:"
msgstr "마지막 처리된 시스템:"
msgid "LAST ERROR MESSAGE:"
msgstr "마지막 오류 메시지:"
@ -1760,7 +1760,7 @@ msgid ""
"ARE YOU SURE?"
msgstr ""
"이렇게 하면 이 폴더의 모든 미디어 파일과 GAMELIST.XML 항목이 삭제되지만 디렉"
"터리 자체나 그 안에 있는 텐츠는 삭제되지 않습니다.\n"
"터리 자체나 그 안에 있는 텐츠는 삭제되지 않습니다.\n"
"확실합니까?"
msgid "CLEAR"

2897
locale/po/nl_NL.po Normal file

File diff suppressed because it is too large Load diff

View file

@ -28,6 +28,12 @@
<entry>com.explusalpha.C64Emu/com.imagine.BaseActivity</entry>
</rule>
</emulator>
<emulator name="CEMU">
<!-- Nintendo Wii U emulator Cemu -->
<rule type="androidpackage">
<entry>info.cemu.Cemu/info.cemu.Cemu.emulation.EmulationActivity</entry>
</rule>
</emulator>
<emulator name="CITRA">
<!-- Nintendo 3DS emulator Citra -->
<rule type="androidpackage">

View file

@ -146,7 +146,7 @@
<command label="FB Alpha 2012">%EMULATOR_RETROARCH% %EXTRA_CONFIGFILE%=/storage/emulated/0/Android/data/%ANDROIDPACKAGE%/files/retroarch.cfg %EXTRA_LIBRETRO%=fbalpha2012_libretro_android.so %EXTRA_ROM%=%ROM%</command>
<command label="Geolith">%EMULATOR_RETROARCH% %EXTRA_CONFIGFILE%=/storage/emulated/0/Android/data/%ANDROIDPACKAGE%/files/retroarch.cfg %EXTRA_LIBRETRO%=geolith_libretro_android.so %EXTRA_ROM%=%ROM%</command>
<command label="Flycast">%EMULATOR_RETROARCH% %EXTRA_CONFIGFILE%=/storage/emulated/0/Android/data/%ANDROIDPACKAGE%/files/retroarch.cfg %EXTRA_LIBRETRO%=flycast_libretro_android.so %EXTRA_ROM%=%ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ACTION%=android.intent.action.VIEW %DATA%=%ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ACTION%=android.intent.action.VIEW %DATA%=%ROMSAF%</command>
<platform>arcade</platform>
<theme>arcade</theme>
</system>
@ -287,7 +287,7 @@
<path>%ROMPATH%/atomiswave</path>
<extension>.bin .BIN .dat .DAT .elf .ELF .lst .LST .7z .7Z .zip .ZIP</extension>
<command label="Flycast">%EMULATOR_RETROARCH% %EXTRA_CONFIGFILE%=/storage/emulated/0/Android/data/%ANDROIDPACKAGE%/files/retroarch.cfg %EXTRA_LIBRETRO%=flycast_libretro_android.so %EXTRA_ROM%=%ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ACTION%=android.intent.action.VIEW %DATA%=%ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ACTION%=android.intent.action.VIEW %DATA%=%ROMSAF%</command>
<platform>arcade</platform>
<theme>atomiswave</theme>
</system>
@ -382,7 +382,7 @@
<command label="MAME - Current">%EMULATOR_RETROARCH% %EXTRA_CONFIGFILE%=/storage/emulated/0/Android/data/%ANDROIDPACKAGE%/files/retroarch.cfg %EXTRA_LIBRETRO%=mamearcade_libretro_android.so %EXTRA_ROM%=%ROM%</command>
<command label="MAME4droid 2024 (Standalone)">%EMULATOR_MAME4DROID-2024% %ACTION%=android.intent.action.VIEW %EXTRA_cli_params%="-rompath '%GAMEDIRRAW%;%ROMPATHRAW%/consolearcade'" %DATA%=%ROMPROVIDER%</command>
<command label="Flycast">%EMULATOR_RETROARCH% %EXTRA_CONFIGFILE%=/storage/emulated/0/Android/data/%ANDROIDPACKAGE%/files/retroarch.cfg %EXTRA_LIBRETRO%=flycast_libretro_android.so %EXTRA_ROM%=%ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ACTION%=android.intent.action.VIEW %DATA%=%ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ACTION%=android.intent.action.VIEW %DATA%=%ROMSAF%</command>
<command label="Play! (Standalone)">%EMULATOR_PLAY!% %ACTION%=android.intent.action.VIEW %DATA%=%ROMSAF%</command>
<command>PLACEHOLDER %ROM%</command>
<platform>arcade</platform>
@ -529,7 +529,7 @@
<path>%ROMPATH%/dreamcast</path>
<extension>.cdi .CDI .chd .CHD .cue .CUE .dat .DAT .elf .ELF .gdi .GDI .iso .ISO .lst .LST .m3u .M3U .7z .7Z .zip .ZIP</extension>
<command label="Flycast">%EMULATOR_RETROARCH% %EXTRA_CONFIGFILE%=/storage/emulated/0/Android/data/%ANDROIDPACKAGE%/files/retroarch.cfg %EXTRA_LIBRETRO%=flycast_libretro_android.so %EXTRA_ROM%=%ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ACTION%=android.intent.action.VIEW %DATA%=%ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ACTION%=android.intent.action.VIEW %DATA%=%ROMSAF%</command>
<command label="Redream (Standalone)">%EMULATOR_REDREAM% %ACTION%=android.intent.action.VIEW %DATA%=%ROMSAF%</command>
<platform>dreamcast</platform>
<theme>dreamcast</theme>
@ -916,7 +916,7 @@
<command label="FB Alpha 2012">%EMULATOR_RETROARCH% %EXTRA_CONFIGFILE%=/storage/emulated/0/Android/data/%ANDROIDPACKAGE%/files/retroarch.cfg %EXTRA_LIBRETRO%=fbalpha2012_libretro_android.so %EXTRA_ROM%=%ROM%</command>
<command label="Geolith">%EMULATOR_RETROARCH% %EXTRA_CONFIGFILE%=/storage/emulated/0/Android/data/%ANDROIDPACKAGE%/files/retroarch.cfg %EXTRA_LIBRETRO%=geolith_libretro_android.so %EXTRA_ROM%=%ROM%</command>
<command label="Flycast">%EMULATOR_RETROARCH% %EXTRA_CONFIGFILE%=/storage/emulated/0/Android/data/%ANDROIDPACKAGE%/files/retroarch.cfg %EXTRA_LIBRETRO%=flycast_libretro_android.so %EXTRA_ROM%=%ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ACTION%=android.intent.action.VIEW %DATA%=%ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ACTION%=android.intent.action.VIEW %DATA%=%ROMSAF%</command>
<platform>arcade</platform>
<theme>mame</theme>
</system>
@ -1148,7 +1148,7 @@
<path>%ROMPATH%/naomi</path>
<extension>.bin .BIN .dat .DAT .elf .ELF .lst .LST .7z .7Z .zip .ZIP</extension>
<command label="Flycast">%EMULATOR_RETROARCH% %EXTRA_CONFIGFILE%=/storage/emulated/0/Android/data/%ANDROIDPACKAGE%/files/retroarch.cfg %EXTRA_LIBRETRO%=flycast_libretro_android.so %EXTRA_ROM%=%ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ACTION%=android.intent.action.VIEW %DATA%=%ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ACTION%=android.intent.action.VIEW %DATA%=%ROMSAF%</command>
<platform>arcade</platform>
<theme>naomi</theme>
</system>
@ -1158,7 +1158,7 @@
<path>%ROMPATH%/naomi2</path>
<extension>.bin .BIN .dat .DAT .elf .ELF .lst .LST .7z .7Z .zip .ZIP</extension>
<command label="Flycast">%EMULATOR_RETROARCH% %EXTRA_CONFIGFILE%=/storage/emulated/0/Android/data/%ANDROIDPACKAGE%/files/retroarch.cfg %EXTRA_LIBRETRO%=flycast_libretro_android.so %EXTRA_ROM%=%ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ACTION%=android.intent.action.VIEW %DATA%=%ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ACTION%=android.intent.action.VIEW %DATA%=%ROMSAF%</command>
<platform>arcade</platform>
<theme>naomi2</theme>
</system>
@ -1168,7 +1168,7 @@
<path>%ROMPATH%/naomigd</path>
<extension>.bin .BIN .dat .DAT .elf .ELF .lst .LST .7z .7Z .zip .ZIP</extension>
<command label="Flycast">%EMULATOR_RETROARCH% %EXTRA_CONFIGFILE%=/storage/emulated/0/Android/data/%ANDROIDPACKAGE%/files/retroarch.cfg %EXTRA_LIBRETRO%=flycast_libretro_android.so %EXTRA_ROM%=%ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ACTION%=android.intent.action.VIEW %DATA%=%ROM%</command>
<command label="Flycast (Standalone)">%EMULATOR_FLYCAST% %ACTION%=android.intent.action.VIEW %DATA%=%ROMSAF%</command>
<platform>arcade</platform>
<theme>naomigd</theme>
</system>
@ -1969,8 +1969,8 @@
<name>wiiu</name>
<fullname>Nintendo Wii U</fullname>
<path>%ROMPATH%/wiiu</path>
<extension>.7z .7Z .zip .ZIP</extension>
<command>PLACEHOLDER %ROM%</command>
<extension>.elf .ELF .rpx .RPX .tmd .TMD .wua .WUA .wud .WUD .wuhb .WUHB .wux .WUX</extension>
<command label="Cemu (Standalone)">%EMULATOR_CEMU% %DATA%=%ROMSAF%</command>
<platform>wiiu</platform>
<theme>wiiu</theme>
</system>

View file

@ -131,7 +131,7 @@
<!-- <command label="Mednafen (Standalone)">%EMULATOR_MEDNAFEN% -force_module apple2 %ROM%</command> -->
<command label="MAME - Current">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/mame_libretro.so "apple2e -rompath \"%GAMEDIRRAW%;%ROMPATH%/apple2\" -gameio joy -flop1 \"%ROMRAW%\""</command>
<command label="MAME (Standalone)">%STARTDIR%=~/.mame %EMULATOR_MAME% -rompath %GAMEDIR%\;%ROMPATH%/apple2 apple2e -gameio joy -flop1 %ROM%</command>
<command label="izapple2 (Standalone)">%EMULATOR_IZAPPLE2% %ROM%</command>
<!-- <command label="izapple2 (Standalone)">%EMULATOR_IZAPPLE2% %ROM%</command> -->
<platform>apple2</platform>
<theme>apple2</theme>
</system>
@ -218,10 +218,9 @@
<extension>.a26 .A26 .bin .BIN .7z .7Z .zip .ZIP</extension>
<command label="Stella">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/stella_libretro.so %ROM%</command>
<command label="Stella 2014">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/stella2014_libretro.so %ROM%</command>
<command label="Stella 2023">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/stella2023_libretro.so %ROM%</command>
<!-- <command label="Stella (Standalone)">%EMULATOR_STELLA% %ROM%</command> -->
<!-- <command label="Gopher2600 (Standalone)">%EMULATOR_GOPHER2600% %ROM%</command> -->
<!-- <command label="ares (Standalone)">%EMULATOR_ARES% &ndash;&ndash;fullscreen &ndash;&ndash;system "Atari 2600" %ROM%</command> -->
<!-- <command label="ares (Standalone)">%EMULATOR_ARES% &dash&dashfullscreen &dash&;dashsystem "Atari 2600" %ROM%</command> -->
<platform>atari2600</platform>
<theme>atari2600</theme>
</system>

View file

@ -31,19 +31,23 @@ The following options are included:
- 4:3
- 21:9
12 languages:
16 languages:
- English (United States)
- English (United Kingdom)
- Català
- Deutsch
- Español (España)
- Français
- Italiano
- Nederlands
- Polski
- Português (Brasil)
- Română
- Русский
- Svenska
- 日本語
- 한국어
- 简体中文
3 transitions:

View file

@ -7,15 +7,19 @@
<language>en_US</language>
<language>en_GB</language>
<language>ca_ES</language>
<language>de_DE</language>
<language>es_ES</language>
<language>fr_FR</language>
<language>it_IT</language>
<language>nl_NL</language>
<language>pl_PL</language>
<language>pt_BR</language>
<language>ro_RO</language>
<language>ru_RU</language>
<language>sv_SE</language>
<language>ja_JP</language>
<language>ko_KR</language>
<language>zh_CN</language>
<aspectRatio>16:9</aspectRatio>
@ -29,30 +33,38 @@
<colorScheme name="dark">
<label language="en_US">Dark</label>
<label language="en_GB">Dark</label>
<label language="ca_ES">Fosc</label>
<label language="de_DE">Dunkel</label>
<label language="es_ES">Oscuro</label>
<label language="fr_FR">Foncé</label>
<label language="it_IT">Scuro</label>
<label language="nl_NL">Donker</label>
<label language="pl_PL">Ciemna</label>
<label language="pt_BR">Escuro</label>
<label language="ro_RO">Întunecată</label>
<label language="ru_RU">Тёмная</label>
<label language="sv_SE">Mörkt</label>
<label language="ja_JP">ダーク</label>
<label language="ko_KR">다크</label>
<label language="zh_CN">暗黑</label>
</colorScheme>
<colorScheme name="light">
<label language="en_US">Light</label>
<label language="en_GB">Light</label>
<label language="ca_ES">Clar</label>
<label language="de_DE">Hell</label>
<label language="es_ES">Claro</label>
<label language="fr_FR">Clair</label>
<label language="it_IT">Chiaro</label>
<label language="nl_NL">Licht</label>
<label language="pl_PL">Jasna</label>
<label language="pt_BR">Claro</label>
<label language="ru_RU">Светлая</label>
<label language="ro_RO">Luminoasă</label>
<label language="sv_SE">Ljust</label>
<label language="ja_JP">ライト</label>
<label language="ko_KR">라이트</label>
<label language="zh_CN">明亮</label>
</colorScheme>
@ -71,15 +83,19 @@
<variant name="textlistWithVideos">
<label language="en_US">Textlist</label>
<label language="en_GB">Textlist</label>
<label language="ca_ES">Llistat</label>
<label language="de_DE">Liste</label>
<label language="es_ES">Lista</label>
<label language="fr_FR">Liste</label>
<label language="it_IT">Lista testi</label>
<label language="nl_NL">Tekstlijst</label>
<label language="pl_PL">Lista tekstowa</label>
<label language="pt_BR">Lista de texto</label>
<label language="ro_RO">Listă text</label>
<label language="ru_RU">Текст</label>
<label language="sv_SE">Textlista</label>
<label language="ja_JP">テキストリスト</label>
<label language="ko_KR">텍스트리스트</label>
<label language="zh_CN">文字列表</label>
<selectable>true</selectable>
</variant>
@ -87,15 +103,19 @@
<variant name="textlistWithoutVideos">
<label language="en_US">Textlist without videos</label>
<label language="en_GB">Textlist without videos</label>
<label language="ca_ES">Llistat sense vídeos</label>
<label language="de_DE">Liste ohne videos</label>
<label language="es_ES">Lista sin videos</label>
<label language="fr_FR">Liste sans vidéos</label>
<label language="it_IT">Lista testi, no video</label>
<label language="nl_NL">Tekstlijst zonder video's</label>
<label language="pl_PL">Lista tekstowa bez wideo</label>
<label language="pt_BR">Lista de texto sem vídeos</label>
<label language="ro_RO">Listă text fără videouri</label>
<label language="ru_RU">Текст без видео</label>
<label language="sv_SE">Textlista utan video</label>
<label language="ja_JP">ビデオが含まないテキストリスト</label>
<label language="ko_KR">텍스트리스트 비디오 없음</label>
<label language="zh_CN">不带视频的文字列表</label>
<selectable>true</selectable>
</variant>
@ -103,15 +123,19 @@
<variant name="simpleTextlistWithVideos">
<label language="en_US">Simple textlist</label>
<label language="en_GB">Simple textlist</label>
<label language="ca_ES">Llistat simple</label>
<label language="de_DE">Einfache liste</label>
<label language="es_ES">Lista simple</label>
<label language="fr_FR">Simple liste</label>
<label language="it_IT">Lista testi semplice</label>
<label language="nl_NL">Simpele tekstlijst</label>
<label language="pl_PL">Prosta lista tekstowa</label>
<label language="pt_BR">Lista de texto simples</label>
<label language="ro_RO">Listă text simplă</label>
<label language="ru_RU">Простой текст</label>
<label language="sv_SE">Enkel textlista</label>
<label language="ja_JP">簡易なテキストリスト</label>
<label language="ko_KR">심플 텍스트리스트</label>
<label language="zh_CN">简易文字列表</label>
<selectable>true</selectable>
</variant>
@ -119,15 +143,19 @@
<variant name="simpleTextlistWithoutVideos">
<label language="en_US">Simple textlist without videos</label>
<label language="en_GB">Simple textlist without videos</label>
<label language="ca_ES">Llistat simple sense vídeos</label>
<label language="de_DE">Einfache liste ohne videos</label>
<label language="es_ES">Lista simple sin videos</label>
<label language="fr_FR">Simple liste sans vidéos</label>
<label language="it_IT">Lista testi semplice, no video</label>
<label language="nl_NL">Simpele tekstlijst zonder video's</label>
<label language="pl_PL">Prosta lista tekstowa bez wideo</label>
<label language="pt_BR">Lista de texto simples sem vídeos</label>
<label language="ro_RO">Listă text simplă fără videouri</label>
<label language="ru_RU">Простой текст без видео</label>
<label language="sv_SE">Enkel textlista utan video</label>
<label language="ja_JP">ビデオが含まない簡単なテキストリスト</label>
<label language="ko_KR">심플 텍스트리스트 비디오 없음</label>
<label language="zh_CN">不带视频的简易文字列表</label>
<selectable>true</selectable>
</variant>
@ -135,15 +163,19 @@
<variant name="carousel">
<label language="en_US">Carousel</label>
<label language="en_GB">Carousel</label>
<label language="ca_ES">Carrusel</label>
<label language="de_DE">Karussell</label>
<label language="es_ES">Carrusel</label>
<label language="fr_FR">Carrousel</label>
<label language="it_IT">Carosello</label>
<label language="nl_NL">Carousel</label>
<label language="pl_PL">Karuzela</label>
<label language="pt_BR">Carrossel</label>
<label language="ro_RO">Carusel</label>
<label language="ru_RU">Карусель</label>
<label language="sv_SE">Karusell</label>
<label language="ja_JP">カルーセル</label>
<label language="ko_KR">캐러셀</label>
<label language="zh_CN">轮播</label>
<selectable>true</selectable>
</variant>
@ -151,15 +183,19 @@
<variant name="simpleCarousel">
<label language="en_US">Simple carousel</label>
<label language="en_GB">Simple carousel</label>
<label language="ca_ES">Carrusel simple</label>
<label language="de_DE">Einfaches karussell</label>
<label language="es_ES">Carrusel simple</label>
<label language="fr_FR">Simple Carrousel</label>
<label language="fr_FR">Simple carrousel</label>
<label language="it_IT">Carosello semplice</label>
<label language="nl_NL">Simpel carousel</label>
<label language="pl_PL">Prosta karuzela</label>
<label language="pt_BR">Carrossel simples</label>
<label language="ro_RO">instant și glisează</label>
<label language="ru_RU">Простая карусель</label>
<label language="sv_SE">Enkel karusell</label>
<label language="ja_JP">簡単なカルーセル</label>
<label language="ko_KR">심플 캐러셀</label>
<label language="zh_CN">简易轮播</label>
<selectable>true</selectable>
</variant>
@ -167,15 +203,19 @@
<transitions name="instantAndSlide">
<label language="en_US">Instant and slide</label>
<label language="en_GB">Instant and slide</label>
<label language="ca_ES">Instantani i lliscar</label>
<label language="de_DE">Sofort und gleiten</label>
<label language="es_ES">Instantanea y deslizante</label>
<label language="fr_FR">Instantané et glissement</label>
<label language="it_IT">Istantanea e scorri</label>
<label language="nl_NL">Direct en glijd</label>
<label language="pl_PL">Momentalne przesunięcie</label>
<label language="pt_BR">Instantâneo e deslizar</label>
<label language="ro_RO">Instant și glisează</label>
<label language="ru_RU">Мгновенное скольжение</label>
<label language="sv_SE">Direkt och glidande</label>
<label language="ja_JP">インスタントとスライド</label>
<label language="ko_KR">즉시 그리고 슬라이드</label>
<label language="zh_CN">即时与滑动</label>
<selectable>true</selectable>
<systemToSystem>instant</systemToSystem>
@ -189,15 +229,19 @@
<transitions name="instant">
<label language="en_US">Instant</label>
<label language="en_GB">Instant</label>
<label language="ca_ES">Instantani</label>
<label language="de_DE">Sofort</label>
<label language="es_ES">Instantanea</label>
<label language="fr_FR">Instantané</label>
<label language="it_IT">Istantanea</label>
<label language="nl_NL">Direct</label>
<label language="pl_PL">Natychmiastowe</label>
<label language="pt_BR">Instantâneo</label>
<label language="ro_RO">Instant</label>
<label language="ru_RU">Мгновенно</label>
<label language="sv_SE">Direkt</label>
<label language="ja_JP">インスタント</label>
<label language="ko_KR">즉시</label>
<label language="zh_CN">即时</label>
<selectable>true</selectable>
<systemToSystem>instant</systemToSystem>
@ -211,15 +255,19 @@
<transitions name="fade">
<label language="en_US">Fade</label>
<label language="en_GB">Fade</label>
<label language="ca_ES">Desaparèixer</label>
<label language="de_DE">Überblendung</label>
<label language="es_ES">Fundido</label>
<label language="fr_FR">Fondu</label>
<label language="it_IT">Dissolvi</label>
<label language="nl_NL">Fade</label>
<label language="pl_PL">Zanikanie</label>
<label language="pt_BR">Esmaecer</label>
<label language="ro_RO">Estompează</label>
<label language="ru_RU">Затухание</label>
<label language="sv_SE">Uttoning</label>
<label language="ja_JP">フェイド</label>
<label language="ko_KR">페이드</label>
<label language="zh_CN">淡出</label>
<selectable>true</selectable>
<systemToSystem>instant</systemToSystem>

View file

@ -11,6 +11,32 @@
<langCustomCollections>Custom Collections</langCustomCollections>
<langYourCollections>Your Collections</langYourCollections>
</variables>
<language name="ca_ES">
<variables>
<langLabelRating>Valoració</langLabelRating>
<langLabelReleasedate>Llançaamemt</langLabelReleasedate>
<langLabelPlayers>Jugadors</langLabelPlayers>
<langLabelGenre>Gènere</langLabelGenre>
<langLabelDeveloper>Desenvolupador</langLabelDeveloper>
<langLabelPublisher>Editor</langLabelPublisher>
<langLabelLastPlayed>Última Partida</langLabelLastPlayed>
<langCustomCollections>Col·leccions</langCustomCollections>
<langYourCollections>Les teves Col·leccions</langYourCollections>
</variables>
</language>
<language name="de_DE">
<variables>
<langLabelRating>Bewertung</langLabelRating>
<langLabelReleasedate>Veröffentlicht</langLabelReleasedate>
<langLabelPlayers>Spieler</langLabelPlayers>
<langLabelGenre>Genre</langLabelGenre>
<langLabelDeveloper>Entwickler</langLabelDeveloper>
<langLabelPublisher>Herausgeber</langLabelPublisher>
<langLabelLastPlayed>Zuletzt Gespielt</langLabelLastPlayed>
<langCustomCollections>Benutzerdefinierte Sammlungen</langCustomCollections>
<langYourCollections>Deine Sammlungen</langYourCollections>
</variables>
</language>
<language name="es_ES">
<variables>
<langLabelRating>Valoracion</langLabelRating>
@ -50,6 +76,20 @@
<langYourCollections>Le tue Collezioni</langYourCollections>
</variables>
</language>
<language name="nl_NL">
<variables>
<langLabelRating>Waardering</langLabelRating>
<langLabelReleasedate>Datum van Uitgave</langLabelReleasedate>
<langLabelPlayers>Spelers</langLabelPlayers>
<langLabelGenre>Genre</langLabelGenre>
<langLabelDeveloper>Ontwikkelaar</langLabelDeveloper>
<langLabelPublisher>Uitgever</langLabelPublisher>
<langLabelPublisher>Uitgever</langLabelPublisher>
<langLabelLastPlayed>Laatst Gespeeld</langLabelLastPlayed>
<langCustomCollections>Custom Collecties</langCustomCollections>
<langYourCollections>Jouw Collecties</langYourCollections>
</variables>
</language>
<language name="pl_PL">
<variables>
<langLabelRating>Ocena</langLabelRating>
@ -128,6 +168,19 @@
<langYourCollections>あなたのコレクション</langYourCollections>
</variables>
</language>
<language name="ko_KR">
<variables>
<langLabelRating>평점</langLabelRating>
<langLabelReleasedate>발매일</langLabelReleasedate>
<langLabelPlayers>플레이어</langLabelPlayers>
<langLabelGenre>장르</langLabelGenre>
<langLabelDeveloper>개발사</langLabelDeveloper>
<langLabelPublisher>배급사</langLabelPublisher>
<langLabelLastPlayed>최근 실행</langLabelLastPlayed>
<langCustomCollections>커스텀 컬렉션</langCustomCollections>
<langYourCollections>너의 컬렉션</langYourCollections>
</variables>
</language>
<language name="zh_CN">
<variables>
<langLabelRating>评分</langLabelRating>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View file

@ -26,19 +26,23 @@ The following options are included:
- 4:3
- 21:9
12 languages:
16 languages:
- English (United States)
- English (United Kingdom)
- Català
- Deutsch
- Español (España)
- Français
- Italiano
- Nederlands
- Polski
- Português (Brasil)
- Română
- Русский
- Svenska
- 日本語
- 한국어
- 简体中文
3 transitions:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 358 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 440 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 464 KiB

After

Width:  |  Height:  |  Size: 386 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 282 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 330 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1 MiB

After

Width:  |  Height:  |  Size: 340 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 905 KiB

After

Width:  |  Height:  |  Size: 380 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 297 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 518 KiB

After

Width:  |  Height:  |  Size: 486 KiB

View file

@ -7,15 +7,19 @@
<language>en_US</language>
<language>en_GB</language>
<language>ca_ES</language>
<language>de_DE</language>
<language>es_ES</language>
<language>fr_FR</language>
<language>it_IT</language>
<language>nl_NL</language>
<language>pl_PL</language>
<language>pt_BR</language>
<language>ro_RO</language>
<language>ru_RU</language>
<language>sv_SE</language>
<language>ja_JP</language>
<language>ko_KR</language>
<language>zh_CN</language>
<aspectRatio>16:9</aspectRatio>
@ -29,45 +33,57 @@
<colorScheme name="dark">
<label language="en_US">Dark</label>
<label language="en_GB">Dark</label>
<label language="ca_ES">Fosc</label>
<label language="de_DE">Dunkel</label>
<label language="es_ES">Oscuro</label>
<label language="fr_FR">Foncé</label>
<label language="it_IT">Scuro</label>
<label language="nl_NL">Donker</label>
<label language="pl_PL">Ciemna</label>
<label language="pt_BR">Escuro</label>
<label language="ro_RO">Întunecată</label>
<label language="ru_RU">Тёмная</label>
<label language="sv_SE">Mörkt</label>
<label language="ja_JP">ダーク</label>
<label language="ko_KR">다크</label>
<label language="zh_CN">暗黑</label>
</colorScheme>
<colorScheme name="light">
<label language="en_US">Light</label>
<label language="en_GB">Light</label>
<label language="ca_ES">Clar</label>
<label language="de_DE">Hell</label>
<label language="es_ES">Claro</label>
<label language="fr_FR">Clair</label>
<label language="it_IT">Chiaro</label>
<label language="nl_NL">Licht</label>
<label language="pl_PL">Jasna</label>
<label language="pt_BR">Claro</label>
<label language="ro_RO">Luminoasă</label>
<label language="ru_RU">Светлая</label>
<label language="sv_SE">Ljust</label>
<label language="ja_JP">ライト</label>
<label language="ko_KR">라이트</label>
<label language="zh_CN">明亮</label>
</colorScheme>
<transitions name="instant">
<label language="en_US">Instant</label>
<label language="en_GB">Instant</label>
<label language="ca_ES">Instantani</label>
<label language="de_DE">Sofort</label>
<label language="es_ES">Instantanea</label>
<label language="fr_FR">Instantané</label>
<label language="it_IT">Istantanea</label>
<label language="nl_NL">Direct</label>
<label language="pl_PL">Natychmiastowe</label>
<label language="pt_BR">Deslizar</label>
<label language="ro_RO">Instant</label>
<label language="ru_RU">Мгновенно</label>
<label language="sv_SE">Direkt</label>
<label language="ja_JP">インスタント</label>
<label language="ko_KR">즉시</label>
<label language="zh_CN">即时</label>
<selectable>true</selectable>
<systemToSystem>instant</systemToSystem>
@ -81,15 +97,19 @@
<transitions name="instantAndSlide">
<label language="en_US">Instant and slide</label>
<label language="en_GB">Instant and slide</label>
<label language="ca_ES">Instantani i lliscar</label>
<label language="de_DE">Sofort und gleiten</label>
<label language="es_ES">Instantanea y deslizante</label>
<label language="fr_FR">Instantané et glissement</label>
<label language="it_IT">Istantanea e scorri</label>
<label language="nl_NL">Direct en slide</label>
<label language="pl_PL">Momentalne przesunięcie</label>
<label language="pt_BR">Instantâneo e deslizar</label>
<label language="ro_RO">Instant și glisează</label>
<label language="ru_RU">Мгновенно и скольжение</label>
<label language="sv_SE">Direkt och glidande</label>
<label language="ja_JP">インスタントとスライド</label>
<label language="ko_KR">즉시 그리고 슬라이드</label>
<label language="zh_CN">即时与滑动</label>
<selectable>true</selectable>
<systemToSystem>instant</systemToSystem>
@ -103,15 +123,19 @@
<transitions name="instantAndFade">
<label language="en_US">Instant and fade</label>
<label language="en_GB">Instant and fade</label>
<label language="ca_ES">Instantani i desaparèixer</label>
<label language="de_DE">Sofort und überblendung</label>
<label language="es_ES">Instantanea y fundido</label>
<label language="fr_FR">Instantané et fondu</label>
<label language="it_IT">Istantanea e dissolvi</label>
<label language="nl_NL">Direct en faseren</label>
<label language="pl_PL">Momentalne zanikanie</label>
<label language="pt_BR">Instantâneo e esmaecer</label>
<label language="ro_RO">Instant și estompează</label>
<label language="ru_RU">Мгновенно и затухание</label>
<label language="sv_SE">Direkt och uttoning</label>
<label language="ja_JP">インスタントとフェイド</label>
<label language="ko_KR">즉시 그리고 페이드</label>
<label language="zh_CN">即时与淡出</label>
<selectable>true</selectable>
<systemToSystem>instant</systemToSystem>
@ -131,15 +155,19 @@
<variant name="withVideos">
<label language="en_US">Textlist with videos</label>
<label language="en_GB">Textlist with videos</label>
<label language="ca_ES">Llistat amb vídeos</label>
<label language="de_DE">Liste mit videos</label>
<label language="es_ES">Lista con videos</label>
<label language="fr_FR">Liste avec vidéos</label>
<label language="it_IT">Lista testi con video</label>
<label language="nl_NL">Tekstlijst met video's</label>
<label language="pl_PL">Lista tekstowa z wideo</label>
<label language="pt_BR">Lista de texto com vídeos</label>
<label language="ro_RO">Listă text cu videouri</label>
<label language="ru_RU">Текст с видео</label>
<label language="sv_SE">Textlista med video</label>
<label language="ja_JP">ビデオが含まるテキストリスト</label>
<label language="ko_KR">텍스트리스트 비디오 포함</label>
<label language="zh_CN">带视频的文字列表</label>
<selectable>true</selectable>
<override>
@ -152,15 +180,19 @@
<variant name="withoutVideos">
<label language="en_US">Textlist without videos</label>
<label language="en_GB">Textlist without videos</label>
<label language="ca_ES">Llistat sense vídeos</label>
<label language="de_DE">Liste ohne videos</label>
<label language="es_ES">Lista sin videos</label>
<label language="fr_FR">Liste sans vidéos</label>
<label language="it_IT">Lista testi, no video</label>
<label language="nl_NL">Tekstlijst zonder video's</label>
<label language="pl_PL">Lista tekstowa bez wideo</label>
<label language="pt_BR">Lista de texto sem vídeos</label>
<label language="ro_RO">Listă text fără videouri</label>
<label language="ru_RU">Текст без видео</label>
<label language="sv_SE">Textlista utan video</label>
<label language="ja_JP">ビデオが含まないテキストリスト</label>
<label language="ko_KR">텍스트리스트 비디오 없음</label>
<label language="zh_CN">不带视频的文字列表</label>
<selectable>true</selectable>
<override>
@ -173,15 +205,19 @@
<variant name="withVideosLegacy">
<label language="en_US">Textlist with videos (legacy)</label>
<label language="en_GB">Textlist with videos (legacy)</label>
<label language="ca_ES">Llistat amb vídeos (llegat)</label>
<label language="de_DE">Liste mit videos (retro)</label>
<label language="es_ES">Lista con videos (legacy)</label>
<label language="fr_FR">Liste avec vidéos (legacy)</label>
<label language="it_IT">Lista testi con video (legacy)</label>
<label language="nl_NL">Tekstlijst met video's (legacy)</label>
<label language="pl_PL">Lista tekstowa z wideo (stara)</label>
<label language="pt_BR">Lista de texto com vídeos (legado)</label>
<label language="ro_RO">Listă text cu videouri (învechit)</label>
<label language="ru_RU">Текст с видео (устар.)</label>
<label language="sv_SE">Textlista med video (legacy)</label>
<label language="ja_JP">ビデオが含まるテキストリスト(レガシー)</label>
<label language="ko_KR">텍스트리스트 비디오 포함 (레거시)</label>
<label language="zh_CN">带视频的文字列表(传统)</label>
<selectable>true</selectable>
<override>
@ -194,15 +230,19 @@
<variant name="withoutVideosLegacy">
<label language="en_US">Textlist without videos (legacy)</label>
<label language="en_GB">Textlist without videos (legacy)</label>
<label language="ca_ES">Llistat sense vídeos (llegat)</label>
<label language="de_DE">Liste ohne videos (retro)</label>
<label language="es_ES">Lista sin videos (legacy)</label>
<label language="fr_FR">Liste sans vidéos (legacy)</label>
<label language="it_IT">Lista testi, no video (legacy)</label>
<label language="nl_NL">Tekstlijst zonder video's (legacy)</label>
<label language="pl_PL">Lista tekstowa bez wideo (stara)</label>
<label language="pt_BR">Lista de texto sem vídeos (legado)</label>
<label language="ro_RO">Listă text fără videouri (învechit)</label>
<label language="ru_RU">Текст без видео (устар.)</label>
<label language="sv_SE">Textlista utan video (legacy)</label>
<label language="ja_JP">ビデオが含まないテキストリスト(レガシー)</label>
<label language="ko_KR">텍스트리스트 비디오 없음 (레거시)</label>
<label language="zh_CN">不带视频的文字列表(传统)</label>
<selectable>true</selectable>
<override>

View file

@ -9,6 +9,28 @@
<langLabelPublisher>Publisher</langLabelPublisher>
<langUnknown>Unknown</langUnknown>
</variables>
<language name="ca_ES">
<variables>
<langLabelRating>Valoració</langLabelRating>
<langLabelReleasedate>Llançament</langLabelReleasedate>
<langLabelPlayers>Jugadors</langLabelPlayers>
<langLabelGenre>Gènere</langLabelGenre>
<langLabelDeveloper>Desenvolupador</langLabelDeveloper>
<langLabelPublisher>Editor</langLabelPublisher>
<langUnknown>Desconegut</langUnknown>
</variables>
</language>
<language name="de_DE">
<variables>
<langLabelRating>Bewertung</langLabelRating>
<langLabelReleasedate>Veröffentlicht</langLabelReleasedate>
<langLabelPlayers>Spieler</langLabelPlayers>
<langLabelGenre>Genre</langLabelGenre>
<langLabelDeveloper>Entwickler</langLabelDeveloper>
<langLabelPublisher>Herausgeber</langLabelPublisher>
<langUnknown>Unbekannt</langUnknown>
</variables>
</language>
<language name="es_ES">
<variables>
<langLabelRating>Valoracion</langLabelRating>
@ -42,6 +64,17 @@
<langUnknown>Sconosciuto</langUnknown>
</variables>
</language>
<language name="nl_NL">
<variables>
<langLabelRating>Waardering</langLabelRating>
<langLabelReleasedate>Datum van Uitgave</langLabelReleasedate>
<langLabelPlayers>Spelers</langLabelPlayers>
<langLabelGenre>Genre</langLabelGenre>
<langLabelDeveloper>Ontwikkelaar</langLabelDeveloper>
<langLabelPublisher>Uitgever</langLabelPublisher>
<langUnknown>Onbekend</langUnknown>
</variables>
</language>
<language name="pl_PL">
<variables>
<langLabelRating>Ocena</langLabelRating>
@ -108,6 +141,17 @@
<langUnknown>未知</langUnknown>
</variables>
</language>
<language name="ko_KR">
<variables>
<langLabelRating>평점</langLabelRating>
<langLabelReleasedate>발매일</langLabelReleasedate>
<langLabelPlayers>플레이어</langLabelPlayers>
<langLabelGenre>장르</langLabelGenre>
<langLabelDeveloper>개발사</langLabelDeveloper>
<langLabelPublisher>배급사</langLabelPublisher>
<langUnknown>알수없음</langUnknown>
</variables>
</language>
<language name="zh_CN">
<variables>
<langLabelRating>评价</langLabelRating>

View file

@ -24,19 +24,23 @@ The following options are included:
- 4:3
- 4:3 vertical
12 languages:
16 languages:
- English (United States)
- English (United Kingdom)
- Català
- Deutsch
- Español (España)
- Français
- Italiano
- Nederlands
- Polski
- Português (Brasil)
- Română
- Русский
- Svenska
- 日本語
- 한국어
- 简体中文
3 transitions:

View file

@ -7,15 +7,19 @@
<language>en_US</language>
<language>en_GB</language>
<language>ca_ES</language>
<language>de_DE</language>
<language>es_ES</language>
<language>fr_FR</language>
<language>it_IT</language>
<language>nl_NL</language>
<language>pl_PL</language>
<language>pt_BR</language>
<language>ro_RO</language>
<language>ru_RU</language>
<language>sv_SE</language>
<language>ja_JP</language>
<language>ko_KR</language>
<language>zh_CN</language>
<aspectRatio>16:9</aspectRatio>
@ -29,45 +33,57 @@
<colorScheme name="dark">
<label language="en_US">Dark</label>
<label language="en_GB">Dark</label>
<label language="ca_ES">Fosc</label>
<label language="de_DE">Dunkel</label>
<label language="es_ES">Oscuro</label>
<label language="fr_FR">Foncé</label>
<label language="it_IT">Scuro</label>
<label language="nl_NL">Donker</label>
<label language="pl_PL">Ciemna</label>
<label language="pt_BR">Escuro</label>
<label language="ro_RO">Întunecată</label>
<label language="ru_RU">Тёмная</label>
<label language="sv_SE">Mörkt</label>
<label language="ja_JP">ダーク</label>
<label language="ko_KR">다크</label>
<label language="zh_CN">暗黑</label>
</colorScheme>
<colorScheme name="light">
<label language="en_US">Light</label>
<label language="en_GB">Light</label>
<label language="ca_ES">Clar</label>
<label language="de_DE">Hell</label>
<label language="es_ES">Claro</label>
<label language="fr_FR">Clair</label>
<label language="it_IT">Chiaro</label>
<label language="nl_NL">Licht</label>
<label language="pl_PL">Jasna</label>
<label language="pt_BR">Claro</label>
<label language="ro_RO">Luminoasă</label>
<label language="ru_RU">Светлая</label>
<label language="sv_SE">Ljust</label>
<label language="ja_JP">ライト</label>
<label language="ko_KR">라이트</label>
<label language="zh_CN">明亮</label>
</colorScheme>
<transitions name="slide">
<label language="en_US">Slide</label>
<label language="en_GB">Slide</label>
<label language="ca_ES">Lliscar</label>
<label language="de_DE">Gleiten</label>
<label language="es_ES">Deslizante</label>
<label language="fr_FR">Glissement</label>
<label language="it_IT">Scorri</label>
<label language="nl_NL">Glijden</label>
<label language="pl_PL">Przesunięcie</label>
<label language="pt_BR">Deslizar</label>
<label language="ro_RO">Glisează</label>
<label language="ru_RU">Скольжение</label>
<label language="sv_SE">Glidande</label>
<label language="ja_JP">スライド</label>
<label language="ko_KR">슬라이드</label>
<label language="zh_CN">滑动</label>
<selectable>true</selectable>
<systemToSystem>slide</systemToSystem>
@ -79,15 +95,19 @@
<transitions name="instant">
<label language="en_US">Instant</label>
<label language="en_GB">Instant</label>
<label language="ca_ES">Instantani</label>
<label language="de_DE">Sofort</label>
<label language="es_ES">Instantanea</label>
<label language="fr_FR">Instantané</label>
<label language="it_IT">Istantanea</label>
<label language="nl_NL">Direct</label>
<label language="pl_PL">Natychmiastowe</label>
<label language="pt_BR">Instantâneo</label>
<label language="ro_RO">Instant</label>
<label language="ru_RU">Мгновенно</label>
<label language="sv_SE">Direkt</label>
<label language="ja_JP">インスタント</label>
<label language="ko_KR">즉시</label>
<label language="zh_CN">即时</label>
<selectable>true</selectable>
<systemToSystem>instant</systemToSystem>
@ -101,15 +121,19 @@
<transitions name="fade">
<label language="en_US">Fade</label>
<label language="en_GB">Fade</label>
<label language="ca_ES">Desaparèixer</label>
<label language="de_DE">Überblendung</label>
<label language="es_ES">Fundido</label>
<label language="fr_FR">Fondu</label>
<label language="it_IT">Dissolvi</label>
<label language="nl_NL">Faseren</label>
<label language="pl_PL">Zanikanie</label>
<label language="pt_BR">Esmaecer</label>
<label language="ro_RO">Estompează</label>
<label language="ru_RU">Затухание</label>
<label language="sv_SE">Uttoning</label>
<label language="ja_JP">フェイド</label>
<label language="ko_KR">페이드</label>
<label language="zh_CN">淡出</label>
<selectable>true</selectable>
<systemToSystem>fade</systemToSystem>
@ -129,15 +153,19 @@
<variant name="withVideos">
<label language="en_US">Textlist with videos</label>
<label language="en_GB">Textlist with videos</label>
<label language="ca_ES">Llistat amb vídeos</label>
<label language="de_DE">Liste mit videos</label>
<label language="es_ES">Lista con videos</label>
<label language="fr_FR">Liste avec vidéos</label>
<label language="it_IT">Lista testi con video</label>
<label language="nl_NL">Tekstlijst met video's</label>
<label language="pl_PL">Lista tekstowa z wideo</label>
<label language="pt_BR">Lista de texto com vídeos</label>
<label language="ro_RO">Listă text cu videouri</label>
<label language="ru_RU">Текст с видео</label>
<label language="sv_SE">Textlista med video</label>
<label language="ja_JP">ビデオが含まるテキストリスト</label>
<label language="ko_KR">텍스트리스트 비디오 포함</label>
<label language="zh_CN">带视频的文字列表</label>
<selectable>true</selectable>
<override>
@ -150,15 +178,19 @@
<variant name="withoutVideos">
<label language="en_US">Textlist without videos</label>
<label language="en_GB">Textlist without videos</label>
<label language="ca_ES">Llistat sense vídeos</label>
<label language="de_DE">Liste ohne videos</label>
<label language="es_ES">Lista sin videos</label>
<label language="fr_FR">Liste sans vidéos</label>
<label language="it_IT">Lista testi, no video</label>
<label language="nl_NL">Tekstlijst zonder video's</label>
<label language="pl_PL">Lista tekstowa bez wideo</label>
<label language="pt_BR">Lista de texto sem vídeos</label>
<label language="ro_RO">Listă text fără videouri</label>
<label language="ru_RU">Текст без видео</label>
<label language="sv_SE">Textlista utan video</label>
<label language="ja_JP">ビデオが含まないテキストリスト</label>
<label language="ko_KR">텍스트리스트 비디오 없음</label>
<label language="zh_CN">不带视频的文字列表</label>
<selectable>true</selectable>
<override>

View file

@ -8,6 +8,26 @@
<langLabelPlayers>Players</langLabelPlayers>
<langLabelLastPlayed>Last Played</langLabelLastPlayed>
</variables>
<language name="ca_ES">
<variables>
<langLabelReleasedate>Llançament</langLabelReleasedate>
<langLabelDeveloper>Desenvolupador</langLabelDeveloper>
<langLabelPublisher>Editor</langLabelPublisher>
<langLabelGenre>Gènere</langLabelGenre>
<langLabelPlayers>Jugadors</langLabelPlayers>
<langLabelLastPlayed>Última Partida</langLabelLastPlayed>
</variables>
</language>
<language name="de_DE">
<variables>
<langLabelReleasedate>Veröffentlicht</langLabelReleasedate>
<langLabelDeveloper>Entwickler</langLabelDeveloper>
<langLabelPublisher>Herausgeber</langLabelPublisher>
<langLabelGenre>Genre</langLabelGenre>
<langLabelPlayers>Spieler</langLabelPlayers>
<langLabelLastPlayed>Zuletzt Gespielt</langLabelLastPlayed>
</variables>
</language>
<language name="es_ES">
<variables>
<langLabelReleasedate>Lanzamiento</langLabelReleasedate>
@ -38,6 +58,16 @@
<langLabelLastPlayed>Ultima Partita</langLabelLastPlayed>
</variables>
</language>
<language name="nl_NL">
<variables>
<langLabelReleasedate>Datum van Uitgave</langLabelReleasedate>
<langLabelDeveloper>Ontwikkelaar</langLabelDeveloper>
<langLabelPublisher>Uitgever</langLabelPublisher>
<langLabelGenre>Genre</langLabelGenre>
<langLabelPlayers>Spelers</langLabelPlayers>
<langLabelLastPlayed>Laatst Gespeeld</langLabelLastPlayed>
</variables>
</language>
<language name="pl_PL">
<variables>
<langLabelReleasedate>Wydano</langLabelReleasedate>
@ -98,6 +128,16 @@
<langLabelLastPlayed>最後に遊んだ日</langLabelLastPlayed>
</variables>
</language>
<language name="ko_KR">
<variables>
<langLabelReleasedate>발매일</langLabelReleasedate>
<langLabelDeveloper>개발사</langLabelDeveloper>
<langLabelPublisher>배급사</langLabelPublisher>
<langLabelGenre>장르</langLabelGenre>
<langLabelPlayers>플레이어</langLabelPlayers>
<langLabelLastPlayed>최근 실행</langLabelLastPlayed>
</variables>
</language>
<language name="zh_CN">
<variables>
<langLabelReleasedate>发行日</langLabelReleasedate>