wwan-device: Fix network mode strings to be translatable
creating the mode strings by simply concating them blindly can result in hard to translate strings. Fixes #1446
This commit is contained in:
parent
51500e38a8
commit
191a179612
1 changed files with 55 additions and 23 deletions
|
@ -974,14 +974,6 @@ cc_wwan_device_get_supported_modes (CcWwanDevice *self,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define APPEND_MODE_TO_STRING(_str, _now, _preferred, _mode_str) do { \
|
|
||||||
if (_str->len > 0) \
|
|
||||||
g_string_append (_str, ", "); \
|
|
||||||
g_string_append (_str, _mode_str); \
|
|
||||||
if (_preferred == _now) \
|
|
||||||
g_string_append (_str, _(" (Preferred)")); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
gchar *
|
gchar *
|
||||||
cc_wwan_device_get_string_from_mode (CcWwanDevice *self,
|
cc_wwan_device_get_string_from_mode (CcWwanDevice *self,
|
||||||
MMModemMode allowed,
|
MMModemMode allowed,
|
||||||
|
@ -992,26 +984,66 @@ cc_wwan_device_get_string_from_mode (CcWwanDevice *self,
|
||||||
g_return_val_if_fail (CC_IS_WWAN_DEVICE (self), NULL);
|
g_return_val_if_fail (CC_IS_WWAN_DEVICE (self), NULL);
|
||||||
g_return_val_if_fail (allowed != 0, NULL);
|
g_return_val_if_fail (allowed != 0, NULL);
|
||||||
|
|
||||||
|
if (allowed == MM_MODEM_MODE_2G)
|
||||||
|
return g_strdup (_("2G Only"));
|
||||||
|
|
||||||
|
if (allowed == MM_MODEM_MODE_3G)
|
||||||
|
return g_strdup (_("3G Only"));
|
||||||
|
|
||||||
|
if (allowed == MM_MODEM_MODE_4G)
|
||||||
|
return g_strdup (_("4G Only"));
|
||||||
|
|
||||||
str = g_string_sized_new (10);
|
str = g_string_sized_new (10);
|
||||||
|
|
||||||
if (allowed & MM_MODEM_MODE_2G)
|
if (allowed & MM_MODEM_MODE_2G &&
|
||||||
APPEND_MODE_TO_STRING (str, MM_MODEM_MODE_2G, preferred, "2G");
|
allowed & MM_MODEM_MODE_3G &&
|
||||||
if (allowed & MM_MODEM_MODE_3G)
|
allowed & MM_MODEM_MODE_4G)
|
||||||
APPEND_MODE_TO_STRING (str, MM_MODEM_MODE_3G, preferred, "3G");
|
{
|
||||||
if (allowed & MM_MODEM_MODE_4G)
|
if (preferred & MM_MODEM_MODE_4G)
|
||||||
APPEND_MODE_TO_STRING (str, MM_MODEM_MODE_4G, preferred, "4G");
|
g_string_append (str, _("2G, 3G, 4G (Preferred)"));
|
||||||
|
else if (preferred & MM_MODEM_MODE_3G)
|
||||||
if (allowed == MM_MODEM_MODE_2G ||
|
g_string_append (str, _("2G, 3G (Preferred), 4G"));
|
||||||
allowed == MM_MODEM_MODE_3G ||
|
else if (preferred & MM_MODEM_MODE_2G)
|
||||||
allowed == MM_MODEM_MODE_4G)
|
g_string_append (str, _("2G (Preferred), 3G, 4G"));
|
||||||
g_string_append (str, _(" Only"));
|
|
||||||
|
|
||||||
if (str->len == 0)
|
|
||||||
return g_string_free (str, TRUE);
|
|
||||||
else
|
else
|
||||||
|
g_string_append (str, _("2G, 3G, 4G"));
|
||||||
|
}
|
||||||
|
else if (allowed & MM_MODEM_MODE_3G &&
|
||||||
|
allowed & MM_MODEM_MODE_4G)
|
||||||
|
{
|
||||||
|
if (preferred & MM_MODEM_MODE_4G)
|
||||||
|
g_string_append (str, _("3G, 4G (Preferred)"));
|
||||||
|
else if (preferred & MM_MODEM_MODE_3G)
|
||||||
|
g_string_append (str, _("3G (Preferred), 4G"));
|
||||||
|
else
|
||||||
|
g_string_append (str, _("3G, 4G"));
|
||||||
|
}
|
||||||
|
else if (allowed & MM_MODEM_MODE_2G &&
|
||||||
|
allowed & MM_MODEM_MODE_4G)
|
||||||
|
{
|
||||||
|
if (preferred & MM_MODEM_MODE_4G)
|
||||||
|
g_string_append (str, _("2G, 4G (Preferred)"));
|
||||||
|
else if (preferred & MM_MODEM_MODE_2G)
|
||||||
|
g_string_append (str, _("2G (Preferred), 4G"));
|
||||||
|
else
|
||||||
|
g_string_append (str, _("2G, 4G"));
|
||||||
|
}
|
||||||
|
else if (allowed & MM_MODEM_MODE_2G &&
|
||||||
|
allowed & MM_MODEM_MODE_3G)
|
||||||
|
{
|
||||||
|
if (preferred & MM_MODEM_MODE_3G)
|
||||||
|
g_string_append (str, _("2G, 3G (Preferred)"));
|
||||||
|
else if (preferred & MM_MODEM_MODE_2G)
|
||||||
|
g_string_append (str, _("2G (Preferred), 3G"));
|
||||||
|
else
|
||||||
|
g_string_append (str, _("2G, 3G"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!str->len)
|
||||||
|
g_string_append (str, C_("Network mode", "Unknown"));
|
||||||
|
|
||||||
return g_string_free (str, FALSE);
|
return g_string_free (str, FALSE);
|
||||||
}
|
}
|
||||||
#undef APPEND_MODE_TO_STRING
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
wwan_network_list_free (GList *network_list)
|
wwan_network_list_free (GList *network_list)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue