diff --git a/CHANGELOG.md b/CHANGELOG.md
index faccac5..9ab9b7f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,12 +19,14 @@ PinyaColada, Rémi Verschelde (akien-mga), dasimonde
- `~` is now used as a random brush prefix instead of `%`. ([#362](https://github.com/Orama-Interactive/Pixelorama/pull/362))
- The default path of the dialogs for opening and saving is now the user's desktop folder.
- When there are errors in opening and saving files, the errors appear in the form of a popup dialog, instead of a notification or an OS alert.
+- The CJK font (for Chinese & Korean) was changed to DroidSansFallback from NotoSansCJKtc. This results in a much smaller exported `.pck` (over 10MB less)
### Fixed
- Made .pxo saving safer. In case of a crash while parsing JSON data, the old .pxo file, if it exists, will no longer be overwritten and corrupted.
- Fixed issue where the user could grab, and could not let go of, the focus of guides even when they were invisible.
- Fixed issues where fully transparent color could not be picked. One of these cases was ([#364](https://github.com/Orama-Interactive/Pixelorama/issues/364)).
- Fixed "Export" option in the File menu not working properly when switching between projects, and not remembering the directory path and file name, if the project is an imported image and the tabs were switched.
+- Fixed Chinese and Korean characters not displaying properly in the Splash dialog and the About dialog.
- Fixed crash when importing an incorrectly formatted GIMP Color Palette file. ([#363](https://github.com/Orama-Interactive/Pixelorama/issues/363))
diff --git a/assets/fonts/CJK/NotoSansCJKtc-Regular.tres b/assets/fonts/CJK/DroidSansFallback-Regular.tres
similarity index 59%
rename from assets/fonts/CJK/NotoSansCJKtc-Regular.tres
rename to assets/fonts/CJK/DroidSansFallback-Regular.tres
index 093d105..489da1e 100644
--- a/assets/fonts/CJK/NotoSansCJKtc-Regular.tres
+++ b/assets/fonts/CJK/DroidSansFallback-Regular.tres
@@ -1,6 +1,6 @@
[gd_resource type="DynamicFont" load_steps=2 format=2]
-[ext_resource path="res://assets/fonts/CJK/NotoSansCJKtc-Regular.otf" type="DynamicFontData" id=1]
+[ext_resource path="res://assets/fonts/CJK/DroidSansFallback.ttf" type="DynamicFontData" id=1]
[resource]
size = 12
diff --git a/assets/fonts/CJK/NotoSansCJKtc-Small.tres b/assets/fonts/CJK/DroidSansFallback-Small.tres
similarity index 59%
rename from assets/fonts/CJK/NotoSansCJKtc-Small.tres
rename to assets/fonts/CJK/DroidSansFallback-Small.tres
index 3c61928..308d1c3 100644
--- a/assets/fonts/CJK/NotoSansCJKtc-Small.tres
+++ b/assets/fonts/CJK/DroidSansFallback-Small.tres
@@ -1,6 +1,6 @@
[gd_resource type="DynamicFont" load_steps=2 format=2]
-[ext_resource path="res://assets/fonts/CJK/NotoSansCJKtc-Regular.otf" type="DynamicFontData" id=1]
+[ext_resource path="res://assets/fonts/CJK/DroidSansFallback.ttf" type="DynamicFontData" id=1]
[resource]
size = 10
diff --git a/assets/fonts/CJK/DroidSansFallback.ttf b/assets/fonts/CJK/DroidSansFallback.ttf
new file mode 100644
index 0000000..61460b1
Binary files /dev/null and b/assets/fonts/CJK/DroidSansFallback.ttf differ
diff --git a/assets/fonts/CJK/NotoSansCJKtc-Regular.otf b/assets/fonts/CJK/NotoSansCJKtc-Regular.otf
deleted file mode 100644
index 62ed47d..0000000
Binary files a/assets/fonts/CJK/NotoSansCJKtc-Regular.otf and /dev/null differ
diff --git a/src/Autoload/Global.gd b/src/Autoload/Global.gd
index a2b646c..b58a13c 100644
--- a/src/Autoload/Global.gd
+++ b/src/Autoload/Global.gd
@@ -503,6 +503,10 @@ Hold %s to make a line""") % [InputMap.get_action_list("left_eraser_tool")[0].as
(%s)""") % InputMap.get_action_list("go_to_last_frame")[0].as_text()
+func is_cjk(locale : String) -> bool:
+ return "zh" in locale or "ko" in locale
+
+
func _exit_tree() -> void:
config_cache.set_value("window", "screen", OS.current_screen)
config_cache.set_value("window", "maximized", OS.window_maximized || OS.window_fullscreen)
diff --git a/src/Preferences/HandleLanguages.gd b/src/Preferences/HandleLanguages.gd
index 26f5968..6a7e7f8 100644
--- a/src/Preferences/HandleLanguages.gd
+++ b/src/Preferences/HandleLanguages.gd
@@ -24,7 +24,8 @@ const languages_dict := {
}
var loaded_locales : Array
-onready var cjk_font = preload("res://assets/fonts/CJK/NotoSansCJKtc-Regular.tres")
+onready var latin_font = preload("res://assets/fonts/Roboto-Regular.tres")
+onready var cjk_font = preload("res://assets/fonts/CJK/DroidSansFallback-Regular.tres")
func _ready() -> void:
@@ -44,8 +45,10 @@ func _ready() -> void:
button.hint_tooltip = languages_dict[locale][1]
button.mouse_default_cursor_shape = Control.CURSOR_POINTING_HAND
button.group = button_group
- if is_cjk(locale):
+ if Global.is_cjk(locale):
button.add_font_override("font", cjk_font)
+ else:
+ button.add_font_override("font", latin_font)
add_child(button)
# Load language
@@ -60,10 +63,10 @@ func _ready() -> void:
else: # If the user doesn't have a language preference, set it to their OS' locale
TranslationServer.set_locale(OS.get_locale())
- if is_cjk(TranslationServer.get_locale()):
- Global.control.theme.default_font = preload("res://assets/fonts/CJK/NotoSansCJKtc-Regular.tres")
+ if Global.is_cjk(TranslationServer.get_locale()):
+ Global.control.theme.default_font = cjk_font
else:
- Global.control.theme.default_font = preload("res://assets/fonts/Roboto-Regular.tres")
+ Global.control.theme.default_font = latin_font
for child in get_children():
if child is Button:
@@ -78,10 +81,10 @@ func _on_Language_pressed(index : int) -> void:
else:
TranslationServer.set_locale(loaded_locales[index - 1])
- if is_cjk(TranslationServer.get_locale()):
- Global.control.theme.default_font = preload("res://assets/fonts/CJK/NotoSansCJKtc-Regular.tres")
+ if Global.is_cjk(TranslationServer.get_locale()):
+ Global.control.theme.default_font = cjk_font
else:
- Global.control.theme.default_font = preload("res://assets/fonts/Roboto-Regular.tres")
+ Global.control.theme.default_font = latin_font
Global.config_cache.set_value("preferences", "locale", TranslationServer.get_locale())
Global.config_cache.save("user://cache.ini")
@@ -90,7 +93,3 @@ func _on_Language_pressed(index : int) -> void:
Global.update_hint_tooltips()
Global.preferences_dialog._on_PreferencesDialog_popup_hide()
Global.preferences_dialog._on_PreferencesDialog_about_to_show(true)
-
-
-func is_cjk(locale : String) -> bool:
- return "zh" in locale or "ko" in locale
diff --git a/src/Preferences/PreferencesDialog.tscn b/src/Preferences/PreferencesDialog.tscn
index 521a327..07be935 100644
--- a/src/Preferences/PreferencesDialog.tscn
+++ b/src/Preferences/PreferencesDialog.tscn
@@ -51,7 +51,7 @@ size_flags_horizontal = 3
[node name="VBoxContainer" type="VBoxContainer" parent="HSplitContainer/ScrollContainer"]
margin_right = 498.0
-margin_bottom = 384.0
+margin_bottom = 24.0
size_flags_horizontal = 3
[node name="Startup" type="VBoxContainer" parent="HSplitContainer/ScrollContainer/VBoxContainer"]
diff --git a/src/UI/Dialogs/AboutDialog.gd b/src/UI/Dialogs/AboutDialog.gd
index 1e22b4d..b760f73 100644
--- a/src/UI/Dialogs/AboutDialog.gd
+++ b/src/UI/Dialogs/AboutDialog.gd
@@ -12,6 +12,14 @@ onready var contributors : Tree = $AboutUI/Credits/Contributors/ContributorTree
onready var donors : Tree = $AboutUI/Credits/Donors/DonorTree
onready var translators : Tree = $AboutUI/Credits/Translators/TranslatorTree
+onready var slogan_label : Label = $AboutUI/IconsButtons/SloganAndLinks/VBoxContainer/PixeloramaSlogan
+onready var copyright_label : Label = $AboutUI/Copyright
+
+onready var latin_font_italic = preload("res://assets/fonts/Roboto-Italic.tres")
+onready var cjk_font = preload("res://assets/fonts/CJK/DroidSansFallback-Regular.tres")
+onready var latin_font_small = preload("res://assets/fonts/Roboto-Small.tres")
+onready var cjk_font_small = preload("res://assets/fonts/CJK/DroidSansFallback-Small.tres")
+
func _ready() -> void:
var contributor_root := contributors.create_item()
@@ -53,6 +61,13 @@ func _ready() -> void:
func _on_AboutDialog_about_to_show() -> void:
window_title = tr("About Pixelorama") + " " + Global.current_version
+ if Global.is_cjk(TranslationServer.get_locale()):
+ slogan_label.add_font_override("font", cjk_font)
+ copyright_label.add_font_override("font", cjk_font_small)
+ else:
+ slogan_label.add_font_override("font", latin_font_italic)
+ copyright_label.add_font_override("font", latin_font_small)
+
var groups_root := groups.create_item()
var developers_button := groups.create_item(groups_root)
var contributors_button := groups.create_item(groups_root)
diff --git a/src/UI/Dialogs/AboutDialog.tscn b/src/UI/Dialogs/AboutDialog.tscn
index af94321..098ed98 100644
--- a/src/UI/Dialogs/AboutDialog.tscn
+++ b/src/UI/Dialogs/AboutDialog.tscn
@@ -46,7 +46,7 @@ margin_top = 12.0
margin_right = 332.0
margin_bottom = 51.0
-[node name="Pixelorama" type="Label" parent="AboutUI/IconsButtons/SloganAndLinks/VBoxContainer"]
+[node name="PixeloramaSlogan" type="Label" parent="AboutUI/IconsButtons/SloganAndLinks/VBoxContainer"]
margin_right = 224.0
margin_bottom = 15.0
custom_fonts/font = ExtResource( 3 )
diff --git a/src/UI/Dialogs/SplashDialog.gd b/src/UI/Dialogs/SplashDialog.gd
index 9c8d017..591ca10 100644
--- a/src/UI/Dialogs/SplashDialog.gd
+++ b/src/UI/Dialogs/SplashDialog.gd
@@ -9,6 +9,9 @@ var artworks := {
var chosen_artwork = ""
+onready var latin_font = preload("res://assets/fonts/Roboto-Small.tres")
+onready var cjk_font = preload("res://assets/fonts/CJK/DroidSansFallback-Small.tres")
+
func _on_SplashDialog_about_to_show() -> void:
var splash_art_texturerect : TextureRect = Global.find_node_by_name(self, "SplashArt")
@@ -26,12 +29,12 @@ func _on_SplashDialog_about_to_show() -> void:
art_by_label.text = tr("Art by: %s") % chosen_artwork
art_by_label.hint_tooltip = artworks[chosen_artwork][1]
- if "zh" in TranslationServer.get_locale():
- show_on_startup_button.add_font_override("font", preload("res://assets/fonts/CJK/NotoSansCJKtc-Small.tres"))
- copyright_label.add_font_override("font", preload("res://assets/fonts/CJK/NotoSansCJKtc-Small.tres"))
+ if Global.is_cjk(TranslationServer.get_locale()):
+ show_on_startup_button.add_font_override("font", cjk_font)
+ copyright_label.add_font_override("font", cjk_font)
else:
- show_on_startup_button.add_font_override("font", preload("res://assets/fonts/Roboto-Small.tres"))
- copyright_label.add_font_override("font", preload("res://assets/fonts/Roboto-Small.tres"))
+ show_on_startup_button.add_font_override("font", latin_font)
+ copyright_label.add_font_override("font", latin_font)
get_stylebox("panel", "WindowDialog").bg_color = Global.control.theme.get_stylebox("panel", "WindowDialog").bg_color
get_stylebox("panel", "WindowDialog").border_color = Global.control.theme.get_stylebox("panel", "WindowDialog").border_color
@@ -39,7 +42,6 @@ func _on_SplashDialog_about_to_show() -> void:
$Contents/ButtonsPatronsLogos/Buttons/OpenLastBtn.visible = false
-
func _on_ArtCredits_pressed() -> void:
OS.shell_open(artworks[chosen_artwork][1])