From d48d2d8b0df98176ee388955f6a1fd16976e9c7c Mon Sep 17 00:00:00 2001 From: Krzysztof Mozdzynski <44206888+mozdzyk@users.noreply.github.com> Date: Fri, 27 Nov 2020 02:21:14 +0100 Subject: [PATCH] [EGD-4167] Add n display languages loaded from files (#1047) --- changelog.md | 4 + doc/i18n.md | 56 ++- image/assets/lang/Deutsch.json | 173 ++++++++ image/assets/lang/English.json | 384 +++++++++++++++++ image/assets/lang/Espanol.json | 178 ++++++++ image/assets/lang/Francais.json | 173 ++++++++ image/assets/lang/Polski.json | 173 ++++++++ image/assets/lang/lang_de.json | 187 -------- image/assets/lang/lang_en.json | 402 ------------------ image/assets/lang/lang_fr.json | 187 -------- image/assets/lang/lang_pl.json | 189 -------- image/assets/lang/lang_sp.json | 192 --------- image/user/settings.db | Bin 20480 -> 20480 bytes .../tests/CalculatorUtility_tests.cpp | 4 +- .../windows/InputLanguageWindow.cpp | 18 +- .../windows/InputLanguageWindow.hpp | 3 +- .../windows/LanguageWindow.cpp | 31 +- .../windows/LanguageWindow.hpp | 1 + module-db/Common/Common.hpp | 8 - module-db/Interface/SettingsRecord.hpp | 5 +- module-db/Tables/SettingsTable.cpp | 67 +-- module-db/Tables/SettingsTable.hpp | 11 +- module-db/tests/SettingsRecord_tests.cpp | 4 +- module-db/tests/SettingsTable_tests.cpp | 18 +- .../test/test-catch-text/test-gui-Text.cpp | 2 +- module-services/service-appmgr/Controller.cpp | 4 +- .../messages/LanguageChangeRequest.cpp | 15 +- .../model/ApplicationManager.cpp | 41 +- .../service-appmgr/Controller.hpp | 5 +- .../messages/LanguageChangeRequest.hpp | 10 +- module-utils/i18/i18.cpp | 95 ++--- module-utils/i18/i18.hpp | 44 +- module-utils/test/test_time_conversion.cpp | 2 +- module-utils/test/unittest_duration.cpp | 8 +- 34 files changed, 1288 insertions(+), 1406 deletions(-) create mode 100644 image/assets/lang/Deutsch.json create mode 100644 image/assets/lang/English.json create mode 100644 image/assets/lang/Espanol.json create mode 100644 image/assets/lang/Francais.json create mode 100644 image/assets/lang/Polski.json delete mode 100644 image/assets/lang/lang_de.json delete mode 100644 image/assets/lang/lang_en.json delete mode 100644 image/assets/lang/lang_fr.json delete mode 100644 image/assets/lang/lang_pl.json delete mode 100644 image/assets/lang/lang_sp.json diff --git a/changelog.md b/changelog.md index 3e68ccc1abb0650a030b6ea49bdd7672b17afbf4..e5b11d698ef0b9559d0585210069885eb369ae9d 100644 --- a/changelog.md +++ b/changelog.md @@ -20,6 +20,10 @@ * `[utils]` Added unit tests for time display. +### Changed + +* `[language]` Changed language loader to load from files + ## [0.48.1 2020-11-23] ### Added diff --git a/doc/i18n.md b/doc/i18n.md index 55a2267e5b79997a0025a1a36ece03779a59bc6e..ebff90e8003cc3bfa2174701fce54374bbe636de 100644 --- a/doc/i18n.md +++ b/doc/i18n.md @@ -2,9 +2,61 @@ ## File and data structure -Currently all the wording used in MuditaOS interface is collected in the form of JSON files which are located in [the Image Assets folder](../image/assets/lang/). +### Display language +Currently all the wording used in MuditaOS interface is collected in the form of JSON files which are located in [the image/assets/lang folder](../image/assets/lang/). -The default fallback file for every language is currently the English version - `lang_en.json` +The default fallback file for every language is currently the English version - `English.json`. + +Language file naming pattern should be universal because MuditaOS displays languages based on the file name (without extension) eg. `Deutsch.json` will be displayed in language settings as `Deutsch`. + +The name of a language file should also be in the language of the created file eg. for English it should be `English.json`, for Polish `Polski.json` etc. + +The structure of the file is typical for JSON files: +```c++ +(...) +"common_open": "OPEN", +"common_call": "CALL", +"common_save": "SAVE", +"common_send": "SEND", +(...) +``` +The keys on the left side refer to the values on the right side. These values are later displayed in MuditaOS applications. + +### Keyboard input language + +The first four values of JSON language files tell MuditaOS, which keyboard input language is the specific language setting using: +```c++ +"common_kbd_lower": "lang_eng_lower", +"common_kbd_upper": "lang_eng_upper", +"common_kbd_numeric": "numeric", +"common_kbd_phone": "phone", +(...) +``` + +These values are names of KPROF files, which are located in [the image/assets/profiles folder](../image/assets/profiles/). + +Every language has its own files for upper and lower letters. Here's an example of a working implementation of buttons 2 and 3 in the `lang_eng_lower` file: +```c++ +(...) +#NumericKey2 = 32, +32 +true +'a','b','c' +0,0,0 +#NumericKey3 = 33, +33 +true +'d','e','f' +0,0,0 +(...) +``` +Values explanation: +- The first value is the number of the button (31 means button "1", 32 means button "2" etc.) +- The second value is true if the key is cyclic or false otherwise +- The third line is a list of values that would be available by clicking this button +- The last line includes zeros written as many times as there are characters available under the button + +### Date and time MuditaOS follows [Linux `date`](https://man7.org/linux/man-pages/man1/date.1.html) to format date and time. diff --git a/image/assets/lang/Deutsch.json b/image/assets/lang/Deutsch.json new file mode 100644 index 0000000000000000000000000000000000000000..0cfa51b3afa3dfbb25bf5ded7d6b212fa3c813df --- /dev/null +++ b/image/assets/lang/Deutsch.json @@ -0,0 +1,173 @@ +{ + "common_kbd_lower": "lang_de_lower", + "common_kbd_upper": "lang_de_upper", + "common_kbd_numeric": "numeric", + "common_add": "ADD", + "common_open": "OPEN", + "common_call": "CALL", + "common_save": "SAVE", + "common_send": "SEND", + "common_confirm": "CONFIRM", + "common_select": "SELECT", + "common_ok": "OK", + "common_back": "BACK", + "common_set": "SET", + "common_yes": "Yes", + "common_no": "No", + "common_speaker": "SPEAKER", + "common_mute": "MUTE", + "common_switch": "SWITCH", + "common_options": "OPTIONS", + "common_monday": "Monday", + "common_tuesday": "Tuesday", + "common_wednesday": "Wednesday", + "common_thursday": "Thursday", + "common_friday": "Friday", + "common_saturday": "Saturday", + "common_sunday": "Sunday", + "common_information": "Information", + "common_january": "January", + "common_february": "February", + "common_march": "March", + "common_april": "April", + "common_may": "May", + "common_june": "June", + "common_july": "July", + "common_august": "August", + "common_september": "September", + "common_october": "October", + "common_november": "November", + "common_december": "December", + "common_yesterday": "Yesterday", + "common_today": "Today", + "locale_12hour_min": "%I:%M %p", + "locale_24hour_min": "%H:%M", + "locale_date_full": "%m/%d/%y", + "locale_date_short": "%d/%m", + "app_notes_title_main": "Notes", + "app_notes_new_note": "New Note", + "app_notes_save": "SAVE", + "app_notes_edit": "EDIT", + "app_notes_back": "BACK", + "app_calllog_title_main": "Calls", + "app_calllog_save": "SAVE", + "app_calllog_edit": "EDIT", + "app_calllog_back": "BACK", + "app_calllog_type": "Type", + "app_calllog_duration": "Duration", + "app_calllog_incoming_call": "incoming call", + "app_calllog_outgoing_call": "outgoing call", + "app_calllog_missed_call": "missed call", + "app_calllog_date": "Date", + "app_calllog_options_title": "Options", + "app_calllog_options_contact_details": "Contact details", + "app_calllog_options_delete_call": "Delete call", + "app_calllog_delete_call_confirmation": "Do you really want to delete this call from the list?", + "app_desktop_unlock": "UNLOCK", + "app_desktop_lock": "LOCK", + "app_desktop_menu": "MENU", + "app_desktop_emergency": "EMERG.", + "app_desktop_pin_lock": "Enter passcode", + "app_desktop_pin_info1": "Wrong passcode", + "app_desktop_pin_info2": "Allowed unlock attempts", + "app_desktop_pin_blocked1": "Sorry, phone blocked", + "app_desktop_unread_messages": "unread messages", + "app_desktop_missed_calls": "missed calls", + "app_desktop_menu_phone": "PHONE", + "app_desktop_menu_contacts": "CONTACTS", + "app_desktop_menu_messages": "MESSAGES", + "app_desktop_menu_calendar": "CALENDAR", + "app_desktop_menu_alarm": "ALARM", + "app_desktop_menu_meditation": "MEDITATION", + "app_desktop_menu_music": "MUSIC", + "app_desktop_menu_tools": "TOOLS", + "app_desktop_menu_settings": "SETTINGS", + "app_desktop_menu_phonebook": "PHONEBOOK", + "app_desktop_menu_title": "Main Menu", + "app_desktop_tools_title": "Tools", + "app_desktop_tools_notes": "NOTES", + "app_desktop_tools_calculator": "CALCULATOR", + "app_desktop_tools_recorder": "RECORDER", + "app_desktop_tools_antenna": "ANTENNA TEST", + "app_desktop_poweroff_title": "Turn Off", + "app_desktop_poweroff_question": "Select Yes to power down", + "app_call_call": "CALL", + "app_call_clear": "CLEAR", + "app_call_reject": "REJECT", + "app_call_answer": "ANSWER", + "app_call_message": "MESSAGE", + "app_call_return": "RETURN", + "app_call_end_call": "END CALL", + "app_call_emergency": "Emergency call", + "app_call_is_calling": "is calling", + "app_call_call_ended": "call ended", + "app_call_contact": "CONTACT", + "app_settings_title_main": "Settings", + "app_settings_bt": "Bluetooth", + "app_settings_date_and_time": "Date and Time", + "app_settings_title_day": "Day", + "app_settings_title_month": "Month", + "app_settings_title_year": "Year", + "app_settings_title_time": "Time", + "app_settings_cellular_passthrough": "Cellular <-> USB", + "app_settings_display": "Display", + "app_settings_phone_modes": "Phone Modes", + "app_settings_security": "Security", + "app_settings_language": "Language", + "app_settings_about": "About Mudita Pure", + "app_settings_title_languages": "Language Selection", + "app_settings_language_english": "English", + "app_settings_language_polish": "Polish", + "app_settings_language_german": "German", + "app_settings_language_spanish": "Spanish", + "app_settings_date_time": "Date and Time", + "app_messages_title_main": "Messages", + "app_messages_new_message": "New Message", + "app_phonebook_title_main": "Contacts", + "app_phonebook_search_win_contacts": "Contacts", + "common_search_uc": "Search", + "app_phonebook_search_win_info": "Type what do you need and click SEARCH", + "common_search_results": "Results", + "app_phonebook_list_favourites": "Favourites", + "app_phonebook_contact_title": "Add Contact", + "app_phonebook_contact_note": "Note", + "app_phonebook_contact_address": "Address", + "app_phonebook_contact_information": "Information", + "app_phonebook_contact_favourites_upper": "FAVOURITES", + "app_phonebook_contact_speed_dial_upper": "SPEED DIAL", + "app_phonebook_contact_speed_blocked_uppper": "BLOCKED", + "app_phonebook_duplicate_numbers": "This numbers belongs to\n$CONTACT_NAME$. Would you like\nto create a new contact?", + "app_phonebook_duplicate_speed_dial": "This number is already assigned\nto $CONTACT_NAME$. Would you\nlike to replace it?", + "app_phonebook_options_title": "Options", + "app_phonebook_contact_no_name": "no name", + "app_phonebook_options_edit": "Edit Contact", + "app_phonebook_options_block": "Block", + "app_phonebook_options_block_confirm": "Do you really want to\nblock this contact?", + "app_phonebook_options_delete": "Delete", + "app_phonebook_options_delete_confirm": "Do you really want to\ndelete this contact?", + "app_phonebook_options_send_bt": "Send via Bluetooth", + "app_phonebook_options_forward_namecard": "Forward namecard", + "app_phonebook_options_send_sms": "Send via SMS", + "app_phonebook_new_contact_first_name": "First name", + "app_phonebook_new_contact_second_name": "Second name", + "app_phonebook_new_contact_number": "Number", + "app_phonebook_new_contact_second_number": "Second number", + "app_phonebook_new_contact_email": "Email", + "app_phonebook_new_contact_address": "Address", + "app_phonebook_new_contact_note": "Note", + "app_phonebook_new_speed_dial_key": "Speed dial key", + "app_phonebook_new_add_to_fav": "Add to favourites", + "app_phonebook_new_add_to_ice": "Add to ICE", + "app_phonebook_check": "CHECK", + "app_phonebook_uncheck": "UNCHECK", + "app_meditation_title_main": "Meditation", + "sms_call_text": "Call: ", + "sms_contact_details": "Contact details", + "sms_delete_conversation": "Delete conversation", + "settings_lang_PL": "PL", + "settings_lang_ENG": "ENG", + "settings_lang_DE": "DE", + "settings_lang_SP": "SP", + "desktop_powerdown_info1": "Now It is truly...", + "desktop_powerdown_info2": "Disabled!!!" +} diff --git a/image/assets/lang/English.json b/image/assets/lang/English.json new file mode 100644 index 0000000000000000000000000000000000000000..a3cc90a3f272ad3886f245bbf273e46d84fdffa9 --- /dev/null +++ b/image/assets/lang/English.json @@ -0,0 +1,384 @@ +{ + "common_kbd_lower": "lang_eng_lower", + "common_kbd_upper": "lang_eng_upper", + "common_kbd_numeric": "numeric", + "common_kbd_phone": "phone", + + "common_add": "ADD", + "common_open": "OPEN", + "common_call": "CALL", + "common_save": "SAVE", + "common_send": "SEND", + "common_confirm": "CONFIRM", + "common_select": "SELECT", + "common_use": "USE", + "common_ok": "OK", + "common_back": "BACK", + "common_set": "SET", + "common_yes": "Yes", + "common_no": "No", + "common_switch": "SWITCH", + "common_options": "OPTIONS", + "common_information": "Information", + "common_check": "CHECK", + "common_uncheck": "UNCHECK", + "common_emoji": "EMOJI", + "common_special_characters": "SPECIAL", + "common_start": "START", + "common_stop": "STOP", + "common_resume": "RESUME", + "common_pause": "PAUSE", + "common_mo": "MO", + "common_tu": "TU", + "common_we": "WE", + "common_th": "TH", + "common_fr": "FR", + "common_sa": "SA", + "common_su": "SU", + "common_monday": "Monday", + "common_tuesday": "Tuesday", + "common_wednesday": "Wednesday", + "common_thursday": "Thursday", + "common_friday": "Friday", + "common_saturday": "Saturday", + "common_sunday": "Sunday", + "common_january": "January", + "common_february": "February", + "common_march": "March", + "common_april": "April", + "common_may": "May", + "common_june": "June", + "common_july": "July", + "common_august": "August", + "common_september": "September", + "common_october": "October", + "common_november": "November", + "common_december": "December", + "common_yesterday": "Yesterday", + "common_today": "Today", + "common_results_prefix": "Results: ", + "common_search": "SEARCH", + "locale_12hour_min": "%I:%M %p", + "locale_24hour_min": "%H:%M", + "locale_date_full": "%m/%d/%y", + "locale_date_short": "%d/%m", + "common_AM": "AM", + "common_PM": "PM", + "duration_min_0sec": "%M:%0S", + "duration_0min_0sec": "%0M:%0S", + "duration_0hmin_0sec": "%0N:%0S", + "duration_hour_0min_0sec": "%H:%0M:%0S", + "brightness_text": "BRIGHTNESS", + "volume_text": "VOLUME", + "home_modes_connected": "CONNECTED", + "home_modes_notdisturb": "DO NOT DISTURB", + "home_modes_offline": "OFFLINE", + "app_calendar_title_main": "Calendar", + "app_calendar_options_title": "Options", + "app_calendar_options_edit": "Edit", + "app_calendar_options_delete": "Delete", + "app_calendar_event_delete_confirmation": "Delete this event?", + "app_calendar_bar_month": "MONTH", + "app_calendar_bar_list": "LIST", + "app_calendar_event_detail": "Event", + "app_calendar_event_detail_repeat": "Repeat", + "app_calendar_event_detail_reminder": "Reminder", + "app_calendar_no_events_information": "No events yet.

Press left arrow to add new.

", + "app_calendar_repeat_never": "Never", + "app_calendar_repeat_daily": "Daily", + "app_calendar_repeat_weekly": "Weekly", + "app_calendar_repeat_two_weeks": "Two weeks", + "app_calendar_repeat_month": "Month", + "app_calendar_repeat_year": "Year", + "app_calendar_repeat_custom": "Custom", + "app_calendar_reminder_never": "Never", + "app_calendar_reminder_event_time": "At the time of the event", + "app_calendar_reminder_5_min_before": "5 mins before", + "app_calendar_reminder_15_min_before": "15 mins before", + "app_calendar_reminder_30_min_before": "30 mins before", + "app_calendar_reminder_1_hour_before": "1h before", + "app_calendar_reminder_2_hour_before": "2h before", + "app_calendar_reminder_1_day_before": "1 day before", + "app_calendar_reminder_2_days_before": "2 days before", + "app_calendar_reminder_1_week_before": "1 week before", + "app_calendar_custom_repeat_title": "Custom repeat", + "app_calendar_new_event_title": "New event", + "app_calendar_edit_event_title": "Edit event", + "app_calendar_edit": "EDIT", + "app_calendar_new_edit_event_name": "Event name", + "app_calendar_new_edit_event_allday": "All day event", + "app_calendar_all_day": "All day", + "app_calendar_new_edit_event_start": "Start", + "app_calendar_new_edit_event_end": "End", + + "app_calculator_title_main": "Calculator", + "app_calculator_equals": "EQUALS", + "app_calculator_decimal_separator": ".", + "app_calculator_error": "Error", + + "app_options_invalid_option": " ", + "app_options_contact_details": "Contact details", + "app_options_contact_add": "Add to contacts", + "app_options_contact_edit": "Edit Contact", + + "app_notes_title_main": "Notes", + "app_notes_new_note": "New Note", + "app_notes_save": "SAVE", + "app_notes_edit": "EDIT", + "app_notes_back": "BACK", + + "app_calllog_title_main": "Calls", + "app_calllog_new_note": "New Note", + "app_calllog_save": "SAVE", + "app_calllog_edit": "EDIT", + "app_calllog_back": "BACK", + "app_calllog_type": "Type", + "app_calllog_duration": "Duration", + "app_calllog_incoming_call": "incoming call", + "app_calllog_outgoing_call": "outgoing call", + "app_calllog_missed_call": "missed call", + "app_calllog_rejected_call": "rejected call", + "app_calllog_date": "Date", + "app_calllog_options_title": "Options", + "app_calllog_options_delete_call": "Delete call", + "app_calllog_delete_call_confirmation": "Do you really want to delete this call from the list?", + + "app_desktop_unlock": "UNLOCK", + "app_desktop_lock": "LOCK", + "app_desktop_menu": "MENU", + "app_desktop_emergency": "EMERG.", + "app_desktop_screen_enter_passcode": "Enter passcode", + "app_desktop_screen_wrong_pin": "Wrong passcode", + "app_desktop_screen_allowed_attempts": "Allowed unlock attempts", + "app_desktop_screen_blocked_info": "Sorry, phone blocked", + "app_desktop_sim_to_unlock": "To unlock the", + "app_desktop_sim_card": "card", + "app_desktop_sim_type_pin": "please type a PIN code:", + "app_desktop_sim_blocked": "The SIM card is blocked.", + "app_desktop_sim_enter_pin": "Enter new PIN code", + "app_desktop_sim_confirm_pin": "Enter new PIN code", + "app_desktop_sim_type_puk": "To unblock it, type the PUK code:", + "app_desktop_no_pin_lock": "Press Unlock and then #", + "app_desktop_sim_wrong_pin": "Wrong PIN code", + "app_desktop_sim_wrong_puk": "Wrong PUK code", + "app_desktop_sim_you_have": "You have", + "app_desktop_sim_attempt_left_plural": "attempts left", + "app_desktop_sim_attempt_left_singular": "attempt left", + "app_desktop_sim_warning1": "If the code is wrong this time, the", + "app_desktop_sim_warning2": "SIM card will be blocked and you'll", + "app_desktop_sim_warning3": "have to contact the operator", + "app_desktop_sim_blocked_info1": "Sorry, SIM card permanently blocked.", + "app_desktop_sim_blocked_info2": "Please contact your service provider", + "app_desktop_sim_cme_error": "SIM card\nCME error:", + "app_desktop_unread_messages": "Unread messages", + "app_desktop_missed_calls": "Missed calls", + "app_desktop_menu_phone": "PHONE", + "app_desktop_menu_contacts": "CONTACTS", + "app_desktop_menu_messages": "MESSAGES", + "app_desktop_menu_calendar": "CALENDAR", + "app_desktop_menu_alarm": "ALARM", + "app_desktop_menu_meditation": "MEDITATION", + "app_desktop_menu_music": "MUSIC", + "app_desktop_menu_tools": "TOOLS", + "app_desktop_menu_settings_new": "SETTINGS NEW", + "app_desktop_menu_settings": "SETTINGS", + "app_desktop_menu_phonebook": "PHONEBOOK", + "app_desktop_menu_title": "Menu", + "app_desktop_tools_title": "Tools", + "app_desktop_tools_notes": "NOTES", + "app_desktop_tools_calculator": "CALCULATOR", + "app_desktop_tools_recorder": "RECORDER", + "app_desktop_tools_antenna": "ANTENNA TEST", + "app_desktop_poweroff_title": "Turn Off", + "app_desktop_poweroff_question": "Select Yes to power down", + "app_desktop_show": "SHOW", + "app_desktop_calls": "CALLS", + "app_desktop_clear": "CLEAR", + "app_desktop_clear_all": "CLEAR ALL", + "app_call_call": "CALL", + "app_call_clear": "CLEAR", + "app_call_reject": "REJECT", + "app_call_answer": "ANSWER", + "app_call_message": "MESSAGE", + "app_call_end_call": "END CALL", + "app_call_emergency": "Emergency call", + "app_call_is_calling": "is calling", + "app_call_calling": "calling...", + "app_call_call_ended": "call ended", + "app_call_contact": "CONTACT", + "app_call_mute": "MUTE", + "app_call_muted": "MUTED", + "app_call_speaker": "SPEAKER", + "app_call_speaker_on": "SPEAKER ON", + "app_call_bluetooth": "BLUETOOTH", + "app_call_no_sim": "No SIM.\n\nTo make a call,\nplease insert a SIM card.", + "app_call_offline": "You're offline.\n\nTo make a call\n switch to the Connected mode.", + "app_messages_title_main": "Messages", + "app_messages_new_message": "New Message", + "app_messages_no_messages": "There are no messages yet.\nPress Left arrow to add new.", + "app_messages_thread_delete_confirmation": "Do you really want to delete\nthis conversation?", + "app_messages_message_delete_confirmation": "

Do you really want to delete

this message?
", + "app_messages_thread_no_result": "There are no results", + "app_messages_message": "Message", + "app_messages_templates": "Templates", + "app_messages_no_sim": "No SIM.\n\nTo send a SMS,\nplease insert a SIM card.", + "app_messages_offline": "You're offline.\n\nTo send a SMS\n switch to the Connected mode.", + "app_messages_thread_draft": "Draft: ", + "app_messages_thread_not_sent": "Not sent: ", + "app_messages_thread_you": "You: ", + "app_settings_title_main": "Settings", + "app_settings_title_main_new": "Settings New", + "app_settings_bt": "Bluetooth", + "app_settings_bluetooth_add_device": "Add device", + "app_settings_bluetooth_all_devices": "All devices", + "app_settings_bluetooth_all_devices_indent": " All devices", + "app_settings_bluetooth_searching_devices": "Searching devices... \nIt may take a moment.", + "app_settings_bluetooth_main": "Bluetooth", + "app_settings_bluetooth_phone_name": "Phone name", + "app_settings_bluetooth_phone_name_indent": " Phone name", + "app_settings_bluetooth_phone_visibility": "Phone visibility", + "app_settings_net": "Network", + "app_settings_disp_key": "Display and keypad", + "app_settings_display_display_light": "Display light", + "app_settings_display_light_main": "Frontlight", + "app_settings_display_light_auto": "Automatic", + "app_settings_display_light_brightness": "Brightness", + "app_settings_display_font_size": "Font size", + "app_settings_display_locked_screen": "Locked screen", + "app_settings_display_keypad_light": "Keypad light", + "app_settings_display_keypad_light_on": "Always on", + "app_settings_display_keypad_light_active": "On when active", + "app_settings_display_keypad_light_off": "Off", + "app_settings_display_input_language": "Input language", + "app_settings_display_locked_screen_autolock": "Autolock", + "app_settings_display_locked_screen_wallpaper": "Wallpaper", + "app_settings_display_locked_screen_quotes": "Quotes", + "app_settings_display_locked_screen_new_quote": "New quote", + "app_settings_display_wallpaper_logo": "Mudita logo", + "app_settings_display_wallpaper_clock": "Clock", + "app_settings_display_wallpaper_quotes": "Quotes", + "app_settings_display_wallpaper_select_quotes": "Select Quotes", + "app_settings_system": "System", + "app_settings_apps_tools": "Apps and tools", + "app_settings_apps_messages": "Messages", + "app_settings_show_unread_first": "Show unread first", + "app_settings_Templates": "Templates", + "app_settings_apps_torch": "Torch", + "app_settings_title_torch": "Torch", + "app_settings_torch_sunset_red_light_option": "Sunset red light", + "app_settings_torch_nightshift_time_option": "Nightshift time", + "app_settings_torch_description": "In the nightshift, the torch will use\nsunset red light so it won't disturb\nyour and others sleep.", + "app_settings_date_and_time": "Date and Time", + "app_settings_title_day": "Day", + "app_settings_title_month": "Month", + "app_settings_title_year": "Year", + "app_settings_title_time": "Time", + "app_settings_cellular_passthrough": "Cellular <-> USB", + "app_settings_display": "Display", + "app_settings_phone_modes": "Phone Modes", + "app_settings_security": "Security", + "app_settings_language": "Language", + "app_settings_about": "About Mudita Pure", + "app_settings_title_languages": "Language Selection", + "app_settings_language_english": "English", + "app_settings_language_polish": "Polish", + "app_settings_language_german": "German", + "app_settings_language_spanish": "Spanish", + "app_settings_network_active_card": "Active card", + "app_settings_network_operator_auto_select": "Operator auto-select", + "app_settings_network_all_operators": "All Operators", + "app_settings_network_import_contacts_from_sim_card": "Import contacts from SIM card", + "app_settings_network_sim1": "Sim1", + "app_settings_network_sim2": "Sim2", + "app_settings_toggle_on": "ON", + "app_settings_toggle_off": "OFF", + "app_phonebook_title_main": "Contacts", + "app_phonebook_search_win_contacts": "Contacts", + "common_search_uc": "Search", + "app_phonebook_search_win_info": "Type what do you need\nand click SEARCH", + "common_search_results": "Search results", + "app_phonebook_search_no_results": "No contacts found.", + "app_phonebook_list_favourites": "Favourites", + "app_phonebook_contact_title": "Add Contact", + "app_phonebook_contact_no_name": "no name", + "app_phonebook_contact_note": "Note", + "app_phonebook_contact_address": "Address", + "app_phonebook_contact_information": "Information", + "app_phonebook_contact_favourites_upper": "FAVOURITES", + "app_phonebook_contact_speed_dial_upper": "SPEED DIAL", + "app_phonebook_contact_speed_blocked_uppper": "BLOCKED", + "app_phonebook_ice_contacts_title": "ICE Contacts", + "app_phonebook_duplicate_numbers": "Number $CONTACT_SPEED_DIAL$ is assigned to \n $CONTACT_NAME$. Replace it?", + "app_phonebook_duplicate_speed_dial_title": "Speed dial key ($CONTACT_SPEED_DIAL$)", + "app_phonebook_options_title": "Options", + "app_phonebook_options_edit": "Edit Contact", + "app_phonebook_options_block": "Block", + "app_phonebook_options_block_confirm": "Block this contact?", + "app_phonebook_options_block_notification": "Contact blocked.", + "app_phonebook_options_unblock": "Unblock", + "app_phonebook_options_unblock_confirm": "Unblock this contact?", + "app_phonebook_options_unblock_notification": "Contact unblocked.", + "app_phonebook_options_delete": "Delete", + "app_phonebook_options_delete_confirm": "Do you really want to delete\nthis contact?", + "app_phonebook_options_delete_notification": "This contact has been deleted\nsuccessfully.", + "app_phonebook_options_send_bt": "Send via Bluetooth", + "app_phonebook_options_forward_namecard": "Forward namecard", + "app_phonebook_options_send_sms": "Send via SMS", + "app_phonebook_new_contact_first_name": "First name", + "app_phonebook_new_contact_second_name": "Second name", + "app_phonebook_new_contact_number": "Number", + "app_phonebook_new_contact_second_number": "Second number", + "app_phonebook_new_contact_email": "Email", + "app_phonebook_new_contact_address": "Address", + "app_phonebook_new_contact_note": "Note", + "app_phonebook_new_speed_dial_key": "Speed dial key", + "app_phonebook_new_add_to_fav": "Add to favourites", + "app_phonebook_new_add_to_ice": "Add to ICE", + "app_phonebook_check": "CHECK", + "app_phonebook_uncheck": "UNCHECK", + "app_meditation_title_main": "Meditation", + "app_meditation_preparation_time": "Preparation time", + "app_meditation_put_down_phone_and_wait": "Put down the phone and wait for
the gong.
", + "app_meditation_thank_you_for_session": "Thank you for this
meditation session.
", + "app_meditation_option_show_counter": "Show meditation counter", + "app_meditation_interval_chime": "Interval Chime", + "app_meditation_interval_none": "None", + "app_meditation_interval_every_x_minutes": "Every %0 minutes", + "app_music_player_all_songs": "All songs", + "app_music_player_play": "PLAY", + "app_music_player_music_library": "MUSIC LIBRARY", + "app_music_player_quit": "QUIT", + "app_music_player_music_empty_window_notification": "Press Music Library to choose\n a song from the library", + "app_special_input_window": "Special characters", + "app_emoji_input_window": "Emoji", + "sms_add_rec_num": "Add recipient or type a number", + "sms_title_message": "New message", + "sms_call_text": "Call ", + "sms_resend_failed": "Send again", + "sms_delete_conversation": "Delete conversation", + "sms_forward_message": "Forward message", + "sms_copy": "Copy", + "sms_delete_message": "Delete", + "sms_from_this_sms": "From this message", + "sms_use_template": "Use Template", + "sms_paste": "Paste", + "sms_reply": "REPLY", + "sms_temp_reply": "Reply", + "sms_mark_read": "Mark as read", + "sms_mark_unread": "Mark as unread", + "settings_lang_PL": "PL", + "settings_lang_ENG": "ENG", + "settings_lang_DE": "DE", + "settings_lang_SP": "SP", + "desktop_powerdown_info1": "Now It is truly...", + "desktop_powerdown_info2": "Disabled!!!", + "app_desktop_update": "Update", + "app_desktop_update_to": "Update to", + "app_desktop_update_apply": "Do you want to apply this update?", + "app_desktop_update_current": "Current", + "app_desktop_update_apply": "Apply update?", + "app_desktop_update_start": "Update start", + "app_desktop_update_size": "size", + "app_desktop_update_bytes": "bytes", + "app_desktop_update_unpacking": "Unpacking" +} diff --git a/image/assets/lang/Espanol.json b/image/assets/lang/Espanol.json new file mode 100644 index 0000000000000000000000000000000000000000..3bd847f72b69edbe88e9d866ba926e0e6a9857b9 --- /dev/null +++ b/image/assets/lang/Espanol.json @@ -0,0 +1,178 @@ +{ + "common_kbd_lower": "lang_sp_lower", + "common_kbd_upper": "lang_sp_upper", + "common_kbd_numeric": "numeric", + "common_add": "ADD", + "common_open": "ABIERTA", + "common_call": "CALL", + "common_save": "SAVE", + "common_send": "SEND", + "common_confirm": "CONFIRMAR", + "common_select": "SELECT", + "common_ok": "OK", + "common_back": "ATRÁS", + "common_set": "CONJUNTO", + "common_yes": "Yes", + "common_no": "No", + "common_speaker": "SPEAKER", + "common_mute": "MUTE", + "common_switch": "CAMBIAR", + "common_options": "OPCIONES", + "common_monday": "Lunes", + "common_tuesday": "Martes", + "common_wednesday": "Miércoles", + "common_thursday": "Jueves", + "common_friday": "Viernes", + "common_saturday": "Sábado", + "common_sunday": "Domingo", + "common_information": "Information", + "common_january": "January", + "common_february": "February", + "common_march": "March", + "common_april": "April", + "common_may": "May", + "common_june": "June", + "common_july": "July", + "common_august": "August", + "common_september": "September", + "common_october": "October", + "common_november": "November", + "common_december": "December", + "common_yesterday": "Yesterday", + "common_today": "Today", + "locale_12hour_min": "%I:%M %p", + "locale_24hour_min": "%H:%M", + "locale_date_full": "%m/%d/%y", + "locale_date_short": "%d/%m", + "app_notes_title_main": "Notes", + "app_notes_new_note": "New Note", + "app_notes_save": "SAVE", + "app_notes_edit": "EDIT", + "app_notes_back": "BACK", + "app_calllog_title_main": "Calls", + "app_calllog_new_note": "New Note", + "app_calllog_save": "SAVE", + "app_calllog_edit": "EDIT", + "app_calllog_back": "BACK", + "app_calllog_type": "Type", + "app_calllog_duration": "Duration", + "app_calllog_incoming_call": "incoming call", + "app_calllog_outgoing_call": "outgoing call", + "app_calllog_missed_call": "missed call", + "app_calllog_date": "Date", + "app_calllog_options_title": "Options", + "app_calllog_options_contact_details": "Contact details", + "app_calllog_options_delete_call": "Delete call", + "app_calllog_delete_call_confirmation": "Do you really want to delete this call from the list?", + "app_desktop_unlock": "DESBLOQUEAR", + "app_desktop_lock": "BLOQUEAR", + "app_desktop_menu": "MENÚ", + "app_desktop_emergency": "EMERGENCIA", + "app_desktop_pin_lock": "Enter passcode", + "app_desktop_pin_info1": "Wrong passcode", + "app_desktop_pin_info2": "Allowed unlock attempts", + "app_desktop_pin_blocked1": "Sorry, phone blocked", + "app_desktop_unread_messages": "unread messages", + "app_desktop_missed_calls": "missed calls", + "app_desktop_menu_phone": "PHONE", + "app_desktop_menu_contacts": "CONTACTS", + "app_desktop_menu_messages": "MESSAGES", + "app_desktop_menu_calendar": "CALENDAR", + "app_desktop_menu_alarm": "ALARM", + "app_desktop_menu_meditation": "MEDITATION", + "app_desktop_menu_music": "MUSIC", + "app_desktop_menu_tools": "TOOLS", + "app_desktop_menu_settings": "SETTINGS", + "app_desktop_menu_phonebook": "CONTACTOS", + "app_desktop_menu_title": "Main Menu", + "app_desktop_tools_title": "Tools", + "app_desktop_tools_notes": "NOTES", + "app_desktop_tools_calculator": "CALCULATOR", + "app_desktop_tools_recorder": "RECORDER", + "app_desktop_tools_antenna": "ANTENNA TEST", + "app_desktop_poweroff_title": "Turn Off", + "app_desktop_poweroff_question": "Select Yes to power down", + "app_call_call": "CALL", + "app_call_clear": "CLEAR", + "app_call_reject": "REJECT", + "app_call_answer": "ANSWER", + "app_call_message": "MESSAGE", + "app_call_return": "RETURN", + "app_call_end_call": "END CALL", + "app_call_emergency": "Emergency call", + "app_call_is_calling": "is calling", + "app_call_call_ended": "call ended", + "app_call_contact": "CONTACT", + "app_messages_title_main": "Messages", + "app_messages_new_message": "New Message", + "app_settings_title_main": "Settings", + "app_settings_bt": "Bluetooth", + "app_settings_date_and_time": "Date and Time", + "app_settings_title_day": "Day", + "app_settings_title_month": "Month", + "app_settings_title_year": "Year", + "app_settings_title_time": "Time", + "app_settings_display": "Display", + "app_settings_phone_modes": "Phone Modes", + "app_settings_security": "Security", + "app_settings_language": "Language", + "app_settings_about": "About Mudita Pure", + "app_settings_title_languages": "Language Selection", + "app_settings_language_english": "Inglesa", + "app_settings_language_polish": "Polaco", + "app_settings_language_german": "Alemana", + "app_settings_language_spanish": "Español", + "app_settings_date_time": "Date and Time", + "app_settings_cellular_passthrough": "Cellular <-> USB", + "app_phonebook_title_main": "Contactos", + "app_phonebook_call": "CALL", + "app_phonebook_save": "SAVE", + "app_phonebook_open": "OPEN", + "app_phonebook_select": "SELECT", + "app_phonebook_search_win_contacts": "Contacts", + "common_search_uc": "Search", + "app_phonebook_search_win_info": "Type what do you need and click SEARCH", + "common_search_results": "Results", + "app_phonebook_list_favourites": "Favourites", + "app_phonebook_contact_title": "Add Contact", + "app_phonebook_contact_no_name": "no name", + "app_phonebook_contact_note": "Note", + "app_phonebook_contact_address": "Address", + "app_phonebook_contact_information": "Information", + "app_phonebook_contact_favourites_upper": "FAVOURITES", + "app_phonebook_contact_speed_dial_upper": "SPEED DIAL", + "app_phonebook_contact_speed_blocked_uppper": "BLOCKED", + "app_phonebook_duplicate_numbers": "This numbers belongs to\n$CONTACT_NAME$. Would you like\nto create a new contact?", + "app_phonebook_duplicate_speed_dial": "This number is already assigned\nto $CONTACT_NAME$. Would you\nlike to replace it?", + "app_phonebook_options_title": "Options", + "app_phonebook_options_edit": "Edit Contact", + "app_phonebook_options_block": "Block", + "app_phonebook_options_block_confirm": "Do you really want to\nblock this contact?", + "app_phonebook_options_delete": "Delete", + "app_phonebook_options_delete_confirm": "Do you really want to\ndelete this contact?", + "app_phonebook_options_send_bt": "Send via Bluetooth", + "app_phonebook_options_forward_namecard": "Forward namecard", + "app_phonebook_options_send_sms": "Send via SMS", + "app_phonebook_new_contact_first_name": "First name", + "app_phonebook_new_contact_second_name": "Second name", + "app_phonebook_new_contact_number": "Number", + "app_phonebook_new_contact_second_number": "Second number", + "app_phonebook_new_contact_email": "Email", + "app_phonebook_new_contact_address": "Address", + "app_phonebook_new_contact_note": "Note", + "app_phonebook_new_speed_dial_key": "Speed dial key", + "app_phonebook_new_add_to_fav": "Add to favourites", + "app_phonebook_new_add_to_ice": "Add to ICE", + "app_phonebook_check": "CHECK", + "app_phonebook_uncheck": "UNCHECK", + "app_meditation_title_main": "Meditation", + "sms_call_text": "Llamado: ", + "sms_contact_details": "Detales de contacto: ", + "sms_delete_conversation": "Eliminar conversación", + "settings_lang_PL": "PL", + "settings_lang_ENG": "ENG", + "settings_lang_DE": "DE", + "settings_lang_SP": "SP", + "desktop_powerdown_info1": "Now It is truly...", + "desktop_powerdown_info2": "Disabled!!!" +} diff --git a/image/assets/lang/Francais.json b/image/assets/lang/Francais.json new file mode 100644 index 0000000000000000000000000000000000000000..9397ec472f3b5dd6ba59618a085b0ccca4c25c35 --- /dev/null +++ b/image/assets/lang/Francais.json @@ -0,0 +1,173 @@ +{ + "common_kbd_lower": "lang_fr_lower", + "common_kbd_upper": "lang_fr_upper", + "common_kbd_numeric": "numeric", + "common_add": "ADD", + "common_open": "OPEN", + "common_call": "CALL", + "common_save": "SAVE", + "common_send": "SEND", + "common_confirm": "CONFIRM", + "common_select": "SELECT", + "common_ok": "OK", + "common_back": "BACK", + "common_set": "SET", + "common_yes": "Yes", + "common_no": "No", + "common_speaker": "SPEAKER", + "common_mute": "MUTE", + "common_switch": "SWITCH", + "common_options": "OPTIONS", + "common_monday": "Monday", + "common_tuesday": "Tuesday", + "common_wednesday": "Wednesday", + "common_thursday": "Thursday", + "common_friday": "Friday", + "common_saturday": "Saturday", + "common_sunday": "Sunday", + "common_information": "Information", + "common_january": "January", + "common_february": "February", + "common_march": "March", + "common_april": "April", + "common_may": "May", + "common_june": "June", + "common_july": "July", + "common_august": "August", + "common_september": "September", + "common_october": "October", + "common_november": "November", + "common_december": "December", + "common_yesterday": "Yesterday", + "common_today": "Today", + "locale_12hour_min": "%I:%M %p", + "locale_24hour_min": "%H:%M", + "locale_date_full": "%m/%d/%y", + "locale_date_short": "%d/%m", + "app_notes_title_main": "Notes", + "app_notes_new_note": "New Note", + "app_notes_save": "SAVE", + "app_notes_edit": "EDIT", + "app_notes_back": "BACK", + "app_calllog_title_main": "Calls", + "app_calllog_save": "SAVE", + "app_calllog_edit": "EDIT", + "app_calllog_back": "BACK", + "app_calllog_type": "Type", + "app_calllog_duration": "Duration", + "app_calllog_incoming_call": "incoming call", + "app_calllog_outgoing_call": "outgoing call", + "app_calllog_missed_call": "missed call", + "app_calllog_date": "Date", + "app_calllog_options_title": "Options", + "app_calllog_options_contact_details": "Contact details", + "app_calllog_options_delete_call": "Delete call", + "app_calllog_delete_call_confirmation": "Do you really want to delete this call from the list?", + "app_desktop_unlock": "UNLOCK", + "app_desktop_lock": "LOCK", + "app_desktop_menu": "MENU", + "app_desktop_emergency": "EMERG.", + "app_desktop_pin_lock": "Enter passcode", + "app_desktop_pin_info1": "Wrong passcode", + "app_desktop_pin_info2": "Allowed unlock attempts", + "app_desktop_pin_blocked1": "Sorry, phone blocked", + "app_desktop_unread_messages": "unread messages", + "app_desktop_missed_calls": "missed calls", + "app_desktop_menu_phone": "PHONE", + "app_desktop_menu_contacts": "CONTACTS", + "app_desktop_menu_messages": "MESSAGES", + "app_desktop_menu_calendar": "CALENDAR", + "app_desktop_menu_alarm": "ALARM", + "app_desktop_menu_meditation": "MEDITATION", + "app_desktop_menu_music": "MUSIC", + "app_desktop_menu_tools": "TOOLS", + "app_desktop_menu_settings": "SETTINGS", + "app_desktop_menu_phonebook": "PHONEBOOK", + "app_desktop_menu_title": "Main Menu", + "app_desktop_tools_title": "Tools", + "app_desktop_tools_notes": "NOTES", + "app_desktop_tools_calculator": "CALCULATOR", + "app_desktop_tools_recorder": "RECORDER", + "app_desktop_tools_antenna": "ANTENNA TEST", + "app_desktop_poweroff_title": "Turn Off", + "app_desktop_poweroff_question": "Select Yes to power down", + "app_call_call": "CALL", + "app_call_clear": "CLEAR", + "app_call_reject": "REJECT", + "app_call_answer": "ANSWER", + "app_call_message": "MESSAGE", + "app_call_return": "RETURN", + "app_call_end_call": "END CALL", + "app_call_emergency": "Emergency call", + "app_call_is_calling": "is calling", + "app_call_call_ended": "call ended", + "app_call_contact": "CONTACT", + "app_settings_title_main": "Settings", + "app_settings_bt": "Bluetooth", + "app_settings_date_and_time": "Date and Time", + "app_settings_title_day": "Day", + "app_settings_title_month": "Month", + "app_settings_title_year": "Year", + "app_settings_title_time": "Time", + "app_settings_cellular_passthrough": "Cellular <-> USB", + "app_settings_display": "Display", + "app_settings_phone_modes": "Phone Modes", + "app_settings_security": "Security", + "app_settings_language": "Language", + "app_settings_about": "About Mudita Pure", + "app_settings_title_languages": "Language Selection", + "app_settings_language_english": "English", + "app_settings_language_polish": "Polish", + "app_settings_language_german": "German", + "app_settings_language_spanish": "Spanish", + "app_settings_date_time": "Date and Time", + "app_messages_title_main": "Messages", + "app_messages_new_message": "New Message", + "app_phonebook_title_main": "Contacts", + "app_phonebook_search_win_contacts": "Contacts", + "common_search_uc": "Search", + "app_phonebook_search_win_info": "Type what do you need and click SEARCH", + "common_search_results": "Results", + "app_phonebook_list_favourites": "Favourites", + "app_phonebook_contact_title": "Add Contact", + "app_phonebook_contact_note": "Note", + "app_phonebook_contact_address": "Address", + "app_phonebook_contact_information": "Information", + "app_phonebook_contact_favourites_upper": "FAVOURITES", + "app_phonebook_contact_speed_dial_upper": "SPEED DIAL", + "app_phonebook_contact_speed_blocked_uppper": "BLOCKED", + "app_phonebook_duplicate_numbers": "This numbers belongs to\n$CONTACT_NAME$. Would you like\nto create a new contact?", + "app_phonebook_duplicate_speed_dial": "This number is already assigned\nto $CONTACT_NAME$. Would you\nlike to replace it?", + "app_phonebook_options_title": "Options", + "app_phonebook_contact_no_name": "no name", + "app_phonebook_options_edit": "Edit Contact", + "app_phonebook_options_block": "Block", + "app_phonebook_options_block_confirm": "Do you really want to\nblock this contact?", + "app_phonebook_options_delete": "Delete", + "app_phonebook_options_delete_confirm": "Do you really want to\ndelete this contact?", + "app_phonebook_options_send_bt": "Send via Bluetooth", + "app_phonebook_options_forward_namecard": "Forward namecard", + "app_phonebook_options_send_sms": "Send via SMS", + "app_phonebook_new_contact_first_name": "First name", + "app_phonebook_new_contact_second_name": "Second name", + "app_phonebook_new_contact_number": "Number", + "app_phonebook_new_contact_second_number": "Second number", + "app_phonebook_new_contact_email": "Email", + "app_phonebook_new_contact_address": "Address", + "app_phonebook_new_contact_note": "Note", + "app_phonebook_new_speed_dial_key": "Speed dial key", + "app_phonebook_new_add_to_fav": "Add to favourites", + "app_phonebook_new_add_to_ice": "Add to ICE", + "app_phonebook_check": "CHECK", + "app_phonebook_uncheck": "UNCHECK", + "app_meditation_title_main": "Meditation", + "sms_call_text": "Call: ", + "sms_contact_details": "Contact details", + "sms_delete_conversation": "Delete conversation", + "settings_lang_PL": "PL", + "settings_lang_ENG": "ENG", + "settings_lang_DE": "DE", + "settings_lang_SP": "SP", + "desktop_powerdown_info1": "Now It is truly...", + "desktop_powerdown_info2": "Disabled!!!" +} diff --git a/image/assets/lang/Polski.json b/image/assets/lang/Polski.json new file mode 100644 index 0000000000000000000000000000000000000000..7324b17dd1a5681b0b652ccbfa97eb42ee95479a --- /dev/null +++ b/image/assets/lang/Polski.json @@ -0,0 +1,173 @@ +{ + "common_kbd_lower": "lang_pl_lower", + "common_kbd_upper": "lang_pl_upper", + "common_kbd_numeric": "numeric", + "common_add": "DODAJ", + "common_open": "OTWÓRZ", + "common_call": "DZWOŃ", + "common_save": "ZAPISZ", + "common_send": "WYŚLIJ", + "common_confirm": "POTWIERDŹ", + "common_select": "WYBIERZ", + "common_ok": "DALEJ", + "common_back": "WRÓĆ", + "common_set": "USTAW", + "common_yes": "Tak", + "common_no": "Nie", + "common_speaker": "GŁOŚNIK", + "common_mute": "WYCISZ", + "common_switch": "ZMIEŃ", + "common_options": "OPCJE", + "common_monday": "poniedziałek", + "common_tuesday": "wtorek", + "common_wednesday": "środa", + "common_thursday": "czwartek", + "common_friday": "piątek", + "common_saturday": "sobota", + "common_sunday": "niedziela", + "common_information": "Informacje", + "common_january": "stycznia", + "common_february": "lutego", + "common_march": "marca", + "common_april": "kwietnia", + "common_may": "maja", + "common_june": "czerwca", + "common_july": "lipca", + "common_august": "sierpnia", + "common_september": "września", + "common_october": "października", + "common_november": "listopada", + "common_december": "grudnia", + "common_yesterday": "wczoraj", + "common_today": "dzisiaj", + "locale_12hour_min": "%I:%M", + "locale_24hour_min": "%H:%M", + "locale_date_full": "%d.%m.%y", + "locale_date_short": "%d.%m", + "app_calculator_decimal_separator": ",", + "app_notes_title_main": "Notatki", + "app_notes_new_note": "Nowa Notatka", + "app_notes_save": "ZAPISZ", + "app_notes_edit": "EDYTUJ", + "app_notes_back": "WROĆ", + "app_calllog_title_main": "Rejestr Połączeń", + "app_calllog_save": "ZAPISZ", + "app_calllog_edit": "EDYTUJ", + "app_calllog_back": "WRÓĆ", + "app_calllog_type": "Typ", + "app_calllog_duration": "Czas trwania", + "app_calllog_incoming_call": "połączenie przychodzące", + "app_calllog_outgoing_call": "połączenie wychodzące", + "app_calllog_missed_call": "połączenie nieodebrane", + "app_calllog_date": "Data", + "app_calllog_options_title": "Opcje", + "app_calllog_options_contact_details": "Szczegóły kontaktu", + "app_calllog_options_delete_call": "Usuń połączenie", + "app_calllog_delete_call_confirmation": "Czy naprawdę chcesz usunąć to połączenie z listy?", + "app_desktop_unlock": "ODBLOKUJ", + "app_desktop_lock": "ZABLOKUJ", + "app_desktop_menu": "MENU", + "app_desktop_emergency": "ALARMOWE", + "app_desktop_pin_lock": "Wprowadź hasło", + "app_desktop_pin_info1": "Błędne hasło", + "app_desktop_pin_info2": "Pozostało prób", + "app_desktop_pin_blocked1": "Telefon zablokowany", + "app_desktop_unread_messages": "nieprzeczytane wiadomości", + "app_desktop_missed_calls": "nieodebrane połączenia", + "app_desktop_menu_phone": "TELEFON", + "app_desktop_menu_contacts": "KONTAKTY", + "app_desktop_menu_messages": "WIADOMOŚCI", + "app_desktop_menu_calendar": "KALENDARZ", + "app_desktop_menu_alarm": "ALARMY", + "app_desktop_menu_meditation": "MEDYTACJA", + "app_desktop_menu_music": "MUZYKA", + "app_desktop_menu_tools": "NARZĘDZIA", + "app_desktop_menu_settings": "USTAWIENIA", + "app_desktop_menu_phonebook": "KONTAKTY", + "app_desktop_menu_title": "Główne Menu", + "app_desktop_tools_title": "Narzędzia", + "app_desktop_tools_notes": "NOTATKI", + "app_desktop_tools_calculator": "KALKULATOR", + "app_desktop_tools_recorder": "DYKTAFON", + "app_desktop_tools_antenna": "ANTENNA TEST", + "app_desktop_poweroff_title": "Wyłączanie", + "app_desktop_poweroff_question": "Wybierz Tak by wyłączyć", + "app_call_call": "DZWOŃ", + "app_call_clear": "WYCZYŚĆ", + "app_call_reject": "ODRZUĆ", + "app_call_answer": "ODBIERZ", + "app_call_message": "WIADOMOŚĆ", + "app_call_return": "POWRÓT", + "app_call_end_call": "ZAKOŃCZ", + "app_call_emergency": "Numer alarmowy", + "app_call_is_calling": "dzwoni", + "app_call_call_ended": "zakończono", + "app_call_contact": "KONTAKT", + "app_settings_title_main": "Ustawienia", + "app_settings_bt": "Bluetooth", + "app_settings_date_and_time": "Data i Czas", + "app_settings_title_day": "Dzień", + "app_settings_title_month": "Miesiąc", + "app_settings_title_year": "Rok", + "app_settings_title_time": "Czas", + "app_settings_cellular_passthrough": "Modem <-> USB", + "app_settings_display": "Ekran", + "app_settings_phone_modes": "Tryby Pracy", + "app_settings_security": "Bezpieczeństwo", + "app_settings_language": "Język", + "app_settings_about": "O Mudita Pure", + "app_settings_title_languages": "Wybór Języka", + "app_settings_language_english": "Angielski", + "app_settings_language_polish": "Polski", + "app_settings_language_german": "Niemiecki", + "app_settings_language_spanish": "Hiszpański", + "app_messages_title_main": "Wiadomości", + "app_messages_new_message": "Nowa Wiadomość", + "app_phonebook_title_main": "Kontakty", + "app_phonebook_search_win_contacts": "Kontakty", + "common_search_uc": "Szukaj", + "app_phonebook_search_win_info": "wpisz czego szukasz i naciśnij SZUKAJ", + "common_search_results": "Rezultaty", + "app_phonebook_list_favourites": "Ulubione", + "app_phonebook_contact_title": "Dodaj Kontakt", + "app_phonebook_contact_no_name": "brak nazwy", + "app_phonebook_contact_note": "Notatka", + "app_phonebook_contact_address": "Adres", + "app_phonebook_contact_information": "Informacje", + "app_phonebook_contact_favourites_upper": "ULUBIONE", + "app_phonebook_contact_speed_dial_upper": "SZYBKIE WYBIERANIE", + "app_phonebook_contact_speed_blocked_uppper": "ZABLOKOWANY", + "app_phonebook_duplicate_numbers": "Ten numer należy do\n$CONTACT_NAME$. Czy chcesz\nutworzyć nowy kontakt?", + "app_phonebook_duplicate_speed_dial": "Ten numer jest już przypisany\ndo $CONTACT_NAME$. Czy chcesz\ngo zastąpić?", + "app_phonebook_options_title": "Opcje", + "app_phonebook_options_edit": "Edycja Kontaktu", + "app_phonebook_options_block": "Blokuj", + "app_phonebook_options_block_confirm": "Czy na pewno chcesz\nzablokować ten kontakt?", + "app_phonebook_options_delete": "Usuń", + "app_phonebook_options_delete_confirm": "Czy na pewno chcesz\nusunąć ten kontakt?", + "app_phonebook_options_send_bt": "Wyślij przez Bluetooth", + "app_phonebook_options_forward_namecard": "Przekaż wizytówkę", + "app_phonebook_options_send_sms": "Wyślij przez SMS", + "app_phonebook_new_contact_first_name": "Imię", + "app_phonebook_new_contact_second_name": "Nazwisko", + "app_phonebook_new_contact_number": "Numer", + "app_phonebook_new_contact_second_number": "Drugi numer", + "app_phonebook_new_contact_email": "Email", + "app_phonebook_new_contact_address": "Adres", + "app_phonebook_new_contact_note": "Notatka", + "app_phonebook_new_speed_dial_key": "Szybkie wybieranie", + "app_phonebook_new_add_to_fav": "Dodaj do ulubionych", + "app_phonebook_new_add_to_ice": "Dodaj do ICE", + "app_phonebook_check": "ZAZNACZ", + "app_phonebook_uncheck": "ODZNACZ", + "app_meditation_title_main": "Medytacja", + "sms_call_text": "Call: ", + "sms_contact_details": "Contact details", + "sms_delete_conversation": "Delete conversation", + "settings_lang_PL": "PL", + "settings_lang_ENG": "ENG", + "settings_lang_DE": "DE", + "settings_lang_SP": "SP", + "desktop_powerdown_info1": "Teraz jest...", + "desktop_powerdown_info2": "Wyłączone!!!" +} diff --git a/image/assets/lang/lang_de.json b/image/assets/lang/lang_de.json deleted file mode 100644 index f021b2ef26422f81d9b5bd39efda78888ed33d5e..0000000000000000000000000000000000000000 --- a/image/assets/lang/lang_de.json +++ /dev/null @@ -1,187 +0,0 @@ -{ - "common_kbd_lower": "lang_de_lower", - "common_kbd_upper": "lang_de_upper", - "common_kbd_numeric": "numeric", - - "common_add": "ADD", - "common_open": "OPEN", - "common_call": "CALL", - "common_save": "SAVE", - "common_send": "SEND", - "common_confirm": "CONFIRM", - "common_select": "SELECT", - "common_ok": "OK", - "common_back": "BACK", - "common_set": "SET", - "common_yes": "Yes", - "common_no": "No", - "common_speaker": "SPEAKER", - "common_mute": "MUTE", - "common_switch": "SWITCH", - "common_options": "OPTIONS", - "common_monday": "Monday", - "common_tuesday": "Tuesday", - "common_wednesday": "Wednesday", - "common_thursday": "Thursday", - "common_friday": "Friday", - "common_saturday": "Saturday", - "common_sunday": "Sunday", - - "common_information": "Information", - - "common_january": "January", - "common_february": "February", - "common_march": "March", - "common_april": "April", - "common_may": "May", - "common_june": "June", - "common_july": "July", - "common_august": "August", - "common_september": "September", - "common_october": "October", - "common_november": "November", - "common_december": "December", - "common_yesterday" : "Yesterday", - "common_today" : "Today", - "locale_12hour_min" : "%I:%M %p", - "locale_24hour_min" : "%H:%M", - "locale_date_full" : "%m/%d/%y", - "locale_date_short" : "%d/%m", - - "app_notes_title_main": "Notes", - "app_notes_new_note": "New Note", - "app_notes_save": "SAVE", - "app_notes_edit": "EDIT", - "app_notes_back": "BACK", - - "app_calllog_title_main": "Calls", - "app_calllog_save": "SAVE", - "app_calllog_edit": "EDIT", - "app_calllog_back": "BACK", - "app_calllog_type": "Type", - "app_calllog_duration": "Duration", - "app_calllog_incoming_call": "incoming call", - "app_calllog_outgoing_call": "outgoing call", - "app_calllog_missed_call": "missed call", - "app_calllog_date": "Date", - "app_calllog_options_title": "Options", - "app_calllog_options_contact_details": "Contact details", - "app_calllog_options_delete_call": "Delete call", - "app_calllog_delete_call_confirmation": "Do you really want to delete this call from the list?", - - "app_desktop_unlock": "UNLOCK", - "app_desktop_lock": "LOCK", - "app_desktop_menu": "MENU", - "app_desktop_emergency": "EMERG.", - "app_desktop_pin_lock": "Enter passcode", - "app_desktop_pin_info1": "Wrong passcode", - "app_desktop_pin_info2": "Allowed unlock attempts", - "app_desktop_pin_blocked1": "Sorry, phone blocked", - "app_desktop_unread_messages": "unread messages", - "app_desktop_missed_calls": "missed calls", - "app_desktop_menu_phone": "PHONE", - "app_desktop_menu_contacts": "CONTACTS", - "app_desktop_menu_messages": "MESSAGES", - "app_desktop_menu_calendar": "CALENDAR", - "app_desktop_menu_alarm": "ALARM", - "app_desktop_menu_meditation": "MEDITATION", - "app_desktop_menu_music": "MUSIC", - "app_desktop_menu_tools": "TOOLS", - "app_desktop_menu_settings": "SETTINGS", - "app_desktop_menu_phonebook": "PHONEBOOK", - "app_desktop_menu_title": "Main Menu", - "app_desktop_tools_title": "Tools", - "app_desktop_tools_notes": "NOTES", - "app_desktop_tools_calculator": "CALCULATOR", - "app_desktop_tools_recorder": "RECORDER", - "app_desktop_tools_antenna": "ANTENNA TEST", - "app_desktop_poweroff_title": "Turn Off", - "app_desktop_poweroff_question": "Select Yes to power down", - - "app_call_call": "CALL", - "app_call_clear": "CLEAR", - "app_call_reject": "REJECT", - "app_call_answer": "ANSWER", - "app_call_message": "MESSAGE", - "app_call_return": "RETURN", - "app_call_end_call": "END CALL", - "app_call_emergency": "Emergency call", - "app_call_is_calling": "is calling", - "app_call_call_ended": "call ended", - "app_call_contact": "CONTACT", - - "app_settings_title_main": "Settings", - "app_settings_bt" : "Bluetooth", - "app_settings_date_and_time": "Date and Time", - "app_settings_title_day": "Day", - "app_settings_title_month": "Month", - "app_settings_title_year": "Year", - "app_settings_title_time": "Time", - "app_settings_cellular_passthrough": "Cellular <-> USB", - "app_settings_display": "Display", - "app_settings_phone_modes": "Phone Modes", - "app_settings_security": "Security", - "app_settings_language": "Language", - "app_settings_about": "About Mudita Pure", - "app_settings_title_languages": "Language Selection", - "app_settings_language_english": "English", - "app_settings_language_polish": "Polish", - "app_settings_language_german": "German", - "app_settings_language_spanish": "Spanish", - "app_settings_date_time": "Date and Time", - - "app_messages_title_main": "Messages", - "app_messages_new_message": "New Message", - - "app_phonebook_title_main": "Contacts", - "app_phonebook_search_win_contacts": "Contacts", - "common_search_uc": "Search", - "app_phonebook_search_win_info": "Type what do you need and click SEARCH", - "common_search_results": "Results", - "app_phonebook_list_favourites": "Favourites", - "app_phonebook_contact_title": "Add Contact", - "app_phonebook_contact_note": "Note", - "app_phonebook_contact_address": "Address", - "app_phonebook_contact_information": "Information", - "app_phonebook_contact_favourites_upper": "FAVOURITES", - "app_phonebook_contact_speed_dial_upper": "SPEED DIAL", - "app_phonebook_contact_speed_blocked_uppper": "BLOCKED", - "app_phonebook_duplicate_numbers": "This numbers belongs to\n$CONTACT_NAME$. Would you like\nto create a new contact?", - "app_phonebook_duplicate_speed_dial":"This number is already assigned\nto $CONTACT_NAME$. Would you\nlike to replace it?", - "app_phonebook_options_title": "Options", - "app_phonebook_contact_no_name": "no name", - "app_phonebook_options_edit": "Edit Contact", - "app_phonebook_options_block": "Block", - "app_phonebook_options_block_confirm": "Do you really want to\nblock this contact?", - "app_phonebook_options_delete": "Delete", - "app_phonebook_options_delete_confirm": "Do you really want to\ndelete this contact?", - "app_phonebook_options_send_bt": "Send via Bluetooth", - "app_phonebook_options_forward_namecard": "Forward namecard", - "app_phonebook_options_send_sms": "Send via SMS", - "app_phonebook_new_contact_first_name": "First name", - "app_phonebook_new_contact_second_name": "Second name", - "app_phonebook_new_contact_number": "Number", - "app_phonebook_new_contact_second_number": "Second number", - "app_phonebook_new_contact_email": "Email", - "app_phonebook_new_contact_address": "Address", - "app_phonebook_new_contact_note": "Note", - "app_phonebook_new_speed_dial_key": "Speed dial key", - "app_phonebook_new_add_to_fav": "Add to favourites", - "app_phonebook_new_add_to_ice": "Add to ICE", - "app_phonebook_check": "CHECK", - "app_phonebook_uncheck": "UNCHECK", - - "app_meditation_title_main": "Meditation", - - "sms_call_text" : "Call: ", - "sms_contact_details" : "Contact details", - "sms_delete_conversation" : "Delete conversation", - - "settings_lang_PL": "PL", - "settings_lang_ENG": "ENG", - "settings_lang_DE": "DE", - "settings_lang_SP": "SP", - "desktop_powerdown_info1": "Now It is truly...", - "desktop_powerdown_info2": "Disabled!!!" - -} diff --git a/image/assets/lang/lang_en.json b/image/assets/lang/lang_en.json deleted file mode 100644 index 54abad844b01ebd7fb15460e979abda3af505657..0000000000000000000000000000000000000000 --- a/image/assets/lang/lang_en.json +++ /dev/null @@ -1,402 +0,0 @@ -{ - "common_kbd_lower": "lang_eng_lower", - "common_kbd_upper": "lang_eng_upper", - "common_kbd_numeric": "numeric", - "common_kbd_phone": "phone", - - "common_add": "ADD", - "common_open": "OPEN", - "common_call": "CALL", - "common_save": "SAVE", - "common_send": "SEND", - "common_confirm": "CONFIRM", - "common_select": "SELECT", - "common_use": "USE", - "common_ok": "OK", - "common_back": "BACK", - "common_set": "SET", - "common_yes": "Yes", - "common_no": "No", - "common_switch": "SWITCH", - "common_options": "OPTIONS", - "common_information": "Information", - "common_check": "CHECK", - "common_uncheck": "UNCHECK", - "common_emoji": "EMOJI", - "common_special_characters": "SPECIAL", - "common_start" : "START", - "common_stop" : "STOP", - "common_resume" : "RESUME", - "common_pause" : "PAUSE", - - "common_mo":"MO", - "common_tu":"TU", - "common_we":"WE", - "common_th":"TH", - "common_fr":"FR", - "common_sa":"SA", - "common_su":"SU", - - "common_monday": "Monday", - "common_tuesday": "Tuesday", - "common_wednesday": "Wednesday", - "common_thursday": "Thursday", - "common_friday": "Friday", - "common_saturday": "Saturday", - "common_sunday": "Sunday", - - "common_january": "January", - "common_february": "February", - "common_march": "March", - "common_april": "April", - "common_may": "May", - "common_june": "June", - "common_july": "July", - "common_august": "August", - "common_september": "September", - "common_october": "October", - "common_november": "November", - "common_december": "December", - "common_yesterday" : "Yesterday", - "common_today" : "Today", - "common_results_prefix": "Results: ", - "common_search": "SEARCH", - - "locale_12hour_min" : "%I:%M %p", - "locale_24hour_min" : "%H:%M", - "locale_date_full" : "%m/%d/%y", - "locale_date_short" : "%d/%m", - "common_AM" : "AM", - "common_PM" : "PM", - - "duration_min_0sec" : "%M:%0S", - "duration_0min_0sec" : "%0M:%0S", - "duration_0hmin_0sec" : "%0N:%0S", - "duration_hour_0min_0sec" : "%H:%0M:%0S", - - "brightness_text" : "BRIGHTNESS", - "volume_text" : "VOLUME", - "home_modes_connected" : "CONNECTED", - "home_modes_notdisturb" : "DO NOT DISTURB", - "home_modes_offline" : "OFFLINE", - - "app_calendar_title_main" : "Calendar", - "app_calendar_options_title": "Options", - "app_calendar_options_edit": "Edit", - "app_calendar_options_delete": "Delete", - "app_calendar_event_delete_confirmation": "Delete this event?", - "app_calendar_bar_month": "MONTH", - "app_calendar_bar_list": "LIST", - "app_calendar_event_detail": "Event", - "app_calendar_event_detail_repeat": "Repeat", - "app_calendar_event_detail_reminder": "Reminder", - "app_calendar_no_events_information": "No events yet.

Press left arrow to add new.

", - "app_calendar_repeat_never": "Never", - "app_calendar_repeat_daily": "Daily", - "app_calendar_repeat_weekly": "Weekly", - "app_calendar_repeat_two_weeks": "Two weeks", - "app_calendar_repeat_month": "Month", - "app_calendar_repeat_year": "Year", - "app_calendar_repeat_custom": "Custom", - "app_calendar_reminder_never": "Never", - "app_calendar_reminder_event_time": "At the time of the event", - "app_calendar_reminder_5_min_before": "5 mins before", - "app_calendar_reminder_15_min_before": "15 mins before", - "app_calendar_reminder_30_min_before": "30 mins before", - "app_calendar_reminder_1_hour_before": "1h before", - "app_calendar_reminder_2_hour_before": "2h before", - "app_calendar_reminder_1_day_before": "1 day before", - "app_calendar_reminder_2_days_before": "2 days before", - "app_calendar_reminder_1_week_before": "1 week before", - "app_calendar_custom_repeat_title": "Custom repeat", - "app_calendar_new_event_title": "New event", - "app_calendar_edit_event_title": "Edit event", - "app_calendar_edit": "EDIT", - "app_calendar_new_edit_event_name": "Event name", - "app_calendar_new_edit_event_allday": "All day event", - "app_calendar_all_day": "All day", - "app_calendar_new_edit_event_start": "Start", - "app_calendar_new_edit_event_end": "End", - - "app_calculator_title_main": "Calculator", - "app_calculator_equals": "EQUALS", - "app_calculator_decimal_separator": ".", - "app_calculator_error": "Error", - - "app_options_invalid_option": " ", - "app_options_contact_details": "Contact details", - "app_options_contact_add": "Add to contacts", - "app_options_contact_edit": "Edit Contact", - - "app_notes_title_main": "Notes", - "app_notes_new_note": "New Note", - "app_notes_save": "SAVE", - "app_notes_edit": "EDIT", - "app_notes_back": "BACK", - - "app_calllog_title_main": "Calls", - "app_calllog_new_note": "New Note", - "app_calllog_save": "SAVE", - "app_calllog_edit": "EDIT", - "app_calllog_back": "BACK", - "app_calllog_type": "Type", - "app_calllog_duration": "Duration", - "app_calllog_incoming_call": "incoming call", - "app_calllog_outgoing_call": "outgoing call", - "app_calllog_missed_call": "missed call", - "app_calllog_rejected_call": "rejected call", - "app_calllog_date": "Date", - "app_calllog_options_title": "Options", - "app_calllog_options_delete_call": "Delete call", - "app_calllog_delete_call_confirmation": "Do you really want to delete this call from the list?", - - "app_desktop_unlock": "UNLOCK", - "app_desktop_lock": "LOCK", - "app_desktop_menu": "MENU", - "app_desktop_emergency": "EMERG.", - - "app_desktop_screen_enter_passcode": "Enter passcode", - "app_desktop_screen_wrong_pin": "Wrong passcode", - "app_desktop_screen_allowed_attempts": "Allowed unlock attempts", - "app_desktop_screen_blocked_info": "Sorry, phone blocked", - "app_desktop_sim_to_unlock": "To unlock the", - "app_desktop_sim_card": "card", - "app_desktop_sim_type_pin": "please type a PIN code:", - "app_desktop_sim_blocked": "The SIM card is blocked.", - "app_desktop_sim_enter_pin": "Enter new PIN code", - "app_desktop_sim_confirm_pin": "Enter new PIN code", - "app_desktop_sim_type_puk": "To unblock it, type the PUK code:", - "app_desktop_no_pin_lock": "Press Unlock and then #", - "app_desktop_sim_wrong_pin": "Wrong PIN code", - "app_desktop_sim_wrong_puk": "Wrong PUK code", - "app_desktop_sim_you_have": "You have", - "app_desktop_sim_attempt_left_plural": "attempts left", - "app_desktop_sim_attempt_left_singular": "attempt left", - "app_desktop_sim_warning1": "If the code is wrong this time, the", - "app_desktop_sim_warning2": "SIM card will be blocked and you'll", - "app_desktop_sim_warning3": "have to contact the operator", - "app_desktop_sim_blocked_info1": "Sorry, SIM card permanently blocked.", - "app_desktop_sim_blocked_info2": "Please contact your service provider", - "app_desktop_sim_cme_error": "SIM card\nCME error:", - - "app_desktop_unread_messages": "Unread messages", - "app_desktop_missed_calls": "Missed calls", - "app_desktop_menu_phone": "PHONE", - "app_desktop_menu_contacts": "CONTACTS", - "app_desktop_menu_messages": "MESSAGES", - "app_desktop_menu_calendar": "CALENDAR", - "app_desktop_menu_alarm": "ALARM", - "app_desktop_menu_meditation": "MEDITATION", - "app_desktop_menu_music": "MUSIC", - "app_desktop_menu_tools": "TOOLS", - "app_desktop_menu_settings_new": "SETTINGS NEW", - "app_desktop_menu_settings": "SETTINGS", - "app_desktop_menu_phonebook": "PHONEBOOK", - "app_desktop_menu_title": "Menu", - "app_desktop_tools_title": "Tools", - "app_desktop_tools_notes": "NOTES", - "app_desktop_tools_calculator": "CALCULATOR", - "app_desktop_tools_recorder": "RECORDER", - "app_desktop_tools_antenna": "ANTENNA TEST", - "app_desktop_poweroff_title": "Turn Off", - "app_desktop_poweroff_question": "Select Yes to power down", - "app_desktop_show": "SHOW", - "app_desktop_calls": "CALLS", - "app_desktop_clear": "CLEAR", - "app_desktop_clear_all": "CLEAR ALL", - - "app_call_call": "CALL", - "app_call_clear": "CLEAR", - "app_call_reject": "REJECT", - "app_call_answer": "ANSWER", - "app_call_message": "MESSAGE", - "app_call_end_call": "END CALL", - "app_call_emergency": "Emergency call", - "app_call_is_calling": "is calling", - "app_call_calling": "calling...", - "app_call_call_ended": "call ended", - "app_call_contact": "CONTACT", - "app_call_mute": "MUTE", - "app_call_muted": "MUTED", - "app_call_speaker": "SPEAKER", - "app_call_speaker_on": "SPEAKER ON", - "app_call_bluetooth": "BLUETOOTH", - "app_call_no_sim" : "No SIM.\n\nTo make a call,\nplease insert a SIM card.", - "app_call_offline" : "You're offline.\n\nTo make a call\n switch to the Connected mode.", - - "app_messages_title_main": "Messages", - "app_messages_new_message": "New Message", - "app_messages_no_messages": "There are no messages yet.\nPress Left arrow to add new.", - "app_messages_thread_delete_confirmation": "Do you really want to delete\nthis conversation?", - "app_messages_message_delete_confirmation": "

Do you really want to delete

this message?
", - "app_messages_thread_no_result" : "There are no results", - "app_messages_message": "Message", - "app_messages_templates": "Templates", - "app_messages_no_sim" : "No SIM.\n\nTo send a SMS,\nplease insert a SIM card.", - "app_messages_offline" : "You're offline.\n\nTo send a SMS\n switch to the Connected mode.", - "app_messages_thread_draft" : "Draft: ", - "app_messages_thread_not_sent" : "Not sent: ", - "app_messages_thread_you" : "You: ", - - "app_settings_title_main": "Settings", - "app_settings_title_main_new": "Settings New", - "app_settings_bt" : "Bluetooth", - "app_settings_bluetooth_add_device" : "Add device", - "app_settings_bluetooth_all_devices" : "All devices", - "app_settings_bluetooth_all_devices_indent" : " All devices", - "app_settings_bluetooth_searching_devices" : "Searching devices... \nIt may take a moment.", - "app_settings_bluetooth_main" : "Bluetooth", - "app_settings_bluetooth_phone_name" : "Phone name", - "app_settings_bluetooth_phone_name_indent" : " Phone name", - "app_settings_bluetooth_phone_visibility" : "Phone visibility", - "app_settings_net" : "Network", - "app_settings_disp_key" : "Display and keypad", - "app_settings_display_display_light": "Display light", - "app_settings_display_light_main": "Frontlight", - "app_settings_display_light_auto": "Automatic", - "app_settings_display_light_brightness": "Brightness", - "app_settings_display_font_size": "Font size", - "app_settings_display_locked_screen": "Locked screen", - "app_settings_display_keypad_light": "Keypad light", - "app_settings_display_keypad_light_on": "Always on", - "app_settings_display_keypad_light_active": "On when active", - "app_settings_display_keypad_light_off": "Off", - "app_settings_display_input_language": "Input language", - "app_settings_display_locked_screen_autolock": "Autolock" , - "app_settings_display_locked_screen_wallpaper": "Wallpaper", - "app_settings_display_locked_screen_quotes": "Quotes", - "app_settings_display_locked_screen_new_quote": "New quote", - "app_settings_display_wallpaper_logo": "Mudita logo", - "app_settings_display_wallpaper_clock": "Clock", - "app_settings_display_wallpaper_quotes": "Quotes", - "app_settings_display_wallpaper_select_quotes": "Select Quotes", - "app_settings_system" : "System", - "app_settings_apps_tools" : "Apps and tools", - "app_settings_apps_messages" : "Messages", - "app_settings_show_unread_first" : "Show unread first", - "app_settings_Templates" : "Templates", - "app_settings_apps_torch" : "Torch", - "app_settings_title_torch" : "Torch", - "app_settings_torch_sunset_red_light_option" : "Sunset red light", - "app_settings_torch_nightshift_time_option" : "Nightshift time", - "app_settings_torch_description" : "In the nightshift, the torch will use\nsunset red light so it won't disturb\nyour and others sleep.", - "app_settings_date_and_time": "Date and Time", - "app_settings_title_day": "Day", - "app_settings_title_month": "Month", - "app_settings_title_year": "Year", - "app_settings_title_time": "Time", - "app_settings_cellular_passthrough": "Cellular <-> USB", - "app_settings_display": "Display", - "app_settings_phone_modes": "Phone Modes", - "app_settings_security": "Security", - "app_settings_language": "Language", - "app_settings_about": "About Mudita Pure", - "app_settings_title_languages": "Language Selection", - "app_settings_language_english": "English", - "app_settings_language_polish": "Polish", - "app_settings_language_german": "German", - "app_settings_language_spanish": "Spanish", - "app_settings_network_active_card": "Active card", - "app_settings_network_operator_auto_select": "Operator auto-select", - "app_settings_network_all_operators": "All Operators", - "app_settings_network_import_contacts_from_sim_card": "Import contacts from SIM card", - "app_settings_network_sim1": "Sim1", - "app_settings_network_sim2": "Sim2", - "app_settings_toggle_on": "ON", - "app_settings_toggle_off": "OFF", - - "app_phonebook_title_main": "Contacts", - "app_phonebook_search_win_contacts": "Contacts", - "common_search_uc": "Search", - "app_phonebook_search_win_info": "Type what do you need\nand click SEARCH", - "common_search_results": "Search results", - "app_phonebook_search_no_results": "No contacts found.", - "app_phonebook_list_favourites": "Favourites", - "app_phonebook_contact_title": "Add Contact", - "app_phonebook_contact_no_name": "no name", - "app_phonebook_contact_note": "Note", - "app_phonebook_contact_address": "Address", - "app_phonebook_contact_information": "Information", - "app_phonebook_contact_favourites_upper": "FAVOURITES", - "app_phonebook_contact_speed_dial_upper": "SPEED DIAL", - "app_phonebook_contact_speed_blocked_uppper": "BLOCKED", - "app_phonebook_ice_contacts_title": "ICE Contacts", - "app_phonebook_duplicate_numbers": "Number $CONTACT_SPEED_DIAL$ is assigned to \n $CONTACT_NAME$. Replace it?", - "app_phonebook_duplicate_speed_dial_title":"Speed dial key ($CONTACT_SPEED_DIAL$)", - "app_phonebook_options_title": "Options", - "app_phonebook_options_edit": "Edit Contact", - "app_phonebook_options_block": "Block", - "app_phonebook_options_block_confirm": "Block this contact?", - "app_phonebook_options_block_notification": "Contact blocked.", - "app_phonebook_options_unblock": "Unblock", - "app_phonebook_options_unblock_confirm": "Unblock this contact?", - "app_phonebook_options_unblock_notification": "Contact unblocked.", - "app_phonebook_options_delete": "Delete", - "app_phonebook_options_delete_confirm": "Do you really want to delete\nthis contact?", - "app_phonebook_options_delete_notification": "This contact has been deleted\nsuccessfully.", - "app_phonebook_options_send_bt": "Send via Bluetooth", - "app_phonebook_options_forward_namecard": "Forward namecard", - "app_phonebook_options_send_sms": "Send via SMS", - "app_phonebook_new_contact_first_name": "First name", - "app_phonebook_new_contact_second_name": "Second name", - "app_phonebook_new_contact_number": "Number", - "app_phonebook_new_contact_second_number": "Second number", - "app_phonebook_new_contact_email": "Email", - "app_phonebook_new_contact_address": "Address", - "app_phonebook_new_contact_note": "Note", - "app_phonebook_new_speed_dial_key": "Speed dial key", - "app_phonebook_new_add_to_fav": "Add to favourites", - "app_phonebook_new_add_to_ice": "Add to ICE", - "app_phonebook_check": "CHECK", - "app_phonebook_uncheck": "UNCHECK", - - "app_meditation_title_main": "Meditation", - "app_meditation_preparation_time" : "Preparation time", - "app_meditation_put_down_phone_and_wait": "Put down the phone and wait for
the gong.
", - "app_meditation_thank_you_for_session": "Thank you for this
meditation session.
", - "app_meditation_option_show_counter" : "Show meditation counter", - "app_meditation_interval_chime" : "Interval Chime", - "app_meditation_interval_none" : "None", - "app_meditation_interval_every_x_minutes" : "Every %0 minutes", - - "app_music_player_all_songs": "All songs", - "app_music_player_play": "PLAY", - "app_music_player_music_library": "MUSIC LIBRARY", - "app_music_player_quit": "QUIT", - "app_music_player_music_empty_window_notification": "Press Music Library to choose\n a song from the library", - - "app_special_input_window": "Special characters", - "app_emoji_input_window": "Emoji", - - "sms_add_rec_num" : "Add recipient or type a number", - "sms_title_message": "New message", - "sms_call_text" : "Call ", - "sms_resend_failed" : "Send again", - "sms_delete_conversation" : "Delete conversation", - "sms_forward_message" : "Forward message", - "sms_copy" : "Copy", - "sms_delete_message" : "Delete", - "sms_from_this_sms" : "From this message", - "sms_use_template" : "Use Template", - "sms_paste" : "Paste", - "sms_reply" : "REPLY", - "sms_temp_reply" : "Reply", - "sms_mark_read" : "Mark as read", - "sms_mark_unread" : "Mark as unread", - - "settings_lang_PL": "PL", - "settings_lang_ENG": "ENG", - "settings_lang_DE": "DE", - "settings_lang_SP": "SP", - "desktop_powerdown_info1": "Now It is truly...", - "desktop_powerdown_info2": "Disabled!!!", - "app_desktop_update": "Update", - "app_desktop_update_to": "Update to", - "app_desktop_update_apply": "Do you want to apply this update?", - "app_desktop_update_current": "Current", - "app_desktop_update_apply": "Apply update?", - "app_desktop_update_start": "Update start", - "app_desktop_update_size": "size", - "app_desktop_update_bytes": "bytes", - "app_desktop_update_unpacking": "Unpacking" -} diff --git a/image/assets/lang/lang_fr.json b/image/assets/lang/lang_fr.json deleted file mode 100644 index 4637954c2d5f87590c27ba0f07a7b7d21d2f13de..0000000000000000000000000000000000000000 --- a/image/assets/lang/lang_fr.json +++ /dev/null @@ -1,187 +0,0 @@ -{ - "common_kbd_lower": "lang_fr_lower", - "common_kbd_upper": "lang_fr_upper", - "common_kbd_numeric": "numeric", - - "common_add": "ADD", - "common_open": "OPEN", - "common_call": "CALL", - "common_save": "SAVE", - "common_send": "SEND", - "common_confirm": "CONFIRM", - "common_select": "SELECT", - "common_ok": "OK", - "common_back": "BACK", - "common_set": "SET", - "common_yes": "Yes", - "common_no": "No", - "common_speaker": "SPEAKER", - "common_mute": "MUTE", - "common_switch": "SWITCH", - "common_options": "OPTIONS", - "common_monday": "Monday", - "common_tuesday": "Tuesday", - "common_wednesday": "Wednesday", - "common_thursday": "Thursday", - "common_friday": "Friday", - "common_saturday": "Saturday", - "common_sunday": "Sunday", - - "common_information": "Information", - - "common_january": "January", - "common_february": "February", - "common_march": "March", - "common_april": "April", - "common_may": "May", - "common_june": "June", - "common_july": "July", - "common_august": "August", - "common_september": "September", - "common_october": "October", - "common_november": "November", - "common_december": "December", - "common_yesterday" : "Yesterday", - "common_today" : "Today", - "locale_12hour_min" : "%I:%M %p", - "locale_24hour_min" : "%H:%M", - "locale_date_full" : "%m/%d/%y", - "locale_date_short" : "%d/%m", - - "app_notes_title_main": "Notes", - "app_notes_new_note": "New Note", - "app_notes_save": "SAVE", - "app_notes_edit": "EDIT", - "app_notes_back": "BACK", - - "app_calllog_title_main": "Calls", - "app_calllog_save": "SAVE", - "app_calllog_edit": "EDIT", - "app_calllog_back": "BACK", - "app_calllog_type": "Type", - "app_calllog_duration": "Duration", - "app_calllog_incoming_call": "incoming call", - "app_calllog_outgoing_call": "outgoing call", - "app_calllog_missed_call": "missed call", - "app_calllog_date": "Date", - "app_calllog_options_title": "Options", - "app_calllog_options_contact_details": "Contact details", - "app_calllog_options_delete_call": "Delete call", - "app_calllog_delete_call_confirmation": "Do you really want to delete this call from the list?", - - "app_desktop_unlock": "UNLOCK", - "app_desktop_lock": "LOCK", - "app_desktop_menu": "MENU", - "app_desktop_emergency": "EMERG.", - "app_desktop_pin_lock": "Enter passcode", - "app_desktop_pin_info1": "Wrong passcode", - "app_desktop_pin_info2": "Allowed unlock attempts", - "app_desktop_pin_blocked1": "Sorry, phone blocked", - "app_desktop_unread_messages": "unread messages", - "app_desktop_missed_calls": "missed calls", - "app_desktop_menu_phone": "PHONE", - "app_desktop_menu_contacts": "CONTACTS", - "app_desktop_menu_messages": "MESSAGES", - "app_desktop_menu_calendar": "CALENDAR", - "app_desktop_menu_alarm": "ALARM", - "app_desktop_menu_meditation": "MEDITATION", - "app_desktop_menu_music": "MUSIC", - "app_desktop_menu_tools": "TOOLS", - "app_desktop_menu_settings": "SETTINGS", - "app_desktop_menu_phonebook": "PHONEBOOK", - "app_desktop_menu_title": "Main Menu", - "app_desktop_tools_title": "Tools", - "app_desktop_tools_notes": "NOTES", - "app_desktop_tools_calculator": "CALCULATOR", - "app_desktop_tools_recorder": "RECORDER", - "app_desktop_tools_antenna": "ANTENNA TEST", - "app_desktop_poweroff_title": "Turn Off", - "app_desktop_poweroff_question": "Select Yes to power down", - - "app_call_call": "CALL", - "app_call_clear": "CLEAR", - "app_call_reject": "REJECT", - "app_call_answer": "ANSWER", - "app_call_message": "MESSAGE", - "app_call_return": "RETURN", - "app_call_end_call": "END CALL", - "app_call_emergency": "Emergency call", - "app_call_is_calling": "is calling", - "app_call_call_ended": "call ended", - "app_call_contact": "CONTACT", - - "app_settings_title_main": "Settings", - "app_settings_bt" : "Bluetooth", - "app_settings_date_and_time": "Date and Time", - "app_settings_title_day": "Day", - "app_settings_title_month": "Month", - "app_settings_title_year": "Year", - "app_settings_title_time": "Time", - "app_settings_cellular_passthrough": "Cellular <-> USB", - "app_settings_display": "Display", - "app_settings_phone_modes": "Phone Modes", - "app_settings_security": "Security", - "app_settings_language": "Language", - "app_settings_about": "About Mudita Pure", - "app_settings_title_languages": "Language Selection", - "app_settings_language_english": "English", - "app_settings_language_polish": "Polish", - "app_settings_language_german": "German", - "app_settings_language_spanish": "Spanish", - "app_settings_date_time": "Date and Time", - - "app_messages_title_main": "Messages", - "app_messages_new_message": "New Message", - - "app_phonebook_title_main": "Contacts", - "app_phonebook_search_win_contacts": "Contacts", - "common_search_uc": "Search", - "app_phonebook_search_win_info": "Type what do you need and click SEARCH", - "common_search_results": "Results", - "app_phonebook_list_favourites": "Favourites", - "app_phonebook_contact_title": "Add Contact", - "app_phonebook_contact_note": "Note", - "app_phonebook_contact_address": "Address", - "app_phonebook_contact_information": "Information", - "app_phonebook_contact_favourites_upper": "FAVOURITES", - "app_phonebook_contact_speed_dial_upper": "SPEED DIAL", - "app_phonebook_contact_speed_blocked_uppper": "BLOCKED", - "app_phonebook_duplicate_numbers": "This numbers belongs to\n$CONTACT_NAME$. Would you like\nto create a new contact?", - "app_phonebook_duplicate_speed_dial":"This number is already assigned\nto $CONTACT_NAME$. Would you\nlike to replace it?", - "app_phonebook_options_title": "Options", - "app_phonebook_contact_no_name": "no name", - "app_phonebook_options_edit": "Edit Contact", - "app_phonebook_options_block": "Block", - "app_phonebook_options_block_confirm": "Do you really want to\nblock this contact?", - "app_phonebook_options_delete": "Delete", - "app_phonebook_options_delete_confirm": "Do you really want to\ndelete this contact?", - "app_phonebook_options_send_bt": "Send via Bluetooth", - "app_phonebook_options_forward_namecard": "Forward namecard", - "app_phonebook_options_send_sms": "Send via SMS", - "app_phonebook_new_contact_first_name": "First name", - "app_phonebook_new_contact_second_name": "Second name", - "app_phonebook_new_contact_number": "Number", - "app_phonebook_new_contact_second_number": "Second number", - "app_phonebook_new_contact_email": "Email", - "app_phonebook_new_contact_address": "Address", - "app_phonebook_new_contact_note": "Note", - "app_phonebook_new_speed_dial_key": "Speed dial key", - "app_phonebook_new_add_to_fav": "Add to favourites", - "app_phonebook_new_add_to_ice": "Add to ICE", - "app_phonebook_check": "CHECK", - "app_phonebook_uncheck": "UNCHECK", - - "app_meditation_title_main": "Meditation", - - "sms_call_text" : "Call: ", - "sms_contact_details" : "Contact details", - "sms_delete_conversation" : "Delete conversation", - - "settings_lang_PL": "PL", - "settings_lang_ENG": "ENG", - "settings_lang_DE": "DE", - "settings_lang_SP": "SP", - "desktop_powerdown_info1": "Now It is truly...", - "desktop_powerdown_info2": "Disabled!!!" - -} diff --git a/image/assets/lang/lang_pl.json b/image/assets/lang/lang_pl.json deleted file mode 100644 index fff02aa52ff1a7b7bf4e036f9d843440bc867561..0000000000000000000000000000000000000000 --- a/image/assets/lang/lang_pl.json +++ /dev/null @@ -1,189 +0,0 @@ -{ - "common_kbd_lower": "lang_pl_lower", - "common_kbd_upper": "lang_pl_upper", - "common_kbd_numeric": "numeric", - - "common_add": "DODAJ", - "common_open": "OTWÓRZ", - "common_call": "DZWOŃ", - "common_save": "ZAPISZ", - "common_send": "WYŚLIJ", - "common_confirm": "POTWIERDŹ", - "common_select": "WYBIERZ", - "common_ok": "DALEJ", - "common_back": "WRÓĆ", - "common_set": "USTAW", - "common_yes": "Tak", - "common_no": "Nie", - "common_speaker": "GŁOŚNIK", - "common_mute": "WYCISZ", - "common_switch": "ZMIEŃ", - "common_options": "OPCJE", - "common_monday": "poniedziałek", - "common_tuesday": "wtorek", - "common_wednesday": "środa", - "common_thursday": "czwartek", - "common_friday": "piątek", - "common_saturday": "sobota", - "common_sunday": "niedziela", - - "common_information": "Informacje", - - "common_january": "stycznia", - "common_february": "lutego", - "common_march": "marca", - "common_april": "kwietnia", - "common_may": "maja", - "common_june": "czerwca", - "common_july": "lipca", - "common_august": "sierpnia", - "common_september": "września", - "common_october": "października", - "common_november": "listopada", - "common_december": "grudnia", - "common_yesterday" : "wczoraj", - "common_today" : "dzisiaj", - "locale_12hour_min" : "%I:%M", - "locale_24hour_min" : "%H:%M", - "locale_date_full" : "%d.%m.%y", - "locale_date_short" : "%d.%m", - - "app_calculator_decimal_separator": ",", - - "app_notes_title_main": "Notatki", - "app_notes_new_note": "Nowa Notatka", - "app_notes_save": "ZAPISZ", - "app_notes_edit": "EDYTUJ", - "app_notes_back": "WROĆ", - - "app_calllog_title_main": "Rejestr Połączeń", - "app_calllog_save": "ZAPISZ", - "app_calllog_edit": "EDYTUJ", - "app_calllog_back": "WRÓĆ", - "app_calllog_type": "Typ", - "app_calllog_duration": "Czas trwania", - "app_calllog_incoming_call": "połączenie przychodzące", - "app_calllog_outgoing_call": "połączenie wychodzące", - "app_calllog_missed_call": "połączenie nieodebrane", - "app_calllog_date": "Data", - "app_calllog_options_title": "Opcje", - "app_calllog_options_contact_details": "Szczegóły kontaktu", - "app_calllog_options_delete_call": "Usuń połączenie", - "app_calllog_delete_call_confirmation": "Czy naprawdę chcesz usunąć to połączenie z listy?", - - "app_desktop_unlock": "ODBLOKUJ", - "app_desktop_lock": "ZABLOKUJ", - "app_desktop_menu": "MENU", - "app_desktop_emergency": "ALARMOWE", - "app_desktop_pin_lock": "Wprowadź hasło", - "app_desktop_pin_info1": "Błędne hasło", - "app_desktop_pin_info2": "Pozostało prób", - "app_desktop_pin_blocked1": "Telefon zablokowany", - "app_desktop_unread_messages": "nieprzeczytane wiadomości", - "app_desktop_missed_calls": "nieodebrane połączenia", - - "app_desktop_menu_phone": "TELEFON", - "app_desktop_menu_contacts": "KONTAKTY", - "app_desktop_menu_messages": "WIADOMOŚCI", - "app_desktop_menu_calendar": "KALENDARZ", - "app_desktop_menu_alarm": "ALARMY", - "app_desktop_menu_meditation": "MEDYTACJA", - "app_desktop_menu_music": "MUZYKA", - "app_desktop_menu_tools": "NARZĘDZIA", - "app_desktop_menu_settings": "USTAWIENIA", - "app_desktop_menu_phonebook": "KONTAKTY", - "app_desktop_menu_title": "Główne Menu", - "app_desktop_tools_title": "Narzędzia", - "app_desktop_tools_notes": "NOTATKI", - "app_desktop_tools_calculator": "KALKULATOR", - "app_desktop_tools_recorder": "DYKTAFON", - "app_desktop_tools_antenna": "ANTENNA TEST", - "app_desktop_poweroff_title": "Wyłączanie", - "app_desktop_poweroff_question": "Wybierz Tak by wyłączyć", - - "app_call_call": "DZWOŃ", - "app_call_clear": "WYCZYŚĆ", - "app_call_reject": "ODRZUĆ", - "app_call_answer": "ODBIERZ", - "app_call_message": "WIADOMOŚĆ", - "app_call_return": "POWRÓT", - "app_call_end_call": "ZAKOŃCZ", - "app_call_emergency": "Numer alarmowy", - "app_call_is_calling": "dzwoni", - "app_call_call_ended": "zakończono", - "app_call_contact": "KONTAKT", - - "app_settings_title_main": "Ustawienia", - "app_settings_bt" : "Bluetooth", - "app_settings_date_and_time": "Data i Czas", - "app_settings_title_day": "Dzień", - "app_settings_title_month": "Miesiąc", - "app_settings_title_year": "Rok", - "app_settings_title_time": "Czas", - "app_settings_cellular_passthrough": "Modem <-> USB", - "app_settings_display": "Ekran", - "app_settings_phone_modes": "Tryby Pracy", - "app_settings_security": "Bezpieczeństwo", - "app_settings_language": "Język", - "app_settings_about": "O Mudita Pure", - "app_settings_title_languages": "Wybór Języka", - "app_settings_language_english": "Angielski", - "app_settings_language_polish": "Polski", - "app_settings_language_german": "Niemiecki", - "app_settings_language_spanish": "Hiszpański", - - "app_messages_title_main": "Wiadomości", - "app_messages_new_message": "Nowa Wiadomość", - - "app_phonebook_title_main": "Kontakty", - "app_phonebook_search_win_contacts": "Kontakty", - "common_search_uc": "Szukaj", - "app_phonebook_search_win_info": "wpisz czego szukasz i naciśnij SZUKAJ", - "common_search_results": "Rezultaty", - "app_phonebook_list_favourites": "Ulubione", - "app_phonebook_contact_title": "Dodaj Kontakt", - "app_phonebook_contact_no_name": "brak nazwy", - "app_phonebook_contact_note": "Notatka", - "app_phonebook_contact_address": "Adres", - "app_phonebook_contact_information": "Informacje", - "app_phonebook_contact_favourites_upper": "ULUBIONE", - "app_phonebook_contact_speed_dial_upper": "SZYBKIE WYBIERANIE", - "app_phonebook_contact_speed_blocked_uppper": "ZABLOKOWANY", - "app_phonebook_duplicate_numbers": "Ten numer należy do\n$CONTACT_NAME$. Czy chcesz\nutworzyć nowy kontakt?", - "app_phonebook_duplicate_speed_dial":"Ten numer jest już przypisany\ndo $CONTACT_NAME$. Czy chcesz\ngo zastąpić?", - "app_phonebook_options_title": "Opcje", - "app_phonebook_options_edit": "Edycja Kontaktu", - "app_phonebook_options_block": "Blokuj", - "app_phonebook_options_block_confirm": "Czy na pewno chcesz\nzablokować ten kontakt?", - "app_phonebook_options_delete": "Usuń", - "app_phonebook_options_delete_confirm": "Czy na pewno chcesz\nusunąć ten kontakt?", - "app_phonebook_options_send_bt": "Wyślij przez Bluetooth", - "app_phonebook_options_forward_namecard": "Przekaż wizytówkę", - "app_phonebook_options_send_sms": "Wyślij przez SMS", - "app_phonebook_new_contact_first_name": "Imię", - "app_phonebook_new_contact_second_name": "Nazwisko", - "app_phonebook_new_contact_number": "Numer", - "app_phonebook_new_contact_second_number": "Drugi numer", - "app_phonebook_new_contact_email": "Email", - "app_phonebook_new_contact_address": "Adres", - "app_phonebook_new_contact_note": "Notatka", - "app_phonebook_new_speed_dial_key": "Szybkie wybieranie", - "app_phonebook_new_add_to_fav": "Dodaj do ulubionych", - "app_phonebook_new_add_to_ice": "Dodaj do ICE", - "app_phonebook_check": "ZAZNACZ", - "app_phonebook_uncheck": "ODZNACZ", - - "app_meditation_title_main": "Medytacja", - - "sms_call_text" : "Call: ", - "sms_contact_details" : "Contact details", - "sms_delete_conversation" : "Delete conversation", - - "settings_lang_PL": "PL", - "settings_lang_ENG": "ENG", - "settings_lang_DE": "DE", - "settings_lang_SP": "SP", - "desktop_powerdown_info1": "Teraz jest...", - "desktop_powerdown_info2": "Wyłączone!!!" - -} diff --git a/image/assets/lang/lang_sp.json b/image/assets/lang/lang_sp.json deleted file mode 100644 index dd38d9eec96659ac123835d85e32c6d2429740c9..0000000000000000000000000000000000000000 --- a/image/assets/lang/lang_sp.json +++ /dev/null @@ -1,192 +0,0 @@ -{ - "common_kbd_lower": "lang_sp_lower", - "common_kbd_upper": "lang_sp_upper", - "common_kbd_numeric": "numeric", - - "common_add": "ADD", - "common_open": "ABIERTA", - "common_call": "CALL", - "common_save": "SAVE", - "common_send": "SEND", - "common_confirm": "CONFIRMAR", - "common_select": "SELECT", - "common_ok": "OK", - "common_back": "ATRÁS", - "common_set": "CONJUNTO", - "common_yes": "Yes", - "common_no": "No", - "common_speaker": "SPEAKER", - "common_mute": "MUTE", - "common_switch": "CAMBIAR", - "common_options": "OPCIONES", - "common_monday": "Lunes", - "common_tuesday": "Martes", - "common_wednesday": "Miércoles", - "common_thursday": "Jueves", - "common_friday": "Viernes", - "common_saturday": "Sábado", - "common_sunday": "Domingo", - - "common_information": "Information", - - "common_january": "January", - "common_february": "February", - "common_march": "March", - "common_april": "April", - "common_may": "May", - "common_june": "June", - "common_july": "July", - "common_august": "August", - "common_september": "September", - "common_october": "October", - "common_november": "November", - "common_december": "December", - "common_yesterday" : "Yesterday", - "common_today" : "Today", - "locale_12hour_min" : "%I:%M %p", - "locale_24hour_min" : "%H:%M", - "locale_date_full" : "%m/%d/%y", - "locale_date_short" : "%d/%m", - - "app_notes_title_main": "Notes", - "app_notes_new_note": "New Note", - "app_notes_save": "SAVE", - "app_notes_edit": "EDIT", - "app_notes_back": "BACK", - - "app_calllog_title_main": "Calls", - "app_calllog_new_note": "New Note", - "app_calllog_save": "SAVE", - "app_calllog_edit": "EDIT", - "app_calllog_back": "BACK", - "app_calllog_type": "Type", - "app_calllog_duration": "Duration", - "app_calllog_incoming_call": "incoming call", - "app_calllog_outgoing_call": "outgoing call", - "app_calllog_missed_call": "missed call", - "app_calllog_date": "Date", - "app_calllog_options_title": "Options", - "app_calllog_options_contact_details": "Contact details", - "app_calllog_options_delete_call": "Delete call", - "app_calllog_delete_call_confirmation": "Do you really want to delete this call from the list?", - - "app_desktop_unlock": "DESBLOQUEAR", - "app_desktop_lock": "BLOQUEAR", - "app_desktop_menu": "MENÚ", - "app_desktop_emergency": "EMERGENCIA", - "app_desktop_pin_lock": "Enter passcode", - "app_desktop_pin_info1": "Wrong passcode", - "app_desktop_pin_info2": "Allowed unlock attempts", - "app_desktop_pin_blocked1": "Sorry, phone blocked", - "app_desktop_unread_messages": "unread messages", - "app_desktop_missed_calls": "missed calls", - "app_desktop_menu_phone": "PHONE", - "app_desktop_menu_contacts": "CONTACTS", - "app_desktop_menu_messages": "MESSAGES", - "app_desktop_menu_calendar": "CALENDAR", - "app_desktop_menu_alarm": "ALARM", - "app_desktop_menu_meditation": "MEDITATION", - "app_desktop_menu_music": "MUSIC", - "app_desktop_menu_tools": "TOOLS", - "app_desktop_menu_settings": "SETTINGS", - "app_desktop_menu_phonebook": "CONTACTOS", - "app_desktop_menu_title": "Main Menu", - "app_desktop_tools_title": "Tools", - "app_desktop_tools_notes": "NOTES", - "app_desktop_tools_calculator": "CALCULATOR", - "app_desktop_tools_recorder": "RECORDER", - "app_desktop_tools_antenna": "ANTENNA TEST", - "app_desktop_poweroff_title": "Turn Off", - "app_desktop_poweroff_question": "Select Yes to power down", - - "app_call_call": "CALL", - "app_call_clear": "CLEAR", - "app_call_reject": "REJECT", - "app_call_answer": "ANSWER", - "app_call_message": "MESSAGE", - "app_call_return": "RETURN", - "app_call_end_call": "END CALL", - "app_call_emergency": "Emergency call", - "app_call_is_calling": "is calling", - "app_call_call_ended": "call ended", - "app_call_contact": "CONTACT", - - "app_messages_title_main": "Messages", - "app_messages_new_message": "New Message", - - "app_settings_title_main": "Settings", - "app_settings_bt" : "Bluetooth", - "app_settings_date_and_time": "Date and Time", - "app_settings_title_day": "Day", - "app_settings_title_month": "Month", - "app_settings_title_year": "Year", - "app_settings_title_time": "Time", - "app_settings_display": "Display", - "app_settings_phone_modes": "Phone Modes", - "app_settings_security": "Security", - "app_settings_language": "Language", - "app_settings_about": "About Mudita Pure", - "app_settings_title_languages": "Language Selection", - "app_settings_language_english": "Inglesa", - "app_settings_language_polish": "Polaco", - "app_settings_language_german": "Alemana", - "app_settings_language_spanish": "Español", - "app_settings_date_time": "Date and Time", - "app_settings_cellular_passthrough": "Cellular <-> USB", - - "app_phonebook_title_main": "Contactos", - "app_phonebook_call": "CALL", - "app_phonebook_save": "SAVE", - "app_phonebook_open": "OPEN", - "app_phonebook_select": "SELECT", - "app_phonebook_search_win_contacts": "Contacts", - "common_search_uc": "Search", - "app_phonebook_search_win_info": "Type what do you need and click SEARCH", - "common_search_results": "Results", - "app_phonebook_list_favourites": "Favourites", - "app_phonebook_contact_title": "Add Contact", - "app_phonebook_contact_no_name": "no name", - "app_phonebook_contact_note": "Note", - "app_phonebook_contact_address": "Address", - "app_phonebook_contact_information": "Information", - "app_phonebook_contact_favourites_upper": "FAVOURITES", - "app_phonebook_contact_speed_dial_upper": "SPEED DIAL", - "app_phonebook_contact_speed_blocked_uppper": "BLOCKED", - "app_phonebook_duplicate_numbers": "This numbers belongs to\n$CONTACT_NAME$. Would you like\nto create a new contact?", - "app_phonebook_duplicate_speed_dial":"This number is already assigned\nto $CONTACT_NAME$. Would you\nlike to replace it?", - "app_phonebook_options_title": "Options", - "app_phonebook_options_edit": "Edit Contact", - "app_phonebook_options_block": "Block", - "app_phonebook_options_block_confirm": "Do you really want to\nblock this contact?", - "app_phonebook_options_delete": "Delete", - "app_phonebook_options_delete_confirm": "Do you really want to\ndelete this contact?", - "app_phonebook_options_send_bt": "Send via Bluetooth", - "app_phonebook_options_forward_namecard": "Forward namecard", - "app_phonebook_options_send_sms": "Send via SMS", - "app_phonebook_new_contact_first_name": "First name", - "app_phonebook_new_contact_second_name": "Second name", - "app_phonebook_new_contact_number": "Number", - "app_phonebook_new_contact_second_number": "Second number", - "app_phonebook_new_contact_email": "Email", - "app_phonebook_new_contact_address": "Address", - "app_phonebook_new_contact_note": "Note", - "app_phonebook_new_speed_dial_key": "Speed dial key", - "app_phonebook_new_add_to_fav": "Add to favourites", - "app_phonebook_new_add_to_ice": "Add to ICE", - "app_phonebook_check": "CHECK", - "app_phonebook_uncheck": "UNCHECK", - - "app_meditation_title_main": "Meditation", - - "sms_call_text" : "Llamado: ", - "sms_contact_details" : "Detales de contacto: ", - "sms_delete_conversation" : "Eliminar conversación", - - "settings_lang_PL": "PL", - "settings_lang_ENG": "ENG", - "settings_lang_DE": "DE", - "settings_lang_SP": "SP", - "desktop_powerdown_info1": "Now It is truly...", - "desktop_powerdown_info2": "Disabled!!!" - -} diff --git a/image/user/settings.db b/image/user/settings.db index c183ef10e121405fff210fdc68fbd3f321f4757b..4228452bd39f54b721090f11cd0afd9d816400ef 100644 GIT binary patch delta 337 zcmZozz}T>Wae}lUCj$cmD-<&VX}*a%#-f}IdMXXPyz3a4xhfcVe({!bRd7{o78FS2 z;No4!qAD&c%h+i-`2er>W-iV=My{56PIjbyjIN5-XVqj?Y;b0fHwq|V8pPa)j zv$>GFn$aR9v$!B9u@coN9WDiIHgIY30!?A$zsbOV6X=n1{2JP-jKT~YoSd8-96-d& r%gM{cBrVO$T514wE0o%#z^TCabhDtsZGLGWae}lUD+2=q3^M}RY!h{iMOhj2R2q1>y&0G}t}^ia;w|U6%5inGpgoaSRN+ zK+MShoPq!OW std::list { std::list optionsList; - std::vector languageListJson = {"app_settings_language_english", - "app_settings_language_polish", - "app_settings_language_german", - "app_settings_language_spanish"}; - std::vector languageListEnum = { - utils::Lang::En, utils::Lang::Pl, utils::Lang::De, utils::Lang::Sp}; - - for (size_t i = 0; i < languageListJson.size(); i++) { + const auto &langList = loader.getAvailableDisplayLanguages(); + for (const auto &lang : langList) { optionsList.emplace_back(std::make_unique( - utils::localize.get(languageListJson[i]), + lang, [=](gui::Item &item) { - selectedLang = utils::localize.get(languageListJson[i]); - app::manager::Controller::changeInputLanguage(application, languageListEnum[i]); + selectedLang = lang; + app::manager::Controller::changeInputLanguage(application, lang); rebuildOptionList(); return true; }, @@ -44,7 +38,7 @@ namespace gui return true; }, this, - selectedLang == utils::localize.get(languageListJson[i]) ? RightItem::Checked : RightItem::Disabled)); + selectedLang == lang ? RightItem::Checked : RightItem::Disabled)); } return optionsList; diff --git a/module-apps/application-settings-new/windows/InputLanguageWindow.hpp b/module-apps/application-settings-new/windows/InputLanguageWindow.hpp index 691427141056e1d237262214ea4aeac9889bc8a7..06b748bad57752c5fb65b7c4b735dc68918cdcde 100644 --- a/module-apps/application-settings-new/windows/InputLanguageWindow.hpp +++ b/module-apps/application-settings-new/windows/InputLanguageWindow.hpp @@ -17,6 +17,7 @@ namespace gui auto buildOptionsList() -> std::list override; private: - std::string selectedLang; + Language selectedLang; + utils::LangLoader loader; }; } // namespace gui diff --git a/module-apps/application-settings/windows/LanguageWindow.cpp b/module-apps/application-settings/windows/LanguageWindow.cpp index f0fbcec4a780994bc9daf5a23b188cb2d399ad39..9f8e9b1bc8fdc6be0003b68fdbb1208e07ca0c75 100644 --- a/module-apps/application-settings/windows/LanguageWindow.cpp +++ b/module-apps/application-settings/windows/LanguageWindow.cpp @@ -49,30 +49,13 @@ namespace gui topBar->setActive(TopBar::Elements::BATTERY, true); setTitle(utils::localize.get("app_settings_title_languages")); - - options.push_back(addOptionLabel(utils::localize.get("app_settings_language_english"), [=](gui::Item &item) { - LOG_INFO("selected display language: english"); - app::manager::Controller::changeDisplayLanguage(application, utils::Lang::En); - return true; - })); - - options.push_back(addOptionLabel(utils::localize.get("app_settings_language_polish"), [=](gui::Item &) { - LOG_INFO("selected display language: polish"); - app::manager::Controller::changeDisplayLanguage(application, utils::Lang::Pl); - return true; - })); - - options.push_back(addOptionLabel(utils::localize.get("app_settings_language_german"), [=](gui::Item &) { - LOG_INFO("selected display language: german"); - app::manager::Controller::changeDisplayLanguage(application, utils::Lang::De); - return true; - })); - - options.push_back(addOptionLabel(utils::localize.get("app_settings_language_spanish"), [=](gui::Item &) { - LOG_INFO("selected display language: spanish"); - app::manager::Controller::changeDisplayLanguage(application, utils::Lang::Sp); - return true; - })); + const auto &langList = loader.getAvailableDisplayLanguages(); + for (const auto &lang : langList) { + options.push_back(addOptionLabel(lang, [=](gui::Item &item) { + app::manager::Controller::changeDisplayLanguage(application, lang); + return true; + })); + } // set position and navigation for labels uint32_t size = options.size(); diff --git a/module-apps/application-settings/windows/LanguageWindow.hpp b/module-apps/application-settings/windows/LanguageWindow.hpp index 637f1ec2ce862df4d123e6830774f6591cc36291..a33fade0fbe92da9ae6330493914ac67aabfed09 100644 --- a/module-apps/application-settings/windows/LanguageWindow.hpp +++ b/module-apps/application-settings/windows/LanguageWindow.hpp @@ -33,6 +33,7 @@ namespace gui void destroyInterface() override; private: + utils::LangLoader loader; void invalidate() noexcept; }; } /* namespace gui */ diff --git a/module-db/Common/Common.hpp b/module-db/Common/Common.hpp index 9a2a498d71a8bd62a2cb26dcaef664b931e8f8a5..24fa0623a8534c10cf618c795200624e154ba6dd 100644 --- a/module-db/Common/Common.hpp +++ b/module-db/Common/Common.hpp @@ -50,14 +50,6 @@ enum class SettingsLanguage SPANISH = 0x08, }; -namespace Language -{ - constexpr static bool ValidateLanguage(SettingsLanguage lang) noexcept - { - return lang >= SettingsLanguage::ENGLISH && lang <= SettingsLanguage::SPANISH; - } -}; // namespace Language - enum class SettingsPinMode { ALWAYS = 0, diff --git a/module-db/Interface/SettingsRecord.hpp b/module-db/Interface/SettingsRecord.hpp index 3d0db6f202a57a5fccb6e3c20787c388a0fa2e16..806a373aa4e8259ae3ebb8d21d1516a6d054ae9b 100644 --- a/module-db/Interface/SettingsRecord.hpp +++ b/module-db/Interface/SettingsRecord.hpp @@ -7,6 +7,7 @@ #include "utf8/UTF8.hpp" #include "../Common/Common.hpp" #include "../Databases/SettingsDB.hpp" +#include "i18/i18.hpp" struct SettingsRecord { @@ -31,8 +32,8 @@ struct SettingsRecord std::string networkOperator; uint32_t lockPassHash; uint32_t lockTime; - SettingsLanguage displayLanguage; - SettingsLanguage inputLanguage; + Language displayLanguage; + Language inputLanguage; static ActiveSim to(const uint32_t sim); static uint32_t from(const ActiveSim sim); diff --git a/module-db/Tables/SettingsTable.cpp b/module-db/Tables/SettingsTable.cpp index 06bf78e0195383ec00372bf8baba3c3ae4d12417..7e0e5d63dfdc0985272e50bf07b75e8045f9d5b5 100644 --- a/module-db/Tables/SettingsTable.cpp +++ b/module-db/Tables/SettingsTable.cpp @@ -31,48 +31,25 @@ SettingsTableRow SettingsTable::getById(uint32_t id) return SettingsTableRow(); } - if (!Language::ValidateLanguage(static_cast((*retQuery)[16].getUInt32())) || - !Language::ValidateLanguage(static_cast((*retQuery)[17].getUInt32()))) { - return SettingsTableRow{ - 1, - false, - true, - true, - true, - 0, - 0, - SettingsPinMode::DAYS, - 0, - 0, - "", - "", - 1, - "", - 0, - 30000, // time of inactivity of the user after which phone will be automatically blocked. - SettingsLanguage::ENGLISH, - SettingsLanguage::ENGLISH}; - } - return SettingsTableRow{ - (*retQuery)[0].getUInt32(), // ID - (*retQuery)[1].getBool(), // timeFormat12 - (*retQuery)[2].getBool(), // timeAuto - (*retQuery)[3].getBool(), // timeDateFormat - (*retQuery)[4].getBool(), // brightnessAuto - (*retQuery)[5].getUInt32(), // brightnessLevel - (*retQuery)[6].getUInt32(), // fontSize - static_cast((*retQuery)[7].getUInt32()), // pinMode - (*retQuery)[8].getUInt32(), // pinDays - (*retQuery)[9].getUInt32(), // pinDaysLeft - (*retQuery)[10].getString(), // pin1 - (*retQuery)[11].getString(), // pin2 - (*retQuery)[12].getUInt32(), // activeSIM - (*retQuery)[13].getString(), // networkOperator - (*retQuery)[14].getUInt32(), // lockPassHash - (*retQuery)[15].getUInt32(), // lockTime - static_cast((*retQuery)[16].getUInt32()), // displayLanguage - static_cast((*retQuery)[17].getUInt32()), // inputLanguage + (*retQuery)[0].getUInt32(), // ID + (*retQuery)[1].getBool(), // timeFormat12 + (*retQuery)[2].getBool(), // timeAuto + (*retQuery)[3].getBool(), // timeDateFormat + (*retQuery)[4].getBool(), // brightnessAuto + (*retQuery)[5].getUInt32(), // brightnessLevel + (*retQuery)[6].getUInt32(), // fontSize + static_cast((*retQuery)[7].getUInt32()), // pinMode + (*retQuery)[8].getUInt32(), // pinDays + (*retQuery)[9].getUInt32(), // pinDaysLeft + (*retQuery)[10].getString(), // pin1 + (*retQuery)[11].getString(), // pin2 + (*retQuery)[12].getUInt32(), // activeSIM + (*retQuery)[13].getString(), // networkOperator + (*retQuery)[14].getUInt32(), // lockPassHash + (*retQuery)[15].getUInt32(), // lockTime + (*retQuery)[16].getString(), // displayLanguage + (*retQuery)[17].getString(), // inputLanguage }; } @@ -83,8 +60,8 @@ bool SettingsTable::update(SettingsTableRow entry) ",brightness_auto = %lu, brightness_level = %lu, " "bigger_font = %lu, pin_mode =%lu, pin_days = %lu ,pin_days_left = %lu, pin1_string = '%q', " "pin2_string = '%q', active_sim = %lu, " - "network_operator = '%q', lock_pass_hash = %lu, lock_time = %lu, display_language = %lu, " - "input_language = %lu WHERE _id=1;", + "network_operator = '%q', lock_pass_hash = %lu, lock_time = %lu, display_language = '%q', " + "input_language = '%q' WHERE _id=1;", entry.timeFormat12, entry.timeAuto, entry.timeDateFormat, @@ -100,8 +77,8 @@ bool SettingsTable::update(SettingsTableRow entry) entry.networkOperator.c_str(), entry.lockPassHash, entry.lockTime, - entry.displayLanguage, - entry.inputLanguage); + entry.displayLanguage.c_str(), + entry.inputLanguage.c_str()); } bool SettingsTable::add(SettingsTableRow entry) diff --git a/module-db/Tables/SettingsTable.hpp b/module-db/Tables/SettingsTable.hpp index b46495f3abbae4553b394073b5c94aa27e7b7a5a..46c608571db56ed53d4b262bf3a8afe5f7c8fccf 100644 --- a/module-db/Tables/SettingsTable.hpp +++ b/module-db/Tables/SettingsTable.hpp @@ -7,6 +7,7 @@ #include "Database/Database.hpp" #include "utf8/UTF8.hpp" #include "Common/Common.hpp" +#include "i18/i18.hpp" struct SettingsTableRow { @@ -27,8 +28,8 @@ struct SettingsTableRow uint32_t lockPassHash; // time of inactivity of the user after which phone will be automatically blocked. uint32_t lockTime; - SettingsLanguage displayLanguage; - SettingsLanguage inputLanguage; + Language displayLanguage; + Language inputLanguage; }; enum class SettingsTableFields @@ -74,8 +75,8 @@ class SettingsTable : public Table "network_operator TEXT DEFAULT '', " "lock_pass_hash INTEGER DEFAULT 0, " "lock_time INTEGER DEFAULT 30000, " - "display_language INTEGER DEFAULT 1, " - "input_language INTEGER DEFAULT 1 " + "display_language TEXT DEFAULT 'English', " + "input_language TEXT DEFAULT 'English' " ");"; const char *settingsInitialization = "INSERT OR IGNORE INTO settings (_id, time_format_12, time_auto, " @@ -83,5 +84,5 @@ class SettingsTable : public Table "bigger_font, pin_mode, pin_days, pin_days_left, pin1_string,pin2_string, " "active_sim,network_operator,lock_pass_hash,lock_time, display_language, " "input_language) " - "VALUES(1,0,1,1,1,0,0,1,0,0,'','',1,'',0,30000,1,1)"; + "VALUES(1,0,1,1,1,0,0,1,0,0,'','',1,'',0,30000,'English','English')"; }; diff --git a/module-db/tests/SettingsRecord_tests.cpp b/module-db/tests/SettingsRecord_tests.cpp index d8cfa14f0a5e449b0068483e2d9469c8e103f329..c0cddf0cb09169cdf28b9af60facbb791a02bfb9 100644 --- a/module-db/tests/SettingsRecord_tests.cpp +++ b/module-db/tests/SettingsRecord_tests.cpp @@ -42,8 +42,8 @@ TEST_CASE("Settings Record tests") REQUIRE(settingsRecord.activeSIM == SettingsRecord::ActiveSim::SIM1); REQUIRE(settingsRecord.networkOperator == ""); REQUIRE(settingsRecord.lockPassHash == 0); - REQUIRE(settingsRecord.displayLanguage == SettingsLanguage ::ENGLISH); - REQUIRE(settingsRecord.inputLanguage == SettingsLanguage ::ENGLISH); + REQUIRE(settingsRecord.displayLanguage == "English"); + REQUIRE(settingsRecord.inputLanguage == "English"); settingsRecord.networkOperator = "MuditaConnectingPeople"; settingsRecord.fontSize = 10; diff --git a/module-db/tests/SettingsTable_tests.cpp b/module-db/tests/SettingsTable_tests.cpp index 3ec072d2ec47df6b7e6842d39902503568106bb5..2ab1e8b08911ba3bd5aec47b46ff816543308101 100644 --- a/module-db/tests/SettingsTable_tests.cpp +++ b/module-db/tests/SettingsTable_tests.cpp @@ -30,12 +30,12 @@ TEST_CASE("Settings Table tests") auto settingsRow = settingsDb.settings.getById(1); REQUIRE(settingsRow.ID == 1); - settingsRow.timeFormat12 = false; - settingsRow.timeDateFormat = false; - settingsRow.pin1 = "4321"; + settingsRow.timeFormat12 = false; + settingsRow.timeDateFormat = false; + settingsRow.pin1 = "4321"; settingsRow.pin2 = "5432"; - settingsRow.displayLanguage = SettingsLanguage ::POLISH; - settingsRow.inputLanguage = SettingsLanguage ::POLISH; + settingsRow.displayLanguage = "Polski"; + settingsRow.inputLanguage = "Polski"; REQUIRE(settingsDb.settings.update(settingsRow)); settingsRow = settingsDb.settings.getById(1); @@ -44,8 +44,8 @@ TEST_CASE("Settings Table tests") REQUIRE(settingsRow.timeDateFormat == false); REQUIRE(settingsRow.pin1 == "4321"); REQUIRE(settingsRow.pin2 == "5432"); - REQUIRE(settingsRow.displayLanguage == SettingsLanguage ::POLISH); - REQUIRE(settingsRow.inputLanguage == SettingsLanguage ::POLISH); + REQUIRE(settingsRow.displayLanguage == "Polski"); + REQUIRE(settingsRow.inputLanguage == "Polski"); } { @@ -57,8 +57,8 @@ TEST_CASE("Settings Table tests") REQUIRE(settingsRow.timeDateFormat == false); REQUIRE(settingsRow.pin1 == "4321"); REQUIRE(settingsRow.pin2 == "5432"); - REQUIRE(settingsRow.displayLanguage == SettingsLanguage ::POLISH); - REQUIRE(settingsRow.inputLanguage == SettingsLanguage ::POLISH); + REQUIRE(settingsRow.displayLanguage == "Polski"); + REQUIRE(settingsRow.inputLanguage == "Polski"); } Database::deinitialize(); diff --git a/module-gui/test/test-catch-text/test-gui-Text.cpp b/module-gui/test/test-catch-text/test-gui-Text.cpp index 463f0b69cf1a27e9e9b6be9da95068d4b44d56bb..f8f777af7ebfcd1de9dc10abe61a3d04e094bacb 100644 --- a/module-gui/test/test-catch-text/test-gui-Text.cpp +++ b/module-gui/test/test-catch-text/test-gui-Text.cpp @@ -144,7 +144,7 @@ TEST_CASE("Text buildDrawList") TEST_CASE("handle input mode ABC/abc/1234") { - utils::localize.SetDisplayLanguage(utils::Lang::En); /// needed to load input mode + utils::localize.setInputLanguage("English"); /// needed to load input mode auto &fontmanager = mockup::fontManager(); auto font = fontmanager.getFont(0); auto text = gui::TestText(); diff --git a/module-services/service-appmgr/Controller.cpp b/module-services/service-appmgr/Controller.cpp index 8b1ce720c3019498a3a68805a1cdcb6fcf358559..fca887bec57212a9fb954942eb7b67e8c9c94ad3 100644 --- a/module-services/service-appmgr/Controller.cpp +++ b/module-services/service-appmgr/Controller.cpp @@ -66,13 +66,13 @@ namespace app::manager return sys::Bus::SendUnicast(msg, ApplicationManager::ServiceName, sender); } - auto Controller::changeDisplayLanguage(sys::Service *sender, utils::Lang language) -> bool + auto Controller::changeDisplayLanguage(sys::Service *sender, const Language &language) -> bool { auto msg = std::make_shared(sender->GetName(), language); return sys::Bus::SendUnicast(msg, ApplicationManager::ServiceName, sender); } - auto Controller::changeInputLanguage(sys::Service *sender, utils::Lang language) -> bool + auto Controller::changeInputLanguage(sys::Service *sender, const Language &language) -> bool { auto msg = std::make_shared(sender->GetName(), language); return sys::Bus::SendUnicast(msg, ApplicationManager::ServiceName, sender); diff --git a/module-services/service-appmgr/messages/LanguageChangeRequest.cpp b/module-services/service-appmgr/messages/LanguageChangeRequest.cpp index b3702479d011a03b8b24301eff3063a2b0ac4f07..e67d90561f04e2a0e83600f8de079199ac3f41d2 100644 --- a/module-services/service-appmgr/messages/LanguageChangeRequest.cpp +++ b/module-services/service-appmgr/messages/LanguageChangeRequest.cpp @@ -2,23 +2,24 @@ // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include +#include namespace app::manager { - LanguageChangeRequest::LanguageChangeRequest(const ApplicationName &senderName, utils::Lang language) - : BaseMessage(MessageType::APMChangeLanguage, senderName), language{language} + LanguageChangeRequest::LanguageChangeRequest(const ApplicationName &senderName, Language &&language) + : BaseMessage(MessageType::APMChangeLanguage, senderName), language{std::move(language)} {} - [[nodiscard]] auto LanguageChangeRequest::getLanguage() const noexcept -> utils::Lang + [[nodiscard]] auto LanguageChangeRequest::getLanguage() const -> Language { return language; } - DisplayLanguageChangeRequest::DisplayLanguageChangeRequest(const ApplicationName &senderName, utils::Lang language) - : LanguageChangeRequest(senderName, language) + DisplayLanguageChangeRequest::DisplayLanguageChangeRequest(const ApplicationName &senderName, Language language) + : LanguageChangeRequest(senderName, std::move(language)) {} - InputLanguageChangeRequest::InputLanguageChangeRequest(const ApplicationName &senderName, utils::Lang language) - : LanguageChangeRequest(senderName, language) + InputLanguageChangeRequest::InputLanguageChangeRequest(const ApplicationName &senderName, Language language) + : LanguageChangeRequest(senderName, std::move(language)) {} } // namespace app::manager diff --git a/module-services/service-appmgr/model/ApplicationManager.cpp b/module-services/service-appmgr/model/ApplicationManager.cpp index 5d7b1283fe72be1b693d3d3c59d8b4ba3ea7c45d..17be210962014d3dc9f455afd17178639b0159a1 100644 --- a/module-services/service-appmgr/model/ApplicationManager.cpp +++ b/module-services/service-appmgr/model/ApplicationManager.cpp @@ -35,36 +35,6 @@ namespace app::manager namespace { constexpr auto default_application_locktime_ms = 30000; - - utils::Lang toUtilsLanguage(SettingsLanguage language) - { - switch (language) { - case SettingsLanguage::ENGLISH: - return utils::Lang::En; - case SettingsLanguage::POLISH: - return utils::Lang::Pl; - case SettingsLanguage::GERMAN: - return utils::Lang::De; - case SettingsLanguage::SPANISH: - return utils::Lang::Sp; - } - return utils::Lang::En; - } - - SettingsLanguage toSettingsLanguage(utils::Lang language) - { - switch (language) { - case utils::Lang::En: - return SettingsLanguage::ENGLISH; - case utils::Lang::Pl: - return SettingsLanguage::POLISH; - case utils::Lang::De: - return SettingsLanguage::GERMAN; - case utils::Lang::Sp: - return SettingsLanguage::SPANISH; - } - return SettingsLanguage::ENGLISH; - } } // namespace ApplicationManagerBase::ApplicationManagerBase(std::vector> &&launchers) @@ -141,8 +111,9 @@ namespace app::manager { settings = DBServiceAPI::SettingsGet(this); blockingTimer->setInterval(settings.lockTime != 0 ? settings.lockTime : default_application_locktime_ms); - utils::localize.SetDisplayLanguage(toUtilsLanguage(settings.displayLanguage)); - utils::localize.setInputLanguage(toUtilsLanguage(settings.inputLanguage)); + utils::localize.setFallbackLanguage(utils::localize.DefaultLanguage); + utils::localize.setDisplayLanguage(settings.displayLanguage); + utils::localize.setInputLanguage(settings.inputLanguage); startSystemServices(); startBackgroundApplications(); @@ -557,7 +528,7 @@ namespace app::manager auto ApplicationManager::handleDisplayLanguageChange(app::manager::DisplayLanguageChangeRequest *msg) -> bool { - const auto requestedLanguage = toSettingsLanguage(msg->getLanguage()); + const auto requestedLanguage = msg->getLanguage(); settings = DBServiceAPI::SettingsGet(this); if (requestedLanguage == settings.displayLanguage) { @@ -565,7 +536,7 @@ namespace app::manager return true; } settings.displayLanguage = requestedLanguage; - utils::localize.SetDisplayLanguage(msg->getLanguage()); + utils::localize.setDisplayLanguage(requestedLanguage); rebuildActiveApplications(); DBServiceAPI::SettingsUpdate(this, settings); return true; @@ -573,7 +544,7 @@ namespace app::manager auto ApplicationManager::handleInputLanguageChange(app::manager::InputLanguageChangeRequest *msg) -> bool { - const auto requestedLanguage = toSettingsLanguage(msg->getLanguage()); + const auto requestedLanguage = msg->getLanguage(); settings = DBServiceAPI::SettingsGet(this); if (requestedLanguage == settings.inputLanguage) { diff --git a/module-services/service-appmgr/service-appmgr/Controller.hpp b/module-services/service-appmgr/service-appmgr/Controller.hpp index fba1ed71ac6bfe79b87be39ed8aefbee855f9967..4b69e9a5441207441ea8742d6ef6250e539c85b2 100644 --- a/module-services/service-appmgr/service-appmgr/Controller.hpp +++ b/module-services/service-appmgr/service-appmgr/Controller.hpp @@ -44,9 +44,8 @@ namespace app::manager static auto confirmSwitch(sys::Service *sender) -> bool; static auto closeApplication(sys::Service *sender, const ApplicationName &name) -> bool; static auto confirmClose(sys::Service *sender) -> bool; - - static auto changeDisplayLanguage(sys::Service *sender, utils::Lang language) -> bool; - static auto changeInputLanguage(sys::Service *sender, utils::Lang language) -> bool; + static auto changeDisplayLanguage(sys::Service *sender, const Language &language) -> bool; + static auto changeInputLanguage(sys::Service *sender, const Language &language) -> bool; static auto changePowerSaveMode(sys::Service *sender) -> bool; static auto preventBlockingDevice(sys::Service *sender) -> bool; }; diff --git a/module-services/service-appmgr/service-appmgr/messages/LanguageChangeRequest.hpp b/module-services/service-appmgr/service-appmgr/messages/LanguageChangeRequest.hpp index c418ef60915979d73c5fe6e696728b705a8bbf7f..433bb430cb2862a7b658f12e4480fa4418e8bd18 100644 --- a/module-services/service-appmgr/service-appmgr/messages/LanguageChangeRequest.hpp +++ b/module-services/service-appmgr/service-appmgr/messages/LanguageChangeRequest.hpp @@ -12,26 +12,26 @@ namespace app::manager class LanguageChangeRequest : public BaseMessage { public: - [[nodiscard]] auto getLanguage() const noexcept -> utils::Lang; + [[nodiscard]] auto getLanguage() const -> Language; protected: - LanguageChangeRequest(const ApplicationName &senderName, utils::Lang language); + LanguageChangeRequest(const ApplicationName &senderName, Language &&language); private: - utils::Lang language; + Language language; }; /// Requests to change the display language. class DisplayLanguageChangeRequest : public LanguageChangeRequest { public: - DisplayLanguageChangeRequest(const ApplicationName &senderName, utils::Lang language); + DisplayLanguageChangeRequest(const ApplicationName &senderName, Language language); }; /// Requests to change the input language. class InputLanguageChangeRequest : public LanguageChangeRequest { public: - InputLanguageChangeRequest(const ApplicationName &senderName, utils::Lang language); + InputLanguageChangeRequest(const ApplicationName &senderName, Language language); }; } // namespace app::manager diff --git a/module-utils/i18/i18.cpp b/module-utils/i18/i18.cpp index 234a845961b64807de9aeb18ec528ca4eda48d6c..c3f45f6621af04ba8ffafc49a55e2a82f41f39fd 100644 --- a/module-utils/i18/i18.cpp +++ b/module-utils/i18/i18.cpp @@ -7,6 +7,9 @@ namespace utils { namespace { + const auto LanguageDirPath = std::filesystem::path{"assets"} / "lang"; + constexpr auto extension = ".json"; + auto returnNonEmptyString(const std::string &str, const std::string &ret) -> const std::string & { return str.empty() ? ret : str; @@ -14,31 +17,12 @@ namespace utils } // namespace i18 localize; - json11::Json LangLoader::Create(Lang lang) + json11::Json LangLoader::createJson(const std::string &filename) { - const char *path = nullptr; - - switch (lang) { - case Lang::Pl: - path = langPL_path; - break; - case Lang::En: - path = langEN_path; - break; - case Lang::De: - path = langDE_path; - break; - case Lang::Sp: - path = langSP_path; - break; - - default: - return json11::Json(); - } - - auto fd = vfs.fopen(path, "r"); + const fs::path path = LanguageDirPath / (filename + extension); + auto fd = vfs.fopen(path.c_str(), "r"); if (fd == nullptr) { - LOG_FATAL("Error during opening file %s", path); + LOG_FATAL("Error during opening file %s", path.c_str()); return json11::Json(); } @@ -66,64 +50,73 @@ namespace utils } } - void i18::setInputLanguage(Lang lang) + std::vector LangLoader::getAvailableDisplayLanguages() const { - if (!input_init) { - backupLang = loader.Create(lang_default); - inputLang = backupLang; - input_init = true; + std::vector languageNames; + for (const auto &entry : fs::directory_iterator(LanguageDirPath)) { + languageNames.push_back(fs::path(entry.path()).stem()); } - if (lang == inputCurrent) { + return languageNames; + } + + void i18::setInputLanguage(const Language &lang) + { + if (lang == currentInputLanguage) { return; } - inputCurrent = lang; - if (lang == lang_default) { - inputLang = backupLang; + currentInputLanguage = lang; + if (lang == fallbackLanguageName) { + inputLanguage = fallbackLanguage; } else { - json11::Json pack = loader.Create(lang); - inputLang = pack; + json11::Json pack = loader.createJson(lang); + inputLanguage = pack; } } const std::string &i18::getInputLanguage(const std::string &str) { // if language pack returned nothing then try default language - if (inputLang[str].string_value().empty()) { - return returnNonEmptyString(backupLang[str].string_value(), str); + if (inputLanguage[str].string_value().empty()) { + return returnNonEmptyString(fallbackLanguage[str].string_value(), str); } - return returnNonEmptyString(inputLang[str].string_value(), str); + return returnNonEmptyString(inputLanguage[str].string_value(), str); } const std::string &i18::get(const std::string &str) { // if language pack returned nothing then try default language - if (displayLang[str].string_value().empty()) { - return returnNonEmptyString(backupLang[str].string_value(), str); + if (displayLanguage[str].string_value().empty()) { + return returnNonEmptyString(fallbackLanguage[str].string_value(), str); } - return returnNonEmptyString(displayLang[str].string_value(), str); + return returnNonEmptyString(displayLanguage[str].string_value(), str); } - void i18::SetDisplayLanguage(Lang lang) + void i18::setDisplayLanguage(const Language &lang) { - if (!display_init) { - backupLang = loader.Create(lang_default); - displayLang = backupLang; - display_init = true; + if (!backupLanguageInitializer) { + fallbackLanguage = loader.createJson(fallbackLanguageName); + displayLanguage = fallbackLanguage; + backupLanguageInitializer = true; } - if (lang == displayCurrent) { + if (lang == currentDisplayLanguage) { return; } - displayCurrent = lang; - if (lang == lang_default) { - displayLang = backupLang; + currentDisplayLanguage = lang; + if (lang == fallbackLanguageName) { + displayLanguage = fallbackLanguage; } else { - json11::Json pack = loader.Create(lang); + json11::Json pack = loader.createJson(lang); // Suspend whole system during switching lang packs vTaskSuspendAll(); - displayLang = pack; + displayLanguage = pack; xTaskResumeAll(); } } + void i18::setFallbackLanguage(const Language &lang) + { + fallbackLanguageName = std::move(lang); + } + } // namespace utils diff --git a/module-utils/i18/i18.hpp b/module-utils/i18/i18.hpp index 6321f9929f2df10b0efbb8d3bb07b53478c143a1..ef12b172c187ec6af39c26c8039968ac5b7ca467 100644 --- a/module-utils/i18/i18.hpp +++ b/module-utils/i18/i18.hpp @@ -11,48 +11,35 @@ #include "thread.hpp" +using Language = std::string; + namespace utils { - - enum class Lang - { - En, - Pl, - De, - Sp - }; - class LangLoader { - - const char *langEN_path = "assets/lang/lang_en.json"; - const char *langPL_path = "assets/lang/lang_pl.json"; - const char *langDE_path = "assets/lang/lang_de.json"; - const char *langSP_path = "assets/lang/lang_sp.json"; - public: LangLoader() {} virtual ~LangLoader() {} - - json11::Json Create(Lang lang); + std::vector getAvailableDisplayLanguages() const; + json11::Json createJson(const std::string &filename); }; class i18 { - - json11::Json displayLang; - json11::Json inputLang; - json11::Json backupLang; // backup language if item not found + private: + json11::Json displayLanguage; + json11::Json inputLanguage; + json11::Json fallbackLanguage; // backup language if item not found LangLoader loader; - static const Lang lang_default = Lang::En; - Lang displayCurrent = lang_default; - Lang inputCurrent = lang_default; - bool display_init = false; - bool input_init = false; + Language fallbackLanguageName; + Language currentDisplayLanguage = fallbackLanguageName; + Language currentInputLanguage = fallbackLanguageName; + bool backupLanguageInitializer = false; public: + static constexpr auto DefaultLanguage = "English"; // Default constructor, left empty on purpose i18() {} @@ -61,10 +48,11 @@ namespace utils // which is not available at program's startup. virtual ~i18() {} - void setInputLanguage(Lang lang); + void setInputLanguage(const Language &lang); const std::string &getInputLanguage(const std::string &str); const std::string &get(const std::string &str); - void SetDisplayLanguage(Lang lang); + void setDisplayLanguage(const Language &lang); + void setFallbackLanguage(const Language &lang); }; // Global instance of i18 class diff --git a/module-utils/test/test_time_conversion.cpp b/module-utils/test/test_time_conversion.cpp index b7cc5d7a254db7d01010c8752564bf4ae71a75b7..19ce7a5555eab4e44b6cfcd090368958311a7d60 100644 --- a/module-utils/test/test_time_conversion.cpp +++ b/module-utils/test/test_time_conversion.cpp @@ -240,7 +240,7 @@ int main(int argc, char *argv[]) } // set locale to PL - utils::localize.SetDisplayLanguage(utils::Lang::Pl); + utils::localize.setDisplayLanguage("Polski"); std::setlocale(LC_TIME, "pl_PL.UTF-8"); // set default output to nullstream diff --git a/module-utils/test/unittest_duration.cpp b/module-utils/test/unittest_duration.cpp index 7c3bb881bb9bf5c7c63e245f4eb26d4f6313dd52..dc304a61d145f9f85fc5c8d959f0c01fcd7af772 100644 --- a/module-utils/test/unittest_duration.cpp +++ b/module-utils/test/unittest_duration.cpp @@ -25,7 +25,7 @@ struct vfs_initializer TEST_CASE("Duration - creation") { - utils::localize.SetDisplayLanguage(utils::Lang::En); + utils::localize.setDisplayLanguage("English"); SECTION("default constructor") { @@ -68,7 +68,7 @@ TEST_CASE("Duration - creation") TEST_CASE("Duration - arithemtics") { - utils::localize.SetDisplayLanguage(utils::Lang::En); + utils::localize.setDisplayLanguage("English"); SECTION("Addition") { @@ -106,7 +106,7 @@ TEST_CASE("Duration - arithemtics") TEST_CASE("Duration - comparision") { - utils::localize.SetDisplayLanguage(utils::Lang::En); + utils::localize.setDisplayLanguage("English"); SECTION("Duration") { @@ -150,7 +150,7 @@ TEST_CASE("Duration - comparision") TEST_CASE("Duration - display") { - utils::localize.SetDisplayLanguage(utils::Lang::En); + utils::localize.setDisplayLanguage("English"); { using namespace utils::time;