1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-16 04:45:17 +03:00

fix chars continued

This commit is contained in:
3djc 2020-12-18 20:37:11 +01:00
parent acdc2343dd
commit 7d2178cb5c
11 changed files with 34 additions and 43 deletions

View file

@ -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)

View file

@ -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;
// 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;
}

View file

@ -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

View file

@ -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_

View file

@ -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"

View file

@ -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}

View file

@ -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 "反向"

View file

@ -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

View file

@ -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)

View file

@ -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)

View file

@ -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()