From d157ffbd3d763fef75816df7cb4bf184a07da600 Mon Sep 17 00:00:00 2001 From: Christophe Deschamps Date: Thu, 16 Jun 2022 13:16:22 +0200 Subject: [PATCH] Added FR, DE, NL and RU translations from android + added tool to import from android (read me inside) --- Classes/Swift/Voip/Theme/VoipTexts.swift | 223 ++++++++++++----------- Resources/de.lproj/Localizable.strings | Bin 79908 -> 81676 bytes Resources/fr.lproj/Localizable.strings | Bin 59482 -> 70744 bytes Resources/nl.lproj/Localizable.strings | Bin 77018 -> 78516 bytes Resources/ru.lproj/Localizable.strings | Bin 77952 -> 87374 bytes scripts/android_import.sh | 30 +++ 6 files changed, 142 insertions(+), 111 deletions(-) create mode 100755 scripts/android_import.sh diff --git a/Classes/Swift/Voip/Theme/VoipTexts.swift b/Classes/Swift/Voip/Theme/VoipTexts.swift index 3191ae6f6..765bda54a 100644 --- a/Classes/Swift/Voip/Theme/VoipTexts.swift +++ b/Classes/Swift/Voip/Theme/VoipTexts.swift @@ -24,123 +24,124 @@ import UIKit static let appName = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as! String - // FROM ANDROID START - + // FROM ANDROID START (check script scripts/android_import.sh for details) @objc static let call_action_add_call = NSLocalizedString("Start new call",comment:"") - @objc static let call_action_calls_list = NSLocalizedString("Calls list",comment:"") - @objc static let call_action_change_conf_layout = NSLocalizedString("Change layout",comment:"") - @objc static let call_action_chat = NSLocalizedString("Chat",comment:"") - @objc static let call_action_numpad = NSLocalizedString("Numpad",comment:"") - @objc static let call_action_participants_list = NSLocalizedString("Participants list",comment:"") - @objc static let call_action_statistics = NSLocalizedString("Call statistics",comment:"") - @objc static let call_action_transfer_call = NSLocalizedString("Transfer call",comment:"") - @objc static let call_context_action_answer = NSLocalizedString("Answer call",comment:"") - @objc static let call_context_action_hangup = NSLocalizedString("Terminate call",comment:"") - @objc static let call_context_action_pause = NSLocalizedString("Pause call",comment:"") - @objc static let call_context_action_resume = NSLocalizedString("Resume call",comment:"") - @objc static let call_context_action_transfer = NSLocalizedString("Transfer call",comment:"") - @objc static let call_error_declined = NSLocalizedString("Call has been declined",comment:"") - @objc static let call_error_generic = NSLocalizedString("Error: %s",comment:"") - @objc static let call_error_incompatible_media_params = NSLocalizedString("Incompatible media parameters",comment:"") - @objc static let call_error_io_error = NSLocalizedString("Service unavailable or network error",comment:"") - @objc static let call_error_network_unreachable = NSLocalizedString("Network is unreachable",comment:"") - @objc static let call_error_server_timeout = NSLocalizedString("Server timeout",comment:"") - @objc static let call_error_temporarily_unavailable = NSLocalizedString("Temporarily unavailable",comment:"") - @objc static let call_error_user_busy = NSLocalizedString("User is busy",comment:"") - @objc static let call_error_user_not_found = NSLocalizedString("User hasn't been found",comment:"") - @objc static let call_incoming_title = NSLocalizedString("Incoming Call",comment:"") - @objc static let call_locally_paused_subtitle = NSLocalizedString("Click on play button to resume it.",comment:"") - @objc static let call_locally_paused_title = NSLocalizedString("You have paused the call.",comment:"") - @objc static let call_notification_active = NSLocalizedString("Call running",comment:"") - @objc static let call_notification_outgoing = NSLocalizedString("Outgoing call",comment:"") - @objc static let call_notification_paused = NSLocalizedString("Paused call",comment:"") - @objc static let call_outgoing_title = NSLocalizedString("Outgoing Call",comment:"") - @objc static let call_remote_recording = NSLocalizedString("This call is being recorded.",comment:"") - @objc static let call_remotely_paused_title = NSLocalizedString("Call has been paused by remote.",comment:"") - @objc static let call_stats_audio = NSLocalizedString("Audio",comment:"") - @objc static let call_stats_capture_filter = NSLocalizedString("Capture filter:",comment:"") - @objc static let call_stats_codec = NSLocalizedString("Codec:",comment:"") - @objc static let call_stats_decoder_name = NSLocalizedString("Decoder:",comment:"") - @objc static let call_stats_download = NSLocalizedString("Download bandwidth:",comment:"") - @objc static let call_stats_encoder_name = NSLocalizedString("Encoder:",comment:"") - @objc static let call_stats_estimated_download = NSLocalizedString("Estimated download bandwidth:",comment:"") - @objc static let call_stats_ice = NSLocalizedString("ICE connectivity:",comment:"") - @objc static let call_stats_ip = NSLocalizedString("IP Family:",comment:"") - @objc static let call_stats_jitter_buffer = NSLocalizedString("Jitter buffer:",comment:"") - @objc static let call_stats_player_filter = NSLocalizedString("Player filter:",comment:"") - @objc static let call_stats_receiver_loss_rate = NSLocalizedString("Receiver loss rate:",comment:"") - @objc static let call_stats_sender_loss_rate = NSLocalizedString("Sender loss rate:",comment:"") - @objc static let call_stats_upload = NSLocalizedString("Upload bandwidth:",comment:"") - @objc static let call_stats_video = NSLocalizedString("Video",comment:"") - @objc static let call_stats_video_fps_received = NSLocalizedString("Received video fps:",comment:"") - @objc static let call_stats_video_fps_sent = NSLocalizedString("Sent video fps:",comment:"") - @objc static let call_stats_video_resolution_received = NSLocalizedString("Received video resolution:",comment:"") - @objc static let call_stats_video_resolution_sent = NSLocalizedString("Sent video resolution:",comment:"") - @objc static let call_video_update_requested_dialog = NSLocalizedString("Correspondent would like to turn the video on",comment:"") - @objc static let cancel = NSLocalizedString("Cancel",comment:"") - @objc static let chat_room_group_info_admin = NSLocalizedString("Admin",comment:"") - @objc static let conference_creation_failed = NSLocalizedString("Failed to create meeting",comment:"") - @objc static let conference_default_title = NSLocalizedString("Remote group call",comment:"") - @objc static let conference_description_title = NSLocalizedString("Description:",comment:"") - @objc static let conference_display_mode_active_speaker = NSLocalizedString("Active speaker mode",comment:"") - @objc static let conference_display_mode_audio_only = NSLocalizedString("Audio only mode",comment:"") - @objc static let conference_display_mode_mosaic = NSLocalizedString("Mosaic mode",comment:"") - @objc static let conference_first_to_join = NSLocalizedString("You're the first to join the group call",comment:"") - @objc static let conference_go_to_chat = NSLocalizedString("Meeting's chat room",comment:"") - @objc static let conference_group_call_create = NSLocalizedString("Start group call",comment:"") - @objc static let conference_group_call_title = NSLocalizedString("Start a group call",comment:"") - @objc static let conference_incoming_title = NSLocalizedString("Incoming group call",comment:"") - @objc static let conference_info_confirm_removal = NSLocalizedString("Do you really want to delete this meeting?",comment:"") - @objc static let conference_info_removed = NSLocalizedString("Meeting info has been deleted",comment:"") - @objc static let conference_invite_join = NSLocalizedString("Join",comment:"") - @objc static let conference_invite_participants_count = NSLocalizedString("%d participants",comment:"") - @objc static let conference_invite_title = NSLocalizedString("Meeting invite:",comment:"") - @objc static let conference_last_user = NSLocalizedString("All other participants have left the group call",comment:"") - @objc static let conference_local_title = NSLocalizedString("Local group call",comment:"") - @objc static let conference_no_schedule = NSLocalizedString("No scheduled meeting yet.",comment:"") - @objc static let conference_participant_paused = NSLocalizedString("(paused)",comment:"") - @objc static let conference_participants_title = NSLocalizedString("Participants (%d)",comment:"") - @objc static let conference_paused_subtitle = NSLocalizedString("Click on play button to join it back.",comment:"") - @objc static let conference_paused_title = NSLocalizedString("You are currently out of the meeting.",comment:"") - @objc static let conference_schedule_address_copied_to_clipboard = NSLocalizedString("Meeting address copied into clipboard",comment:"") - @objc static let conference_schedule_address_title = NSLocalizedString("Meeting address",comment:"") - @objc static let conference_schedule_date = NSLocalizedString("Date",comment:"") - @objc static let conference_schedule_description_hint = NSLocalizedString("Description",comment:"") - @objc static let conference_schedule_description_title = NSLocalizedString("Add a description",comment:"") - @objc static let conference_schedule_duration = NSLocalizedString("Duration",comment:"") - @objc static let conference_schedule_encryption = NSLocalizedString("Would you like to encrypt the meeting?",comment:"") - @objc static let conference_schedule_info_created = NSLocalizedString("Meeting has been scheduled",comment:"") - @objc static let conference_schedule_info_not_sent_to_participant = NSLocalizedString("Failed to send meeting info to a participant",comment:"") - @objc static let conference_schedule_later = NSLocalizedString("Do you want to schedule a meeting for later?",comment:"") - @objc static let conference_schedule_mandatory_field = NSLocalizedString("Mandatory",comment:"") - @objc static let conference_schedule_organizer = NSLocalizedString("Organizer:",comment:"") - @objc static let conference_schedule_participants_list = NSLocalizedString("Participants list",comment:"") - @objc static let conference_schedule_send_invite_chat = NSLocalizedString("Send invite via \(appName);",comment:"") - @objc static let conference_schedule_send_invite_chat_summary = NSLocalizedString("Invite will be sent out from my \(appName); account",comment:"") - @objc static let conference_schedule_send_invite_email = NSLocalizedString("Send invite via email",comment:"") - @objc static let conference_schedule_start = NSLocalizedString("Schedule meeting",comment:"") - @objc static let conference_schedule_subject_hint = NSLocalizedString("Meeting subject",comment:"") - @objc static let conference_schedule_subject_title = NSLocalizedString("Subject",comment:"") - @objc static let conference_schedule_summary = NSLocalizedString("Meeting info",comment:"") - @objc static let conference_schedule_time = NSLocalizedString("Time",comment:"") - @objc static let conference_schedule_timezone = NSLocalizedString("Timezone",comment:"") - @objc static let conference_schedule_title = NSLocalizedString("Schedule a meeting",comment:"") - @objc static let conference_scheduled = NSLocalizedString("Meetings",comment:"") - @objc static let conference_start_group_call_dialog_message = NSLocalizedString("Do you want to start a group call?\nEveryone in this group will receive a call to join the meeting.",comment:"") - @objc static let conference_start_group_call_dialog_ok_button = NSLocalizedString("Start",comment:"") - @objc static let conference_too_many_participants_for_mosaic_layout = NSLocalizedString("There is too many participants for mosaic layout, switching to active speaker",comment:"") - @objc static let conference_waiting_room_cancel_call = NSLocalizedString("Cancel",comment:"") - @objc static let conference_waiting_room_start_call = NSLocalizedString("Start",comment:"") - @objc static let conference_waiting_room_video_disabled = NSLocalizedString("Video is currently disabled",comment:"") - @objc static let dialog_accept = NSLocalizedString("Accept",comment:"") - @objc static let dialog_decline = NSLocalizedString("Decline",comment:"") - @objc static let conference_empty = NSLocalizedString("You are currently alone in this group call",comment:"") + @objc static let call_action_calls_list = NSLocalizedString("Calls list",comment:"") + @objc static let call_action_change_conf_layout = NSLocalizedString("Change layout",comment:"") + @objc static let call_action_chat = NSLocalizedString("Chat",comment:"") + @objc static let call_action_numpad = NSLocalizedString("Numpad",comment:"") + @objc static let call_action_participants_list = NSLocalizedString("Participants list",comment:"") + @objc static let call_action_statistics = NSLocalizedString("Call statistics",comment:"") + @objc static let call_action_transfer_call = NSLocalizedString("Transfer call",comment:"") + @objc static let call_context_action_answer = NSLocalizedString("Answer call",comment:"") + @objc static let call_context_action_hangup = NSLocalizedString("Terminate call",comment:"") + @objc static let call_context_action_pause = NSLocalizedString("Pause call",comment:"") + @objc static let call_context_action_resume = NSLocalizedString("Resume call",comment:"") + @objc static let call_context_action_transfer = NSLocalizedString("Transfer call",comment:"") + @objc static let call_error_declined = NSLocalizedString("Call has been declined",comment:"") + @objc static let call_error_generic = NSLocalizedString("Error: %s",comment:"") + @objc static let call_error_incompatible_media_params = NSLocalizedString("Incompatible media parameters",comment:"") + @objc static let call_error_io_error = NSLocalizedString("Service unavailable or network error",comment:"") + @objc static let call_error_network_unreachable = NSLocalizedString("Network is unreachable",comment:"") + @objc static let call_error_server_timeout = NSLocalizedString("Server timeout",comment:"") + @objc static let call_error_temporarily_unavailable = NSLocalizedString("Temporarily unavailable",comment:"") + @objc static let call_error_user_busy = NSLocalizedString("User is busy",comment:"") + @objc static let call_error_user_not_found = NSLocalizedString("User hasn't been found",comment:"") + @objc static let call_incoming_title = NSLocalizedString("Incoming Call",comment:"") + @objc static let call_locally_paused_subtitle = NSLocalizedString("Click on play button to resume it.",comment:"") + @objc static let call_locally_paused_title = NSLocalizedString("You have paused the call.",comment:"") + @objc static let call_notification_active = NSLocalizedString("Call running",comment:"") + @objc static let call_notification_outgoing = NSLocalizedString("Outgoing call",comment:"") + @objc static let call_notification_paused = NSLocalizedString("Paused call",comment:"") + @objc static let call_outgoing_title = NSLocalizedString("Outgoing Call",comment:"") + @objc static let call_remote_recording = NSLocalizedString("This call is being recorded.",comment:"") + @objc static let call_remotely_paused_title = NSLocalizedString("Call has been paused by remote.",comment:"") + @objc static let call_stats_audio = NSLocalizedString("Audio",comment:"") + @objc static let call_stats_capture_filter = NSLocalizedString("Capture filter:",comment:"") + @objc static let call_stats_codec = NSLocalizedString("Codec:",comment:"") + @objc static let call_stats_decoder_name = NSLocalizedString("Decoder:",comment:"") + @objc static let call_stats_download = NSLocalizedString("Download bandwidth:",comment:"") + @objc static let call_stats_encoder_name = NSLocalizedString("Encoder:",comment:"") + @objc static let call_stats_estimated_download = NSLocalizedString("Estimated download bandwidth:",comment:"") + @objc static let call_stats_ice = NSLocalizedString("ICE connectivity:",comment:"") + @objc static let call_stats_ip = NSLocalizedString("IP Family:",comment:"") + @objc static let call_stats_jitter_buffer = NSLocalizedString("Jitter buffer:",comment:"") + @objc static let call_stats_player_filter = NSLocalizedString("Player filter:",comment:"") + @objc static let call_stats_receiver_loss_rate = NSLocalizedString("Receiver loss rate:",comment:"") + @objc static let call_stats_sender_loss_rate = NSLocalizedString("Sender loss rate:",comment:"") + @objc static let call_stats_upload = NSLocalizedString("Upload bandwidth:",comment:"") + @objc static let call_stats_video = NSLocalizedString("Video",comment:"") + @objc static let call_stats_video_fps_received = NSLocalizedString("Received video fps:",comment:"") + @objc static let call_stats_video_fps_sent = NSLocalizedString("Sent video fps:",comment:"") + @objc static let call_stats_video_resolution_received = NSLocalizedString("Received video resolution:",comment:"") + @objc static let call_stats_video_resolution_sent = NSLocalizedString("Sent video resolution:",comment:"") + @objc static let call_video_update_requested_dialog = NSLocalizedString("Correspondent would like to turn the video on",comment:"") + @objc static let cancel = NSLocalizedString("Cancel",comment:"") + @objc static let chat_room_group_info_admin = NSLocalizedString("Admin",comment:"") + @objc static let conference_creation_failed = NSLocalizedString("Failed to create meeting",comment:"") + @objc static let conference_default_title = NSLocalizedString("Remote group call",comment:"") + @objc static let conference_description_title = NSLocalizedString("Description:",comment:"") + @objc static let conference_display_mode_active_speaker = NSLocalizedString("Active speaker mode",comment:"") + @objc static let conference_display_mode_audio_only = NSLocalizedString("Audio only mode",comment:"") + @objc static let conference_display_mode_mosaic = NSLocalizedString("Mosaic mode",comment:"") + @objc static let conference_first_to_join = NSLocalizedString("You're the first to join the group call",comment:"") + @objc static let conference_go_to_chat = NSLocalizedString("Meeting's chat room",comment:"") + @objc static let conference_group_call_create = NSLocalizedString("Start group call",comment:"") + @objc static let conference_group_call_title = NSLocalizedString("Start a group call",comment:"") + @objc static let conference_incoming_title = NSLocalizedString("Incoming group call",comment:"") + @objc static let conference_info_confirm_removal = NSLocalizedString("Do you really want to delete this meeting?",comment:"") + @objc static let conference_info_removed = NSLocalizedString("Meeting info has been deleted",comment:"") + @objc static let conference_invite_join = NSLocalizedString("Join",comment:"") + @objc static let conference_invite_participants_count = NSLocalizedString("%d participants",comment:"") + @objc static let conference_invite_title = NSLocalizedString("Meeting invite:",comment:"") + @objc static let conference_last_user = NSLocalizedString("All other participants have left the group call",comment:"") + @objc static let conference_local_title = NSLocalizedString("Local group call",comment:"") + @objc static let conference_no_schedule = NSLocalizedString("No scheduled meeting yet.",comment:"") + @objc static let conference_participant_paused = NSLocalizedString("(paused)",comment:"") + @objc static let conference_participants_title = NSLocalizedString("Participants (%d)",comment:"") + @objc static let conference_paused_subtitle = NSLocalizedString("Click on play button to join it back.",comment:"") + @objc static let conference_paused_title = NSLocalizedString("You are currently out of the meeting.",comment:"") + @objc static let conference_schedule_address_copied_to_clipboard = NSLocalizedString("Meeting address copied into clipboard",comment:"") + @objc static let conference_schedule_address_title = NSLocalizedString("Meeting address",comment:"") + @objc static let conference_schedule_date = NSLocalizedString("Date",comment:"") + @objc static let conference_schedule_description_hint = NSLocalizedString("Description",comment:"") + @objc static let conference_schedule_description_title = NSLocalizedString("Add a description",comment:"") + @objc static let conference_schedule_duration = NSLocalizedString("Duration",comment:"") + @objc static let conference_schedule_encryption = NSLocalizedString("Would you like to encrypt the meeting?",comment:"") + @objc static let conference_schedule_info_created = NSLocalizedString("Meeting has been scheduled",comment:"") + @objc static let conference_schedule_info_not_sent_to_participant = NSLocalizedString("Failed to send meeting info to a participant",comment:"") + @objc static let conference_schedule_later = NSLocalizedString("Do you want to schedule a meeting for later?",comment:"") + @objc static let conference_schedule_mandatory_field = NSLocalizedString("Mandatory",comment:"") + @objc static let conference_schedule_organizer = NSLocalizedString("Organizer:",comment:"") + @objc static let conference_schedule_participants_list = NSLocalizedString("Participants list",comment:"") + @objc static let conference_schedule_send_invite_chat = NSLocalizedString("Send invite via &appName;",comment:"").replacingOccurrences(of: "&appName;", with: appName) + @objc static let conference_schedule_send_invite_chat_summary = NSLocalizedString("Invite will be sent out from my &appName; account",comment:"").replacingOccurrences(of: "&appName;", with: appName) + @objc static let conference_schedule_send_invite_email = NSLocalizedString("Send invite via email",comment:"") + @objc static let conference_schedule_start = NSLocalizedString("Schedule meeting",comment:"") + @objc static let conference_schedule_subject_hint = NSLocalizedString("Meeting subject",comment:"") + @objc static let conference_schedule_subject_title = NSLocalizedString("Subject",comment:"") + @objc static let conference_schedule_summary = NSLocalizedString("Meeting info",comment:"") + @objc static let conference_schedule_time = NSLocalizedString("Time",comment:"") + @objc static let conference_schedule_timezone = NSLocalizedString("Timezone",comment:"") + @objc static let conference_schedule_title = NSLocalizedString("Schedule a meeting",comment:"") + @objc static let conference_scheduled = NSLocalizedString("Meetings",comment:"") + @objc static let conference_start_group_call_dialog_message = NSLocalizedString("Do you want to start a group call?\nEveryone in this group will receive a call to join the meeting.",comment:"") + @objc static let conference_start_group_call_dialog_ok_button = NSLocalizedString("Start",comment:"") + @objc static let conference_too_many_participants_for_mosaic_layout = NSLocalizedString("There is too many participants for mosaic layout, switching to active speaker",comment:"") + @objc static let conference_waiting_room_cancel_call = NSLocalizedString("Cancel",comment:"") + @objc static let conference_waiting_room_start_call = NSLocalizedString("Start",comment:"") + @objc static let conference_waiting_room_video_disabled = NSLocalizedString("Video is currently disabled",comment:"") + @objc static let dialog_accept = NSLocalizedString("Accept",comment:"") + @objc static let dialog_decline = NSLocalizedString("Decline",comment:"") + @objc static let conference_empty = NSLocalizedString("You are currently alone in this group call",comment:"") + + // FROM ANDROID END // Added in iOS - static let camera_required_for_video = NSLocalizedString("Camera use is not Authorized for \(appName). This permission is required to activate Video.",comment:"") + static let camera_required_for_video = NSLocalizedString("Camera use is not Authorized for &appName;. This permission is required to activate Video.",comment:"").replacingOccurrences(of: "&appName;", with: appName) static let conference_edit_error = NSLocalizedString("Unable to edit conference this time, date is invalid",comment:"") static let ok = NSLocalizedString("ok",comment:"") static let conference_display_no_active_speaker = NSLocalizedString("No active speaker",comment:"") diff --git a/Resources/de.lproj/Localizable.strings b/Resources/de.lproj/Localizable.strings index f7bc87397937186d7d9f0cb52bb07870a41b55b3..793489891deef32a4ca87b8922017fe6f8f5da30 100644 GIT binary patch delta 1429 zcmZWpO=}ZT6urTyG+4x@BI+W~Nu{<$vK5Pq`iW4rwCciLK09Oc#bjc%AftPCFQ7lb zpU^)bxKVK9#*IrsaHA`i#dGePbjFl0llR`e=YE`b?!5n#f3u%|wU=AC5*MT(6r4c!H5p+|}(&LJZB z8>wMu5ckD8VD-c_LfS}t7_#619%)f&NlPfYg5nF}$qkg$mbQKQ^K4wliWsKz3zLtg5viysxZoy1tTopWYnhjUH$MHD&k@l5sQWg6o^@X7~JVJ~sS*x1>bQXC<5 zh%*i>!x*6wNfBq9-cDwB5_~8>R5*;qiHP9g=-2zUJGNp`9(BTK1s&A*@f~RYwe02hq$<1x{4-5BAv%@c;k- delta 11 ScmeDA$Fk%DOT!jM6$=0%x&*iY diff --git a/Resources/fr.lproj/Localizable.strings b/Resources/fr.lproj/Localizable.strings index 1d5fed8ba4b316315f47787c81cc40b69958f4ce..cba049243df29fe8005d9368d26ec96bf23dd1aa 100644 GIT binary patch delta 8849 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 AUH||9 delta 11 ScmX@NinZY(OT!k%1_J;fcm&7* diff --git a/scripts/android_import.sh b/scripts/android_import.sh new file mode 100755 index 000000000..236371cd3 --- /dev/null +++ b/scripts/android_import.sh @@ -0,0 +1,30 @@ +# to be run from this location +# after running : Pick the first section (in swift) outputed by this script and copy it in VoipTexts.swift replacing the section marked as From Android +# look for strings with appName and append at the end .replacingOccurrences(of: "&appName;", with: appName) (just in the swift file) +# then pick the other relevant traduction and put them as is in Localizable.strings (replacing the previously generated ones) + + +cat ../Classes/Swift/Voip/Theme/VoipTexts.swift | grep static | sed s/@objc//g | awk '{print $3}' > keys +export sub="\\\'" +echo ">>>>> Master to be placed in VoipTexts.swift replacing Android section" +while read key; do grep "name=\"$key\"" ../../linphone-android/app/src/main/res/values/strings.xml ; done < keys | sed s/''/' = NSLocalizedString("'/g | sed s/'<\/string>'/'",comment:"")'/g| sed s/'" tools:ignore="PluralsCandidate'//g |sed s/$sub/\'/g +find ../../linphone-android/app/src/main/res/values-*/strings.xml > stringsandroid +export sub="\\\'" +while read lc; do + echo + echo + echo "Treating android: $lc" + echo + while read key; do + export frvalue=`grep "name=\"$key\"" $lc | cut -d">" -f2- | sed s/'<\/string>'//g| sed s/'" tools:ignore="PluralsCandidate'//g|sed s/$sub/\'/g` + export envalue=`grep "name=\"$key\"" ../../linphone-android/app/src/main/res/values/strings.xml | cut -d">" -f2- | sed s/'<\/string>'//g| sed s/'" tools:ignore="PluralsCandidate'//g|sed s/$sub/\'/g` + if [ -n "$frvalue" ]; then + if [ -n "$envalue" ]; then + echo \"$envalue\"=\"$frvalue\"\; + fi + fi + done < keys +done