From 63d60a213b8dc67c17d99bb20a6cece235dcec70 Mon Sep 17 00:00:00 2001 From: segwon Date: Thu, 8 Dec 2016 19:25:46 +0900 Subject: [PATCH] Multilingual support and UI / UX improvements. Signed-off-by: segwon Change-Id: Ifb42988ac3e4649ac9eaca9e768e15c6d55bc303 --- inc/language.h | 40 +++++++++++++++ inc/main.h | 21 +------- po/CMakeLists.txt | 77 +++++++++++++++++++++++++++- po/ar.po | Bin 0 -> 36301 bytes po/as.po | 45 +++++++++++++++++ po/az.po | 45 +++++++++++++++++ po/be.po | 45 +++++++++++++++++ po/bg.po | 45 +++++++++++++++++ po/bn.po | 45 +++++++++++++++++ po/bn_BD.po | 45 +++++++++++++++++ po/ca.po | 45 +++++++++++++++++ po/cs.po | 45 +++++++++++++++++ po/da.po | 45 +++++++++++++++++ po/de.po | 45 +++++++++++++++++ po/el.po | 45 +++++++++++++++++ po/en_PH.po | 45 +++++++++++++++++ po/en_US(origin).po | 44 ++++++++++++++++ po/en_US.po | 90 ++++++++++----------------------- po/es.po | 45 +++++++++++++++++ po/es_MX.po | 45 +++++++++++++++++ po/et.po | 45 +++++++++++++++++ po/eu.po | 45 +++++++++++++++++ po/fi.po | 45 +++++++++++++++++ po/fil.po | 45 +++++++++++++++++ po/fr.po | 45 +++++++++++++++++ po/fr_CA.po | 45 +++++++++++++++++ po/ga.po | 45 +++++++++++++++++ po/gl.po | 45 +++++++++++++++++ po/gu.po | 45 +++++++++++++++++ po/he.po | 45 +++++++++++++++++ po/hi.po | 45 +++++++++++++++++ po/hr.po | 45 +++++++++++++++++ po/hu.po | 45 +++++++++++++++++ po/hy.po | 45 +++++++++++++++++ po/id.po | 45 +++++++++++++++++ po/is.po | 45 +++++++++++++++++ po/it.po | 45 +++++++++++++++++ po/ja.po | 45 +++++++++++++++++ po/ka.po | 45 +++++++++++++++++ po/kk.po | 45 +++++++++++++++++ po/km.po | 45 +++++++++++++++++ po/kn.po | 45 +++++++++++++++++ po/ko.po | 45 +++++++++++++++++ po/ko_KR.po | 29 ----------- po/lt.po | 45 +++++++++++++++++ po/lv.po | 45 +++++++++++++++++ po/mk.po | 45 +++++++++++++++++ po/ml.po | 45 +++++++++++++++++ po/mr.po | 45 +++++++++++++++++ po/ms.po | 45 +++++++++++++++++ po/my.po | 45 +++++++++++++++++ po/my_MM.po | 45 +++++++++++++++++ po/ne.po | 45 +++++++++++++++++ po/nl.po | 45 +++++++++++++++++ po/nn.po | 45 +++++++++++++++++ po/pa.po | 45 +++++++++++++++++ po/pl.po | 45 +++++++++++++++++ po/pt.po | 45 +++++++++++++++++ po/pt_BR.po | 45 +++++++++++++++++ po/ro.po | 45 +++++++++++++++++ po/ru.po | 45 +++++++++++++++++ po/si.po | 45 +++++++++++++++++ po/sk.po | 45 +++++++++++++++++ po/sl.po | 45 +++++++++++++++++ po/sq.po | 45 +++++++++++++++++ po/sr.po | 45 +++++++++++++++++ po/sv.po | 45 +++++++++++++++++ po/ta.po | 45 +++++++++++++++++ po/te.po | 45 +++++++++++++++++ po/th.po | 45 +++++++++++++++++ po/tr.po | 45 +++++++++++++++++ po/uk.po | 45 +++++++++++++++++ po/ur.po | 45 +++++++++++++++++ po/uz.po | 45 +++++++++++++++++ po/vi.po | 45 +++++++++++++++++ po/zh_CN.po | 45 +++++++++++++++++ po/zh_HK.po | 45 +++++++++++++++++ po/zh_TW.po | 45 +++++++++++++++++ src/ui/setting_item_device_list.c | 44 ++++++++-------- src/ui/setting_item_discovery_button.c | 6 +-- src/ui/setting_item_sign.c | 4 +- 81 files changed, 3408 insertions(+), 142 deletions(-) create mode 100644 inc/language.h create mode 100644 po/ar.po create mode 100644 po/as.po create mode 100644 po/az.po create mode 100644 po/be.po create mode 100644 po/bg.po create mode 100644 po/bn.po create mode 100644 po/bn_BD.po create mode 100644 po/ca.po create mode 100644 po/cs.po create mode 100644 po/da.po create mode 100644 po/de.po create mode 100644 po/el.po create mode 100644 po/en_PH.po create mode 100644 po/en_US(origin).po create mode 100644 po/es.po create mode 100644 po/es_MX.po create mode 100644 po/et.po create mode 100644 po/eu.po create mode 100644 po/fi.po create mode 100644 po/fil.po create mode 100644 po/fr.po create mode 100644 po/fr_CA.po create mode 100644 po/ga.po create mode 100644 po/gl.po create mode 100644 po/gu.po create mode 100644 po/he.po create mode 100644 po/hi.po create mode 100644 po/hr.po create mode 100644 po/hu.po create mode 100644 po/hy.po create mode 100644 po/id.po create mode 100644 po/is.po create mode 100644 po/it.po create mode 100644 po/ja.po create mode 100644 po/ka.po create mode 100644 po/kk.po create mode 100644 po/km.po create mode 100644 po/kn.po create mode 100644 po/ko.po delete mode 100644 po/ko_KR.po create mode 100644 po/lt.po create mode 100644 po/lv.po create mode 100644 po/mk.po create mode 100644 po/ml.po create mode 100644 po/mr.po create mode 100644 po/ms.po create mode 100644 po/my.po create mode 100644 po/my_MM.po create mode 100644 po/ne.po create mode 100644 po/nl.po create mode 100644 po/nn.po create mode 100644 po/pa.po create mode 100644 po/pl.po create mode 100644 po/pt.po create mode 100644 po/pt_BR.po create mode 100644 po/ro.po create mode 100644 po/ru.po create mode 100644 po/si.po create mode 100644 po/sk.po create mode 100644 po/sl.po create mode 100644 po/sq.po create mode 100644 po/sr.po create mode 100644 po/sv.po create mode 100644 po/ta.po create mode 100644 po/te.po create mode 100644 po/th.po create mode 100644 po/tr.po create mode 100644 po/uk.po create mode 100644 po/ur.po create mode 100644 po/uz.po create mode 100644 po/vi.po create mode 100644 po/zh_CN.po create mode 100644 po/zh_HK.po create mode 100644 po/zh_TW.po diff --git a/inc/language.h b/inc/language.h new file mode 100644 index 0000000..fb5e240 --- /dev/null +++ b/inc/language.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#define TITLE_TEXT dgettext(PACKAGE, "IDS_ST_HEADER_TIZEN_CONNECT") + +#define NOTICE_TEXT_POWER_OFF dgettext(PACKAGE, "IDS_ST_BODY_CONNECT_TO_OTHER_DEVICES_TO_OPEN_APPS_ON_THEM_ACCESS_THEIR_DATA_AND_USE_APPS_ON_MULTIPLE_DEVICES_AT_THE_SAME_TIME_YOU_CAN_ALLOW_OTHER_DEVICES_TO_CONNECT_MSG") + +#define DEVICE_LIST_TEXT_ALLOWED dgettext(PACKAGE, "IDS_ST_MBODY_ALLOWED_DEVICES") +#define DEVICE_LIST_TEXT_DENIED dgettext(PACKAGE, "IDS_ST_MBODY_DENIED_DEVICES") +#define DEVICE_LIST_TEXT_AVAILABLE dgettext(PACKAGE, "IDS_ST_MBODY_AVAILABLE_DEVICES") + +#define BUTTON_TEXT_SCAN dgettext(PACKAGE, "IDS_ST_BUTTON_SCAN_ABB6") +#define BUTTON_TEXT_STOP dgettext(PACKAGE, "IDS_ST_BUTTON_STOP_SCANNING_ABB") + +#define POPUP_TITLE_TEXT dgettext(PACKAGE, "IDS_ST_HEADER_ALLOW_DEVICE_ACCESS") + +#define POPUP_TEXT_ALLOWED dgettext(PACKAGE, "IDS_ST_POP_DENY_PS_THE_ABILITY_TO_CONNECT_TO_THIS_DEVICE_AT_ALL_OR_JUST_REMOVE_IT_FROM_ALLOWED_DEVICES_Q_ABB") +#define POPUP_TEXT_DENIED dgettext(PACKAGE, "IDS_AT_POP_ALLOW_PS_THE_ABILITY_TO_CONNECT_TO_THIS_DEVICE_AND_ACCESS_THE_DATA_ON_IT_WITHOUT_A_PASSWORD_OR_JUST_REMOVE_IT_FROM_DENIED_DEVICES_Q") +#define POPUP_TEXT_AVAILABLE dgettext(PACKAGE, "IDS_ST_POP_ALLOW_PS_TO_ACCESS_THIS_DEVICE_AND_ITS_DATA_WITHOUT_A_PASSWORD_OR_DENY_IT_THE_ABILITY_TO_CONNECT_AT_ALL_Q_ABB") + +#define POPUP_BUTTON_TEXT_ALLOW dgettext(PACKAGE, "IDS_ST_BUTTON_ALLOW_ABB8") +#define POPUP_BUTTON_TEXT_DENY dgettext(PACKAGE, "IDS_ST_BUTTON_DENY_ABB4") +#define POPUP_BUTTON_TEXT_REMOVE dgettext(PACKAGE, "IDS_ST_BUTTON_REMOVE_ABB9") +#define POPUP_BUTTON_TEXT_CANCEL dgettext(PACKAGE, "IDS_ST_BUTTON_CANCEL_ABB11") + \ No newline at end of file diff --git a/inc/main.h b/inc/main.h index fa22698..d120325 100644 --- a/inc/main.h +++ b/inc/main.h @@ -25,9 +25,9 @@ #include #include #include -#include #include #include +#include "language.h" #ifdef LOG_TAG #undef LOG_TAG @@ -50,25 +50,6 @@ typedef enum state { APP_TERMINATE } state_e; -#define TITLE_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_TITLE_TEXT") -#define ACCESS_CONTROL_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_ACCESS_CONTROL_TEXT") -#define NOTICE_TITLE_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_NOTICE_TITLE_TEXT") -#define POWER_ON_NOTICE_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_POWER_ON_NOTICE_TEXT") -#define POWER_OFF_NOTICE_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_POWER_OFF_NOTICE_TEXT") -#define ALLOWED_DEVICE_LIST_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_ALLOWED_DEVICE_LIST_TEXT") -#define DENIED_DEVICE_LIST_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_DENIED_DEVICE_LIST_TEXT") -#define AVAILABLE_DEVICE_LIST_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_AVAILABLE_DEVICE_LIST_TEXT") -#define SCAN_BUTTON_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_SCAN_BUTTON_TEXT") -#define STOP_BUTTON_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_STOP_BUTTON_TEXT") -#define AVAILABLE_POPUP_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_AVAILABLE_POPUP_TEXT") -#define ALLOWED_POPUP_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_ALLOWED_POPUP_TEXT") -#define DENIED_POPUP_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_DENIED_POPUP_TEXT") -#define CANCEL_BUTTON_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_CANCEL_BUTTON_TEXT") -#define ALLOW_BUTTON_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_ALLOW_BUTTON_TEXT") -#define DENY_BUTTON_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_DENY_BUTTON_TEXT") -#define REMOVE_BUTTON_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_REMOVE_BUTTON_TEXT") -#define REMOVE_BUTTON_TEXT dgettext(PACKAGE, "D2D_CONV_SETTING_M_REMOVE_BUTTON_TEXT") - /* state event lisetner */ typedef void (*event_listener)(state_e state); extern void add_state_change_event_listener(event_listener listener); diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt index a432eee..6882b49 100644 --- a/po/CMakeLists.txt +++ b/po/CMakeLists.txt @@ -1,4 +1,79 @@ -SET(POFILES en_US.po ko_KR.po) +SET(POFILES + #ar.po + as.po + az.po + be.po + bg.po + bn.po + bn_BD.po + ca.po + cs.po + da.po + de.po + el.po + en_PH.po + en_US.po + es.po + es_MX.po + et.po + eu.po + fi.po + fil.po + fr.po + fr_CA.po + ga.po + gl.po + gu.po + he.po + hi.po + hr.po + hu.po + hy.po + id.po + is.po + it.po + ja.po + ka.po + kk.po + km.po + kn.po + ko.po + lt.po + lv.po + mk.po + ml.po + mr.po + ms.po + my.po + my_MM.po + ne.po + nl.po + nn.po + pa.po + pl.po + pt.po + pt_BR.po + ro.po + ru.po + si.po + sk.po + sl.po + sq.po + sr.po + sv.po + ta.po + te.po + th.po + tr.po + uk.po + ur.po + uz.po + vi.po + zh_CN.po + zh_HK.po + zh_TW.po +) + SET(MSGFMT "/usr/bin/msgfmt") FOREACH(pofile ${POFILES}) diff --git a/po/ar.po b/po/ar.po new file mode 100644 index 0000000000000000000000000000000000000000..ef217778380f83d2847f18368104374f2d817598 GIT binary patch literal 36301 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, selected_device->type, selected_device->name, 0); - } else if (!strcmp(DENY_BUTTON_TEXT, button_name)) { + } else if (!strcmp(POPUP_BUTTON_TEXT_DENY, button_name)) { conv_internal_set_acl_state(selected_device->mac_address, selected_device->type, selected_device->name, 1); - } else if (!strcmp(REMOVE_BUTTON_TEXT, button_name)) { + } else if (!strcmp(POPUP_BUTTON_TEXT_REMOVE, button_name)) { conv_internal_remove_acl_device(selected_device->mac_address); } @@ -124,29 +124,29 @@ static void device_list_select_cb(void *data, Evas_Object *obj, void *event_info selected_device->type = info->type; selected_device->mac_address = info->mac_address; - char *title = ACCESS_CONTROL_TEXT; + char *title = POPUP_TITLE_TEXT; char content[1024]; char *left_button_text = NULL; char *center_button_text = NULL; char *right_button_text = NULL; if (!strcmp(selected_device->list_type, LIST_TYPE_PERMITTED)) { - snprintf(content, sizeof(content), "'%s', %s", selected_device->name, ALLOWED_POPUP_TEXT); - left_button_text = CANCEL_BUTTON_TEXT; - center_button_text = DENY_BUTTON_TEXT; - right_button_text = REMOVE_BUTTON_TEXT; + snprintf(content, sizeof(content), _(POPUP_TEXT_ALLOWED), selected_device->name); + left_button_text = POPUP_BUTTON_TEXT_CANCEL; + center_button_text = POPUP_BUTTON_TEXT_DENY; + right_button_text = POPUP_BUTTON_TEXT_REMOVE; } else if (!strcmp(selected_device->list_type, LIST_TYPE_DENIED)) { - snprintf(content, sizeof(content), "'%s', %s", selected_device->name, DENIED_POPUP_TEXT); - left_button_text = CANCEL_BUTTON_TEXT; - center_button_text = ALLOW_BUTTON_TEXT; - right_button_text = REMOVE_BUTTON_TEXT; + snprintf(content, sizeof(content), _(POPUP_TEXT_DENIED), selected_device->name); + left_button_text = POPUP_BUTTON_TEXT_CANCEL; + center_button_text = POPUP_BUTTON_TEXT_ALLOW; + right_button_text = POPUP_BUTTON_TEXT_REMOVE; } else if (!strcmp(selected_device->list_type, LIST_TYPE_DISCOVERED)) { - snprintf(content, sizeof(content), "'%s', %s", selected_device->name, AVAILABLE_POPUP_TEXT); - left_button_text = CANCEL_BUTTON_TEXT; - center_button_text = DENY_BUTTON_TEXT; - right_button_text = ALLOW_BUTTON_TEXT; + snprintf(content, sizeof(content), _(POPUP_TEXT_AVAILABLE), selected_device->name); + left_button_text = POPUP_BUTTON_TEXT_CANCEL; + center_button_text = POPUP_BUTTON_TEXT_DENY; + right_button_text = POPUP_BUTTON_TEXT_ALLOW; } show_device_list_selected_popup(title, content, left_button_text, center_button_text, right_button_text); @@ -161,19 +161,19 @@ static void gl_expanded_cb(void *data, Evas_Object *obj, void *event_info) char *type = elm_object_item_data_get(it); - if (!strcmp(AVAILABLE_DEVICE_LIST_TEXT, type)) { + if (!strcmp(DEVICE_LIST_TEXT_AVAILABLE, type)) { for (index = 0; index <= discovered_devices_index; index++){ if (discovered_devices_info[index] != NULL) { elm_genlist_item_append(list, device_item_builder, discovered_devices_info[index], it, ELM_GENLIST_ITEM_NONE, device_list_select_cb, discovered_devices_info[index]); } } - } else if (!strcmp(ALLOWED_DEVICE_LIST_TEXT, type)) { + } else if (!strcmp(DEVICE_LIST_TEXT_ALLOWED, type)) { for (index = 0; index <= permitted_devices_index; index++){ if (permitted_devices_info[index] != NULL) { elm_genlist_item_append(list, device_item_builder, permitted_devices_info[index], it, ELM_GENLIST_ITEM_NONE, device_list_select_cb, permitted_devices_info[index]); } } - } else if (!strcmp(DENIED_DEVICE_LIST_TEXT, type)) { + } else if (!strcmp(DEVICE_LIST_TEXT_DENIED, type)) { for (index = 0; index <= denied_devices_index; index++){ if (denied_devices_info[index] != NULL) { elm_genlist_item_append(list, device_item_builder, denied_devices_info[index], it, ELM_GENLIST_ITEM_NONE, device_list_select_cb, denied_devices_info[index]); @@ -466,13 +466,13 @@ extern void create_setting_item_device_list(Evas_Object *parent) group_item_builder->func.text_get = group_title_text_cb; } - permitted_device_group = elm_genlist_item_append(group_list_item, group_item_builder, ALLOWED_DEVICE_LIST_TEXT, NULL, ELM_GENLIST_ITEM_TREE, NULL, NULL); + permitted_device_group = elm_genlist_item_append(group_list_item, group_item_builder, DEVICE_LIST_TEXT_ALLOWED, NULL, ELM_GENLIST_ITEM_TREE, NULL, NULL); permitted_list = elm_object_item_widget_get(permitted_device_group); - denied_device_group = elm_genlist_item_append(group_list_item, group_item_builder, DENIED_DEVICE_LIST_TEXT, NULL, ELM_GENLIST_ITEM_TREE, NULL, NULL); + denied_device_group = elm_genlist_item_append(group_list_item, group_item_builder, DEVICE_LIST_TEXT_DENIED, NULL, ELM_GENLIST_ITEM_TREE, NULL, NULL); denied_list = elm_object_item_widget_get(denied_device_group); - discovered_device_group = elm_genlist_item_append(group_list_item, group_item_builder, AVAILABLE_DEVICE_LIST_TEXT, NULL, ELM_GENLIST_ITEM_TREE, NULL, NULL); + discovered_device_group = elm_genlist_item_append(group_list_item, group_item_builder, DEVICE_LIST_TEXT_AVAILABLE, NULL, ELM_GENLIST_ITEM_TREE, NULL, NULL); discovered_list = elm_object_item_widget_get(discovered_device_group); elm_genlist_item_class_free(group_item_builder); diff --git a/src/ui/setting_item_discovery_button.c b/src/ui/setting_item_discovery_button.c index d4f5dc4..58d64a3 100644 --- a/src/ui/setting_item_discovery_button.c +++ b/src/ui/setting_item_discovery_button.c @@ -31,11 +31,11 @@ static void state_change_event_listener (state_e state) break; case DISCOVERY_START : discovery_state = DISCOVERY_START; - elm_object_text_set(discovery_button_item, STOP_BUTTON_TEXT); + elm_object_text_set(discovery_button_item, BUTTON_TEXT_STOP); break; case DISCOVERY_STOP : discovery_state = DISCOVERY_STOP; - elm_object_text_set(discovery_button_item, SCAN_BUTTON_TEXT); + elm_object_text_set(discovery_button_item, BUTTON_TEXT_SCAN); break; default : break; @@ -59,7 +59,7 @@ extern void create_setting_item_discovery_button(Evas_Object *parent) discovery_button_item = elm_button_add(parent); elm_object_style_set(discovery_button_item, "bottom"); - elm_object_text_set(discovery_button_item, SCAN_BUTTON_TEXT); + elm_object_text_set(discovery_button_item, BUTTON_TEXT_SCAN); evas_object_smart_callback_add(discovery_button_item, "clicked", discovery_button_click_cb, NULL); elm_grid_pack(parent, discovery_button_item, 0, 87, 100, 13); diff --git a/src/ui/setting_item_sign.c b/src/ui/setting_item_sign.c index 3ee97f4..20cb81f 100644 --- a/src/ui/setting_item_sign.c +++ b/src/ui/setting_item_sign.c @@ -39,9 +39,7 @@ static void state_change_event_listener (state_e state) static char* text_get_cb(void *data, Evas_Object *obj, const char *part) { if (!strcmp("elm.text.multiline", part)) { - char buf[1024]; - snprintf(buf, sizeof(buf), "%s
%s", NOTICE_TITLE_TEXT, POWER_OFF_NOTICE_TEXT); - return strdup(buf); + return strdup(NOTICE_TEXT_POWER_OFF); } return NULL; } -- 2.7.4