diff --git a/CMakeLists.txt b/CMakeLists.txt index 158773fc7..9f241e272 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -139,6 +139,7 @@ option(SHOW_OPEN_ASSETS_MENU_ENTRY "Show option to open built-in assets director option(CONSOLE_SUBSYSTEM "Build Furnace with Console subsystem on Windows" OFF) if (APPLE) option(FORCE_APPLE_BIN "Force enable binary installation to /bin" OFF) + option(MAKE_BUNDLE "Make a bundle" OFF) else() # not Apple - not needed set(FORCE_APPLE_BIN OFF) diff --git a/po/hy.po b/po/hy.po index 3b740b1ce..4558b5cba 100644 --- a/po/hy.po +++ b/po/hy.po @@ -14111,7 +14111,7 @@ msgstr "" #: src/gui/gui.cpp:7058 msgid "LocaleSettings: ccjk" -msgstr "" +msgstr "LocaleSettings: ccjk 0530-058F" #: src/gui/gui.cpp:7240 msgid "NES DPCM data" diff --git a/po/locale/es/LC_MESSAGES/furnace.mo b/po/locale/es/LC_MESSAGES/furnace.mo index b52b8e9cc..54f27797a 100644 Binary files a/po/locale/es/LC_MESSAGES/furnace.mo and b/po/locale/es/LC_MESSAGES/furnace.mo differ diff --git a/po/locale/hy/LC_MESSAGES/furnace.mo b/po/locale/hy/LC_MESSAGES/furnace.mo index ed83025b2..f9cdd125f 100644 Binary files a/po/locale/hy/LC_MESSAGES/furnace.mo and b/po/locale/hy/LC_MESSAGES/furnace.mo differ diff --git a/po/locale/id/LC_MESSAGES/furnace.mo b/po/locale/id/LC_MESSAGES/furnace.mo index 3d6c7cc09..30e934a92 100644 Binary files a/po/locale/id/LC_MESSAGES/furnace.mo and b/po/locale/id/LC_MESSAGES/furnace.mo differ diff --git a/po/locale/pl/LC_MESSAGES/furnace.mo b/po/locale/pl/LC_MESSAGES/furnace.mo index 3a5922441..a9f98677f 100644 Binary files a/po/locale/pl/LC_MESSAGES/furnace.mo and b/po/locale/pl/LC_MESSAGES/furnace.mo differ diff --git a/po/locale/ru/LC_MESSAGES/furnace.mo b/po/locale/ru/LC_MESSAGES/furnace.mo index 2ae46d1ed..7828c3fed 100644 Binary files a/po/locale/ru/LC_MESSAGES/furnace.mo and b/po/locale/ru/LC_MESSAGES/furnace.mo differ diff --git a/po/locale/sv/LC_MESSAGES/furnace.mo b/po/locale/sv/LC_MESSAGES/furnace.mo index 316a80e1a..cefd38a03 100644 Binary files a/po/locale/sv/LC_MESSAGES/furnace.mo and b/po/locale/sv/LC_MESSAGES/furnace.mo differ diff --git a/po/locale/th/LC_MESSAGES/furnace.mo b/po/locale/th/LC_MESSAGES/furnace.mo index 0fe7ee229..ab7ae006d 100644 Binary files a/po/locale/th/LC_MESSAGES/furnace.mo and b/po/locale/th/LC_MESSAGES/furnace.mo differ diff --git a/po/locale/tr/LC_MESSAGES/furnace.mo b/po/locale/tr/LC_MESSAGES/furnace.mo index 344091c55..4023c1675 100644 Binary files a/po/locale/tr/LC_MESSAGES/furnace.mo and b/po/locale/tr/LC_MESSAGES/furnace.mo differ diff --git a/po/locale/uk/LC_MESSAGES/furnace.mo b/po/locale/uk/LC_MESSAGES/furnace.mo index bc2816ddd..ace2cb473 100644 Binary files a/po/locale/uk/LC_MESSAGES/furnace.mo and b/po/locale/uk/LC_MESSAGES/furnace.mo differ diff --git a/po/pl.po b/po/pl.po index 012e39a7b..1af7665b8 100644 --- a/po/pl.po +++ b/po/pl.po @@ -14750,7 +14750,7 @@ msgstr "Ukryj pasek zakładek###HideTabBar" #: src/gui/gui.cpp:7058 msgid "LocaleSettings: ccjk" -msgstr "" +msgstr "LocaleSettings: ccjk 0100-01FF" #: src/gui/gui.cpp:7240 msgid "NES DPCM data" diff --git a/po/ru.po b/po/ru.po index 66c283267..726b5c5fa 100644 --- a/po/ru.po +++ b/po/ru.po @@ -14702,7 +14702,7 @@ msgstr "Скрыть полосу с вкладками###HideTabBar" #: src/gui/gui.cpp:7058 msgid "LocaleSettings: ccjk" -msgstr "" +msgstr "LocaleSettings: ccjk 0400-04FF" #: src/gui/gui.cpp:7240 msgid "NES DPCM data" diff --git a/po/th.po b/po/th.po index 67b598455..775cfecf8 100644 --- a/po/th.po +++ b/po/th.po @@ -14118,7 +14118,7 @@ msgstr "" #: src/gui/gui.cpp:7058 msgid "LocaleSettings: ccjk" -msgstr "" +msgstr "LocaleSettings: ccjk 0E00-0E7F" #: src/gui/gui.cpp:7240 msgid "NES DPCM data" diff --git a/po/tr.po b/po/tr.po index 193d8bac4..00c3a640d 100644 --- a/po/tr.po +++ b/po/tr.po @@ -14107,7 +14107,7 @@ msgstr "" #: src/gui/gui.cpp:7058 msgid "LocaleSettings: ccjk" -msgstr "" +msgstr "LocaleSettings: ccjk 0100-01FF" #: src/gui/gui.cpp:7240 msgid "NES DPCM data" diff --git a/po/uk.po b/po/uk.po index 5ff27ae3e..820a9e2d3 100644 --- a/po/uk.po +++ b/po/uk.po @@ -14114,7 +14114,7 @@ msgstr "" #: src/gui/gui.cpp:7058 msgid "LocaleSettings: ccjk" -msgstr "" +msgstr "LocaleSettings: ccjk 0400-04FF" #: src/gui/gui.cpp:7240 msgid "NES DPCM data" diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index fc3daf3c4..07bd90d74 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -7081,10 +7081,19 @@ bool FurnaceGUI::init() { next=0; } } + if (next!=0) { + localeExtraRanges.push_back(next); + } localeExtraRanges.push_back(0); } } } + if (!localeExtraRanges.empty()) { + logV("locale extra ranges:"); + for (ImWchar i: localeExtraRanges) { + logV("%x",i); + } + } loadUserPresets(true); diff --git a/src/gui/gui.h b/src/gui/gui.h index b12793baa..009c480ab 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1689,6 +1689,7 @@ class FurnaceGUI { ImFont* bigFont; ImFont* headFont; ImWchar* fontRange; + ImWchar* fontRangeB; ImVec4 uiColors[GUI_COLOR_MAX]; ImVec4 volColors[128]; ImU32 pitchGrad[256]; diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 23ca0fbe1..770d60b21 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -6838,17 +6838,35 @@ void FurnaceGUI::applyUISettings(bool updateFonts) { // ไทย static const ImWchar bigFontRange[]={0x20,0xFF,0x39b,0x39b,0x10d,0x10d,0x420,0x420,0x423,0x423,0x430,0x430,0x438,0x438,0x439,0x439,0x43a,0x43a,0x43d,0x43d,0x440,0x440,0x441,0x441,0x443,0x443,0x44c,0x44c,0x457,0x457,0x540,0x540,0x561,0x561,0x565,0x565,0x575,0x575,0x576,0x576,0x580,0x580,0xe17,0xe17,0xe22,0xe22,0xe44,0xe44,0x65e5,0x65e5,0x672c,0x672c,0x8a9e,0x8a9e,0xad6d,0xad6d,0xc5b4,0xc5b4,0xd55c,0xd55c,0}; - if ((bigFont=addFontZlib(font_plexSans_compressed_data,font_plexSans_compressed_size,MAX(1,40*dpiScale),&fontConfB,bigFontRange))==NULL) { + ImFontGlyphRangesBuilder bigFontRangeB; + ImVector outRangeB; + + bigFontRangeB.AddRanges(bigFontRange); + if (!localeExtraRanges.empty()) { + bigFontRangeB.AddRanges(localeExtraRanges.data()); + } + // I'm terribly sorry + bigFontRangeB.UsedChars[0x80>>5]=0; + + bigFontRangeB.BuildRanges(&outRangeB); + if (fontRangeB!=NULL) delete[] fontRangeB; + fontRangeB=new ImWchar[outRangeB.size()]; + index=0; + for (ImWchar& i: outRangeB) { + fontRangeB[index++]=i; + } + + if ((bigFont=addFontZlib(font_plexSans_compressed_data,font_plexSans_compressed_size,MAX(1,40*dpiScale),&fontConfB,fontRangeB))==NULL) { logE("could not load big UI font!"); } fontConfB.MergeMode=true; - if ((bigFont=addFontZlib(font_plexSansJP_compressed_data,font_plexSansJP_compressed_size,MAX(1,40*dpiScale),&fontConfB,bigFontRange))==NULL) { + if ((bigFont=addFontZlib(font_plexSansJP_compressed_data,font_plexSansJP_compressed_size,MAX(1,40*dpiScale),&fontConfB,fontRangeB))==NULL) { logE("could not load big UI font (japanese)!"); } - if ((bigFont=addFontZlib(font_plexSansKR_compressed_data,font_plexSansKR_compressed_size,MAX(1,40*dpiScale),&fontConfB,bigFontRange))==NULL) { + if ((bigFont=addFontZlib(font_plexSansKR_compressed_data,font_plexSansKR_compressed_size,MAX(1,40*dpiScale),&fontConfB,fontRangeB))==NULL) { logE("could not load big UI font (korean)!"); } - if ((bigFont=addFontZlib(font_unifont_compressed_data,font_unifont_compressed_size,MAX(1,40*dpiScale),&fontConfB,bigFontRange))==NULL) { + if ((bigFont=addFontZlib(font_unifont_compressed_data,font_unifont_compressed_size,MAX(1,40*dpiScale),&fontConfB,fontRangeB))==NULL) { logE("could not load big UI font (fallback)!"); }