X-Git-Url: https://git.ozlabs.org/?p=petitboot;a=blobdiff_plain;f=discover%2Fdevice-handler.c;h=e7990e7ab05f288331c8c09b54b9c3ef70b94319;hp=22866e6600e29cb869c6196055447fa74b1619f8;hb=2a44f3c936f948d6fedc4729dbf2216da558e490;hpb=9330aba60a05a8d9889dab42bc92b9ebbc55941b diff --git a/discover/device-handler.c b/discover/device-handler.c index 22866e6..e7990e7 100644 --- a/discover/device-handler.c +++ b/discover/device-handler.c @@ -16,6 +16,7 @@ #include #include #include +#include #include "device-handler.h" #include "discover-server.h" @@ -59,6 +60,8 @@ static int umount_device(struct discover_device *dev); static int device_handler_init_sources(struct device_handler *handler); static void device_handler_reinit_sources(struct device_handler *handler); +static void device_handler_update_lang(const char *lang); + void discover_context_add_boot_option(struct discover_context *ctx, struct discover_boot_option *boot_option) { @@ -824,11 +827,26 @@ void device_handler_update_config(struct device_handler *handler, return; discover_server_notify_config(handler->server, config); + device_handler_update_lang(config->lang); device_handler_reinit(handler); } #ifndef PETITBOOT_TEST +static void device_handler_update_lang(const char *lang) +{ + const char *cur_lang; + + if (!lang) + return; + + cur_lang = setlocale(LC_ALL, NULL); + if (cur_lang && !strcmp(cur_lang, lang)) + return; + + setlocale(LC_ALL, lang); +} + static int device_handler_init_sources(struct device_handler *handler) { /* init our device sources: udev, network and user events */ @@ -1025,6 +1043,10 @@ void device_release_write(struct discover_device *dev, bool release) #else +static void device_handler_update_lang(const char *lang __attribute__((unused))) +{ +} + static int device_handler_init_sources( struct device_handler *handler __attribute__((unused))) {