diff --git a/radio/src/fonts/sqt5/font_da_04x06.png b/radio/src/fonts/sqt5/font_da_04x06.png new file mode 100644 index 000000000..eb7597654 Binary files /dev/null and b/radio/src/fonts/sqt5/font_da_04x06.png differ diff --git a/radio/src/fonts/sqt5/font_da_05x07.png b/radio/src/fonts/sqt5/font_da_05x07.png new file mode 100644 index 000000000..f7ace6225 Binary files /dev/null and b/radio/src/fonts/sqt5/font_da_05x07.png differ diff --git a/radio/src/fonts/sqt5/font_da_08x10.png b/radio/src/fonts/sqt5/font_da_08x10.png new file mode 100644 index 000000000..1edd0316e Binary files /dev/null and b/radio/src/fonts/sqt5/font_da_08x10.png differ diff --git a/radio/src/fonts/sqt5/font_da_10x14.png b/radio/src/fonts/sqt5/font_da_10x14.png new file mode 100644 index 000000000..a5de923bd Binary files /dev/null and b/radio/src/fonts/sqt5/font_da_10x14.png differ diff --git a/radio/src/fonts/std/font_da_04x06.png b/radio/src/fonts/std/font_da_04x06.png new file mode 100644 index 000000000..eb7597654 Binary files /dev/null and b/radio/src/fonts/std/font_da_04x06.png differ diff --git a/radio/src/fonts/std/font_da_05x07.png b/radio/src/fonts/std/font_da_05x07.png new file mode 100644 index 000000000..f7ace6225 Binary files /dev/null and b/radio/src/fonts/std/font_da_05x07.png differ diff --git a/radio/src/fonts/std/font_da_08x10.png b/radio/src/fonts/std/font_da_08x10.png new file mode 100644 index 000000000..1edd0316e Binary files /dev/null and b/radio/src/fonts/std/font_da_08x10.png differ diff --git a/radio/src/fonts/std/font_da_10x14.png b/radio/src/fonts/std/font_da_10x14.png new file mode 100644 index 000000000..a5de923bd Binary files /dev/null and b/radio/src/fonts/std/font_da_10x14.png differ diff --git a/radio/src/gui/common/stdlcd/fonts.cpp b/radio/src/gui/common/stdlcd/fonts.cpp index 42f71005c..b7e9a8da1 100644 --- a/radio/src/gui/common/stdlcd/fonts.cpp +++ b/radio/src/gui/common/stdlcd/fonts.cpp @@ -27,7 +27,7 @@ const unsigned char font_5x7[] = { #if defined(TRANSLATIONS_DE) #include "font_de_05x07.lbm" #elif defined(TRANSLATIONS_DA) -#include "font_se_05x07.lbm" +#include "font_da_05x07.lbm" #elif defined(TRANSLATIONS_CZ) #include "font_cz_05x07.lbm" #elif defined(TRANSLATIONS_ES) @@ -57,7 +57,7 @@ const unsigned char font_10x14[] = { #if defined(TRANSLATIONS_DE) #include "font_de_10x14.lbm" #elif defined(TRANSLATIONS_DA) - #include "font_se_10x14.lbm" + #include "font_da_10x14.lbm" #elif defined(TRANSLATIONS_CZ) #include "font_cz_10x14.lbm" #elif defined(TRANSLATIONS_ES) @@ -86,7 +86,7 @@ const unsigned char font_4x6[] = { #if defined(TRANSLATIONS_DE) #include "font_de_04x06.lbm" #elif defined(TRANSLATIONS_DA) -#include "font_se_04x06.lbm" +#include "font_da_04x06.lbm" #elif defined(TRANSLATIONS_CZ) #include "font_cz_04x06.lbm" #elif defined(TRANSLATIONS_ES) @@ -111,7 +111,7 @@ const unsigned char font_8x10[] = { #if defined(TRANSLATIONS_DE) #include "font_de_08x10.lbm" #elif defined(TRANSLATIONS_DA) -#include "font_cz_08x10.lbm" +#include "font_da_08x10.lbm" #elif defined(TRANSLATIONS_CZ) #include "font_cz_08x10.lbm" #elif defined(TRANSLATIONS_ES) diff --git a/radio/src/gui/common/stdlcd/utf8.cpp b/radio/src/gui/common/stdlcd/utf8.cpp index 39f37bb17..0fad3b600 100644 --- a/radio/src/gui/common/stdlcd/utf8.cpp +++ b/radio/src/gui/common/stdlcd/utf8.cpp @@ -2,9 +2,9 @@ * Copyright (C) EdgeTX * * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x + * opentx - https://github.com/opentx/opentx + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x * gruvin9x - http://code.google.com/p/gruvin9x * * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html @@ -27,6 +27,10 @@ static wchar_t _utf8_lut[] = { L'é', L'è', L'à', L'î', L'ç', }; +#elif defined(TRANSLATIONS_DA) +static wchar_t _utf8_lut[] = { + L'å', L'æ', L'ø', L'Å', L'Æ', L'Ø', +}; #elif defined(TRANSLATIONS_DE) static wchar_t _utf8_lut[] = { L'Ä', L'ä', L'Ö', L'ö', L'Ü', L'ü', L'ß', diff --git a/radio/src/translations/da.h b/radio/src/translations/da.h index 1f0647daf..12b6abb8d 100644 --- a/radio/src/translations/da.h +++ b/radio/src/translations/da.h @@ -2,9 +2,9 @@ * Copyright (C) EdgeTX * * Based on code named - * opentx - https://github.com/opentx/opentx - * th9x - http://code.google.com/p/th9x - * er9x - http://code.google.com/p/er9x + * opentx - https://github.com/opentx/opentx + * th9x - http://code.google.com/p/th9x + * er9x - http://code.google.com/p/er9x * gruvin9x - http://code.google.com/p/gruvin9x * * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html @@ -17,7 +17,6 @@ * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * */ // DK translations author: Henrik Thuren @@ -373,7 +372,7 @@ #define TR_ELEDIRECTION "HØJ retning" #define TR_AILDIRECTION "KRÆ retning" #define TR_COLDIRECTION "PIT retning" -#define TR_MODE "Tilstand" +#define TR_MODE "Tilst." #define TR_SUBTYPE INDENT "Subtype" #define TR_NOFREEEXPO "Ingen fri expo!" #define TR_NOFREEMIXER "Ingen fri mix!" diff --git a/radio/util/font2png.py b/radio/util/font2png.py new file mode 100644 index 000000000..ed1ec2bb0 --- /dev/null +++ b/radio/util/font2png.py @@ -0,0 +1,103 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import sys, os +import glob + +from PIL import Image, ImageDraw, ImageFont + +chars_en = u""" !"#$%&'()*+,-./0123456789:;<=>?°ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz~|≥""" +chars_fr = u"""éèàîç""" +chars_da = u"""åæøÅÆØ""" +chars_de = u"""ÄäÖöÜüß""" +chars_cz = u"""ěščřžýáíéňóůúďťĚŠČŘŽÝÁÍÉŇÓÚŮĎŤ""" +chars_es = u"""ÑñÁáÉéÍíÓóÚú""" +chars_fi = u"""åäöÅÄÖ""" +chars_it = u"""àù""" +chars_pl = u"""ąćęłńóśżźĄĆĘŁŃÓŚŻŹ""" +chars_pt = u"""ÁáÂâÃãÀàÇçÉéÊêÍíÓóÔôÕõÚú""" + +COUNT_EXTRA_CHARS = 21 + +chars_extra = u"".join([chr(1+i) for i in range(COUNT_EXTRA_CHARS)]) +chars = chars_en + chars_extra + chars_fr + chars_da + chars_de + chars_cz + chars_es + chars_fi + chars_it + chars_pl + chars_pt + + +def createFontBitmap(filename, fontname, fontsize, fontoffset, foreground, background, coordsfile=True): + + + coords = [] + font_filename = 'fonts/' + fontname + '.ttf' + + print("Font filename: %s" % font_filename) + font = ImageFont.truetype(font_filename, fontsize) + + extraImage = None + extraFilename = 'fonts/extra_%dpx.png' % fontsize + + try: + extraImage = Image.open(extraFilename) + extraImage = extraImage.convert('RGB'); + + except IOError: + print("Missing extra symbol filename %s" % extraFilename) + + def getCharWidth(c): + if c in chars_extra: + if extraImage: + # Extra characters 16px + #if fontsize == 16: + if ord(c) <= 9: + return 13 + else: + return 15 + else: + return 0 + elif c == " ": + return 4 + else: + w, h = font.getsize(c) + return w + 1 + + def getFontWidth(): + width = 0 + for c in chars: + width += getCharWidth(c) + return width + + width = getFontWidth() + image = Image.new('RGB', (width, fontsize + 4), background) + draw = ImageDraw.Draw(image) + + width = 0 + for c in chars: + coords.append(width) + + if c in chars_extra: + if extraImage and c == chars_extra[0]: + image.paste(extraImage.copy(),(width,1)) + elif c == " ": + pass + elif c == "j" and fontsize == 32: + w, h = font.getsize(c) + draw.text((width + 2, fontoffset), c, fill=foreground, font=font) + elif c == "j" and fontsize == 64: + aw, h = font.getsize(c) + draw.text((width + 3, fontoffset), c, fill=foreground, font=font) + else: + w, h = font.getsize(c) + draw.text((width + 1, fontoffset), c, fill=foreground, font=font) + + width += getCharWidth(c) + + coords.append(width) + + image.save(filename + ".png") + if coordsfile: + with open(filename + ".specs", "w") as f: + f.write(",".join(str(tmp) for tmp in coords)) + + +# Main +if __name__ == "__main__": + createFontBitmap(sys.argv[4], sys.argv[1], int(sys.argv[2]), int(sys.argv[3]), (0,0,0), (255,255,255)) diff --git a/tools/charset.py b/tools/charset.py index 411ba24cb..6c029d6e6 100644 --- a/tools/charset.py +++ b/tools/charset.py @@ -14,7 +14,7 @@ def is_special_char(c): def get_special_chars(): result = {} - for lang in["en", "fr", "de", "cz", "nl", "es", "fi", "it", "pl", "pt", "se", "cn", "tw"]: + for lang in["en", "fr", "da", "de", "cz", "nl", "es", "fi", "it", "pl", "pt", "se", "cn", "tw"]: charset = set() tools_path = os.path.dirname(os.path.realpath(__file__)) with open(os.path.join(tools_path, "../radio/src/translations/%s.h" % lang), encoding='utf-8') as f: @@ -58,6 +58,7 @@ def get_chars_encoding(subset): special_chars_BW = { "en": "", "fr": "éèàîç", + "da": "åæøÅÆØ", "de": "ÄäÖöÜüß", "cz": "áčéěíóřšúůýÁÍŘÝžÉ", "nl": "",