Skip to content

Commit a5234d4

Browse files
authored
Merge pull request solosky#238 from Schokobecher/i18n
German Translation Update / Cross-platform Language File Generation script / Updated Translation Docs
2 parents f4f9468 + e8fc510 commit a5234d4

File tree

16 files changed

+569
-248
lines changed

16 files changed

+569
-248
lines changed

docs/en/05+5-translation.md

Lines changed: 81 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,92 @@
1-
# Transalation
1+
# Translation
22

3-
## How to update exists translation
3+
## Firmware
44

5-
1. Edit fw/data/i18n.csv with your favorite text editor. For vscode, extension "Edit csv" is recommended.
6-
2. Run `fw/scripts/i18n_gen.py` to generate new language files.
7-
3. Optional: Run `fw/scripts/font_data_gen.sh` to generate new font data if you add new charaters in i18n.csv
8-
4. Run `make full` rebuild firmware
5+
## How to update existing translation
6+
7+
When editing CSV files with VSCode, the extension [Edit CSV](https://marketplace.visualstudio.com/items?itemName=janisdd.vscode-edit-csv) is recommended.
8+
9+
**Windows** requires you to have [Python](https://www.python.org/downloads/) and [Git](https://git-scm.com/download/windows) installed and within your `$PATH`
10+
For **Linux**, most distributions come with `python` and `git` by default and **macOS** comes bundled with `python`, but to use `git` you either need to install the Command Line tools via `xcode-select –-install`, or download [Git](https://git-scm.com/download/mac) separately.
11+
12+
### Windows
913

10-
note: <br />
11-
The script `font_data_gen.sh` only can be run in Git Bash windows in Windows.
14+
1. Clone this repository
15+
`git clone https://github.com/solosky/pixl.js.git; cd pixl.js`
16+
2. Edit `fw/data/i18n.csv`
17+
3. Run `py.exe fw/scripts/i18n_gen.py` to generate new language files.
18+
4. _Optional:_ Run `py.exe fw/scripts/font_data_gen.py` to generate new font data if you add new characters in `i18n.csv`
19+
5. [Build the Firmware](03-Build-Firmware.md)
20+
21+
### Linux and macOS
22+
23+
1. Clone this repository
24+
`git clone https://github.com/solosky/pixl.js.git; cd pixl.js`
25+
2. Edit `fw/data/i18n.csv`
26+
3. Run `python3 fw/scripts/i18n_gen.py` to generate new language files.
27+
4. Optional: Run `python fw/scripts/font_data_gen.py` to generate new font data if you add new characters in `i18n.csv`
28+
5. [Build the Firmware](03-Build-Firmware.md)
1229

1330
## How to add new language translation
1431

15-
1. Add new column in fw/data/i18n.csv, for example "ja_JP"
32+
The process is similar to updating an existing translation, and has the same requirements depending on your Operating System.
33+
34+
1. Add new column in `fw/data/i18n.csv`, for example "ja_JP"
1635
2. Run `fw/scripts/i18n_gen.py` to generate new language files.
17-
3. Optional: Run `fw/scripts/font_data_gen.sh` to generate new font data if you add new charaters in i18n.csv
36+
3. Optional: Run `fw/scripts/font_data_gen.py` to generate new font data if you add new characters in `i18n.csv`
1837
4. Edit `fw/application/src/i18n/language.h` and `fw/application/src/i18n/language.c` to adopt new language
1938
5. Edit Makefile to include `$(PROJ_DIR)/i18n/ja_JP.c` as C source files
20-
6. Run `make full` rebuild firmware
39+
6. [Build the Firmware](03-Build-Firmware.md)
40+
41+
## Font notes
42+
43+
For release builds (RELEASE=1), the firmware uses wenquanyi_9pt_u8g2.bdf to display unicode characters.
44+
Please check if the new language character codepoint is included in wenquanyi_9pt_u8g2.bdf or not.
45+
If not, it's not recommended supporting the new language due to the MCU internal flash restrictions.
46+
47+
## Web App
48+
49+
### How to update existing translation
50+
51+
The language file can be found under `web/src/i18n'
52+
53+
## How to add new language translation
54+
55+
In this example, we will add a Japanese (ja_JP) translation:
56+
57+
1. Copy the `en_US.js` file and name it `ja_JP.js`
58+
2. Translate the string within `ja_JP.js` including the `changeok` message.
59+
60+
Don't translate the other language names.
61+
62+
Add your language at the bottom of the `lang {` section:
63+
64+
`ja: '日本語',`
65+
66+
3. Edit `index.js` while keeping its current structure, adding:
67+
68+
```js
69+
import elementJaLocale from 'element-ui/lib/locale/lang/ja' // element-ui
70+
lang import jaLocale from './ja_JP' elementJpLocale
71+
```
72+
73+
And extending `messages`:
74+
75+
```js
76+
ja_JP: {
77+
...jaLocale,
78+
...elementJaLocale,
79+
},
80+
```
81+
82+
4. Add your language to the other `.js` files (within the `lang: {` section):
83+
84+
`vueja: '日本語',`
2185

22-
## Font notes
86+
5. Add your language to the `web/src/App.vue` file:
2387

24-
For release build (RELEASE=1), the firmware use wenquanyi_9pt_u8g2.bdf to display unicode characters. <br />
25-
Please check new language charater codepoint is included in wenquanyi_9pt_u8g2.bdf or not.<br />
26-
If not, I am not recommended to support the new language due to the MCU internal flash restrction.
88+
```js
89+
<el-dropdown-item Enabled="language==='ja'" command="ja" divided>
90+
{{ $t('lang.ja') }}
91+
</el-dropdown-item>
92+
```

fw/application/src/i18n/de_DE.c

Lines changed: 64 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,30 @@ const char * const lang_de_DE[_L_COUNT] = {
44
[_L_OFF] = "AUS",
55
[_L_ON_F] = "[AN]",
66
[_L_OFF_F] = "[AUS]",
7-
[_L_BACK] = "[Zurück]",
7+
[_L_BACK] = "Zurück",
88
[_L_ERR] = "Fehler",
99
[_L_ERR_CODE] = "Fehlercode",
10-
[_L_APP_AMIIBO] = "Amiibo-Emulator",
10+
[_L_APP_AMIIBO] = "Amiibo Emulator",
1111
[_L_APP_AMIIBOLINK] = "AmiiboLink",
12-
[_L_APP_BLE] = "BLE-Dateitransfer",
13-
[_L_APP_BLE_TITLE] = "BLE-Dateitransfer",
14-
[_L_APP_PLAYER] = "Videospieler",
12+
[_L_APP_BLE] = "BLE Dateitransfer",
13+
[_L_APP_BLE_TITLE] = "BLE Dateitransfer",
14+
[_L_APP_PLAYER] = "Videoplayer",
1515
[_L_APP_SET] = "Einstellungen",
1616
[_L_APP_SET_VERSION] = "Version",
1717
[_L_APP_SET_STORAGE_USED] = "Belegt",
18-
[_L_APP_SET_STORAGE] = "Speicher",
19-
[_L_APP_SET_OLED_CONTRAST] = "OLED-Kontrast",
20-
[_L_APP_SET_OLED_CONTRAST_TITLE] = "OLED-Kontrast",
18+
[_L_APP_SET_STORAGE] = "Externer Speicher",
19+
[_L_APP_SET_OLED_CONTRAST] = "OLED Kontrast",
20+
[_L_APP_SET_OLED_CONTRAST_TITLE] = "OLED Kontrast",
2121
[_L_APP_SET_LCD_BACKLIGHT] = "Beleuchtung",
2222
[_L_APP_SET_LCD_BACKLIGHT_TITLE] = "Helligkeit",
23-
[_L_APP_SET_ANIM] = "Menü-Animation",
24-
[_L_APP_SET_LIPO_BAT] = "LiPO-Batterie",
23+
[_L_APP_SET_ANIM] = "Menü Animation",
24+
[_L_APP_SET_LIPO_BAT] = "LiPO Batterie",
2525
[_L_APP_SET_SHOW_MEM_USAGE] = "Speicheranzeige",
26-
[_L_APP_SET_HIBERNATE] = "Schnell-Wecken",
27-
[_L_APP_SET_SLEEP_TIMEOUT] = "Schlaf-Timeout",
26+
[_L_APP_SET_HIBERNATE] = "Schnelles Aufwachen",
27+
[_L_APP_SET_SLEEP_TIMEOUT] = "Standby nach",
2828
[_L_APP_SET_LANGUAGE] = "Sprache",
29-
[_L_APP_SET_DFU] = "Firmw.-Aktualisierung",
30-
[_L_APP_SET_REBOOT] = "System-Neustart",
29+
[_L_APP_SET_DFU] = "Firmw. Aktualisierung",
30+
[_L_APP_SET_REBOOT] = "System Neustart",
3131
[_L_APP_SET_RESET_DEFAULT] = "Standardeinstellungen",
3232
[_L_APP_SET_RESET_DEFAULT_SUCCESS] = "Einstellungen zurückgesetzt!",
3333
[_L_APP_SET_RESET_DEFAULT_CONFIRM] = "Auf Standardeinstellungen zurücksetzen?",
@@ -36,68 +36,68 @@ const char * const lang_de_DE[_L_COUNT] = {
3636
[_L_45S] = "45 Sekunden",
3737
[_L_1MIN] = "1 Minute",
3838
[_L_2MIN] = "2 Minuten",
39-
[_L_3MIN] = "3 Min",
40-
[_L_AMIIBO_KEY_UNLOADED] = "Schlüssel nicht gefunden",
41-
[_L_UPLOAD_KEY_RETAIL_BIN] = "Laden Sie die Datei key_retail.bin in das Stammverzeichnis des Speichers.",
39+
[_L_3MIN] = "3 Minuten",
40+
[_L_AMIIBO_KEY_UNLOADED] = "Amiibo Schlüssel fehlt",
41+
[_L_UPLOAD_KEY_RETAIL_BIN] = "Platzieren Sie die Datei key_retail.bin im Hauptverzeichnis des Speichers.",
4242
[_L_KNOW] = "Verstanden",
43-
[_L_RANDOM_GENERATION] = "Zufällige Tag-Nummer",
44-
[_L_AUTO_RANDOM_GENERATION] = "Autom. random.",
45-
[_L_SHOW_QRCODE] = "QR-Code",
43+
[_L_RANDOM_GENERATION] = "Zufällige UUID",
44+
[_L_AUTO_RANDOM_GENERATION] = "Zufällige UUID (Automatisch)",
45+
[_L_SHOW_QRCODE] = "QR Code",
4646
[_L_DELETE_TAG] = "Tag löschen",
47-
[_L_DELETE_TAG_CONFIRM] = "Bestätigen Sie das\nLöschen %s?",
48-
[_L_BACK_TO_DETAILS] = "Zurück zu Tag-Details",
49-
[_L_BACK_TO_FILE_LIST] = "[Zurück zur Liste]",
50-
[_L_BACK_TO_MAIN_MENU] = "[Hauptmenü]",
47+
[_L_DELETE_TAG_CONFIRM] = "Löschen von %s bestätigen?",
48+
[_L_BACK_TO_DETAILS] = "Zurück zu Tag Details",
49+
[_L_BACK_TO_FILE_LIST] = "Zurück zur Liste",
50+
[_L_BACK_TO_MAIN_MENU] = "Hauptmenü",
5151
[_L_FORMAT] = "Formatieren",
5252
[_L_FORMAT_STORAGE] = "Speicher formatieren",
5353
[_L_DELETE_ALL_DATA] = "Alle Daten löschen?",
54-
[_L_DELETING_MESSAGE] = "Formatierung..",
55-
[_L_MESSAGE] = "Nachricht",
54+
[_L_DELETING_MESSAGE] = "Formatiere..",
55+
[_L_MESSAGE] = "Meldung",
5656
[_L_CONFIRM] = "Bestätigen",
5757
[_L_CANCEL] = "Abbrechen",
58-
[_L_BACK_TO_LIST] = "[Zurück zur Liste]",
59-
[_L_NOT_MOUNTED] = "Speicher nicht ausgerüstet",
58+
[_L_BACK_TO_LIST] = "Zurück zur Liste",
59+
[_L_NOT_MOUNTED] = "Speicher nicht eingebunden",
6060
[_L_MOUNTED_LFS] = "===Speicher [LFS]===",
6161
[_L_MOUNTED_FFS] = "===Speicher [FFS]===",
6262
[_L_TOTAL_SPACE] = "Gesamt",
6363
[_L_AVAILABLE_SPACE] = "Frei",
64-
[_L_NOT_AMIIBO_FILE] = "Dies ist keine Amiibo-Datei",
64+
[_L_NOT_AMIIBO_FILE] = "Keine Amiibo Datei",
6565
[_L_READ_FILE_FAILED] = "Lesen fehlgeschlagen",
6666
[_L_INPUT_FOLDER_NAME] = "Ordnername eingeben:",
67-
[_L_INPUT_AMIIBO_NAME] = "Amiibo-Name eingeben:",
67+
[_L_INPUT_AMIIBO_NAME] = "Amiibo Namen eingeben:",
6868
[_L_DELETE] = "Löschen",
6969
[_L_INPUT_NEW_NAME] = "Neuen Namen eingeben:",
7070
[_L_INVALID_INPUT] = "Ungültige Eingabe",
7171
[_L_CREATE_NEW_FOLDER] = "Neuer Ordner..",
7272
[_L_CREATE_NEW_TAG] = "Neuer Tag..",
73-
[_L_CREATE_NEW_TAG_BATCH] = "Mehrere Tags..",
74-
[_L_INPUT_TAG_NUM] = "Tag-Anzahl eingeben:",
75-
[_L_CREATE_TOO_MANY_NUM] = "Nur maximal %d Tags in einem Stapel erstellt.",
73+
[_L_CREATE_NEW_TAG_BATCH] = "Mehrere Tags erstellen..",
74+
[_L_INPUT_TAG_NUM] = "Tag Anzahl eingeben:",
75+
[_L_CREATE_TOO_MANY_NUM] = "Sie können nur maximal %d Tags auf einmal erstellen.",
7676
[_L_CREATING_TAG_BATCH] = "Tag erstellen",
7777
[_L_CREATING_TAG_FAILED] = "Erstellen von Tag %s fehlgeschlagen!",
7878
[_L_RENAME] = "Umbenennen",
7979
[_L_OPEN_FOLDER_FAILED] = "Ordner konnte nicht geöffnet werden",
8080
[_L_RENAME_FAILED] = "Umbenennen fehlgeschlagen\nFehlercode",
8181
[_L_MAIN_RETURN] = "[Zurück]",
82-
[_L_RANDOM_MODE_MANUAL] = "Zufällig (Manuell)",
83-
[_L_RANDOM_MODE_AUTO] = "Zufällig (Automatisch)",
82+
[_L_RANDOM_MODE_MANUAL] = "Zufällige UUID (Manuell)",
83+
[_L_RANDOM_MODE_AUTO] = "Zufällige UUID (Automatisch)",
8484
[_L_SEQUENCE_MODE] = "Sequentieller Modus",
85-
[_L_READ_WRITE_MODE] = "Lese-Schreib-Modus",
85+
[_L_READ_WRITE_MODE] = "Lese-Schreibmodus",
8686
[_L_AMIIBOLINK_V1] = "V1",
8787
[_L_AMIIBOLINK_V2] = "V2",
8888
[_L_AMILOOP] = "AmiLoop",
8989
[_L_MODE] = "Modus",
90-
[_L_AUTO_RANDOM] = "Autom. randomisieren",
91-
[_L_COMPATIBLE_MODE] = "Kompat. Modus",
90+
[_L_AUTO_RANDOM] = "Zufällige UUID (Automatisch)",
91+
[_L_COMPATIBLE_MODE] = "Kompabilitäts Modus",
9292
[_L_TAG_DETAILS] = "[Zurück zu Details]",
9393
[_L_MAIN_MENU] = "[Hauptmenü]",
94-
[_L_MODE_RANDOM] = "Manuell",
94+
[_L_MODE_RANDOM] = "Zufällige UUID (Manuell)",
9595
[_L_MODE_CYCLE] = "Sequentiell",
96-
[_L_MODE_NTAG] = "Lese/Schreib",
97-
[_L_MODE_RANDOM_AUTO_GEN] = "Automatisch",
98-
[_L_BLANK_TAG] = "Leerer NFC-Tag",
99-
[_L_APP_AMIIDB] = "Amiibo-Datenbank",
100-
[_L_APP_AMMIDB_BROWSER] = "Browser..",
96+
[_L_MODE_NTAG] = "Lesen/Schreiben",
97+
[_L_MODE_RANDOM_AUTO_GEN] = "Zufällig (Auto.)",
98+
[_L_BLANK_TAG] = "Leerer NFC Tag",
99+
[_L_APP_AMIIDB] = "Amiibo Datenbank",
100+
[_L_APP_AMMIDB_BROWSER] = "Navigieren..",
101101
[_L_APP_AMIIDB_SEARCH] = "Suche..",
102102
[_L_APP_AMIIDB_MY_FAVORITES] = "Meine Favoriten..",
103103
[_L_APP_AMIIDB_MY_TAGS] = "Meine Amiibo..",
@@ -106,8 +106,8 @@ const char * const lang_de_DE[_L_COUNT] = {
106106
[_L_APP_AMIIDB_BACK] = "[Zurück]",
107107
[_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY] = "Schlüssel",
108108
[_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_LOADED] = "geladen",
109-
[_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED] = "fehlend",
110-
[_L_APP_AMIIDB_SETTINGS_SLOT_NUM] = "Steckplatznummer",
109+
[_L_APP_AMIIDB_SETTINGS_AMIIBO_KEY_NOT_LOADED] = "NICHT geladen",
110+
[_L_APP_AMIIDB_SETTINGS_SLOT_NUM] = "Steckplatzanzahl",
111111
[_L_APP_AMIIDB_DETAIL_FAVORITE] = "Favorit..",
112112
[_L_APP_AMIIDB_DETAIL_SAVE_AS] = "Speichern unter..",
113113
[_L_APP_AMIIDB_DETAIL_BACK_DETAIL] = "[Zurück zu Details]",
@@ -122,15 +122,15 @@ const char * const lang_de_DE[_L_COUNT] = {
122122
[_L_APP_AMIIDB_NEW] = "Neu..",
123123
[_L_APP_AMIIDB_EMPTY] = "Leeren..",
124124
[_L_APP_AMIIDB_DELETE] = "Löschen..",
125-
[_L_APP_AMIIDB_FAV_NEW_HEAD] = "Neuer Favoriten-Ordner:",
126-
[_L_APP_AMIIDB_FAV_EMPTY_MSG] = "Favoritenordner leeren?",
127-
[_L_APP_AMIIDB_FAV_DELETE_MSG] = "Favoritenordner löschen?",
125+
[_L_APP_AMIIDB_FAV_NEW_HEAD] = "Neuer Fav.-Ordner:",
126+
[_L_APP_AMIIDB_FAV_EMPTY_MSG] = "Fav.-Ordner leeren?",
127+
[_L_APP_AMIIDB_FAV_DELETE_MSG] = "Löschen Bestätigen?",
128128
[_L_APP_AMIIDB_FAV_SELECT_FOLDER] = "Fav.-Ordner auswählen..",
129129
[_L_APP_AMIIDB_FAV_SUCCESS] = "Favorit erstellt ",
130-
[_L_APP_AMIIDB_FAV_FAILED] = "Favorit fehlgeschlagen!",
130+
[_L_APP_AMIIDB_FAV_FAILED] = "Favorisieren fehlgeschlagen!",
131131
[_L_APP_AMIIDB_SLOT_SAVE_SUCCESS] = "Speichern erfolgreich",
132132
[_L_APP_AMIIDB_SLOT_SAVE_FAILED] = "Speichern fehlgeschlagen!",
133-
[_L_APP_CHAMELEON] = "Karten-Emulator",
133+
[_L_APP_CHAMELEON] = "Karten Emulator",
134134
[_L_APP_CHAMELEON_TAG_MF1_WRITE_NORMAL] = "Normal",
135135
[_L_APP_CHAMELEON_TAG_MF1_WRITE_DENIED] = "Verweigern",
136136
[_L_APP_CHAMELEON_TAG_MF1_WRITE_DECEIVE] = "Ignorieren",
@@ -142,25 +142,25 @@ const char * const lang_de_DE[_L_COUNT] = {
142142
[_L_APP_CHAMELEON_CARD_TYPE] = "Typ",
143143
[_L_APP_CHAMELEON_CARD_DATA] = "Daten..",
144144
[_L_APP_CHAMELEON_CARD_ADVANCED] = "Erweitert..",
145-
[_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Steckplätze..",
146-
[_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Steckplätze",
147-
[_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS] = "Spitzname erfolgreich",
148-
[_L_APP_CHAMELEON_CARD_SET_NICK_FAILED] = "Spitzname fehlgeschlagen!",
149-
[_L_APP_CHAMELEON_CARD_INPUT_NICK] = "Spitzname eingeben:",
145+
[_L_APP_CHAMELEON_CARD_SLOT_SETTINGS] = "Steckplatz Einstellungen..",
146+
[_L_APP_CHAMELEON_CARD_SLOT_NUM] = "Steckplatz Nummer",
147+
[_L_APP_CHAMELEON_CARD_SET_NICK_SUCCESS] = "Spitzname erfolgreich gesetzt",
148+
[_L_APP_CHAMELEON_CARD_SET_NICK_FAILED] = "Spitzname setzen fehlgeschlagen!",
149+
[_L_APP_CHAMELEON_CARD_INPUT_NICK] = "Spitznamen eingeben:",
150150
[_L_APP_CHAMELEON_CARD_DATA_LOAD] = "Laden..",
151151
[_L_APP_CHAMELEON_CARD_DATA_SAVE] = "Speichern..",
152152
[_L_APP_CHAMELEON_CARD_DATA_FACTORY] = "Zurücksetzen..",
153153
[_L_APP_CHAMELEON_CARD_DATA_FACTORY_SUCCESS] = "Daten zurückgesetzt",
154154
[_L_APP_CHAMELEON_CARD_DATA_LOAD_NOT_FOUND] = "Datei nicht gefunden",
155-
[_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH] = "Dateigröße inkorrekt",
156-
[_L_APP_CHAMELEON_CARD_DATA_LOAD_FAILED] = "Laden fehlgeschlagen",
157-
[_L_APP_CHAMELEON_CARD_DATA_LOAD_SUCCESS] = "Laden erfolgreich",
158-
[_L_APP_CHAMELEON_CARD_DATA_SAVE_INPUT_FILE_NAME] = "Dateinamen eingeben:",
159-
[_L_APP_CHAMELEON_CARD_DATA_SAVE_FAILED] = "Speichern fehlgeschlagen!",
160-
[_L_APP_CHAMELEON_CARD_DATA_SAVE_SUCCESS] = "Speichern erfolgreich",
161-
[_L_APP_CHAMELEON_CARD_ADV_CUSTOM_MODE] = "Benutzermodus",
155+
[_L_APP_CHAMELEON_CARD_DATA_LOAD_SIZE_NOT_MATCH] = "Dateigröße stimmt nicht überein",
156+
[_L_APP_CHAMELEON_CARD_DATA_LOAD_FAILED] = "Laden der Datei fehlgeschlagen",
157+
[_L_APP_CHAMELEON_CARD_DATA_LOAD_SUCCESS] = "Datei erfolgreich geladen",
158+
[_L_APP_CHAMELEON_CARD_DATA_SAVE_INPUT_FILE_NAME] = "Datei Namen eingeben:",
159+
[_L_APP_CHAMELEON_CARD_DATA_SAVE_FAILED] = "Datei speichern fehlgeschlagen!",
160+
[_L_APP_CHAMELEON_CARD_DATA_SAVE_SUCCESS] = "Datei erfolgreich gespeichert",
161+
[_L_APP_CHAMELEON_CARD_ADV_CUSTOM_MODE] = "Benutzerdefinierter Modus",
162162
[_L_APP_CHAMELEON_CARD_GEN1A_MODE] = "Gen1A aktiv",
163-
[_L_APP_CHAMELEON_CARD_GENERATE_UID] = "Randomisierte UID",
163+
[_L_APP_CHAMELEON_CARD_GENERATE_UID] = "Zufällige UID",
164164
[_L_APP_CHAMELEON_CARD_GENERATE_UID_SUCCESS] = "UID generiert",
165165
[_L_APP_CHAMELEON_CARD_GEN2_MODE] = "Gen2 aktiv",
166166
[_L_APP_CHAMELEON_CARD_WRITE_MODE] = "Schreibmodus",

fw/application/src/i18n/fr_FR.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ const char * const lang_fr_FR[_L_COUNT] = {
134134
[_L_APP_CHAMELEON_TAG_MF1_WRITE_NORMAL] = "Normal",
135135
[_L_APP_CHAMELEON_TAG_MF1_WRITE_DENIED] = "Refuser",
136136
[_L_APP_CHAMELEON_TAG_MF1_WRITE_DECEIVE] = "Ignorer",
137-
[_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW] = "Zwischenspeicher",
137+
[_L_APP_CHAMELEON_TAG_MF1_WRITE_SHADOW] = "Cache",
138138
[_L_APP_CHAMELEON_INITIALIZING] = "Initialisation des données ..",
139139
[_L_APP_CHAMELEON_CARD_SLOT] = "Fente",
140140
[_L_APP_CHAMELEON_CARD_NICK] = "Pseudo",

fw/application/src/mui/u8g2_font_wqy12_t_gb2312a.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1250,4 +1250,4 @@ const uint8_t u8g2_font_wqy12_t_gb2312a[39601] U8G2_FONT_SECTION("u8g2_font_wqy1
12501250
"<\311\360\22U\243\4\377\10\15\303\177\134I\224D\275EY\0\377\11\15\303{\34Y\224E\275DI"
12511251
"\4\377\21\12\244{\134Y\262\365i\377\32\11r\236\34C<\4\377\37\20\266|<C\42\15\221\250\31"
12521252
"\355\230(\1\377=\13\304z\34C\326\277\15\2\0";
1253-
#endif /* U8G2_USE_LARGE_GB2312_FONT */
1253+
#endif /* U8G2_USE_LARGE_GB2312_FONT */

0 commit comments

Comments
 (0)