1
0
mirror of https://gitlab.gnome.org/GNOME/nautilus synced 2024-07-07 20:07:07 +00:00

eel-string: Support Unicode when capitalizing first character

And use this instead of g_ascii_to_upper() in app-chooser.c

This is more i18n-friendly.
This commit is contained in:
António Fernandes 2022-08-08 22:10:14 +01:00 committed by Corey Berla
parent 03871cad3b
commit 0c0e92a0ea
2 changed files with 20 additions and 5 deletions

View File

@ -95,16 +95,28 @@ eel_str_double_underscores (const char *string)
char *
eel_str_capitalize (const char *string)
{
char *capitalized;
char *capitalized = NULL;
if (string == NULL)
{
return NULL;
}
capitalized = g_strdup (string);
if (g_utf8_validate (string, -1, NULL))
{
g_autofree gunichar *ucs4 = NULL;
ucs4 = g_utf8_to_ucs4 (string, -1, NULL, NULL, NULL);
if (ucs4 != NULL)
{
ucs4[0] = g_unichar_toupper (ucs4[0]);
capitalized = g_ucs4_to_utf8 (ucs4, -1, NULL, NULL, NULL);
}
}
capitalized[0] = g_ascii_toupper (capitalized[0]);
if (capitalized == NULL)
{
return g_strdup (string);
}
return capitalized;
}

View File

@ -9,6 +9,8 @@
#include <libadwaita-1/adwaita.h>
#include <glib/gi18n.h>
#include <eel/eel-string.h>
#include "nautilus-file.h"
#include "nautilus-signaller.h"
@ -218,8 +220,9 @@ nautilus_app_chooser_constructed (GObject *object)
content_type_description = g_content_type_get_description (self->content_type);
if (content_type_description != NULL)
{
content_type_description[0] = g_ascii_toupper (content_type_description[0]);
adw_action_row_set_subtitle (ADW_ACTION_ROW (self->set_default_row), content_type_description);
g_autofree gchar *capitalized = NULL;
capitalized = eel_str_capitalize (content_type_description);
adw_action_row_set_subtitle (ADW_ACTION_ROW (self->set_default_row), capitalized);
}
}
else