diff --git a/radio/src/fonts/CMakeLists.txt b/radio/src/fonts/CMakeLists.txt index e0aa64384..9de1b6acc 100644 --- a/radio/src/fonts/CMakeLists.txt +++ b/radio/src/fonts/CMakeLists.txt @@ -9,13 +9,7 @@ set(CJK_FONT_BOLD "Noto/NotoSansCJKsc-Bold") #set(FONT "Ubuntu/Ubuntu-Regular") #set(FONT_BOLD "Ubuntu/Ubuntu-Bold") -if(TRANSLATIONS STREQUAL CN) - set(subset all) -elseif(TRANSLATIONS STREQUAL TW) - set(subset all) -else() - string(TOLOWER ${TRANSLATIONS} subset) -endif() +string(TOLOWER ${TRANSLATIONS} subset) add_truetype_font_target(9 9 ${subset} none) add_truetype_font_target(13 13 ${subset} none) diff --git a/radio/src/gui/colorlcd/lcd.cpp b/radio/src/gui/colorlcd/lcd.cpp index 94b86b23b..f70683f5b 100644 --- a/radio/src/gui/colorlcd/lcd.cpp +++ b/radio/src/gui/colorlcd/lcd.cpp @@ -29,10 +29,7 @@ uint8_t getMappedChar(uint8_t c) { uint8_t result; - if (c < 0x80) - result = c - 0x20; - else - result = c - 0x80 + 32 + 26 + 6 + 26 + 5; // 96; + result = c - 0x20; // TRACE("getMappedChar '%c' (0x%x) = %d", c, c, result); @@ -61,7 +58,7 @@ int getTextWidth(const char * s, int len, LcdFlags flags) int result = 0; for (int i = 0; len == 0 || i < len; ++i) { - unsigned int c = uint8_t(*s); + unsigned c = uint8_t(*s); if (!c) { break; } diff --git a/radio/src/targets/horus/libopenui_config.h b/radio/src/targets/horus/libopenui_config.h index 2182517be..3ea472efe 100644 --- a/radio/src/targets/horus/libopenui_config.h +++ b/radio/src/targets/horus/libopenui_config.h @@ -169,7 +169,7 @@ constexpr LcdFlags MENU_FONT = FONT(STD); constexpr LcdFlags TABLE_HEADER_FONT = FONT(STD); constexpr LcdFlags TABLE_BODY_FONT = FONT(STD); -constexpr int CJK_FIRST_LETTER_INDEX = 189; +constexpr int CJK_FIRST_LETTER_INDEX = 128 - 32 + 21; constexpr coord_t CHAR_SPACING = 0; #define ROTARY_ENCODER_SPEED() rotencSpeed diff --git a/radio/src/targets/nv14/libopenui_config.h b/radio/src/targets/nv14/libopenui_config.h index a19246e18..9bb6d1c9d 100644 --- a/radio/src/targets/nv14/libopenui_config.h +++ b/radio/src/targets/nv14/libopenui_config.h @@ -173,7 +173,7 @@ constexpr LcdFlags MENU_FONT = FONT(STD); constexpr LcdFlags TABLE_HEADER_FONT = FONT(STD); constexpr LcdFlags TABLE_BODY_FONT = FONT(STD); -constexpr int CJK_FIRST_LETTER_INDEX = 168; +constexpr int CJK_FIRST_LETTER_INDEX = 128 - 32 + 21; constexpr coord_t CHAR_SPACING = 0; #endif // _LIBOPENUI_CONFIG_H_ diff --git a/radio/src/translations.h b/radio/src/translations.h index ed68c407b..978cddef1 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -55,6 +55,8 @@ #define LEN_SPECIAL_CHARS 0 #elif defined(TRANSLATIONS_CN) #include "translations/cn.h" +#elif defined(TRANSLATIONS_TW) +#include "translations/tw.h" #define LEN_SPECIAL_CHARS 0 #else #include "translations/en.h" diff --git a/radio/src/translations/CMakeLists.txt b/radio/src/translations/CMakeLists.txt index 5d7155a38..59d048a1c 100644 --- a/radio/src/translations/CMakeLists.txt +++ b/radio/src/translations/CMakeLists.txt @@ -4,9 +4,6 @@ foreach(translation ${translations}) get_filename_component(language ${translation} NAME_WE) get_filename_component(path ${translation} DIRECTORY) set(target ${language}.h) - if(PCB STREQUAL X12S OR PCB STREQUAL X10 OR PCB STREQUAL NV14) - set(language all) - endif() if(PYTHONINTERP_FOUND) add_custom_command( OUTPUT ${target} diff --git a/radio/src/translations/cn.h.txt b/radio/src/translations/cn.h.txt index dd95ca12f..9dd8ccffc 100644 --- a/radio/src/translations/cn.h.txt +++ b/radio/src/translations/cn.h.txt @@ -1129,19 +1129,19 @@ #define TR_BAR1_COLOR "主条形图颜色" #define TR_TEXT_COLOR "文本颜色" #define TR_TEXT_VIEWER "文本视图" -#define TR_MENU_INPUTS "\214输入" -#define TR_MENU_LUA "\222LUA脚本" -#define TR_MENU_STICKS "\207摇杆" -#define TR_MENU_POTS "\210旋钮" -#define TR_MENU_MAX "\215固定值MAX" -#define TR_MENU_HELI "\216斜盘混控CYC" -#define TR_MENU_TRIMS "\213微调" -#define TR_MENU_SWITCHES "\212开关" -#define TR_MENU_LOGICAL_SWITCHES "\212逻辑开关" -#define TR_MENU_TRAINER "\217教练" -#define TR_MENU_CHANNELS "\220通道" -#define TR_MENU_GVARS "\211全局变量" -#define TR_MENU_TELEMETRY "\221回传" +#define TR_MENU_INPUTS STR_CHAR_INPUT "输入" +#define TR_MENU_LUA STR_CHAR_LUA "LUA脚本" +#define TR_MENU_STICKS STR_CHAR_STICK "摇杆" +#define TR_MENU_POTS STR_CHAR_POT "旋钮" +#define TR_MENU_MAX STR_CHAR_FUNCTION "固定值MAX" +#define TR_MENU_HELI STR_CHAR_CYC "斜盘混控CYC" +#define TR_MENU_TRIMS STR_CHAR_TRIM "微调" +#define TR_MENU_SWITCHES STR_CHAR_SWITCH "开关" +#define TR_MENU_LOGICAL_SWITCHES STR_CHAR_SWITCH "逻辑开关" +#define TR_MENU_TRAINER STR_CHAR_TRAINER "教练" +#define TR_MENU_CHANNELS STR_CHAR_CHANNEL "通道" +#define TR_MENU_GVARS STR_CHAR_SLIDER "全局变量" +#define TR_MENU_TELEMETRY STR_CHAR_TELEMETRY "回传" #define TR_MENU_DISPLAY "显示" #define TR_MENU_OTHER "其它" #define TR_MENU_INVERT "反向" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 038730658..a1c3098ef 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -388,7 +388,7 @@ #define TR_TEXT_SIZE "Standard""Tiny\0 ""Small\0 ""Mid\0 ""Double\0 " #define LEN_SUBTRIMMODES "\017" -#define TR_SUBTRIMMODES STR_CHAR_DELTA" (center only)""= (symetrical) " +#define TR_SUBTRIMMODES STR_CHAR_DELTA " (center only)""= (symetrical) " // ZERO TERMINATED STRINGS diff --git a/tools/build-font-bitmap.py b/tools/build-font-bitmap.py index 6351a97ee..e4954376b 100755 --- a/tools/build-font-bitmap.py +++ b/tools/build-font-bitmap.py @@ -9,8 +9,9 @@ from charset import get_chars, special_chars, extra_chars, standard_chars class FontBitmap: - def __init__(self, chars, font_size, font_name, cjk_font_name, foreground, background): - self.chars = chars + def __init__(self, language, font_size, font_name, cjk_font_name, foreground, background): + self.language = language + self.chars = get_chars(language) self.font_size = font_size self.foreground = foreground self.background = background @@ -95,11 +96,9 @@ class FontBitmap: for c in self.chars: if c == " ": w = 4 - elif c in special_chars["cn"]: - w = self.draw_char(image, width, c, self.cjk_font, -3) elif c in extra_chars: if self.extra_bitmap: - for i in range(128 - 32 - len(standard_chars) - 1): + for i in range(128 - 32 - len(standard_chars)): coords.append(width) image.paste(self.extra_bitmap.copy(), (width, 0)) for coord in [14, 14, 12, 12, 13, 13, 13, 13, 13] + [15] * 12: @@ -107,6 +106,8 @@ class FontBitmap: width += coord self.extra_bitmap = None continue + elif c in special_chars[self.language]: + w = self.draw_char(image, width, c, self.cjk_font, -3) else: w = self.draw_char(image, width, c, self.font) @@ -135,13 +136,13 @@ def main(): parser = argparse.ArgumentParser(description="Builder for OpenTX font files") parser.add_argument('--output', help="Output file name") - parser.add_argument('--subset', help="Subset", default="all") + parser.add_argument('--subset', help="Subset") parser.add_argument('--size', type=int, help="Font size") parser.add_argument('--font', help="Font name") parser.add_argument('--cjk-font', help="CJK font name") args = parser.parse_args() - font = FontBitmap(get_chars(args.subset), args.size, args.font, args.cjk_font, (0, 0, 0), (255, 255, 255)) + font = FontBitmap(args.subset, args.size, args.font, args.cjk_font, (0, 0, 0), (255, 255, 255)) font.generate(args.output) diff --git a/tools/charset.py b/tools/charset.py index 8169da9b3..66576c628 100644 --- a/tools/charset.py +++ b/tools/charset.py @@ -54,7 +54,7 @@ subset_lowercase = { def get_chars(subset): result = standard_chars + extra_chars - if subset == "all": + if False: # subset == "all": for key, chars in special_chars.items(): result += "".join([char for char in chars if char not in result]) else: @@ -65,11 +65,11 @@ def get_chars(subset): def get_chars_encoding(subset): result = {} - if subset == "all": + if subset in ("cn", "tw"): chars = get_chars(subset) for char in chars: - if char in special_chars["cn"]: - index = special_chars["cn"].index(char) + 1 + if char in special_chars[subset]: + index = special_chars[subset].index(char) + 1 if index >= 0x100: index += 1 result[char] = "\\%03o\\%03o" % (0xFE + ((index >> 8) & 0x01), index & 0xFF) diff --git a/tools/encode-translation.py b/tools/encode-translation.py index 10282afa3..c4b237a63 100755 --- a/tools/encode-translation.py +++ b/tools/encode-translation.py @@ -15,7 +15,7 @@ def main(): parser.add_argument("--reverse", help="Reversed char conversion (from number to char)", action="store_true") args = parser.parse_args() - if args.language != "all" and args.language not in special_chars: + if args.language not in special_chars: parser.error(args.language + ' is not a supported language. Try one of the supported ones: %s' % list(special_chars.keys())) sys.exit()