From 05f1b65b7efa058fcdf8b8b4bb290796db2e812d Mon Sep 17 00:00:00 2001 From: lpw Date: Tue, 15 Feb 2022 15:36:44 +0800 Subject: [PATCH] 3.9.7 --- res/AIHelpSupportSDK.bundle/Image/btn_good_unsel.png | 0 res/AIHelpSupportSDK.bundle/lan/cs.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/Image/btn_close.png | 0 res/AIHelpSupportSDK.bundle/Image/btn_common_close.png | 0 res/AIHelpSupportSDK.bundle/Image/empty_dark.png | 0 res/AIHelpSupportSDK.bundle/Image/rightdark.png | 0 res/AIHelpSupportSDK.bundle/Image/bg_text_dark.png | 0 frameworks/AIHelpSupportSDK.framework/Info.plist | 0 res/AIHelpSupportSDK.bundle/Image/icon_nav_loading.png | 0 res/AIHelpSupportSDK.bundle/lan/ta.lproj/Localizable.strings | 45 + res/AIHelpSupportSDK.bundle/lan/sv.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/lan/fr.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/lan/te.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/lan/fa.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/Image/btn_search.png | 0 res/AIHelpSupportSDK.bundle/Image/netsuccess.png | 0 res/AIHelpSupportSDK.bundle/Image/aihelpplaceimage.png | 0 frameworks/AIHelpSupportSDK.framework/Headers/AIHelpSupportSDK.h | 266 +++++++ res/AIHelpSupportSDK.bundle/Image/bg_input_dark.png | 0 frameworks/AIHelpSupportSDK.framework/Modules/module.modulemap | 6 res/AIHelpSupportSDK.bundle/lan/tl.lproj/Localizable.strings | 46 + WAAiHelpImpl/3.9.7/WAAiHelpImpl.podspec | 27 res/AIHelpSupportSDK.bundle/lan/ru.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/lan/pl.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/lan/bn.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/Image/ahresend.png | 0 frameworks/WAAIhelpImpl.framework/Info.plist | 0 res/AIHelpSupportSDK.bundle/Image/btn_evalute_sure_unsel.png | 0 res/AIHelpSupportSDK.bundle/lan/zh-TW.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/lan/fi.lproj/Localizable.strings | 45 + res/AIHelpSupportSDK.bundle/lan/pt.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/Image/btn_photo.png | 0 res/AIHelpSupportSDK.bundle/Image/bg_send_bubble.9.png | 0 res/AIHelpSupportSDK.bundle/lan/my.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/Image/right.png | 0 res/AIHelpSupportSDK.bundle/lan/es.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/lan/ro.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/Image/icon_robot.png | 0 res/AIHelpSupportSDK.bundle/lan/nb.lproj/Localizable.strings | 45 + res/AIHelpSupportSDK.bundle/Image/send_dark.png | 0 res/AIHelpSupportSDK.bundle/lan/hu.lproj/Localizable.strings | 46 + config/wa_sdk_impl_config_aihelp.xml | 2 res/AIHelpSupportSDK.bundle/lan/id.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/Image/icon_evaluate_success.png | 0 res/AIHelpSupportSDK.bundle/Image/empty.png | 0 res/AIHelpSupportSDK.bundle/lan/it.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/Image/ahsubmitBtn.png | 0 res/AIHelpSupportSDK.bundle/lan/he.lproj/Localizable.strings | 45 + res/AIHelpSupportSDK.bundle/lan/vi.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/lan/ms.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/lan/el.lproj/Localizable.strings | 45 + res/AIHelpSupportSDK.bundle/lan/de.lproj/Localizable.strings | 47 + res/AIHelpSupportSDK.bundle/Image/btn_star_high.png | 0 res/AIHelpSupportSDK.bundle/Image/btn_back.png | 0 res/AIHelpSupportSDK.bundle/Image/icon_player.png | 0 res/AIHelpSupportSDK.bundle/lan/th.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/Image/smallloading.png | 0 res/AIHelpSupportSDK.bundle/lan/tr.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/lan/nl.lproj/Localizable.strings | 46 + res/AIHelpSupportSDK.bundle/Image/bg_recive_bubble.9.png | 0 res/AIHelpSupportSDK.bundle/Image/faqrightbtn.png | 0 res/AIHelpSupportSDK.bundle/lan/ja.lproj/Localizable.strings | 47 + res/AIHelpSupportSDK.bundle/Image/btn_bad_unsel.png | 0 res/AIHelpSupportSDK.bundle/Image/icon_customer.png | 0 res/AIHelpSupportSDK.bundle/Image/bg_text.png | 0 res/AIHelpSupportSDK.bundle/Image/bg_input.png | 0 res/AIHelpSupportSDK.bundle/Image/btn_search_dark.png | 0 res/AIHelpSupportSDK.bundle/Image/loading.png | 0 res/AIHelpSupportSDK.bundle/Image/playimg.png | 0 res/AIHelpSupportSDK.bundle/Image/ai_select.png | 0 frameworks/WAAIhelpImpl.framework/WAAIhelpImpl | 0 res/AIHelpSupportSDK.bundle/Image/wifibad.png | 0 res/AIHelpSupportSDK.bundle/Image/btn_send.png | 0 res/AIHelpSupportSDK.bundle/lan/hi.lproj/Localizable.strings | 46 + /dev/null | 32 res/AIHelpSupportSDK.bundle/lan/en.lproj/Localizable.strings | 54 + res/AIHelpSupportSDK.bundle/Image/ai_select_no.png | 0 res/AIHelpSupportSDK.bundle/Image/btn_evalute_sure_sel.png | 0 res/AIHelpSupportSDK.bundle/Image/leftback.png | 0 res/AIHelpSupportSDK.bundle/lan/km.lproj/Localizable.strings | 47 + res/AIHelpSupportSDK.bundle/Image/btn_star_normal.png | 0 res/AIHelpSupportSDK.bundle/Image/icon_evaluate_heart.png | 0 res/AIHelpSupportSDK.bundle/lan/ar.lproj/Localizable.strings | 45 + frameworks/AIHelpSupportSDK.framework/AIHelpSupportSDK | 0 frameworks/AIHelpSupportSDK.framework/Headers/AIHelpSDKConfig.h | 92 ++ res/AIHelpSupportSDK.bundle/lan/zh-CN.lproj/Localizable.strings | 49 + res/AIHelpSupportSDK.bundle/Image/dark_bg_recive_bubble.9.png | 0 res/AIHelpSupportSDK.bundle/Image/icon_nav_btn_msg.png | 0 res/AIHelpSupportSDK.bundle/lan/ko.lproj/Localizable.strings | 47 + WAAiHelpImpl.podspec | 4 90 files changed, 2,013 insertions(+), 35 deletions(-) diff --git a/WAAiHelpImpl.podspec b/WAAiHelpImpl.podspec index 503cb48..d12acc1 100644 --- a/WAAiHelpImpl.podspec +++ b/WAAiHelpImpl.podspec @@ -9,7 +9,7 @@ Pod::Spec.new do |s| s.name = 'WAAiHelpImpl' -s.version = '3.8.4' +s.version = '3.9.7' s.summary = 'WAAfImpl framework in testing environment.' s.license = 'MIT' s.author = { "Hank" => "hank.zhang@gamehollywood.com" } @@ -20,7 +20,7 @@ s.frameworks = "WebKit" s.vendored_frameworks = 'frameworks/*.framework' s.libraries = 'sqlite3' -s.resources = ['config/*.xml','res/ElvaChatServiceSDK.bundle','res/ElvaChatServiceSDK.bundle','res/*.xib','res/Localization/*/*.strings'] +s.resources = ['config/*.xml','res/AIHelpSupportSDK.bundle','res/*.xib','res/Localization/*/*.strings'] s.requires_arc = true s.dependency 'WASdkIntf' s.dependency 'WASdkImpl' diff --git a/WAAiHelpImpl/3.9.7/WAAiHelpImpl.podspec b/WAAiHelpImpl/3.9.7/WAAiHelpImpl.podspec new file mode 100644 index 0000000..d12acc1 --- /dev/null +++ b/WAAiHelpImpl/3.9.7/WAAiHelpImpl.podspec @@ -0,0 +1,27 @@ +# +# Be sure to run `pod spec lint WAAiHelpImpl.podspec' to ensure this is a +# valid spec and to remove all comments including this before submitting the spec. +# +# To learn more about Podspec attributes see http://docs.cocoapods.org/specification.html +# To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/ +# + +Pod::Spec.new do |s| + +s.name = 'WAAiHelpImpl' +s.version = '3.9.7' +s.summary = 'WAAfImpl framework in testing environment.' +s.license = 'MIT' +s.author = { "Hank" => "hank.zhang@gamehollywood.com" } +s.homepage = 'http://repo.wingsdk.cn:8082/summary/WAAiHelpImpl.git' +s.source = { :git => "http://admin@repo.wingsdk.cn:8082/r/WAAiHelpImpl.git" , :tag => s.version} +s.platform = :ios +s.ios.deployment_target = "7.0" +s.frameworks = "WebKit" +s.vendored_frameworks = 'frameworks/*.framework' +s.libraries = 'sqlite3' +s.resources = ['config/*.xml','res/AIHelpSupportSDK.bundle','res/*.xib','res/Localization/*/*.strings'] +s.requires_arc = true +s.dependency 'WASdkIntf' +s.dependency 'WASdkImpl' +end diff --git a/config/wa_sdk_impl_config_aihelp.xml b/config/wa_sdk_impl_config_aihelp.xml index 4729303..28662ee 100644 --- a/config/wa_sdk_impl_config_aihelp.xml +++ b/config/wa_sdk_impl_config_aihelp.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <config> - <version val="AIHELP3.8.4"/> + <version val="AIHELP3.9.7"/> <comps> <!-- 公共模块 --> <comp module="CORE" plaf="AIHELP" mandatory="YES" value="WAAIhelpCore" desc="公共模块"/> diff --git a/frameworks/AIHelpSupportSDK.framework/AIHelpSupportSDK b/frameworks/AIHelpSupportSDK.framework/AIHelpSupportSDK new file mode 100644 index 0000000..3bb6d41 --- /dev/null +++ b/frameworks/AIHelpSupportSDK.framework/AIHelpSupportSDK Binary files differ diff --git a/frameworks/AIHelpSupportSDK.framework/Headers/AIHelpSDKConfig.h b/frameworks/AIHelpSupportSDK.framework/Headers/AIHelpSDKConfig.h new file mode 100644 index 0000000..216f704 --- /dev/null +++ b/frameworks/AIHelpSupportSDK.framework/Headers/AIHelpSDKConfig.h @@ -0,0 +1,92 @@ +// +// AIHelpSDKConfig +// +// Created by AIHelp. +// Copyright © 2020 aihelp.net. All rights reserved. +// + +#import <Foundation/Foundation.h> + +typedef NS_ENUM(int,AIHelpTokenPlatform) { /* PushTokenPlatform enum*/ + AIHelpTokenPlatformAPNS = 1, // Apple APNS + AIHelpTokenPlatformFirebase = 2, // firebase-FCM + AIHelpTokenPlatformJpush = 3, // Jpush + AIHelpTokenPlatformGeTui = 4, // GeTui +}; + +typedef NS_ENUM(int,AIHelpConversationIntent) { /* ConversationIntent enum */ + AIHelpConversationIntentBotSupport = 1, // ShowBot + AIHelpConversationIntentHumanSupport = 2, // ShowHumanSupport +}; + +typedef NS_ENUM(int,AIHelpFAQShowConversationMoment) { /* ConversationMoment enum, show ContactUs moment */ + AIHelpFAQShowConversationMomentNever = 1, // Never show + AIHelpFAQShowConversationMomentAlways = 2, // Always show + AIHelpFAQShowConversationMomentAfterMarkingUnhelpful = 3, // Show after unhelpful with Faq detail + AIHelpFAQShowConversationMomentOnlyInAnswerPage = 4, // only in answer page show +}; + +typedef NS_ENUM(int,AIHelpPublishCountryOrRegion) { + AIHelpCN = 1, + AIHelpIN +}; + +#pragma mark - ECServiceUserConfig + +@interface AIHelpUserConfig : NSObject +- (id) init NS_UNAVAILABLE; +@end + +@interface AIHelpUserConfigBuilder : NSObject +@property (nonatomic, copy)NSString *userId; // default is unique deviceId +@property (nonatomic, copy)NSString *userName; // default is "anonymous" +@property (nonatomic, copy)NSString *serverId; // default is nil +@property (nonatomic, strong)NSArray *userTags; // If you assign this field with existing tags from aihelp admin dashboard, the tickets created by current user will take these tags by default. +@property (nonatomic, strong)NSDictionary *customData; // Set custom meta data you want to see in the aihelp admin dashboard. +@property (nonatomic, assign)BOOL isSyncCrmInfo; // If you set this to true, when you update current user's information, the sdk will sync user's information to you crm database. +@property(nonatomic,copy)NSString *pushToken; +@property(nonatomic,assign)AIHelpTokenPlatform pushPlatform; +- (AIHelpUserConfig *)build; +@end + + +#pragma mark - ECServiceConversationConfig + +@interface AIHelpConversationConfig : NSObject +- (id) init NS_UNAVAILABLE; +@end + +@interface AIHelpConversationConfigBuilder : NSObject +@property (nonatomic, assign)AIHelpConversationIntent conversationIntent; // show elva bot page or show conversation page +@property (nonatomic, assign)BOOL alwaysShowHumanSupportButtonInBotPage; // default is NO.if you set ture,user can always see the contact us button +@property (nonatomic, copy)NSString *welcomeMessage; // default is http://aihelp.net/dashboard setting. you can show different welcome msg by different users with this param, It has a higher priority. +@property (nonatomic, copy)NSString *storyNode; // set specific story node for specific scene. With this api call, you can show different stories in different scenes. the story node's User Say content you configured in aihelp admin dashboard.(http://aihelp.net/dashboard) +- (AIHelpConversationConfig *)build; +@end + + +#pragma mark - ECServiceFAQConfig + +@interface AIHelpFAQConfig : NSObject +- (id) init NS_UNAVAILABLE; +@end + +@interface AIHelpFAQConfigBuilder : NSObject +@property (nonatomic, assign)AIHelpFAQShowConversationMoment showConversationMoment; // see enum -> ElvaFAQShowConversationMoment +@property (nonatomic, strong)AIHelpConversationConfig *conversationConfig; // see config -> ECServiceConversationConfig +- (AIHelpFAQConfig *)build; +@end + + +#pragma mark - ECServiceOperationConfig + +@interface AIHelpOperationConfig : NSObject +- (id) init NS_UNAVAILABLE; +@end + +@interface AIHelpOperationConfigBuilder : NSObject +@property (nonatomic, assign)int selectIndex; // default is elva tab. If you set a negative index, or index larger than the total tab counts, the selected tab will still be elva. +@property (nonatomic, copy)NSString *conversationTitle; // default is "HELP", you can change the operation conversation bot title +@property (nonatomic, strong)AIHelpConversationConfig *conversationConfig; // see config -> ECServiceConversationConfig +- (AIHelpOperationConfig *)build; +@end diff --git a/frameworks/AIHelpSupportSDK.framework/Headers/AIHelpSupportSDK.h b/frameworks/AIHelpSupportSDK.framework/Headers/AIHelpSupportSDK.h new file mode 100644 index 0000000..2be9dcf --- /dev/null +++ b/frameworks/AIHelpSupportSDK.framework/Headers/AIHelpSupportSDK.h @@ -0,0 +1,266 @@ +// +// AIHelpSupportSDK +// +// Created by AIHelp. +// Copyright © 2020 aihelp.net. All rights reserved. +// + +#import <Foundation/Foundation.h> +#import <AIHelpSupportSDK/AIHelpSDKConfig.h> +#import <UIKit/UIKit.h> + +typedef void (*AISupportInitCallBack)(void); +typedef void (*AISupportMessageCallBack)(const int unreadCount); +typedef void (*AISupportPingCallBack)(const NSString * log); +typedef void (*AISupportIsSpecificFormCallBack)(void); +typedef void (*AISupportOpenSDKCallBack)(void); +typedef void (*AISupportCloseSDKCallBack)(void); +typedef void (*AISupportOperationUnReadCallBack)(const bool hasUnreadArticles); + +@interface AIHelpSupportSDK : NSObject + +/** + * Initialize AIHelp sdk + * + * When initializing AIHelp you must pass these three tokens. You initialize AIHelp by adding the following lines in the implementation file for your app delegate, ideally at the top of application:didFinishLaunchingWithOptions + * @param apiKey This is your developer API Key + * @param domainName This is your domain name without any http:// or forward slashes + * @param appId This is the unique ID assigned to your app + */ ++ (void)initWithApiKey:(NSString *)apiKey domainName:(NSString *)domainName appId:(NSString *)appId; + +/** + * Initialize AIHelp sdk + * + * When initializing AIHelp you must pass these three tokens. You initialize AIHelp by adding the following lines in the implementation file for your app delegate, ideally at the top of application:didFinishLaunchingWithOptions + * @param apiKey This is your developer API Key + * @param domainName This is your domain name without any http:// or forward slashes + * @param appId This is the unique ID assigned to your app + * @param language This is your expected init language + */ ++ (void)initWithApiKey:(NSString *)apiKey domainName:(NSString *)domainName appId:(NSString *)appId language:(NSString *)language; + +/** + * Show the AIHelp conversation screen, which is Elva bot by default. + * + * If you want to change your conversation intent or custom your welcome message, please check next method for more information. + */ ++ (void)showConversation; + +/** + * Show the AIHelp conversation screen, with Optional Arguments. + * + * User CAN NOT get in touch with customer service in Bot page, unless there is an unfinished ticket or they submit a form from elva bot. + * However, You could configure your default conversation intent with AIHelpConversationConfig. + * For instance, You can show different welcome msg for different customer, make your customer service always online for your VIPs, even skipping BOT conversation and show customer service by default for them. + * check AIHelpConversationConfig for more information. + * @param conversationConfig configure different conversation actions + */ ++ (void)showConversation:(AIHelpConversationConfig *)conversationConfig; + +/** + * Show the AIHelp screen with only the faqs, which is root section by default. + * + * To show the AIHelp screen with only the faq sections with search with optional arguments, you can use this api. + * If you want to pass some options to configure your faqs display, check next method for more information. + */ ++ (void)showAllFAQSections; + +/** + * Show the AIHelp screen with only the faqs, with Optional Arguments. + * + * User can get in touch with your customer service via FAQs, you can configure this with ECServiceFAQConfig, Such as the EXACT moment user can see the CONTACT US button. + * Besides, as you can get conversation via FAQs, you can configure your conversation configs wiith AIHelpConversationConfig. + * @param config the configs which contains custom configurations for faqs & supports + */ ++ (void)showAllFAQSections:(AIHelpFAQConfig *)config; + +/** + * Show the AIHelp screen with faqs from a particular section. + * + * This api takes on the default options, if you want to pass some options to configure your faqs display, check next method for more information. + * @param sectionId the publish id associated with the faq section which is shown in the FAQ page on the admin side.(https://aihelp.net/dashboard/#/FAQ) + */ ++ (void)showFAQSection:(NSString *)sectionId; + +/** + * Show the AIHelp screen with faqs from a particular section, with Optional Arguments. + * + * User can get in touch with your customer service via FAQs, you can configure this with ECServiceFAQConfig,Such as the EXACT moment user can see the CONTACT US button. + * Besides, as you can get conversation via FAQs, you can configure your conversation configs wiith AIHelpConversationConfig. + * + * @param sectionId the publish id associated with the faq section which is shown in the FAQ page on the admin side.(https://aihelp.net/dashboard/#/FAQ) + * @param config the configs which contains custom configurations for faqs & supports + */ ++ (void)showFAQSection:(NSString *)sectionId config:(AIHelpFAQConfig *)config; + +/** + * Show the AIHelp screen with a single faq. + * + * This api takes on the default options, if you want to pass some options to configure your faq display, check next method for more information. + * @param faqId the publish id associated with the faq which is shown when you expand a single FAQ.(https://aihelp.net/dashboard/#/FAQ) + */ ++ (void)showSingleFAQ:(NSString *)faqId; + +/** + * Show the AIHelp screen with a single faq, with Optional Arguments. + * + * User can get in touch with your customer service via FAQs, you can configure this with ECServiceFAQConfig. + * Such as the EXACT moment user can see the CONTACT US button, Besides, as you can get conversation via FAQs, you can configure your conversation configs wiith AIHelpConversationConfig. + * @param faqId the publish id associated with the faq which is shown when you expand a single FAQ.(https://aihelp.net/dashboard/#/FAQ) + * @param config the configs which contains custom configurations for faqs & supports + */ ++ (void)showSingleFAQ:(NSString *)faqId config:(AIHelpFAQConfig *)config; + +/** + * Show the AIHelp operation screen. + * + * This api takes on the default options, which selects Elva Bot by default. + * If you want to change the operation default selection or elva bot title, please check next method for more information. + */ ++ (void)showOperation; + +/** + * Show the AIHelp operation screen, with Optional Arguments. + * + * You can change your default selection or elva bot title by passing in ECServiceOperationConfig. + * Besides, as you can get conversation via FAQs, you can configure your conversation configs wiith AIHelpConversationConfig. + * @param config the configs which contains custom configurations for operations & supports + */ ++ (void)showOperation:(AIHelpOperationConfig *)config; + +/** + * Update a user's profile via UserConfig. + * + * Please check ECServiceUserConfigfor more detail information. + * @param config configs which contains all information about a user. + */ ++ (void)updateUserInfo:(AIHelpUserConfig *)config; + +/** + * Clear the values set to a user, reset the userId to deviceId, userName to 'anonymous'. + */ ++ (void)resetUserInfo; + +/** + * Change the SDK language. By default, the device's prefered language is used. + * + * The call will fail in the following cases : + * 1. If a AIHelp session is already active at the time of invocation + * 2. Language code is incorrect + * 3. Corresponding localization file is not found + * @param sdkLanguage the string representing the language code. For example, use 'fr' for French. + */ ++ (void)updateSDKLanguage:(NSString*)sdkLanguage; + +/** + * Set log path for uploading. + * + * In order to serve your customers well, you can upload customer-related-logs when tickets are created or + * specific forms are submitted. + * @param path the absolute path of log, which will be uploaded when needed + */ ++ (void)setUploadLogPath:(NSString*)path; + +/** + * set the pushToken and platform to enable push notifications. + * + * To enable push notifications in the Helpshift iOS SDK, set the Push Notifications’ deviceToken using this method inside your application:didRegisterForRemoteNotificationsWithDeviceToken application delegate. + * NOTE: You must get the specific push sdk in your App BEFORE this invocation. + * + * @param pushToken the pushToken received from the push notification servers. + * @param pushPlatform the specific push platform, please check ElvaTokenPlatform for more information. + */ ++ (void)setPushToken:(NSString*)pushToken pushPlatform:(AIHelpTokenPlatform)pushPlatform; + +/** + * Get current AIHelp SDK version + * @return AIHelp SDK version + */ ++ (NSString*)getSDKVersion; + +/** + * Whether AIHelp session is visible to users + * @return whether sdk is active + */ ++ (BOOL)isAIHelpShowing; + +/** + * Whether to print logs. + * + * It only works in Debug mode + * @param enable YES/NO + */ ++ (void)enableLogging:(BOOL)enable; + +/** + * The preferred screen orientation sdk would like to run in. + * + * NOTE: The SDK direction must be included in the program direction Settings, otherwise the setting will fail + * @param interfaceOrientationMask please refer to the UIInterfaceOrientationMask API + */ ++ (void)setSDKInterfaceOrientationMask:(UIInterfaceOrientationMask)interfaceOrientationMask; + +/** + * Set up host address for network check with result callback. + * + * With this api, you can get the network check result passing back to you. + * @param address host address for network checking, without schemes such 'https://' or 'http://'. + * For example, you can pass in 'www.google.com' or just 'google.com', no schemes are needed. + * @param callback network check result callback, you can get the check result via this callback + */ ++ (void)setNetworkCheckHostAddress:(NSString*)address callback:(AISupportPingCallBack)callback; + +/** + * Register callback for the process of AIHelp's initialization. + * + * After you register this callback, SDK will let you know if the init work is done. + * You can call this method either before or after the init method. + * @param callback callback for AIHelp initialization + */ ++ (void)setOnInitializedCallback:(AISupportInitCallBack)callback; + +/** + * start in-app unread message count polling + * + * This is a schedule work, get unread message count every five minutes. + * If you want to stop a started polling, just pass null to the listener parameters. + * @param callback callback for unread message polling + */ ++ (void)startUnreadMessageCountPolling:(AISupportMessageCallBack)callback; + +/** + * Set the SDK display mode + * + * Default following system + * @param mode + 0: follow the system + 1: light mode + 2: dark mode + */ ++ (void)setSDKAppearanceMode:(int)mode; + +/** + * AIHelp provide additional support for some country or regions. + * + * @param countryOrRegion ISO country code, please check https://www.iso.org/obp/ui/#search to learn more. + */ ++ (void)additionalSupportFor:(AIHelpPublishCountryOrRegion)countryOrRegion; + ++ (void)showUrl:(NSString *)url; + ++ (void)setKeyWindow:(UIWindow *)keyWin; + ++ (void)setOnAIHelpSessionOpenCallback:(AISupportOpenSDKCallBack)callback; + ++ (void)setOnAIHelpSessionCloseCallback:(AISupportCloseSDKCallBack)callback; + ++ (void)setOnSpecificFormSubmittedCallback:(AISupportIsSpecificFormCallBack)callBack; + ++ (void)setOnOperationUnreadChangedCallback:(AISupportOperationUnReadCallBack)callback; + ++ (void)setSDKEdgeInsetsWithTop:(float)top bottom:(float)bottom enable:(BOOL)enable; ++ (void)setSDKEdgeColorWithRed:(float)red green:(float)green blue:(float)blue alpha:(float)alpha; + + +@end diff --git a/frameworks/AIHelpSupportSDK.framework/Info.plist b/frameworks/AIHelpSupportSDK.framework/Info.plist new file mode 100644 index 0000000..2cfe078 --- /dev/null +++ b/frameworks/AIHelpSupportSDK.framework/Info.plist Binary files differ diff --git a/frameworks/AIHelpSupportSDK.framework/Modules/module.modulemap b/frameworks/AIHelpSupportSDK.framework/Modules/module.modulemap new file mode 100644 index 0000000..4ddbb4f --- /dev/null +++ b/frameworks/AIHelpSupportSDK.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module AIHelpSupportSDK { + umbrella header "AIHelpSupportSDK.h" + + export * + module * { export * } +} diff --git a/frameworks/ElvaChatServiceSDK.framework/ElvaChatServiceSDK b/frameworks/ElvaChatServiceSDK.framework/ElvaChatServiceSDK deleted file mode 100644 index 5ef9944..0000000 --- a/frameworks/ElvaChatServiceSDK.framework/ElvaChatServiceSDK +++ /dev/null Binary files differ diff --git a/frameworks/ElvaChatServiceSDK.framework/Headers/ECServiceSdk.h b/frameworks/ElvaChatServiceSDK.framework/Headers/ECServiceSdk.h deleted file mode 100644 index 2d95b9f..0000000 --- a/frameworks/ElvaChatServiceSDK.framework/Headers/ECServiceSdk.h +++ /dev/null @@ -1,96 +0,0 @@ -// -// ECServiceCocos2dx.h -// ElvaChatService Cocos2dx SDK -// - -#import <Foundation/Foundation.h> - -/* - * notify the application when some state changes in Elva. - * eventCode: - * 2: Elva UI Visible Changed - * state (0) : will show elva ui - * state (1) : all elva ui are closed - */ -typedef void (*ElvaEventCallBack)(const int eventCode, const int state); -typedef BOOL (*ElvaPingCallBack)(const NSString * log); -typedef void (*ElvaAllowUploadLogMessageCallback)(void); - -@class UIViewController; -typedef NS_ENUM(int,ElvaTokenPlatform) { - ElvaTokenPlatformAPNS = 1,//APNS - ElvaTokenPlatformFirebase = 2,//firebase-FCM - ElvaTokenPlatformJpush = 3,//极光推送 - ElvaTokenPlatformGeTui = 4,//个推 -}; -@interface ECServiceSdk:NSObject -#pragma mark - ------init------ -+ (void) init:(NSString*) appSecret Domain:(NSString*) domain AppId:(NSString*) appId; -#pragma mark - ------showElva------ -+ (void) showElva:(NSString*) playerName PlayerUid:(NSString*) playerUid ServerId:(NSString*) serverId PlayerParseId:(NSString*) playerParseId PlayershowConversationFlag:(NSString*) playershowConversationFlag; -+ (void) showElva:(NSString*) playerName PlayerUid:(NSString*) playerUid ServerId:(NSString*) serverId PlayerParseId:(NSString*) playerParseId PlayershowConversationFlag:(NSString*) playershowConversationFlag Config:(NSMutableDictionary*) config; -#pragma mark - ------showConversation------ -+ (void) showConversation:(NSString*) playerUid ServerId:(NSString*) serverId;//请优先实现setUserName接口 -+ (void) showConversation:(NSString*) playerUid ServerId:(NSString*) serverId Config:(NSMutableDictionary*) config; -#pragma mark - ------showElvaOP------ -+ (void) showElvaOP:(NSString*) playerName PlayerUid:(NSString*) playerUid ServerId:(NSString*) serverId PlayerParseId:(NSString*) playerParseId PlayershowConversationFlag:(NSString*) playershowConversationFlag Config:(NSMutableDictionary *)config; - -+ (void) showElvaOP:(NSString*) playerName PlayerUid:(NSString*) playerUid ServerId:(NSString*) serverId PlayerParseId:(NSString*) playerParseId PlayershowConversationFlag:(NSString*) playershowConversationFlag Config:(NSMutableDictionary *)config defaultTabIndex:(int)defaultTabIndex; -#pragma mark - ------showFAQ------ -+ (void) showFAQs; -+ (void) showFAQs:(NSDictionary*)config; -+ (void) showFAQs:(NSString*)playerName playerUid:(NSString*)playerUid; -+ (void) showFAQs:(NSString*)playerName playerUid:(NSString*)playerUid config:(NSDictionary*)config; - -+ (void) showFAQSection:(NSString*) sectionPublishId; -+ (void) showFAQSection:(NSString*) sectionPublishId Config:(NSMutableDictionary*) config; - -+ (void) showSingleFAQ:(NSString*) faqId; -+ (void) showSingleFAQ:(NSString*) faqId Config:(NSMutableDictionary*) config; - -#pragma mark - ------other------ -+ (void) showVIPChat:(NSString*) appidWeb VIPTags:(NSString *) vipTags; -+ (void) showQACommunity:(NSString *)playerUid PlayName:(NSString *)playerName; - -+ (void) showURL:(NSString *) url; -+ (void) showStoreReview; - -+ (void) setRootViewController:(UIViewController*)rootViewController; -+ (void) setUserId:(NSString*) playerUid;//自助服务,在showFAQ之前调用 -+ (void) setUserName:(NSString*) playerName;//在需要的接口之前调用,建议游戏刚进入就默认调用 -+ (void) setName:(NSString*) game_name; -+ (void) setOpenLog:(BOOL)isOpen; -+ (void) setServerId:(NSString*) serverId;//自助服务,在showFAQ之前调用 -+ (void) setAccelerateDomain:(NSString *)domain; -+ (void) setSDKLanguage:(NSString*) sdkLanguage; -+ (void) setUseDevice; -+ (void) setSendCloseNotification:(BOOL) isSend;//关闭某一项是否发送通知 -+ (void) setEvaluateStar:(int) star;//设置默认评价星星个数 - -+ (void) setChangeDirection; -+ (void) setSDKInterfaceOrientationMask:(NSUInteger)interfaceOrientationMask;//参数参考UIInterfaceOrientationMask -+ (void) setNoMenu; - -+ (void) setVIP:(NSString *)userName userId:(NSString *)userId config:(NSDictionary*)config; - -+ (void) registerUnityOnInitializedCallback:(NSString *) gameObject; -+ (void) registerUnityOnMessageArrivedCallback:(NSString *) gameObject; -+ (void) registerUnityOnSendMessageSuccessCallback:(NSString *) gameObject; -+ (void) registerDeviceToken:(NSString*) deviceToken isVIP:(Boolean) isVip; -+ (void) handlePushNotification:(NSDictionary *) table DataFromInApp:(BOOL) dataFromInApp; -+ (int) getNotificationMessageCount; - -+ (void) setUnreadMessageFetchUid:(NSString*) playerUid; - - -+ (NSString*)sdkVersionInfo; -+ (BOOL) isInSDKPageView; -+ (void) setSDKEdgeInsetsWithTop:(float)top bottom:(float)bottom enable:(BOOL)enable; -+ (void) setSDKEdgeColorWithRed:(float)red green:(float)green blue:(float)blue alpha:(float)alpha;//0~1 - -+ (void) setEventListener:(ElvaEventCallBack)callback; -+ (void) setPushToken:(NSString*)pushToken pushPlatform:(ElvaTokenPlatform)pushPlatform;//platform参考1:APNS 2:firebase 3:极光推送 4:个推 -+ (void)setNetCheckInfoWithIp:(NSString*)ip callback:(ElvaPingCallBack)callback; -+ (void)setAllowUploadLogMessageCallback:(ElvaAllowUploadLogMessageCallback)callback; -+ (void)setUploadLogFileAtPath:(NSString*)path; -@end diff --git a/frameworks/ElvaChatServiceSDK.framework/Headers/ElvaChatServiceSDK.h b/frameworks/ElvaChatServiceSDK.framework/Headers/ElvaChatServiceSDK.h deleted file mode 100644 index f3dba33..0000000 --- a/frameworks/ElvaChatServiceSDK.framework/Headers/ElvaChatServiceSDK.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// ElvaChatServiceSDK.h -// ElvaChatServiceSDK -// -// Created by wwj on 16/7/21. -// Copyright © 2016年 wwj. All rights reserved. -// - -#import <UIKit/UIKit.h> -#import "ECServiceSdk.h" -//! Project version number for ElvaChatServiceSDK. -FOUNDATION_EXPORT double ElvaChatServiceSDKVersionNumber; - -//! Project version string for ElvaChatServiceSDK. -FOUNDATION_EXPORT const unsigned char ElvaChatServiceSDKVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import <ElvaChatServiceSDK/PublicHeader.h> - - diff --git a/frameworks/ElvaChatServiceSDK.framework/Info.plist b/frameworks/ElvaChatServiceSDK.framework/Info.plist deleted file mode 100644 index a4e444c..0000000 --- a/frameworks/ElvaChatServiceSDK.framework/Info.plist +++ /dev/null Binary files differ diff --git a/frameworks/ElvaChatServiceSDK.framework/Modules/module.modulemap b/frameworks/ElvaChatServiceSDK.framework/Modules/module.modulemap deleted file mode 100644 index a9e70b2..0000000 --- a/frameworks/ElvaChatServiceSDK.framework/Modules/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module ElvaChatServiceSDK { - umbrella header "ElvaChatServiceSDK.h" - - export * - module * { export * } -} diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTCFSocketDecoder.h b/frameworks/MQTTFramework.framework/Headers/MQTTCFSocketDecoder.h deleted file mode 100755 index 10dd43b..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTCFSocketDecoder.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// MQTTCFSocketDecoder.h -// MQTTClient.framework -// -// Copyright © 2013-2016, Christoph Krey -// - -#import <Foundation/Foundation.h> - -typedef NS_ENUM(NSInteger, MQTTCFSocketDecoderState) { - MQTTCFSocketDecoderStateInitializing, - MQTTCFSocketDecoderStateReady, - MQTTCFSocketDecoderStateError -}; - -@class MQTTCFSocketDecoder; - -@protocol MQTTCFSocketDecoderDelegate <NSObject> -- (void)decoder:(MQTTCFSocketDecoder *)sender didReceiveMessage:(NSData *)data; -- (void)decoderDidOpen:(MQTTCFSocketDecoder *)sender; -- (void)decoder:(MQTTCFSocketDecoder *)sender didFailWithError:(NSError *)error; -- (void)decoderdidClose:(MQTTCFSocketDecoder *)sender; - -@end - -@interface MQTTCFSocketDecoder : NSObject <NSStreamDelegate> -@property (nonatomic) MQTTCFSocketDecoderState state; -@property (strong, nonatomic) NSError *error; -@property (strong, nonatomic) NSInputStream *stream; -@property (strong, nonatomic) NSRunLoop *runLoop; -@property (strong, nonatomic) NSString *runLoopMode; -@property (weak, nonatomic ) id<MQTTCFSocketDecoderDelegate> delegate; - -- (void)open; -- (void)close; - -@end - - diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTCFSocketEncoder.h b/frameworks/MQTTFramework.framework/Headers/MQTTCFSocketEncoder.h deleted file mode 100755 index 22a6f95..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTCFSocketEncoder.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// MQTTCFSocketEncoder.h -// MQTTClient.framework -// -// Copyright © 2013-2016, Christoph Krey -// - -#import <Foundation/Foundation.h> - -typedef NS_ENUM(NSInteger, MQTTCFSocketEncoderState) { - MQTTCFSocketEncoderStateInitializing, - MQTTCFSocketEncoderStateReady, - MQTTCFSocketEncoderStateError -}; - -@class MQTTCFSocketEncoder; - -@protocol MQTTCFSocketEncoderDelegate <NSObject> -- (void)encoderDidOpen:(MQTTCFSocketEncoder *)sender; -- (void)encoder:(MQTTCFSocketEncoder *)sender didFailWithError:(NSError *)error; -- (void)encoderdidClose:(MQTTCFSocketEncoder *)sender; - -@end - -@interface MQTTCFSocketEncoder : NSObject <NSStreamDelegate> -@property (nonatomic) MQTTCFSocketEncoderState state; -@property (strong, nonatomic) NSError *error; -@property (strong, nonatomic) NSOutputStream *stream; -@property (strong, nonatomic) NSRunLoop *runLoop; -@property (strong, nonatomic) NSString *runLoopMode; -@property (weak, nonatomic ) id<MQTTCFSocketEncoderDelegate> delegate; - -- (void)open; -- (void)close; -- (BOOL)send:(NSData *)data; - -@end - diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTCFSocketTransport.h b/frameworks/MQTTFramework.framework/Headers/MQTTCFSocketTransport.h deleted file mode 100755 index a51fe3c..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTCFSocketTransport.h +++ /dev/null @@ -1,65 +0,0 @@ -// -// MQTTCFSocketTransport.h -// MQTTClient -// -// Created by Christoph Krey on 06.12.15. -// Copyright © 2015-2016 Christoph Krey. All rights reserved. -// - -#import "MQTTTransport.h" -#import "MQTTCFSocketDecoder.h" -#import "MQTTCFSocketEncoder.h" - -/** MQTTCFSocketTransport - * implements an MQTTTransport on top of CFNetwork - */ -@interface MQTTCFSocketTransport : MQTTTransport <MQTTTransport, MQTTCFSocketDecoderDelegate, MQTTCFSocketEncoderDelegate> - -/** host an NSString containing the hostName or IP address of the host to connect to - * defaults to @"localhost" - */ -@property (strong, nonatomic) NSString *host; - -/** port an unsigned 16 bit integer containing the IP port number to connect to - * defaults to 1883 - */ -@property (nonatomic) UInt16 port; - -/** tls a boolean indicating whether the transport should be using security - * defaults to NO - */ -@property (nonatomic) BOOL tls; - -/** certificates An identity certificate used to reply to a server requiring client certificates according - * to the description given for SSLSetCertificate(). You may build the certificates array yourself or use the - * sundry method clientCertFromP12. - */ -@property (strong, nonatomic) NSArray *certificates; - -/** reads the content of a PKCS12 file and converts it to an certificates array for initWith... - @param path the path to a PKCS12 file - @param passphrase the passphrase to unlock the PKCS12 file - @returns a certificates array or nil if an error occured - - @code - NSString *path = [[NSBundle bundleForClass:[MQTTClientTests class]] pathForResource:@"filename" - ofType:@"p12"]; - - NSArray *myCerts = [MQTTCFSocketTransport clientCertsFromP12:path passphrase:@"passphrase"]; - if (myCerts) { - - self.session = [[MQTTSession alloc] init]; - ... - self.session.certificates = myCerts; - - [self.session connect]; - ... - } - - @endcode - - */ - -+ (NSArray *)clientCertsFromP12:(NSString *)path passphrase:(NSString *)passphrase; - -@end diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTClient-Prefix.pch b/frameworks/MQTTFramework.framework/Headers/MQTTClient-Prefix.pch deleted file mode 100755 index eb2007e..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTClient-Prefix.pch +++ /dev/null @@ -1,9 +0,0 @@ -// -// Prefix header -// -// The contents of this file are implicitly included at the beginning of every source file. -// - -#ifdef __OBJC__ - #import <Foundation/Foundation.h> -#endif diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTClient.h b/frameworks/MQTTFramework.framework/Headers/MQTTClient.h deleted file mode 100755 index 39d043b..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTClient.h +++ /dev/null @@ -1,25 +0,0 @@ -// -// MQTTClient.h -// MQTTClient -// -// Created by Christoph Krey on 13.01.14. -// Copyright © 2013-2016 Christoph Krey. All rights reserved. -// - -/** - Include this file to use MQTTClient classes in your application - - @author Christoph Krey krey.christoph@gmail.com - @see http://mqtt.org - */ - -#import <Foundation/Foundation.h> - -#import <MQTTClient/MQTTSession.h> -#import <MQTTClient/MQTTSessionLegacy.h> -#import <MQTTClient/MQTTSessionSynchron.h> -#import <MQTTClient/MQTTMessage.h> -#import <MQTTClient/MQTTTransport.h> -#import <MQTTClient/MQTTCFSocketTransport.h> -#import <MQTTClient/MQTTCoreDataPersistence.h> -#import <MQTTClient/MQTTSSLSecurityPolicyTransport.h> diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTCoreDataPersistence.h b/frameworks/MQTTFramework.framework/Headers/MQTTCoreDataPersistence.h deleted file mode 100755 index 4df5051..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTCoreDataPersistence.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// MQTTCoreDataPersistence.h -// MQTTClient -// -// Created by Christoph Krey on 22.03.15. -// Copyright © 2015-2016 Christoph Krey. All rights reserved. -// - -#import <Foundation/Foundation.h> -#import <CoreData/CoreData.h> -#import "MQTTPersistence.h" - -@interface MQTTCoreDataPersistence : NSObject <MQTTPersistence> - -@end - -@interface MQTTFlow : NSManagedObject <MQTTFlow> -@end - -@interface MQTTCoreDataFlow : NSObject <MQTTFlow> -@end diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTDecoder.h b/frameworks/MQTTFramework.framework/Headers/MQTTDecoder.h deleted file mode 100755 index 5d50f9a..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTDecoder.h +++ /dev/null @@ -1,65 +0,0 @@ -// -// MQTTDecoder.h -// MQTTClient.framework -// -// Copyright © 2013-2016, Christoph Krey -// -// based on -// -// Copyright (c) 2011, 2013, 2lemetry LLC -// -// All rights reserved. This program and the accompanying materials -// are made available under the terms of the Eclipse Public License v1.0 -// which accompanies this distribution, and is available at -// http://www.eclipse.org/legal/epl-v10.html -// -// Contributors: -// Kyle Roche - initial API and implementation and/or initial documentation -// - -#import <Foundation/Foundation.h> -#import "MQTTMessage.h" - -typedef enum { - MQTTDecoderEventProtocolError, - MQTTDecoderEventConnectionClosed, - MQTTDecoderEventConnectionError -} MQTTDecoderEvent; - -typedef enum { - MQTTDecoderStateInitializing, - MQTTDecoderStateDecodingHeader, - MQTTDecoderStateDecodingLength, - MQTTDecoderStateDecodingData, - MQTTDecoderStateConnectionClosed, - MQTTDecoderStateConnectionError, - MQTTDecoderStateProtocolError -} MQTTDecoderState; - -@class MQTTDecoder; - -@protocol MQTTDecoderDelegate <NSObject> - -- (void)decoder:(MQTTDecoder *)sender didReceiveMessage:(NSData *)data; -- (void)decoder:(MQTTDecoder *)sender handleEvent:(MQTTDecoderEvent)eventCode error:(NSError *)error; - -@end - - -@interface MQTTDecoder : NSObject <NSStreamDelegate> -@property (nonatomic) MQTTDecoderState state; -@property (strong, nonatomic) NSRunLoop* runLoop; -@property (strong, nonatomic) NSString* runLoopMode; -@property (nonatomic) UInt32 length; -@property (nonatomic) UInt32 lengthMultiplier; -@property (nonatomic) int offset; -@property (strong, nonatomic) NSMutableData* dataBuffer; - -@property (weak, nonatomic ) id<MQTTDecoderDelegate> delegate; - -- (void)open; -- (void)close; -- (void)decodeMessage:(NSData *)data; -@end - - diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTFramework.h b/frameworks/MQTTFramework.framework/Headers/MQTTFramework.h deleted file mode 100755 index 3625930..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTFramework.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// MQTTFramework.h -// MQTT-Client-Framework -// -// Created by Terry Latanville on 2015-11-25. -// Copyright © 2015-2016 Christoph Krey. All rights reserved. -// - -#import <UIKit/UIKit.h> - -#import "MQTTSession.h" -#import "MQTTDecoder.h" -#import "MQTTSessionLegacy.h" -#import "MQTTSessionSynchron.h" -#import "MQTTMessage.h" -#import "MQTTTransport.h" -#import "MQTTCFSocketTransport.h" -#import "MQTTCoreDataPersistence.h" -#import "MQTTSSLSecurityPolicyTransport.h" - - -//! Project version number for MQTTFramework. -FOUNDATION_EXPORT double MQTTFrameworkVersionNumber; - -//! Project version string for MQTTFramework<. -FOUNDATION_EXPORT const unsigned char MQTTFrameworkVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import <MQTTFramework/PublicHeader.h> - - diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTInMemoryPersistence.h b/frameworks/MQTTFramework.framework/Headers/MQTTInMemoryPersistence.h deleted file mode 100755 index 88a6ba6..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTInMemoryPersistence.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// MQTTInMemoryPersistence.h -// MQTTClient -// -// Created by Christoph Krey on 22.03.15. -// Copyright © 2015-2016 Christoph Krey. All rights reserved. -// - -#import <Foundation/Foundation.h> -#import "MQTTPersistence.h" - -@interface MQTTInMemoryPersistence : NSObject <MQTTPersistence> -@end - -@interface MQTTInMemoryFlow : NSObject <MQTTFlow> -@end diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTLog.h b/frameworks/MQTTFramework.framework/Headers/MQTTLog.h deleted file mode 100755 index 887395e..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTLog.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// MQTTLog.h -// MQTTClient -// -// Created by Christoph Krey on 10.02.16. -// Copyright © 2016 Christoph Krey. All rights reserved. -// - -#ifndef MQTTLog_h - -#define MQTTLog_h - - -#ifdef LUMBERJACK - #define LOG_LEVEL_DEF ddLogLevel - #import <CocoaLumberjack/CocoaLumberjack.h> - #ifndef myLogLevel - #ifdef DEBUG - static const DDLogLevel ddLogLevel = DDLogLevelWarning; - #else - static const DDLogLevel ddLogLevel = DDLogLevelWarning; - #endif - #else - static const DDLogLevel ddLogLevel = myLogLevel; - #endif -#else - #ifdef DEBUG - #define DDLogVerbose - #define DDLogWarn - #define DDLogInfo - #define DDLogError -// #define DDLogVerbose NSLog -// #define DDLogWarn NSLog -// #define DDLogInfo NSLog -// #define DDLogError NSLog - #else - #define DDLogVerbose(...) - #define DDLogWarn(...) - #define DDLogInfo(...) - #define DDLogError(...) - #endif -#endif - - -#endif /* MQTTLog_h */ diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTMessage.h b/frameworks/MQTTFramework.framework/Headers/MQTTMessage.h deleted file mode 100755 index 7f275ac..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTMessage.h +++ /dev/null @@ -1,131 +0,0 @@ -// -// MQTTMessage.h -// MQTTClient.framework -// -// Copyright © 2013-2016, Christoph Krey -// -// based on -// -// Copyright (c) 2011, 2013, 2lemetry LLC -// -// All rights reserved. This program and the accompanying materials -// are made available under the terms of the Eclipse Public License v1.0 -// which accompanies this distribution, and is available at -// http://www.eclipse.org/legal/epl-v10.html -// -// Contributors: -// Kyle Roche - initial API and implementation and/or initial documentation -// - -#import <Foundation/Foundation.h> -/** - Enumeration of MQTT Quality of Service levels - */ -typedef NS_ENUM(UInt8, MQTTQosLevel) { - MQTTQosLevelAtMostOnce = 0, - MQTTQosLevelAtLeastOnce = 1, - MQTTQosLevelExactlyOnce = 2 -}; - -/** - Enumeration of MQTT protocol version - */ -typedef NS_ENUM(UInt8, MQTTProtocolVersion) { - MQTTProtocolVersion31 = 3, - MQTTProtocolVersion311 = 4 -}; - -typedef NS_ENUM(UInt8, MQTTCommandType) { - MQTT_None = 0, - MQTTConnect = 1, - MQTTConnack = 2, - MQTTPublish = 3, - MQTTPuback = 4, - MQTTPubrec = 5, - MQTTPubrel = 6, - MQTTPubcomp = 7, - MQTTSubscribe = 8, - MQTTSuback = 9, - MQTTUnsubscribe = 10, - MQTTUnsuback = 11, - MQTTPingreq = 12, - MQTTPingresp = 13, - MQTTDisconnect = 14 -}; - -@interface MQTTMessage : NSObject -@property (nonatomic) MQTTCommandType type; -@property (nonatomic) MQTTQosLevel qos; -@property (nonatomic) BOOL retainFlag; -@property (nonatomic) BOOL dupFlag; -@property (nonatomic) UInt16 mid; -@property (strong, nonatomic) NSData * data; - -/** - Enumeration of MQTT Connect return codes - */ - -typedef NS_ENUM(NSUInteger, MQTTConnectReturnCode) { - MQTTConnectAccepted = 0, - MQTTConnectRefusedUnacceptableProtocolVersion, - MQTTConnectRefusedIdentiferRejected, - MQTTConnectRefusedServerUnavailable, - MQTTConnectRefusedBadUserNameOrPassword, - MQTTConnectRefusedNotAuthorized -}; - -// factory methods -+ (MQTTMessage *)connectMessageWithClientId:(NSString*)clientId - userName:(NSString*)userName - password:(NSString*)password - keepAlive:(NSInteger)keeplive - cleanSession:(BOOL)cleanSessionFlag - will:(BOOL)will - willTopic:(NSString*)willTopic - willMsg:(NSData*)willData - willQoS:(MQTTQosLevel)willQoS - willRetain:(BOOL)willRetainFlag - protocolLevel:(UInt8)protocolLevel; - -+ (MQTTMessage *)pingreqMessage; -+ (MQTTMessage *)disconnectMessage; -+ (MQTTMessage *)subscribeMessageWithMessageId:(UInt16)msgId - topics:(NSDictionary *)topics; -+ (MQTTMessage *)unsubscribeMessageWithMessageId:(UInt16)msgId - topics:(NSArray *)topics; -+ (MQTTMessage *)publishMessageWithData:(NSData*)payload - onTopic:(NSString*)topic - qos:(MQTTQosLevel)qosLevel - msgId:(UInt16)msgId - retainFlag:(BOOL)retain - dupFlag:(BOOL)dup; -+ (MQTTMessage *)pubackMessageWithMessageId:(UInt16)msgId; -+ (MQTTMessage *)pubrecMessageWithMessageId:(UInt16)msgId; -+ (MQTTMessage *)pubrelMessageWithMessageId:(UInt16)msgId; -+ (MQTTMessage *)pubcompMessageWithMessageId:(UInt16)msgId; -+ (MQTTMessage *)messageFromData:(NSData *)data; - -// instance methods -- (instancetype)initWithType:(MQTTCommandType)type; -- (instancetype)initWithType:(MQTTCommandType)type - data:(NSData *)data; -- (instancetype)initWithType:(MQTTCommandType)type - qos:(MQTTQosLevel)qos - data:(NSData *)data; -- (instancetype)initWithType:(MQTTCommandType)type - qos:(MQTTQosLevel)qos - retainFlag:(BOOL)retainFlag - dupFlag:(BOOL)dupFlag - data:(NSData *)data; - -- (NSData *)wireFormat; - - -@end - -@interface NSMutableData (MQTT) -- (void)appendByte:(UInt8)byte; -- (void)appendUInt16BigEndian:(UInt16)val; -- (void)appendMQTTString:(NSString*)s; - -@end diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTPersistence.h b/frameworks/MQTTFramework.framework/Headers/MQTTPersistence.h deleted file mode 100755 index c88e0a5..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTPersistence.h +++ /dev/null @@ -1,124 +0,0 @@ -// -// MQTTPersistence.h -// MQTTClient -// -// Created by Christoph Krey on 22.03.15. -// Copyright © 2015-2016 Christoph Krey. All rights reserved. -// - -#import <Foundation/Foundation.h> -#import "MQTTMessage.h" - -static BOOL const MQTT_PERSISTENT = NO; -static NSInteger const MQTT_MAX_SIZE = 64 * 1024 * 1024; -static NSInteger const MQTT_MAX_WINDOW_SIZE = 16; -static NSInteger const MQTT_MAX_MESSAGES = 1024; - -/** MQTTFlow is an abstraction of the entity to be stored for persistence */ - -@protocol MQTTFlow -/** The clientID of the flow element */ -@property (strong, nonatomic) NSString *clientId; - -/** The flag indicating incoming or outgoing flow element */ -@property (strong, nonatomic) NSNumber *incomingFlag; - -/** The flag indicating if the flow element is retained*/ -@property (strong, nonatomic) NSNumber *retainedFlag; - -/** The MQTTCommandType of the flow element, might be MQTT_None for offline queueing */ -@property (strong, nonatomic) NSNumber *commandType; - -/** The MQTTQosLevel of the flow element */ -@property (strong, nonatomic) NSNumber *qosLevel; - -/** The messageId of the flow element */ -@property (strong, nonatomic) NSNumber *messageId; - -/** The topic of the flow element */ -@property (strong, nonatomic) NSString *topic; - -/** The data of the flow element */ -@property (strong, nonatomic) NSData *data; - -/** The deadline of the flow elelment before (re)trying transmission */ -@property (strong, nonatomic) NSDate *deadline; - -@end - -/** The MQTTPersistence protocol is an abstraction of persistence classes for MQTTSession */ - -@protocol MQTTPersistence - -/** The maximum Window Size for outgoing inflight messages per clientID. Defaults to 16 */ -@property (nonatomic) NSUInteger maxWindowSize; - -/** The maximum number of messages kept per clientID and direction. Defaults to 1024 */ -@property (nonatomic) NSUInteger maxMessages; - -/** Indicates if the persistence implementation should make the information permannent. Defaults to NO */ -@property (nonatomic) BOOL persistent; - -/** The maximum size of the storage used for persistence in total in bytes. Defaults to 1024*1024 bytes */ -@property (nonatomic) NSUInteger maxSize; - -/** The current Window Size for outgoing inflight messages per clientID. - * @param clientId - * @return the current size of the outgoing inflight window - */ -- (NSUInteger)windowSize:(NSString *)clientId; - -/** Stores one new message - * @param clientId - * @param topic - * @param data - * @param retainFlag - * @param qos - * @param msgId - * @param incomingFlag - * @param commandType - * @param deadline - * @return the created MQTTFlow element or nil if the maxWindowSize has been exceeded - */ -- (id<MQTTFlow>)storeMessageForClientId:(NSString *)clientId - topic:(NSString *)topic - data:(NSData *)data - retainFlag:(BOOL)retainFlag - qos:(MQTTQosLevel)qos - msgId:(UInt16)msgId - incomingFlag:(BOOL)incomingFlag - commandType:(UInt8)commandType - deadline:(NSDate *)deadline; - -/** Deletes an MQTTFlow element - * @param flow - */ -- (void)deleteFlow:(id<MQTTFlow>)flow; - -/** Deletes all MQTTFlow elements of a clientId - * @param clientId - */ -- (void)deleteAllFlowsForClientId:(NSString *)clientId; - -/** Retrieves all MQTTFlow elements of a clientId and direction - * @param clientId - * @param incomingFlag - * @return an NSArray of the retrieved MQTTFlow elements - */ -- (NSArray *)allFlowsforClientId:(NSString *)clientId - incomingFlag:(BOOL)incomingFlag; - -/** Retrieves an MQTTFlow element - * @param clientId - * @param incomingFlag - * @param messageId - * @return the retrieved MQTTFlow element or nil if the elememt was not found - */ -- (id<MQTTFlow>)flowforClientId:(NSString *)clientId - incomingFlag:(BOOL)incomingFlag - messageId:(UInt16)messageId; - -/** sync is called to allow the MQTTPersistence implemetation to save data permanently */ -- (void)sync; - -@end diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTSSLSecurityPolicy.h b/frameworks/MQTTFramework.framework/Headers/MQTTSSLSecurityPolicy.h deleted file mode 100755 index a12475c..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTSSLSecurityPolicy.h +++ /dev/null @@ -1,158 +0,0 @@ -// -// MQTTSSLSecurityPolicy.h -// MQTTClient.framework -// -// Created by @bobwenx on 15/6/1. -// -// based on -// -// Copyright (c) 2011–2015 AFNetwork (http://alamofire.org/) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#import <Foundation/Foundation.h> -#import <Security/Security.h> - -/** -## SSL Pinning Modes - -The following constants are provided by `MQTTSSLPinningModeNone` as possible SSL pinning modes. - -enum { -MQTTSSLPinningModeNone, -MQTTSSLPinningModePublicKey, -MQTTSSLPinningModeCertificate, -} - -`MQTTSSLPinningModeNone` -Do not used pinned certificates to validate servers. - -`MQTTSSLPinningModePublicKey` -Validate host certificates against public keys of pinned certificates. - -`MQTTSSLPinningModeCertificate` -Validate host certificates against pinned certificates. -*/ -typedef NS_ENUM(NSUInteger, MQTTSSLPinningMode) { - // Do not used pinned certificates to validate servers. - MQTTSSLPinningModeNone, - // Validate host certificates against public keys of pinned certificates. - MQTTSSLPinningModePublicKey, - // Validate host certificates against pinned certificates. - MQTTSSLPinningModeCertificate, -}; - -/** -`MQTTSSLSecurityPolicy` evaluates server trust against pinned X.509 certificates and public keys over secure connections. - -If your app using security model which require pinning SSL certificates to helps prevent man-in-the-middle attacks -and other vulnerabilities. you need to set securityPolicy to properly value(see MQTTSSLSecurityPolicy.h for more detail). - -NOTE: about self-signed server certificates: -if your server using Self-signed certificates to establish SSL/TLS connection, you need to set property: -MQTTSSLSecurityPolicy.allowInvalidCertificates=YES. - -If SSL is enabled, by default it only evaluate server's certificates using CA infrastructure, and for most case, this type of check is enough. -However, if your app using security model which require pinning SSL certificates to helps prevent man-in-the-middle attacks -and other vulnerabilities. you may need to set securityPolicy to properly value(see MQTTSSLSecurityPolicy.h for more detail). - -NOTE: about self-signed server certificates: -In CA infrastructure, you may establish a SSL/TLS connection with server which using self-signed certificates -by install the certificates into OS keychain(either programmatically or manually). however, this method has some disadvantages: -1. every socket you app created will trust certificates you added. -2. if user choice to remove certificates from keychain, you app need to handling certificates re-adding. - -If you only want to verify the cert for the socket you are creating and for no other sockets in your app, you need to use -MQTTSSLSecurityPolicy. -And if you use self-signed server certificates, your need to set property: MQTTSSLSecurityPolicy.allowInvalidCertificates=YES - -Adding pinned SSL certificates to your app helps prevent man-in-the-middle attacks and other vulnerabilities. -Applications dealing with sensitive customer data or financial information are strongly encouraged to route all communication -over an SSL/TLS connection with SSL pinning configured and enabled. -*/ -@interface MQTTSSLSecurityPolicy : NSObject -/** -The criteria by which server trust should be evaluated against the pinned SSL certificates. Defaults to `MQTTSSLPinningMode`. -*/ -@property (readonly, nonatomic, assign) MQTTSSLPinningMode SSLPinningMode; - -/** -Whether to evaluate an entire SSL certificate chain, or just the leaf certificate. Defaults to `YES`. -*/ -@property (nonatomic, assign) BOOL validatesCertificateChain; - -/** -The certificates used to evaluate server trust according to the SSL pinning mode. By default, this property is set to any (`.cer`) certificates included in the app bundle. -Note: Array item type: NSData - Bytes of X.509 certificate file in der format. -Note that if you create an array with duplicate certificates, the duplicate certificates will be removed. -*/ -@property (nonatomic, strong) NSArray *pinnedCertificates; - -/** -Whether or not to trust servers with an invalid or expired SSL certificates. Defaults to `NO`. -Note: If your server-certificates are self signed, your should set this property to 'YES'. -*/ -@property (nonatomic, assign) BOOL allowInvalidCertificates; - -/** -Whether or not to validate the domain name in the certificate's CN field. Defaults to `YES`. -*/ -@property (nonatomic, assign) BOOL validatesDomainName; - -///----------------------------------------- -/// @name Getting Specific Security Policies -///----------------------------------------- - -/** -Returns the shared default security policy, which does not allow invalid certificates, validates domain name, and does not validate against pinned certificates or public keys. - -@return The default security policy. -*/ -+ (instancetype)defaultPolicy; - -///--------------------- -/// @name Initialization -///--------------------- - -/** -Creates and returns a security policy with the specified pinning mode. - -@param pinningMode The SSL pinning mode. - -@return A new security policy. -*/ -+ (instancetype)policyWithPinningMode:(MQTTSSLPinningMode)pinningMode; - -///------------------------------ -/// @name Evaluating Server Trust -///------------------------------ - -/** -Whether or not the specified server trust should be accepted, based on the security policy. - -This method should be used when responding to an authentication challenge from a server. - -@param serverTrust The X.509 certificate trust of the server. -@param domain The domain of serverTrust. If `nil`, the domain will not be validated. - -@return Whether or not to trust the server. -*/ -- (BOOL)evaluateServerTrust:(SecTrustRef)serverTrust - forDomain:(NSString *)domain; -@end \ No newline at end of file diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTSSLSecurityPolicyDecoder.h b/frameworks/MQTTFramework.framework/Headers/MQTTSSLSecurityPolicyDecoder.h deleted file mode 100755 index bf78cb0..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTSSLSecurityPolicyDecoder.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// MQTTSSLSecurityPolicyDecoder.h -// MQTTClient.framework -// -// Copyright © 2013-2016, Christoph Krey -// - -#import <Foundation/Foundation.h> -#import "MQTTSSLSecurityPolicy.h" -#import "MQTTCFSocketDecoder.h" - -@interface MQTTSSLSecurityPolicyDecoder : MQTTCFSocketDecoder -@property(strong, nonatomic) MQTTSSLSecurityPolicy *securityPolicy; -@property(strong, nonatomic) NSString *securityDomain; - -@end - - diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTSSLSecurityPolicyEncoder.h b/frameworks/MQTTFramework.framework/Headers/MQTTSSLSecurityPolicyEncoder.h deleted file mode 100755 index 26c9581..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTSSLSecurityPolicyEncoder.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// MQTTSSLSecurityPolicyEncoder.h -// MQTTClient.framework -// -// Copyright © 2013-2016, Christoph Krey -// - -#import <Foundation/Foundation.h> -#import "MQTTSSLSecurityPolicy.h" -#import "MQTTCFSocketEncoder.h" - -@interface MQTTSSLSecurityPolicyEncoder : MQTTCFSocketEncoder -@property(strong, nonatomic) MQTTSSLSecurityPolicy *securityPolicy; -@property(strong, nonatomic) NSString *securityDomain; - -@end - diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTSSLSecurityPolicyTransport.h b/frameworks/MQTTFramework.framework/Headers/MQTTSSLSecurityPolicyTransport.h deleted file mode 100755 index 6818e5e..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTSSLSecurityPolicyTransport.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// MQTTSSLSecurityPolicyTransport.h -// MQTTClient -// -// Created by Christoph Krey on 06.12.15. -// Copyright © 2015-2016 Christoph Krey. All rights reserved. -// - -#import "MQTTTransport.h" -#import "MQTTSSLSecurityPolicy.h" -#import "MQTTCFSocketTransport.h" - -/** MQTTSSLSecurityPolicyTransport - * implements an extension of the MQTTCFSocketTransport by replacing the OS's certificate chain evaluation - */ -@interface MQTTSSLSecurityPolicyTransport : MQTTCFSocketTransport - -/** - * The security policy used to evaluate server trust for secure connections. - * - * if your app using security model which require pinning SSL certificates to helps prevent man-in-the-middle attacks - * and other vulnerabilities. you need to set securityPolicy to properly value(see MQTTSSLSecurityPolicy.h for more detail). - * - * NOTE: about self-signed server certificates: - * if your server using Self-signed certificates to establish SSL/TLS connection, you need to set property: - * MQTTSSLSecurityPolicy.allowInvalidCertificates=YES. - */ -@property (strong, nonatomic) MQTTSSLSecurityPolicy *securityPolicy; - -@end diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTSession.h b/frameworks/MQTTFramework.framework/Headers/MQTTSession.h deleted file mode 100755 index 8cdb869..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTSession.h +++ /dev/null @@ -1,778 +0,0 @@ -// -// MQTTSession.h -// MQTTClient.framework -// - -/** - Using MQTT in your Objective-C application - - @author Christoph Krey krey.christoph@gmail.com - @copyright Copyright © 2013-2016, Christoph Krey - - based on Copyright (c) 2011, 2013, 2lemetry LLC - All rights reserved. This program and the accompanying materials - are made available under the terms of the Eclipse Public License v1.0 - which accompanies this distribution, and is available at - http://www.eclipse.org/legal/epl-v10.html - - @see http://mqtt.org - */ - - -#import <Foundation/Foundation.h> - -#import "MQTTMessage.h" -#import "MQTTPersistence.h" -#import "MQTTTransport.h" - -@class MQTTSession; -@class MQTTSSLSecurityPolicy; - -/** - Enumeration of MQTTSession states - */ -typedef NS_ENUM(NSInteger, MQTTSessionStatus) { - MQTTSessionStatusCreated, - MQTTSessionStatusConnecting, - MQTTSessionStatusConnected, - MQTTSessionStatusDisconnecting, - MQTTSessionStatusClosed, - MQTTSessionStatusError -}; - -/** - Enumeration of MQTTSession events - */ -typedef NS_ENUM(NSInteger, MQTTSessionEvent) { - MQTTSessionEventConnected, - MQTTSessionEventConnectionRefused, - MQTTSessionEventConnectionClosed, - MQTTSessionEventConnectionError, - MQTTSessionEventProtocolError, - MQTTSessionEventConnectionClosedByBroker -}; - -/** - The error domain used for all errors created by MQTTSession - */ -extern NSString * const MQTTSessionErrorDomain; - -/** - The error codes used for all errors created by MQTTSession - */ -typedef NS_ENUM(NSInteger, MQTTSessionError) { - MQTTSessionErrorConnectionRefused = -8, // Sent if the server closes the connection without sending an appropriate error CONNACK - MQTTSessionErrorIllegalMessageReceived = -7, - MQTTSessionErrorDroppingOutgoingMessage = -6, // For some reason the value is the same as for MQTTSessionErrorNoResponse - MQTTSessionErrorNoResponse = -6, // For some reason the value is the same as for MQTTSessionErrorDroppingOutgoingMessage - MQTTSessionErrorEncoderNotReady = -5, - MQTTSessionErrorInvalidConnackReceived = -2, // Sent if the message received from server was an invalid connack message - MQTTSessionErrorNoConnackReceived = -1, // Sent if first message received from server was no connack message - MQTTSessionErrorConnackUnacceptableProtocolVersion = 1, // Value as defined by MQTT Protocol - MQTTSessionErrorConnackIdentifierRejected = 2, // Value as defined by MQTT Protocol - MQTTSessionErrorConnackServeUnavailable = 3, // Value as defined by MQTT Protocol - MQTTSessionErrorConnackBadUsernameOrPassword = 4, // Value as defined by MQTT Protocol - MQTTSessionErrorConnackNotAuthorized = 5, // Value as defined by MQTT Protocol - MQTTSessionErrorConnackReserved = 6, // Should be value 6-255, as defined by MQTT Protocol -}; - -/** Session delegate gives your application control over the MQTTSession - @note all callback methods are optional - */ - -@protocol MQTTSessionDelegate <NSObject> - -@optional - -/** gets called when a new message was received - @param session the MQTTSession reporting the new message - @param data the data received, might be zero length - @param topic the topic the data was published to - @param qos the qos of the message - @param retained indicates if the data retransmitted from server storage - @param mid the Message Identifier of the message if qos = 1 or 2, zero otherwise - */ -- (void)newMessage:(MQTTSession *)session - data:(NSData *)data - onTopic:(NSString *)topic - qos:(MQTTQosLevel)qos - retained:(BOOL)retained - mid:(unsigned int)mid; - -/** gets called when a new message was received - @param session the MQTTSession reporting the new message - @param data the data received, might be zero length - @param topic the topic the data was published to - @param qos the qos of the message - @param retained indicates if the data retransmitted from server storage - @param mid the Message Identifier of the message if qos = 1 or 2, zero otherwise - @return true if the message was or will be processed, false if the message shall not be ack-ed - */ -- (BOOL)newMessageWithFeedback:(MQTTSession *)session - data:(NSData *)data - onTopic:(NSString *)topic - qos:(MQTTQosLevel)qos - retained:(BOOL)retained - mid:(unsigned int)mid; - -/** for mqttio-OBJC backward compatibility - @param session see newMessage for description - @param data see newMessage for description - @param topic see newMessage for description - */ -- (void)session:(MQTTSession*)session newMessage:(NSData*)data onTopic:(NSString*)topic; - -/** gets called when a connection is established, closed or a problem occurred - @param session the MQTTSession reporting the event - @param eventCode the code of the event - @param error an optional additional error object with additional information - */ -- (void)handleEvent:(MQTTSession *)session event:(MQTTSessionEvent)eventCode error:(NSError *)error; - -/** for mqttio-OBJC backward compatibility - @param session the MQTTSession reporting the event - @param eventCode the code of the event - */ -- (void)session:(MQTTSession*)session handleEvent:(MQTTSessionEvent)eventCode; - -/** gets called when a connection has been successfully established - @param session the MQTTSession reporting the connect - - */ -- (void)connected:(MQTTSession *)session; - -/** gets called when a connection has been successfully established - @param session the MQTTSession reporting the connect - @param sessionPresent represents the Session Present flag sent by the broker - - */ -- (void)connected:(MQTTSession *)session sessionPresent:(BOOL)sessionPresent; - -/** gets called when a connection has been refused - @param session the MQTTSession reporting the refusal - @param error an optional additional error object with additional information - */ -- (void)connectionRefused:(MQTTSession *)session error:(NSError *)error; - -/** gets called when a connection has been closed - @param session the MQTTSession reporting the close - - */ -- (void)connectionClosed:(MQTTSession *)session; - -/** gets called when a connection error happened - @param session the MQTTSession reporting the connect error - @param error an optional additional error object with additional information - */ -- (void)connectionError:(MQTTSession *)session error:(NSError *)error; - -/** gets called when an MQTT protocol error happened - @param session the MQTTSession reporting the protocol error - @param error an optional additional error object with additional information - */ -- (void)protocolError:(MQTTSession *)session error:(NSError *)error; - -/** gets called when a published message was actually delivered - @param session the MQTTSession reporting the delivery - @param msgID the Message Identifier of the delivered message - @note this method is called after a publish with qos 1 or 2 only - */ -- (void)messageDelivered:(MQTTSession *)session msgID:(UInt16)msgID; - -/** gets called when a subscription is acknowledged by the MQTT broker - @param session the MQTTSession reporting the acknowledge - @param msgID the Message Identifier of the SUBSCRIBE message - @param qoss an array containing the granted QoS(s) related to the SUBSCRIBE message - (see subscribeTopic, subscribeTopics) - */ -- (void)subAckReceived:(MQTTSession *)session msgID:(UInt16)msgID grantedQoss:(NSArray<NSNumber *> *)qoss; - -/** gets called when an unsubscribe is acknowledged by the MQTT broker - @param session the MQTTSession reporting the acknowledge - @param msgID the Message Identifier of the UNSUBSCRIBE message - */ -- (void)unsubAckReceived:(MQTTSession *)session msgID:(UInt16)msgID; - -/** gets called when a command is sent to the MQTT broker - use this for low level monitoring of the MQTT connection - @param session the MQTTSession reporting the sent command - @param type the MQTT command type - @param qos the Quality of Service of the command - @param retained the retained status of the command - @param duped the duplication status of the command - @param mid the Message Identifier of the command - @param data the payload data of the command if any, might be zero length - */ -- (void)sending:(MQTTSession *)session type:(MQTTCommandType)type qos:(MQTTQosLevel)qos retained:(BOOL)retained duped:(BOOL)duped mid:(UInt16)mid data:(NSData *)data; - -/** gets called when a command is received from the MQTT broker - use this for low level monitoring of the MQTT connection - @param session the MQTTSession reporting the received command - @param type the MQTT command type - @param qos the Quality of Service of the command - @param retained the retained status of the command - @param duped the duplication status of the command - @param mid the Message Identifier of the command - @param data the payload data of the command if any, might be zero length - */ -- (void)received:(MQTTSession *)session type:(MQTTCommandType)type qos:(MQTTQosLevel)qos retained:(BOOL)retained duped:(BOOL)duped mid:(UInt16)mid data:(NSData *)data; - -/** gets called when a command is received from the MQTT broker - use this for low level control of the MQTT connection - @param session the MQTTSession reporting the received command - @param type the MQTT command type - @param qos the Quality of Service of the command - @param retained the retained status of the command - @param duped the duplication status of the command - @param mid the Message Identifier of the command - @param data the payload data of the command if any, might be zero length - @return true if the sessionmanager should ignore the received message - */ -- (BOOL)ignoreReceived:(MQTTSession *)session type:(MQTTCommandType)type qos:(MQTTQosLevel)qos retained:(BOOL)retained duped:(BOOL)duped mid:(UInt16)mid data:(NSData *)data; - -/** gets called when the content of MQTTClients internal buffers change - use for monitoring the completion of transmitted and received messages - @param session the MQTTSession reporting the change - @param queued for backward compatibility only: MQTTClient does not queue messages anymore except during QoS protocol - @param flowingIn the number of incoming messages not acknowledged by the MQTTClient yet - @param flowingOut the number of outgoing messages not yet acknowledged by the MQTT broker - */ -- (void)buffered:(MQTTSession *)session - queued:(NSUInteger)queued - flowingIn:(NSUInteger)flowingIn - flowingOut:(NSUInteger)flowingOut; - -/** gets called when the content of MQTTClients internal buffers change - use for monitoring the completion of transmitted and received messages - @param session the MQTTSession reporting the change - @param flowingIn the number of incoming messages not acknowledged by the MQTTClient yet - @param flowingOut the number of outgoing messages not yet acknowledged by the MQTT broker - */ -- (void)buffered:(MQTTSession *)session - flowingIn:(NSUInteger)flowingIn - flowingOut:(NSUInteger)flowingOut; - -@end - -typedef void (^MQTTConnectHandler)(NSError *error); -typedef void (^MQTTDisconnectHandler)(NSError *error); -typedef void (^MQTTSubscribeHandler)(NSError *error, NSArray<NSNumber *> *gQoss); -typedef void (^MQTTUnsubscribeHandler)(NSError *error); -typedef void (^MQTTPublishHandler)(NSError *error); - -/** Session implements the MQTT protocol for your application - * - */ - -@interface MQTTSession : NSObject - -/** set this member variable to receive delegate messages - @code - #import "MQTTClient.h" - - @interface MyClass : NSObject <MQTTSessionDelegate> - ... - @end - - ... - MQTTSession *session = [[MQTTSession alloc] init]; - session.delegate = self; - ... - - (void)handleEvent:(MQTTSession *)session - event:(MQTTSessionEvent)eventCode - error:(NSError *)error { - ... - } - - (void)newMessage:(MQTTSession *)session - data:(NSData *)data - onTopic:(NSString *)topic - qos:(MQTTQosLevel)qos - retained:(BOOL)retained - mid:(unsigned int)mid { - ... - } - @endcode - - */ -@property (weak, nonatomic) id<MQTTSessionDelegate> delegate; - -/** Control MQTT persistence by setting the properties of persistence before connecting to an MQTT broker. - The settings are specific to a clientId. - - persistence.persistent = YES or NO (default) to establish file or in memory persistence. IMPORTANT: set immediately after creating the MQTTSession before calling any other method. Otherwise the default value (NO) will be used - for this session. - - persistence.maxWindowSize (a positive number, default is 16) to control the number of messages sent before waiting for acknowledgement in Qos 1 or 2. Additional messages are - stored and transmitted later. - - persistence.maxSize (a positive number of bytes, default is 64 MB) to limit the size of the persistence file. Messages published after the limit is reached are dropped. - - persistence.maxMessages (a positive number, default is 1024) to limit the number of messages stored. Additional messages published are dropped. - - Messages are deleted after they have been acknowledged. -*/ -@property (strong, nonatomic) id<MQTTPersistence> persistence; - -/** block called once when connection is established - */ -@property (copy, nonatomic) MQTTConnectHandler connectHandler; - -/** block called when connection is established - */ -@property (strong) void (^connectionHandler)(MQTTSessionEvent event); - -/** block called when message is received - */ -@property (strong) void (^messageHandler)(NSData* message, NSString* topic); - -/** Session status - */ -@property (nonatomic, readonly) MQTTSessionStatus status; - -/** Indicates if the broker found a persistent session when connecting with cleanSession:FALSE - */ -@property (nonatomic, readonly) BOOL sessionPresent; - -/** see initWithClientId for description - * @param clientId The Client Identifier identifies the Client to the Server. If nil, a random clientId is generated. - - */ -@property (strong, nonatomic) NSString *clientId; - -/** see userName an NSString object containing the user's name (or ID) for authentication. May be nil. */ -@property (strong, nonatomic) NSString *userName; - -/** see password an NSString object containing the user's password. If userName is nil, password must be nil as well.*/ -@property (strong, nonatomic) NSString *password; - -/** see keepAliveInterval The Keep Alive is a time interval measured in seconds. - * The MQTTClient ensures that the interval between Control Packets being sent does not exceed - * the Keep Alive value. In the absence of sending any other Control Packets, the Client sends a PINGREQ Packet. - */ -@property (nonatomic) UInt16 keepAliveInterval; - -/** leanSessionFlag specifies if the server should discard previous session information. */ -@property (nonatomic) BOOL cleanSessionFlag; - -/** willFlag If the Will Flag is set to YES this indicates that - * a Will Message MUST be published by the Server when the Server detects - * that the Client is disconnected for any reason other than the Client flowing a DISCONNECT Packet. - */ -@property (nonatomic) BOOL willFlag; - -/** willTopic If the Will Flag is set to YES, the Will Topic is a string, nil otherwise. */ -@property (strong, nonatomic) NSString *willTopic; - -/** willMsg If the Will Flag is set to YES the Will Message must be specified, nil otherwise. */ -@property (strong, nonatomic) NSData *willMsg; - -/** willQoS specifies the QoS level to be used when publishing the Will Message. - * If the Will Flag is set to NO, then the Will QoS MUST be set to 0. - * If the Will Flag is set to YES, the Will QoS MUST be a valid MQTTQosLevel. - */ -@property (nonatomic) MQTTQosLevel willQoS; - -/** willRetainFlag indicates if the server should publish the Will Messages with retainFlag. - * If the Will Flag is set to NO, then the Will Retain Flag MUST be set to NO . - * If the Will Flag is set to YES: If Will Retain is set to NO, the Serve - * MUST publish the Will Message as a non-retained publication [MQTT-3.1.2-14]. - * If Will Retain is set to YES, the Server MUST publish the Will Message as a retained publication [MQTT-3.1.2-15]. - */ -@property (nonatomic) BOOL willRetainFlag; - -/** protocolLevel specifies the protocol to be used */ -@property (nonatomic) MQTTProtocolVersion protocolLevel; - -/** runLoop The runLoop where the streams are scheduled. If nil, defaults to [NSRunLoop currentRunLoop]. */ -@property (strong, nonatomic) NSRunLoop *runLoop; - -/** runLoopMode The runLoopMode where the streams are scheduled. If nil, defaults to NSRunLoopCommonModes. */ -@property (strong, nonatomic) NSString *runLoopMode; - - -/** The security policy used to evaluate server trust for secure connections. - * (see MQTTSSLSecurityPolicy.h for more detail). - */ -@property (strong, nonatomic) MQTTSSLSecurityPolicy *securityPolicy; - -/** for mqttio-OBJC backward compatibility - the connect message used is stored here - */ -@property (strong, nonatomic) MQTTMessage *connectMessage; - -/** the transport provider for MQTTClient - * - * assign an in instance of a class implementing the MQTTTransport protocol e.g. - * MQTTCFSocketTransport before connecting. - */ -@property (strong, nonatomic) id <MQTTTransport> transport; - -/** certificates an NSArray holding client certificates or nil */ -@property (strong, nonatomic) NSArray *certificates; - -/** connect to the given host through the given transport with the given - * MQTT session parameters asynchronously - * - * @exception NSInternalInconsistencyException if the parameters are invalid - * - */ - - -- (void)connect; - -/** connects to the specified MQTT server - - @param connectHandler identifies a block which is executed on successfull or unsuccessfull connect. Might be nil - error is nil in the case of a successful connect - sessionPresent indicates in MQTT 3.1.1 if persistent session data was present at the server - - @return nothing and returns immediately. To check the connect results, register as an MQTTSessionDelegate and - - watch for events - - watch for connect or connectionRefused messages - - watch for error messages - or use the connectHandler block - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - ... - [session connectWithConnectHandler:^(NSError *error, BOOL sessionPresent) { - if (error) { - NSLog(@"Error Connect %@", error.localizedDescription); - } else { - NSLog(@"Connected sessionPresent:%d", sessionPresent); - } - }]; - @endcode - - */ - -- (void)connectWithConnectHandler:(MQTTConnectHandler)connectHandler; - - -/** disconnect gracefully - * - */ -- (void)disconnect; - -/** initialises the MQTT session with default values - @return the initialised MQTTSession object - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - @endcode - */ -- (MQTTSession *)init; - - - -/** subscribes to a topic at a specific QoS level - - @param topic see subscribeToTopic:atLevel:subscribeHandler: for description - @param qosLevel see subscribeToTopic:atLevel:subscribeHandler: for description - @return the Message Identifier of the SUBSCRIBE message. - - @note returns immediately. To check results, register as an MQTTSessionDelegate and watch for events. - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - ... - [session connect]; - ... - [session subscribeToTopic:@"example/#" atLevel:2]; - - @endcode - - */ - -- (UInt16)subscribeToTopic:(NSString *)topic atLevel:(MQTTQosLevel)qosLevel; -/** subscribes to a topic at a specific QoS level - - @param topic the Topic Filter to subscribe to. - - @param qosLevel specifies the QoS Level of the subscription. - qosLevel can be 0, 1, or 2. - @param subscribeHandler identifies a block which is executed on successfull or unsuccessfull subscription. - Might be nil. error is nil in the case of a successful subscription. In this case gQoss represents an - array of grantes Qos - - - @return the Message Identifier of the SUBSCRIBE message. - - @note returns immediately. To check results, register as an MQTTSessionDelegate and watch for events. - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - ... - [session connect]; - ... - [session subscribeToTopic:@"example/#" atLevel:2 subscribeHandler:^(NSError *error, NSArray<NSNumber *> *gQoss){ - if (error) { - NSLog(@"Subscription failed %@", error.localizedDescription); - } else { - NSLog(@"Subscription sucessfull! Granted Qos: %@", gQoss); - } - }]; - - @endcode - - */ - -- (UInt16)subscribeToTopic:(NSString *)topic atLevel:(MQTTQosLevel)qosLevel subscribeHandler:(MQTTSubscribeHandler)subscribeHandler; - -/** subscribes a number of topics - - @param topics an NSDictionary<NSString *, NSNumber *> containing the Topic Filters to subscribe to as keys and - the corresponding QoS as NSNumber values - - @return the Message Identifier of the SUBSCRIBE message. - - @note returns immediately. To check results, register as an MQTTSessionDelegate and watch for events. - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - ... - [session connect]; - - [session subscribeToTopics:@{ - @"example/#": @(0), - @"example/status": @(2), - @"other/#": @(1) - }]; - - @endcode - */ - - -- (UInt16)subscribeToTopics:(NSDictionary<NSString *, NSNumber *> *)topics; - -/** subscribes a number of topics - - @param topics an NSDictionary<NSString *, NSNumber *> containing the Topic Filters to subscribe to as keys and - the corresponding QoS as NSNumber values - @param subscribeHandler identifies a block which is executed on successfull or unsuccessfull subscription. - Might be nil. error is nil in the case of a successful subscription. In this case gQoss represents an - array of grantes Qos - - @return the Message Identifier of the SUBSCRIBE message. - - @note returns immediately. To check results, register as an MQTTSessionDelegate and watch for events. - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - ... - [session connect]; - - [session subscribeToTopics:@{ - @"example/#": @(0), - @"example/status": @(2), - @"other/#": @(1) - } subscribeHandler:^(NSError *error, NSArray<NSNumber *> *gQoss){ - if (error) { - NSLog(@"Subscription failed %@", error.localizedDescription); - } else { - NSLog(@"Subscription sucessfull! Granted Qos: %@", gQoss); - } - }]; - - - @endcode - */ - - -- (UInt16)subscribeToTopics:(NSDictionary<NSString *, NSNumber *> *)topics subscribeHandler:(MQTTSubscribeHandler)subscribeHandler; - -/** unsubscribes from a topic - - @param topic the Topic Filter to unsubscribe from. - - @return the Message Identifier of the UNSUBSCRIBE message. - - @note returns immediately. To check results, register as an MQTTSessionDelegate and watch for events. - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - ... - [session connect]; - - [session unsubscribeTopic:@"example/#"]; - - @endcode - */ - -- (UInt16)unsubscribeTopic:(NSString *)topic; - -/** unsubscribes from a topic - - @param topic the Topic Filter to unsubscribe from. - @param unsubscribeHandler identifies a block which is executed on successfull or unsuccessfull subscription. - Might be nil. error is nil in the case of a successful subscription. In this case gQoss represents an - array of grantes Qos - - @return the Message Identifier of the UNSUBSCRIBE message. - - @note returns immediately. - - */ - - -- (UInt16)unsubscribeTopic:(NSString *)topic unsubscribeHandler:(MQTTUnsubscribeHandler)unsubscribeHandler; - -/** unsubscribes from a number of topics - - @param topics an NSArray<NSString *> of topics to unsubscribe from - - @return the Message Identifier of the UNSUBSCRIBE message. - - @note returns immediately. To check results, register as an MQTTSessionDelegate and watch for events. - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - ... - [session connect]; - - [session unsubscribeTopics:@[ - @"example/#", - @"example/status", - @"other/#" - ]]; - - @endcode - - */ - -- (UInt16)unsubscribeTopics:(NSArray<NSString *> *)topics; - -/** unsubscribes from a number of topics - - @param topics an NSArray<NSString *> of topics to unsubscribe from - - @param unsubscribeHandler identifies a block which is executed on successfull or unsuccessfull subscription. - Might be nil. error is nil in the case of a successful subscription. In this case gQoss represents an - array of grantes Qos - - @return the Message Identifier of the UNSUBSCRIBE message. - - @note returns immediately. - - */ -- (UInt16)unsubscribeTopics:(NSArray<NSString *> *)topics unsubscribeHandler:(MQTTUnsubscribeHandler)unsubscribeHandler; - -/** publishes data on a given topic at a specified QoS level and retain flag - - @param data the data to be sent. length may range from 0 to 268,435,455 - 4 - _lengthof-topic_ bytes. Defaults to length 0. - @param topic the Topic to identify the data - @param retainFlag if YES, data is stored on the MQTT broker until overwritten by the next publish with retainFlag = YES - @param qos specifies the Quality of Service for the publish - qos can be 0, 1, or 2. - @return the Message Identifier of the PUBLISH message. Zero if qos 0. If qos 1 or 2, zero if message was dropped - - @note returns immediately. To check results, register as an MQTTSessionDelegate and watch for events. - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - ... - [session connect]; - - [session publishData:[@"Sample Data" dataUsingEncoding:NSUTF8StringEncoding] - topic:@"example/data" - retain:YES - qos:1]; - @endcode - - */ - -- (UInt16)publishData:(NSData *)data onTopic:(NSString *)topic retain:(BOOL)retainFlag qos:(MQTTQosLevel)qos; - -/** publishes data on a given topic at a specified QoS level and retain flag - - @param data the data to be sent. length may range from 0 to 268,435,455 - 4 - _lengthof-topic_ bytes. Defaults to length 0. - @param topic the Topic to identify the data - @param retainFlag if YES, data is stored on the MQTT broker until overwritten by the next publish with retainFlag = YES - @param qos specifies the Quality of Service for the publish - qos can be 0, 1, or 2. - - - @param publishHandler identifies a block which is executed on successfull or unsuccessfull connect. Might be nil - error is nil in the case of a successful connect - sessionPresent indicates in MQTT 3.1.1 if persistent session data was present at the server - - - @return the Message Identifier of the PUBLISH message. Zero if qos 0. If qos 1 or 2, zero if message was dropped - - @note returns immediately. To check results, register as an MQTTSessionDelegate and watch for events. - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - ... - [session connect]; - - [session publishData:[@"Sample Data" dataUsingEncoding:NSUTF8StringEncoding] - topic:@"example/data" - retain:YES - qos:1 - publishHandler:^(NSError *error){ - if (error) { - DDLogVerbose(@"error: %@ %@", error.localizedDescription, payload); - } else { - DDLogVerbose(@"delivered:%@", payload); - delivered++; - } - }]; - @endcode - - */ - -- (UInt16)publishData:(NSData *)data onTopic:(NSString *)topic retain:(BOOL)retainFlag qos:(MQTTQosLevel)qos publishHandler:(MQTTPublishHandler)publishHandler; - -/** closes an MQTTSession gracefully - - If the connection was successfully established before, a DISCONNECT is sent. - - @param disconnectHandler identifies a block which is executed on successfull or unsuccessfull disconnect. Might be nil. error is nil in the case of a successful disconnect - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - ... - [session connect]; - - ... - - [session closeWithDisconnectHandler^(NSError *error) { - if (error) { - NSLog(@"Error Disconnect %@", error.localizedDescription); - } - NSLog(@"Session closed"); - }]; - - - @endcode - - */ -- (void)closeWithDisconnectHandler:(MQTTDisconnectHandler)disconnectHandler; - -/** closes an MQTTSession gracefully - */ -- (void)close; - -@end diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTSessionLegacy.h b/frameworks/MQTTFramework.framework/Headers/MQTTSessionLegacy.h deleted file mode 100755 index cb5e7f7..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTSessionLegacy.h +++ /dev/null @@ -1,456 +0,0 @@ -// -// MQTTSessionLegacy.h -// MQTTClient.framework -// - -/** - Using MQTT in your Objective-C application - This file contains definitions for mqttio-OBJC backward compatibility - - @author Christoph Krey krey.christoph@gmail.com - @copyright Copyright © 2013-2016, Christoph Krey - - based on Copyright (c) 2011, 2013, 2lemetry LLC - All rights reserved. This program and the accompanying materials - are made available under the terms of the Eclipse Public License v1.0 - which accompanies this distribution, and is available at - http://www.eclipse.org/legal/epl-v10.html - - @see http://mqtt.org - */ - - -#import <Foundation/Foundation.h> -#import "MQTTSession.h" - -@interface MQTTSession(Create) - -/** convenience initializer - @param clientId see clientId for description. - @param userName see username for description. - @param password see password for description. - @param keepAliveInterval see keepAliveInterval for description. - @param cleanSessionFlag see cleanSessionFlag for description. - @param willFlag see willFlag for description. - @param willTopic see willTopic for description. - @param willMsg see willMsg for description. - @param willQoS see willQos for description. - @param willRetainFlag see willRetainFlg for description. - @param protocolLevel see protocolLevel for description. - @param runLoop see runLoop for description. - @param runLoopMode see runLoopMode for description. - @return the initialised MQTTSession object - @exception NSInternalInconsistencyException if the parameters are invalid - */ -- (MQTTSession *)initWithClientId:(NSString *)clientId - userName:(NSString *)userName - password:(NSString *)password - keepAlive:(UInt16)keepAliveInterval - cleanSession:(BOOL)cleanSessionFlag - will:(BOOL)willFlag - willTopic:(NSString *)willTopic - willMsg:(NSData *)willMsg - willQoS:(MQTTQosLevel)willQoS - willRetainFlag:(BOOL)willRetainFlag - protocolLevel:(UInt8)protocolLevel - runLoop:(NSRunLoop *)runLoop - forMode:(NSString *)runLoopMode; - -/** alternative initializer - @param clientId see initWithClientId for description. - @param userName see initWithClientId for description. - @param password see initWithClientId for description. - @param keepAliveInterval see initWithClientId for description. - @param cleanSessionFlag see initWithClientId for description. - @param willFlag see initWithClientId for description. - @param willTopic see initWithClientId for description. - @param willMsg see initWithClientId for description. - @param willQoS see initWithClientId for description. - @param willRetainFlag see initWithClientId for description. - @param protocolLevel see initWithClientId for description. - @param runLoop see initWithClientId for description. - @param runLoopMode see initWithClientId for description. - @param securityPolicy see initWithClientId for description. - @return the initialised MQTTSession object - @exception NSInternalInconsistencyException if the parameters are invalid - */ -- (MQTTSession *)initWithClientId:(NSString *)clientId - userName:(NSString *)userName - password:(NSString *)password - keepAlive:(UInt16)keepAliveInterval - cleanSession:(BOOL)cleanSessionFlag - will:(BOOL)willFlag - willTopic:(NSString *)willTopic - willMsg:(NSData *)willMsg - willQoS:(MQTTQosLevel)willQoS - willRetainFlag:(BOOL)willRetainFlag - protocolLevel:(UInt8)protocolLevel - runLoop:(NSRunLoop *)runLoop - forMode:(NSString *)runLoopMode - securityPolicy:(MQTTSSLSecurityPolicy *) securityPolicy; - -/** initialises the MQTT session - * - * this constructor can specifies SSL securityPolicy. the default value of securityPolicy is nil(which do nothing). - * - * if SSL is enabled, by default it only evaluate server's certificates using CA infrastructure, and for most case, this type of check is enough. - * However, if your app using security model which require pinning SSL certificates to helps prevent man-in-the-middle attacks - * and other vulnerabilities. you may need to set securityPolicy to properly value(see MQTTSSLSecurityPolicy.h for more detail). - * - * NOTE: about self-signed server certificates: - * In CA infrastructure, you may establish a SSL/TLS connection with server which using self-signed certificates - * by install the certificates into OS keychain(either programmatically or manually). however, this method has some disadvantages: - * 1. every socket you app created will trust certificates you added. - * 2. if user choice to remove certificates from keychain, you app need to handling certificates re-adding. - * - * If you only want to verify the cert for the socket you are creating and for no other sockets in your app, you need to use - * MQTTSSLSecurityPolicy. - * And if you use self-signed server certificates, your need to set property: MQTTSSLSecurityPolicy.allowInvalidCertificates=YES - * (see MQTTSSLSecurityPolicy.h for more detail). - * - * @param clientId The Client Identifier identifies the Client to the Server. If nil, a random clientId is generated. - * @param userName an NSString object containing the user's name (or ID) for authentication. May be nil. - * @param password an NSString object containing the user's password. If userName is nil, password must be nil as well. - * @param keepAliveInterval The Keep Alive is a time interval measured in seconds. The MQTTClient ensures that the interval between Control Packets being sent does not exceed the Keep Alive value. In the absence of sending any other Control Packets, the Client sends a PINGREQ Packet. - * @param cleanSessionFlag specifies if the server should discard previous session information. - * @param willFlag If the Will Flag is set to YES this indicates that a Will Message MUST be published by the Server when the Server detects that the Client is disconnected for any reason other than the Client flowing a DISCONNECT Packet. - * @param willTopic If the Will Flag is set to YES, the Will Topic is a string, nil otherwise. - * @param willMsg If the Will Flag is set to YES the Will Message must be specified, nil otherwise. - * @param willQoS specifies the QoS level to be used when publishing the Will Message. If the Will Flag is set to NO, then the Will QoS MUST be set to 0. If the Will Flag is set to YES, the value of Will QoS can be 0 (0x00), 1 (0x01), or 2 (0x02). - * @param willRetainFlag indicates if the server should publish the Will Messages with retainFlag. If the Will Flag is set to NO, then the Will Retain Flag MUST be set to NO . If the Will Flag is set to YES: If Will Retain is set to NO, the Server MUST publish the Will Message as a non-retained publication [MQTT-3.1.2-14]. If Will Retain is set to YES, the Server MUST publish the Will Message as a retained publication [MQTT-3.1.2-15]. - * @param protocolLevel specifies the protocol to be used. The value of the Protocol Level field for the version 3.1.1 of the protocol is 4. The value for the version 3.1 is 3. - * @param runLoop The runLoop where the streams are scheduled. If nil, defaults to [NSRunLoop currentRunLoop]. - * @param runLoopMode The runLoopMode where the streams are scheduled. If nil, defaults to NSRunLoopCommonModes. - * @param securityPolicy The security policy used to evaluate server trust for secure connections. - * @param certificates An identity certificate used to reply to a server requiring client certificates according to the description given for SSLSetCertificate(). You may build the certificates array yourself or use the sundry method clientCertFromP12 - * @return the initialised MQTTSession object - * @exception NSInternalInconsistencyException if the parameters are invalid - * - * @code - #import "MQTTClient.h" - - NSString* certificate = [[NSBundle bundleForClass:[MQTTSession class]] pathForResource:@"certificate" ofType:@"cer"]; - MQTTSSLSecurityPolicy *securityPolicy = [MQTTSSLSecurityPolicy policyWithPinningMode:MQTTSSLPinningModeCertificate]; - securityPolicy.pinnedCertificates = @[ [NSData dataWithContentsOfFile:certificate] ]; - securityPolicy.allowInvalidCertificates = YES; // if your certificate is self-signed(which didn't coupled with CA infrastructure) - - MQTTSession *session = [[MQTTSession alloc] - initWithClientId:@"example-1234" - userName:@"user" - password:@"secret" - keepAlive:60 - cleanSession:YES - will:YES - willTopic:@"example/status" - willMsg:[[@"Client off-line"] dataUsingEncoding:NSUTF8StringEncoding] - willQoS:2 - willRetainFlag:YES - protocolLevel:4 - runLoop:[NSRunLoop currentRunLoop] - forMode:NSRunLoopCommonModes - securityPolicy:securityPolicy - certificates:certificates]; - - [session connectToHost:@"example-1234" port:1883 usingSSL:YES]; - @endcode - */ -- (MQTTSession *)initWithClientId:(NSString *)clientId - userName:(NSString *)userName - password:(NSString *)password - keepAlive:(UInt16)keepAliveInterval - cleanSession:(BOOL)cleanSessionFlag - will:(BOOL)willFlag - willTopic:(NSString *)willTopic - willMsg:(NSData *)willMsg - willQoS:(MQTTQosLevel)willQoS - willRetainFlag:(BOOL)willRetainFlag - protocolLevel:(UInt8)protocolLevel - runLoop:(NSRunLoop *)runLoop - forMode:(NSString *)runLoopMode - securityPolicy:(MQTTSSLSecurityPolicy *) securityPolicy - certificates:(NSArray *)certificates; - -/** -* for mqttio-OBJC backward compatibility -* @param theClientId see initWithClientId for description. -* @return the initialised MQTTSession object -* All other parameters are set to defaults -*/ -- (id)initWithClientId:(NSString *)theClientId; - -/** for mqttio-OBJC backward compatibility - @param theClientId see initWithClientId for description. - @param theRunLoop see initWithClientId for description. - @param theRunLoopMode see initWithClientId for description. - @return the initialised MQTTSession object - All other parameters are set to defaults - */ -- (id)initWithClientId:(NSString*)theClientId - runLoop:(NSRunLoop*)theRunLoop - forMode:(NSString*)theRunLoopMode; - -/** for mqttio-OBJC backward compatibility - @param theClientId see initWithClientId for description. - @param theUsername see initWithClientId for description. - @param thePassword see initWithClientId for description. - @return the initialised MQTTSession object - All other parameters are set to defaults - */ -- (id)initWithClientId:(NSString*)theClientId - userName:(NSString*)theUsername - password:(NSString*)thePassword; - -/** for mqttio-OBJC backward compatibility - @param theClientId see initWithClientId for description. - @param theUserName see initWithClientId for description. - @param thePassword see initWithClientId for description. - @param theRunLoop see initWithClientId for description. - @param theRunLoopMode see initWithClientId for description. - @return the initialised MQTTSession object - All other parameters are set to defaults - */ -- (id)initWithClientId:(NSString*)theClientId - userName:(NSString*)theUserName - password:(NSString*)thePassword - runLoop:(NSRunLoop*)theRunLoop - forMode:(NSString*)theRunLoopMode; - -/** for mqttio-OBJC backward compatibility - @param theClientId see initWithClientId for description. - @param theUsername see initWithClientId for description. - @param thePassword see initWithClientId for description. - @param theKeepAliveInterval see initWithClientId for description. - @param cleanSessionFlag see initWithClientId for description. - @return the initialised MQTTSession object - All other parameters are set to defaults - */ -- (id)initWithClientId:(NSString*)theClientId - userName:(NSString*)theUsername - password:(NSString*)thePassword - keepAlive:(UInt16)theKeepAliveInterval - cleanSession:(BOOL)cleanSessionFlag; - -/** for mqttio-OBJC backward compatibility - @param theClientId see initWithClientId for description. - @param theUsername see initWithClientId for description. - @param thePassword see initWithClientId for description. - @param theKeepAlive see initWithClientId for description. - @param theCleanSessionFlag see initWithClientId for description. - @param theRunLoop see initWithClientId for description. - @param theMode see initWithClientId for description. - @return the initialised MQTTSession object - All other parameters are set to defaults - */ -- (id)initWithClientId:(NSString*)theClientId - userName:(NSString*)theUsername - password:(NSString*)thePassword - keepAlive:(UInt16)theKeepAlive - cleanSession:(BOOL)theCleanSessionFlag - runLoop:(NSRunLoop*)theRunLoop - forMode:(NSString*)theMode; - -/** for mqttio-OBJC backward compatibility - @param theClientId see initWithClientId for description. - @param theUserName see initWithClientId for description. - @param thePassword see initWithClientId for description. - @param theKeepAliveInterval see initWithClientId for description. - @param theCleanSessionFlag see initWithClientId for description. - @param willTopic see initWithClientId for description. - @param willMsg see initWithClientId for description. - @param willQoS see initWithClientId for description. - @param willRetainFlag see initWithClientId for description. - @return the initialised MQTTSession object - All other parameters are set to defaults - */ -- (id)initWithClientId:(NSString*)theClientId - userName:(NSString*)theUserName - password:(NSString*)thePassword - keepAlive:(UInt16)theKeepAliveInterval - cleanSession:(BOOL)theCleanSessionFlag - willTopic:(NSString*)willTopic - willMsg:(NSData*)willMsg - willQoS:(UInt8)willQoS - willRetainFlag:(BOOL)willRetainFlag; - -/** for mqttio-OBJC backward compatibility - @param theClientId see initWithClientId for description. - @param theUserName see initWithClientId for description. - @param thePassword see initWithClientId for description. - @param theKeepAliveInterval see initWithClientId for description. - @param theCleanSessionFlag see initWithClientId for description. - @param willTopic see initWithClientId for description. - @param willMsg see initWithClientId for description. - @param willQoS see initWithClientId for description. - @param willRetainFlag see initWithClientId for description. - @param theRunLoop see initWithClientId for description. - @param theRunLoopMode see initWithClientId for description. - @return the initialised MQTTSession object - All other parameters are set to defaults - */ -- (id)initWithClientId:(NSString*)theClientId - userName:(NSString*)theUserName - password:(NSString*)thePassword - keepAlive:(UInt16)theKeepAliveInterval - cleanSession:(BOOL)theCleanSessionFlag - willTopic:(NSString*)willTopic - willMsg:(NSData*)willMsg - willQoS:(UInt8)willQoS - willRetainFlag:(BOOL)willRetainFlag - runLoop:(NSRunLoop*)theRunLoop - forMode:(NSString*)theRunLoopMode; - -/** for mqttio-OBJC backward compatibility - @param theClientId see initWithClientId for description. - @param theKeepAliveInterval see initWithClientId for description. - @param theConnectMessage has to be constructed using MQTTMessage connectMessage... - @param theRunLoop see initWithClientId for description. - @param theRunLoopMode see initWithClientId for description. - @return the initialised MQTTSession object - All other parameters are set to defaults - */ -- (id)initWithClientId:(NSString*)theClientId - keepAlive:(UInt16)theKeepAliveInterval - connectMessage:(MQTTMessage*)theConnectMessage - runLoop:(NSRunLoop*)theRunLoop - forMode:(NSString*)theRunLoopMode; - -/** connects to the specified MQTT server - - @param host specifies the hostname or ip address to connect to. Defaults to @"localhost". - @param port specifies the port to connect to - @param usingSSL specifies whether to use SSL or not - @param connectHandler identifies a block which is executed on successfull or unsuccessfull connect. Might be nil - error is nil in the case of a successful connect - sessionPresent indicates in MQTT 3.1.1 if persistent session data was present at the server - - @return nothing and returns immediately. To check the connect results, register as an MQTTSessionDelegate and - - watch for events - - watch for connect or connectionRefused messages - - watch for error messages - or use the connectHandler block - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - - [session connectToHost:@"192.168.0.1" port:1883 usingSSL:NO connectHandler:^(NSError *error, BOOL sessionPresent) { - if (error) { - NSLog(@"Error Connect %@", error.localizedDescription); - } else { - NSLog(@"Connected sessionPresent:%d", sessionPresent); - } - }]; - @endcode - - @deprecated as not all connection parameters are supported, use connect - */ - -- (void)connectToHost:(NSString *)host - port:(UInt32)port - usingSSL:(BOOL)usingSSL - connectHandler:(MQTTConnectHandler)connectHandler; - -/** connects to the specified MQTT server - - @param host see connectToHost for description - @param port see connectToHost for description - @param usingSSL see connectToHost for description - - @return see connectToHost for description - @deprecated as not all connection parameters are supported, use connect - - */ -- (void)connectToHost:(NSString *)host port:(UInt32)port usingSSL:(BOOL)usingSSL; - - -/** for mqttio-OBJC backward compatibility - @param ip see connectToHost for description - @param port see connectToHost for description - @deprecated as not all connection parameters are supported, use connect - */ -- (void)connectToHost:(NSString*)ip port:(UInt32)port; - -/** for mqttio-OBJC backward compatibility - @param ip see connectToHost for description - @param port see connectToHost for description - @param connHandler event handler block - @param messHandler message handler block - @deprecated as not all connection parameters are supported, use connect - - */ -- (void)connectToHost:(NSString*)ip - port:(UInt32)port -withConnectionHandler:(void (^)(MQTTSessionEvent event))connHandler - messageHandler:(void (^)(NSData* data, NSString* topic))messHandler; - -/** for mqttio-OBJC backward compatibility - @param ip see connectToHost for description - @param port see connectToHost for description - @param usingSSL indicator to use TLS - @param connHandler event handler block - @param messHandler message handler block - */ -- (void)connectToHost:(NSString*)ip - port:(UInt32)port - usingSSL:(BOOL)usingSSL -withConnectionHandler:(void (^)(MQTTSessionEvent event))connHandler - messageHandler:(void (^)(NSData* data, NSString* topic))messHandler; - -/** for mqttio-OBJC backward compatibility - @param theTopic see subscribeToTopic for description - */ -- (void)subscribeTopic:(NSString*)theTopic; - -/** for mqttio-OBJC backward compatibility - @param theData see publishData for description - @param theTopic see publishData for description - */ -- (void)publishData:(NSData*)theData onTopic:(NSString*)theTopic; - -/** for mqttio-OBJC backward compatibility - @param theData see publishData for description - @param theTopic see publishData for description - */ -- (void)publishDataAtLeastOnce:(NSData*)theData onTopic:(NSString*)theTopic; - -/** for mqttio-OBJC backward compatibility - @param theData see publishData for description - @param theTopic see publishData for description - @param retainFlag see publishData for description - */ -- (void)publishDataAtLeastOnce:(NSData*)theData onTopic:(NSString*)theTopic retain:(BOOL)retainFlag; - -/** for mqttio-OBJC backward compatibility - @param theData see publishData for description - @param theTopic see publishData for description - */ -- (void)publishDataAtMostOnce:(NSData*)theData onTopic:(NSString*)theTopic; - -/** for mqttio-OBJC backward compatibility - @param theData see publishData for description - @param theTopic see publishData for description - @param retainFlag see publishData for description - */ -- (void)publishDataAtMostOnce:(NSData*)theData onTopic:(NSString*)theTopic retain:(BOOL)retainFlag; - -/** for mqttio-OBJC backward compatibility - @param theData see publishData for description - @param theTopic see publishData for description - */ -- (void)publishDataExactlyOnce:(NSData*)theData onTopic:(NSString*)theTopic; - -/** for mqttio-OBJC backward compatibility - @param theData see publishData for description - @param theTopic see publishData for description - @param retainFlag see publishData for description - */ -- (void)publishDataExactlyOnce:(NSData*)theData onTopic:(NSString*)theTopic retain:(BOOL)retainFlag; - -/** for mqttio-OBJC backward compatibility - @param payload JSON payload is converted to NSData and then send. See publishData for description - @param theTopic see publishData for description - */ -- (void)publishJson:(id)payload onTopic:(NSString*)theTopic; - -@end diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTSessionManager.h b/frameworks/MQTTFramework.framework/Headers/MQTTSessionManager.h deleted file mode 100755 index dd0ad94..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTSessionManager.h +++ /dev/null @@ -1,275 +0,0 @@ -// -// MQTTSessionManager.h -// MQTTClient -// -// Created by Christoph Krey on 09.07.14. -// Copyright © 2013-2016 Christoph Krey. All rights reserved. -// - -#import <Foundation/Foundation.h> -#if TARGET_OS_IPHONE == 1 -#import <UIKit/UIKit.h> -#endif -#import "MQTTSession.h" -#import "MQTTSessionLegacy.h" -#import "MQTTSSLSecurityPolicy.h" - -/** delegate gives your application access to received messages - */ -@protocol MQTTSessionManagerDelegate <NSObject> - -/** - Enumeration of MQTTSessionManagerState values - */ -typedef NS_ENUM(int, MQTTSessionManagerState) { - MQTTSessionManagerStateStarting, - MQTTSessionManagerStateConnecting, - MQTTSessionManagerStateError, - MQTTSessionManagerStateConnected, - MQTTSessionManagerStateClosing, - MQTTSessionManagerStateClosed -}; - -/** gets called when a new message was received - @param data the data received, might be zero length - @param topic the topic the data was published to - @param retained indicates if the data retransmitted from server storage - */ -- (void)handleMessage:(NSData *)data onTopic:(NSString *)topic retained:(BOOL)retained; - -@optional - -/** gets called when a published message was actually delivered - @param msgID the Message Identifier of the delivered message - @note this method is called after a publish with qos 1 or 2 only - */ -- (void)messageDelivered:(UInt16)msgID; -@end - -/** SessionManager handles the MQTT session for your application - */ -@interface MQTTSessionManager : NSObject <MQTTSessionDelegate> - -/** the delegate receiving incoming messages - */ -@property (weak, nonatomic) id<MQTTSessionManagerDelegate> delegate; - -/** subscriptions is a dictionary of NSNumber instances indicating the MQTTQoSLevel. - * The keys are topic filters. - * The SessionManager subscribes to the given subscriptions after successfull (re-)connect - * according to the cleansession parameter and the state of the session as indicated by the broker. - * Setting a new subscriptions dictionary initiates SUBSCRIBE or UNSUBSCRIBE messages by SessionManager - * by comparing the old and new subscriptions. - */ -@property (strong, nonatomic) NSDictionary<NSString *, NSNumber *> *subscriptions; - -/** effectiveSubscriptions s a dictionary of NSNumber instances indicating the granted MQTTQoSLevel, or 0x80 for subscription failure. - * The keys are topic filters. - * effectiveSubscriptions is observable and is updated everytime subscriptions change - * @code - ... - MQTTSessionManager *manager = [[MQTTSessionManager alloc] init]; - manager.delegate = self; - - [manager addObserver:self - forKeyPath:@"effectiveSubscriptions" - options:NSKeyValueObservingOptionInitial | NSKeyValueObservingOptionNew - context:nil]; - manager.subscriptions = [@{@"#": @(0)} mutableCopy]; - [manager connectTo: ... - ... - [manager removeObserver:self forKeyPath:@"effectiveSubscriptions"]; - ... - - - (void)observeValueForKeyPath:(NSString *)keyPath - ofObject:(id)object - change:(NSDictionary<NSString *,id> *)change - context:(void *)context { - if ([keyPath isEqualToString:@"effectiveSubscriptions"]) { - MQTTSessionManager *manager = (MQTTSessionManager *)object; - DDLogVerbose(@"effectiveSubscriptions changed: %@", manager.effectiveSubscriptions); - } - } - * @endcode - */ -@property (readonly, strong, nonatomic) NSDictionary<NSString *, NSNumber *> *effectiveSubscriptions; - -/** SessionManager status - */ -@property (nonatomic, readonly) MQTTSessionManagerState state; - -/** SessionManager last error code when state equals MQTTSessionManagerStateError - */ -@property (nonatomic, readonly) NSError *lastErrorCode; - -/** initWithPersistence sets the MQTTPersistence properties other than default - * @param persistent YES or NO (default) to establish file or in memory persistence. - * @param maxWindowSize (a positive number, default is 16) to control the number of messages sent before waiting for acknowledgement in Qos 1 or 2. Additional messages are stored and transmitted later. - * @param maxSize (a positive number of bytes, default is 64 MB) to limit the size of the persistence file. Messages published after the limit is reached are dropped. - * @param maxMessages (a positive number, default is 1024) to limit the number of messages stored. Additional messages published are dropped. - * @return the initialized MQTTSessionManager object - */ - -- (MQTTSessionManager *)initWithPersistence:(BOOL)persistent - maxWindowSize:(NSUInteger)maxWindowSize - maxMessages:(NSUInteger)maxMessages - maxSize:(NSUInteger)maxSize; - -/** Connects to the MQTT broker and stores the parameters for subsequent reconnects - * @param host specifies the hostname or ip address to connect to. Defaults to @"localhost". - * @param port specifies the port to connect to - * @param tls specifies whether to use SSL or not - * @param keepalive The Keep Alive is a time interval measured in seconds. The MQTTClient ensures that the interval between Control Packets being sent does not exceed the Keep Alive value. In the absence of sending any other Control Packets, the Client sends a PINGREQ Packet. - * @param clean specifies if the server should discard previous session information. - * @param auth specifies the user and pass parameters should be used for authenthication - * @param user an NSString object containing the user's name (or ID) for authentication. May be nil. - * @param pass an NSString object containing the user's password. If userName is nil, password must be nil as well. - * @param will indicates whether a will shall be sent - * @param willTopic the Will Topic is a string, may be nil - * @param willMsg the Will Message, might be zero length or nil - * @param willQos specifies the QoS level to be used when publishing the Will Message. - * @param willRetainFlag indicates if the server should publish the Will Messages with retainFlag. - * @param clientId The Client Identifier identifies the Client to the Server. If nil, a random clientId is generated. - * @param securityPolicy A custom SSL security policy or nil. - * @param certificates An NSArray of the pinned certificates to use or nil. - * @param protocolLevel Protocol version of the connection. - */ - -- (void)connectTo:(NSString *)host - port:(NSInteger)port - tls:(BOOL)tls - keepalive:(NSInteger)keepalive - clean:(BOOL)clean - auth:(BOOL)auth - user:(NSString *)user - pass:(NSString *)pass - will:(BOOL)will - willTopic:(NSString *)willTopic - willMsg:(NSData *)willMsg - willQos:(MQTTQosLevel)willQos - willRetainFlag:(BOOL)willRetainFlag - withClientId:(NSString *)clientId - securityPolicy:(MQTTSSLSecurityPolicy *)securityPolicy - certificates:(NSArray *)certificates - protocolLevel:(MQTTProtocolVersion)protocolLevel; - - -/** Connects to the MQTT broker and stores the parameters for subsequent reconnects - * @param host specifies the hostname or ip address to connect to. Defaults to @"localhost". - * @param port specifies the port to connect to - * @param tls specifies whether to use SSL or not - * @param keepalive The Keep Alive is a time interval measured in seconds. The MQTTClient ensures that the interval between Control Packets being sent does not exceed the Keep Alive value. In the absence of sending any other Control Packets, the Client sends a PINGREQ Packet. - * @param clean specifies if the server should discard previous session information. - * @param auth specifies the user and pass parameters should be used for authenthication - * @param user an NSString object containing the user's name (or ID) for authentication. May be nil. - * @param pass an NSString object containing the user's password. If userName is nil, password must be nil as well. - * @param will indicates whether a will shall be sent - * @param willTopic the Will Topic is a string, may be nil - * @param willMsg the Will Message, might be zero length or nil - * @param willQos specifies the QoS level to be used when publishing the Will Message. - * @param willRetainFlag indicates if the server should publish the Will Messages with retainFlag. - * @param clientId The Client Identifier identifies the Client to the Server. If nil, a random clientId is generated. - * @param securityPolicy A custom SSL security policy or nil. - * @param certificates An NSArray of the pinned certificates to use or nil. - */ - -- (void)connectTo:(NSString *)host - port:(NSInteger)port - tls:(BOOL)tls - keepalive:(NSInteger)keepalive - clean:(BOOL)clean - auth:(BOOL)auth - user:(NSString *)user - pass:(NSString *)pass - will:(BOOL)will - willTopic:(NSString *)willTopic - willMsg:(NSData *)willMsg - willQos:(MQTTQosLevel)willQos - willRetainFlag:(BOOL)willRetainFlag - withClientId:(NSString *)clientId - securityPolicy:(MQTTSSLSecurityPolicy *)securityPolicy - certificates:(NSArray *)certificates; - -/** Convenience alternative to full paramter connectTo - * @param host see connectTo description - * @param port see connectTo description - * @param tls see connectTo description - * @param keepalive see connectTo description - * @param clean see connectTo description - * @param auth see connectTo description - * @param user see connectTo description - * @param pass see connectTo description - * @param will see connectTo description - * @param willTopic see connectTo description - * @param willMsg see connectTo description - * @param willQos see connectTo description - * @param willRetainFlag see connectTo description - * @param clientId see connectTo description - */ - -- (void)connectTo:(NSString *)host - port:(NSInteger)port - tls:(BOOL)tls - keepalive:(NSInteger)keepalive - clean:(BOOL)clean - auth:(BOOL)auth - user:(NSString *)user - pass:(NSString *)pass - will:(BOOL)will - willTopic:(NSString *)willTopic - willMsg:(NSData *)willMsg - willQos:(MQTTQosLevel)willQos - willRetainFlag:(BOOL)willRetainFlag - withClientId:(NSString *)clientId; - -/** Convenience alternative to full paramter connectTo - * @param host see connectTo description - * @param port see connectTo description - * @param tls see connectTo description - * @param keepalive see connectTo description - * @param clean see connectTo description - * @param auth see connectTo description - * @param user see connectTo description - * @param pass see connectTo description - * @param willTopic the Will Topic is a string, must not be nil - * @param will the Will Message, might be zero length - * @param willQos see connectTo description - * @param willRetainFlag see connectTo description - * @param clientId see connectTo description - */ - -- (void)connectTo:(NSString *)host - port:(NSInteger)port - tls:(BOOL)tls - keepalive:(NSInteger)keepalive - clean:(BOOL)clean - auth:(BOOL)auth - user:(NSString *)user - pass:(NSString *)pass - willTopic:(NSString *)willTopic - will:(NSData *)will - willQos:(MQTTQosLevel)willQos - willRetainFlag:(BOOL)willRetainFlag - withClientId:(NSString *)clientId; - -/** Re-Connects to the MQTT broker using the parameters for given in the connectTo method - */ -- (void)connectToLast; - -/** publishes data on a given topic at a specified QoS level and retain flag - - @param data the data to be sent. length may range from 0 to 268,435,455 - 4 - _lengthof-topic_ bytes. Defaults to length 0. - @param topic the Topic to identify the data - @param retainFlag if YES, data is stored on the MQTT broker until overwritten by the next publish with retainFlag = YES - @param qos specifies the Quality of Service for the publish - qos can be 0, 1, or 2. - @return the Message Identifier of the PUBLISH message. Zero if qos 0. If qos 1 or 2, zero if message was dropped - @note returns immediately. - */ -- (UInt16)sendData:(NSData *)data topic:(NSString *)topic qos:(MQTTQosLevel)qos retain:(BOOL)retainFlag; - -/** Disconnects gracefully from the MQTT broker - */ -- (void)disconnect; - -@end diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTSessionSynchron.h b/frameworks/MQTTFramework.framework/Headers/MQTTSessionSynchron.h deleted file mode 100755 index df13d57..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTSessionSynchron.h +++ /dev/null @@ -1,389 +0,0 @@ -// -// MQTTSessionSynchron.h -// MQTTClient.framework -// - -/** - Synchronous API - - @author Christoph Krey krey.christoph@gmail.com - @copyright Copyright © 2013-2016, Christoph Krey - - */ - - -#import <Foundation/Foundation.h> -#import "MQTTSession.h" - -@interface MQTTSession(Synchron) - -/** connects to the specified MQTT server synchronously - - @param timeout defines the maximum time to wait. Defaults to 0 for no timeout. - - @return true if the connection was established - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - - [session connectAndWaitTimeout:30]; - @endcode - - */ -- (BOOL)connectAndWaitTimeout:(NSTimeInterval)timeout; - - -/** connects to the specified MQTT server synchronously - - @param host see connectAndWaitToHost:port:usingSSL:timeout: for details - @param port see connectAndWaitToHost:port:usingSSL:timeout: for details - @param usingSSL see connectAndWaitToHost:port:usingSSL:timeout: for details - - @return true if the connection was established - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - - [session connectAndWaitToHost:@"192.168.0.1" port:1883 usingSSL:NO]; - @endcode - - @deprecated as not all connection parameters are supported, use connectAndWaitTimeout - - */ -- (BOOL)connectAndWaitToHost:(NSString *)host - port:(UInt32)port - usingSSL:(BOOL)usingSSL; - -/** connects to the specified MQTT server synchronously - - @param host specifies the hostname or ip address to connect to. Defaults to @"localhost". - @param port spefifies the port to connect to - @param usingSSL specifies whether to use SSL or not - @param timeout defines the maximum time to wait - - @return true if the connection was established - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - - [session connectAndWaitToHost:@"192.168.0.1" port:1883 usingSSL:NO]; - @endcode - @deprecated as not all connection parameters are supported, use connectAndWaitTimeout - - */ - -- (BOOL)connectAndWaitToHost:(NSString *)host - port:(UInt32)port - usingSSL:(BOOL)usingSSL - timeout:(NSTimeInterval)timeout; - -/** subscribes to a topic at a specific QoS level synchronously - - @param topic the Topic Filter to subscribe to. - - @param qosLevel specifies the QoS Level of the subscription. - qosLevel can be 0, 1, or 2. - - @return TRUE if successfully subscribed - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - - [session connectAndWaitTimeout:30]; - - [session subscribeAndWaitToTopic:@"example/#" atLevel:2]; - - @endcode - - */ -- (BOOL)subscribeAndWaitToTopic:(NSString *)topic - atLevel:(MQTTQosLevel)qosLevel; - -/** subscribes to a topic at a specific QoS level synchronously - - @param topic the Topic Filter to subscribe to. - - @param qosLevel specifies the QoS Level of the subscription. - qosLevel can be 0, 1, or 2. - @param timeout defines the maximum time to wait - - @return TRUE if successfully subscribed - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - - [session connectAndWaitTimeout:30]; - - [session subscribeAndWaitToTopic:@"example/#" atLevel:2 timeout:10]; - - @endcode - - */ -- (BOOL)subscribeAndWaitToTopic:(NSString *)topic - atLevel:(MQTTQosLevel)qosLevel - timeout:(NSTimeInterval)timeout; - -/** subscribes a number of topics - - @param topics an NSDictionary<NSString *, NSNumber *> containing the Topic Filters to subscribe to as keys and - the corresponding QoS as NSNumber values - - @return the Message Identifier of the SUBSCRIBE message. - - @note returns immediately. To check results, register as an MQTTSessionDelegate and watch for events. - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - - [session connectAndWaitTimeout:30]; - - [session subscribeAndWaitToTopics:@{ - @"example/#": @(0), - @"example/status": @(2), - @"other/#": @(1) - }]; - - @endcode - */ -- (BOOL)subscribeAndWaitToTopics:(NSDictionary<NSString *, NSNumber *> *)topics; - -/** subscribes a number of topics - - @param topics an NSDictionary<NSString *, NSNumber *> containing the Topic Filters to subscribe to as keys and - the corresponding QoS as NSNumber values - @param timeout defines the maximum time to wait - - @return TRUE if the subscribe was succesfull - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - - [session connectAndWaitTimeout:30]; - - [session subscribeAndWaitToTopics:@{ - @"example/#": @(0), - @"example/status": @(2), - @"other/#": @(1) - } - timeout:10]; - - @endcode - */ -- (BOOL)subscribeAndWaitToTopics:(NSDictionary<NSString *, NSNumber *> *)topics - timeout:(NSTimeInterval)timeout; - - -/** unsubscribes from a topic synchronously - - @param topic the Topic Filter to unsubscribe from. - - @return TRUE if sucessfully unsubscribed - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - - [session connectAndWaitTimeout:30]; - - ... - - [session unsubscribeAndWaitTopic:@"example/#"]; - - @endcode - */ -- (BOOL)unsubscribeAndWaitTopic:(NSString *)topic; - -/** unsubscribes from a topic synchronously - - @param topic the Topic Filter to unsubscribe from. - @param timeout defines the maximum time to wait - - @return TRUE if sucessfully unsubscribed - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - - [session connectAndWaitTimeout:30]; - - ... - - [session unsubscribeAndWaitTopic:@"example/#" timeout:10]; - - @endcode - */ -- (BOOL)unsubscribeAndWaitTopic:(NSString *)topic - timeout:(NSTimeInterval)timeout; - - -/** unsubscribes from a number of topics synchronously - - @param topics an NSArray<NSString *> of topics to unsubscribe from - - @return TRUE if the unsubscribe was successful - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - - [session connectAndWaitTimeout:30]; - - ... - - [session unsubscribeAndWaitTopics:@[ - @"example/#", - @"example/status", - @"other/#" - ]]; - - @endcode - - */ -- (BOOL)unsubscribeAndWaitTopics:(NSArray<NSString *> *)topics; - -/** unsubscribes from a number of topics synchronously - - @param topics an NSArray<NSString *> of topics to unsubscribe from - @param timeout defines the maximum time to wait - - @return TRUE if the unsubscribe was successful - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - - [session connectAndWaitTimeout:30]; - - ... - - [session unsubscribeAndWaitTopics:@[ - @"example/#", - @"example/status", - @"other/#" - ] - timeout:10]; - - @endcode - - */ -- (BOOL)unsubscribeAndWaitTopics:(NSArray<NSString *> *)topics - timeout:(NSTimeInterval)timeout; - - -/** publishes synchronously data - - @param data see publishAndWaitData:onTopic:retain:qos:timeout: for details - @param topic see publishAndWaitData:onTopic:retain:qos:timeout: for details - @param retainFlag see publishAndWaitData:onTopic:retain:qos:timeout: for details - @param qos see publishAndWaitData:onTopic:retain:qos:timeout: for details - @returns TRUE if the publish was successful - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - - [session connectAndWaitTimeout:30]; - - [session publishAndWaitData:[@"Sample Data" dataUsingEncoding:NSUTF8StringEncoding] - topic:@"example/data" - retain:YES - qos:1]; - @endcode - - */ -- (BOOL)publishAndWaitData:(NSData *)data - onTopic:(NSString *)topic - retain:(BOOL)retainFlag - qos:(MQTTQosLevel)qos; - -/** publishes synchronously data on a given topic at a specified QoS level and retain flag - - @param data the data to be sent. length may range from 0 to 268,435,455 - 4 - _lengthof-topic_ bytes. Defaults to length 0. - @param topic the Topic to identify the data - @param retainFlag if YES, data is stored on the MQTT broker until overwritten by the next publish with retainFlag = YES - @param qos specifies the Quality of Service for the publish - qos can be 0, 1, or 2. - @param timeout defines the maximum time to wait - @returns TRUE if the publish was successful - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - - [session connectAndWaitTimeout:30]; - - [session publishAndWaitData:[@"Sample Data" dataUsingEncoding:NSUTF8StringEncoding] - topic:@"example/data" - retain:YES - qos:1 - timeout:10]; - @endcode - - */ -- (BOOL)publishAndWaitData:(NSData *)data - onTopic:(NSString *)topic - retain:(BOOL)retainFlag - qos:(MQTTQosLevel)qos - timeout:(NSTimeInterval)timeout; - -/** closes an MQTTSession gracefully synchronously - If the connection was successfully established before, a DISCONNECT is sent. - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - - [session connectAndWaitTimeout:30]; - - ... - - [session closeAndWait]; - - @endcode - - */ -- (void)closeAndWait; - -/** closes an MQTTSession gracefully synchronously - @param timeout defines the maximum time to wait - - If the connection was successfully established before, a DISCONNECT is sent. - - @code - #import "MQTTClient.h" - - MQTTSession *session = [[MQTTSession alloc] init]; - - [session connectAndWaitTimeout:30]; - - ... - - [session closeAndWait:10]; - - @endcode - - */ -- (void)closeAndWait:(NSTimeInterval)timeout; - -@end diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTTransport.h b/frameworks/MQTTFramework.framework/Headers/MQTTTransport.h deleted file mode 100755 index 15f3c0e..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTTransport.h +++ /dev/null @@ -1,102 +0,0 @@ -// -// MQTTTransport.h -// MQTTClient -// -// Created by Christoph Krey on 06.12.15. -// Copyright © 2015-2016 Christoph Krey. All rights reserved. -// - -#import <Foundation/Foundation.h> - -@protocol MQTTTransportDelegate; - -/** MQTTTransport is a protocol abstracting the underlying transport level for MQTTClient - * - */ -@protocol MQTTTransport <NSObject> - -/** MQTTTransport state defines the possible state of an abstract transport - * - */ - typedef NS_ENUM(NSInteger, MQTTTransportState) { - - /** MQTTTransportCreated indicates an initialized transport */ - MQTTTransportCreated = 0, - - /** MQTTTransportOpening indicates a transport in the process of opening a connection */ - MQTTTransportOpening, - - /** MQTTTransportCreated indicates a transport opened ready for communication */ - MQTTTransportOpen, - - /** MQTTTransportCreated indicates a transport in the process of closing */ - MQTTTransportClosing, - - /** MQTTTransportCreated indicates a closed transport */ - MQTTTransportClosed - }; - -/** runLoop The runLoop where the streams are scheduled. If nil, defaults to [NSRunLoop currentRunLoop]. */ -@property (strong, nonatomic) NSRunLoop * _Nonnull runLoop; - -/** runLoopMode The runLoopMode where the streams are scheduled. If nil, defaults to NSRunLoopCommonModes. */ -@property (strong, nonatomic) NSString * _Nonnull runLoopMode; - -/** MQTTTransportDelegate needs to be set to a class implementing th MQTTTransportDelegate protocol - * to receive delegate messages. - */ -@property (strong, nonatomic) _Nullable id<MQTTTransportDelegate> delegate; - -/** state contains the current MQTTTransportState of the transport */ -@property (nonatomic) MQTTTransportState state; - -/** open opens the transport and prepares it for communication - * actual transports may require additional parameters to be set before opening - */ -- (void)open; - -/** send transmits a data message - * @param data data to be send, might be zero length - * @result a boolean indicating if the data could be send or not - */ -- (BOOL)send:(nonnull NSData *)data; - -/** close closes the transport */ -- (void)close; - -@end - -/** MQTTTransportDelegate protocol - * Note: the implementation of the didReceiveMessage method is mandatory, the others are optional - */ -@protocol MQTTTransportDelegate <NSObject> - -/** didReceiveMessage gets called when a message was received - * @param mqttTransport the transport on which the message was received - * @param message the data received which may be zero length - */ - - (void)mqttTransport:(nonnull id<MQTTTransport>)mqttTransport didReceiveMessage:(nonnull NSData *)message; - -@optional - -/** mqttTransportDidOpen gets called when a transport is successfully opened - * @param mqttTransport the transport which was successfully opened - */ -- (void)mqttTransportDidOpen:(_Nonnull id<MQTTTransport>)mqttTransport; - -/** didFailWithError gets called when an error was detected on the transport - * @param mqttTransport the transport which detected the error - * @param error available error information, might be nil - */ -- (void)mqttTransport:(_Nonnull id<MQTTTransport>)mqttTransport didFailWithError:(nullable NSError *)error; - -/** mqttTransportDidClose gets called when the transport closed - * @param mqttTransport the transport which was closed - */ -- (void)mqttTransportDidClose:(_Nonnull id<MQTTTransport>)mqttTransport; - -@end - -@interface MQTTTransport : NSObject <MQTTTransport> -@end - diff --git a/frameworks/MQTTFramework.framework/Headers/MQTTWebsocketTransport.h b/frameworks/MQTTFramework.framework/Headers/MQTTWebsocketTransport.h deleted file mode 100755 index a80b4aa..0000000 --- a/frameworks/MQTTFramework.framework/Headers/MQTTWebsocketTransport.h +++ /dev/null @@ -1,49 +0,0 @@ -//// -//// MQTTWebsocketTransport.h -//// MQTTClient -//// -//// Created by Christoph Krey on 06.12.15. -//// Copyright © 2015-2016 Christoph Krey. All rights reserved. -//// -// -//#import <Foundation/Foundation.h> -//#import "MQTTTransport.h" -//#import <SocketRocket/SRWebSocket.h> -// -///** MQTTCFSocketTransport -// * implements an MQTTTransport on top of Websockets (SocketRocket) -// */ -//@interface MQTTWebsocketTransport : MQTTTransport <MQTTTransport, SRWebSocketDelegate> -// -///** host an NSString containing the hostName or IP address of the host to connect to -// * defaults to @"localhost" -//*/ -//@property (strong, nonatomic) NSString *host; -// -///** port an unsigned 16 bit integer containing the IP port number to connect to -// * defaults to 80 -// */ -//@property (nonatomic) UInt16 port; -// -///** tls a boolean indicating whether the transport should be using security -// * defaults to NO -// */ -//@property (nonatomic) BOOL tls; -// -///** path an NSString indicating the path component of the websocket URL request -// * defaults to @"/html" -// */ -//@property (strong, nonatomic) NSString *path; -// -///** allowUntrustedCertificates a boolean indicating whether self signed or expired certificates should be accepted -// * defaults to NO -// */ -//@property (nonatomic) BOOL allowUntrustedCertificates; -// -///** pinnedCertificates an NSArray containing certificates to validate server certificates against -// * defaults to nil -// */ -//@property (strong, nonatomic) NSArray *pinnedCertificates; -// -// -//@end diff --git a/frameworks/MQTTFramework.framework/Info.plist b/frameworks/MQTTFramework.framework/Info.plist deleted file mode 100644 index 710af82..0000000 --- a/frameworks/MQTTFramework.framework/Info.plist +++ /dev/null Binary files differ diff --git a/frameworks/MQTTFramework.framework/MQTTFramework b/frameworks/MQTTFramework.framework/MQTTFramework deleted file mode 100644 index 5d7d957..0000000 --- a/frameworks/MQTTFramework.framework/MQTTFramework +++ /dev/null Binary files differ diff --git a/frameworks/MQTTFramework.framework/Modules/module.modulemap b/frameworks/MQTTFramework.framework/Modules/module.modulemap deleted file mode 100644 index f7cda96..0000000 --- a/frameworks/MQTTFramework.framework/Modules/module.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module MQTTFramework { - umbrella header "MQTTFramework.h" - - export * - module * { export * } -} diff --git a/frameworks/WAAIhelpImpl.framework/Info.plist b/frameworks/WAAIhelpImpl.framework/Info.plist index 4bfe8af..098418f 100644 --- a/frameworks/WAAIhelpImpl.framework/Info.plist +++ b/frameworks/WAAIhelpImpl.framework/Info.plist Binary files differ diff --git a/frameworks/WAAIhelpImpl.framework/WAAIhelpImpl b/frameworks/WAAIhelpImpl.framework/WAAIhelpImpl index 295985f..c42009c 100644 --- a/frameworks/WAAIhelpImpl.framework/WAAIhelpImpl +++ b/frameworks/WAAIhelpImpl.framework/WAAIhelpImpl Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/ahresend.png b/res/AIHelpSupportSDK.bundle/Image/ahresend.png new file mode 100644 index 0000000..7ceefdb --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/ahresend.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/ahsubmitBtn.png b/res/AIHelpSupportSDK.bundle/Image/ahsubmitBtn.png new file mode 100644 index 0000000..a67781d --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/ahsubmitBtn.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/ai_select.png b/res/AIHelpSupportSDK.bundle/Image/ai_select.png new file mode 100644 index 0000000..e4812ba --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/ai_select.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/ai_select_no.png b/res/AIHelpSupportSDK.bundle/Image/ai_select_no.png new file mode 100644 index 0000000..c5dfffc --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/ai_select_no.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/aihelpplaceimage.png b/res/AIHelpSupportSDK.bundle/Image/aihelpplaceimage.png new file mode 100644 index 0000000..90f3b33 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/aihelpplaceimage.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/bg_input.png b/res/AIHelpSupportSDK.bundle/Image/bg_input.png new file mode 100644 index 0000000..8cd6c96 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/bg_input.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/bg_input_dark.png b/res/AIHelpSupportSDK.bundle/Image/bg_input_dark.png new file mode 100644 index 0000000..f81bce5 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/bg_input_dark.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/bg_recive_bubble.9.png b/res/AIHelpSupportSDK.bundle/Image/bg_recive_bubble.9.png new file mode 100644 index 0000000..ddbae96 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/bg_recive_bubble.9.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/bg_send_bubble.9.png b/res/AIHelpSupportSDK.bundle/Image/bg_send_bubble.9.png new file mode 100644 index 0000000..03b8e60 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/bg_send_bubble.9.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/bg_text.png b/res/AIHelpSupportSDK.bundle/Image/bg_text.png new file mode 100644 index 0000000..65bd48f --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/bg_text.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/bg_text_dark.png b/res/AIHelpSupportSDK.bundle/Image/bg_text_dark.png new file mode 100644 index 0000000..8a848d0 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/bg_text_dark.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/btn_back.png b/res/AIHelpSupportSDK.bundle/Image/btn_back.png new file mode 100644 index 0000000..6173c1d --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/btn_back.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/btn_bad_unsel.png b/res/AIHelpSupportSDK.bundle/Image/btn_bad_unsel.png new file mode 100644 index 0000000..0ea82c7 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/btn_bad_unsel.png Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/btn_close.png b/res/AIHelpSupportSDK.bundle/Image/btn_close.png similarity index 100% rename from res/ElvaChatServiceSDK.bundle/btn_close.png rename to res/AIHelpSupportSDK.bundle/Image/btn_close.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/btn_common_close.png b/res/AIHelpSupportSDK.bundle/Image/btn_common_close.png new file mode 100644 index 0000000..d0f9785 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/btn_common_close.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/btn_evalute_sure_sel.png b/res/AIHelpSupportSDK.bundle/Image/btn_evalute_sure_sel.png new file mode 100644 index 0000000..37e481a --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/btn_evalute_sure_sel.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/btn_evalute_sure_unsel.png b/res/AIHelpSupportSDK.bundle/Image/btn_evalute_sure_unsel.png new file mode 100644 index 0000000..eafe94c --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/btn_evalute_sure_unsel.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/btn_good_unsel.png b/res/AIHelpSupportSDK.bundle/Image/btn_good_unsel.png new file mode 100644 index 0000000..5477561 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/btn_good_unsel.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/btn_photo.png b/res/AIHelpSupportSDK.bundle/Image/btn_photo.png new file mode 100644 index 0000000..866c855 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/btn_photo.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/btn_search.png b/res/AIHelpSupportSDK.bundle/Image/btn_search.png new file mode 100644 index 0000000..6f2664c --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/btn_search.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/btn_search_dark.png b/res/AIHelpSupportSDK.bundle/Image/btn_search_dark.png new file mode 100644 index 0000000..32c8c68 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/btn_search_dark.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/btn_send.png b/res/AIHelpSupportSDK.bundle/Image/btn_send.png new file mode 100644 index 0000000..f21a45c --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/btn_send.png Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/b27_icon_star_yellow@2x.png b/res/AIHelpSupportSDK.bundle/Image/btn_star_high.png old mode 100755 new mode 100644 similarity index 100% rename from res/ElvaChatServiceSDK.bundle/b27_icon_star_yellow@2x.png rename to res/AIHelpSupportSDK.bundle/Image/btn_star_high.png Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/b27_icon_star_gray@2x.png b/res/AIHelpSupportSDK.bundle/Image/btn_star_normal.png old mode 100755 new mode 100644 similarity index 100% rename from res/ElvaChatServiceSDK.bundle/b27_icon_star_gray@2x.png rename to res/AIHelpSupportSDK.bundle/Image/btn_star_normal.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/dark_bg_recive_bubble.9.png b/res/AIHelpSupportSDK.bundle/Image/dark_bg_recive_bubble.9.png new file mode 100644 index 0000000..965944b --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/dark_bg_recive_bubble.9.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/empty.png b/res/AIHelpSupportSDK.bundle/Image/empty.png new file mode 100644 index 0000000..f756611 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/empty.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/empty_dark.png b/res/AIHelpSupportSDK.bundle/Image/empty_dark.png new file mode 100644 index 0000000..6992549 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/empty_dark.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/faqrightbtn.png b/res/AIHelpSupportSDK.bundle/Image/faqrightbtn.png new file mode 100644 index 0000000..0069f4b --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/faqrightbtn.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/icon_customer.png b/res/AIHelpSupportSDK.bundle/Image/icon_customer.png new file mode 100644 index 0000000..8830982 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/icon_customer.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/icon_evaluate_heart.png b/res/AIHelpSupportSDK.bundle/Image/icon_evaluate_heart.png new file mode 100644 index 0000000..670bfba --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/icon_evaluate_heart.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/icon_evaluate_success.png b/res/AIHelpSupportSDK.bundle/Image/icon_evaluate_success.png new file mode 100644 index 0000000..bfbfda8 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/icon_evaluate_success.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/icon_nav_btn_msg.png b/res/AIHelpSupportSDK.bundle/Image/icon_nav_btn_msg.png new file mode 100644 index 0000000..9505adf --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/icon_nav_btn_msg.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/icon_nav_loading.png b/res/AIHelpSupportSDK.bundle/Image/icon_nav_loading.png new file mode 100644 index 0000000..d6e6e18 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/icon_nav_loading.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/icon_player.png b/res/AIHelpSupportSDK.bundle/Image/icon_player.png new file mode 100644 index 0000000..8a03190 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/icon_player.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/icon_robot.png b/res/AIHelpSupportSDK.bundle/Image/icon_robot.png new file mode 100644 index 0000000..7ef7aa7 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/icon_robot.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/leftback.png b/res/AIHelpSupportSDK.bundle/Image/leftback.png new file mode 100644 index 0000000..00cf45c --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/leftback.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/loading.png b/res/AIHelpSupportSDK.bundle/Image/loading.png new file mode 100644 index 0000000..1190dae --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/loading.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/netsuccess.png b/res/AIHelpSupportSDK.bundle/Image/netsuccess.png new file mode 100644 index 0000000..34abe59 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/netsuccess.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/playimg.png b/res/AIHelpSupportSDK.bundle/Image/playimg.png new file mode 100644 index 0000000..25f4af7 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/playimg.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/right.png b/res/AIHelpSupportSDK.bundle/Image/right.png new file mode 100644 index 0000000..a72035b --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/right.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/rightdark.png b/res/AIHelpSupportSDK.bundle/Image/rightdark.png new file mode 100644 index 0000000..e217127 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/rightdark.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/send_dark.png b/res/AIHelpSupportSDK.bundle/Image/send_dark.png new file mode 100644 index 0000000..5ef7e6e --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/send_dark.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/smallloading.png b/res/AIHelpSupportSDK.bundle/Image/smallloading.png new file mode 100644 index 0000000..24f1f50 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/smallloading.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/Image/wifibad.png b/res/AIHelpSupportSDK.bundle/Image/wifibad.png new file mode 100644 index 0000000..e5fe514 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/Image/wifibad.png Binary files differ diff --git a/res/AIHelpSupportSDK.bundle/lan/ar.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/ar.lproj/Localizable.strings new file mode 100644 index 0000000..28c6eeb --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/ar.lproj/Localizable.strings @@ -0,0 +1,45 @@ + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="تحديد"; +"aihelp_no"="إلغاء"; +"aihelp_chat_hint"="أدخل رسالتك"; +"aihelp_data_not_found_msg"="عفوًا ، لم يتم العثور على بيانات ذات صلة."; +"aihelp_faq_search_hint"="صف مشكلتك"; +"aihelp_faq_fetching_faqs"="الحصول على إجاباتك …"; +"aihelp_faq_feedback_suggest"="اقتراحات"; +"aihelp_rate_satisfied"="أعجبني"; +"aihelp_rate_dissatisfied"="لم يعجبه"; +"aihelp_rate_request"="يرجى تقييم خدمتنا."; +"aihelp_rate_finished"="شكرا لتصنيفنا."; +"aihelp_rate_app_hint"="أحب هذا التطبيق وصنفه؟"; +"aihelp_rate_button"="أحرز هدفا"; +"aihelp_rate_additional_feedback_message"="أي ملاحظات أخرى (اختياري)"; +"aihelp_faq_feedback"="يرجى إدخال ملاحظاتك"; +"aihelp_faq_feedback_thanks"="شكرا لملاحظاتك."; +"aihelp_faq_search_empty"="لم يتم العثور على أسئلة شائعة."; +"aihelp_network_error_msg"="عفوًا ، يبدو أن هناك مشكلة في الشبكة"; +"aihelp_network_upload_log_title"="اتصال الشبكة ضعيف"; +"aihelp_network_check_poor"="يُرجى التأكيد على إرسال شروط الشبكة إلينا ، مما سيساعدنا على تحسين جودة اتصالك بالشبكة."; +"aihelp_network_check_fine"="بعد التحقق ، شبكتك على ما يرام"; +"aihelp_network_no_connect"="يرجى التحقق من اتصال الشبكة."; +"aihelp_media_upload_err_size"="يتجاوز حجم الملف الحد ، يرجى تحميل الملف أصغر من %dM."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="ملفات غير مدعومة. حاليا ، فقط mp4 ، png ، jpg ، jpeg متاح عند التحميل."; +"aihelp_network_check_in_progress"="فحص الشبكة قيد التقدم. إذا خرجت الآن ، فستتم مقاطعة عملية التحقق."; +"aihelp_permission_denied"="Η μεταφόρτωση εικόνας απαιτεί άδεια πρόσβασης στον αποθηκευτικό χώρο."; +"aihelp_permission_ignored"="يرجى تمكين الإعدادات> الأذونات> التخزين لاستخدام وظيفة تحميل الصورة."; +"aihelp_permission_settings"="الإعدادات"; +"aihelp_ticket_closed"="تم إغلاق تذكرة شكوى العملاء الحالية."; +"aihelp_network_checking"="فحص الشبكة قيد التقدم"; +"aihelp_view_details"="انظر التفاصيل"; +"aihelp_yesterday"="في الامس"; +"aihelp_sunday"="الأحد"; +"aihelp_monday"="الإثنين"; +"aihelp_tuesday"="الثلاثاء"; +"aihelp_wednesday"="الأربعاء"; +"aihelp_thursday"="الخميس"; +"aihelp_friday"="يوم الجمعة"; +"aihelp_saturday"="يوم السبت"; +"aihelp_saturday_data_acquisition_failed"="فشل الحصول على البيانات"; +"aihelp_send"="يرسل"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/bn.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/bn.lproj/Localizable.strings new file mode 100644 index 0000000..995fb8e --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/bn.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="নির্ধারণ"; +"aihelp_no"="বাতিল করুন"; +"aihelp_chat_hint"="আপনার বার্তা লিখুন"; +"aihelp_data_not_found_msg"="ওফস, কোনও সম্পর্কিত ডেটা পাওয়া যায় নি।"; +"aihelp_faq_search_hint"="আপনার সমস্যা বর্ণনা করুন"; +"aihelp_faq_fetching_faqs"="আপনার উত্তরগুলি পাওয়া হচ্ছে …"; +"aihelp_faq_feedback_suggest"="পরামর্শ"; +"aihelp_rate_satisfied"="পছন্দ হয়েছে"; +"aihelp_rate_dissatisfied"="এটি অপছন্দ করে"; +"aihelp_rate_request"="আমাদের পরিষেবা রেট করুন।"; +"aihelp_rate_finished"="আমাদের রেটিং করার জন্য ধন্যবাদ।"; +"aihelp_rate_app_hint"="এই অ্যাপ্লিকেশন পছন্দ, এটি রেট?"; +"aihelp_rate_button"="স্কোর"; +"aihelp_rate_additional_feedback_message"="অন্য কোনও প্রতিক্রিয়া (alচ্ছিক)"; +"aihelp_faq_feedback"="আপনার প্রতিক্রিয়া ইনপুট করুন"; +"aihelp_faq_feedback_thanks"="প্রতিক্রিয়ার জন্য ধন্যবাদ।"; +"aihelp_faq_search_empty"="কোন FAQ পাওয়া যায় নি।"; +"aihelp_network_error_msg"="ওহো! কিছু ভুল হয়েছে"; +"aihelp_network_upload_log_title"="দরিদ্র নেটওয়ার্ক সংযোগ"; +"aihelp_network_check_poor"="আমাদের নেটওয়ার্ক শর্তাদি প্রেরণ নিশ্চিত করুন, যা আমাদের আপনার নেটওয়ার্ক সংযোগের মান উন্নত করতে সহায়তা করবে।"; +"aihelp_network_check_fine"="চেক করার পরে, আপনার নেটওয়ার্ক ঠিক আছে"; +"aihelp_network_no_connect"="আপনার নেটওয়ার্ক সংযোগ পরীক্ষা করুন।"; +"aihelp_media_upload_err_size"="ফাইলের আকার সীমা ছাড়িয়ে গেছে, দয়া করে ফাইলটি %dM এম এর চেয়ে ছোট আপলোড করুন"; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="অসমর্থিত ফাইল। বর্তমানে আপলোড করার সময় কেবল এমপি 4, পিএনজি, জেপিজি, জেপিগ পাওয়া যায়।"; +"aihelp_network_check_in_progress"="নেটওয়ার্ক চেকিং চলছে। আপনি যদি এখনই প্রস্থান করেন তবে চেকিং বাধাগ্রস্ত হবে।"; +"aihelp_permission_ignored"="আপলোড চিত্রের ফাংশনটি ব্যবহার করতে দয়া করে সেটিংস> অনুমতি> স্টোরেজ সক্ষম করুন।"; +"aihelp_permission_denied"="Upload image requires permission of accessing storage."; +"aihelp_permission_settings"="সেটিংস"; +"aihelp_network_checking"="নেটওয়ার্ক চেক চলছে"; +"aihelp_ticket_closed"="বর্তমান গ্রাহকের অভিযোগের টিকিট বন্ধ রয়েছে।"; +"aihelp_view_details"="বিস্তারিত দেখুন"; +"aihelp_yesterday"="গতকাল"; +"aihelp_sunday"="রবিবার"; +"aihelp_monday"="সোমবার"; +"aihelp_tuesday"="মঙ্গলবার"; +"aihelp_wednesday"="বুধবার"; +"aihelp_thursday"="বৃহস্পতিবার"; +"aihelp_friday"="শুক্রবার"; +"aihelp_saturday"="শনিবার"; +"aihelp_saturday_data_acquisition_failed"="ডেটা অর্জন ব্যর্থ হয়েছে"; +"aihelp_send"="পাঠান"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/cs.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/cs.lproj/Localizable.strings new file mode 100644 index 0000000..788bf9c --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/cs.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="určit"; +"aihelp_no"="zrušení"; +"aihelp_chat_hint"="Zadejte svou zprávu"; +"aihelp_data_not_found_msg"="Jejda, nebyly nalezeny žádné relevantní údaje."; +"aihelp_faq_search_hint"="Popište svůj problém"; +"aihelp_faq_fetching_faqs"="Získání vašich odpovědí …"; +"aihelp_faq_feedback_suggest"="Návrhy"; +"aihelp_rate_satisfied"="Libilo se mi to"; +"aihelp_rate_dissatisfied"="Nelíbilo se mu to"; +"aihelp_rate_request"="Ohodnoťte prosím naše služby."; +"aihelp_rate_finished"="Díky za hodnocení."; +"aihelp_rate_app_hint"="Líbí se vám tato aplikace?"; +"aihelp_rate_button"="Hodnotit"; +"aihelp_rate_additional_feedback_message"="Jakákoli jiná zpětná vazba (volitelné)"; +"aihelp_faq_feedback"="Zadejte svůj názor"; +"aihelp_faq_feedback_thanks"="Děkujeme za zpětnou vazbu."; +"aihelp_faq_search_empty"="Nebyly nalezeny žádné časté dotazy."; +"aihelp_network_error_msg"="Jejda! Něco se pokazilo"; +"aihelp_network_upload_log_title"="Špatné připojení k síti"; +"aihelp_network_check_poor"="Potvrďte, že nám pošlete podmínky sítě, což nám pomůže zlepšit kvalitu vašeho síťového připojení."; +"aihelp_network_check_fine"="Po kontrole je vaše síť v pořádku"; +"aihelp_network_no_connect"="Zkontrolujte připojení k síti."; +"aihelp_media_upload_err_size"="Velikost souboru přesahuje limit, nahrajte prosím soubor menší než %dM."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="Nepodporované soubory. V současné době jsou při nahrávání k dispozici pouze mp4, png, jpg, jpeg."; +"aihelp_network_check_in_progress"="Probíhá kontrola sítě. Pokud nyní ukončíte, bude kontrola přerušena."; +"aihelp_permission_denied"="Nahrávání obrázku vyžaduje povolení přístupu k úložišti."; +"aihelp_permission_ignored"="Povolte nastavení > Povolení > Skladování pro použití funkce nahraného obrázku."; +"aihelp_permission_settings"="Nastavení"; +"aihelp_network_checking"="Probíhá kontrola sítě"; +"aihelp_ticket_closed"="Aktuální jízdenka na stížnost zákazníka byla uzavřena."; +"aihelp_view_details"="zobrazit podrobnosti"; +"aihelp_yesterday"="Včera"; +"aihelp_sunday"="Neděle"; +"aihelp_monday"="pondělí"; +"aihelp_tuesday"="úterý"; +"aihelp_wednesday"="středa"; +"aihelp_thursday"="Čtvrtek"; +"aihelp_friday"="pátek"; +"aihelp_saturday"="sobota"; +"aihelp_saturday_data_acquisition_failed"="Sběr dat se nezdařil"; +"aihelp_send"="poslat"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/de.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/de.lproj/Localizable.strings new file mode 100644 index 0000000..6c5b647 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/de.lproj/Localizable.strings @@ -0,0 +1,47 @@ + + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="bestimmen"; +"aihelp_no"="stornieren"; +"aihelp_chat_hint"="Gib deine Nachricht ein"; +"aihelp_data_not_found_msg"="Hoppla, es wurden keine relevanten Daten gefunden."; +"aihelp_faq_search_hint"="Beschreiben Sie Ihr Problem"; +"aihelp_faq_fetching_faqs"="Erhalten Sie Ihre Antworten …"; +"aihelp_faq_feedback_suggest"="Vorschläge"; +"aihelp_rate_satisfied"="Mochte es"; +"aihelp_rate_dissatisfied"="Hat mir nicht gefallen"; +"aihelp_rate_request"="Bitte bewerten Sie unseren Service."; +"aihelp_rate_finished"="Vielen Dank für die Bewertung."; +"aihelp_rate_app_hint"="Lieben Sie diese App und bewerten Sie sie?"; +"aihelp_rate_button"="Bewertung"; +"aihelp_rate_additional_feedback_message"="Sonstiges Feedback (optional)"; +"aihelp_faq_feedback"="Bitte geben Sie Ihr Feedback ein"; +"aihelp_faq_feedback_thanks"="Danke für die Rückmeldung."; +"aihelp_faq_search_empty"="Keine FAQs gefunden."; +"aihelp_network_error_msg"="Hoppla! Etwas ist schief gelaufen"; +"aihelp_network_upload_log_title"="Schlechte Netzwerkverbindung"; +"aihelp_network_check_poor"="Bitte bestätigen Sie, dass Sie uns die Netzwerkbedingungen senden, damit wir die Qualität Ihrer Netzwerkverbindung verbessern können."; +"aihelp_network_check_fine"="Nach der Überprüfung ist Ihr Netzwerk in Ordnung"; +"aihelp_network_no_connect"="Bitte überprüfen Sie Ihre Netzwerkverbindung."; +"aihelp_media_upload_err_size"="Die Dateigröße überschreitet den Grenzwert. Bitte laden Sie die Datei hoch, die kleiner als %dM ist."; +"aihelp_media_upload_err_format"="Nicht unterstützte Dateien. Derzeit sind beim Hochladen nur mp4, png, jpg, jpeg verfügbar."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_network_check_in_progress"="Die Netzwerkprüfung wird durchgeführt. Wenn Sie jetzt beenden, wird die Überprüfung unterbrochen."; +"aihelp_permission_denied"="Le téléchargement de l\'image nécessite l\'autorisation d\'accéder au stockage."; +"aihelp_permission_ignored"="Bitte aktivieren Sie Einstellungen> Berechtigungen> Speicher, um die Funktion zum Hochladen von Bildern zu verwenden."; +"aihelp_permission_settings"="die Einstellungen"; +"aihelp_ticket_closed"="Das aktuelle Kundenbeschwerde-Ticket wurde geschlossen."; +"aihelp_network_checking"="Die Netzwerkprüfung wird durchgeführt"; +"aihelp_view_details"="siehe Einzelheiten"; +"aihelp_yesterday"="Gestern"; +"aihelp_sunday"="Sonntag"; +"aihelp_monday"="Montag"; +"aihelp_tuesday"="Dienstag"; +"aihelp_wednesday"="Mittwoch"; +"aihelp_thursday"="Donnerstag"; +"aihelp_friday"="Freitag"; +"aihelp_saturday"="Samstag"; +"aihelp_saturday_data_acquisition_failed"="Datenerfassung fehlgeschlagen"; +"aihelp_send"="senden"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/el.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/el.lproj/Localizable.strings new file mode 100644 index 0000000..7242d7e --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/el.lproj/Localizable.strings @@ -0,0 +1,45 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="καθορίσει"; +"aihelp_no"="Ματαίωση"; +"aihelp_chat_hint"="Εισαγάγετε το μήνυμά σας"; +"aihelp_data_not_found_msg"="Ωχ, δεν βρέθηκαν σχετικά δεδομένα."; +"aihelp_faq_search_hint"="Περιγράψτε το πρόβλημά σας"; +"aihelp_faq_fetching_faqs"="Λήψη των απαντήσεών σας…"; +"aihelp_faq_feedback_suggest"="Προτάσεις"; +"aihelp_rate_satisfied"="Μου άρεσε"; +"aihelp_rate_dissatisfied"="Δεν μου άρεσε"; +"aihelp_rate_request"="Παρακαλώ αξιολογήστε την υπηρεσία μας."; +"aihelp_rate_finished"="Ευχαριστούμε που μας αξιολογήσατε."; +"aihelp_rate_app_hint"="Σας αρέσει αυτή η εφαρμογή, βαθμολογήστε την;"; +"aihelp_rate_button"="Για να βαθμολογήσετε"; +"aihelp_rate_additional_feedback_message"="Οποιαδήποτε άλλα σχόλια (προαιρετικά)"; +"aihelp_faq_feedback"="Εισαγάγετε τα σχόλιά σας"; +"aihelp_faq_feedback_thanks"="Σας ευχαριστούμε για τα σχόλιά σας."; +"aihelp_faq_search_empty"="Δεν βρέθηκαν συχνές ερωτήσεις."; +"aihelp_network_error_msg"="Ωχ! Κάτι πήγε στραβά"; +"aihelp_network_upload_log_title"="Κακή σύνδεση δικτύου"; +"aihelp_network_check_poor"="Επιβεβαιώστε για να μας στείλετε συνθήκες δικτύου, οι οποίες θα μας βοηθήσουν να βελτιώσουμε την ποιότητα της σύνδεσης δικτύου σας."; +"aihelp_network_check_fine"="Μετά τον έλεγχο, το δίκτυό σας είναι εντάξει"; +"aihelp_network_no_connect"="Ελέγξτε τη σύνδεση δικτύου σας."; +"aihelp_media_upload_err_size"="Το μέγεθος του αρχείου υπερβαίνει το όριο, μεταφορτώστε το αρχείο μικρότερο από %dM."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="Μη υποστηριζόμενα αρχεία. Προς το παρόν, μόνο τα mp4, png, jpg, jpeg είναι διαθέσιμα κατά τη μεταφόρτωση."; +"aihelp_network_check_in_progress"="Ο έλεγχος δικτύου βρίσκεται σε εξέλιξη. Εάν βγείτε τώρα, ο έλεγχος θα διακοπεί."; +"aihelp_permission_denied"="Η μεταφόρτωση εικόνας απαιτεί άδεια πρόσβασης στον αποθηκευτικό χώρο."; +"aihelp_permission_ignored"="Ενεργοποιήστε τις Ρυθμίσεις> Δικαιώματα> Χώρος αποθήκευσης για να χρησιμοποιήσετε τη λειτουργία μεταφόρτωσης εικόνας."; +"aihelp_permission_settings"="Ρυθμίσεις"; +"aihelp_network_checking"="Ο έλεγχος δικτύου βρίσκεται σε εξέλιξη"; +"aihelp_ticket_closed"="Το τρέχον εισιτήριο παραπόνων πελατών έκλεισε."; +"aihelp_view_details"="δείτε λεπτομέρειες"; +"aihelp_yesterday"="Εχθές"; +"aihelp_sunday"="Κυριακή"; +"aihelp_monday"="Δευτέρα"; +"aihelp_tuesday"="Τρίτη"; +"aihelp_wednesday"="Τετάρτη"; +"aihelp_thursday"="Πέμπτη"; +"aihelp_friday"="Παρασκευή"; +"aihelp_saturday"="Σάββατο"; +"aihelp_saturday_data_acquisition_failed"="Η απόκτηση δεδομένων απέτυχε"; +"aihelp_send"="στείλετε"; diff --git a/res/AIHelpSupportSDK.bundle/lan/en.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/en.lproj/Localizable.strings new file mode 100644 index 0000000..5b46af3 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/en.lproj/Localizable.strings @@ -0,0 +1,54 @@ + + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="Confirm"; +"aihelp_no"="Cancel"; +"aihelp_view_details"="View Details"; + +"aihelp_chat_hint"="Enter your message"; +"aihelp_data_not_found_msg"="Oops, no relevant data were found."; + +"aihelp_faq_search_hint"="Describe your problem"; +"aihelp_faq_fetching_faqs"="Getting your answers…"; +"aihelp_faq_feedback"="Please input your feedback"; +"aihelp_faq_feedback_thanks"="Thank you for the feedback."; +"aihelp_faq_feedback_suggest"="Suggestions"; +"aihelp_faq_search_empty"="No FAQs found."; + +"aihelp_media_upload_err_format"="Unsupported files. Currently, only mp4, png, jpg, jpeg available when uploading."; +"aihelp_media_upload_err_size"="The file size exceeds the limit, please upload the file smaller than %dM"; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; + +"aihelp_network_error_msg"="Oops! Something went wrong"; +"aihelp_network_upload_log_title"="Poor network connection"; +"aihelp_network_no_connect"="Please check your network connection."; +"aihelp_network_check_poor"="Please confirm to send us network conditions, which will help us improve the quality of your network connection."; +"aihelp_network_check_fine"="After checking, your network is fine"; + +"aihelp_rate_request"="Please rate our service"; +"aihelp_rate_finished"="Thanks for rating us."; +"aihelp_rate_app_hint"="Would you like to review the App?"; +"aihelp_rate_button"="Rate"; +"aihelp_rate_additional_feedback_message"="Any other feedback (optional)"; +"aihelp_rate_satisfied"="Liked it"; +"aihelp_rate_dissatisfied"="Disliked it"; +"aihelp_network_check_in_progress"="Network checking is in progress. If you exit now, the checking will be interrupted."; +"aihelp_permission_ignored"="Please enable Settings > Permissions > Storage to use upload image function."; +"aihelp_permission_denied"="Upload image requires permission of accessing storage."; +"aihelp_permission_settings"="Settings"; +"aihelp_network_checking"="Network check is in progress"; +"aihelp_ticket_closed"="The current customer complaint ticket has been closed."; + +"aihelp_yesterday"="Yesterday"; +"aihelp_sunday"="Sunday"; +"aihelp_monday"="Monday"; +"aihelp_tuesday"="Tuesday"; +"aihelp_wednesday"="Wednesday"; +"aihelp_thursday"="Thursday"; +"aihelp_friday"="Friday"; +"aihelp_saturday"="Saturday"; +"aihelp_saturday_data_acquisition_failed"="Data acquisition failed"; +"aihelp_send"="Send"; + + diff --git a/res/AIHelpSupportSDK.bundle/lan/es.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/es.lproj/Localizable.strings new file mode 100644 index 0000000..8c1c067 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/es.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="determinar"; +"aihelp_no"="cancelar"; +"aihelp_chat_hint"="Ingrese su mensaje"; +"aihelp_data_not_found_msg"="Vaya, no se encontraron datos relevantes."; +"aihelp_faq_search_hint"="Describe tu problema"; +"aihelp_faq_fetching_faqs"="Obteniendo sus respuestas ..."; +"aihelp_faq_feedback_suggest"="Sugerencias"; +"aihelp_rate_satisfied"="Sugerencias"; +"aihelp_rate_dissatisfied"="No me gustó"; +"aihelp_rate_request"="Por favor califique nuestro servicio."; +"aihelp_rate_finished"="Por favor califique nuestro servicio."; +"aihelp_rate_app_hint"="Por favor califique nuestro servicio."; +"aihelp_rate_button"="Puntuación"; +"aihelp_rate_additional_feedback_message"="Cualquier otro comentario (opcional)"; +"aihelp_faq_feedback"="Por favor ingrese sus comentarios"; +"aihelp_faq_feedback_thanks"="Gracias por los comentarios."; +"aihelp_faq_search_empty"="No se encontraron preguntas frecuentes."; +"aihelp_network_error_msg"="¡Uy! Algo salió mal"; +"aihelp_network_upload_log_title"="Mala conexión de red"; +"aihelp_network_check_poor"="Confirme que nos envíe las condiciones de red, lo que nos ayudará a mejorar la calidad de su conexión de red."; +"aihelp_network_check_fine"="Después de verificar, su red está bien"; +"aihelp_network_no_connect"="Después de verificar, su red está bien"; +"aihelp_media_upload_err_size"="El tamaño del archivo excede el límite, cargue el archivo más pequeño que %dM."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="Archivos no compatibles Actualmente, solo mp4, png, jpg, jpeg están disponibles al cargar."; +"aihelp_network_check_in_progress"="La comprobación de la red está en curso. Si sale ahora, la comprobación se interrumpirá."; +"aihelp_permission_ignored"="Habilite Configuración> Permisos> Almacenamiento para usar la función de carga de imágenes."; +"aihelp_permission_denied"="La imagen para cargar requiere permiso para acceder al almacenamiento."; +"aihelp_permission_settings"="Configuraciones"; +"aihelp_network_checking"="La verificación de la red está en curso"; +"aihelp_ticket_closed"="Se ha cerrado el ticket de queja actual del cliente."; +"aihelp_view_details"="Ver detalles"; +"aihelp_yesterday"="Ayer"; +"aihelp_sunday"="domingo"; +"aihelp_monday"="lunes"; +"aihelp_tuesday"="martes"; +"aihelp_wednesday"="miércoles"; +"aihelp_thursday"="jueves"; +"aihelp_friday"="viernes"; +"aihelp_saturday"="sábado"; +"aihelp_saturday_data_acquisition_failed"="Falló la adquisición de datos"; +"aihelp_send"="enviar"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/fa.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/fa.lproj/Localizable.strings new file mode 100644 index 0000000..95e49c9 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/fa.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="تعیین کردن"; +"aihelp_no"="لغو کردن"; +"aihelp_chat_hint"="پیام خود را وارد کنید"; +"aihelp_data_not_found_msg"="پیام خود را وارد کنید"; +"aihelp_faq_search_hint"="مشکل خود را شرح دهید"; +"aihelp_faq_fetching_faqs"="دریافت پاسخهای شما …"; +"aihelp_faq_feedback_suggest"="پیشنهادات"; +"aihelp_rate_satisfied"="دوست داشت"; +"aihelp_rate_dissatisfied"="آن را دوست نداشت"; +"aihelp_rate_request"="لطفا خدمات ما را ارزیابی کنید"; +"aihelp_rate_finished"="با تشکر از شما برای رتبه بندی ما."; +"aihelp_rate_app_hint"="با تشکر از شما برای رتبه بندی ما."; +"aihelp_rate_button"="برای امتیاز دادن"; +"aihelp_rate_additional_feedback_message"="هر گونه بازخورد دیگر (اختیاری)"; +"aihelp_faq_feedback"="لطفا نظرات خود را وارد کنید"; +"aihelp_faq_feedback_thanks"="از بازخورد شما سپاسگذاریم."; +"aihelp_faq_search_empty"="سوالات متداول یافت نشد."; +"aihelp_network_error_msg"="اوه! مشکلی پیش آمد"; +"aihelp_network_upload_log_title"="اتصال شبکه ضعیف"; +"aihelp_network_check_poor"="لطفاً تأیید کنید که شرایط شبکه را برای ما ارسال کنید ، این به ما در بهبود کیفیت اتصال شبکه شما کمک می کند."; +"aihelp_network_check_fine"="بعد از بررسی ، شبکه شما خوب است"; +"aihelp_network_no_connect"="لطفاً اتصال شبکه خود را بررسی کنید."; +"aihelp_media_upload_err_size"="اندازه پرونده از حد مجاز بیشتر است ، لطفا پرونده را کوچکتر از %dM بارگذاری کنید."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="پرونده های پشتیبانی نشده در حال حاضر ، فقط بارگیری mp4 ، png ، jpg ، jpeg در دسترس است."; +"aihelp_network_check_in_progress"="بررسی شبکه در حال انجام است و اگر اکنون خارج شوید ، بررسی قطع می شود."; +"aihelp_permission_ignored"="طفاً برای استفاده از عملکرد تصویر بارگذاری ، تنظیمات> مجوزها> ذخیره سازی را فعال کنید."; +"aihelp_permission_denied"="آپلود تصویر به مجوز دسترسی به فضای ذخیره نیاز دارد."; +"aihelp_permission_settings"="تنظیمات"; +"aihelp_ticket_closed"="بلیط فعلی شکایت مشتری بسته شده است."; +"aihelp_network_checking"="بررسی شبکه در حال انجام است"; +"aihelp_view_details"="جزییات را ببینید"; +"aihelp_yesterday"="دیروز"; +"aihelp_sunday"="یکشنبه"; +"aihelp_monday"="دوشنبه"; +"aihelp_tuesday"="سهشنبه"; +"aihelp_wednesday"="چهار شنبه"; +"aihelp_thursday"="پنج شنبه"; +"aihelp_friday"="جمعه"; +"aihelp_saturday"="شنبه"; +"aihelp_saturday_data_acquisition_failed"="جمع آوری اطلاعات ناموفق بود"; +"aihelp_send"="ارسال"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/fi.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/fi.lproj/Localizable.strings new file mode 100644 index 0000000..44a6267 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/fi.lproj/Localizable.strings @@ -0,0 +1,45 @@ + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="Vahvistaa"; +"aihelp_no"="Peruuta"; +"aihelp_view_details"="Tarkemmat tiedot"; +"aihelp_chat_hint"="Kirjoita viesti"; +"aihelp_data_not_found_msg"="ei vielä sisältöä"; +"aihelp_faq_search_hint"="Kuvaile ongelmasi"; +"aihelp_faq_fetching_faqs"="Haetaan vastauksiasi …"; +"aihelp_faq_feedback"="Anna palautteesi"; +"aihelp_faq_feedback_thanks"="Kiitos palautteestasi."; +"aihelp_faq_feedback_suggest"="Ehdotuksia"; +"aihelp_rate_satisfied"="Piti siitä"; +"aihelp_rate_dissatisfied"="Inhoaa sitä"; +"aihelp_rate_request"="Arvioi palvelumme"; +"aihelp_rate_finished"="Kiitos luokittelustamme."; +"aihelp_rate_app_hint"="Haluatko tarkistaa sovelluksen?"; +"aihelp_rate_button"="Hinta"; +"aihelp_rate_additional_feedback_message"="Muu palaute (valinnainen)"; +"aihelp_faq_search_empty"="Ei usein kysyttyjä kysymyksiä."; +"aihelp_network_error_msg"="Oho! Jotain meni pieleen"; +"aihelp_network_upload_log_title"="Huono verkkoyhteys"; +"aihelp_network_check_poor"="Vahvista lähettämällä meille verkkoehdot, mikä auttaa meitä parantamaan verkkoyhteytesi laatua."; +"aihelp_network_check_fine"="Tarkistuksen jälkeen verkko on kunnossa"; +"aihelp_network_no_connect"="Tarkista verkkoyhteytesi."; +"aihelp_media_upload_err_size"="Tiedoston koko ylittää rajan. Lataa tiedosto, joka on pienempi kuin%dM"; +"aihelp_media_upload_err_net"="Lähetys aikakatkaistiin, tiedoston lataaminen epäonnistui."; +"aihelp_media_upload_err_format"="Tiedostot, joita ei tueta. Tällä hetkellä vain mp4, png, jpg, jpegavailable saatavilla ladattaessa."; +"aihelp_network_check_in_progress"="Verkon tarkistus on käynnissä. Jos poistut nyt, tarkistus keskeytetään."; +"aihelp_permission_denied"="Kuvan lataaminen edellyttää lupa käyttää tallennustilaa."; +"aihelp_permission_ignored"="Ota käyttöön Asetukset> Käyttöoikeudet> Tallennustila käyttääksesi kuvan lataustoimintoa."; +"aihelp_permission_settings"="asetukset"; +"aihelp_network_checking"="Verkon tarkistus on käynnissä"; +"aihelp_ticket_closed"="Nykyinen asiakasvalituslippu on suljettu."; +"aihelp_yesterday"="Eilen"; +"aihelp_sunday"="sunnuntai"; +"aihelp_monday"="maanantai"; +"aihelp_tuesday"="tiistai"; +"aihelp_wednesday"="keskiviikko"; +"aihelp_thursday"="torstai"; +"aihelp_friday"="perjantai"; +"aihelp_saturday"="Lauantai"; +"aihelp_saturday_data_acquisition_failed"="Tietojen hankinta epäonnistui"; +"aihelp_send"="lähettää"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/fr.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/fr.lproj/Localizable.strings new file mode 100644 index 0000000..529c034 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/fr.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="déterminer"; +"aihelp_no"="Annuler"; +"aihelp_chat_hint"="entrez votre message"; +"aihelp_data_not_found_msg"="Oups, aucune donnée pertinente n\'a été trouvée."; +"aihelp_faq_search_hint"="Décrivez votre problème"; +"aihelp_faq_fetching_faqs"="Obtenir vos réponses…"; +"aihelp_faq_feedback_suggest"="Suggestions"; +"aihelp_rate_satisfied"="Aimé"; +"aihelp_rate_dissatisfied"="Je n\'ai pas aimé"; +"aihelp_rate_request"="Veuillez évaluer notre service."; +"aihelp_rate_finished"="Merci de nous avoir notés."; +"aihelp_rate_app_hint"="Vous aimez cette application, l\'évaluez?"; +"aihelp_rate_button"="Évaluer"; +"aihelp_rate_additional_feedback_message"="Tout autre commentaire (facultatif)"; +"aihelp_faq_feedback"="Veuillez saisir vos commentaires"; +"aihelp_faq_feedback_thanks"="Merci pour votre retour."; +"aihelp_faq_search_empty"="Aucune FAQ trouvée."; +"aihelp_network_error_msg"="Oups! Quelque chose a mal tourné"; +"aihelp_network_upload_log_title"="Mauvaise connexion réseau"; +"aihelp_network_check_poor"="Veuillez confirmer pour nous envoyer les conditions de réseau, ce qui nous aidera à améliorer la qualité de votre connexion réseau."; +"aihelp_network_check_fine"="Après vérification, votre réseau fonctionne bien"; +"aihelp_network_no_connect"="Veuillez vérifier votre connexion réseau."; +"aihelp_media_upload_err_size"="La taille du fichier dépasse la limite, veuillez télécharger le fichier inférieur à %dM."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="Fichiers non pris en charge. Actuellement, seuls mp4, png, jpg, jpeg sont disponibles lors du téléchargement."; +"aihelp_network_check_in_progress"="La vérification du réseau est en cours. Si vous quittez maintenant, la vérification sera interrompue."; +"aihelp_permission_denied"="Le téléchargement de l\'image nécessite l\'autorisation d\'accéder au stockage."; +"aihelp_permission_ignored"="Veuillez activer Paramètres> Autorisations> Stockage pour utiliser la fonction de téléchargement d\'image."; +"aihelp_permission_settings"="Paramètres"; +"aihelp_network_checking"="La vérification du réseau est en cours"; +"aihelp_ticket_closed"="Le ticket de réclamation client actuel a été fermé."; +"aihelp_view_details"="voir les détails"; +"aihelp_yesterday"="Hier"; +"aihelp_sunday"="dimanche"; +"aihelp_monday"="Lundi"; +"aihelp_tuesday"="Mardi"; +"aihelp_wednesday"="Mercredi"; +"aihelp_thursday"="Jeudi"; +"aihelp_friday"="Vendredi"; +"aihelp_saturday"="samedi"; +"aihelp_saturday_data_acquisition_failed"="Échec de l'acquisition des données"; +"aihelp_send"="envoyer"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/he.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/he.lproj/Localizable.strings new file mode 100644 index 0000000..728285e --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/he.lproj/Localizable.strings @@ -0,0 +1,45 @@ + +"aihelp_yes"="לְאַשֵׁר"; +"aihelp_op_cs"="HELP"; +"aihelp_no"="לְבַטֵל"; +"aihelp_view_details"="הצג פרטים"; +"aihelp_chat_hint"="הזן את ההודעה שלך"; +"aihelp_data_not_found_msg"="אופס, לא נמצאו נתונים רלוונטיים."; +"aihelp_faq_search_hint"="תאר את הבעיה שלך"; +"aihelp_faq_fetching_faqs"="מקבל את התשובות שלך …"; +"aihelp_faq_feedback_suggest"="הצעות"; +"aihelp_rate_satisfied"="אהבתי את זה"; +"aihelp_rate_dissatisfied"="לא אהב את זה"; +"aihelp_rate_request"="אנא דרג את השירות שלנו"; +"aihelp_rate_finished"="תודה שדרגת אותנו."; +"aihelp_rate_app_hint"="האם ברצונך לבדוק את האפליקציה?"; +"aihelp_rate_button"="ציון"; +"aihelp_rate_additional_feedback_message"="כל משוב אחר (אופציונלי)"; +"aihelp_faq_feedback"="אנא הזן את המשוב שלך"; +"aihelp_faq_feedback_thanks"="תודה לך על המשוב."; +"aihelp_faq_search_empty"="לא נמצאו שאלות נפוצות."; +"aihelp_network_error_msg"="אופס! משהו השתבש"; +"aihelp_network_upload_log_title"="חיבור רשת לקוי"; +"aihelp_network_check_poor"="אנא אשר לשלוח לנו תנאי רשת, שיעזרו לנו לשפר את איכות חיבור הרשת שלך."; +"aihelp_network_check_fine"="לאחר הבדיקה, הרשת שלך בסדר"; +"aihelp_network_no_connect"="אנא בדוק את חיבור הרשת שלך."; +"aihelp_media_upload_err_size"="גודל הקובץ חורג מהמגבלה, אנא העלה את הקובץ קטן מ-%dM"; +"aihelp_media_upload_err_net"="תם הזמן הקצוב להעברה, העלאת הקבצים נכשלה."; +"aihelp_media_upload_err_format"="קבצים שאינם נתמכים. נכון לעכשיו, רק mp4, png, jpg, jpeg avail זמין בעת ההעלאה."; +"aihelp_network_check_in_progress"="בדיקת רשת מתבצעת. אם תצא עכשיו, הבדיקה תיפסק."; +"aihelp_permission_denied"="העלאת תמונה מחייבת הרשאת גישה לאחסון."; +"aihelp_permission_ignored"="אנא הפעל הגדרות> הרשאות> אחסון לשימוש בפונקציית העלאת תמונה."; +"aihelp_permission_settings"="הגדרות"; +"aihelp_network_checking"="בדיקת הרשת בעיצומה"; +"aihelp_ticket_closed"="כרטיס התלונה הנוכחי של הלקוח נסגר."; +"aihelp_yesterday"="אתמול"; +"aihelp_sunday"="יוֹם רִאשׁוֹן"; +"aihelp_monday"="יוֹם שֵׁנִי"; +"aihelp_tuesday"="יוֹם שְׁלִישִׁי"; +"aihelp_wednesday"="יום רביעי"; +"aihelp_thursday"="יוֹם חֲמִישִׁי"; +"aihelp_friday"="יוֹם שִׁישִׁי"; +"aihelp_saturday"="יום שבת"; +"aihelp_saturday_data_acquisition_failed"="רכישת הנתונים נכשלה"; +"aihelp_send"="לִשְׁלוֹחַ"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/hi.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/hi.lproj/Localizable.strings new file mode 100644 index 0000000..77ea9e9 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/hi.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="निर्धारित"; +"aihelp_no"="रद्द करना"; +"aihelp_chat_hint"="अपना संदेश दर्ज करें"; +"aihelp_data_not_found_msg"="ओह, कोई प्रासंगिक डेटा नहीं मिला।"; +"aihelp_faq_search_hint"="अपनी समस्या बताएं"; +"aihelp_faq_fetching_faqs"="आपके उत्तर मिल रहे हैं ..."; +"aihelp_faq_feedback_suggest"="सुझाव"; +"aihelp_rate_satisfied"="अच्छा लगा"; +"aihelp_rate_dissatisfied"="इसे नापसंद किया"; +"aihelp_rate_request"="कृपया हमारी सेवा का मूल्यांकन करें।"; +"aihelp_rate_finished"="हमें रेटिंग के लिए धन्यवाद।"; +"aihelp_rate_app_hint"="इस ऐप की तरह, इसे रेट करें?"; +"aihelp_rate_button"="मूल्यांकन करना"; +"aihelp_rate_additional_feedback_message"="कोई अन्य प्रतिक्रिया (वैकल्पिक)"; +"aihelp_faq_feedback"="कृपया अपनी प्रतिक्रिया दें"; +"aihelp_faq_feedback_thanks"="धन्यवाद प्रतिक्रिया देना के लिए।"; +"aihelp_faq_search_empty"="कोई एफएक्यू नहीं मिला।"; +"aihelp_network_error_msg"="ऊप्स! कुछ गलत हो गया"; +"aihelp_network_upload_log_title"="खराब नेटवर्क कनेक्शन"; +"aihelp_network_check_poor"="कृपया हमें नेटवर्क की स्थिति भेजने की पुष्टि करें, जो हमें आपके नेटवर्क कनेक्शन की गुणवत्ता में सुधार करने में मदद करेगा।"; +"aihelp_network_check_fine"="जाँच करने के बाद, आपका नेटवर्क ठीक है"; +"aihelp_network_no_connect"="कृपया अपना नेटवर्क कनेक्शन जांचें।"; +"aihelp_media_upload_err_size"="फ़ाइल का आकार सीमा से अधिक है, कृपया फ़ाइल को %dM से छोटा अपलोड करें।"; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="असमर्थित फ़ाइलें। अपलोड करते समय वर्तमान में केवल mp4, png, jpg, jpeg उपलब्ध है।"; +"aihelp_network_check_in_progress"="नेटवर्क जाँच जारी है। यदि आप अभी बाहर निकलते हैं, तो जाँच बाधित हो जाएगी।"; +"aihelp_permission_denied"="अपलोड छवि को भंडारण तक पहुंचने की अनुमति की आवश्यकता है।"; +"aihelp_permission_ignored"="कृपया अपलोड छवि फ़ंक्शन का उपयोग करने के लिए सेटिंग्स> अनुमतियां> संग्रहण सक्षम करें।"; +"aihelp_permission_settings"="समायोजन"; +"aihelp_ticket_closed"="वर्तमान ग्राहक शिकायत टिकट को बंद कर दिया गया है।"; +"aihelp_network_checking"="नेटवर्क की जांच जारी है"; +"aihelp_view_details"="विवरण देखें"; +"aihelp_yesterday"="बिता कल"; +"aihelp_sunday"="रविवार"; +"aihelp_monday"="सोमवार"; +"aihelp_tuesday"="मंगलवार"; +"aihelp_wednesday"="बुधवार"; +"aihelp_thursday"="गुरूवार"; +"aihelp_friday"="शुक्रवार"; +"aihelp_saturday"="शनिवार"; +"aihelp_saturday_data_acquisition_failed"="डाटा अधिग्रहण विफल"; +"aihelp_send"="भेजना"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/hu.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/hu.lproj/Localizable.strings new file mode 100644 index 0000000..cf4f594 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/hu.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="IGEN"; +"aihelp_no"="megszünteti"; +"aihelp_chat_hint"="Írja be az üzenetét"; +"aihelp_data_not_found_msg"="Hoppá, releváns adatokat nem találtak."; +"aihelp_faq_search_hint"="Írja le a problémáját"; +"aihelp_faq_fetching_faqs"="Megkapja a válaszokat ..."; +"aihelp_faq_feedback_suggest"="Javaslatok"; +"aihelp_rate_satisfied"="Tetszett"; +"aihelp_rate_dissatisfied"="Tetszett"; +"aihelp_rate_request"="Kérjük, értékelje szolgáltatásunkat."; +"aihelp_rate_finished"="Köszönjük, hogy értékelte minket."; +"aihelp_rate_app_hint"="Mint ez az alkalmazás, értékelje?"; +"aihelp_rate_button"="pontszám"; +"aihelp_rate_additional_feedback_message"="Egyéb visszajelzés (választható)"; +"aihelp_faq_feedback"="Kérjük, adja meg visszajelzését"; +"aihelp_faq_feedback_thanks"="Köszönöm a visszajelzést."; +"aihelp_faq_search_empty"="Nem található GYIK."; +"aihelp_network_error_msg"="Hoppá! Valami elromlott"; +"aihelp_network_upload_log_title"="Rossz hálózati kapcsolat"; +"aihelp_network_check_poor"="Kérjük, erősítse meg, hogy elküldi nekünk a hálózati feltételeket, amelyek segítenek javítani a hálózati kapcsolat minőségét."; +"aihelp_network_check_fine"="Az ellenőrzés után a hálózat rendben van"; +"aihelp_network_no_connect"="Kérjük, ellenőrizze a hálózati kapcsolatot."; +"aihelp_media_upload_err_size"="A fájlméret meghaladja a korlátot, kérjük, töltse fel a (z) %dM -nél kisebb fájlt."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="Nem támogatott fájlok. Jelenleg csak mp4, png, jpg, jpeg érhető el feltöltéskor."; +"aihelp_network_check_in_progress"="A hálózat ellenőrzése folyamatban van. Ha most kilép, az ellenőrzést megszakítják."; +"aihelp_permission_denied"="A kép feltöltéséhez engedély szükséges a tárhely eléréséhez."; +"aihelp_permission_ignored"="Kérjük, engedélyezze a Beállítások> Engedélyek> Tárolás lehetőséget a képfeltöltési funkció használatához."; +"aihelp_permission_settings"="Beállítások"; +"aihelp_network_checking"="A hálózat ellenőrzése folyamatban van"; +"aihelp_ticket_closed"="A jelenlegi ügyfélpanaszjegyet lezárták."; +"aihelp_view_details"="lásd a részleteket"; +"aihelp_yesterday"="Tegnap"; +"aihelp_sunday"="vasárnap"; +"aihelp_monday"="hétfő"; +"aihelp_tuesday"="kedd"; +"aihelp_wednesday"="szerda"; +"aihelp_thursday"="csütörtök"; +"aihelp_friday"="péntek"; +"aihelp_saturday"="szombat"; +"aihelp_saturday_data_acquisition_failed"="Az adatgyűjtés sikertelen"; +"aihelp_send"="Küld"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/id.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/id.lproj/Localizable.strings new file mode 100644 index 0000000..50eafd8 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/id.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="határozza meg"; +"aihelp_no"="membatalkan"; +"aihelp_chat_hint"="Masukkan pesan Anda"; +"aihelp_data_not_found_msg"="Ups, tidak ada data relevan ditemukan."; +"aihelp_faq_search_hint"="Jelaskan masalah Anda"; +"aihelp_faq_fetching_faqs"="Mendapatkan jawaban Anda ..."; +"aihelp_faq_feedback_suggest"="Saran"; +"aihelp_rate_satisfied"="Menyukai ini"; +"aihelp_rate_dissatisfied"="Tidak suka itu"; +"aihelp_rate_request"="Silakan nilai layanan kami."; +"aihelp_rate_finished"="Terima kasih telah memberi peringkat pada kami."; +"aihelp_rate_app_hint"="Apakah Anda ingin meninjau Aplikasi?"; +"aihelp_rate_button"="Puan"; +"aihelp_rate_additional_feedback_message"="Umpan balik lain (opsional)"; +"aihelp_faq_feedback"="Silakan masukan masukan Anda"; +"aihelp_faq_feedback_thanks"="Terima kasih atas masukannya."; +"aihelp_faq_search_empty"="Tidak ada FAQ yang ditemukan."; +"aihelp_network_error_msg"="Ups! Ada yang salah"; +"aihelp_network_upload_log_title"="Koneksi jaringan buruk"; +"aihelp_network_check_poor"="Harap konfirmasi untuk mengirimkan kepada kami kondisi jaringan, yang akan membantu kami meningkatkan kualitas koneksi jaringan Anda."; +"aihelp_network_check_fine"="Harap konfirmasi untuk mengirimkan kepada kami kondisi jaringan, yang akan membantu kami meningkatkan kualitas koneksi jaringan Anda."; +"aihelp_network_no_connect"="Silakan periksa koneksi jaringan Anda."; +"aihelp_media_upload_err_size"="Ukuran file melebihi batas, harap unggah file lebih kecil dari %dM."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="File tidak didukung. Saat ini, hanya mp4, png, jpg, jpeg tersedia saat mengunggah."; +"aihelp_network_check_in_progress"="Pemeriksaan jaringan sedang berlangsung. Jika Anda keluar sekarang, pemeriksaan akan terhenti."; +"aihelp_permission_ignored"="Harap aktifkan Pengaturan> Izin> Penyimpanan untuk menggunakan fungsi unggah gambar."; +"aihelp_permission_denied"="Unggah gambar membutuhkan izin untuk mengakses penyimpanan."; +"aihelp_permission_settings"="Pengaturan"; +"aihelp_ticket_closed"="Tiket keluhan pelanggan saat ini telah ditutup."; +"aihelp_network_checking"="Pemeriksaan jaringan sedang berlangsung"; +"aihelp_view_details"="lihat detailnya"; +"aihelp_yesterday"="Kemarin"; +"aihelp_sunday"="Minggu"; +"aihelp_monday"="Senin"; +"aihelp_tuesday"="Selasa"; +"aihelp_wednesday"="Rabu"; +"aihelp_thursday"="Kamis"; +"aihelp_friday"="Jumat"; +"aihelp_saturday"="Sabtu"; +"aihelp_saturday_data_acquisition_failed"="Akuisisi data gagal"; +"aihelp_send"="mengirim"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/it.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/it.lproj/Localizable.strings new file mode 100644 index 0000000..2a528c4 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/it.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="determinare"; +"aihelp_no"="Annulla"; +"aihelp_chat_hint"="Inserisci il tuo messaggio"; +"aihelp_data_not_found_msg"="Spiacenti, non sono stati trovati dati rilevanti."; +"aihelp_faq_search_hint"="Descrivi il tuo problema"; +"aihelp_faq_fetching_faqs"="Ricevi le tue risposte ..."; +"aihelp_faq_feedback_suggest"="suggerimenti"; +"aihelp_rate_satisfied"="Mi è piaciuto"; +"aihelp_rate_dissatisfied"="Non mi è piaciuto"; +"aihelp_rate_request"="Si prega di valutare il nostro servizio."; +"aihelp_rate_finished"="Grazie per averci valutato."; +"aihelp_rate_app_hint"="Ti piace questa app, votala?"; +"aihelp_rate_button"="Valutare"; +"aihelp_rate_additional_feedback_message"="Qualsiasi altro feedback (facoltativo)"; +"aihelp_faq_feedback"="Inserisci il tuo feedback"; +"aihelp_faq_feedback_thanks"="Grazie per il feedback."; +"aihelp_faq_search_empty"="Nessuna FAQ trovata."; +"aihelp_network_error_msg"="Oops! Qualcosa è andato storto"; +"aihelp_network_upload_log_title"="Connessione di rete scadente"; +"aihelp_network_check_poor"="Conferma di inviarci le condizioni di rete, che ci aiuteranno a migliorare la qualità della tua connessione di rete."; +"aihelp_network_check_fine"="Dopo aver verificato, la tua rete va bene"; +"aihelp_network_no_connect"="Verifica la connessione di rete."; +"aihelp_media_upload_err_size"="La dimensione del file supera il limite, carica il file più piccolo di %dM."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="File non supportati. Attualmente, durante il caricamento sono disponibili solo mp4, png, jpg, jpeg."; +"aihelp_network_check_in_progress"="Il controllo della rete è in corso. Se esci adesso, il controllo verrà interrotto."; +"aihelp_permission_denied"="Il caricamento dell\'immagine richiede l\'autorizzazione per accedere allo spazio di archiviazione."; +"aihelp_permission_ignored"="Abilita Impostazioni> Autorizzazioni> Memoria per utilizzare la funzione di caricamento dell\'immagine."; +"aihelp_permission_settings"="impostazioni"; +"aihelp_network_checking"="Il controllo della rete è in corso"; +"aihelp_ticket_closed"="L\'attuale ticket di reclamo del cliente è stato chiuso."; +"aihelp_view_details"="vedi i dettagli"; +"aihelp_yesterday"="Ieri"; +"aihelp_sunday"="Domenica"; +"aihelp_monday"="Lunedi"; +"aihelp_tuesday"="martedì"; +"aihelp_wednesday"="mercoledì"; +"aihelp_thursday"="giovedi"; +"aihelp_friday"="Venerdì"; +"aihelp_saturday"="Sabato"; +"aihelp_saturday_data_acquisition_failed"="Acquisizione dati non riuscita"; +"aihelp_send"="Inviare"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/ja.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/ja.lproj/Localizable.strings new file mode 100644 index 0000000..c681d97 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/ja.lproj/Localizable.strings @@ -0,0 +1,47 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="確認"; +"aihelp_no"="キャンセル"; +"aihelp_chat_hint"="メッセージを入力してください"; +"aihelp_data_not_found_msg"="おっと、関連データは見つかりませんでした。"; +"aihelp_faq_search_hint"="あなたの問題を説明してください"; +"aihelp_faq_fetching_faqs"="答えを得ています…"; +"aihelp_faq_feedback_suggest"="提案"; +"aihelp_rate_satisfied"="好きでした"; +"aihelp_rate_dissatisfied"="嫌い"; +"aihelp_rate_request"="サービスを評価してください。"; +"aihelp_rate_finished"="評価いただきありがとうございます。"; +"aihelp_rate_app_hint"="アプリを確認しますか?"; +"aihelp_rate_button"="割合"; +"aihelp_rate_additional_feedback_message"="その他のフィードバック(オプション)"; +"aihelp_faq_feedback"="フィードバックを入力してください"; +"aihelp_faq_feedback_thanks"="フィードバックありがとうございます。"; +"aihelp_faq_search_empty"="FAQは見つかりませんでした。"; +"aihelp_network_error_msg"="おっとっと! 問題が発生しました"; +"aihelp_network_upload_log_title"="ネットワーク接続が悪い"; +"aihelp_network_check_poor"="ネットワーク接続の品質を向上させるのに役立つネットワーク条件を送信することを確認してください。"; +"aihelp_network_check_fine"="チェック後、ネットワークは正常です"; +"aihelp_network_no_connect"="ネットワーク接続を確認してください。"; +"aihelp_media_upload_err_size"="ファイルサイズが制限を超えています。%dM より小さいファイルをアップロードしてください。"; +"aihelp_media_upload_err_format"="サポートされていないファイル。 現在、アップロード時に使用できるのはmp4、png、jpg、jpegのみです。"; +"aihelp_network_check_in_progress"=" ネットワークチェックが進行中です。ここで終了すると、チェックが中断されます。"; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_permission_ignored"="画像のアップロード機能を使用するには、[設定]> [権限]> [ストレージ]を有効にしてください。"; +"aihelp_permission_denied"="画像をアップロードするには、ストレージへのアクセス許可が必要です。"; +"aihelp_permission_settings"="設定"; +"aihelp_ticket_closed"="現在の顧客苦情チケットはクローズされました。"; +"aihelp_network_checking"="ネットワークチェックが進行中です"; +"aihelp_view_details"="詳細を見る"; +"aihelp_monday"="月曜"; +"aihelp_tuesday"="火曜日"; +"aihelp_wednesday"="水曜日"; +"aihelp_thursday"="木曜日"; +"aihelp_friday"="金曜日"; +"aihelp_saturday"="土曜日"; +"aihelp_sunday"="日曜日"; +"aihelp_yesterday"="昨日"; +"aihelp_saturday_data_acquisition_failed"="データ取得に失敗しました"; +"aihelp_send"="发信"; + + diff --git a/res/AIHelpSupportSDK.bundle/lan/km.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/km.lproj/Localizable.strings new file mode 100644 index 0000000..bced600 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/km.lproj/Localizable.strings @@ -0,0 +1,47 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="កំណត់"; +"aihelp_no"="បោះបង់"; +"aihelp_chat_hint"="បញ្ចូលសាររបស់អ្នក"; +"aihelp_data_not_found_msg"="បញ្ចូលសាររបស់អ្នក"; +"aihelp_faq_fetching_faqs"="ទទួលបានចម្លើយរបស់អ្នក…"; +"aihelp_faq_search_hint"="ពិពណ៌នាអំពីបញ្ហារបស់អ្នក"; +"aihelp_faq_feedback_suggest"="ការផ្តល់យោបល់"; +"aihelp_rate_satisfied"="ចូលចិត្តវា"; +"aihelp_rate_dissatisfied"="មិនចូលចិត្តវា"; +"aihelp_rate_request"="សូមវាយតម្លៃសេវាកម្មរបស់យើង។"; +"aihelp_rate_finished"="សូមអរគុណសម្រាប់ការវាយតម្លៃពួកយើង។"; +"aihelp_rate_app_hint"="ចូលចិត្តកម្មវិធីនេះវាយតម្លៃវាទេ?"; +"aihelp_rate_button"="ពិន្ទុ"; +"aihelp_rate_additional_feedback_message"="មតិប្រតិកម្មផ្សេងទៀត (ស្រេចចិត្ត)"; +"aihelp_faq_feedback"="សូមបញ្ចូលមតិរបស់អ្នក"; +"aihelp_faq_feedback_thanks"="សូមអរគុណសម្រាប់ការឆ្លើយតប។"; +"aihelp_faq_search_empty"="រកមិនឃើញសំណួរគេសួរញឹកញាប់"; +"aihelp_network_error_msg"="អូ! មាន"; +"aihelp_network_upload_log_title"="ការតភ្ជាប់បណ្តាញខ្សោយ"; +"aihelp_network_check_poor"="សូមបញ្ជាក់ថានឹងផ្ញើលក្ខខណ្ឌបណ្តាញមកយើងដែលនឹងជួយយើងបង្កើនគុណភាពនៃការភ្ជាប់បណ្តាញរបស់អ្នក។"; +"aihelp_network_check_fine"="បន្ទាប់ពីពិនិត្យមើលបណ្តាញរបស់អ្នកគឺល្អ"; +"aihelp_network_no_connect"="សូមពិនិត្យការភ្ជាប់បណ្តាញរបស់អ្នក។"; +"aihelp_media_upload_err_size"="ទំហំឯកសារលើសពីដែនកំណត់សូមផ្ទុកឯកសារតូចជាង %dM ។"; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="ឯកសារដែលមិនបានគាំទ្រ។ បច្ចុប្បន្នមានតែ mp4, png, jpg, jpeg ដែលអាចប្រើបាននៅពេលផ្ទុកឡើង។"; +"aihelp_network_check_in_progress"="ការត្រួតពិនិត្យបណ្តាញកំពុងដំណើរការប្រសិនបើអ្នកចាកចេញឥឡូវនេះការត្រួតពិនិត្យនឹងត្រូវបានរំខាន។"; +"aihelp_permission_ignored"="សូមបើកការកំណត់> សិទ្ធិអនុញ្ញាត> ឧបករណ៍ផ្ទុកដើម្បីប្រើមុខងារផ្ទុករូបភាពឡើង។"; +"aihelp_permission_denied"="ផ្ទុកឡើងរូបភាពទាមទារការអនុញ្ញាតឱ្យចូលទៅកាន់កន្លែងផ្ទុក។"; +"aihelp_permission_settings"="ការកំណត់"; +"aihelp_network_checking"="ការត្រួតពិនិត្យបណ្តាញកំពុងដំណើរការ"; +"aihelp_ticket_closed"="សំបុត្របណ្តឹងរបស់អតិថិជនបច្ចុប្បន្នត្រូវបានបិទ។"; +"aihelp_view_details"="មើលព័ត៌មានលម្អិត"; +"aihelp_yesterday"="ម្សិលមិញ"; +"aihelp_sunday"="ថ្ងៃអាទិត្"; +"aihelp_monday"="ថ្ងៃច័ន្ទ"; +"aihelp_tuesday"="ថ្ងៃអង្គារ"; +"aihelp_wednesday"="ថ្ងៃពុធ"; +"aihelp_thursday"="ថ្ងៃព្រហស្បតិ៍"; +"aihelp_friday"="ថ្ងៃសុក្"; +"aihelp_saturday"="ថ្ងៃសៅរ៍"; +"aihelp_saturday_data_acquisition_failed"="ការទទួលយកទិន្នន័យបានបរាជ័យ"; +"aihelp_send"="ផ្ញើ"; + + diff --git a/res/AIHelpSupportSDK.bundle/lan/ko.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/ko.lproj/Localizable.strings new file mode 100644 index 0000000..80d3879 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/ko.lproj/Localizable.strings @@ -0,0 +1,47 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="확인"; +"aihelp_no"="취소"; +"aihelp_chat_hint"="메시지를 입력하십시오"; +"aihelp_data_not_found_msg"="죄송합니다. 관련 데이터가 없습니다."; +"aihelp_faq_search_hint"="문제 설명"; +"aihelp_faq_fetching_faqs"="답을 얻는 중…"; +"aihelp_faq_feedback_suggest"="제안"; +"aihelp_rate_satisfied"="좋아"; +"aihelp_rate_dissatisfied"="싫어"; +"aihelp_rate_request"="우리의 서비스를 평가하십시오."; +"aihelp_rate_finished"="우리를 평가 해 주셔서 감사합니다."; +"aihelp_rate_app_hint"="이 앱처럼 평가 하시겠습니까?"; +"aihelp_rate_button"="평가하기"; +"aihelp_rate_additional_feedback_message"="다른 의견 (선택 사항)"; +"aihelp_faq_feedback"="의견을 입력하십시오"; +"aihelp_faq_feedback_thanks"="의견 주셔서 감사합니다."; +"aihelp_faq_search_empty"="FAQ가 없습니다."; +"aihelp_network_error_msg"="죄송합니다! 문제가 발생했습니다"; +"aihelp_network_upload_log_title"="네트워크 연결 불량"; +"aihelp_network_check_poor"="네트워크 상태를 보내 주시면 네트워크 연결 품질을 개선하는 데 도움이됩니다."; +"aihelp_network_check_fine"="확인 후 네트워크가 정상입니다"; +"aihelp_network_no_connect"="네트워크 연결을 확인하십시오."; +"aihelp_media_upload_err_size"="파일 크기가 한도를 초과했습니다. %dM 보다 작은 파일을 업로드하십시오."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="지원되지 않는 파일. 현재 업로드시 mp4, png, jpg, jpeg 만 사용할 수 있습니다."; +"aihelp_network_check_in_progress"="네트워크 확인이 진행 중입니다. 지금 종료하면 확인이 중단됩니다."; +"aihelp_permission_denied"="이미지를 업로드하려면 저장소 액세스 권한이 필요합니다."; +"aihelp_permission_ignored"="이미지 업로드 기능을 사용하려면 설정> 권한> 저장소를 활성화하세요."; +"aihelp_permission_settings"="설정"; +"aihelp_ticket_closed"="현재 고객 불만 티켓이 마감되었습니다."; +"aihelp_network_checking"="네트워크 확인이 진행 중입니다."; +"aihelp_view_details"="자세히보다"; +"aihelp_yesterday"="어제"; +"aihelp_sunday"="일요일"; +"aihelp_monday"="월요일"; +"aihelp_tuesday"="화요일"; +"aihelp_wednesday"="수요일"; +"aihelp_thursday"="목요일"; +"aihelp_friday"="금요일"; +"aihelp_saturday"="토요일"; +"aihelp_saturday_data_acquisition_failed"="데이터 수집 실패"; +"aihelp_send"="보내다"; + + diff --git a/res/AIHelpSupportSDK.bundle/lan/ms.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/ms.lproj/Localizable.strings new file mode 100644 index 0000000..c73c0c0 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/ms.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="menentukan"; +"aihelp_no"="membatalkan"; +"aihelp_chat_hint"="Masukkan mesej anda"; +"aihelp_data_not_found_msg"="Op, tidak ada data yang berkaitan."; +"aihelp_faq_search_hint"="Huraikan masalah anda"; +"aihelp_faq_fetching_faqs"="Mendapatkan jawapan anda …"; +"aihelp_faq_feedback_suggest"="Cadangan"; +"aihelp_rate_satisfied"="Menyukainya"; +"aihelp_rate_dissatisfied"="Tidak suka"; +"aihelp_rate_request"="Sila nilaikan perkhidmatan kami."; +"aihelp_rate_finished"="Terima kasih kerana memberi penilaian kepada kami."; +"aihelp_rate_app_hint"="Suka aplikasi ini, nilaikan?"; +"aihelp_rate_button"="Untuk menilai"; +"aihelp_rate_additional_feedback_message"="Sebarang maklum balas lain (pilihan)"; +"aihelp_faq_feedback"="Sila masukkan maklum balas anda"; +"aihelp_faq_feedback_thanks"="Terima kasih atas maklum balas."; +"aihelp_faq_search_empty"="Soalan Lazim tidak dijumpai."; +"aihelp_network_error_msg"="Alamak! Ada yang tidak kena"; +"aihelp_network_upload_log_title"="Sambungan rangkaian lemah"; +"aihelp_network_check_poor"="Sila sahkan untuk menghantar kami keadaan rangkaian, yang akan membantu kami meningkatkan kualiti sambungan rangkaian anda."; +"aihelp_network_check_fine"="Setelah memeriksa, rangkaian anda baik-baik saja"; +"aihelp_network_no_connect"="Sila periksa sambungan rangkaian anda."; +"aihelp_media_upload_err_size"="Ukuran fail melebihi had, muat naik fail lebih kecil daripada %dM."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="Fail yang tidak disokong. Pada masa ini, hanya mp4, png, jpg, jpeg yang tersedia semasa memuat naik."; +"aihelp_network_check_in_progress"="Pemeriksaan rangkaian sedang berlangsung. Jika anda keluar sekarang, pemeriksaan akan terganggu."; +"aihelp_permission_ignored"="Sila aktifkan Tetapan> Kebenaran> Penyimpanan untuk menggunakan fungsi memuat naik gambar."; +"aihelp_permission_denied"="Muat naik gambar memerlukan kebenaran mengakses storan."; +"aihelp_permission_settings"="Tetapan"; +"aihelp_network_checking"="Pemeriksaan rangkaian sedang dijalankan"; +"aihelp_ticket_closed"="Tiket aduan pelanggan semasa telah ditutup."; +"aihelp_view_details"="lihat butiran"; +"aihelp_yesterday"="Semalam"; +"aihelp_sunday"="Ahad"; +"aihelp_monday"="Isnin"; +"aihelp_tuesday"="Selasa"; +"aihelp_wednesday"="Hari Rabu"; +"aihelp_thursday"="Khamis"; +"aihelp_friday"="Jumaat"; +"aihelp_saturday"="Sabtu"; +"aihelp_saturday_data_acquisition_failed"="Pemerolehan data gagal"; +"aihelp_send"="hantar"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/my.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/my.lproj/Localizable.strings new file mode 100644 index 0000000..ab3555d --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/my.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="ဆုံးဖြတ်ရန်"; +"aihelp_no"="ပယ်ဖျက်"; +"aihelp_chat_hint"="သင့်စာကိုရေးထည့်ပါ"; +"aihelp_data_not_found_msg"="အိုးမသက်ဆိုင်သောအချက်အလက်များကိုရှာမတွေ့ပါ။"; +"aihelp_faq_search_hint"="သင်၏ပြproblemနာကိုဖော်ပြပါ"; +"aihelp_faq_fetching_faqs"="သင့်အဖြေများကိုရယူပါ။"; +"aihelp_faq_feedback_suggest"="အကြံပြုချက်များ"; +"aihelp_rate_satisfied"="ကြိုက်တယ်"; +"aihelp_rate_dissatisfied"="ဒါကိုမကြိုက်ဘူး"; +"aihelp_rate_request"="ကျေးဇူးပြု၍ ကျွန်ုပ်တို့၏ဝန်ဆောင်မှုကို"; +"aihelp_rate_finished"="ကျွန်တော်တို့ကိုအဆင့်သတ်မှတ်ချက်အတွက်ကျေးဇူးတင်ပါတယ်။"; +"aihelp_rate_app_hint"="ဒီ app လိုပဲ၊"; +"aihelp_rate_button"="အဆင့်သတ်မှတ်ရန်"; +"aihelp_rate_additional_feedback_message"="အခြားတုံ့ပြန်ချက်များ (optional)"; +"aihelp_faq_feedback"="ကျေးဇူးပြု၍ သင့်ထင်မြင်ချက်ကိုဖြည့်သွင်းပါ"; +"aihelp_faq_feedback_thanks"="တုံ့ပြန်ချက်အတွက်ကျေးဇူးတင်ပါသည်။"; +"aihelp_faq_search_empty"="မကြာခဏမေးလေ့ရှိသောမေးခွန်းများမရှိပါ။"; +"aihelp_network_error_msg"="အိုး! တစ်ခုခုမှားယွင်းသွားတယ်"; +"aihelp_network_upload_log_title"="ညံ့ဖျင်းသောကွန်ယက်ချိတ်ဆက်မှု"; +"aihelp_network_check_poor"="ကျေးဇူးပြု၍ သင်၏ network connection အရည်အသွေးတိုးတက်စေရန်အထောက်အကူဖြစ်စေမည့် network အခြေအနေများအားပေးပို့ရန်အတည်ပြုပါ။"; +"aihelp_network_check_fine"="စစ်ဆေးပြီးသည်နှင့်သင်၏ကွန်ယက်အဆင်ပြေသည်"; +"aihelp_network_no_connect"="ကျေးဇူးပြု၍ သင်၏ကွန်ရက်ချိတ်ဆက်မှုကိုစစ်ဆေးပါ။"; +"aihelp_media_upload_err_size"="ဖိုင်အရွယ်အစားသည်ကန့်သတ်ချက်ထက်ကျော်လွန်ပြီးဖိုင် %dM မ်ထက်နည်းသောဖိုင်ကိုပို့ပါ။"; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="မထောက်ပံ့သောဖိုင်များ။ လောလောဆယ်တင်ပို့စဉ် mp4, png, jpg, jpeg သာရရှိနိုင်သည်။"; +"aihelp_network_check_in_progress"="ကွန်ယက်ကိုစစ်ဆေးနေသည်။ သင်ယခုထွက်သွားပါကစစ်ဆေးမှုကိုရပ်တန့်သွားလိမ့်မည်။"; +"aihelp_permission_denied"="တင်ထားသောပုံသည်သိုလှောင်မှုကိုရယူရန်ခွင့်ပြုချက်လိုအပ်သည်။"; +"aihelp_permission_ignored"="ကျေးဇူးပြု၍ Setting> Permissions> Storage ကို upload image function ကိုသုံးနိုင်ပါတယ်။"; +"aihelp_permission_settings"="ချိန်ညှိချက်များ"; +"aihelp_network_checking"="ကွန်ယက်ကိုစစ်ဆေးနေသည်"; +"aihelp_ticket_closed"="လက်ရှိဖောက်သည်တိုင်ကြားချက်လက်မှတ်ကိုပိတ်လိုက်ပါပြီ"; +"aihelp_view_details"="အသေးစိတ်ကြည့်ရှုပါ"; +"aihelp_yesterday"="မနေ့က"; +"aihelp_sunday"="တနင်္ဂနွေနေ့"; +"aihelp_monday"="တနင်္လာနေ့"; +"aihelp_tuesday"="အင်္ဂါနေ့"; +"aihelp_wednesday"="ဗုဒ္ဓဟူးနေ့"; +"aihelp_thursday"="ကြာသပတေးနေ့"; +"aihelp_friday"="သောကြာနေ့"; +"aihelp_saturday"="စနေနေ့"; +"aihelp_saturday_data_acquisition_failed"="ဒေတာရယူမှုမအောင်မြင်ပါ"; +"aihelp_send"="ပို့ပါ"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/nb.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/nb.lproj/Localizable.strings new file mode 100644 index 0000000..4dd2a46 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/nb.lproj/Localizable.strings @@ -0,0 +1,45 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="fastslå"; +"aihelp_no"="Avbryt"; +"aihelp_chat_hint"="Skriv inn meldingen"; +"aihelp_data_not_found_msg"="Beklager, ingen relevante data ble funnet."; +"aihelp_faq_search_hint"="Beskriv problemet ditt"; +"aihelp_faq_fetching_faqs"="Få svarene dine ..."; +"aihelp_faq_feedback_suggest"="forslag"; +"aihelp_rate_satisfied"="Likte det"; +"aihelp_rate_dissatisfied"="Mislikte det"; +"aihelp_rate_request"="Vennligst ranger vår tjeneste."; +"aihelp_rate_finished"="Takk for at du vurderer oss."; +"aihelp_rate_app_hint"="Liker du denne appen, vurderer du den?"; +"aihelp_rate_button"="poengsum"; +"aihelp_rate_additional_feedback_message"="Andre tilbakemeldinger (valgfritt)"; +"aihelp_faq_feedback"="Skriv inn tilbakemeldingen"; +"aihelp_faq_feedback_thanks"="Takk for tilbakemeldingen."; +"aihelp_faq_search_empty"="Ingen vanlige spørsmål funnet."; +"aihelp_network_error_msg"="Oops! Noe gikk galt"; +"aihelp_network_upload_log_title"="Dårlig nettverkstilkobling"; +"aihelp_network_check_poor"="Bekreft å sende oss nettverksforhold, noe som vil hjelpe oss å forbedre kvaliteten på nettverkstilkoblingen din."; +"aihelp_network_check_fine"="Etter å ha sjekket er nettverket ditt bra"; +"aihelp_network_no_connect"="Kontroller nettverkstilkoblingen din."; +"aihelp_media_upload_err_size"="Filstørrelsen overskrider grensen. Last opp filen mindre enn %dM."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="Ikke-støttede filer. Foreløpig er bare mp4, png, jpg, jpeg tilgjengelig når du laster opp."; +"aihelp_network_check_in_progress"="Nettverkskontroll pågår. Hvis du avslutter nå, vil kontrollen bli avbrutt."; +"aihelp_permission_ignored"="Aktiver Innstillinger> Tillatelser> Lagring for å bruke opplastingsbildefunksjonen."; +"aihelp_permission_denied"="Last opp bilde krever tillatelse til å få tilgang til lagring."; +"aihelp_permission_settings"="Innstillinger"; +"aihelp_ticket_closed"="Den nåværende kundeklagebilletten er stengt."; +"aihelp_network_checking"="Nettverkskontroll pågår"; +"aihelp_view_details"="se detaljer"; +"aihelp_yesterday"="I går"; +"aihelp_sunday"="søndag"; +"aihelp_monday"="mandag"; +"aihelp_tuesday"="tirsdag"; +"aihelp_wednesday"="onsdag"; +"aihelp_thursday"="Torsdag"; +"aihelp_friday"="fredag"; +"aihelp_saturday"="lørdag"; +"aihelp_saturday_data_acquisition_failed"="Datainnsamling mislyktes"; +"aihelp_send"="sende"; diff --git a/res/AIHelpSupportSDK.bundle/lan/nl.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/nl.lproj/Localizable.strings new file mode 100644 index 0000000..b3546b2 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/nl.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="bepalen"; +"aihelp_no"="Annuleer"; +"aihelp_chat_hint"="Voer inhoud in"; +"aihelp_data_not_found_msg"="Oeps, er zijn geen relevante gegevens gevonden."; +"aihelp_faq_search_hint"="Beschrijf uw probleem"; +"aihelp_faq_fetching_faqs"="Uw antwoorden krijgen ..."; +"aihelp_faq_feedback_suggest"="Suggesties"; +"aihelp_rate_satisfied"="Vond het leuk"; +"aihelp_rate_dissatisfied"="Ik vond het niet leuk"; +"aihelp_rate_request"="Beoordeel onze service."; +"aihelp_rate_finished"="Bedankt voor het beoordelen van ons."; +"aihelp_rate_app_hint"="Vind je deze app leuk?"; +"aihelp_rate_button"="Evaluatie"; +"aihelp_rate_additional_feedback_message"="Alle andere feedback (optioneel)"; +"aihelp_faq_feedback"="Voer uw feedback in"; +"aihelp_faq_feedback_thanks"="Bedankt voor de feedback."; +"aihelp_faq_search_empty"="Geen veelgestelde vragen gevonden."; +"aihelp_network_error_msg"="Oeps! Er is iets fout gegaan"; +"aihelp_network_upload_log_title"="Slechte netwerkverbinding"; +"aihelp_network_check_poor"="Bevestig dat u ons netwerkvoorwaarden stuurt, die ons zullen helpen de kwaliteit van uw netwerkverbinding te verbeteren."; +"aihelp_network_check_fine"="Na controle is uw netwerk in orde"; +"aihelp_network_no_connect"="Controleer uw netwerkverbinding."; +"aihelp_media_upload_err_size"="De bestandsgrootte overschrijdt de limiet, upload het bestand kleiner dan %dM."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="Niet-ondersteunde bestanden. Momenteel zijn alleen mp4, png, jpg, jpeg beschikbaar bij het uploaden."; +"aihelp_network_check_in_progress"="De netwerkcontrole wordt uitgevoerd. Als u nu afsluit, wordt de controle onderbroken."; +"aihelp_permission_ignored"="Schakel Instellingen> Machtigingen> Opslag in om de functie voor het uploaden van afbeeldingen te gebruiken."; +"aihelp_permission_denied"="Upload afbeelding vereist toestemming voor toegang tot opslag."; +"aihelp_permission_settings"="Instellingen"; +"aihelp_network_checking"="Netwerkcontrole wordt uitgevoerd"; +"aihelp_ticket_closed"="Het huidige klantklachtenticket is gesloten."; +"aihelp_view_details"="zie de details"; +"aihelp_yesterday"="Gisteren"; +"aihelp_sunday"="zondag"; +"aihelp_monday"="maandag"; +"aihelp_tuesday"="dinsdag"; +"aihelp_wednesday"="woensdag"; +"aihelp_thursday"="donderdag"; +"aihelp_friday"="vrijdag"; +"aihelp_saturday"="zaterdag"; +"aihelp_saturday_data_acquisition_failed"="Gegevensverzameling mislukt"; +"aihelp_send"="versturen"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/pl.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/pl.lproj/Localizable.strings new file mode 100644 index 0000000..802a380 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/pl.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="określać"; +"aihelp_no"="Anuluj"; +"aihelp_chat_hint"="Wpisz swoją wiadomość"; +"aihelp_data_not_found_msg"="Ups, nie znaleziono odpowiednich danych."; +"aihelp_faq_search_hint"="Opisz swój problem"; +"aihelp_faq_fetching_faqs"="Uzyskiwanie odpowiedzi…"; +"aihelp_faq_feedback_suggest"="Propozycje"; +"aihelp_rate_satisfied"="Lubiłem to"; +"aihelp_rate_dissatisfied"="Nie podobało mi się to"; +"aihelp_rate_request"="Oceń naszą usługę."; +"aihelp_rate_finished"="Dziękujemy za ocenę nas."; +"aihelp_rate_app_hint"="Podoba Ci się ta aplikacja?"; +"aihelp_rate_button"="Ocenić"; +"aihelp_rate_additional_feedback_message"="Wszelkie inne opinie (opcjonalnie)"; +"aihelp_faq_feedback"="Podaj swoją opinię"; +"aihelp_faq_feedback_thanks"="Dziękuję za zwrotną informację."; +"aihelp_faq_search_empty"="Nie znaleziono najczęściej zadawanych pytań."; +"aihelp_network_error_msg"="Ups! Coś poszło nie tak"; +"aihelp_network_upload_log_title"="Słabe połączenie sieciowe"; +"aihelp_network_check_poor"="Potwierdź, aby przesłać nam warunki sieciowe, które pomogą nam poprawić jakość twojego połączenia sieciowego."; +"aihelp_network_check_fine"="Potwierdź, aby przesłać nam warunki sieciowe, które pomogą nam poprawić jakość twojego połączenia sieciowego."; +"aihelp_network_no_connect"="Sprawdź połączenie sieciowe."; +"aihelp_media_upload_err_size"="Rozmiar pliku przekracza limit, prześlij plik mniejszy niż %dM."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="Nieobsługiwane pliki. Obecnie tylko mp4, png, jpg, jpeg są dostępne podczas przesyłania."; +"aihelp_network_check_in_progress"="Trwa sprawdzanie sieci. Jeśli teraz zakończysz, sprawdzanie zostanie przerwane."; +"aihelp_permission_ignored"="Włącz Ustawienia> Uprawnienia> Pamięć, aby użyć funkcji przesyłania obrazu."; +"aihelp_permission_denied"="Prześlij obraz wymaga pozwolenia na dostęp do pamięci."; +"aihelp_permission_settings"="Ustawienia"; +"aihelp_network_checking"="Trwa sprawdzanie sieci"; +"aihelp_ticket_closed"="Bieżące zgłoszenie reklamacyjne klienta zostało zamknięte."; +"aihelp_view_details"="patrz szczegóły"; +"aihelp_yesterday"="Wczoraj"; +"aihelp_sunday"="niedziela"; +"aihelp_monday"="poniedziałek"; +"aihelp_tuesday"="wtorek"; +"aihelp_wednesday"="środa"; +"aihelp_thursday"="czwartek"; +"aihelp_friday"="piątek"; +"aihelp_saturday"="sobota"; +"aihelp_saturday_data_acquisition_failed"="Akwizycja danych nie powiodła się"; +"aihelp_send"="wysłać"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/pt.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/pt.lproj/Localizable.strings new file mode 100644 index 0000000..5f79844 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/pt.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="determinar"; +"aihelp_no"="cancelar"; +"aihelp_chat_hint"="Digite sua mensagem"; +"aihelp_data_not_found_msg"="Ops, nenhum dado relevante foi encontrado."; +"aihelp_faq_search_hint"="Descreva seu problema"; +"aihelp_faq_fetching_faqs"="Obtendo suas respostas …"; +"aihelp_faq_feedback_suggest"="Sugestões"; +"aihelp_rate_satisfied"="Gostei"; +"aihelp_rate_dissatisfied"="Não gostei"; +"aihelp_rate_request"="Por favor, classifique o nosso serviço."; +"aihelp_rate_finished"="Obrigado por nos avaliar."; +"aihelp_rate_app_hint"="Como este aplicativo, avalie?"; +"aihelp_rate_button"="Para avaliar"; +"aihelp_rate_additional_feedback_message"="Qualquer outro feedback (opcional)"; +"aihelp_faq_feedback"="Por favor insira seu feedback"; +"aihelp_faq_feedback_thanks"="Obrigado pelo feedback."; +"aihelp_faq_search_empty"="Nenhuma FAQ encontrada."; +"aihelp_network_error_msg"="Opa! Algo deu errado"; +"aihelp_network_upload_log_title"="Conexão de rede ruim"; +"aihelp_network_check_poor"="Confirme para nos enviar as condições da rede, o que nos ajudará a melhorar a qualidade da sua conexão de rede."; +"aihelp_network_check_fine"="Após a verificação, sua rede está bem"; +"aihelp_network_no_connect"="Por favor, verifique sua conexão de rede."; +"aihelp_media_upload_err_size"="O tamanho do arquivo exceder o limite, faça o upload do arquivo menor que %dM."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="Arquivos não suportados. Atualmente, apenas mp4, png, jpg, jpeg estão disponíveis ao fazer o upload."; +"aihelp_network_check_in_progress"="A verificação de rede está em andamento. Se você sair agora, a verificação será interrompida."; +"aihelp_permission_denied"="Carregar imagem requer permissão de acesso ao armazenamento."; +"aihelp_permission_ignored"="Ative Configurações> Permissões> Armazenamento para usar a função de upload de imagem."; +"aihelp_permission_settings"="Configurações"; +"aihelp_ticket_closed"="O tíquete de reclamação do cliente atual foi fechado."; +"aihelp_network_checking"="Verificação de rede em andamento"; +"aihelp_view_details"="Veja detalhes"; +"aihelp_yesterday"="Ontem"; +"aihelp_sunday"="Domigo"; +"aihelp_monday"="Segunda-feira"; +"aihelp_tuesday"="terça"; +"aihelp_wednesday"="Quarta feira"; +"aihelp_thursday"="Quinta feira"; +"aihelp_friday"="Sexta-feira"; +"aihelp_saturday"="sábado"; +"aihelp_saturday_data_acquisition_failed"="Aquisição de dados falhou"; +"aihelp_send"="mandar"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/ro.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/ro.lproj/Localizable.strings new file mode 100644 index 0000000..d9bea18 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/ro.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="a determina"; +"aihelp_no"="Anulare"; +"aihelp_chat_hint"="Introduceți-vă mesajul"; +"aihelp_data_not_found_msg"="Nu am găsit date relevante."; +"aihelp_faq_search_hint"="Descrieți problema dvs."; +"aihelp_faq_fetching_faqs"="Obținerea răspunsurilor tale …"; +"aihelp_faq_feedback_suggest"="sugestii"; +"aihelp_rate_satisfied"="Mi-a placut"; +"aihelp_rate_dissatisfied"="Nu i-a plăcut"; +"aihelp_rate_request"="Vă rugăm să evaluați serviciul nostru."; +"aihelp_rate_finished"="Vă mulțumim că ne-ați evaluat."; +"aihelp_rate_app_hint"="Vă place această aplicație, evaluați-o?"; +"aihelp_rate_button"="A evalua"; +"aihelp_rate_additional_feedback_message"="Orice alt feedback (opțional)"; +"aihelp_faq_feedback"="Vă rugăm să introduceți feedback"; +"aihelp_faq_feedback_thanks"="Vă mulțumim pentru feedback."; +"aihelp_faq_search_empty"="Nu au fost găsite întrebări frecvente."; +"aihelp_network_error_msg"="Hopa! Ceva n-a mers bine"; +"aihelp_network_upload_log_title"="Conexiune de rețea slabă"; +"aihelp_network_check_poor"="Vă rugăm să confirmați să ne trimiteți condițiile de rețea, ceea ce ne va ajuta să îmbunătățim calitatea conexiunii dvs. de rețea."; +"aihelp_network_check_fine"="După verificare, rețeaua dvs. este în regulă"; +"aihelp_network_no_connect"="Verificați conexiunea la rețea."; +"aihelp_media_upload_err_size"="Mărimea fișierului depășește limita, vă rugăm să încărcați fișierul mai mic decât %dM."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="Fișiere neacceptate. În prezent, numai la încărcare, mp4, png, jpg, jpeg sunt disponibile."; +"aihelp_network_check_in_progress"="Verificarea rețelei este în curs. Dacă ieșiți acum, verificarea va fi întreruptă."; +"aihelp_permission_ignored"="Vă rugăm să activați Setări> Permisiuni> Stocare pentru a utiliza funcția de încărcare a imaginii."; +"aihelp_permission_denied"="Încărcarea imaginii necesită permisiunea accesării stocării."; +"aihelp_permission_settings"="Setări"; +"aihelp_network_checking"="Verificarea rețelei este în curs"; +"aihelp_ticket_closed"="Biletul actual de reclamație a clienților a fost închis."; +"aihelp_view_details"="Vezi detalii"; +"aihelp_yesterday"="Ieri"; +"aihelp_sunday"="duminică"; +"aihelp_monday"="luni"; +"aihelp_tuesday"="marţi"; +"aihelp_wednesday"="miercuri"; +"aihelp_thursday"="joi"; +"aihelp_friday"="vineri"; +"aihelp_saturday"="sâmbătă"; +"aihelp_saturday_data_acquisition_failed"="Achiziționarea datelor nu a reușit"; +"aihelp_send"="trimite"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/ru.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/ru.lproj/Localizable.strings new file mode 100644 index 0000000..278c964 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/ru.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="определить"; +"aihelp_no"="Отмена"; +"aihelp_chat_hint"="Введите сообщение"; +"aihelp_data_not_found_msg"="К сожалению, соответствующие данные не найдены."; +"aihelp_faq_search_hint"="Опишите свою проблему"; +"aihelp_faq_fetching_faqs"="Получение ваших ответов…"; +"aihelp_faq_feedback"="Предложения"; +"aihelp_media_upload_err_format"="Неподдерживаемые файлы. В настоящее время при загрузке доступны только mp4, png, jpg, jpeg."; +"aihelp_media_upload_err_size"="Размер файла превышает лимит, пожалуйста, загрузите файл меньше, чем %dM."; +"aihelp_network_no_connect"="Пожалуйста, проверьте ваше сетевое соединение."; +"aihelp_network_check_fine"="После проверки ваша сеть в порядке"; +"aihelp_network_check_poor"="Пожалуйста, подтвердите, чтобы отправить нам условия сети, которые помогут нам улучшить качество вашего сетевого подключения."; +"aihelp_network_upload_log_title"="Плохое сетевое соединение"; +"aihelp_network_error_msg"="К сожалению! Что-то пошло не так"; +"aihelp_faq_search_empty"="Часто задаваемые вопросы не найдены."; +"aihelp_faq_feedback_thanks"="Спасибо за ваш отзыв!"; +"aihelp_faq_feedback_suggest"="Предложения"; +"aihelp_rate_request"="Пожалуйста, оцените наш сервис."; +"aihelp_rate_finished"="Спасибо за оценку нас."; +"aihelp_rate_app_hint"="Любите это приложение и оцените его?"; +"aihelp_rate_button"="Гол"; +"aihelp_rate_additional_feedback_message"="Любой другой отзыв (необязательно)"; +"aihelp_rate_satisfied"="Понравилось"; +"aihelp_rate_dissatisfied"="Не понравилось"; +"aihelp_network_check_in_progress"="Идет тестирование сети, если вы выйдете сейчас, тестирование будет прервано"; +"aihelp_media_upload_err_net"="Истекло время передачи по сети, не удалось загрузить файл"; +"aihelp_permission_denied"="Для загрузки изображения требуется разрешение на доступ к хранилищу."; +"aihelp_permission_ignored"="Пожалуйста, включите Настройки> Разрешения> Хранилище, чтобы использовать функцию загрузки изображения."; +"aihelp_permission_settings"="Настройки"; +"aihelp_ticket_closed"="Текущая жалоба клиентов закрыта."; +"aihelp_network_checking"="Идет проверка сети"; +"aihelp_view_details"="смотрите подробности"; +"aihelp_yesterday"="Вчерашний день"; +"aihelp_sunday"="Воскресенье"; +"aihelp_monday"="понедельник"; +"aihelp_tuesday"="вторник"; +"aihelp_wednesday"="Среда"; +"aihelp_thursday"="Четверг"; +"aihelp_friday"="Пятница"; +"aihelp_saturday"="суббота"; +"aihelp_saturday_data_acquisition_failed"="Не удалось получить данные"; +"aihelp_send"="Отправить"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/sv.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/sv.lproj/Localizable.strings new file mode 100644 index 0000000..2deea5a --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/sv.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="bestämma"; +"aihelp_no"="annullera"; +"aihelp_chat_hint"="Ange ditt meddelande"; +"aihelp_data_not_found_msg"="Oj, inga relevanta data hittades."; +"aihelp_faq_search_hint"="Beskriv ditt problem"; +"aihelp_faq_fetching_faqs"="Får dina svar ..."; +"aihelp_faq_feedback_suggest"="Förslag"; +"aihelp_rate_satisfied"="Gillade det"; +"aihelp_rate_dissatisfied"="Gillade det inte"; +"aihelp_rate_request"="Vänligen betygsätt vår tjänst."; +"aihelp_rate_finished"="Tack för att du betygsatt oss."; +"aihelp_rate_app_hint"="Gilla den här appen, betygsätta den?"; +"aihelp_rate_button"="Att betygsätta"; +"aihelp_rate_additional_feedback_message"="Annan feedback (valfritt)"; +"aihelp_faq_feedback"="Ange din feedback"; +"aihelp_faq_feedback_thanks"="Tack för feedbacken."; +"aihelp_faq_search_empty"="Inga vanliga frågor hittades."; +"aihelp_network_error_msg"="hoppsan! Något gick fel"; +"aihelp_network_upload_log_title"="Dålig nätverksanslutning"; +"aihelp_network_check_poor"="Bekräfta att skicka oss nätverksvillkor, vilket hjälper oss att förbättra kvaliteten på din nätverksanslutning."; +"aihelp_network_check_fine"="Efter att ha kontrollerat är ditt nätverk bra"; +"aihelp_network_no_connect"="Kontrollera din nätverksanslutning."; +"aihelp_media_upload_err_size"="Filstorleken överskrider gränsen, ladda upp filen mindre än %dM."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="Ostödda filer. För närvarande är det bara mp4, png, jpg, jpeg tillgängliga vid uppladdning."; +"aihelp_network_check_in_progress"="Nätverkskontroll pågår. Om du lämnar nu avbryts kontrollen."; +"aihelp_permission_ignored"="Aktivera Inställningar> Behörigheter> Lagring för att använda uppladdningsfunktionen."; +"aihelp_permission_denied"="Uppladdningsbild kräver tillåtelse för åtkomst till lagring."; +"aihelp_permission_settings"="inställningar"; +"aihelp_ticket_closed"="Den nuvarande kundanmälningsbiljetten har stängts."; +"aihelp_network_checking"="Nätverkskontroll pågår"; +"aihelp_view_details"="se detaljer"; +"aihelp_yesterday"="I går"; +"aihelp_sunday"="Söndag"; +"aihelp_monday"="Måndag"; +"aihelp_tuesday"="Tisdag"; +"aihelp_wednesday"="Onsdag"; +"aihelp_thursday"="Torsdag"; +"aihelp_friday"="fredag"; +"aihelp_saturday"="Lördag"; +"aihelp_saturday_data_acquisition_failed"="Datainsamling misslyckades"; +"aihelp_send"="skicka"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/ta.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/ta.lproj/Localizable.strings new file mode 100644 index 0000000..cb62000 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/ta.lproj/Localizable.strings @@ -0,0 +1,45 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="ஆம்"; +"aihelp_no"="ரத்துசெய்"; +"aihelp_chat_hint"="உங்கள் செய்தியை உள்ளிடவும்"; +"aihelp_data_not_found_msg"="அச்சச்சோ, தொடர்புடைய தரவு எதுவும் கிடைக்கவில்லை."; +"aihelp_faq_search_hint"="உங்கள் சிக்கலை விவரிக்கவும்"; +"aihelp_faq_fetching_faqs"="உங்கள் பதில்களைப் பெறுதல்…"; +"aihelp_faq_feedback_suggest"="பரிந்துரைகள்"; +"aihelp_rate_satisfied"="பிடித்திருந்தது"; +"aihelp_rate_dissatisfied"="பிடிக்கவில்லை"; +"aihelp_rate_request"="எங்கள் சேவையை மதிப்பிடுங்கள்."; +"aihelp_rate_finished"="எங்களை மதிப்பிட்டதற்கு நன்றி."; +"aihelp_rate_app_hint"="இந்த பயன்பாட்டைப் போல, அதை மதிப்பிடவா?"; +"aihelp_rate_button"="மதிப்பிடுவதற்கு"; +"aihelp_rate_additional_feedback_message"="வேறு ஏதேனும் கருத்து (விரும்பினால்)"; +"aihelp_faq_feedback"="உங்கள் கருத்தை உள்ளிடவும்"; +"aihelp_faq_feedback_thanks"="கருத்துக்கு நன்றி."; +"aihelp_faq_search_empty"="அடிக்கடி கேட்கப்படும் கேள்விகள் எதுவும் கிடைக்கவில்லை."; +"aihelp_network_error_msg"="அச்சச்சோ! ஏதோ தவறு நடைபெற்றிருக்கிறது"; +"aihelp_network_upload_log_title"="மோசமான பிணைய இணைப்பு"; +"aihelp_network_check_poor"="நெட்வொர்க் நிலைமைகளை எங்களுக்கு அனுப்ப உறுதிப்படுத்தவும், இது உங்கள் பிணைய இணைப்பின் தரத்தை மேம்படுத்த எங்களுக்கு உதவும்."; +"aihelp_network_check_fine"="சரிபார்த்த பிறகு, உங்கள் பிணையம் நன்றாக உள்ளது"; +"aihelp_network_no_connect"="உங்கள் பிணைய இணைப்பைச் சரிபார்க்கவும்."; +"aihelp_media_upload_err_size"="கோப்பு அளவு வரம்பை மீறுகிறது, தயவுசெய்து கோப்பை %dM ஐ விட சிறியதாக பதிவேற்றவும்."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="ஆதரிக்கப்படாத கோப்புகள். தற்போது, பதிவேற்றும்போது mp4, png, jpg, jpeg மட்டுமே கிடைக்கிறது."; +"aihelp_network_check_in_progress"="பிணைய சோதனை செயலில் உள்ளது. நீங்கள் இப்போது வெளியேறினால், சோதனை தடைபடும்."; +"aihelp_permission_ignored"="பதிவேற்ற பட செயல்பாட்டைப் பயன்படுத்த அமைப்புகள்> அனுமதிகள்> சேமிப்பிடத்தை இயக்கவும்."; +"aihelp_permission_denied"="பதிவேற்ற படத்திற்கு சேமிப்பகத்தை அணுக அனுமதி தேவை."; +"aihelp_permission_settings"="அமைப்புகள்"; +"aihelp_network_checking"="பிணைய சோதனை செயலில் உள்ளது"; +"aihelp_ticket_closed"="தற்போதைய வாடிக்கையாளர் புகார் டிக்கெட் மூடப்பட்டுள்ளது."; +"aihelp_view_details"="விவரங்களைக் காண்க"; +"aihelp_yesterday"="நேற்று"; +"aihelp_sunday"="ஞாயிற்றுக்கிழமை"; +"aihelp_monday"="திங்கட்கிழமை"; +"aihelp_tuesday"="செவ்வாய்"; +"aihelp_wednesday"="புதன்கிழமை"; +"aihelp_thursday"="வியாழக்கிழமை"; +"aihelp_friday"="வெள்ளி"; +"aihelp_saturday"="சனிக்கிழமை"; +"aihelp_saturday_data_acquisition_failed"="தரவு கையகப்படுத்தல் தோல்வியடைந்தது"; +"aihelp_send"="அனுப்பு"; diff --git a/res/AIHelpSupportSDK.bundle/lan/te.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/te.lproj/Localizable.strings new file mode 100644 index 0000000..41e4689 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/te.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="YES"; +"aihelp_no"="రద్దు చేయండి"; +"aihelp_chat_hint"="మీ సందేశాన్ని నమోదు చేయండి"; +"aihelp_data_not_found_msg"="అయ్యో, సంబంధిత డేటా కనుగొనబడలేదు."; +"aihelp_faq_search_hint"="మీ సమస్యను వివరించండి"; +"aihelp_faq_fetching_faqs"="మీ సమాధానాలను పొందడం…"; +"aihelp_faq_feedback_suggest"="సలహాలు"; +"aihelp_rate_satisfied"="ఇష్టపడ్డారు"; +"aihelp_rate_dissatisfied"="నచ్చలేదు"; +"aihelp_rate_request"="దయచేసి మా సేవను రేట్ చేయండి."; +"aihelp_rate_finished"="మాకు రేటింగ్ ఇచ్చినందుకు ధన్యవాదాలు."; +"aihelp_rate_app_hint"="ఈ అనువర్తనం వలె, దీన్ని రేట్ చేయాలా?"; +"aihelp_rate_button"="వెల కట్టు"; +"aihelp_faq_feedback"="దయచేసి మీ అభిప్రాయాన్ని ఇన్పుట్ చేయండి"; +"aihelp_rate_additional_feedback_message"="ఏదైనా ఇతర అభిప్రాయం (ఐచ్ఛికం)"; +"aihelp_faq_feedback_thanks"="అభిప్రాయానికి ధన్యవాదాలు."; +"aihelp_faq_search_empty"="తరచుగా అడిగే ప్రశ్నలు కనుగొనబడలేదు."; +"aihelp_network_error_msg"="అయ్యో! ఎక్కడో తేడ జరిగింది"; +"aihelp_network_upload_log_title"="పేలవమైన నెట్వర్క్ కనెక్షన్"; +"aihelp_network_check_poor"="దయచేసి నెట్వర్క్ పరిస్థితులను మాకు పంపమని నిర్ధారించండి, ఇది మీ నెట్వర్క్ కనెక్షన్ నాణ్యతను మెరుగుపరచడంలో మాకు సహాయపడుతుంది."; +"aihelp_network_check_fine"="తనిఖీ చేసిన తర్వాత, మీ నెట్వర్క్ బాగానే ఉంది"; +"aihelp_network_no_connect"="దయచేసి మీ నెట్వర్క్ కనెక్షన్ను తనిఖీ చేయండి."; +"aihelp_media_upload_err_size"="ఫైల్ పరిమాణం పరిమితిని మించిపోయింది, దయచేసి ఫైల్ను %dM కన్నా చిన్నదిగా అప్లోడ్ చేయండి."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="మద్దతు లేని ఫైల్లు. ప్రస్తుతం, అప్లోడ్ చేసేటప్పుడు mp4, png, jpg, jpeg మాత్రమే అందుబాటులో ఉన్నాయి."; +"aihelp_network_check_in_progress"="నెట్వర్క్ తనిఖీ పురోగతిలో ఉంది. మీరు ఇప్పుడు నిష్క్రమించినట్లయితే, తనిఖీకి అంతరాయం కలుగుతుంది."; +"aihelp_permission_denied"="అప్లోడ్ చిత్రానికి నిల్వను యాక్సెస్ చేయడానికి అనుమతి అవసరం."; +"aihelp_permission_ignored"="అప్లోడ్ ఇమేజ్ ఫంక్షన్ను ఉపయోగించడానికి దయచేసి సెట్టింగ్లు> అనుమతులు> నిల్వను ప్రారంభించండి."; +"aihelp_permission_settings"="సెట్టింగులు"; +"aihelp_ticket_closed"="ప్రస్తుత కస్టమర్ ఫిర్యాదు టికెట్ మూసివేయబడింది."; +"aihelp_network_checking"="నెట్వర్క్ చెక్ ప్రోగ్రెస్లో ఉంది"; +"aihelp_view_details"="వివరములు చూడు"; +"aihelp_yesterday"="నిన్న"; +"aihelp_sunday"="ఆదివారం"; +"aihelp_monday"="సోమవారం"; +"aihelp_tuesday"="మంగళవారం"; +"aihelp_wednesday"="బుధవారం"; +"aihelp_thursday"="గురువారం"; +"aihelp_friday"="శుక్రవారం"; +"aihelp_saturday"="శనివారం"; +"aihelp_saturday_data_acquisition_failed"="డేటా సేకరణ విఫలమైంది"; +"aihelp_send"="పంపండి"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/th.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/th.lproj/Localizable.strings new file mode 100644 index 0000000..9713cdd --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/th.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="ใช่"; +"aihelp_no"="ยกเลิก"; +"aihelp_chat_hint"="ป้อนข้อความของคุณ"; +"aihelp_data_not_found_msg"="โอ๊ะโอไม่พบข้อมูลที่เกี่ยวข้อง"; +"aihelp_faq_search_hint"="อธิบายปัญหาของคุณ"; +"aihelp_faq_fetching_faqs"="รับคำตอบของคุณ ..."; +"aihelp_faq_feedback_suggest"="ข้อเสนอแนะ"; +"aihelp_rate_satisfied"="ชอบมัน"; +"aihelp_rate_dissatisfied"="ไม่ชอบมัน"; +"aihelp_rate_request"="กรุณาให้คะแนนบริการของเรา"; +"aihelp_rate_finished"="ขอขอบคุณที่ให้คะแนนเรา"; +"aihelp_rate_app_hint"="ชอบแอปนี้ให้คะแนนไหม"; +"aihelp_rate_button"="ให้คะแนน"; +"aihelp_rate_additional_feedback_message"="ข้อเสนอแนะอื่น ๆ (ไม่จำเป็น)"; +"aihelp_faq_feedback"="โปรดป้อนความคิดเห็นของคุณ"; +"aihelp_faq_feedback_thanks"="ขอบคุณสำหรับความคิดเห็น"; +"aihelp_faq_search_empty"="ไม่พบคำถามที่พบบ่อย"; +"aihelp_network_error_msg"="อ๊ะ! บางอย่างผิดพลาด"; +"aihelp_network_upload_log_title"="การเชื่อมต่อเครือข่ายไม่ดี"; +"aihelp_network_check_poor"="โปรดยืนยันเพื่อส่งเงื่อนไขเครือข่ายให้เราซึ่งจะช่วยให้เราปรับปรุงคุณภาพการเชื่อมต่อเครือข่ายของคุณ"; +"aihelp_network_check_fine"="หลังจากตรวจสอบแล้วเครือข่ายของคุณก็ใช้ได้"; +"aihelp_network_no_connect"="โปรดตรวจสอบการเชื่อมต่อเครือข่ายของคุณ"; +"aihelp_media_upload_err_size"="ขนาดไฟล์เกินขีด จำกัด โปรดอัปโหลดไฟล์ที่มีขนาดเล็กกว่า %dM"; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="ไฟล์ที่ไม่รองรับ ปัจจุบันมีเฉพาะ mp4, png, jpg, jpeg เท่านั้นที่สามารถอัปโหลดได้"; +"aihelp_network_check_in_progress"="กำลังดำเนินการตรวจสอบเครือข่ายหากคุณออกตอนนี้การตรวจสอบจะหยุดชะงัก"; +"aihelp_permission_ignored"="โปรดเปิดใช้งานการตั้งค่า> สิทธิ์> ที่เก็บข้อมูลเพื่อใช้ฟังก์ชั่นอัพโหลดรูปภาพ"; +"aihelp_permission_denied"="การอัปโหลดรูปภาพต้องได้รับอนุญาตในการเข้าถึงที่เก็บข้อมูล"; +"aihelp_permission_settings"="การตั้งค่า"; +"aihelp_ticket_closed"="ตั๋วการร้องเรียนของลูกค้าปัจจุบันถูกปิดแล้ว"; +"aihelp_network_checking"="กำลังดำเนินการตรวจสอบเครือข่าย"; +"aihelp_view_details"="ดูรายละเอียด"; +"aihelp_yesterday"="เมื่อวานนี้"; +"aihelp_sunday"="วันอาทิตย์"; +"aihelp_monday"="วันจันทร์"; +"aihelp_tuesday"="วันอังคาร"; +"aihelp_wednesday"="วันพุธ"; +"aihelp_thursday"="วันพฤหัสบดี"; +"aihelp_friday"="วันศุกร์"; +"aihelp_saturday"="วันเสาร์"; +"aihelp_saturday_data_acquisition_failed"="การรับข้อมูลล้มเหลว"; +"aihelp_send"="ส่ง"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/tl.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/tl.lproj/Localizable.strings new file mode 100644 index 0000000..3dd7ed9 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/tl.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="matukoy"; +"aihelp_no"="kanselahin"; +"aihelp_chat_hint"="Ipasok ang iyong mensahe"; +"aihelp_data_not_found_msg"="Oops, walang nakitang data na may kaugnayan."; +"aihelp_faq_search_hint"="Ilarawan ang iyong problema"; +"aihelp_faq_fetching_faqs"="Pagkuha ng iyong mga sagot …"; +"aihelp_faq_feedback_suggest"="Mga Mungkahi"; +"aihelp_rate_satisfied"="Nagustuhan ito"; +"aihelp_rate_dissatisfied"="Ayaw nito"; +"aihelp_rate_request"="Paki-rate ang aming serbisyo."; +"aihelp_rate_finished"="Salamat sa pag-rate sa amin."; +"aihelp_rate_app_hint"="Tulad ng app na ito, i-rate ito?"; +"aihelp_rate_button"="Upang i-rate"; +"aihelp_rate_additional_feedback_message"="Anumang iba pang puna (opsyonal)"; +"aihelp_faq_feedback"="Mangyaring i-input ang iyong puna"; +"aihelp_faq_feedback_thanks"="Salamat sa puna."; +"aihelp_faq_search_empty"="Walang nahanap na FAQ."; +"aihelp_network_error_msg"="Oops! May nangyari na mali"; +"aihelp_network_upload_log_title"="Mahina koneksyon sa network"; +"aihelp_network_check_poor"="Mangyaring kumpirmahin na ipadala sa amin ang mga kondisyon ng network, na makakatulong sa amin na mapabuti ang kalidad ng iyong koneksyon sa network."; +"aihelp_network_check_fine"="Matapos suriin, maayos ang iyong network"; +"aihelp_network_no_connect"="Mangyaring suriin ang iyong koneksyon sa network."; +"aihelp_media_upload_err_size"="Ang laki ng file ay lumampas sa limitasyon, mangyaring mag-upload ng file na mas maliit kaysa sa %dM."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="Hindi suportadong mga file. Sa kasalukuyan, tanging mp4, png, jpg, jpeg na magagamit kapag nag-upload."; +"aihelp_network_check_in_progress"="Nagsisimula ang pagsuri sa network.Kung lumabas ka ngayon, magambala ang pagsuri."; +"aihelp_permission_denied"="Ang pag-upload ng imahe ay nangangailangan ng pahintulot ng pag-access sa imbakan."; +"aihelp_permission_ignored"="Mangyaring paganahin ang Mga Setting> Pahintulot> Imbakan upang magamit ang pag-upload ng imahe ng pag-upload."; +"aihelp_permission_settings"="Mga setting"; +"aihelp_network_checking"="Ang pagsusuri sa network ay umuunlad"; +"aihelp_ticket_closed"="Ang kasalukuyang customer na reklamo ng tiket ay sarado."; +"aihelp_view_details"="Tignan ang detalye"; +"aihelp_yesterday"="Kahapon"; +"aihelp_sunday"="Linggo"; +"aihelp_monday"="Lunes"; +"aihelp_tuesday"="Martes"; +"aihelp_wednesday"="Miyerkules"; +"aihelp_thursday"="Huwebes"; +"aihelp_friday"="Biyernes"; +"aihelp_saturday"="Sabado"; +"aihelp_saturday_data_acquisition_failed"="Nabigo ang pagkuha ng data"; +"aihelp_send"="magpadala"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/tr.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/tr.lproj/Localizable.strings new file mode 100644 index 0000000..3c2ae6d --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/tr.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="belirlemek"; +"aihelp_no"="iptal etmek"; +"aihelp_chat_hint"="Mesajınızı giriniz"; +"aihelp_data_not_found_msg"="Hata! Alakalı veri bulunamadı."; +"aihelp_faq_search_hint"="Sorununuzu açıklayın"; +"aihelp_faq_fetching_faqs"="Yanıtlarınız alınıyor…"; +"aihelp_faq_feedback_suggest"="Öneriler"; +"aihelp_rate_satisfied"="Beğendim"; +"aihelp_rate_dissatisfied"="Beğenmedim"; +"aihelp_rate_request"="Lütfen servisimizi değerlendirin."; +"aihelp_rate_finished"="Bize oy verdiğiniz için teşekkür ederiz."; +"aihelp_rate_app_hint"="Bu uygulama gibi, oy?"; +"aihelp_rate_button"="Oylamaya"; +"aihelp_rate_additional_feedback_message"="Diğer geri bildirimler (isteğe bağlı)"; +"aihelp_faq_feedback"="Lütfen geri bildiriminizi girin"; +"aihelp_faq_feedback_thanks"="Geri bildirim için teşekkürler."; +"aihelp_faq_search_empty"="SSS bulunamadı."; +"aihelp_network_error_msg"="Hata! Bir şeyler yanlış gitti"; +"aihelp_network_upload_log_title"="Kötü ağ bağlantısı"; +"aihelp_network_check_poor"="Lütfen ağ bağlantınızın kalitesini artırmamıza yardımcı olacak ağ koşullarını bize göndermeyi onaylayın."; +"aihelp_network_check_fine"="Kontrol ettikten sonra ağınız iyi durumda"; +"aihelp_network_no_connect"="Lütfen ağ bağlantınızı kontrol edin."; +"aihelp_media_upload_err_size"="Dosya boyutu sınırı aşıyor, lütfen %dM\'den küçük dosyayı yükleyin."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="Desteklenmeyen dosyalar. Şu anda, yükleme sırasında sadece mp4, png, jpg, jpeg kullanılabilir."; +"aihelp_network_check_in_progress"="Ağ denetimi devam ediyor. Şimdi çıkarsanız kontrol kesintiye uğrayacaktır."; +"aihelp_permission_denied"="Resim yükle, depolamaya erişim izni gerektirir."; +"aihelp_permission_ignored"="Görüntü yükleme işlevini kullanmak için lütfen Ayarlar> İzinler> Depolama\'yı etkinleştirin."; +"aihelp_permission_settings"="Ayarlar"; +"aihelp_network_checking"="Ağ kontrolü devam ediyor"; +"aihelp_ticket_closed"="Mevcut müşteri şikayet fişi kapatıldı."; +"aihelp_view_details"="ayrıntılara bakınız"; +"aihelp_yesterday"="Dün"; +"aihelp_sunday"="Pazar"; +"aihelp_monday"="Pazartesi"; +"aihelp_tuesday"="Salı"; +"aihelp_wednesday"="Çarşamba"; +"aihelp_thursday"="Perşembe"; +"aihelp_friday"="Cuma"; +"aihelp_saturday"="Cumartesi"; +"aihelp_saturday_data_acquisition_failed"="Veri toplama başarısız oldu"; +"aihelp_send"="göndermek"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/vi.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/vi.lproj/Localizable.strings new file mode 100644 index 0000000..54f2417 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/vi.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="mục đích"; +"aihelp_no"="hủy bỏ"; +"aihelp_chat_hint"="Nhập tin nhắn của bạn"; +"aihelp_data_not_found_msg"="Rất tiếc, không có dữ liệu liên quan được tìm thấy."; +"aihelp_faq_search_hint"="Hãy miêu tả vấn đề của bạn"; +"aihelp_faq_fetching_faqs"="Nhận câu trả lời của bạn"; +"aihelp_faq_feedback_suggest"="Gợi ý"; +"aihelp_rate_satisfied"="Thích nó"; +"aihelp_rate_dissatisfied"="Không thích nó"; +"aihelp_rate_request"="Vui lòng đánh giá dịch vụ của chúng tôi."; +"aihelp_rate_finished"="Cảm ơn đã đánh giá chúng tôi."; +"aihelp_rate_app_hint"="Giống như ứng dụng này, đánh giá nó?"; +"aihelp_rate_button"="Để đánh giá"; +"aihelp_rate_additional_feedback_message"="Bất kỳ phản hồi khác (tùy chọn)"; +"aihelp_faq_feedback"="Vui lòng nhập phản hồi của bạn"; +"aihelp_faq_feedback_thanks"="Cảm ơn bạn đã phản hồi."; +"aihelp_faq_search_empty"="Không có câu hỏi thường gặp."; +"aihelp_network_error_msg"="Giáo sư! Đã xảy ra lỗi"; +"aihelp_network_upload_log_title"="Kết nối mạng kém"; +"aihelp_network_check_poor"="Vui lòng xác nhận để gửi cho chúng tôi các điều kiện mạng, điều này sẽ giúp chúng tôi cải thiện chất lượng kết nối mạng của bạn."; +"aihelp_network_check_fine"="Sau khi kiểm tra, mạng của bạn vẫn ổn"; +"aihelp_network_no_connect"="Vui lòng kiểm tra kết nối mạng của bạn."; +"aihelp_media_upload_err_size"="Kích thước tệp vượt quá giới hạn, vui lòng tải lên tệp nhỏ hơn %dM."; +"aihelp_media_upload_err_net"="Transmission timed out, file uploading failed."; +"aihelp_media_upload_err_format"="Các tập tin không được hỗ trợ. Hiện tại, chỉ có mp4, png, jpg, jpeg có sẵn khi tải lên."; +"aihelp_network_check_in_progress"="Đang kiểm tra mạng. Nếu bạn thoát ngay bây giờ, việc kiểm tra sẽ bị gián đoạn."; +"aihelp_permission_ignored"="Vui lòng bật Cài đặt> Quyền> Bộ nhớ để sử dụng chức năng tải ảnh lên."; +"aihelp_permission_denied"="Tải lên hình ảnh yêu cầu quyền truy cập bộ nhớ."; +"aihelp_permission_settings"="Cài đặt"; +"aihelp_network_checking"="Đang kiểm tra mạng"; +"aihelp_ticket_closed"="Phiếu khiếu nại của khách hàng hiện tại đã được đóng lại."; +"aihelp_view_details"="xem chi tiết"; +"aihelp_yesterday"="Hôm qua"; +"aihelp_sunday"="chủ nhật"; +"aihelp_monday"="Thứ hai"; +"aihelp_tuesday"="Thứ ba"; +"aihelp_wednesday"="Thứ tư"; +"aihelp_thursday"="Thứ năm"; +"aihelp_friday"="Thứ sáu"; +"aihelp_saturday"="ngày thứ bảy"; +"aihelp_saturday_data_acquisition_failed"="Thu thập dữ liệu không thành công"; +"aihelp_send"="gửi"; + diff --git a/res/AIHelpSupportSDK.bundle/lan/zh-CN.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/zh-CN.lproj/Localizable.strings new file mode 100644 index 0000000..16473c2 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/zh-CN.lproj/Localizable.strings @@ -0,0 +1,49 @@ + + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="确定"; +"aihelp_no"="取消"; +"aihelp_view_details"="查看详情"; +"aihelp_chat_hint"="请输入内容"; +"aihelp_data_not_found_msg"="当前暂无内容"; +"aihelp_faq_search_hint"="请说明您遇到的问题"; +"aihelp_faq_fetching_faqs"="正在获取您的答案……"; +"aihelp_faq_feedback_suggest"="提建议"; +"aihelp_rate_satisfied"="非常满意"; +"aihelp_rate_dissatisfied"="很不满意"; +"aihelp_rate_request"="请对我们的服务进行评价"; +"aihelp_rate_finished"="感谢您为我们评价!"; +"aihelp_rate_app_hint"="喜欢这个应用,给它打分?"; +"aihelp_rate_button"="去打分"; +"aihelp_rate_additional_feedback_message"="其他意见或建议吗(可选)"; +"aihelp_faq_feedback"="请对我们提出宝贵建议"; +"aihelp_faq_feedback_thanks"="感谢您的反馈!"; +"aihelp_faq_search_empty"="未找到常见问题解答"; +"aihelp_network_error_msg"="哎呀,网络好像有点问题"; +"aihelp_network_upload_log_title"="当前网络状态不佳"; +"aihelp_network_check_poor"="是否将网络状况发送给我们,这将帮助我们改善与您的网络连接质量"; +"aihelp_network_check_fine"="当前网络状态良好"; +"aihelp_network_no_connect"="请检查网络连接及网络管理软件相关设置"; +"aihelp_media_upload_err_size"="文件大小超过限制,请上传小于 %dM 的文件"; +"aihelp_media_upload_err_net"="网络传输超时,文件上传失败"; +"aihelp_media_upload_err_format"="文件格式不支持,目前只能上传 mp4, png, jpg, jpeg 格式的文件"; +"aihelp_network_check_in_progress"="正在进行网络检测,如果现在退出将中断检测"; +"aihelp_permission_denied"="此应用需要获取读取设备存储权限,才能提供上传图片功能。"; +"aihelp_permission_ignored"="要使用上传图片功能,请依次启用“设置”>“权限”>“存储”。"; +"aihelp_permission_settings"="设置"; +"aihelp_network_checking"="网络检测中"; +"aihelp_ticket_closed"="当前客诉单已关闭"; +"aihelp_yesterday"="昨天"; +"aihelp_sunday"="周日"; +"aihelp_monday"="周一"; +"aihelp_tuesday"="周二"; +"aihelp_wednesday"="周三"; +"aihelp_thursday"="周四"; +"aihelp_friday"="周五"; +"aihelp_saturday"="周六"; +"aihelp_saturday_data_acquisition_failed"="数据获取失败"; +"aihelp_send"="发送"; + + + diff --git a/res/AIHelpSupportSDK.bundle/lan/zh-TW.lproj/Localizable.strings b/res/AIHelpSupportSDK.bundle/lan/zh-TW.lproj/Localizable.strings new file mode 100644 index 0000000..8161ea8 --- /dev/null +++ b/res/AIHelpSupportSDK.bundle/lan/zh-TW.lproj/Localizable.strings @@ -0,0 +1,46 @@ + + + +"aihelp_op_cs"="HELP"; +"aihelp_yes"="確認"; +"aihelp_no"="取消"; +"aihelp_chat_hint"="請輸入內容"; +"aihelp_data_not_found_msg"="當前暫無內容"; +"aihelp_faq_search_hint"="請說明您遇到的問題"; +"aihelp_faq_fetching_faqs"="正在獲取您的答案……"; +"aihelp_faq_feedback_suggest"="提建議"; +"aihelp_rate_satisfied"="非常滿意"; +"aihelp_rate_dissatisfied"="很不滿意"; +"aihelp_rate_request"="請對我們的服務進行評估"; +"aihelp_rate_finished"="感謝您為我們評估!"; +"aihelp_rate_app_hint"="喜歡這個應用,給它打分?"; +"aihelp_rate_button"="去打分"; +"aihelp_rate_additional_feedback_message"="其他意見或建議嗎(可選)"; +"aihelp_faq_feedback"="請對我們提出寶貴建議"; +"aihelp_faq_feedback_thanks"="感謝您的迴響!"; +"aihelp_faq_search_empty"="未找到常見問題解答"; +"aihelp_network_error_msg"="哎呀,網絡好像有點問題"; +"aihelp_network_upload_log_title"="當前網絡狀態不佳"; +"aihelp_network_check_poor"="是否將網絡狀況發送給我們,這將幫助我們改善與您的網絡連接質量"; +"aihelp_network_check_fine"="當前網絡狀態良好"; +"aihelp_network_no_connect"="請檢查網絡連接及網路管理軟件相關設定"; +"aihelp_media_upload_err_size"="文件大小超過限制,請上傳小於 %dM 的檔案"; +"aihelp_media_upload_err_net"="網絡傳輸超時,文件上傳失敗"; +"aihelp_media_upload_err_format"="檔案格式不支持,現時只能上傳mp4,png,jpg,jpeg格式的檔案"; +"aihelp_network_check_in_progress"="正在進行網絡檢測,如果現在退出將中斷檢測"; +"aihelp_permission_denied"="此應用需要獲取讀取設備存儲權限,才能提供上傳圖片功能。"; +"aihelp_permission_ignored"="要使用上傳圖片功能,請依次啟用“設定”>“許可權”>“存儲”。"; +"aihelp_permission_settings"="設定"; +"aihelp_ticket_closed"="當前的客訴單已經關閉"; +"aihelp_network_checking"="網絡檢查中"; +"aihelp_view_details"="查看詳情"; +"aihelp_monday"="週一"; +"aihelp_tuesday"="週二"; +"aihelp_wednesday"="週三"; +"aihelp_thursday"="週四"; +"aihelp_friday"="週五"; +"aihelp_saturday"="週六"; +"aihelp_sunday"="週日"; +"aihelp_yesterday"="昨天"; +"aihelp_saturday_data_acquisition_failed"="數據獲取失敗"; +"aihelp_send"="發送"; diff --git a/res/ElvaChatServiceSDK.bundle/ab_op_list_ltem_bg.9.png b/res/ElvaChatServiceSDK.bundle/ab_op_list_ltem_bg.9.png deleted file mode 100644 index 2fa1a82..0000000 --- a/res/ElvaChatServiceSDK.bundle/ab_op_list_ltem_bg.9.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/ab_reward.png b/res/ElvaChatServiceSDK.bundle/ab_reward.png deleted file mode 100755 index b0524cc..0000000 --- a/res/ElvaChatServiceSDK.bundle/ab_reward.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/ar.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/ar.lproj/Localizable.strings deleted file mode 100755 index 5e7a442..0000000 --- a/res/ElvaChatServiceSDK.bundle/ar.lproj/Localizable.strings +++ /dev/null @@ -1,27 +0,0 @@ -//阿拉伯语ar -"content_too_long"="لا تستخدم أكثر من %ld رمزا"; -"ContactCustomerService" = "اِتصل بنا"; -"self_service_interface" = "خدمة ذاتية"; -"offLine"= "لقد انفصلت الشبكة. يرجى المحاولة مجددا لاحقا"; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="تم تأكيد السؤال مُفيدا"; -"elva__mark_unhelpful_toast"="تم تعيين السؤال غير مفيد"; -"elva__mark_yes_no_question"="هل كان هذا مفيدا؟"; -"elva__mark_no"="لا"; -"elva__mark_yes"="نعم"; -"RewardBalance"="رموزك"; -"GoTo" = "اتجه الى"; -"Forum" = "منتدى الأسئلة و الإجابات"; -"RewardSuccess" = "نجاج"; -"RewardFailure" = "فشل"; -"TokenInsufficient" = "الرموز الخاصة بك غير كافية"; -"NeedMoreHelp" = "هل تريد المزيد من المساعدة؟"; -"your question"="كتابة رسالة نصية"; -"Cancel"="إلغاء"; -"Success"="Success"; -"Failed"="Failed"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="حجم الملف يتجاوز الحد ، يرجى تحميل الملف أصغر من %d ميغابايت"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="ما إذا كانت ظروف الشبكة سترسل لنا ، والتي سوف تساعدنا على تحسين جودة اتصال الشبكة الخاصة بك"; -"After checking, the network is available"="بعد التحقق ، الشبكة متاحة"; diff --git a/res/ElvaChatServiceSDK.bundle/back_2.png b/res/ElvaChatServiceSDK.bundle/back_2.png deleted file mode 100644 index c232ef7..0000000 --- a/res/ElvaChatServiceSDK.bundle/back_2.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/btn_error_send.png b/res/ElvaChatServiceSDK.bundle/btn_error_send.png deleted file mode 100644 index c1c7394..0000000 --- a/res/ElvaChatServiceSDK.bundle/btn_error_send.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/btn_search.png b/res/ElvaChatServiceSDK.bundle/btn_search.png deleted file mode 100644 index 13e724c..0000000 --- a/res/ElvaChatServiceSDK.bundle/btn_search.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/cai_has_clicked_ios.png b/res/ElvaChatServiceSDK.bundle/cai_has_clicked_ios.png deleted file mode 100755 index 060dfea..0000000 --- a/res/ElvaChatServiceSDK.bundle/cai_has_clicked_ios.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/chat5.png b/res/ElvaChatServiceSDK.bundle/chat5.png deleted file mode 100644 index ecc8a2b..0000000 --- a/res/ElvaChatServiceSDK.bundle/chat5.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/chat_send_message.png b/res/ElvaChatServiceSDK.bundle/chat_send_message.png deleted file mode 100644 index 03d7881..0000000 --- a/res/ElvaChatServiceSDK.bundle/chat_send_message.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/darkMode/ab_op_list_ltem_bg.9.png b/res/ElvaChatServiceSDK.bundle/darkMode/ab_op_list_ltem_bg.9.png deleted file mode 100644 index 9c0f6bc..0000000 --- a/res/ElvaChatServiceSDK.bundle/darkMode/ab_op_list_ltem_bg.9.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/darkMode/back_2.png b/res/ElvaChatServiceSDK.bundle/darkMode/back_2.png deleted file mode 100644 index 8df8260..0000000 --- a/res/ElvaChatServiceSDK.bundle/darkMode/back_2.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/darkMode/btn_close.png b/res/ElvaChatServiceSDK.bundle/darkMode/btn_close.png deleted file mode 100644 index c9acff5..0000000 --- a/res/ElvaChatServiceSDK.bundle/darkMode/btn_close.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/darkMode/chat_send_message.png b/res/ElvaChatServiceSDK.bundle/darkMode/chat_send_message.png deleted file mode 100644 index a2d6001..0000000 --- a/res/ElvaChatServiceSDK.bundle/darkMode/chat_send_message.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/darkMode/message_receiver_background_normal.png b/res/ElvaChatServiceSDK.bundle/darkMode/message_receiver_background_normal.png deleted file mode 100755 index 6434746..0000000 --- a/res/ElvaChatServiceSDK.bundle/darkMode/message_receiver_background_normal.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/darkMode/message_receiver_background_normal@2x.png b/res/ElvaChatServiceSDK.bundle/darkMode/message_receiver_background_normal@2x.png deleted file mode 100644 index b1d8934..0000000 --- a/res/ElvaChatServiceSDK.bundle/darkMode/message_receiver_background_normal@2x.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/darkMode/message_receiver_background_normal@3x.png b/res/ElvaChatServiceSDK.bundle/darkMode/message_receiver_background_normal@3x.png deleted file mode 100644 index 9875d27..0000000 --- a/res/ElvaChatServiceSDK.bundle/darkMode/message_receiver_background_normal@3x.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/darkMode/show_faq_list.png b/res/ElvaChatServiceSDK.bundle/darkMode/show_faq_list.png deleted file mode 100644 index a8dce74..0000000 --- a/res/ElvaChatServiceSDK.bundle/darkMode/show_faq_list.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/darkMode/uploadPic.png b/res/ElvaChatServiceSDK.bundle/darkMode/uploadPic.png deleted file mode 100644 index 5c12cba..0000000 --- a/res/ElvaChatServiceSDK.bundle/darkMode/uploadPic.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/de.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/de.lproj/Localizable.strings deleted file mode 100755 index 5b46e1b..0000000 --- a/res/ElvaChatServiceSDK.bundle/de.lproj/Localizable.strings +++ /dev/null @@ -1,28 +0,0 @@ -//德语de,de-AT,de-CH,de-DE,de-LI,de-LU -"content_too_long"="Nicht mehr al%ld Zeichen!"; -"ContactCustomerService" = "Kontaktieren uns"; -"self_service_interface" = "Selbst-Service"; -"offLine"= "Ihr Netzwerk ist getrennt, bitte versuchen Sie es später noch einmal"; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="Sie fanden es hilfreich."; -"elva__mark_unhelpful_toast"="Sie finden es nicht hilfreich."; -"elva__mark_yes_no_question"="Hilft das?"; -"elva__mark_no"="Nein"; -"elva__mark_yes"="Ja"; -"RewardBalance"="Ihre Tokens:"; -"GoTo" = "Gehen in die"; -"Forum" = "Gemeinschaft der Fragen und Antworten"; -"RewardSuccess" = "Erfolg"; -"RewardFailure" = "Fehlgeschlagen"; -"TokenInsufficient" = "Tokens reichen nicht aus"; -"NeedMoreHelp" = "Benötigen weitere Hilfe?"; -"your question"="Ihre Frage"; -"Cancel"="stornieren"; -"Oops, no relevant results were found"="Tut mir Leid, Keine Ergebnisse gefunden."; -"Success"="Success"; -"Failed"="Failed"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="Die Dateigröße überschreitet das Limit. Bitte laden Sie die Datei mit einer Größe von weniger als %d MB hoch"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="Willst du uns den Status der Netzwerkverbindung senden damit wir die Qualität der Verbindung verbessern können?"; -"After checking, the network is available"="Nach der Überprüfung ist das Netzwerk verfügbar"; diff --git a/res/ElvaChatServiceSDK.bundle/default_guide_elva.png b/res/ElvaChatServiceSDK.bundle/default_guide_elva.png deleted file mode 100644 index 5e0965a..0000000 --- a/res/ElvaChatServiceSDK.bundle/default_guide_elva.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/default_guide_elva_robot.png b/res/ElvaChatServiceSDK.bundle/default_guide_elva_robot.png deleted file mode 100644 index 8f3195b..0000000 --- a/res/ElvaChatServiceSDK.bundle/default_guide_elva_robot.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/default_player_elva.png b/res/ElvaChatServiceSDK.bundle/default_player_elva.png deleted file mode 100644 index 45f1083..0000000 --- a/res/ElvaChatServiceSDK.bundle/default_player_elva.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/ding_has_clicked_ios.png b/res/ElvaChatServiceSDK.bundle/ding_has_clicked_ios.png deleted file mode 100755 index 596337b..0000000 --- a/res/ElvaChatServiceSDK.bundle/ding_has_clicked_ios.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/el-GR.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/el-GR.lproj/Localizable.strings deleted file mode 100755 index 6b352e6..0000000 --- a/res/ElvaChatServiceSDK.bundle/el-GR.lproj/Localizable.strings +++ /dev/null @@ -1,34 +0,0 @@ -//希腊语el-GR,el-CY -"content_too_long"="Δεν μπορείτε να ξεπεράσετε τους %ld χαρακτήρες!"; -"ContactCustomerService" = "Επικοινωνήστε μας"; -"self_service_interface" = "Σελφ σέρβις"; -"offLine"= "Το δίκτυό σας αποσυνδέθηκε, παρακαλώ προσπαθήστε αργότερα!"; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="Σας βοήθησε"; -"elva__mark_unhelpful_toast"="Δεν σας βοήθησε"; -"elva__mark_yes_no_question"="Σας βοήθησε;"; -"elva__mark_no"="Όχι"; -"elva__mark_yes"="Ναι"; -"RewardBalance"="Το υπόλοιπο των πόντων σας:"; -"GoTo" = "Μέχρι"; -"Forum" = "Φόρουμ ερωτήσεων και απαντήσεων"; -"RewardSuccess" = "Επιτυχής ανταμοιβή"; -"RewardFailure" = "Αποτυχής ανταμοιβή"; -"TokenInsufficient" = "Το υπόλοιπό σας δεν επαρκεί"; -"NeedMoreHelp" = "Χρειάζεστε βοήθεια?"; -"your question"="Εισάγετε ερώτηση"; -"Success"="Success"; -"Failed"="Failed"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="Το μέγεθος του αρχείου υπερβαίνει το όριο, μεταφορτώστε το αρχείο μικρότερο από %d MB"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="Είτε θέλετε να μας στείλετε τις συνθήκες δικτύου, οι οποίες θα μας βοηθήσουν να βελτιώσουμε την ποιότητα της σύνδεσής σας στο δίκτυο"; -"After checking, the network is available"="Μετά τον έλεγχο, το δίκτυο είναι διαθέσιμο"; - - - - - - - - diff --git a/res/ElvaChatServiceSDK.bundle/en.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/en.lproj/Localizable.strings deleted file mode 100755 index 1ae3092..0000000 --- a/res/ElvaChatServiceSDK.bundle/en.lproj/Localizable.strings +++ /dev/null @@ -1,32 +0,0 @@ -//英语en -"content_too_long"="No more than %ld chars!"; -"ContactCustomerService" = "Contact Us"; -"self_service_interface" = "Self-Service"; -"offLine"= "Your network is disconnected,please try again later"; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="You found this helpful"; -"elva__mark_unhelpful_toast"="You didn't find this helpful"; -"elva__mark_yes_no_question"="Was this helpful?"; -"elva__mark_no"="NO"; -"elva__mark_yes"="YES"; -"RewardBalance"="Your tokens:"; -"GoTo" = "Go to the"; -"Forum" = "QA Forum"; -"RewardSuccess" = "Success"; -"RewardFailure" = "Failed"; -"TokenInsufficient" = "Your tokens is insufficient"; -"NeedMoreHelp" = "Need more help?"; -"your question"="your question"; -"Cancel"="Cancel"; -"Oops, no relevant results were found"="Oops, no relevant results were found"; -"Success"="Success"; -"Failed"="Failed"; -"Please tell us more details"="Please tell us more details"; -"Network Error, Please check your network"="Network Error, Please check your network"; -"Retry"="Retry"; -"Loading......"="Loading......"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="The file size exceeds the limit, please upload the file smaller than %dM"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="Send us the network diagnostics? It'll help us improve connection quality."; -"After checking, the network is available"="After checking, the network is available"; diff --git a/res/ElvaChatServiceSDK.bundle/es.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/es.lproj/Localizable.strings deleted file mode 100755 index 0891d16..0000000 --- a/res/ElvaChatServiceSDK.bundle/es.lproj/Localizable.strings +++ /dev/null @@ -1,28 +0,0 @@ -//西班牙语es -"content_too_long"="No más de %ld caracteres!"; -"ContactCustomerService" = "CONTÁCTANOS"; -"self_service_interface" = "Autoservicio"; -"offLine"= "Su red está desconectada, inténtelo de nuevo más tarde."; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="Le resultó útil"; -"elva__mark_unhelpful_toast"="No le resultó útil"; -"elva__mark_yes_no_question"="¿Sirvió de ayuda"; -"elva__mark_no"="NO"; -"elva__mark_yes"="Sí"; -"RewardBalance"="Sus puntos:"; -"GoTo" = "Ir a"; -"Forum" = "Foro de QA"; -"RewardSuccess" = "Éxito"; -"RewardFailure" = "Ha fallado"; -"TokenInsufficient" = "Sus puntos son insuficientes"; -"NeedMoreHelp" = "Necesitas más ayuda?"; -"your question"="Tu pregunta"; -"Cancel"="Cancelar"; -"Oops, no relevant results were found"="Lo sentimos mucho que no se puede encontrar ningún dato."; -"Success"="Success"; -"Failed"="Failed"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="El tamaño del archivo excede el límite, cargue el archivo de menos de %d MB"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="Envíenos los diagnósticos de red por favor. Nos ayudará a mejorar la calidad de la conexión."; -"After checking, the network is available"="Después de verificar, la red está disponible"; diff --git a/res/ElvaChatServiceSDK.bundle/eval_video_play_btn.png b/res/ElvaChatServiceSDK.bundle/eval_video_play_btn.png deleted file mode 100644 index 726cc3a..0000000 --- a/res/ElvaChatServiceSDK.bundle/eval_video_play_btn.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/evaluate_submit.png b/res/ElvaChatServiceSDK.bundle/evaluate_submit.png deleted file mode 100644 index 61d043c..0000000 --- a/res/ElvaChatServiceSDK.bundle/evaluate_submit.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/fa.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/fa.lproj/Localizable.strings deleted file mode 100755 index f2dfd11..0000000 --- a/res/ElvaChatServiceSDK.bundle/fa.lproj/Localizable.strings +++ /dev/null @@ -1,31 +0,0 @@ -//波斯语fa,fa-IR -"content_too_long"="نباید از %ld حروف بیشتر باشد."; -"ContactCustomerService" = "با ما تماس بگیرید"; -"self_service_interface" = "پشتیبانی"; -"offLine"= "اینترنت شما قطع می باشد ، لطفا بعدا امتحان کنید."; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="این کمک مفیدی بود"; -"elva__mark_unhelpful_toast"="کمک مفیدی نبود"; -"elva__mark_yes_no_question"="آیا این مفید بود؟"; -"elva__mark_no"="نه"; -"elva__mark_yes"="بله"; -"RewardBalance"="امتیاز باقیمانده شما"; -"GoTo" = "برو به"; -"Forum" = "گروه پرسش و پاسخ"; -"RewardSuccess" = "موفقیت آمیز"; -"RewardFailure" = "ناموفق"; -"TokenInsufficient" = "امتیاز شما کافی نیست ."; -"NeedMoreHelp" = "نیاز به کمک بیشتری دارید؟"; -"your question"="سوال شما؟"; -"Cancel"="لغو"; -"Success"="Success"; -"Failed"="Failed"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="اندازه پرونده فراتر از حد است ، لطفا پرونده را کوچکتر از %dM بارگذاری کنید"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; - -"Send us the network diagnostics? It'll help us improve connection quality."="این که آیا شرایط شبکه را برای ما ارسال کنیم ، که به ما در بهبود کیفیت اتصال شبکه شما کمک خواهد کرد"; -"After checking, the network is available"="پس از بررسی ، شبکه موجود است"; - - - diff --git a/res/ElvaChatServiceSDK.bundle/fr-FR.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/fr-FR.lproj/Localizable.strings deleted file mode 100755 index e2e62df..0000000 --- a/res/ElvaChatServiceSDK.bundle/fr-FR.lproj/Localizable.strings +++ /dev/null @@ -1,27 +0,0 @@ -//法语fr,fr-FRfr-BE,fr-CA,fr-CH,fr-FR,fr-LU,fr-MC -"content_too_long"="Pas plus de %ld de caractères"; -"ContactCustomerService" = "Contactez-nous"; -"self_service_interface" = "Libre service"; -"offLine"= "Votre connexion ne fonctionne pas, veuillez essayer de nouveau"; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="Est ce que cela vous aidé"; -"elva__mark_unhelpful_toast"="Vous n'avez pas trouvez cela utile"; -"elva__mark_yes_no_question"="Est-ce que cela a été utile?"; -"elva__mark_no"="Non"; -"elva__mark_yes"="Oui"; -"RewardBalance"="Vos jetons"; -"GoTo" = "Allez à"; -"Forum" = "FAQ"; -"RewardSuccess" = "Succès"; -"RewardFailure" = "Echec"; -"TokenInsufficient" = "Jeton insuffisant"; -"NeedMoreHelp" = "Besoin d'aide?"; -"your question"="Votre question"; -"Cancel"="Annuler"; -"Success"="Success"; -"Failed"="Failed"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="La taille du fichier dépasse la limite, veuillez télécharger le fichier de moins de %d Mo"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="Nous envoyer le diagnostique réseau? Cela nous aidera à améliorer la qualité de la connexion."; -"After checking, the network is available"="Après vérification, le réseau est disponible"; diff --git a/res/ElvaChatServiceSDK.bundle/id-ID.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/id-ID.lproj/Localizable.strings deleted file mode 100755 index d5eb00a..0000000 --- a/res/ElvaChatServiceSDK.bundle/id-ID.lproj/Localizable.strings +++ /dev/null @@ -1,27 +0,0 @@ -//印度尼西亚语id,id-ID -"content_too_long"="Tidak dapat melebihi %ld karakter!"; -"ContactCustomerService" = "Hubungi Kami"; -"self_service_interface" = "Self-Service"; -"offLine"= "Koneksi internet anda terputus, harap coba beberapa saat lagi"; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="Anda merasa terbantu"; -"elva__mark_unhelpful_toast"="Anda merasa tidak terbantu"; -"elva__mark_yes_no_question"="Apakah ini membantu?"; -"elva__mark_no"="TIDAK"; -"elva__mark_yes"="YA"; -"RewardBalance"="Token Anda:"; -"GoTo" = "Pergi ke"; -"Forum" = "Forum Q&A"; -"RewardSuccess" = "Berhasil"; -"RewardFailure" = "Gagal"; -"TokenInsufficient" = "Saldo token Anda tidak mencukupi"; -"NeedMoreHelp" = "butuh lebih bantuan?"; -"your question"="masukkan pertanyaan"; -"Cancel"="membatalkan"; -"Success"="Success"; -"Failed"="Failed"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="Ukuran file melebihi batas, harap unggah file lebih kecil dari %d MB"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="Kirimkan diagnostik jaringan kepada kami? Ini akan membantu kami untuk memperbaiki kualitas jaringan."; -"After checking, the network is available"="Setelah memeriksa, jaringan tersedia"; diff --git a/res/ElvaChatServiceSDK.bundle/img_arrow.png b/res/ElvaChatServiceSDK.bundle/img_arrow.png deleted file mode 100644 index e6118f7..0000000 --- a/res/ElvaChatServiceSDK.bundle/img_arrow.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/img_loading.png b/res/ElvaChatServiceSDK.bundle/img_loading.png deleted file mode 100644 index 6f8ce5c..0000000 --- a/res/ElvaChatServiceSDK.bundle/img_loading.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/img_net_error.png b/res/ElvaChatServiceSDK.bundle/img_net_error.png deleted file mode 100644 index 93fdb64..0000000 --- a/res/ElvaChatServiceSDK.bundle/img_net_error.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/it-IT.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/it-IT.lproj/Localizable.strings deleted file mode 100755 index cd27809..0000000 --- a/res/ElvaChatServiceSDK.bundle/it-IT.lproj/Localizable.strings +++ /dev/null @@ -1,34 +0,0 @@ -//意大利语it,it-CH,it-IT -"content_too_long"="Non più di %ld caratteri!"; -"ContactCustomerService" = "Contattaci"; -"self_service_interface" = "Self Service"; -"offLine"= "Il tuo collegamento si è interrotto, si prega di effettuare nuovamente l'accesso!"; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="Lo hai trovato utile"; -"elva__mark_unhelpful_toast"="Lo hai trovato inutile"; -"elva__mark_yes_no_question"="Questo è utile?"; -"elva__mark_no"="No"; -"elva__mark_yes"="Si"; -"RewardBalance"="Il tuo bilancio punti:"; -"GoTo" = "Fino a"; -"Forum" = "Spazio domande"; -"RewardSuccess" = "Premiazione riuscita"; -"RewardFailure" = "Premiazione fallita"; -"TokenInsufficient" = "Bilancio insufficiente"; -"NeedMoreHelp" = "Serve ancora aiuto?"; -"your question"="Inserire problema"; -"Cancel"="Annulla"; -"Success"="Success"; -"Failed"="Failed"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="La dimensione del file supera il limite, carica il file più piccolo di %d MB"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="Mandare il rapporto della condizione di rete? Ci aiuterà a migliorare le qualità della connessione."; -"After checking, the network is available"="Dopo il controllo, la rete è disponibile"; - - - - - - - diff --git a/res/ElvaChatServiceSDK.bundle/ja.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/ja.lproj/Localizable.strings deleted file mode 100755 index 1d5b33b..0000000 --- a/res/ElvaChatServiceSDK.bundle/ja.lproj/Localizable.strings +++ /dev/null @@ -1,29 +0,0 @@ -//日语ja -"content_too_long"="%ld文字を超えています。"; -"ContactCustomerService" = "お問い合わせ"; -"self_service_interface" = "セルフサービス"; -"offLine"= "接続が切れました。もう一度試してください。"; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="ご評価ありがとうございました。"; -"elva__mark_unhelpful_toast"="ご評価ありがとうございました。"; -"elva__mark_yes_no_question"="お役に立ちましたか?"; -"elva__mark_no"="いいえ"; -"elva__mark_yes"="はい"; -"RewardBalance"="ポイント残高:"; -"GoTo" = "へ"; -"Forum" = "QAフォーム"; -"RewardSuccess" = "成功した"; -"RewardFailure" = "失敗した"; -"TokenInsufficient" = "残高不足"; -"NeedMoreHelp" = "他のお問い合わせ内容がございますか?"; -"your question"="お問い合わせ内容をご入力ください。"; -"Cancel"="取り消し"; -"Oops, no relevant results were found"="申し訳ございません、結果が見つかりませんでした。"; -"Success"="成功"; -"Failed"="失敗"; -"Please tell us more details"="原因を具体的に書いてください。"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="ファイルサイズが制限を超えています。%dMB未満のファイルをアップロードしてください"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="ネットワークの接続情報を送信していただけませんか。安定したインターネット接続を維持することに役立ちます。"; -"After checking, the network is available"="確認後、ネットワークは利用可能です"; diff --git a/res/ElvaChatServiceSDK.bundle/ko.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/ko.lproj/Localizable.strings deleted file mode 100755 index afa750a..0000000 --- a/res/ElvaChatServiceSDK.bundle/ko.lproj/Localizable.strings +++ /dev/null @@ -1,28 +0,0 @@ -//韩语ko -"content_too_long"="%ld 단어를 초과 할 수 없습니다!"; -"ContactCustomerService" = "연락하기"; -"self_service_interface" = "셀프 서비스"; -"offLine"= "네트워크 연결이 끊어졌습니다. 나중에 다시 시도하십시오."; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="질문이 도움이 되었다고 표시되었습니다"; -"elva__mark_unhelpful_toast"="질문이 도움이 되지 않았다고 표시되었습니다"; -"elva__mark_yes_no_question"="이 내용이 유용했나요?"; -"elva__mark_no"="아니요"; -"elva__mark_yes"="예"; -"RewardBalance"="포인트 잔고:"; -"GoTo" = "가기"; -"Forum" = "Q&A 커뮤니티"; -"RewardSuccess" = "성공"; -"RewardFailure" = "실패"; -"TokenInsufficient" = "토큰이 부족합니다."; -"NeedMoreHelp" = "도움이 더 필요하십니까?"; -"your question"="귀하의 질문"; -"Cancel"="취소"; -"Oops, no relevant results were found"="해당 검색 결과가 없습니다."; -"Success"="Success"; -"Failed"="Failed"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="파일 크기가 한도를 초과합니다. %dMB보다 작은 파일을 업로드하십시오."; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="네트워크 연결 정보를 보내시겠습니까? 안정적인 인터넷 연결을 유지하는데 도움이 됩니다."; -"After checking, the network is available"="확인 후 네트워크를 사용할 수 있습니다"; diff --git a/res/ElvaChatServiceSDK.bundle/loading.png b/res/ElvaChatServiceSDK.bundle/loading.png deleted file mode 100644 index a301302..0000000 --- a/res/ElvaChatServiceSDK.bundle/loading.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/message_receiver_background_normal.png b/res/ElvaChatServiceSDK.bundle/message_receiver_background_normal.png deleted file mode 100644 index 634d2ae..0000000 --- a/res/ElvaChatServiceSDK.bundle/message_receiver_background_normal.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/message_receiver_background_normal@2x.png b/res/ElvaChatServiceSDK.bundle/message_receiver_background_normal@2x.png deleted file mode 100644 index 365c4be..0000000 --- a/res/ElvaChatServiceSDK.bundle/message_receiver_background_normal@2x.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/message_receiver_background_normal@3x.png b/res/ElvaChatServiceSDK.bundle/message_receiver_background_normal@3x.png deleted file mode 100644 index 42463f0..0000000 --- a/res/ElvaChatServiceSDK.bundle/message_receiver_background_normal@3x.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/message_sender_background_normal.png b/res/ElvaChatServiceSDK.bundle/message_sender_background_normal.png deleted file mode 100644 index d99f36e..0000000 --- a/res/ElvaChatServiceSDK.bundle/message_sender_background_normal.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/message_sender_background_normal@2x.png b/res/ElvaChatServiceSDK.bundle/message_sender_background_normal@2x.png deleted file mode 100644 index 935323f..0000000 --- a/res/ElvaChatServiceSDK.bundle/message_sender_background_normal@2x.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/message_sender_background_normal@3x.png b/res/ElvaChatServiceSDK.bundle/message_sender_background_normal@3x.png deleted file mode 100644 index e53dbda..0000000 --- a/res/ElvaChatServiceSDK.bundle/message_sender_background_normal@3x.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/pl-PL.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/pl-PL.lproj/Localizable.strings deleted file mode 100755 index 39b16ac..0000000 --- a/res/ElvaChatServiceSDK.bundle/pl-PL.lproj/Localizable.strings +++ /dev/null @@ -1,34 +0,0 @@ -//波兰语pl,pl-PL -"content_too_long"="Nie więcej niż %ld znaków!"; -"ContactCustomerService" = "Obsługa klienta"; -"self_service_interface" = "Samoobsługa"; -"offLine"= "Brak dostępu do sieci, proszę spróbuj ponownie później."; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="Uznałeś to za przydatne."; -"elva__mark_unhelpful_toast"="Nie uznałeś tego za przydatne."; -"elva__mark_yes_no_question"="Czy było to przydatne?"; -"elva__mark_no"="Nie"; -"elva__mark_yes"="Tak"; -"RewardBalance"="Twój bilans punktów:"; -"GoTo" = "Idź do"; -"Forum" = "Forum pytań i odpowiedzi."; -"RewardSuccess" = "Sukces."; -"RewardFailure" = "Porażka."; -"TokenInsufficient" = "Niewystarczająca ilość punktów."; -"NeedMoreHelp" = "Bisogno Di Più Aiuto?"; -"your question"="Wprowadź pytanie"; -"Cancel"="Anuluj"; -"Success"="Success"; -"Failed"="Failed"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="Rozmiar pliku przekracza limit, prześlij plik mniejszy niż %d MB"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="Czy wysłać nam warunki sieciowe, które pomogą nam poprawić jakość twojego połączenia sieciowego"; -"After checking, the network is available"="Po sprawdzeniu sieć jest dostępna"; - - - - - - - diff --git a/res/ElvaChatServiceSDK.bundle/pt-PT.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/pt-PT.lproj/Localizable.strings deleted file mode 100755 index a2230f7..0000000 --- a/res/ElvaChatServiceSDK.bundle/pt-PT.lproj/Localizable.strings +++ /dev/null @@ -1,27 +0,0 @@ -//葡萄牙语pt,pt-BR,pt-PT -"content_too_long"="Não pode ser mais de %ld palavras!"; -"ContactCustomerService" = "Contate-Nos"; -"self_service_interface" = "Self-Service"; -"offLine"= "Sua conexão foi desconectada, entre novamente!"; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="Isso é útil"; -"elva__mark_unhelpful_toast"="Isso não é útil"; -"elva__mark_yes_no_question"="É útil?"; -"elva__mark_no"="Não"; -"elva__mark_yes"="Sim"; -"RewardBalance"="Seus saldos de ponto:"; -"GoTo" = "Chegar"; -"Forum" = "Comunidade de pergunta e resposta"; -"RewardSuccess" = "Recompense com sucesso"; -"RewardFailure" = "Recompense não com sucesso"; -"TokenInsufficient" = "Saldos insuficientes"; -"NeedMoreHelp" = "Precisa mais ajuda?"; -"your question"="Entra a pergunta"; -"Cancel"="cancelar"; -"Success"="Success"; -"Failed"="Failed"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="O tamanho do arquivo excede o limite, faça o upload do arquivo com menos de %d MB"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="Mandare il rapporto della condizione di rete? Ci aiuterà a migliorare le qualità della connessione."; -"After checking, the network is available"="Após a verificação, a rede está disponível"; diff --git a/res/ElvaChatServiceSDK.bundle/ru.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/ru.lproj/Localizable.strings deleted file mode 100755 index 5250883..0000000 --- a/res/ElvaChatServiceSDK.bundle/ru.lproj/Localizable.strings +++ /dev/null @@ -1,28 +0,0 @@ -//俄语ru -"content_too_long"="Не более %ld символов!"; -"ContactCustomerService" = "Свяжитесь с нами"; -"self_service_interface" = "Самообслуживание"; -"offLine"= "Вы не подключены к сети, повторите попытку позже"; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="Вопрос был обозначен как Полезный"; -"elva__mark_unhelpful_toast"="Вопрос был обозначен как Бесполезный"; -"elva__mark_yes_no_question"="Это вам помогло?"; -"elva__mark_no"="НЕТ"; -"elva__mark_yes"="ДА"; -"RewardBalance"="Остаток баллов:"; -"GoTo" = "Перейти"; -"Forum" = "QA форум"; -"RewardSuccess" = "Успешно"; -"RewardFailure" = "Неудачно"; -"TokenInsufficient" = "Недостаточно баллов"; -"NeedMoreHelp" = "Нужна помощь?"; -"your question"="Ваш вопрос"; -"Cancel"="отменить"; -"Oops, no relevant results were found"="Извините, по вашему запросу ничего не найдено."; -"Success"="Success"; -"Failed"="Failed"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="Размер файла превышает лимит, загрузите файл размером менее %d МБ"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="Отправьте нам данные диагностики сети, чтобы мы могли улучшить качество соединения."; -"After checking, the network is available"="После проверки сеть доступна"; diff --git a/res/ElvaChatServiceSDK.bundle/show_faq_list.png b/res/ElvaChatServiceSDK.bundle/show_faq_list.png deleted file mode 100644 index 0567aa8..0000000 --- a/res/ElvaChatServiceSDK.bundle/show_faq_list.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/sv-SE.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/sv-SE.lproj/Localizable.strings deleted file mode 100755 index 4ef5337..0000000 --- a/res/ElvaChatServiceSDK.bundle/sv-SE.lproj/Localizable.strings +++ /dev/null @@ -1,27 +0,0 @@ -//瑞典语sv,sv-FI,sv-SE -"content_too_long"="Får inte vara längre än %ld tecken!"; -"ContactCustomerService" = "Kontakta KS"; -"self_service_interface" = "Självservice"; -"offLine"= "Anslutning bruten, försök igen!"; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="Fick du hjälp av detta?"; -"elva__mark_unhelpful_toast"="Fick du inte hjälp av detta?"; -"elva__mark_yes_no_question"="Fick du hjälp av detta?"; -"elva__mark_no"="Nej"; -"elva__mark_yes"="Ja"; -"RewardBalance"="Dina poäng:"; -"GoTo" = "Gå till"; -"Forum" = "Frågeforum"; -"RewardSuccess" = "Lyckades"; -"RewardFailure" = "Misslyckades"; -"TokenInsufficient" = "Du har inte tillräckligt med poäng"; -"NeedMoreHelp" = "Behöver mer hjälp?"; -"your question"="Ange fråga"; -"Cancel"="annullera"; -"Success"="Success"; -"Failed"="Failed"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="Filstorleken överskrider gränsen, ladda upp filen mindre än %d MB"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="Huruvida vi ska skicka nätverksvillkor, vilket hjälper oss att förbättra kvaliteten på din nätverksanslutning"; -"After checking, the network is available"="Efter kontroll är nätverket tillgängligt"; diff --git a/res/ElvaChatServiceSDK.bundle/th.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/th.lproj/Localizable.strings deleted file mode 100755 index 501b1f5..0000000 --- a/res/ElvaChatServiceSDK.bundle/th.lproj/Localizable.strings +++ /dev/null @@ -1,27 +0,0 @@ -//泰语th -"content_too_long"="ไม่เกิน %ld ตัวอักษร!"; -"ContactCustomerService" = "ติดต่อเรา"; -"self_service_interface" = "Self-Service"; -"offLine"= "การเชื่อมต่อผิดพลาด กรุณาเข้าระบบอีกครั้ง!"; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="คำถามนี้ถูกระบุว่ามีประโยชน์"; -"elva__mark_unhelpful_toast"="คำถามนี้ถูกระบุว่าไม่มีประโยชน์"; -"elva__mark_yes_no_question"="ข้อมูลดังกล่าวมีประโยชน์หรือไม่"; -"elva__mark_no"="ไม่ใช่"; -"elva__mark_yes"="ใช่"; -"RewardBalance"="แต้มของคุณเหลือ:"; -"GoTo" = "ถึง"; -"Forum" = "ถามตอบ"; -"RewardSuccess" = "ให้รางวัลสำเร็จ"; -"RewardFailure" = "ให้รางวัลล้มเหลว"; -"TokenInsufficient" = "จำนวนคงเหลือไม่พอ"; -"NeedMoreHelp" = "ต้องการความช่วยเหลือ?"; -"your question"="คำถามของคุณ"; -"Cancel"="ยกเลิก"; -"Success"="Success"; -"Failed"="Failed"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="ขนาดไฟล์เกินขีด จำกัด โปรดอัปโหลดไฟล์ที่มีขนาดเล็กกว่า %d MB"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="จะส่งสถานการณ์อินเตอร์เน็ตมาให้เรา นี่จะช่วยเราแก้ไขคุณภาพอินเตอร์เน็ตของคุณได้มาก"; -"After checking, the network is available"="หลังจากตรวจสอบเครือข่ายจะพร้อมใช้งาน"; diff --git a/res/ElvaChatServiceSDK.bundle/tr.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/tr.lproj/Localizable.strings deleted file mode 100644 index b0ecdab..0000000 --- a/res/ElvaChatServiceSDK.bundle/tr.lproj/Localizable.strings +++ /dev/null @@ -1,27 +0,0 @@ -//土耳其语tr -"content_too_long"="En fazla %ld karakter kullanılabilir!"; -"ContactCustomerService" = "İletişim"; -"self_service_interface" = "Kendin Hallet"; -"offLine"= "Bağlantı hatası,lütfen tekrar deneyin!"; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="Bunu faydalı buldum!"; -"elva__mark_unhelpful_toast"="Bunu faydalı bulmadım!"; -"elva__mark_yes_no_question"="Bunu faydalı buldunuz mu?"; -"elva__mark_no"="Hayır"; -"elva__mark_yes"="Evet"; -"RewardBalance"="Puanınız:"; -"GoTo" = "Git:"; -"Forum" = "Sıkça Sorulan Sorular"; -"RewardSuccess" = "Başarılı!"; -"RewardFailure" = "Başarısız!"; -"TokenInsufficient" = "Bakiyeniz yetersiz!"; -"NeedMoreHelp" = "Ihtiyacınız yardıma?"; -"your question"="Sorunuzu girin!"; -"Cancel"="iptal etmek"; -"Success"="Success"; -"Failed"="Failed"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="Dosya boyutu sınırı aşıyor, lütfen dosyayı %d MB'tan küçük yükleyin"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="ağ koşullarının bize gönderilip gönderilmeyeceği Ağ bağlantınızın kalitesini artırmamıza yardımcı olacak"; -"After checking, the network is available"="Kontrol ettikten sonra ağ kullanılabilir"; diff --git a/res/ElvaChatServiceSDK.bundle/uploadPic.png b/res/ElvaChatServiceSDK.bundle/uploadPic.png deleted file mode 100644 index 1a780be..0000000 --- a/res/ElvaChatServiceSDK.bundle/uploadPic.png +++ /dev/null Binary files differ diff --git a/res/ElvaChatServiceSDK.bundle/vi-VN.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/vi-VN.lproj/Localizable.strings deleted file mode 100755 index 3e181df..0000000 --- a/res/ElvaChatServiceSDK.bundle/vi-VN.lproj/Localizable.strings +++ /dev/null @@ -1,27 +0,0 @@ -//越南语vi,vi-VN -"content_too_long"="Không vượt quá %ld ký tự!"; -"ContactCustomerService" = "Liên hệ CSKH"; -"self_service_interface" = "Dịch vụ tự động"; -"offLine"= "Đã mất kết nối, hãy vào lại!"; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="Phát hiện có hỗ trợ"; -"elva__mark_unhelpful_toast"="Phát hiện không có hỗ trợ"; -"elva__mark_yes_no_question"="Ở đây có hỗ trợ không?"; -"elva__mark_no"="Không"; -"elva__mark_yes"="Có"; -"RewardBalance"="Tích điểm còn:"; -"GoTo" = "Đến"; -"Forum" = "Cộng đồng hỏi đáp"; -"RewardSuccess" = "Thưởng thành công"; -"RewardFailure" = "Thưởng thất bại"; -"TokenInsufficient" = "Không còn đủ"; -"NeedMoreHelp" = "cần thêm giúp?"; -"your question"="Lỗi nhập"; -"Cancel"="hủy bỏ"; -"Success"="Success"; -"Failed"="Failed"; -"media_upload_err_format"="Unsupported files. Currently, only 'mp4, 3gp, png, jpg, jpeg, gif' available when uploading."; -"media_upload_err_size"="Kích thước tệp vượt quá giới hạn, vui lòng tải lên tệp nhỏ hơn %d MB"; -"media_upload_err_net"="Transmission timed out, file uploading failed."; -"Send us the network diagnostics? It'll help us improve connection quality."="Có gửi cho chúng tôi các điều kiện mạng hay không, điều này sẽ giúp chúng tôi cải thiện chất lượng kết nối mạng của bạn"; -"After checking, the network is available"="Sau khi kiểm tra, mạng có sẵn"; diff --git a/res/ElvaChatServiceSDK.bundle/zh-Hans.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/zh-Hans.lproj/Localizable.strings deleted file mode 100755 index fcc61f9..0000000 --- a/res/ElvaChatServiceSDK.bundle/zh-Hans.lproj/Localizable.strings +++ /dev/null @@ -1,32 +0,0 @@ -//中文简体zh-Hans -"content_too_long"="不能超过%ld个字!"; -"ContactCustomerService" = "联系客服"; -"self_service_interface" = "自助服务"; -"offLine"= "您的网络连接已经断开,请检查网络!"; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="你发现这有帮助"; -"elva__mark_unhelpful_toast"="你发现这无帮助"; -"elva__mark_yes_no_question"="这有帮助吗"; -"elva__mark_no"="否"; -"elva__mark_yes"="是"; -"RewardBalance"="您的积分余额:"; -"GoTo" = "到"; -"Forum" = "问答社区"; -"RewardSuccess" = "打赏成功"; -"RewardFailure" = "打赏失败"; -"TokenInsufficient" = "余额不足"; -"NeedMoreHelp" = "需要更多帮助?"; -"your question"="输入问题"; -"Cancel"="取消"; -"Oops, no relevant results were found"="抱歉,未找到相关结果"; -"Success"="成功"; -"Failed"="失败"; -"Please tell us more details"="请告知我们具体原因"; -"Network Error, Please check your network"="网络请求失败,请检查您的网络"; -"Retry"="重试"; -"Loading......"="正在全力加载"; -"media_upload_err_format"="文件格式不支持,目前只能上传 mp4, 3gp, mov, png, jpg, jpeg, gif 格式的文件"; -"media_upload_err_size"="文件大小超过限制,请上传小于%dM的文件"; -"media_upload_err_net"="网络传输超时,文件上传失败"; -"Send us the network diagnostics? It'll help us improve connection quality."="是否将网络状况发送给我们,这将帮助我们改善与您的网络连接质量"; -"After checking, the network is available"="经检测,网络是正常的"; diff --git a/res/ElvaChatServiceSDK.bundle/zh-Hant.lproj/Localizable.strings b/res/ElvaChatServiceSDK.bundle/zh-Hant.lproj/Localizable.strings deleted file mode 100755 index 467ec82..0000000 --- a/res/ElvaChatServiceSDK.bundle/zh-Hant.lproj/Localizable.strings +++ /dev/null @@ -1,32 +0,0 @@ -//中文繁体zh-Hant -"content_too_long"="不能超過%ld個字!"; -"ContactCustomerService" = "聯系客服"; -"self_service_interface" = "自助服務"; -"offLine"= "您的網絡連接已經斷開,請檢查網絡!"; -"CustomerService"="HELP"; -"elva__mark_helpful_toast"="妳發現這有幫助"; -"elva__mark_unhelpful_toast"="妳發現這無幫助"; -"elva__mark_yes_no_question"="這有幫助嗎?"; -"elva__mark_no"="否"; -"elva__mark_yes"="是"; -"RewardBalance"="您的積分餘額:"; -"GoTo" = "到"; -"Forum" = "問答社區"; -"RewardSuccess" = "打賞成功"; -"RewardFailure" = "打賞失敗"; -"TokenInsufficient" = "餘額不足"; -"NeedMoreHelp" = "需要更多幫助?"; -"your question"="輸入問題"; -"Cancel"="取消"; -"Oops, no relevant results were found"="抱歉,未找到相關結果"; -"Success"="成功"; -"Failed"="失敗"; -"Please tell us more details"="請告知我們具體原因"; -"Network Error, Please check your network"="網絡請求失敗,請檢查您的網絡"; -"Retry"="重試"; -"Loading......"="正在全力加載"; -"media_upload_err_format"="文件格式不支持,目前只能上傳 mp4, 3gp, mov, png, jpg, jpeg, gif 格式的文件"; -"media_upload_err_size"="文件大小超過限制,請上傳小於%dM的文件"; -"media_upload_err_net"="網絡傳輸超時,文件上傳失敗"; -"Send us the network diagnostics? It'll help us improve connection quality."="是否將網絡狀況發送給我們,這將幫助我們改善與您的網絡連接質量"; -"After checking, the network is available"="經檢測,網絡是正常的"; -- Gitblit v1.8.0