diff --git a/Nynja.xcodeproj/project.pbxproj b/Nynja.xcodeproj/project.pbxproj index 0a6a4c4e86cef25e5a0377effc7475392b807a2c..feefdea9484f34d6c1c45b2b03186a7483e13505 100644 --- a/Nynja.xcodeproj/project.pbxproj +++ b/Nynja.xcodeproj/project.pbxproj @@ -1211,6 +1211,7 @@ 00D7B5C620285BA7004B0E2B /* ScheduleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScheduleView.swift; sourceTree = ""; }; 00E4A65E201A287100CEC61F /* MapSearchDS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapSearchDS.swift; sourceTree = ""; }; 00E8513A2021E96E007DC792 /* GApiResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GApiResponse.swift; sourceTree = ""; }; + 00E864662049840A00844FF1 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; 00EBF72D0964E3EC64F5B966 /* SplashProtocols.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SplashProtocols.swift; sourceTree = ""; }; 00EDCA0C202B7243000928D4 /* TimeZoneSelectorDS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeZoneSelectorDS.swift; sourceTree = ""; }; 00F7B33D2029DD4B00E443E1 /* AudioItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioItemView.swift; sourceTree = ""; }; @@ -6185,6 +6186,7 @@ en, Base, uk, + ru, ); mainGroup = 3ABCE8E41EC9330D00A80B15; productRefGroup = 3ABCE8EE1EC9330D00A80B15 /* Products */; @@ -7525,6 +7527,7 @@ isa = PBXVariantGroup; children = ( 6D36F8E31F0ADBD300FA1AC8 /* en */, + 00E864662049840A00844FF1 /* ru */, ); name = Localizable.strings; sourceTree = ""; diff --git a/Nynja/Library/UI/AlertManager.swift b/Nynja/Library/UI/AlertManager.swift index 6c1ce637a4a909e33de89d6b43bc4adf546b112a..1b7882bf1b5237b98f7b998e0cb457ef39517b44 100644 --- a/Nynja/Library/UI/AlertManager.swift +++ b/Nynja/Library/UI/AlertManager.swift @@ -129,7 +129,7 @@ class AlertManager { extension AlertManager { func showNoInternetConnection() { - showAlertOk(message: "No Internet connection") + showAlertOk(message: "no_internet_connection".localized) } } diff --git a/Nynja/Library/UI/CustomImagePicker.swift b/Nynja/Library/UI/CustomImagePicker.swift index ed9c36f98e1b2fbb87c4d0d1966969422d7b18f5..b585224bac9c232a97646b8ddd83c530586cfa73 100644 --- a/Nynja/Library/UI/CustomImagePicker.swift +++ b/Nynja/Library/UI/CustomImagePicker.swift @@ -31,7 +31,8 @@ class CustomImagePicker: UIImagePickerController, UIImagePickerControllerDelegat var flashMode = 0 var startTime = Date.timeIntervalSinceReferenceDate - var modes = [CollectionVCellModel(text: "Photo", isSelected: true),CollectionVCellModel(text: "Video", isSelected: false)] + var modes = [CollectionVCellModel(text: "custom_image_picker_photo".localized, isSelected: true), + CollectionVCellModel(text: "custom_image_picker_video".localized, isSelected: false)] lazy var customControlView: UIView = { let v = UIView() @@ -309,7 +310,7 @@ class CustomImagePicker: UIImagePickerController, UIImagePickerControllerDelegat shootButton.setImage(UIImage(named:"btn_record_default"), for: .normal) self.stopVideoCapture() isRecording = false - leftLabel.text = "Retake" + leftLabel.text = "custom_image_picker_retake".localized leftLabel.isUserInteractionEnabled = true timer?.invalidate() } @@ -390,9 +391,9 @@ class CustomImagePicker: UIImagePickerController, UIImagePickerControllerDelegat func setupImagePreview(img: UIImage?) { previewView.isHidden = false previewView.image = img?.fixedOrientation() - leftLabel.text = "Retake" + leftLabel.text = "custom_image_picker_retake".localized leftLabel.isHidden = false - rightLabel.text = "Use photo" + rightLabel.text = "custom_image_picker_use_photo".localized rightLabel.isHidden = false switchCameraButton.isHidden = true shootButton.isHidden = true @@ -401,9 +402,9 @@ class CustomImagePicker: UIImagePickerController, UIImagePickerControllerDelegat } func setupVideoPreview(url: URL) { - leftLabel.text = "Retake" + leftLabel.text = "custom_image_picker_retake".localized leftLabel.isHidden = false - rightLabel.text = "Use video" + rightLabel.text = "custom_image_picker_use_video".localized rightLabel.isHidden = false shootButton.isHidden = true flashButton.isHidden = true diff --git a/Nynja/Library/UI/InputField/CountryField.swift b/Nynja/Library/UI/InputField/CountryField.swift index ec527f3d57b9d90e7faefe9ba25c8edde61325fe..dfb8695283e11ee39159628aadcc13c78d07e7de 100644 --- a/Nynja/Library/UI/InputField/CountryField.swift +++ b/Nynja/Library/UI/InputField/CountryField.swift @@ -22,7 +22,7 @@ class CountryField: BaseInputView, TextFieldWithPickerDelegate { let tf = TextFieldWithPicker() tf.textFieldDelegate = self - tf.attributedPlaceholder = NSAttributedString(string: "SELECT COUNTRY", + tf.attributedPlaceholder = NSAttributedString(string: "select_country_title".localized.uppercased(), attributes: [NSAttributedStringKey.foregroundColor: Constants.colors.white.getColor()]) tf.text = "" self.content.addSubview(tf) diff --git a/Nynja/Library/UI/WheelContainer/Wheel/ItemModels/ImageWheelItemModel.swift b/Nynja/Library/UI/WheelContainer/Wheel/ItemModels/ImageWheelItemModel.swift index 02b663de71c675fbf5038ddd92ffe35e13fffaa0..f3b7ebcedd0aa085c2c5a318562b0d58286f4220 100644 --- a/Nynja/Library/UI/WheelContainer/Wheel/ItemModels/ImageWheelItemModel.swift +++ b/Nynja/Library/UI/WheelContainer/Wheel/ItemModels/ImageWheelItemModel.swift @@ -17,7 +17,7 @@ class ImageWheelItemModel: WheelItemModel { self.delegate = delegate self.nameImage = nameImage - self.text = navItem.rawValue + self.text = navItem.rawValue.localized self.navItem = navItem } diff --git a/Nynja/Modules/ActionStatus.swift b/Nynja/Modules/ActionStatus.swift index ac72ec37173d18ea8d17232e5fc5d86c8850e42c..3b2179b04aae0da9490b7d23bb772cafc4c32749 100644 --- a/Nynja/Modules/ActionStatus.swift +++ b/Nynja/Modules/ActionStatus.swift @@ -17,7 +17,7 @@ enum ActionStatus { case .done: return "" case .typing: - return "...typing" + return "message_status_typing".localized case .sending(let status): return status.title case .recording(let status): diff --git a/Nynja/Modules/Auth/Interactor/AuthInteractor.swift b/Nynja/Modules/Auth/Interactor/AuthInteractor.swift index 019eec8ad9e7efc156d8c83ab71ed6b77cca85e8..b8e6a0d0987a999338dec4f0fb71d5be841b9aa0 100644 --- a/Nynja/Modules/Auth/Interactor/AuthInteractor.swift +++ b/Nynja/Modules/Auth/Interactor/AuthInteractor.swift @@ -74,7 +74,7 @@ class AuthInteractor: AuthInteractorInputProtocol, IoHandlerDelegate, ProfileHan } func smsNotSent() { - AlertManager.sharedInstance.showAlertOk(message: "Something went wrong.") + AlertManager.sharedInstance.showAlertOk(message: "auth_something_went_wrong".localized) } func notVerified() { @@ -82,11 +82,11 @@ class AuthInteractor: AuthInteractorInputProtocol, IoHandlerDelegate, ProfileHan } func wrongCode() { - AlertManager.sharedInstance.showAlertOk(message: "SMS Code is wrong") + AlertManager.sharedInstance.showAlertOk(message: "auth_sms_code_is_wrong".localized) } func attempts_expired() { - AlertManager.sharedInstance.showAlertOk(message: "Attempts expired.") + AlertManager.sharedInstance.showAlertOk(message: "auth_attempts_expired".localized) } func notAuthorized() { @@ -109,7 +109,7 @@ class AuthInteractor: AuthInteractorInputProtocol, IoHandlerDelegate, ProfileHan } func removeProfileSuccess() { - AlertManager.sharedInstance.showAlertOk(message: "Removed") + AlertManager.sharedInstance.showAlertOk(message: "auth_attempts_removed".localized) } func getSMSCode(result: ((String)->())?) { diff --git a/Nynja/Modules/Auth/View/LoginView.swift b/Nynja/Modules/Auth/View/LoginView.swift index 77f413ebccfba6d433ceb6c891ab7e540ae75b0c..e9ca9ad1c775b9bc853e577a3493cd5fc835ad3b 100644 --- a/Nynja/Modules/Auth/View/LoginView.swift +++ b/Nynja/Modules/Auth/View/LoginView.swift @@ -136,7 +136,7 @@ class LoginView: UIView { let btn = NynjaButton(height: height) - btn.setTitle("NEXT", for: .normal) + btn.setTitle("next".localized, for: .normal) self.addSubview(btn) diff --git a/Nynja/Modules/Auth/View/LoginViewController.swift b/Nynja/Modules/Auth/View/LoginViewController.swift index 446d2c1e22750ce9bd8c85e22d95336e63f8dfd3..f1ebdfab13b56828987db2d488fe3c0b2abdde2f 100644 --- a/Nynja/Modules/Auth/View/LoginViewController.swift +++ b/Nynja/Modules/Auth/View/LoginViewController.swift @@ -271,10 +271,10 @@ class LoginViewController: BaseVC, LoginViewProtocol, CountryFieldDelegate, Phon return false } if text != "" { - loginView.countryField.input.text = "Wrong country code" + loginView.countryField.input.text = "login_wrong_country_code".localized isRegionSelected = false } else { - loginView.countryField.input.text = "Choose country" + loginView.countryField.input.text = "login_choose_country".localized isRegionSelected = false } return true diff --git a/Nynja/Modules/Call/View/CallViewController.swift b/Nynja/Modules/Call/View/CallViewController.swift index becea78bb81753a740bf56620039346627514d32..e43b5ecbf13e938024b4817e52c3d1bae10b4a41 100644 --- a/Nynja/Modules/Call/View/CallViewController.swift +++ b/Nynja/Modules/Call/View/CallViewController.swift @@ -220,7 +220,7 @@ class CallViewController: BaseVC, CallViewProtocol, BottomCallViewProtocol { case .outGoingCall, .outGoingVideoCall: statusLabel.text = "call_connecting".localized case .inCall: - statusLabel.text = "Voice Call - 00:00" + statusLabel.text = "voice_call_status".localized + " - 00:00" backgtoundImage.isHidden = false statusLabel.isHidden = false nameLabel.isHidden = false @@ -317,7 +317,7 @@ class CallViewController: BaseVC, CallViewProtocol, BottomCallViewProtocol { } func updateTime(text: String) { - statusLabel.text = "Voice Call - \(text)" + statusLabel.text = "voice_call_status".localized + " - \(text)" bottomView.timerLabel.text = text } @@ -327,8 +327,8 @@ class CallViewController: BaseVC, CallViewProtocol, BottomCallViewProtocol { } func onPortOutButtonPressed() { - let alertVC = UIAlertController(title: "This feature is currently unavailable", message: nil, preferredStyle: .alert) - let okAction = UIAlertAction(title: "OK", style: .cancel) { (action) in + let alertVC = UIAlertController(title: "voice_call_the_feature_currently_unavailable".localized, message: nil, preferredStyle: .alert) + let okAction = UIAlertAction(title: "ok".localized, style: .cancel) { (action) in alertVC.dismiss(animated: true, completion: nil) } alertVC.addAction(okAction) diff --git a/Nynja/Modules/CreateGroup/View/CreateGroupDS.swift b/Nynja/Modules/CreateGroup/View/CreateGroupDS.swift index 72035ea425d7d2af425e3c2ff39e0e98dd6cd67b..d46a22f5ba16d7742d3c7bf57c070248f67dc930 100644 --- a/Nynja/Modules/CreateGroup/View/CreateGroupDS.swift +++ b/Nynja/Modules/CreateGroup/View/CreateGroupDS.swift @@ -16,9 +16,9 @@ class CreateGroupDS: NSObject, UITableViewDataSource { if let count = room.members?.count { badge = "\(count)" } - settings = [CellWithArrowModel(title: "Group Name*:", text: room.name ?? "", badge: nil), - CellWithArrowModel(title: "My Alias in Group:", text: alias, badge: nil), - CellWithArrowModel(title: nil, text: "Group Participants", badge: badge)] + settings = [CellWithArrowModel(title: "settings_group_group_name".localized, text: room.name ?? "", badge: nil), + CellWithArrowModel(title: "settings_group_my_alias_in_group".localized, text: alias, badge: nil), + CellWithArrowModel(title: nil, text: "settings_group_group_participants".localized, badge: badge)] } var settings = [CellWithArrowModel]() diff --git a/Nynja/Modules/EditProfile/View/EditProfileViewController.swift b/Nynja/Modules/EditProfile/View/EditProfileViewController.swift index d9592b8e3e2aa7a819351429a96464110f5e8735..afda5d1514328c485aeb686dd116ba28aa7f175b 100644 --- a/Nynja/Modules/EditProfile/View/EditProfileViewController.swift +++ b/Nynja/Modules/EditProfile/View/EditProfileViewController.swift @@ -45,7 +45,7 @@ class EditProfileViewController: BaseVC, EditProfileViewProtocol { let width = Constraints.hintLabel.width.adjustedByWidth let height = Constraints.hintLabel.height.adjustedByWidth - let text = "How would you like to be called?" + let text = "edit_profile_hint".localized lbl.text = text let fontSize = text.fontSize(fontName: Constants.fonts.regular, fittedWidth: width, height: height) @@ -103,7 +103,7 @@ class EditProfileViewController: BaseVC, EditProfileViewProtocol { let btn = NynjaButton(height: height) - btn.setTitle("DONE", for: .normal) + btn.setTitle("done".localized.uppercased(), for: .normal) self.view.addSubview(btn) diff --git a/Nynja/Modules/GroupStorage/View/Files/GroupFilesCell.swift b/Nynja/Modules/GroupStorage/View/Files/GroupFilesCell.swift index b427458a6a82b1dfb371733ca75818bd7617c660..ca35fbe0e14417f438ccf357a60ff1152af7cfa1 100644 --- a/Nynja/Modules/GroupStorage/View/Files/GroupFilesCell.swift +++ b/Nynja/Modules/GroupStorage/View/Files/GroupFilesCell.swift @@ -165,8 +165,8 @@ class GroupFilesCell : UITableViewCell, GroupStorageCell { if item.creationDate != nil { let dateFormatter = DateFormatter() dateFormatter.dateFormat = "MMM dd, YYYY 'at' hh:mm a" - dateFormatter.amSymbol = "AM" - dateFormatter.pmSymbol = "PM" + dateFormatter.amSymbol = "am".localized + dateFormatter.pmSymbol = "pm".localized dateString = dateFormatter.string(from: item.creationDate!) } diff --git a/Nynja/Modules/Main/View/MainNavigationItem.swift b/Nynja/Modules/Main/View/MainNavigationItem.swift index 9bd0e98c80936ba330ff8400db81374ea2f15038..9531f3b23c0ed06ef6c250271afb1eabf90eeb10 100644 --- a/Nynja/Modules/Main/View/MainNavigationItem.swift +++ b/Nynja/Modules/Main/View/MainNavigationItem.swift @@ -7,85 +7,89 @@ // enum MainNavigationItem: String { - case mySelf = "Myself" - case new = "New" - case calls = "Calls" + case mySelf = "wheel_item_myself" + case new = "wheel_item_new" + case calls = "wheel_item_calls" // Contacts section - case contacts = "Contacts" + case contacts = "wheel_item_contacts" // My Profile section - case home = "Home" + case home = "wheel_item_home" // Search section - case search = "Search" + case search = "wheel_item_search" // Actions section - case actions = "Actions" - case location = "Location" - case camera = "Camera" - case media = "Media" - case gallery = "Gallery" - case call = "Call" - case voiceCall = "Voice Call" - case videoCall = "Video Call" - case contact = "Contact" - case event = "Event" - case editProfile = "Edit Profile" - case myQRCode = "My QR Code" - case photo = "My Photo" - case name = "My Name" - case username = "My Username" - case phoneNumber = "Change Number" + case actions = "wheel_item_actions" + case location = "wheel_item_location" + case camera = "wheel_item_camera" + case media = "wheel_item_media" + case gallery = "wheel_item_gallery" + case call = "wheel_item_call" + case voiceCall = "wheel_item_voiceCall" + case videoCall = "wheel_item_videoCall" + case contact = "wheel_item_contact" + case event = "wheel_item_event" + case editProfile = "wheel_item_editProfile" + case myQRCode = "wheel_item_my_qr_code" + case photo = "wheel_item_photo" + case name = "wheel_item_name" + case username = "wheel_item_username" + case phoneNumber = "wheel_item_changeNumber" // Chats section - case starred = "Starred" - case recents = "Recents" - case work = "Work" - case family = "Family" - case friends = "Friends" - case list = "All" + case starred = "wheel_item_starred" + case recents = "wheel_item_recents" + case work = "wheel_item_work" + case family = "wheel_item_family" + case friends = "wheel_item_friends" + case list = "wheel_item_all" // p2p section - case chats = "Chats" - case newChat = "New Chat" + case chats = "wheel_item_chats" + case newChat = "wheel_item_newChat" // room section - case groups = "Groups" - case newGroup = "New Group" - case groupOptions = "Group Options" + case groups = "wheel_item_groups" + case newGroup = "wheel_item_newGroup" + case groupOptions = "wheel_item_groupOptions" // New Group section - case notifications = "Notifications" - case groupInfo = "Group Info" - case groupPhoto = "Group Photo" - case groupName = "Group Name" - case done = "DONE" - case myAlias = "My Alias" + case notifications = "wheel_item_notifications" + case groupInfo = "wheel_item_groupInfo" + case groupPhoto = "wheel_item_groupPhoto" + case groupName = "wheel_item_groupName" + case done = "wheel_item_done" + case myAlias = "wheel_item_myAlias" // New - case group = "Group" + case group = "wheel_item_group" //Contact section - case newContact = "New Contact" - case history = "History" + case newContact = "wheel_item_newContact" + case history = "wheel_item_history" // New Contact section - case byUsername = "By Username" - case byNumber = "By Number" - case byQRCode = "By QR Code" - case byPassword = "By Password" - case byContacts = "By Contacts" + case byUsername = "wheel_item_byUsername" + case byNumber = "wheel_item_byNumber" + case byQRCode = "wheel_item_byQRCode" + case byPassword = "wheel_item_byPassword" + case byContacts = "wheel_item_byContacts" // Options section - case options = "Setting" - case logOut = "LOG OUT" - case about = "About" - case deleteAccount = "Delete Account" + case options = "wheel_item_options" + case logOut = "wheel_item_logOut" + case about = "wheel_item_about" + case deleteAccount = "wheel_item_deleteAccount" // Location subsection // case recents = "Recents" - case send = "Send Location" + case send = "wheel_item_send" + + var localized: String { + return self.rawValue.localized + } } diff --git a/Nynja/Modules/Main/WireFrame/MainWireframe.swift b/Nynja/Modules/Main/WireFrame/MainWireframe.swift index 496772a804f661586c3feb323bc5166f810376bd..4088f9ef8f92bac83335ddc2e64760179782e389 100644 --- a/Nynja/Modules/Main/WireFrame/MainWireframe.swift +++ b/Nynja/Modules/Main/WireFrame/MainWireframe.swift @@ -264,7 +264,7 @@ class MainWireFrame: MainWireFrameProtocol, VoxServiceDelegate { } func getNameFrom(call: VICall) -> Contact { - let name = "Undefined" + let name = "main_undefined".localized var contact = Contact() contact.names = name diff --git a/Nynja/Modules/Message/Presenter/MessagePresenter.swift b/Nynja/Modules/Message/Presenter/MessagePresenter.swift index 73adf5b92d503c20e8bc180643fc8e789411536d..f2e893e6dfc93916b8aa2dfbbe4cd40d6f99418b 100644 --- a/Nynja/Modules/Message/Presenter/MessagePresenter.swift +++ b/Nynja/Modules/Message/Presenter/MessagePresenter.swift @@ -574,7 +574,7 @@ class MessagePresenter: BasePresenter, MessagePresenterProtocol, MessageInteract internetStatus = status switch status { case .waiting, .connecting: - view.updateHeaderStatus(status.rawValue) + view.updateHeaderStatus(status.rawValue.localized) case .connected: restoreStatus() } diff --git a/Nynja/Modules/Message/View/MessageVC.swift b/Nynja/Modules/Message/View/MessageVC.swift index 114eff60ddf91814f7444a4e28a764cc2fedc89f..79642318b96c848c9958ee838d5cb3bd31b450c8 100644 --- a/Nynja/Modules/Message/View/MessageVC.swift +++ b/Nynja/Modules/Message/View/MessageVC.swift @@ -693,7 +693,7 @@ class MessageVC: BaseVC, MessageViewProtocol, ReplyPreviewDelegate, BackSwipable toggleBottomButton(true) } else if buttonState == .newMessages { bottomButton.backgroundColor = Constants.colors.red.getColor() - bottomButton.setTitle("New messages", for: .normal) + bottomButton.setTitle("message_new_messages".localized, for: .normal) self.bottomButton.setImage(nil, for: .normal) toggleBottomButton(true) } else { diff --git a/Nynja/Modules/OtherUser/View/Header/OtherUserHeaderView.swift b/Nynja/Modules/OtherUser/View/Header/OtherUserHeaderView.swift index 2d6e0ead2d5497927da0fd31cf24fce1cd40690b..8d5ce52503166b0eb9bd085ebe8e1bd3a8f370ad 100644 --- a/Nynja/Modules/OtherUser/View/Header/OtherUserHeaderView.swift +++ b/Nynja/Modules/OtherUser/View/Header/OtherUserHeaderView.swift @@ -95,8 +95,8 @@ class OtherUserHeaderView : UIView { avatarImageView.image = UIImage(named: "ava_placeholder") gradientView.isHidden = false - nameLabel.text = "First Last" - nicknameLabel.text = "nickname" + nameLabel.text = "other_user_header_name_label".localized + nicknameLabel.text = "other_user_header_nickname_label".localized } required init?(coder aDecoder: NSCoder) { diff --git a/Nynja/Modules/OtherUser/View/TableView/OtherUserTableViewDS.swift b/Nynja/Modules/OtherUser/View/TableView/OtherUserTableViewDS.swift index ea536c828db9268371ce19d91eaec4ab8ff841c2..fda0b3840be43f76dfda544651890090ab5b213c 100644 --- a/Nynja/Modules/OtherUser/View/TableView/OtherUserTableViewDS.swift +++ b/Nynja/Modules/OtherUser/View/TableView/OtherUserTableViewDS.swift @@ -27,10 +27,11 @@ class OtherUserTableViewDS: NSObject, UITableViewDataSource { settings = [[]] default: otherUserState = .friend - settings = [[SettingsArrowCellModel(type: .Notifications, text: "Notifications", badge: contact.notifications ? "Unmute" : "Mute"), - SettingsArrowCellModel(type: .Storage, text: "Storage", badge: nil), - SettingsArrowCellModel(type: .ClearChatHistory, text: "Clear Chat History", badge: nil), - SettingsArrowCellModel(type: .DeleteAndLeave, text: (contact.status as? StringAtom)?.string == "banned" ? "Unblock user" : "Block user", badge: nil)]] + settings = [[SettingsArrowCellModel(type: .Notifications, text: "other_user_table_view_ds_notifications".localized, + badge: contact.notifications ? "other_user_table_view_ds_unmute".localized : "other_user_table_view_ds_mute".localized), + SettingsArrowCellModel(type: .Storage, text: "other_user_table_view_ds_storage".localized, badge: nil), + SettingsArrowCellModel(type: .ClearChatHistory, text: "other_user_table_view_ds_clear_chat_history".localized, badge: nil), + SettingsArrowCellModel(type: .DeleteAndLeave, text: (contact.status as? StringAtom)?.string == "other_user_table_view_ds_banned".localized ? "other_user_table_view_ds_unblock_user".localized : "other_user_table_view_ds_block_user".localized, badge: nil)]] } } else { settings = [[]] diff --git a/Nynja/Modules/PresenceStatus.swift b/Nynja/Modules/PresenceStatus.swift index 863c6a517d3f735f25e2ba85075af7c8ac20a7eb..be1ffc28089359b702d2fb07d1d1a3c9dea66c10 100644 --- a/Nynja/Modules/PresenceStatus.swift +++ b/Nynja/Modules/PresenceStatus.swift @@ -14,12 +14,12 @@ enum PresenceStatus { var title: String { switch self { case .active: - return "active" + return "active".localized case .inactive: - return "inactive" + return "inactive".localized case .room(let members, let active): // return "" - return "\(members) members, \(active) active" + return "\(members) " + "members".localized + "," + "\(active) " + "active".localized } } } diff --git a/Nynja/Modules/Profile/View/DetailsView/ProfileDetailsView.swift b/Nynja/Modules/Profile/View/DetailsView/ProfileDetailsView.swift index 5d9a2d8c9045d729ce8ddc5a744b186a5c247cdc..1efb8a7143111b1d59472776ca06c979813af237 100644 --- a/Nynja/Modules/Profile/View/DetailsView/ProfileDetailsView.swift +++ b/Nynja/Modules/Profile/View/DetailsView/ProfileDetailsView.swift @@ -128,7 +128,7 @@ class ProfileDetailsView: UIView { let label = UILabel(size: CGSize(width: width, height: height), color: Constants.colors.white.getColor(), fontName: Constants.fonts.regular) - label.text = "Balance" + label.text = "profile_balance".localized label.textAlignment = .right label.setContentCompressionResistancePriority(.required, for: .horizontal) diff --git a/Nynja/Modules/Profile/View/TableView/Cells/ActionCell/ProfileAction.swift b/Nynja/Modules/Profile/View/TableView/Cells/ActionCell/ProfileAction.swift index 4fa53a5e1058088c19d82e9edb5962e5f46c3a54..886cf3defbd8a3fbd851cf532dccfff3d07f2d9f 100644 --- a/Nynja/Modules/Profile/View/TableView/Cells/ActionCell/ProfileAction.swift +++ b/Nynja/Modules/Profile/View/TableView/Cells/ActionCell/ProfileAction.swift @@ -13,5 +13,5 @@ enum ProfileAction: Int { return ProfileAction.titles[self.rawValue] } - private static let titles = ["Starred Messages"] + private static let titles = ["action_cell_profile_starred_messages".localized] } diff --git a/Nynja/Modules/Profile/View/TableView/Cells/ContactCell/ProfileContactCell.swift b/Nynja/Modules/Profile/View/TableView/Cells/ContactCell/ProfileContactCell.swift index ab384220194a6504d2ad9fdd19ea3f930f7dbcb1..f55db68fa7b57e190ba7043f56cde911d3c583f2 100644 --- a/Nynja/Modules/Profile/View/TableView/Cells/ContactCell/ProfileContactCell.swift +++ b/Nynja/Modules/Profile/View/TableView/Cells/ContactCell/ProfileContactCell.swift @@ -130,7 +130,7 @@ class ProfileContactCell: UITableViewCell, ConfigurableCell { let height = width * Constraints.statusLabel.heightProportion let label = UILabel(size: CGSize(width: width, height: height), color: Constants.colors.white.getColor(), fontName: Constants.fonts.regular) - label.text = "Added" + label.text = "profile_contact_cell_added".localized label.setContentHuggingPriority(.required, for: .horizontal) diff --git a/Nynja/Modules/Profile/View/TableView/Cells/StarCell/StarMessageCell.swift b/Nynja/Modules/Profile/View/TableView/Cells/StarCell/StarMessageCell.swift index 7187564596d87c36f64c747751118e5fe6c4d381..2b98f915001d2776797466c0e8f0725f9bd0f97c 100644 --- a/Nynja/Modules/Profile/View/TableView/Cells/StarCell/StarMessageCell.swift +++ b/Nynja/Modules/Profile/View/TableView/Cells/StarCell/StarMessageCell.swift @@ -208,7 +208,7 @@ class StarMessageCell: UITableViewCell, ConfigurableCell { if let timestamp = (model as? Star)?.client_id?.split(separator: "_").last, let time = Double(timestamp) { let date = Date(timeIntervalSince1970: time / IdGenerator.timeMultiplier) let when = DialogDateConverter().toString(date) - timeLabel.text = "Added: \(when)" + timeLabel.text = "star_added".localized + " \(when)" } } diff --git a/Nynja/Modules/Profile/View/TableView/ProfileSection.swift b/Nynja/Modules/Profile/View/TableView/ProfileSection.swift index 6d34f5cb55f518d3a89c9c10e1017cc465ba1b23..1b6e2124f958730fbfa2f1c052482450ea51a922 100644 --- a/Nynja/Modules/Profile/View/TableView/ProfileSection.swift +++ b/Nynja/Modules/Profile/View/TableView/ProfileSection.swift @@ -24,10 +24,10 @@ enum ProfileSection: String, Hashable { ] private static let actionTitles: [ProfileSection : String] = [ - .unreadMessages : "Go to chats", - .unreadGroupMessages: "Go to groups", - .contactRequests: "Go to contacts", - .starredMessages: "Go to starred messages" + .unreadMessages : "profile_go_to_chats".localized, + .unreadGroupMessages: "profile_go_to_groups".localized, + .contactRequests: "profile_go_to_contacts".localized, + .starredMessages: "profile_go_to_starred_messages".localized ] var imageName: String? { diff --git a/Nynja/Modules/RecordingStatus.swift b/Nynja/Modules/RecordingStatus.swift index c466788a77b6cc1f9f3344b2f89b5d1710a65d8b..fa2ef212aad04b881f1c4e20b07f0b2ddb04482a 100644 --- a/Nynja/Modules/RecordingStatus.swift +++ b/Nynja/Modules/RecordingStatus.swift @@ -11,6 +11,6 @@ enum RecordingStatus: String { case voice = "voice message" var title: String { - return "...recording a \(self.rawValue)" + return "recording".localized + " \(self.rawValue.localized)" } } diff --git a/Nynja/Modules/Replies/View/RepliesHeaderView/RepliesHeaderView.swift b/Nynja/Modules/Replies/View/RepliesHeaderView/RepliesHeaderView.swift index cd090bc16df59e6344b6d3ba20948cbee29a948e..c6ce833f40f912996a10724d2b8f86b5e43d8664 100644 --- a/Nynja/Modules/Replies/View/RepliesHeaderView/RepliesHeaderView.swift +++ b/Nynja/Modules/Replies/View/RepliesHeaderView/RepliesHeaderView.swift @@ -64,7 +64,7 @@ class RepliesHeaderView: UIView { // MARK: - Setup private func baseSetup() { - usernameLabel.text = "Replies" + usernameLabel.text = "replies_header_replies".localized statusLabel.text = "4" separatorView.backgroundColor = Constants.colors.separatorGrayColor.getColor() } diff --git a/Nynja/Modules/SendingStatus.swift b/Nynja/Modules/SendingStatus.swift index c7fc5b1763fb5c96c2c1c4f464dc0f1eff20ad58..24b17c422d3ae5eb93126ca7060dfc8f3f31c811 100644 --- a/Nynja/Modules/SendingStatus.swift +++ b/Nynja/Modules/SendingStatus.swift @@ -14,6 +14,6 @@ enum SendingStatus: String { case location = "location" var title: String { - return "...sending a \(self.rawValue)" + return "message_sending".localized + " \(self.rawValue.localized)" } } diff --git a/Nynja/Modules/SettingsGroup/Interactor/SettingsGroupInteractor.swift b/Nynja/Modules/SettingsGroup/Interactor/SettingsGroupInteractor.swift index 17b9fcf17e46a289479269598b2e53ed7d5f3fc5..2b2b072ec79445d628d3e1dc1c71ef91679db6f6 100644 --- a/Nynja/Modules/SettingsGroup/Interactor/SettingsGroupInteractor.swift +++ b/Nynja/Modules/SettingsGroup/Interactor/SettingsGroupInteractor.swift @@ -68,11 +68,11 @@ class SettingsGroupInteractor: SettingsGroupInteractorInputProtocol, MemberHandl func clearHistory(_ id: String) { guard let me = getMySelf() else { - presenter?.showError("No info about me") + presenter?.showError("settings_group_no_info_about_me".localized) return } guard let rPhone = me.phoneNumber else { - presenter?.showError("No phone number") + presenter?.showError("settings_group_no_phone_number".localized) return } MQTTService.sharedInstance.clearHistory(roomtId: id, rosterId: me.rosterId, rosterPhone: rPhone) diff --git a/Nynja/Modules/SettingsGroup/View/Cells/SettingsAvatarCell.swift b/Nynja/Modules/SettingsGroup/View/Cells/SettingsAvatarCell.swift index bcbb3fc155e6177e402df1d93cc79bdcf01fd5eb..d55e446ad058dd5d63484e9def2112d88894bb9d 100644 --- a/Nynja/Modules/SettingsGroup/View/Cells/SettingsAvatarCell.swift +++ b/Nynja/Modules/SettingsGroup/View/Cells/SettingsAvatarCell.swift @@ -90,9 +90,9 @@ class SettingsAvatarCell: SettingsCellBaseView { selectionStyle = .none backgroundColor = UIColor.clear - nameBlockView.titleLabel.text = "Group Name*:" + nameBlockView.titleLabel.text = "settings_group_group_name".localized nameBlockView.textLabel.text = model.name - aliasBlockView.titleLabel.text = "My Alias in Group:" + aliasBlockView.titleLabel.text = "settings_group_my_alias_in_group".localized aliasBlockView.textLabel.text = model.alias if let url = model.url { diff --git a/Nynja/Modules/SettingsGroup/View/SettingsGroupDS.swift b/Nynja/Modules/SettingsGroup/View/SettingsGroupDS.swift index 6f32c97b69f4b38f7f19f6632885ae5b67cbed7e..e8617c8e593aa700c197a28ae0156b6796d68d7d 100644 --- a/Nynja/Modules/SettingsGroup/View/SettingsGroupDS.swift +++ b/Nynja/Modules/SettingsGroup/View/SettingsGroupDS.swift @@ -24,15 +24,15 @@ class SettingsGroupDS: NSObject, UITableViewDataSource { } var allBadge = mBadge + adBadge let mainSettings = [SettingsAvatarCellModel(url: imageUrl, name: room.name ?? "", alias: alias, isAdmin: isAdmin), - SettingsArrowCellModel(type: .Rules, text: "Group Rules", badge: nil), - SettingsSwitchCellModel(type: .Notifications, text: "Notifications", badge: nil, isNotification: isNotification), - SettingsArrowCellModel(type: .Storage, text: "Storage", badge: nil)] as [Any] - let participantsSettings = isAdmin ? [SettingsArrowCellModel(type: .AddParticipants, text: "Add Participants", badge: nil, image: #imageLiteral(resourceName: "icons_general_ic_add_member")), - SettingsArrowCellModel(type: .GroupParticipants, text: "Group Participants", badge: "\(allBadge)"), - SettingsArrowCellModel(type: .DeleteParticipants, text: "Delete Participants", badge: nil), - SettingsArrowCellModel(type: .GroupAdmins, text: "Group Admins", badge: "\(adBadge)")] : [SettingsArrowCellModel(type: .GroupParticipants, text: "Group Participants", badge: "\(allBadge)")] - let otherSettings = isAdmin ? [SettingsArrowCellModel(type: .ClearChatHistory, text: "Clear Chat History", badge: nil, isImage: false), - SettingsArrowCellModel(type: .DeleteAndLeave, text: "Delete and Leave", badge: nil, isImage: false)] : [SettingsArrowCellModel(type: .DeleteAndLeave, text: "Delete and Leave", badge: nil, isImage: false)] + SettingsArrowCellModel(type: .Rules, text: "settings_group_group_rules".localized, badge: nil), + SettingsSwitchCellModel(type: .Notifications, text: "settings_group_notifications".localized, badge: nil, isNotification: isNotification), + SettingsArrowCellModel(type: .Storage, text: "settings_group_storage".localized, badge: nil)] as [Any] + let participantsSettings = isAdmin ? [SettingsArrowCellModel(type: .AddParticipants, text: "settings_group_add_participants".localized, badge: nil, image: #imageLiteral(resourceName: "icons_general_ic_add_member")), + SettingsArrowCellModel(type: .GroupParticipants, text: "settings_group_group_participants".localized, badge: "\(allBadge)"), + SettingsArrowCellModel(type: .DeleteParticipants, text: "settings_group_delete_participants".localized, badge: nil), + SettingsArrowCellModel(type: .GroupAdmins, text: "settings_group_admins".localized, badge: "\(adBadge)")] : [SettingsArrowCellModel(type: .GroupParticipants, text: "settings_group_group_participants".localized, badge: "\(allBadge)")] + let otherSettings = isAdmin ? [SettingsArrowCellModel(type: .ClearChatHistory, text: "settings_group_clear_chat_history".localized, badge: nil, isImage: false), + SettingsArrowCellModel(type: .DeleteAndLeave, text: "settings_group_delete_and_leave".localized, badge: nil, isImage: false)] : [SettingsArrowCellModel(type: .DeleteAndLeave, text: "settings_group_delete_and_leave".localized, badge: nil, isImage: false)] settings = [mainSettings, participantsSettings, otherSettings] } diff --git a/Nynja/Modules/tutorial/View/TutorialViewController.swift b/Nynja/Modules/tutorial/View/TutorialViewController.swift index b92530a1d7a9a70ce1b49303a30bae3a04ccaf50..839edd084089dd2865ea3bab42274049e28a0456 100644 --- a/Nynja/Modules/tutorial/View/TutorialViewController.swift +++ b/Nynja/Modules/tutorial/View/TutorialViewController.swift @@ -26,7 +26,7 @@ class TutorialViewController: BaseVC, TutorialViewProtocol, UICollectionViewDele let width = Constraints.titleLabel.width.adjustedByWidth let height = Constraints.titleLabel.height.adjustedByWidth - let text = "Welcome to" + let text = "tutorial_weclome_to".localized lbl.text = text let fontName = Constants.fonts.regular @@ -92,7 +92,7 @@ class TutorialViewController: BaseVC, TutorialViewProtocol, UICollectionViewDele let width = Constraints.descLabel.width.adjustedByWidth let height = Constraints.descLabel.height.adjustedByHeight - let text = "Mobile Communicator".uppercased() + let text = "tutorial_mobile_communicator".localized.uppercased() lbl.text = text let fontName = Constants.fonts.medium @@ -133,7 +133,7 @@ class TutorialViewController: BaseVC, TutorialViewProtocol, UICollectionViewDele lazy var textLabel: UILabel = { let t = UILabel() - let text = "never go back" + let text = "tutorial_never_go_back".localized t.text = text let width = Constraints.textLabel.width.adjustedByWidth diff --git a/Nynja/Resources/de.lproj/Localizable.strings b/Nynja/Resources/de.lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..c81d12d8d6f8c87fe5ae343540ac76deb3c6fc63 --- /dev/null +++ b/Nynja/Resources/de.lproj/Localizable.strings @@ -0,0 +1,5 @@ +/* Localizable.strings + Nynja + + Created by Bohdan Paliychuk on 7/3/17. + Copyright © 2017 TecSynt Solutions. All rights reserved. */ diff --git a/Nynja/Resources/en.lproj/Localizable.strings b/Nynja/Resources/en.lproj/Localizable.strings index ba9a96371a53b99c78c0092fc32645e45386ec16..c74c53fe965285601463989d90f6686aecd025ed 100644 --- a/Nynja/Resources/en.lproj/Localizable.strings +++ b/Nynja/Resources/en.lproj/Localizable.strings @@ -61,8 +61,6 @@ "contact_banned" = "Banned"; //MARK: add contact - -"add_contact" = "ADD CONTACT"; "scan_qr" = "Scan the QR code"; "choose_action" = "Select Option"; @@ -168,12 +166,9 @@ //MARK: MessageVC "save_to_gallery" = "Save to gallery"; -"share" = "Share"; "delete_message" = "Delete Message?"; "delete_for_both" = "Delete for all"; -"delete" = "Delete"; "delete_for_me" = "Delete for me"; -"cancel" = "Cancel"; "accepted_your_contact_request" = " accepted your contact request! Send a message!"; "accepted_contact_request" = " accepted contact request!"; @@ -197,12 +192,10 @@ "please_allow_permission" = "Please allow NYNJA to access your %@."; - //MARK: notification: "notif_accept_requst" = "Accepted yout contact request! Send a message!"; "notif_wants_toAdd" = "Wants to add you on NYNJA!"; - //MARK: mapView "accurate_to" = "Accurate to"; "meters" = "meters"; @@ -224,7 +217,6 @@ //MARK: Top Up Account "top_up_account" = "Top Up Account"; - //MARK: Paticipants "participants" = "Group Participants"; "admins" = "Group Admins"; @@ -235,7 +227,6 @@ "please_choose_at_least_one_member" = "Please choose at least one member."; "no_participant_selected" = "no participant selected"; - //MARK: share extension "login_to_Nynja" = "Log in to Nynja"; "open_and_login_to_share" = "Open Nynja and log in to share"; @@ -300,7 +291,6 @@ "translate" = "Translate"; "transcribe" = "Transcribe"; "copy" = "Copy"; -"delete" = "Delete"; "share" = "Share"; "share_to_galery" = "Share to Gallery"; "show_in_chat" = "Show in chat"; @@ -386,3 +376,160 @@ "am" = "AM"; "pm" = "PM"; + +//MARK: Errors +"no_internet_connection" = "No Internet connection"; + +//MARK: Custom Image Picker +"custom_image_picker_photo" = "Photo"; +"custom_image_picker_video" = "Video"; +"custom_image_picker_retake" = "Retake"; +"custom_image_picker_use_photo" = "Use photo"; +"custom_image_picker_use_video" = "Use video"; + +//MARK: Other User +"other_user_header_name_label" = "First Last"; +"other_user_header_nickname_label" = "nickname"; +"other_user_table_view_ds_notifications" = "Notifications"; +"other_user_table_view_ds_unmute" = "Unmute"; +"other_user_table_view_ds_mute" = "Mute"; +"other_user_table_view_ds_storage" = "Storage"; +"other_user_table_view_ds_clear_chat_history" = "Clear Chat History"; +"other_user_table_view_ds_banned" = "banned"; +"other_user_table_view_ds_unblock_user" = "Unblock user"; +"other_user_table_view_ds_block_user" = "Block user"; + +//MARK: Replies +"replies_header_replies" = "Replies"; + +//MARK: Message +"message_status_typing" = "...typing"; +"message_new_messages" = "New messages"; +"message_sending" = "...sending a"; + +//MARK: Sending Status +"file" = "file"; +"voice message" = "voice message"; +"photo" = "photo"; + +//MARK: Recording Status +"video" = "video"; +"recording" = "...recording a"; + +//MARK: Presence status +"active" = "active"; +"inactive" = "inactive"; +"members" = "members"; + +//MARK: Internet status +"waiting for network..." = "waiting for network..."; +"connecting..." = "connecting..."; +"connected" = "connected"; + +//MARK: Auth +"login_wrong_country_code" = "Wrong country code"; +"login_choose_country" = "Choose country"; +"auth_something_went_wrong" = "Something went wrong."; +"auth_sms_code_is_wrong" = "SMS Code is wrong"; +"auth_attempts_expired" = "Attempts expired."; +"auth_attempts_removed" = "Removed"; + +//MARK: Tutorial +"tutorial_weclome_to" = "Welcome to"; +"tutorial_mobile_communicator" = "Mobile Communicator"; +"tutorial_never_go_back" = "never go back"; + +//MARK: Wheel items +"wheel_item_myself" = "Myself"; +"wheel_item_new" = "New"; +"wheel_item_calls" = "Calls"; +"wheel_item_contacts" = "Contacts"; +"wheel_item_home" = "Home"; +"wheel_item_search" = "Search"; +"wheel_item_actions" = "Actions"; +"wheel_item_location" = "Location"; +"wheel_item_camera" = "Camera"; +"wheel_item_media" = "Media"; +"wheel_item_gallery" = "Gallery"; +"wheel_item_call" = "Call"; +"wheel_item_voiceCall" = "Voice Call"; +"wheel_item_videoCall" = "Video Call"; +"wheel_item_contact" = "Contact"; +"wheel_item_event" = "Event"; +"wheel_item_editProfile" = "Edit Profile"; +"wheel_item_my_qr_code" = "My QR Code"; +"wheel_item_photo" = "My Photo"; +"wheel_item_name" = "My Name"; +"wheel_item_username" = "My Username"; +"wheel_item_changeNumber" = "Change Number"; +"wheel_item_starred" = "Starred"; +"wheel_item_recents" = "Recents"; +"wheel_item_work" = "Work"; +"wheel_item_family" = "Family"; +"wheel_item_friends" = "Friends"; +"wheel_item_all" = "All"; +"wheel_item_chats" = "Chats"; +"wheel_item_newChat" = "New Chat"; +"wheel_item_groups" = "Groups"; +"wheel_item_newGroup" = "New Group"; +"wheel_item_groupOptions" = "Group Options"; +"wheel_item_notifications" = "Notifications"; +"wheel_item_groupInfo" = "Group Info"; +"wheel_item_groupPhoto" = "Group Photo"; +"wheel_item_groupName" = "Group Name"; +"wheel_item_done" = "DONE"; +"wheel_item_myAlias" = "My Alias"; +"wheel_item_group" = "Group"; +"wheel_item_newContact" = "New Contact"; +"wheel_item_history" = "History"; +"wheel_item_byUsername" = "By Username"; +"wheel_item_byNumber" = "By Number"; +"wheel_item_byQRCode" = "By QR Code"; +"wheel_item_byPassword" = "By Password"; +"wheel_item_byContacts" = "By Contacts"; +"wheel_item_options" = "Setting"; +"wheel_item_logOut" = "LOG OUT"; +"wheel_item_about" = "About"; +"wheel_item_deleteAccount" = "Delete Account"; +"wheel_item_send" = "Send Locations"; + +//MARK: Main +"main_undefined" = "Undefined"; + +//MARK: Profile +"profile_balance" = "Balance"; +"star_added" = "Added:"; +"profile_contact_cell_added" = "Added"; +"action_cell_profile_starred_messages" = "Starred Messages"; +"profile_go_to_chats" = "Go to chats"; +"profile_go_to_groups" = "Go to groups"; +"profile_go_to_contacts" = "Go to contacts"; +"profile_go_to_starred_messages" = "Go to starred messages"; + +//MARK: Edit Profile +"edit_profile_hint" = "How would you like to be called?"; + +//MARK: Call +"voice_call_status" = "Voice Call"; +"voice_call_the_feature_currently_unavailable" = "This feature is currently unavailable"; + +//MARK: Settings group +"settings_group_no_info_about_me" = "No info about me"; +"settings_group_no_phone_number" = "No phone number"; +"settings_group_group_name" = "Group Name*:"; +"settings_group_my_alias_in_group" = "My Alias in Group:"; +"settings_group_group_rules" = "Group Rules"; +"settings_group_notifications" = "Notifications"; +"settings_group_storage" = "Storage"; +"settings_group_add_participants" = "Add Participants"; +"settings_group_group_participants" = "Group Participants"; +"settings_group_delete_participants" = "Delete Participants"; +"settings_group_admins" = "Group Admins"; +"settings_group_clear_chat_history" = "Clear Chat History"; +"settings_group_delete_and_leave" = "Delete and Leave"; + +//MARK: Share extensions +"share_extensions_sharing" = "Sharing..."; + + + diff --git a/Nynja/Resources/es.lproj/Localizable.strings b/Nynja/Resources/es.lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..c81d12d8d6f8c87fe5ae343540ac76deb3c6fc63 --- /dev/null +++ b/Nynja/Resources/es.lproj/Localizable.strings @@ -0,0 +1,5 @@ +/* Localizable.strings + Nynja + + Created by Bohdan Paliychuk on 7/3/17. + Copyright © 2017 TecSynt Solutions. All rights reserved. */ diff --git a/Nynja/Resources/fr.lproj/Localizable.strings b/Nynja/Resources/fr.lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..c81d12d8d6f8c87fe5ae343540ac76deb3c6fc63 --- /dev/null +++ b/Nynja/Resources/fr.lproj/Localizable.strings @@ -0,0 +1,5 @@ +/* Localizable.strings + Nynja + + Created by Bohdan Paliychuk on 7/3/17. + Copyright © 2017 TecSynt Solutions. All rights reserved. */ diff --git a/Nynja/Resources/lproj/Localizable.strings b/Nynja/Resources/lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..391a37cb823fe89b37c433053183c308279a8d9e --- /dev/null +++ b/Nynja/Resources/lproj/Localizable.strings @@ -0,0 +1,528 @@ +/* Localizable.strings + Nynja + + Created by Bohdan Paliychuk on 7/3/17. + Copyright © 2017 TecSynt Solutions. All rights reserved. */ + +// MARK: Common +"delete"="Delete"; +"done"="Done"; +"Search"="Search"; +"remove"="Remove"; +"Deleted Account"="Deleted Account"; + +// MARK: alert +"number_or_region_empty"="Number or region is empty"; +"invalid_nomber"="Invalid number"; +"ok"="OK"; +"no"="NO"; +"yes"="YES"; +"cancel"="Cancel"; +"Deny"="Deny"; +"Go_to_settings"="Go to Settings"; + +// MARK: login vc +"confirm_contry_long"="Please confirm your country code and enter your phone number.\nBy signing up, you agree to our Terms of Service."; +"terms_of_service"="Terms of Service"; +"confirm_contry_short"="Please confirm your country code and enter your phone number."; +"code_send"="We’ve sent a code to your phone."; +"code_send_isReceived"="We’ve sent a code to your phone.\nHaven’t received the code?"; +"have_u_receive"="Haven’t received the code?"; +"wrong_sms"="SMSCode wrong"; +"alert_sms"="SMS"; +"alert_voice"="Voice call"; +"alert_get_code"="Wich way you want to get a code ?"; +"geolocation_message"="You can change your Geolocation configuration services for NYNJA, anytime in your Phone settings"; +"You_should_receive_it_within"="You should receive it within"; +"seconds"="seconds"; +"Please_confirm_number"="Please confirm the number you entered is correct:"; +"please_select_country"="Please, select country"; +"modify"="Modify"; +"confirm"="Confirm"; +"wrongVersion"="You are using an outdated version of the application. Please make sure you downloaded the latest version from Testflight. If your version is the latest available on Testflight at the moment and you keep receiving this message please hang on a little bit till the development team releases the new version for you."; +"You_are_not_allowed_to_login"="You are not allowed to login."; + +// MARK: QR code +"scan_qr_code"="Scan QR Code"; +"my_qr_code"="My QR Code"; + +// MARK: tutorial +"get_started"="GET STARTED"; + + +// MARK: contactcs +"contact_added"="Added"; +"contact_add"="Add"; +"contact_requested"="Requested"; +"contact_accept"="Accept"; +"contact_ban"="Ban"; +"contact_banned"="Banned"; + +// MARK: add contact +"scan_qr"="Scan the QR code"; + +"choose_action"="Select Option"; +"dowload_image_from_gallery"="Select from Gallery"; +"dowload_image_from_camera"="Take from Camera"; +"no_camera"="No Camera"; +"sorry_this_device_has_no_camera"="Sorry, this device has no camera"; + + + +// MARK: edit contact +"editContact_firstName"="First Name *"; +"editContact_lastName"="Last Name "; +"EditName_first_name"="First Name*:"; +"EditName_last_name"="Last Name:"; +"nameField_empty"="First name is needed so other people know with whom they are talking."; +"First_Name_must_be_at_least"="First Name must be at least 2 characters."; +"Last_Name_must_be_at_more"="Last Name must be at more 32 characters."; +"First_Name_must_be_at_more"="First Name must be at more 32 characters."; +"Edit_Name"="Edit Name"; +"Keep_your_existing_name."="Keep your existing name."; + +// MARK: edit username +"Edit_Username"="Edit Username"; +"EditName_username"="Username:"; +"Keep_your_existing_username"="Keep your existing username."; +"Don't_add_username"="Don't add username"; +"UsernameField_empty"="Sorry, this username is invalid."; +"Username_must_be_at_least"="Username must be at least 2 characters."; +"Username_max_size"="Username must be at more 32 characters."; +"Invalid_username"="Sorry, this username is invalid."; +"Username_is_busy"="Sorry, this username is already taken"; +"Username_description"="You can choose a username on NYNJA. If you do, other people will be able to find you by this username and contact you without knowing your phone number."; + +"Edit_photo"="Edit photo"; + +// MARK: my group alias +"My_Group_Alias"="My group alias"; +"Alias_Field_Title"="My Alias in Group:"; +"Cancel_Group_Alias"="Cancel group alias."; +"Save_Alias"="Save"; +"Invalid_alias"="Sorry, this alias is invalid."; + +"Alias_Empty_Message"="Sorry, empty alias is invalid."; +"Alias_Max_Size_Message"="Alias must be at more 32 characters"; +"Alias_Busy_Message"="Sorry, this username is already taken"; + +// MARK: edit group name +"Group_Name"="Group name"; +"Group_Name_Field_Title"="Group Name*:"; +"Cancel_Group_Name"="Cancel group name."; +"Save_Group_Name"="Save"; +"Group_Name_Empty_Message"="Please enter at least 1 symbol"; + +// MARK: add contact via phone +"addContactPhone_enterPhone"="Enter Phone Number"; +"Profile_Not_Found"="Profile Not Found"; + + +// MARK: add contacts from phone book +"Contacts_Not_found"="Contacts not found"; + +// MARK: add contact by user name +"By_User_Name"="By username"; +"Username_Field_Title"="Username:"; +"Search_Button_Title"="Search"; + +"Add_Contact_By_Username_Incorrect_Username"="Incorrect username format"; +"Add_Contact_By_Username_May_Contain_English_Letters"="Username may contain English letters, numbers and underscores"; +"Add_Contact_By_Username_No_Results_Found"="No results found"; + + +// MARK: call view +"call_accept"="Accept"; +"call_decline"="Decline"; +"call_incoming"="Incoming Voice Call..."; +"call_incoming_video"="Incoming Video Call..."; +"call_ringing"="Ringing..."; +"call_connecting"="Connecting..."; +"accept_audio"="Accept Audio"; +"switch_to_audio"="Switch to Audio"; +"hang_up"="Hang Up"; +"switch_camera"="Switch Camera"; +"port_out_to_phone"="Port Out to Phone"; +"mute_call"="Mute"; +"unmute_call"="Unmute"; +"speakerphone"="Speakerphone"; +"return_to_chat_from_call"="Return to Chat"; + + +// MARK: chat list +"chats_list_title"="Chat List"; +"last_message_emoji"="Emoji"; +"last_message_videoCall"="Video Call"; +"last_message_photo"="Photo"; +"last_message_location"="Location"; +"last_message_video"="Video"; +"write_message"="Write your message here"; +"last_message_file"="File"; +"last_message_voice"="Voice"; +"last_message_contact"="Contact"; + + +// MARK: MessageVC +"save_to_gallery"="Save to gallery"; +"delete_message"="Delete Message?"; +"delete_for_both"="Delete for all"; +"delete_for_me"="Delete for me"; + +"accepted_your_contact_request"=" accepted your contact request! Send a message!"; +"accepted_contact_request"=" accepted contact request!"; + + +// MARK: Call +"Return_to_call"="Return to call"; +"You_can't_call_to_yourself"="You can't call to yourself"; +"You_can't_call_when_you_calling"="You can't call when you are talking"; + +// MARK: record +"message_delay"="Message Delay"; + +"Unread"="UNREAD"; + +// Mark: Permissions +"camera"="camera"; +"gallery"="gallery"; +"location"="location"; +"microphone"="microphone"; + +"please_allow_permission"="Please allow NYNJA to access your %@."; + +// MARK: notification: +"notif_accept_requst"="Accepted yout contact request! Send a message!"; +"notif_wants_toAdd"="Wants to add you on NYNJA!"; + +// MARK: mapView +"accurate_to"="Accurate to"; +"meters"="meters"; +"target_location"="Target location"; + +"map_mode_map"="Map"; +"map_mode_satellite"="Satellite"; +"map_mode_hybrid"="Hybrid"; + +"map_permission_request"="Please let NYNJA know your location"; +"map_permission_deny"="OK"; +"map_permission_settings"="Settings"; + +// MARK: Map Search +"map_search_screen_title"="Search or choose a place"; +"map_search_text_field_placeholder"="Search"; +"map_search_no_results"="No results"; + +// MARK: Top Up Account +"top_up_account"="Top Up Account"; + +// MARK: Paticipants +"participants"="Group Participants"; +"admins"="Group Admins"; + +// MARK: Add Participants +"delete_participants"="Delete Participants"; +"add_participants"="Add Participants"; +"please_choose_at_least_one_member"="Please choose at least one member."; +"no_participant_selected"="no participant selected"; + +// MARK: share extension +"login_to_Nynja"="Log in to Nynja"; +"open_and_login_to_share"="Open Nynja and log in to share"; +"next"="NEXT"; + +// MARK: settings group +"group_options"="GROUP OPTIONS"; +"return_to_chat"="Return to Group Chat"; +"delete_leave"="Delete and leave chat?"; +"delete_chat_history"="Delete Chat History?"; +"conf_remove"="Remove this users?"; +"please_add_admins"="Please add another admin before leaving the chat"; +/* "Create_group" = "CREATE"; +MARK: create Group */ +"New_Group"="NEW GROUP"; +"Cancel_new_group"="Cancel group creation."; +"Create_group"="CREATE"; + +// MARK: groups list +"groups_list_title"="Group List"; + +// MARK: Contacts +"contacts_title"="Contacts"; + +// MARK: By Contacts +"by_contacts_title"="By Contacts"; + +// MARK: By QR Code +"by_qr_code_title"="By QR Code"; + +// MARK: By Number +"by_number_title"="By Number"; + +// MARK: By Username +"by_username_title"="By Username"; + +// MARK: History +"history_title"="History"; + +// MARK: Select Country +"select_country_title"="Select Country"; + +// MARK: Group rules +"groups_rules_title"="Group Rules"; +"updated_rules_message"="Seems the rules have been changed recently, please review the changes first."; +"save_group_rules"="Save"; +"cancel_group_rules"="Cancel group rules."; + +// MARK: Group storage +"files_filter"="files"; +"photos_filter"="photos"; +"videos_filter"="videos"; +"links_filter"="links"; +"audios_filter"="audio"; + +// MARK: Context menu +"reply"="Reply"; +"edit"="Edit"; +"forward"="Forward"; +"translate"="Translate"; +"transcribe"="Transcribe"; +"copy"="Copy"; +"share"="Share"; +"share_to_galery"="Share to Gallery"; +"show_in_chat"="Show in chat"; +"unstar"="Unstar"; + +// MARK: Forward +"chat_list"="CHAT LIST"; +"group_list"="GROUP LIST"; +"no_forward_target_selected"="No chat selected"; +"forward_screen_logo"="SELECTED"; +"please_choose_at_least_one_forward_chat"="Please choose at least one chat."; + +// MARK: date formatting +"now"="Now"; +"minutes_ago"="minutes ago"; +"one_minute_ago"="one minute ago"; +"hours_ago"="h ago"; +"yesterday"="Yesterday"; + +// MARK: drop member from group +"delete_group"="DELETE THIS GROUP"; +"you_was_removed"="You were removed from this group"; +"are_u_sure"="Are you sure you want to delete this chat?"; + +// MARK: Starred VC +"starred_filter_all"="all"; +"starred_filter_text"="text"; +"starred_filter_voice"="voice"; +"starred_filter_images"="images"; +"starred_filter_files"="files"; +"starred_filter_video"="video"; +"starred_filter_contacts"="contacts"; +"starred_filter_locations"="locations"; +"starred_filter_links"="links"; + +// MARK: Other User VC +"return_to_home"="Return home"; +"request_sent"="Your request has been sent"; +"mute"="Mute"; +"unmute"="Unmute"; +"block"="Block"; +"unblock"="Unblock"; +"are_u_sure_block"="Are you sure you want to block this user?"; +"are_u_sure_unblock"="Are you sure you want to unblock this user?"; +"send_message"="Send a message"; +"add_contact"="Add to contacts"; +"u_are_blocked"="You are blocked"; + +// MARK: Schedule message +"schedule_message"="Schedule Message"; +"schedule_message_to"="Message to:"; +"schedule_voice_message"="Voice message:"; +"schedule_text_message"="Text message:"; +"schedule_message_last"=" message:"; +"schedule_time_zone"="To be delivered in the following Time Zone:"; +"schedule_date_time"="To be delivered on the following Date and Time:"; +"schedule_save"="SAVE"; +"schedule_success"="The message has been scheduled successfully."; +"schedule_error"="The date and/or time selected is invalid. Please make sure you select a valid date and time."; +"voice_message"="Voice message"; +"forwarded_message"="Forwarded Message"; +"local_time"="Local Time"; + +// MARK: TimeZone selecter +"time_zone_selector"="Time zone selector"; + +// MARK: Calendar +"mo"="Mo"; +"tu"="Tu"; +"we"="We"; +"th"="Th"; +"fr"="Fr"; +"sa"="Sa"; +"su"="Su"; + +// MARK: Time Date Picker +"date"="DATE"; +"time"="TIME"; + +"hour"="Hour"; +"colon"=":"; +"min"="Min"; + +"am"="AM"; +"pm"="PM"; + +// MARK: Errors +"no_internet_connection"="No Internet connection"; + +// MARK: Custom Image Picker +"custom_image_picker_photo"="Photo"; +"custom_image_picker_video"="Video"; +"custom_image_picker_retake"="Retake"; +"custom_image_picker_use_photo"="Use photo"; +"custom_image_picker_use_video"="Use video"; + +// MARK: Other User +"other_user_header_name_label"="First Last"; +"other_user_header_nickname_label"="nickname"; +"other_user_table_view_ds_notifications"="Notifications"; +"other_user_table_view_ds_unmute"="Unmute"; +"other_user_table_view_ds_mute"="Mute"; +"other_user_table_view_ds_storage"="Storage"; +"other_user_table_view_ds_clear_chat_history"="Clear Chat History"; +"other_user_table_view_ds_banned"="banned"; +"other_user_table_view_ds_unblock_user"="Unblock user"; +"other_user_table_view_ds_block_user"="Block user"; + +// MARK: Replies +"replies_header_replies"="Replies"; + +// MARK: Message +"message_status_typing"="...typing"; +"message_new_messages"="New messages"; +"message_sending"="...sending a"; + +// MARK: Sending Status +"file"="file"; +"voice message"="voice message"; +"photo"="photo"; + +// MARK: Recording Status +"video"="video"; +"recording"="...recording a"; + +// MARK: Presence status +"active"="active"; +"inactive"="inactive"; +"members"="members"; + +// MARK: Internet status +"waiting for network..."="waiting for network..."; +"connecting..."="connecting..."; +"connected"="connected"; + +// MARK: Auth +"login_wrong_country_code"="Wrong country code"; +"login_choose_country"="Choose country"; +"auth_something_went_wrong"="Something went wrong."; +"auth_sms_code_is_wrong"="SMS Code is wrong"; +"auth_attempts_expired"="Attempts expired."; +"auth_attempts_removed"="Removed"; + +// MARK: Tutorial +"tutorial_weclome_to"="Welcome to"; +"tutorial_mobile_communicator"="Mobile Communicator"; +"tutorial_never_go_back"="never go back"; + +// MARK: Wheel items +"wheel_item_myself"="Myself"; +"wheel_item_new"="New"; +"wheel_item_calls"="Calls"; +"wheel_item_contacts"="Contacts"; +"wheel_item_home"="Home"; +"wheel_item_search"="Search"; +"wheel_item_actions"="Actions"; +"wheel_item_location"="Location"; +"wheel_item_camera"="Camera"; +"wheel_item_media"="Media"; +"wheel_item_gallery"="Gallery"; +"wheel_item_call"="Call"; +"wheel_item_voiceCall"="Voice Call"; +"wheel_item_videoCall"="Video Call"; +"wheel_item_contact"="Contact"; +"wheel_item_event"="Event"; +"wheel_item_editProfile"="Edit Profile"; +"wheel_item_my_qr_code"="My QR Code"; +"wheel_item_photo"="My Photo"; +"wheel_item_name"="My Name"; +"wheel_item_username"="My Username"; +"wheel_item_changeNumber"="Change Number"; +"wheel_item_starred"="Starred"; +"wheel_item_recents"="Recents"; +"wheel_item_work"="Work"; +"wheel_item_family"="Family"; +"wheel_item_friends"="Friends"; +"wheel_item_all"="All"; +"wheel_item_chats"="Chats"; +"wheel_item_newChat"="New Chat"; +"wheel_item_groups"="Groups"; +"wheel_item_newGroup"="New Group"; +"wheel_item_groupOptions"="Group Options"; +"wheel_item_notifications"="Notifications"; +"wheel_item_groupInfo"="Group Info"; +"wheel_item_groupPhoto"="Group Photo"; +"wheel_item_groupName"="Group Name"; +"wheel_item_done"="DONE"; +"wheel_item_myAlias"="My Alias"; +"wheel_item_group"="Group"; +"wheel_item_newContact"="New Contact"; +"wheel_item_history"="History"; +"wheel_item_byUsername"="By Username"; +"wheel_item_byNumber"="By Number"; +"wheel_item_byQRCode"="By QR Code"; +"wheel_item_byPassword"="By Password"; +"wheel_item_byContacts"="By Contacts"; +"wheel_item_options"="Setting"; +"wheel_item_logOut"="LOG OUT"; +"wheel_item_about"="About"; +"wheel_item_deleteAccount"="Delete Account"; +"wheel_item_send"="Send Locations"; + +// MARK: Main +"main_undefined"="Undefined"; + +// MARK: Profile +"profile_balance"="Balance"; +"star_added"="Added:"; +"profile_contact_cell_added"="Added"; +"action_cell_profile_starred_messages"="Starred Messages"; +"profile_go_to_chats"="Go to chats"; +"profile_go_to_groups"="Go to groups"; +"profile_go_to_contacts"="Go to contacts"; +"profile_go_to_starred_messages"="Go to starred messages"; + +// MARK: Edit Profile +"edit_profile_hint"="How would you like to be called?"; + +// MARK: Call +"voice_call_status"="Voice Call"; +"voice_call_the_feature_currently_unavailable"="This feature is currently unavailable"; + +// MARK: Settings group +"settings_group_no_info_about_me"="No info about me"; +"settings_group_no_phone_number"="No phone number"; +"settings_group_group_name"="Group Name*:"; +"settings_group_my_alias_in_group"="My Alias in Group:"; +"settings_group_group_rules"="Group Rules"; +"settings_group_notifications"="Notifications"; +"settings_group_storage"="Storage"; +"settings_group_add_participants"="Add Participants"; +"settings_group_group_participants"="Group Participants"; +"settings_group_delete_participants"="Delete Participants"; +"settings_group_admins"="Group Admins"; +"settings_group_clear_chat_history"="Clear Chat History"; +"settings_group_delete_and_leave"="Delete and Leave"; + +// MARK: Share extensions +"share_extensions_sharing"="Sharing..."; diff --git a/Nynja/Resources/ru.lproj/Localizable.strings b/Nynja/Resources/ru.lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..642ba49431d2fc3342bba3b269765d56edae13dd --- /dev/null +++ b/Nynja/Resources/ru.lproj/Localizable.strings @@ -0,0 +1,529 @@ +/* Localizable.strings + Nynja + + Created by Bohdan Paliychuk on 7/3/17. + Copyright © 2017 TecSynt Solutions. All rights reserved. */ + +// MARK: Common +"delete"="Удалить"; +"done"="Готово"; +"Search"="Поиск"; +"remove"="Удалить"; +"DeletedAccount"="Удалить Счет"; + +// MARK: alert +"number_or_region_empty"="Номер или регион пуст"; +"invalid_nomber"="Неправильный номер"; +"ok"="Хорошо"; +"no"="Нет"; +"yes"="Да"; +"cancel"="Отменить"; +"Deny"="Отклонить"; +"Go_to_settings"="В Настройки"; + +// MARK: login vc +"confirm_contry_long"="Пожалуйста, подтвердите код вашей страны и введите номер телефона. \nПодписывая, Вы соглашаетесь в Условиями Службы"; +"terms_of_service"="Условия службы"; +"confirm_contry_short"="Пожалуйста, подтвердите код вашей страны и введите номер телефона"; +"code_send"="Мы отправили код на ваш номер телефона"; +"code_send_isReceived"="Мы отправили код на ваш номер телефона.\nВы еще не получили код?"; +"have_u_receive"="Вы еще не получили код?"; +"wrong_sms"="Неправильный СМС код"; +"alert_sms"="СМС"; +"alert_voice"="Голосовой звонок"; +"alert_get_code"="Как вы хотите получить код?"; +"geolocation_message"="Вы можете изменить конфигурацию службы геолокации NYNJA, в любое время в настройках вашего телефона"; +"You_should_receive_it_within"="Вы получите это в течении"; +"seconds"="секунд"; +"Please_confirm_number"="Пожалуйста подтвердите, что номер который Вы ввели верен:"; +"please_select_country"="Пожалуйста, выберите страну"; +"modify"="Изменить"; +"confirm"="Подтвердить"; +"wrongVersion"="У вас устаревшая версия приложения. Пожалуйста, проверьте что вы загрузили последнюю версию с Testflight. Если ваша версия последняя доступная на Testflight в данный момент и вы продолжаете получать это сообщение, пожалуйста, подождите не много, наши разработчики выпустят новую версию для вас."; +"You_are_not_allowed_to_login"="Вам не позволен вход"; + +// MARK: QR code +"scan_qr_code"="Сканировать QR Код"; +"my_qr_code"="Мой QR Код"; + +// MARK: tutorial +"get_started"="Начат"; + + +// MARK: contactcs +"contact_added"="Добавлен"; +"contact_add"="Добавить"; +"contact_requested"="Запрошен"; +"contact_accept"="Согласиться"; +"contact_ban"="Забанить"; +"contact_banned"="Забанен"; + +// MARK: add contact +"scan_qr"="Отсканировать QR код"; + +"choose_action"="Выберите опцию"; +"dowload_image_from_gallery"="Выбрать из Галереи"; +"dowload_image_from_camera"="Снять Камерой"; +"no_camera"="Нет Камеры"; +"sorry_this_device_has_no_camera"="Извините, у устройства нет камеры"; + + + +// MARK: edit contact +"editContact_firstName"="Имя *"; +"editContact_lastName"="Фамилия "; +"EditName_first_name"="Имя*:"; +"EditName_last_name"="Фамилия:"; +"nameField_empty"="Имя необходимо, чтобы люди знали с кем они общаются"; +"First_Name_must_be_at_least"="Имя должно быть не меньше двух символов в длину"; +"Last_Name_must_be_at_more"="Фамилия должна быть не более 32 символов в длину"; +"First_Name_must_be_at_more"="Имя должно быть не более 32 символов в длину"; +"Edit_Name"="Изменить Имя"; +"Keep_your_existing_name."="Оставить существующее имя"; + +// MARK: edit username +"Edit_Username"="Изменить имя пользователя"; +"EditName_username"="Имя пользователя:"; +"Keep_your_existing_username"="Оставить существующее имя пользователя."; +"Don't_add_username"="Не добавлять имя пользователя"; +"UsernameField_empty"="Извините, это имя пользователя неправильное"; +"Username_must_be_at_least"="Имя пользователя должно быть по крайней мере 2 символа в длину"; +"Username_max_size"="Имя пользователя не должно превышать 32 символа в длину"; +"Invalid_username"="Извините, это имя пользователя неправильное"; +"Username_is_busy"="Извините, это имя пользователя уже зарегестрировано"; +"Username_description"="Вы можете выбрать имя пользователя в NYNJA. Если Вы выбрали имя пользователя, то другие люди смогут вас найти по этому имени, не зная вашего номера телефона"; + +"Edit_photo"="Изменить фото"; + +// MARK: my group alias +"My_Group_Alias"="Мой псевдоним группы"; +"Alias_Field_Title"="Мой псевдоним в группе:"; +"Cancel_Group_Alias"="Отменить псевдоним группы."; +"Save_Alias"="Сохранить"; +"Invalid_alias"="Извините, этот псевдоним неправильный"; + +"Alias_Empty_Message"="Извините, мы не позволяем пустых псевдонимов"; +"Alias_Max_Size_Message"="Псевдоним должен быть не более 32 символа в длину"; +"Alias_Busy_Message"="Извините, это имя пользователя уже занято"; + +// MARK: edit group name +"Group_Name"="Имя группы"; +"Group_Name_Field_Title"="Имя группы*:"; +"Cancel_Group_Name"="Отменить имя группы."; +"Save_Group_Name"="Сохранить"; +"Group_Name_Empty_Message"="Пожалуйста, введите по крайней мере один символ "; + +// MARK: add contact via phone +"addContactPhone_enterPhone"="Введите номер телефона"; +"Profile_Not_Found"="Профиль не найден"; + + +// MARK: add contacts from phone book +"Contacts_Not_found"="Контакты не найдены"; + +// MARK: add contact by user name +"By_User_Name"="По имени пользователя"; +"Username_Field_Title"="Имя пользователя:"; +"Search_Button_Title"="Поиск"; + +"Add_Contact_By_Username_Incorrect_Username"="Неправильный формат имени пользователя"; +"Add_Contact_By_Username_May_Contain_English_Letters"="Имя пользователя может содержать английские буквы, числа и знак подчеркивания"; +"Add_Contact_By_Username_No_Results_Found"="Нет результатов"; + + +// MARK: call view +"call_accept"="Принять"; +"call_decline"="Отклонить"; +"call_incoming"="Входящий голосовой звонок..."; +"call_incoming_video"="Входящий видео звонок..."; +"call_ringing"="Звонок..."; +"call_connecting"="Соединение..."; +"accept_audio"="Принять Аудио"; +"switch_to_audio"="Переключиться на Аудио"; +"hang_up"="Принять звонок"; +"switch_camera"="Переключить камеру"; +"port_out_to_phone"="Импортировать в телефон"; +"mute_call"="Отключить звук"; +"unmute_call"="Включить звук"; +"speakerphone"="Громкая связь"; +"return_to_chat_from_call"="Вернуться в чат"; + + +// MARK: chat list +"chats_list_title"="Список чатов"; +"last_message_emoji"="Emoji"; +"last_message_videoCall"="Видео звонок"; +"last_message_photo"="Фото"; +"last_message_location"="Локация"; +"last_message_video"="Видео"; +"write_message"="Напишите ваше сообщение здесь"; +"last_message_file"="Файл"; +"last_message_voice"="Голос"; +"last_message_contact"="Контакт"; + + +// MARK: MessageVC +"save_to_gallery"="Сохранить в галерею"; +"delete_message"="Удалить сообщение?"; +"delete_for_both"="Удалить для всех"; +"delete_for_me"="Удалить для меня"; + +"accepted_your_contact_request"="примите запрос в контакты! Отправить сообщение!"; +"accepted_contact_request"="примите запрос в контакты"; + + +// MARK: Call +"Return_to_call"="Вернуться к звонку"; +"You_can't_call_to_yourself"="Вы можете позвонить себе"; +"You_can't_call_when_you_calling"="Вы не можете звонить, когда вы говорите"; + +// MARK: record +"message_delay"="Задержка сообщения"; + +"Unread"="Не прочитанный"; + +// Mark: Permissions +"camera"="камера"; +"gallery"="галерея"; +"location"="локация"; +"microphone"="микрофон"; + +"please_allow_permission"="Пожалуйста позвольте NYNJA доступ к вашим %@."; + +// MARK: notification: +"notif_accept_requst"="примите запрос в контакты! Отправить сообщение!"; +"notif_wants_toAdd"="Хочет добавить вас в NYNJA!"; + +// MARK: mapView +"accurate_to"="Приблизительно"; +"meters"="метров"; +"target_location"="Целевая локация"; + +"map_mode_map"="Карта"; +"map_mode_satellite"="Спутник"; +"map_mode_hybrid"="Гибрид"; + +"map_permission_request"="Пожалуйста позвольте NYNJA знать вашу локацию"; +"map_permission_deny"="Хорошо"; +"map_permission_settings"="Настройки"; + +// MARK: Map Search +"map_search_screen_title"="Поиск или найди друга"; +"map_search_text_field_placeholder"="Поиск"; +"map_search_no_results"="Нет результатов"; + +// MARK: Top Up Account +"top_up_account"="Поднять Счет"; + +// MARK: Paticipants +"participants"="Участники группы"; +"admins"="Админы группы"; + +// MARK: Add Participants +"delete_participants"="Удалить участников"; +"add_participants"="Добавить участников"; +"please_choose_at_least_one_member"="Пожалуйста, выберите хотя бы одного участника"; +"no_participant_selected"="не выбрано участников"; + +// MARK: share extension +"login_to_Nynja"="Войти в Nynja"; +"open_and_login_to_share"="Откройте Nynja и войдите чтоб поделиться"; +"next"="Следующий"; + +// MARK: settings group +"group_options"="Опции группы"; +"return_to_chat"="Вернуться в групповой чат"; +"delete_leave"="Удалить и покинуть чат?"; +"delete_chat_history"="Удалить историю чата?"; +"conf_remove"="Удалите этих пользователей?"; +"please_add_admins"="Пожалуйста добавьте другого админа перед тем как покинуть группу"; +/* "Create_group" = "CREATE"; +MARK: create Group */ +"New_Group"="Новая группа"; +"Cancel_new_group"="Отменить создание группы"; +"Create_group"="Создать"; + +// MARK: groups list +"groups_list_title"="Список групп"; + +// MARK: Contacts +"contacts_title"="Контакты"; + +// MARK: By Contacts +"by_contacts_title"="По контактам"; + +// MARK: By QR Code +"by_qr_code_title"="По QR коду"; + +// MARK: By Number +"by_number_title"="По номеру"; + +// MARK: By Username +"by_username_title"="По имени пользователя"; + +// MARK: History +"history_title"="История"; + +// MARK: Select Country +"select_country_title"="Выбрать страну"; + +// MARK: Group rules +"groups_rules_title"="Правила группы"; +"updated_rules_message"="По-видимому правила изменились недавно, пожалуйста проверьте изменения сначала."; +"save_group_rules"="Сохранить"; +"cancel_group_rules"="Отменить групповые правила."; + +// MARK: Group storage +"files_filter"="файлы"; +"photos_filter"="фотографии"; +"videos_filter"="видео"; +"links_filter"="ссылки"; +"audios_filter"="аудио"; + +// MARK: Context menu +"reply"="Ответить"; +"edit"="Изменить"; +"forward"="Вперед"; +"translate"="Перевести"; +"transcribe"="Переписать"; +"copy"="Скопировать"; +"share"="Поделиться"; +"share_to_galery"="Отправить в Галлерею"; +"show_in_chat"="Показать в чате"; +"unstar"="Убрать звезду"; + +// MARK: Forward +"chat_list"="СПИСОК ЧАТОВ"; +"group_list"="СПИСОК ГРУПП"; +"no_forward_target_selected"="Чат не выбран"; +"forward_screen_logo"="ВЫБРАН"; +"please_choose_at_least_one_forward_chat"="Пожалуйста выберете по крайней мере один чат"; + +// MARK: date formatting +"now"="Сейчас"; +"minutes_ago"="минуты назад"; +"one_minute_ago"="одну минуту назад"; +"hours_ago"="ч назад"; +"yesterday"="Вчера"; + +// MARK: drop member from group +"delete_group"="УДАЛИТЬ ЭТУ ГРУППУ"; +"you_was_removed"="Вы были удалены из этой группы"; +"are_u_sure"="Вы уверены, вы хотите удалить этот чат?"; + +// MARK: Starred VC +"starred_filter_all"="все"; +"starred_filter_text"="текст"; +"starred_filter_voice"="голос"; +"starred_filter_images"="картинка"; +"starred_filter_files"="файлы"; +"starred_filter_video"="видео"; +"starred_filter_contacts"="контакты"; +"starred_filter_locations"="локации"; +"starred_filter_links"="ссылки"; + +// MARK: Other User VC +"return_to_home"="Вернуться домой"; +"request_sent"="Ваш запрос был отправлен"; +"mute"="Отключить звук"; +"unmute"="Включить звук"; +"block"="Заблокировать"; +"unblock"="Разблокировать"; +"are_u_sure_block"="Вы уверены, что хотите заблокировать этого пользователя?"; +"are_u_sure_unblock"="Вы уверены что хотите разблокировать этого пользователя?"; +"send_message"="Отправить сообщение"; +"add_contact"="Добавить в контакты"; +"u_are_blocked"="Вы заблокированы"; + +// MARK: Schedule message +"schedule_message"="Запланировать сообщение"; +"schedule_message_to"="Сообщение на:"; +"schedule_voice_message"="Голосовое сообщение:"; +"schedule_text_message"="Текстовое сообщение:"; +"schedule_message_last"="сообщение:"; +"schedule_time_zone"="Для того чтобы был доставлен в следующую Тайм зону:"; +"schedule_date_time"="Для того чтобы был доставлен в следующую дату и время:"; +"schedule_save"="Сохранить"; +"schedule_success"="Сообщение было отложено с успехом."; +"schedule_error"="Выбранная дата и/или время некорректны. Пожалуйста, убедитесь что вы выбрали правильную дату и время. "; +"voice_message"="Голосовое сообщение"; +"forwarded_message"="Пересланное сообщение"; +"local_time"="Локальное время"; + +// MARK: TimeZone selecter +"time_zone_selector"="Выбор Тайм зоны"; + +// MARK: Calendar +"mo"="По"; +"tu"="Вт"; +"we"="Ср"; +"th"="Чт"; +"fr"="Пт"; +"sa"="Сб"; +"su"="Вс"; + +// MARK: Time Date Picker +"date"="ДАТА"; +"time"="ВРЕМЯ"; + +"hour"="Час"; +"colon"=":"; +"min"="Мин"; + +"am"="AM"; +"pm"="PM"; + +// MARK: Errors +"no_internet_connection"="Нет интернет соединения"; + +// MARK: Custom Image Picker +"custom_image_picker_photo"="Фото"; +"custom_image_picker_video"="Видео"; +"custom_image_picker_retake"="Взять опять"; +"custom_image_picker_use_photo"="Использовать фото"; +"custom_image_picker_use_video"="Использовать видео"; + +// MARK: Other User +"other_user_header_name_label"="Первый Последний"; +"other_user_header_nickname_label"="ник пользователя"; +"other_user_table_view_ds_notifications"="Уведомления"; +"other_user_table_view_ds_unmute"="Включить звук"; +"other_user_table_view_ds_mute"="Отключить звук"; +"other_user_table_view_ds_storage"="Хранилище"; +"other_user_table_view_ds_clear_chat_history"="Почистить историю чатов"; +"other_user_table_view_ds_banned"="забанен"; +"other_user_table_view_ds_unblock_user"="Разблокировать пользователя"; +"other_user_table_view_ds_block_user"="Заблокировать пользователя"; + +// MARK: Replies +"replies_header_replies"="Ответы"; + +// MARK: Message +"message_status_typing"="...печать"; +"message_new_messages"="Новые сообщения"; +"message_sending"="...отправка"; + +// MARK: Sending Status +"file"="файл"; +"voice message"="голосовое сообщение"; +"photo"="фото"; + +// MARK: Recording Status +"video"="видео"; +"recording"="...запись"; + +// MARK: Presence status +"active"="активный"; +"inactive"="неактивный"; +"members"="пользователи"; + +// MARK: Internet status +"waiting for network..."="ожидание сети..."; +"connecting..."="соединение..."; +"connected"="подключенный"; + +// MARK: Auth +"login_wrong_country_code"="Неправильный код страны"; +"login_choose_country"="Выбрать страну"; +"auth_something_went_wrong"="Что-то пошло не так"; +"auth_sms_code_is_wrong"="СМС код не верен"; +"auth_attempts_expired"="У вас нет больше попыток"; +"auth_attempts_removed"="Удалено"; + +// MARK: Tutorial +"tutorial_weclome_to"="Приглашаем в"; +"tutorial_mobile_communicator"="Мобильный коммуникатор"; +"tutorial_never_go_back"="никогда не возвращаться"; + +// MARK: Wheel items +"wheel_item_myself"="Я"; +"wheel_item_new"="Новый"; +"wheel_item_calls"="Звонки"; +"wheel_item_contacts"="Контакты"; +"wheel_item_home"="Дом"; +"wheel_item_search"="Поиск"; +"wheel_item_actions"="Действия"; +"wheel_item_location"="Локация"; +"wheel_item_camera"="Камера"; +"wheel_item_media"="Медиа"; +"wheel_item_gallery"="Галерея"; +"wheel_item_call"="Звонок"; +"wheel_item_voiceCall"="Голосовой звонок"; +"wheel_item_videoCall"="Видео звонок"; +"wheel_item_contact"="Контакт"; +"wheel_item_event"="Событие"; +"wheel_item_editProfile"="Изменить профиль"; +"wheel_item_my_qr_code"="Мой QR код"; +"wheel_item_photo"="Мое фото"; +"wheel_item_name"="Мое имя"; +"wheel_item_username"="Mое имя пользователя"; +"wheel_item_changeNumber"="Изменить номер"; +"wheel_item_starred"="Со звездочкой"; +"wheel_item_recents"="Недавние"; +"wheel_item_work"="Работа"; +"wheel_item_family"="Семья"; +"wheel_item_friends"="Друзья"; +"wheel_item_all"="Все"; +"wheel_item_chats"="Чаты"; +"wheel_item_newChat"="Новый час"; +"wheel_item_groups"="Группы"; +"wheel_item_newGroup"="Новая группа"; +"wheel_item_groupOptions"="Опции группы"; +"wheel_item_notifications"="Уведомления"; +"wheel_item_groupInfo"="Информация о группе"; +"wheel_item_groupPhoto"="Групповое фото"; +"wheel_item_groupName"="Имя группы"; +"wheel_item_done"="СДЕЛАНО"; +"wheel_item_myAlias"="Мой псевдоним"; +"wheel_item_group"="Группа"; +"wheel_item_newContact"="Новый контакт"; +"wheel_item_history"="История"; +"wheel_item_byUsername"="По имени пользователя"; +"wheel_item_byNumber"="По номеру"; +"wheel_item_byQRCode"="По QR коду"; +"wheel_item_byPassword"="По паролю"; +"wheel_item_byContacts"="По контакту"; +"wheel_item_options"="Настройка"; +"wheel_item_logOut"="Выйти"; +"wheel_item_about"="О"; +"wheel_item_deleteAccount"="Удалить счет"; +"wheel_item_send"="Отправить локацию"; + +// MARK: Main +"main_undefined"="Неопределенный"; + +// MARK: Profile +"profile_balance"="Баланс"; +"star_added"="Добавлен:"; +"profile_contact_cell_added"="Добавлен"; +"action_cell_profile_starred_messages"="Сообщение со звездочкой"; +"profile_go_to_chats"="Идти в чаты"; +"profile_go_to_groups"="Идти в группы"; +"profile_go_to_contacts"="Идти в контакты"; +"profile_go_to_starred_messages"="Идти в сообщения со звездочкой"; + +// MARK: Edit Profile +"edit_profile_hint"="Хотите чтоб вам позвонили?"; + +// MARK: Call +"voice_call_status"="Телефонный звонок"; +"voice_call_the_feature_currently_unavailable"="Эта функция в данный момент недоступна"; + +// MARK: Settings group +"settings_group_no_info_about_me"="Нет информации о мне"; +"settings_group_no_phone_number"="Нет номера телефона"; +"settings_group_group_name"="Имя группы*:"; +"settings_group_my_alias_in_group"="мой псевдоним группы:"; +"settings_group_group_rules"="Правила группы"; +"settings_group_notifications"="Сообщения"; +"settings_group_storage"="Хранилище"; +"settings_group_add_participants"="Добавить Участника"; +"settings_group_group_participants"="Участники группы"; +"settings_group_delete_participants"="Удалить участника"; +"settings_group_admins"="Админ группы"; +"settings_group_clear_chat_history"="Почистить историю чата"; +"settings_group_delete_and_leave"="Удалить и покинуть"; + +// MARK: Share extensions +"share_extensions_sharing"="делимся..."; + diff --git a/Nynja/Resources/uk.lproj/Localizable.strings b/Nynja/Resources/uk.lproj/Localizable.strings index 27a3541ff395f45faa72dc1a0690cc84c6a9c769..c81d12d8d6f8c87fe5ae343540ac76deb3c6fc63 100644 --- a/Nynja/Resources/uk.lproj/Localizable.strings +++ b/Nynja/Resources/uk.lproj/Localizable.strings @@ -1,7 +1,5 @@ -/* - Localizable.strings +/* Localizable.strings Nynja Created by Bohdan Paliychuk on 7/3/17. - Copyright © 2017 TecSynt Solutions. All rights reserved. -*/ + Copyright © 2017 TecSynt Solutions. All rights reserved. */ diff --git a/Nynja/Resources/zh.lproj/Localizable.strings b/Nynja/Resources/zh.lproj/Localizable.strings new file mode 100644 index 0000000000000000000000000000000000000000..c81d12d8d6f8c87fe5ae343540ac76deb3c6fc63 --- /dev/null +++ b/Nynja/Resources/zh.lproj/Localizable.strings @@ -0,0 +1,5 @@ +/* Localizable.strings + Nynja + + Created by Bohdan Paliychuk on 7/3/17. + Copyright © 2017 TecSynt Solutions. All rights reserved. */