Documentation update

This commit is contained in:
Leon Styhre 2024-07-23 19:52:23 +02:00
parent 7d8b89ee00
commit f4bc3a1cf4
4 changed files with 28 additions and 19 deletions

View file

@ -9,7 +9,9 @@
### Detailed list of changes
* Added localization support
* Added Swedish translations
* Added translations for English (United Kingdom) (en_US)
* Added translations for Simplified Chinese (zh_CN)
* Added translations for Swedish (sv_SE)
* Dramatically improved start times for the video and slideshow screensavers on devices with poor disk I/O performance (like Android)
* Added support for skipping the scanning of game system subdirectories (by using noload.txt files)
* Added an error popup if incorrect credentials (username and password) are used when scraping using ScreenScraper

View file

@ -19,6 +19,8 @@ Nils Bonenberger
**English (United Kingdom)** \
Weestuarty \
**Russian** \
Lulzee \
**Swedish** \
Leon Styhre \
**Simplified Chinese** \

View file

@ -25,7 +25,7 @@ There are some dependencies that need to be fulfilled in order to build ES-DE. T
All of the required packages can be installed with apt-get:
```
sudo apt-get install build-essential clang-format git cmake libsdl2-dev libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libfreeimage-dev libfreetype6-dev libgit2-dev libcurl4-openssl-dev libpugixml-dev libasound2-dev libgl1-mesa-dev libpoppler-cpp-dev
sudo apt-get install build-essential clang-format git cmake gettext libsdl2-dev libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libfreeimage-dev libfreetype6-dev libgit2-dev libcurl4-openssl-dev libpugixml-dev libasound2-dev libgl1-mesa-dev libpoppler-cpp-dev
```
**Fedora**
@ -40,7 +40,7 @@ https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -
Then you can use dnf to install all the required packages:
```
sudo dnf install gcc-c++ clang-tools-extra cmake libasan rpm-build SDL2-devel ffmpeg-devel freeimage-devel freetype-devel libgit2-devel curl-devel pugixml-devel alsa-lib-devel mesa-libGL-devel poppler-cpp-devel
sudo dnf install gcc-c++ clang-tools-extra cmake gettext libasan rpm-build SDL2-devel ffmpeg-devel freeimage-devel freetype-devel libgit2-devel curl-devel pugixml-devel alsa-lib-devel mesa-libGL-devel poppler-cpp-devel
```
**Manjaro**
@ -48,14 +48,14 @@ sudo dnf install gcc-c++ clang-tools-extra cmake libasan rpm-build SDL2-devel ff
Use pacman to install all the required packages:
```
sudo pacman -S gcc clang make cmake pkgconf sdl2 ffmpeg freeimage freetype2 libgit2 pugixml poppler
sudo pacman -S gcc clang make cmake gettext pkgconf sdl2 ffmpeg freeimage freetype2 libgit2 pugixml poppler
```
**Raspberry Pi OS**
All of the required packages can be installed with apt-get:
```
sudo apt-get install clang-format cmake libraspberrypi-dev libsdl2-dev libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libfreeimage-dev libfreetype6-dev libgit2-dev libcurl4-gnutls-dev libpugixml-dev libpoppler-cpp-dev
sudo apt-get install clang-format cmake gettext libraspberrypi-dev libsdl2-dev libavcodec-dev libavfilter-dev libavformat-dev libavutil-dev libfreeimage-dev libfreetype6-dev libgit2-dev libcurl4-gnutls-dev libpugixml-dev libpoppler-cpp-dev
```
For a 64-bit build it's very important that you include libraspberrypi-dev because if this package is not installed then the file /usr/include/bcm_host.h is not present on the filesystem. This leads to CMake not detecting that it's indeed a Raspberry Pi and it will attempt to make a regular Linux build instead.
@ -75,7 +75,7 @@ Only the OpenGL ES 3.0 renderer works on Raspberry Pi and it's enabled by defaul
Use pkg to install the dependencies:
```
pkg install llvm-devel git pkgconf cmake sdl2 ffmpeg freeimage libgit2 pugixml poppler
pkg install llvm-devel git pkgconf cmake gettext sdl2 ffmpeg freeimage libgit2 pugixml poppler
```
Clang/LLVM and curl should already be included in the base OS installation.
@ -84,7 +84,7 @@ Clang/LLVM and curl should already be included in the base OS installation.
Use pkgin to install the dependencies:
```
pkgin install clang git cmake pkgconf SDL2 ffmpeg4 freeimage libgit2 pugixml poppler-cpp
pkgin install clang git cmake gettext pkgconf SDL2 ffmpeg4 freeimage libgit2 pugixml poppler-cpp
```
NetBSD ships with GCC by default, and although you should be able to use Clang/LLVM, it's probably easier to just stick to the default compiler environment. The reason why the clang package needs to be installed is to get clang-format onto the system.
@ -93,7 +93,7 @@ NetBSD ships with GCC by default, and although you should be able to use Clang/L
Use pkg_add to install the dependencies:
```
pkg_add clang-tools-extra cmake pkgconf sdl2 ffmpeg freeimage libgit2 poppler
pkg_add clang-tools-extra cmake gettext pkgconf sdl2 ffmpeg freeimage libgit2 poppler
```
In the same manner as for FreeBSD, Clang/LLVM and curl should already be installed by default.

View file

@ -86,49 +86,54 @@ If you're translating to a language where there is no distinction between the tw
As a general remark the correct letter case is very important for the translated text. Although there are a few instances where text is for example automatically converted to uppercase, in most instances such conversions are not made. This means that in most cases the translated text will appear exactly as entered in the .po file. This approach provides maximum flexibility and of course a number of languages don't even have the concept of letter case so automatic case conversions wouldn't make sense.
## Contextual hinting
## Context information
As there is sometimes ambiguity regarding translated strings, such as the same word having different meanings depending on the context, there is hinting added to a number of the translation strings. There is a slight variation to this as well where short versions of strings are also hinted as for some languages they would otherwise not fit inside the user interface. This is really a per-case thing and you'll need to test your translations to see what fits inside the interface and what doesn't. If you need a hinted string added that does not already exist then bring it up in the Discord server and it will get added to the application.
As there is sometimes ambiguity regarding translated strings, such as the same word having different meanings depending on the context, there is contextual hinting added to a number of the translation strings. Similarly some strings may need short versions for some languages as they may otherwise not fit inside the user interface. For the latter it's really a per-case thing and you'll need to test your translations to see what fits inside the interface and what doesn't. If you need context information added for a string then bring it up in the Discord server and it will get added to the application.
If you are translating to a language with excessively long words (Swedish is such a language) then it may be required to adjust the overall font sizes in ES-DE for this specific language. At the moment this is only applicable to the menu titles as these are quite restricted in length. If you find that you're constantly running out of space for your text then bring it up in the Discord server and a font size adjustment can be made in ES-DE for your specific locale.
Here's an example of a contextual hint that is applicable for the Swedish language:
Here's an example of a context information that is applicable for the Swedish language:
```
msgid "COMPLETED"
msgstr "SLUTFÖRD"
```
```
msgid "COMPLETED [metadata]"
msgctxt "metadata"
msgid "COMPLETED"
msgstr "KLARAT"
```
In general _completed_ is translated as _slutförd_ but for example when having played through an entire game (as indicated in the metadata editor for the game) the word _klarat_ makes more sense. Although you could use _slutförd_ for a completed game this sounds pretty strange in Swedish.
However the English translations for this would be identical as there is no real distinction there:
```
msgid "COMPLETED [metadata]"
msgstr "COMPLETED"
```
```
msgid "COMPLETED"
msgstr "COMPLETED"
```
The hints should never be translated literally, anything inside square brackets should be left out. Here's an example for an English short version string to clarify:
```
msgctxt "metadata"
msgid "COMPLETED"
msgstr "COMPLETED"
```
Here's also an example of a short version string:
```
msgid "GAMES DEFAULT SORT ORDER"
msgstr "GAMES DEFAULT SORT ORDER"
```
```
msgid "GAMES DEFAULT SORT ORDER [short]"
msgctxt "short"
msgid "GAMES DEFAULT SORT ORDER"
msgstr "DEFAULT SORT ORDER"
```
The short version of this string was required as it would otherwise not fit inside the menu header. Note that short strings may only be required for some specific languages, so again you need to test it to see whether you actaully need to provide a short translation or not.
Whenever there's a _msgctxt_ line for a message it will be clearly indicated in Poedit so it's very easy to work with this context information.
## Fuzzy entries
Sometimes when changes are made to translation strings this will cause _fuzzy_ entries to get added to the .po file. This means that gettext detected something has changed but is not sure what to do. In these cases the translator needs to make an explicit decision on how to handle the change. Using Poedit makes the whole process simple as each fuzzy entry is clearly indicated with a _Needs Work_ flag in its user interface.