Change selection logic another time
Automatic selection was to unflexible. Updated documentation Updated language files to new logic and documentation. Updated bdf2u8g.exe
This commit is contained in:
@ -567,10 +567,11 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
|
||||
// Define your display language below. Replace (en) with your language code and uncomment.
|
||||
// en, pl, fr, de, es, ru, it, pt, pt-br, fi, an, nl, ca, eu, kana, kana_utf8, kanji, test
|
||||
// See also language.h
|
||||
//#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
|
||||
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)
|
||||
|
||||
// Chose ONE of the next three charsets. This has to match your hardware. In case of a full graphic display chose that one best fitting to your language.
|
||||
// to find out what type you have - compile with language_test.h - upload - click to get the menu. You'll see two typical lines from the upper half of the charset.
|
||||
// Chose ONE of the next three charsets. This has to match your hardware. In case of a full graphic display this information is not important.
|
||||
// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset.
|
||||
// Se also documentation/LCDLanguageFont.md
|
||||
#define DISPLAY_CHARSET_HD44780_JAPAN // this is the most common hardware
|
||||
//#define DISPLAY_CHARSET_HD44780_WESTERN
|
||||
//#define DISPLAY_CHARSET_HD44780_CYRILIC
|
||||
|
@ -35,10 +35,10 @@
|
||||
#include "ultralcd.h"
|
||||
#include "ultralcd_st7920_u8glib_rrd.h"
|
||||
#include "configuration.h"
|
||||
#include "utf_mapper.h"
|
||||
|
||||
|
||||
#include <utility/u8g.h>
|
||||
#include "dogm_font_data_6x9_marlin.h" // Height of 'A' is only 5 pixel.
|
||||
#include "dogm_font_data_6x9_marlin.h" // Height of 'A' is only 6 pixel.
|
||||
#include "dogm_font_data_Marlin_symbols.h" // The Marlin special symbols
|
||||
|
||||
#define FONT_STATUSMENU_NAME u8g_font_6x9 // we don't have a small font for Cyrillic, Kana or Kanji
|
||||
@ -50,38 +50,38 @@
|
||||
#define USE_BIG_EDIT_FONT
|
||||
#endif
|
||||
|
||||
#if defined( MAPPER_C2C3 )
|
||||
#include <utility/u8g.h> // System font. This is ISO10646-1
|
||||
#define FONT_MENU_NAME u8g_font_6x10
|
||||
|
||||
#elif defined( MAPPER_D0D1 )
|
||||
#include "dogm_font_data_ISO10646_5_Cyrillic.h"
|
||||
#define FONT_MENU_NAME ISO10646_5_Cyrillic_5x7
|
||||
|
||||
#elif defined( MAPPER_E382E383 )
|
||||
#include "dogm_font_data_ISO10646_Kana.h"
|
||||
#define FONT_MENU_NAME ISO10646_Kana_5x7
|
||||
|
||||
#elif defined( DISPLAY_CHARSET_KANJI ) && defined( MAPPER_NON )
|
||||
#include "dogm_font_data_6x10_marlin_Kanji.h"
|
||||
#define FONT_MENU_NAME u8g_font_6x10_marlin
|
||||
|
||||
#elif defined( DISPLAY_CHARSET_HD44780_JAPAN )
|
||||
#include "dogm_font_data_HD44780_J.h"
|
||||
#define FONT_MENU_NAME HD44780_J_5x7
|
||||
|
||||
#elif defined( DISPLAY_CHARSET_HD44780_WESTERN )
|
||||
#include "dogm_font_data_HD44780_W.h"
|
||||
#define FONT_MENU_NAME HD44780_W_5x7
|
||||
|
||||
#elif defined( DISPLAY_CHARSET_HD44780_CYRILIC )
|
||||
#include "dogm_font_data_HD44780_C.h"
|
||||
#define FONT_MENU_NAME HD44780_C_5x7
|
||||
|
||||
#else // #if defined( MAPPER_C2C3 ) // fall-back
|
||||
#include <utility/u8g.h> // system font
|
||||
#define FONT_MENU_NAME u8g_font_6x10
|
||||
#endif
|
||||
#ifndef SIMULATE_ROMFONT
|
||||
#if defined( DISPLAY_CHARSET_ISO10646_1 )
|
||||
#include <utility/u8g.h> // System font.
|
||||
#define FONT_MENU_NAME u8g_font_6x10
|
||||
#elif defined( DISPLAY_CHARSET_ISO10646_5 )
|
||||
#include "dogm_font_data_ISO10646_5_Cyrillic.h"
|
||||
#define FONT_MENU_NAME ISO10646_5_Cyrillic_5x7
|
||||
#elif defined( DISPLAY_CHARSET_ISO10646_KANA )
|
||||
#include "dogm_font_data_ISO10646_Kana.h"
|
||||
#define FONT_MENU_NAME ISO10646_Kana_5x7
|
||||
#elif defined( DISPLAY_CHARSET_KANJI )
|
||||
#include "dogm_font_data_6x10_marlin_Kanji.h"
|
||||
#define FONT_MENU_NAME u8g_font_6x10_marlin
|
||||
#else // fall-back
|
||||
#include <utility/u8g.h> // system font
|
||||
#define FONT_MENU_NAME u8g_font_6x10
|
||||
#endif
|
||||
#else // SIMULATE_ROMFONT
|
||||
#if defined( DISPLAY_CHARSET_HD44780_JAPAN )
|
||||
#include "dogm_font_data_HD44780_J.h"
|
||||
#define FONT_MENU_NAME HD44780_J_5x7
|
||||
#elif defined( DISPLAY_CHARSET_HD44780_WESTERN )
|
||||
#include "dogm_font_data_HD44780_W.h"
|
||||
#define FONT_MENU_NAME HD44780_W_5x7
|
||||
#elif defined( DISPLAY_CHARSET_HD44780_CYRILIC )
|
||||
#include "dogm_font_data_HD44780_C.h"
|
||||
#define FONT_MENU_NAME HD44780_C_5x7
|
||||
#else // fall-back
|
||||
#include <utility/u8g.h> // system font
|
||||
#define FONT_MENU_NAME u8g_font_6x10
|
||||
#endif
|
||||
#endif // SIMULATE_ROMFONT
|
||||
|
||||
#define FONT_STATUSMENU 1
|
||||
#define FONT_SPECIAL 2
|
||||
@ -138,6 +138,8 @@ U8GLIB_NHD_C12864 u8g(DOGLCD_CS, DOGLCD_A0);
|
||||
U8GLIB_DOGM128 u8g(DOGLCD_CS, DOGLCD_A0); // HW-SPI Com: CS, A0
|
||||
#endif
|
||||
|
||||
#include "utf_mapper.h"
|
||||
|
||||
char currentfont = 0;
|
||||
|
||||
static void lcd_setFont(char font_nr) {
|
||||
|
@ -11,6 +11,7 @@
|
||||
//
|
||||
// ==> ALWAYS TRY TO COMPILE MARLIN WITH/WITHOUT "ULTIPANEL" / "ULTRALCD" / "SDSUPPORT" #define IN "Configuration.h"
|
||||
// ==> ALSO TRY ALL AVAILABLE LANGUAGE OPTIONS
|
||||
// Se also documentation/LCDLanguageFont.md
|
||||
|
||||
// Languages
|
||||
// en English
|
||||
@ -201,6 +202,11 @@
|
||||
#define MSG_MAXTEMP_BED_OFF "Heated bed" MSG_SWITCHED_OFF_MAX
|
||||
|
||||
// LCD Menu Messages
|
||||
|
||||
#if !(defined( DISPLAY_CHARSET_HD44780_JAPAN ) || defined( DISPLAY_CHARSET_HD44780_WESTERN ) || defined( DISPLAY_CHARSET_HD44780_CYRILIC ))
|
||||
#define DISPLAY_CHARSET_HD44780_JAPAN
|
||||
#endif
|
||||
|
||||
#include LANGUAGE_INCLUDE
|
||||
#include "language_en.h"
|
||||
|
||||
|
@ -2,13 +2,16 @@
|
||||
* Aragonese
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_AN_H
|
||||
#define LANGUAGE_AN_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " parada."
|
||||
#define MSG_SD_INSERTED "Tarcheta colocada"
|
||||
|
@ -2,7 +2,7 @@
|
||||
* Catalan
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_CA_H
|
||||
@ -10,6 +10,9 @@
|
||||
|
||||
//#define MAPPER_NON
|
||||
#define MAPPER_C2C3 // because of "ó"
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " preparada."
|
||||
#define MSG_SD_INSERTED "SD detectada."
|
||||
|
@ -2,13 +2,16 @@
|
||||
* German
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_DE_H
|
||||
#define LANGUAGE_DE_H
|
||||
|
||||
#define MAPPER_C2C3
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " Bereit."
|
||||
#define MSG_SD_INSERTED "SDKarte erkannt."
|
||||
|
@ -2,16 +2,22 @@
|
||||
* English
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_EN_H
|
||||
#define LANGUAGE_EN_H
|
||||
|
||||
#if !(defined(MAPPER_NON) || defined(MAPPER_C2C3) || defined(MAPPER_D0D1_MOD) || defined(MAPPER_E382E383))
|
||||
#if !( defined(MAPPER_NON)|| defined(MAPPER_C2C3)|| defined(MAPPER_D0D1)|| defined(MAPPER_D0D1_MOD)|| defined(MAPPER_E382E383) )
|
||||
#define MAPPER_NON // For direct asci codes
|
||||
#endif
|
||||
|
||||
//#define SIMULATE_ROMFONT //Comment in to see what is seen on the character based displays
|
||||
#if !( defined(SIMULATE_ROMFONT)|| defined(DISPLAY_CHARSET_ISO10646_1)|| defined(DISPLAY_CHARSET_ISO10646_5)|| defined(DISPLAY_CHARSET_ISO10646_KANA)|| defined(DISPLAY_CHARSET_KANJI) )
|
||||
#define DISPLAY_CHARSET_ISO10646_1 // use the better font on full graphic displays.
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef WELCOME_MSG
|
||||
#define WELCOME_MSG MACHINE_NAME " ready."
|
||||
#endif
|
||||
|
@ -2,13 +2,16 @@
|
||||
* Spanish
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_ES_H
|
||||
#define LANGUAGE_ES_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " lista."
|
||||
#define MSG_SD_INSERTED "Tarjeta colocada"
|
||||
|
@ -2,13 +2,16 @@
|
||||
* Basque-Euskera
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_EU_H
|
||||
#define LANGUAGE_EU_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " prest."
|
||||
#define MSG_SD_INSERTED "Txartela sartuta"
|
||||
|
@ -2,13 +2,16 @@
|
||||
* Finnish
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_FI_H
|
||||
#define LANGUAGE_FI_H
|
||||
|
||||
#define MAPPER_C2C3
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " valmis."
|
||||
#define MSG_SD_INSERTED "Kortti asetettu"
|
||||
|
@ -2,13 +2,17 @@
|
||||
* French
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_FR_H
|
||||
#define LANGUAGE_FR_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " prete."
|
||||
#define MSG_SD_INSERTED "Carte inseree"
|
||||
|
@ -2,13 +2,16 @@
|
||||
* Italian
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_IT_H
|
||||
#define LANGUAGE_IT_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " pronto."
|
||||
#define MSG_SD_INSERTED "SD Card inserita"
|
||||
|
@ -2,7 +2,7 @@
|
||||
* Japanese (Kana)
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
|
||||
@ -10,6 +10,9 @@
|
||||
#define LANGUAGE_KANA_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_KANA
|
||||
|
||||
// 片仮名表示定義
|
||||
#define WELCOME_MSG MACHINE_NAME " ready."
|
||||
|
@ -2,7 +2,7 @@
|
||||
* Japanese (Kana UTF8 version)
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
|
||||
@ -10,6 +10,9 @@
|
||||
#define LANGUAGE_KANA_UTF_H
|
||||
|
||||
#define MAPPER_E382E383
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_KANA
|
||||
|
||||
// This is very crude replacement of the codes used in language_kana.h from somebody who really does not know what he is doing.
|
||||
// Just to show the potential benefit of unicode.
|
||||
|
@ -2,7 +2,7 @@
|
||||
* Japanese (Kanji)
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#include "Configuration.h"
|
||||
|
@ -2,13 +2,16 @@
|
||||
* Dutch
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_NL_H
|
||||
#define LANGUAGE_NL_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " gereed."
|
||||
#define MSG_SD_INSERTED "Kaart ingestoken"
|
||||
|
@ -2,13 +2,16 @@
|
||||
* Polish
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_PL_H
|
||||
#define LANGUAGE_PL_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " gotowy."
|
||||
#define MSG_SD_INSERTED "Karta wlozona"
|
||||
|
@ -2,13 +2,16 @@
|
||||
* Portuguese (Brazil)
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_PT_BR_H
|
||||
#define LANGUAGE_PT_BR_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " pronto."
|
||||
#define MSG_SD_INSERTED "Cartao inserido"
|
||||
|
@ -2,13 +2,16 @@
|
||||
* Portuguese
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_PT_H
|
||||
#define LANGUAGE_PT_H
|
||||
|
||||
#define MAPPER_NON
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_1
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " pronto."
|
||||
#define MSG_SD_INSERTED "Cartao inserido"
|
||||
|
@ -2,13 +2,16 @@
|
||||
* Russian
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_RU_H
|
||||
#define LANGUAGE_RU_H
|
||||
|
||||
#define MAPPER_D0D1 // For Cyrillic
|
||||
#define MAPPER_D0D1 // For Cyrillic
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
#define DISPLAY_CHARSET_ISO10646_5
|
||||
|
||||
#define WELCOME_MSG MACHINE_NAME " Готов."
|
||||
#define MSG_SD_INSERTED "Карта вставлена"
|
||||
|
@ -2,7 +2,7 @@
|
||||
* TEST
|
||||
*
|
||||
* LCD Menu Messages
|
||||
* Please note these are limited to 17 characters!
|
||||
* Se also documentation/LCDLanguageFont.md
|
||||
*
|
||||
*/
|
||||
#ifndef LANGUAGE_TEST_H
|
||||
@ -10,12 +10,12 @@
|
||||
|
||||
// Select ONE of the following Mappers.
|
||||
// They decide what to do with a symbol in the area of [0x80:0xFF]. They take a symbol of this language file and make them point
|
||||
// into an array with 128 cells, where they find the place of the symbol in the font in use.
|
||||
// into an array with 128 cells, where they'll find the place of the symbol of the font in use.
|
||||
//
|
||||
// a.)For ASCII coded Language_xx.h files like (en) there are no occurrences of symbols above 0x7F so no mapper is needed.
|
||||
// If such a symbol appers it is mapped directly into the font. This is the case for the language files we used until now, with all the STR_XX or
|
||||
// If such a symbol appears it is mapped directly into the font. This is the case for the language files we used until now, with all the STR_XX or
|
||||
// "\xxx" symbols. All Symbols are only one byte long.
|
||||
// b.) For Unicoded Language_xx.h files (currently ru and de) the non ASCII [0x00-0x7F] symbols are represented by more then one byte.
|
||||
// b.) For Unicoded Language_xx.h files (currently ru, de and kana_utf8 ) the non ASCII [0x00-0x7F] symbols are represented by more then one byte.
|
||||
// In the case of two bytes the first is pointing to a 'codepage' and the second to a place in the codepage. These codepages contain 64 symbols.
|
||||
// So two of them can be mapped. For most of the European languages the necessary symbols are contained in the pages C2 and C3. Cyrillic uses D0
|
||||
// and D1.
|
||||
@ -25,14 +25,22 @@
|
||||
// impossible to have a close to direct mapping but will need giant conversion tables and fonts (we don't want to have in a embedded system).
|
||||
// d.) So for Kanji we use a very special and selected subset of symbols and the direct mapping like in a).
|
||||
|
||||
#define MAPPER_NON // For direct asci codes ( until now all languages except ru, de, ... )
|
||||
#define MAPPER_NON // For direct asci codes ( until now all languages except ru, de, fi, kana_utf8, ... )
|
||||
//#define MAPPER_C2C3 // For most European languages when language file is in utf8
|
||||
//#define MAPPER_D0D1 // For Cyrillic
|
||||
////#define MAPPER_D0D1_MOD // For Cyrillic on HD44780_CYRILIC (will save 32 byte in the mapper but adds some more decisions)
|
||||
//#define MAPPER_E382E383 // For Katakana
|
||||
|
||||
// Define SIMULATE_ROMFONT to see what is seen on the character based display defined in Configuration.h
|
||||
//#define SIMULATE_ROMFONT
|
||||
|
||||
// next 4 lines select variants in this file only
|
||||
// Select the better font for full graphic displays.
|
||||
//#define DISPLAY_CHARSET_ISO10646_1
|
||||
//#define DISPLAY_CHARSET_ISO10646_5
|
||||
//#define DISPLAY_CHARSET_ISO10646_KANA
|
||||
//#define DISPLAY_CHARSET_KANJI
|
||||
|
||||
|
||||
// next 5 lines select variants in this file only
|
||||
#define DISPLAYTEST
|
||||
//#define WEST
|
||||
//#define CYRIL
|
||||
@ -96,8 +104,8 @@
|
||||
#define WELCOME_MSG "Language TEST"
|
||||
|
||||
#define MSG_WATCH "Display test"
|
||||
#define MSG_PREPARE STRG_OKTAL_c
|
||||
#define MSG_CONTROL STRG_OKTAL_d
|
||||
#define MSG_PREPARE STRG_OKTAL_b
|
||||
#define MSG_CONTROL STRG_OKTAL_c
|
||||
#endif
|
||||
|
||||
#ifdef WEST
|
||||
|
Binary file not shown.
@ -9,14 +9,18 @@
|
||||
#define HARDWAERE_CHAR_OUT lcd.write
|
||||
#endif
|
||||
|
||||
#if !(defined( DISPLAY_CHARSET_HD44780_JAPAN ) || defined( DISPLAY_CHARSET_HD44780_WESTERN ) || defined( DISPLAY_CHARSET_HD44780_CYRILIC ))
|
||||
#define DISPLAY_CHARSET_HD44780_JAPAN
|
||||
#endif
|
||||
|
||||
#ifndef DOGLCD
|
||||
#ifdef DISPLAY_CHARSET_KANJI
|
||||
#error("Kanji does not work on character based displays!");
|
||||
#elif defined( DISPLAY_CHARSET_HD44780_JAPAN )
|
||||
#ifndef SIMULATE_ROMFONT
|
||||
#if defined( DISPLAY_CHARSET_ISO10646_1 ) && defined( DOGLCD )
|
||||
#define MAPPER_ONE_TO_ONE
|
||||
#elif defined( DISPLAY_CHARSET_ISO10646_5 ) && defined( DOGLCD )
|
||||
#define MAPPER_ONE_TO_ONE
|
||||
#elif defined( DISPLAY_CHARSET_ISO10646_KANA ) && defined( DOGLCD )
|
||||
#define MAPPER_ONE_TO_ONE
|
||||
#elif defined( DISPLAY_CHARSET_KANJI ) && defined( DOGLCD )
|
||||
#define MAPPER_NON
|
||||
#endif
|
||||
#else // SIMULATE_ROMFONT
|
||||
#if defined( DISPLAY_CHARSET_HD44780_JAPAN )
|
||||
#if defined( MAPPER_C2C3 )
|
||||
const PROGMEM uint8_t utf_recode[] =
|
||||
{ // 0 1 2 3 4 5 6 7 8 9 a b c d e f This is fair for symbols
|
||||
@ -27,11 +31,11 @@
|
||||
0x3f,0x3f,0x3f,0x3f,0xe1,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, // c38
|
||||
// ä
|
||||
0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0xef,0x78,0x3f,0x3f,0x3f,0x3f,0xf5,0x3f,0x3f,0xe2, // c39 missing characters display as '?'
|
||||
// ö x ü ä
|
||||
// ö x ü ß
|
||||
0x3f,0x3f,0x3f,0x3f,0xe1,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f, // c3a
|
||||
// ä
|
||||
0x3f,0xee,0x3f,0x3f,0x3f,0x3f,0xef,0xed,0x3f,0x3f,0x3f,0x3f,0xf5,0x3f,0x3f,0x3f // c3b
|
||||
// n ö ü
|
||||
0x3f,0xee,0x3f,0x3f,0x3f,0x3f,0xef,0xfd,0x3f,0x3f,0x3f,0x3f,0xf5,0x3f,0x3f,0x3f // c3b
|
||||
// n ö ÷ ü
|
||||
};
|
||||
#elif defined( MAPPER_E382E383 )
|
||||
const PROGMEM uint8_t utf_recode[] =
|
||||
@ -115,14 +119,8 @@
|
||||
#elif defined( MAPPER_E382E383 )
|
||||
#error( "Katakana on a cyrillic display makes no sense. There are no matching symbols." );
|
||||
#endif
|
||||
#endif
|
||||
#else //DOGLCD
|
||||
#if defined( DISPLAY_CHARSET_KANJI )
|
||||
#define MAPPER_NON
|
||||
#else
|
||||
#define MAPPER_ONE_TO_ONE
|
||||
#endif
|
||||
#endif //DOGLCD
|
||||
#endif // DISPLAY_CHARSET_HD44780_CYRILIC
|
||||
#endif // SIMULATE_ROMFONT
|
||||
|
||||
#if defined( MAPPER_NON )
|
||||
char charset_mapper(char c){
|
||||
@ -193,20 +191,18 @@
|
||||
uint8_t utf_hi_char; // UTF-8 high part
|
||||
bool seen_d5 = false;
|
||||
char charset_mapper(char c){
|
||||
// it is a Russian alphabet translation
|
||||
// except 0401 --> 0xa2 = Ё, 0451 --> 0xb5 = ё
|
||||
uint8_t d = c;
|
||||
if ( d >= 0x80 ) { // UTF-8 handling
|
||||
if ((d >= 0xd0) && (!seen_d5)) {
|
||||
utf_hi_char = d - 0xd0;
|
||||
if ( d >= 0x80u ) { // UTF-8 handling
|
||||
if ((d >= 0xd0u) && (!seen_d5)) {
|
||||
utf_hi_char = d - 0xd0u;
|
||||
seen_d5 = true;
|
||||
return 0;
|
||||
} else if (seen_d5) {
|
||||
d &= 0x3f;
|
||||
d &= 0x3fu;
|
||||
#ifndef MAPPER_ONE_TO_ONE
|
||||
HARDWAERE_CHAR_OUT( (char) pgm_read_byte_near( utf_recode + d + ( utf_hi_char << 6 ) - 0x20) );
|
||||
#else
|
||||
HARDWAERE_CHAR_OUT( (char) (0x80 + ( utf_hi_char << 6 ) + d) ) ;
|
||||
HARDWAERE_CHAR_OUT( (char) (0xa0u + ( utf_hi_char << 6 ) + d) ) ;
|
||||
#endif
|
||||
} else {
|
||||
HARDWAERE_CHAR_OUT('?');
|
||||
|
Reference in New Issue
Block a user