- Upgrade libraries

This commit is contained in:
Giuseppe Nucifora 2017-08-27 17:20:31 +02:00
parent d799b6eead
commit b38733b07a
No known key found for this signature in database
GPG Key ID: 12671B78D3B6730C
78 changed files with 2039 additions and 1220 deletions

View File

@ -328,13 +328,16 @@
files = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-PNObject_Tests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
614EA73ED5E0ED0F8684468C /* [CP] Copy Pods Resources */ = {
@ -343,9 +346,12 @@
files = (
);
inputPaths = (
"${SRCROOT}/Pods/Target Support Files/Pods-PNObject_Example/Pods-PNObject_Example-resources.sh",
"${PODS_ROOT}/FBSDKCoreKit/FacebookSDKStrings.bundle",
);
name = "[CP] Copy Pods Resources";
outputPaths = (
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
@ -388,13 +394,16 @@
files = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-PNObject_Example-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n";
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */

View File

@ -25,19 +25,19 @@ PODS:
- DJLocalization (1.2.2):
- DJLocalization/Core (= 1.2.2)
- DJLocalization/Core (1.2.2)
- Expecta (1.0.5)
- FBSDKCoreKit (4.19.0):
- Expecta (1.0.6)
- FBSDKCoreKit (4.26.0):
- Bolts (~> 1.7)
- FBSDKLoginKit (4.19.0):
- FBSDKLoginKit (4.26.0):
- FBSDKCoreKit
- FBSDKShareKit (4.19.0):
- FBSDKShareKit (4.26.0):
- FBSDKCoreKit
- NSDataAES (0.2.2)
- NSDate_Utils (1.0.5)
- NSDate_Utils (1.0.6)
- NSString-Helper (1.0.5)
- nv-ios-http-status (0.0.1)
- PEAR-FileManager-iOS (1.3.1)
- PNObject (1.3.1):
- PNObject (1.3.2):
- AFNetworking
- CodFis-Helper
- DDDKeychainWrapper
@ -67,7 +67,7 @@ DEPENDENCIES:
EXTERNAL SOURCES:
PNObject:
:path: "../"
:path: ../
SPEC CHECKSUMS:
AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67
@ -75,16 +75,16 @@ SPEC CHECKSUMS:
CodFis-Helper: 28be4c74d7202542459d72354f59b1215871de87
DDDKeychainWrapper: e681a4daba6448786fa83b4941f58102a33b1897
DJLocalization: 0c84029af375647d4104a42ae36be87194c46c47
Expecta: e1c022fcd33910b6be89c291d2775b3fe27a89fe
FBSDKCoreKit: 894b2b6eda6a4c8c4204e92e59cc355709ef045c
FBSDKLoginKit: 83ca4d8f12a2022570af9fd6aacf27f6b425b99f
FBSDKShareKit: 5953758366278430dc322d5cdc906db361ed7f81
Expecta: 3b6bd90a64b9a1dcb0b70aa0e10a7f8f631667d5
FBSDKCoreKit: c8b8582311ec11b145451d8b9717dc6cc2ae5a76
FBSDKLoginKit: f3f03b94c21eb834af243c0a881d48641f47ca60
FBSDKShareKit: 320712d8293fde6392872c91eb80ef0da5d73cc3
NSDataAES: 967ea3337476a80e9838a533c25d570a06855ed0
NSDate_Utils: b0ab72ccec6df25297766bd64b0cd0c124521a45
NSDate_Utils: c7802a1e0f5ef3acaf39bf55806a1caaa0343d2d
NSString-Helper: 459e1b6a62b3bf7db10f01b0d102548608e945c4
nv-ios-http-status: b6c2b5fc8656cc19e0d3000dadce2080b99d0e2f
PEAR-FileManager-iOS: 3bc403f68a53483f5629aa822f4649e40275c4d3
PNObject: fce7072deed194ed45fca961cb72084b9a0e48d1
PNObject: 6dcb7b25b6d1ab221b59b7ed4e7c34a6dc50f76e
PureLayout: 4d550abe49a94f24c2808b9b95db9131685fe4cd
RZDataBinding: 6981e90ddaae2f5e02028323b1043f8c31013109
Specta: f506f3a8361de16bc0dcf3b17b75e269072ba465
@ -93,4 +93,4 @@ SPEC CHECKSUMS:
PODFILE CHECKSUM: db08ccdd0a68e33d4a1cceb1843643fbab2f2a8e
COCOAPODS: 1.2.0
COCOAPODS: 1.3.1

View File

@ -9,9 +9,9 @@
#ifndef Expecta_EXPDefines_h
#define Expecta_EXPDefines_h
typedef void (^EXPBasicBlock)();
typedef id (^EXPIdBlock)();
typedef BOOL (^EXPBoolBlock)();
typedef NSString *(^EXPStringBlock)();
typedef void (^EXPBasicBlock)(void);
typedef id (^EXPIdBlock)(void);
typedef BOOL (^EXPBoolBlock)(void);
typedef NSString *(^EXPStringBlock)(void);
#endif

View File

@ -10,6 +10,10 @@ EXPMatcherImplementationBegin(respondTo, (SEL expected)) {
});
match(^BOOL {
if ([actual respondsToSelector:@selector(instancesRespondToSelector:)] &&
[actual instancesRespondToSelector:expected]) {
return YES;
}
return [actual respondsToSelector:expected];
});

View File

@ -1,13 +1,8 @@
#Expecta
[![Build Status](http://img.shields.io/travis/specta/expecta/master.svg?style=flat)](https://travis-ci.org/specta/expecta)
[![Pod Version](http://img.shields.io/cocoapods/v/Expecta.svg?style=flat)](http://cocoadocs.org/docsets/Expecta/)
[![Pod Platform](http://img.shields.io/cocoapods/p/Expecta.svg?style=flat)](http://cocoadocs.org/docsets/Expecta/)
[![Pod License](http://img.shields.io/cocoapods/l/Expecta.svg?style=flat)](https://www.apache.org/licenses/LICENSE-2.0.html)
# Expecta [![Build Status](http://img.shields.io/travis/specta/expecta/master.svg?style=flat)](https://travis-ci.org/specta/expecta) [![Pod Version](http://img.shields.io/cocoapods/v/Expecta.svg?style=flat)](http://cocoadocs.org/docsets/Expecta/)
A matcher framework for Objective-C and Cocoa.
## Introduction
## FEATURES
The main advantage of using Expecta over other matcher frameworks is that you do not have to specify the data types. Also, the syntax of Expecta matchers is much more readable and does not suffer from parenthesitis.
@ -18,63 +13,10 @@ expect([bar isBar]).to.equal(YES);
expect(baz).to.equal(3.14159);
```
Expecta is framework-agnostic: it works well with XCTest and XCTest-compatible test frameworks such as [Specta](http://github.com/petejkim/specta/).
Expecta is framework-agnostic: it works well with XCTest and XCTest-compatible test frameworks such as [Specta](http://github.com/petejkim/specta/), or [Kiwi](https://github.com/kiwi-bdd/Kiwi/).
## Installation
You can setup Expecta using [Carthage](https://github.com/Carthage/Carthage), [CocoaPods](http://github.com/CocoaPods/CocoaPods) or [completely manually](#setting-up-manually).
### Carthage
1. Add Expecta to your project's `Cartfile.private`:
```ruby
github "specta/expecta" "master"
```
2. Run `carthage update` in your project directory.
3. Drag the appropriate **Expecta.framework** for your platform (located in `Carthage/Build/`) into your applications Xcode project, and add it to your test target(s).
### CocoaPods
1. Add Expecta to your project's `Podfile`:
```ruby
target :MyApp do
# Your app's dependencies
end
target :MyAppTests do
pod 'Expecta', '~> 1.0.0'
end
```
2. Run `pod update` or `pod install` in your project directory.
### Setting Up Manually
1. Clone Expecta from Github.
2. Run `rake` in your project directory to build the frameworks and libraries.
3. Add a Cocoa or Cocoa Touch Unit Testing Bundle target to your Xcode project if you don't already have one.
4. For **OS X projects**, copy and add `Expecta.framework` in the `Products/osx` folder to your project's test target.
For **iOS projects**, copy and add `Expecta.framework` in the `Products/ios` folder to your project's test target.
You can also use `libExpecta.a` if you prefer to link Expecta as a static library — iOS 7.x and below require this.
6. Add `-ObjC` and `-all_load` to the **Other Linker Flags** build setting for the test target in your Xcode project.
7. You can now use Expecta in your test classes by adding the following import:
```objective-c
@import Expecta; // If you're using Expecta.framework
// OR
#import <Expecta/Expecta.h> // If you're using the static library, or the framework
```
## Built-in Matchers
## MATCHERS
> `expect(x).to.equal(y);` compares objects or primitives x and y and passes if they are identical (==) or equivalent isEqual:).
@ -132,13 +74,13 @@ You can setup Expecta using [Carthage](https://github.com/Carthage/Carthage), [C
> `expect(x).to.match(y);` passes if an instance of NSString `x` matches regular expression (given as NSString) `y` one or more times.
## Inverting Matchers
### Inverting Matchers
Every matcher's criteria can be inverted by prepending `.notTo` or `.toNot`:
>`expect(x).notTo.equal(y);` compares objects or primitives x and y and passes if they are *not* equivalent.
## Asynchronous Testing
### Asynchronous Testing
Every matcher can be made to perform asynchronous testing by prepending `.will`, `.willNot` or `after(...)`:
@ -172,14 +114,14 @@ describe(@"Foo", ^{
});
```
## Forced Failing
### Forced Failing
You can fail a test by using the `failure` attribute. This can be used to test branching.
> `failure(@"This should not happen");` outright fails a test.
## Writing New Matchers
### WRITING NEW MATCHERS
Writing a new matcher is easy with special macros provided by Expecta. Take a look at how `.beKindOf()` matcher is defined:
@ -246,7 +188,7 @@ EXPMatcherImplementationBegin(beKindOf, (Class expected)) {
EXPMatcherImplementationEnd
```
## Dynamic Predicate Matchers
## DYNAMIC PREDICATE MATCHERS
It is possible to add predicate matchers by simply defining the matcher interface, with the matcher implementation being handled at runtime by delegating to the predicate method on your object.
@ -282,6 +224,68 @@ You can now write your assertion as follows:
expect(lightSwitch).isTurnedOn();
```
## INSTALLATION
You can setup Expecta using [CocoaPods](http://github.com/CocoaPods/CocoaPods), [Carthage](https://github.com/Carthage/Carthage) or [completely manually](#setting-up-manually).
### CocoaPods
1. Add Expecta to your project's `Podfile`:
```ruby
target :MyApp do
# your app dependencies
target :MyAppTests do
inherit! search_paths
pod 'Expecta', '~> 1.0'
end
end
```
### Carthage
1. Add Expecta to your project's `Cartfile.private`:
```ruby
github "specta/expecta" "master"
```
2. Run `carthage update` in your project directory.
3. Drag the appropriate **Expecta.framework** for your platform (located in `Carthage/Build/`) into your applications Xcode project, and add it to your test target(s).
2. Run `pod update` or `pod install` in your project directory.
### Setting Up Manually
1. Clone Expecta from Github.
2. Run `rake` in your project directory to build the frameworks and libraries.
3. Add a Cocoa or Cocoa Touch Unit Testing Bundle target to your Xcode project if you don't already have one.
4. For **OS X projects**, copy and add `Expecta.framework` in the `Products/osx` folder to your project's test target.
For **iOS projects**, copy and add `Expecta.framework` in the `Products/ios` folder to your project's test target.
You can also use `libExpecta.a` if you prefer to link Expecta as a static library — iOS 7.x and below require this.
6. Add `-ObjC` and `-all_load` to the **Other Linker Flags** build setting for the test target in your Xcode project.
7. You can now use Expecta in your test classes by adding the following import:
```objective-c
@import Expecta; // If you're using Expecta.framework
// OR
#import <Expecta/Expecta.h> // If you're using the static library, or the framework
```
## STATUS
Expecta, and Specta are considered done projects, there are no plans for _active_ development on the project at the moment aside from ensuring future Xcode compatability.
Therefore it is a stable dependency, but will not be moving into the Swift world. If you are looking for that, we recommend you consider [Quick](https://github.com/quick/quick) and [Nimble](https://github.com/quick/nimble).
## Contribution Guidelines
* Please use only spaces and indent 2 spaces at a time.
@ -290,4 +294,4 @@ expect(lightSwitch).isTurnedOn();
## License
Copyright (c) 2012-2015 [Specta Team](https://github.com/specta?tab=members). This software is licensed under the [MIT License](http://github.com/specta/specta/raw/master/LICENSE).
Copyright (c) 2012-2016 [Specta Team](https://github.com/specta?tab=members). This software is licensed under the [MIT License](http://github.com/specta/specta/raw/master/LICENSE).

View File

@ -405,11 +405,11 @@ FBSDK_EXTERN NSString *const FBSDKAppEventParameterValueNo;
*/
/**
Sets a device token to register the current application installation for push notifications.
Sets and sends device token to register the current application for push notifications.
Sets a device token from `NSData` representation that you get from `UIApplicationDelegate.-application:didRegisterForRemoteNotificationsWithDeviceToken:`.
Sets and sends a device token from `NSData` representation that you get from `UIApplicationDelegate.-application:didRegisterForRemoteNotificationsWithDeviceToken:`.
- Parameter deviceToken: Device token data.
*/

View File

@ -185,9 +185,11 @@ NSString *const FBSDKAppEventsOverrideAppIDBundleKey = @"FacebookLoggingOverride
//
// Push Notifications
//
// Activities Endpoint Parameter
static NSString *const FBSDKActivitesParameterPushDeviceToken = @"device_token";
// Event Name
// Event Names
static NSString *const FBSDKAppEventNamePushTokenObtained = @"fb_mobile_obtain_push_token";
static NSString *const FBSDKAppEventNamePushOpened = @"fb_mobile_push_opened";
// Event Parameter
static NSString *const FBSDKAppEventParameterPushCampaign = @"fb_push_campaign";
@ -423,7 +425,22 @@ static NSString *g_overrideAppID = nil;
+ (void)setPushNotificationsDeviceToken:(NSData *)deviceToken
{
[FBSDKAppEvents singleton].pushNotificationsDeviceTokenString = [FBSDKInternalUtility hexadecimalStringFromData:deviceToken];
NSString *deviceTokenString = [FBSDKInternalUtility hexadecimalStringFromData:deviceToken];
if (deviceTokenString == nil) {
[FBSDKAppEvents singleton].pushNotificationsDeviceTokenString = nil;
return;
}
if (![deviceTokenString isEqualToString:([FBSDKAppEvents singleton].pushNotificationsDeviceTokenString)]) {
[FBSDKAppEvents singleton].pushNotificationsDeviceTokenString = deviceTokenString;
[FBSDKAppEvents logEvent:FBSDKAppEventNamePushTokenObtained];
// Unless the behavior is set to only allow explicit flushing, we go ahead and flush the event
if ([FBSDKAppEvents flushBehavior] != FBSDKAppEventsFlushBehaviorExplicitOnly) {
[[FBSDKAppEvents singleton] flushForReason:FBSDKAppEventsFlushReasonEagerlyFlushingEvent];
}
}
}
+ (FBSDKAppEventsFlushBehavior)flushBehavior
@ -507,7 +524,7 @@ static NSString *g_overrideAppID = nil;
return;
}
NSDictionary *params = @{ @"data" : dataJSONString };
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:[NSString stringWithFormat:@"%@/user_properties", [FBSDKSettings appID]]
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:[NSString stringWithFormat:@"%@/user_properties", [[self singleton] appID]]
parameters:params
tokenString:[FBSDKAccessToken currentAccessToken].tokenString
HTTPMethod:@"POST"

View File

@ -56,7 +56,7 @@
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation;
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_9_3
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_9_0
/**
Call this method from the [UIApplicationDelegate application:openURL:options:] method
of the AppDelegate for your app. It should be invoked for the proper processing of responses during interaction

View File

@ -21,6 +21,10 @@
#import <objc/runtime.h>
#if !TARGET_OS_TV
#import <SafariServices/SafariServices.h>
#endif
#import "FBSDKAppEvents+Internal.h"
#import "FBSDKConstants.h"
#import "FBSDKDynamicFrameworkLoader.h"
@ -51,6 +55,9 @@ static NSString *const FBSDKAppLinkInboundEvent = @"fb_al_inbound";
FBSDKBridgeAPIRequest *_pendingRequest;
FBSDKBridgeAPICallbackBlock _pendingRequestCompletionBlock;
id<FBSDKURLOpening> _pendingURLOpen;
#ifdef __IPHONE_11_0
SFAuthenticationSession *_authenticationSession NS_AVAILABLE_IOS(11_0);
#endif
#endif
BOOL _expectingBackground;
UIViewController *_safariViewController;
@ -123,7 +130,7 @@ static NSString *const FBSDKAppLinkInboundEvent = @"fb_al_inbound";
#pragma mark - UIApplicationDelegate
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_9_3
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_9_0
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
@ -243,7 +250,7 @@ static NSString *const FBSDKAppLinkInboundEvent = @"fb_al_inbound";
#if !TARGET_OS_TV
- (void)openURL:(NSURL *)url sender:(id<FBSDKURLOpening>)sender handler:(void(^)(BOOL))handler
- (void)openURL:(NSURL *)url sender:(id<FBSDKURLOpening>)sender handler:(void(^)(BOOL, NSError *))handler
{
_expectingBackground = YES;
_pendingURLOpen = sender;
@ -251,7 +258,9 @@ static NSString *const FBSDKAppLinkInboundEvent = @"fb_al_inbound";
// Dispatch openURL calls to prevent hangs if we're inside the current app delegate's openURL flow already
NSOperatingSystemVersion iOS10Version = { .majorVersion = 10, .minorVersion = 0, .patchVersion = 0 };
if ([FBSDKInternalUtility isOSRunTimeVersionAtLeast:iOS10Version]) {
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:handler];
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {
handler(success, nil);
}];
} else {
BOOL opened = [[UIApplication sharedApplication] openURL:url];
@ -264,7 +273,7 @@ static NSString *const FBSDKAppLinkInboundEvent = @"fb_al_inbound";
}
}
if (handler) {
handler(opened);
handler(opened, nil);
}
}
});
@ -287,7 +296,7 @@ static NSString *const FBSDKAppLinkInboundEvent = @"fb_al_inbound";
}
_pendingRequest = request;
_pendingRequestCompletionBlock = [completionBlock copy];
void (^handler)(BOOL) = ^(BOOL openedURL) {
void (^handler)(BOOL, NSError *) = ^(BOOL openedURL, NSError *anError) {
if (!openedURL) {
_pendingRequest = nil;
_pendingRequestCompletionBlock = nil;
@ -315,7 +324,7 @@ static NSString *const FBSDKAppLinkInboundEvent = @"fb_al_inbound";
- (void)openURLWithSafariViewController:(NSURL *)url
sender:(id<FBSDKURLOpening>)sender
fromViewController:(UIViewController *)fromViewController
handler:(void(^)(BOOL))handler
handler:(void(^)(BOOL, NSError *))handler
{
if (![url.scheme hasPrefix:@"http"]) {
[self openURL:url sender:sender handler:handler];
@ -325,6 +334,23 @@ static NSString *const FBSDKAppLinkInboundEvent = @"fb_al_inbound";
_expectingBackground = NO;
_pendingURLOpen = sender;
#ifdef __IPHONE_11_0
if ([sender isAuthenticationURL:url]) {
Class SFAuthenticationSessionClass = fbsdkdfl_SFAuthenticationSessionClass();
if (SFAuthenticationSessionClass != nil) {
_authenticationSession = [[SFAuthenticationSessionClass alloc] initWithURL:url callbackURLScheme:[FBSDKInternalUtility appURLScheme] completionHandler:^ (NSURL *aURL, NSError *error) {
handler(error == nil, error);
if (error == nil) {
[self application:[UIApplication sharedApplication] openURL:aURL sourceApplication:@"com.apple" annotation:nil];
}
_authenticationSession = nil;
}];
[_authenticationSession start];
return;
}
}
#endif
// trying to dynamically load SFSafariViewController class
// so for the cases when it is available we can send users through Safari View Controller flow
// in cases it is not available regular flow will be selected
@ -332,6 +358,12 @@ static NSString *const FBSDKAppLinkInboundEvent = @"fb_al_inbound";
if (SFSafariViewControllerClass) {
UIViewController *parent = fromViewController ?: [FBSDKInternalUtility topMostViewController];
if (parent == nil) {
[FBSDKLogger singleShotLogEntry:FBSDKLoggingBehaviorDeveloperErrors
formatString:@"There are no valid ViewController to present SafariViewController with", nil];
return;
}
NSURLComponents *components = [NSURLComponents componentsWithURL:url resolvingAgainstBaseURL:NO];
NSURLQueryItem *sfvcQueryItem = [[NSURLQueryItem alloc] initWithName:@"sfvc" value:@"1"];
[components setQueryItems:[components.queryItems arrayByAddingObject:sfvcQueryItem]];
@ -360,7 +392,7 @@ static NSString *const FBSDKAppLinkInboundEvent = @"fb_al_inbound";
// Assuming Safari View Controller always opens
if (handler) {
handler(YES);
handler(YES, nil);
}
} else {
[self openURL:url sender:sender handler:handler];
@ -420,7 +452,9 @@ static NSString *const FBSDKAppLinkInboundEvent = @"fb_al_inbound";
return;
}
NSURL *targetURL = [NSURL URLWithString:applinkData[@"target_url"]];
NSString *targetURLString = applinkData[@"target_url"];
NSURL *targetURL = [targetURLString isKindOfClass:[NSString class]] ? [NSURL URLWithString:targetURLString] : nil;
NSMutableDictionary *logData = [[NSMutableDictionary alloc] init];
[FBSDKInternalUtility dictionary:logData setObject:[targetURL absoluteString] forKey:@"targetURL"];
[FBSDKInternalUtility dictionary:logData setObject:[targetURL host] forKey:@"targetURLHost"];

View File

@ -44,5 +44,5 @@
#import <FBSDKCoreKit/FBSDKDeviceViewControllerBase.h>
#endif
#define FBSDK_VERSION_STRING @"4.19.0"
#define FBSDK_TARGET_PLATFORM_VERSION @"v2.8"
#define FBSDK_VERSION_STRING @"4.26.0"
#define FBSDK_TARGET_PLATFORM_VERSION @"v2.10"

View File

@ -824,7 +824,7 @@ NSURLSessionDataDelegate
if ([result isKindOfClass:[NSDictionary class]]) {
NSDictionary *errorDictionary = [FBSDKTypeUtility dictionaryValue:result[@"body"]][@"error"];
if (errorDictionary) {
if ([errorDictionary isKindOfClass:[NSDictionary class]]) {
NSMutableDictionary *userInfo = [NSMutableDictionary dictionary];
[FBSDKInternalUtility dictionary:userInfo setObject:errorDictionary[@"code"] forKey:FBSDKGraphRequestErrorGraphErrorCode];
[FBSDKInternalUtility dictionary:userInfo setObject:errorDictionary[@"error_subcode"] forKey:FBSDKGraphRequestErrorGraphErrorSubcode];

View File

@ -79,7 +79,7 @@ static const long INACTIVE_SECONDS_QUANTA[] =
* do to other device activity, like a text message, so this class allows those interruptions to be smoothed
* out and the time actually spent in the app excluding this interruption time to be accumulated. Also,
* once a certain amount of time has gone by where the app is not in the foreground, we consider the
* session to be complete, and a new session beginning. When this occurs, we log an 'activate app' event
* session to be complete, and a new session beginning. When this occurs, we log a 'deactivate app' event
* with the duration of the previous session as the 'value' of this event, along with the number of
* interruptions from that previous session as an event parameter.
*/

View File

@ -36,4 +36,6 @@
- (void)applicationDidBecomeActive:(UIApplication *)application;
- (BOOL)isAuthenticationURL:(NSURL *)url;
@end

View File

@ -43,9 +43,9 @@ typedef void(^FBSDKBridgeAPICallbackBlock)(FBSDKBridgeAPIResponse *response);
- (void)openURLWithSafariViewController:(NSURL *)url
sender:(id<FBSDKURLOpening>)sender
fromViewController:(UIViewController *)fromViewController
handler:(void(^)(BOOL))handler;
handler:(void(^)(BOOL, NSError *))handler;
- (void)openURL:(NSURL *)url sender:(id<FBSDKURLOpening>)sender handler:(void(^)(BOOL))handler;
- (void)openURL:(NSURL *)url sender:(id<FBSDKURLOpening>)sender handler:(void(^)(BOOL, NSError *))handler;
#endif

View File

@ -179,6 +179,7 @@ FBSDK_EXTERN Class fbsdkdfl_ASIdentifierManagerClass(void);
#pragma mark - SafariServices Classes
FBSDK_EXTERN Class fbsdkdfl_SFSafariViewControllerClass(void);
FBSDK_EXTERN Class fbsdkdfl_SFAuthenticationSessionClass(void);
#pragma mark - Accounts Constants

View File

@ -313,6 +313,11 @@ setJSONStringForObject:(id)object
*/
+ (BOOL)isRegisteredURLScheme:(NSString *)urlScheme;
/**
returns the current key window
*/
+ (UIWindow *)findWindow;
/**
returns currently displayed top view controller.
*/

View File

@ -622,10 +622,34 @@ static NSMapTable *_transientObjects;
}
}
+ (UIWindow *)findWindow
{
UIWindow *window = [UIApplication sharedApplication].keyWindow;
if (window == nil || window.windowLevel != UIWindowLevelNormal) {
for (window in [UIApplication sharedApplication].windows) {
if (window.windowLevel == UIWindowLevelNormal) {
break;
}
}
}
if (window == nil) {
[FBSDKLogger singleShotLogEntry:FBSDKLoggingBehaviorDeveloperErrors
formatString:@"Unable to find a valid UIWindow", nil];
}
return window;
}
+ (UIViewController *)topMostViewController
{
UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController;
UIWindow *keyWindow = [self findWindow];
// SDK expects a key window at this point, if it is not, make it one
if (keyWindow != nil && !keyWindow.isKeyWindow) {
[FBSDKLogger singleShotLogEntry:FBSDKLoggingBehaviorDeveloperErrors
formatString:@"Unable to obtain a key window, marking %@ as keyWindow", keyWindow.description];
[keyWindow makeKeyWindow];
}
UIViewController *topController = keyWindow.rootViewController;
while (topController.presentedViewController) {
topController = topController.presentedViewController;
}

View File

@ -21,6 +21,7 @@
#import "FBSDKAccessToken.h"
#import "FBSDKDynamicFrameworkLoader.h"
#import "FBSDKInternalUtility.h"
#import "FBSDKLogger.h"
#import "FBSDKSettings.h"
#import "FBSDKTypeUtility.h"
#import "FBSDKWebDialogView.h"
@ -81,8 +82,10 @@ static FBSDKWebDialog *g_currentDialog = nil;
g_currentDialog = self;
UIWindow *window = [self _findWindow];
UIWindow *window = [FBSDKInternalUtility findWindow];
if (!window) {
[FBSDKLogger singleShotLogEntry:FBSDKLoggingBehaviorDeveloperErrors
formatString:@"There are no valid ViewController to present FBSDKWebDialog", nil];
[self _failWithError:nil];
return NO;
}
@ -209,19 +212,6 @@ static FBSDKWebDialog *g_currentDialog = nil;
});
}
- (UIWindow *)_findWindow
{
UIWindow *window = [UIApplication sharedApplication].keyWindow;
if (window == nil || window.windowLevel != UIWindowLevelNormal) {
for (window in [UIApplication sharedApplication].windows) {
if (window.windowLevel == UIWindowLevelNormal) {
break;
}
}
}
return window;
}
- (NSURL *)_generateURL:(NSError **)errorRef
{
NSMutableDictionary *parameters = [[NSMutableDictionary alloc] init];
@ -241,8 +231,10 @@ static FBSDKWebDialog *g_currentDialog = nil;
- (BOOL)_showWebView
{
UIWindow *window = [self _findWindow];
UIWindow *window = [FBSDKInternalUtility findWindow];
if (!window) {
[FBSDKLogger singleShotLogEntry:FBSDKLoggingBehaviorDeveloperErrors
formatString:@"There are no valid ViewController to present FBSDKWebDialog", nil];
[self _failWithError:nil];
return NO;
}

View File

@ -375,6 +375,12 @@ Class fbsdkdfl_SFSafariViewControllerClass(void)
return c;
}
Class fbsdkdfl_SFAuthenticationSessionClass(void)
{
_fbsdkdfl_SafariServices_get_c(SFAuthenticationSession);
return c;
}
#pragma mark - Accounts Constants
_fbsdkdfl_load_framework_once_impl_(Accounts)

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Besoek %@ op jou slimfoon of rekenaar en voer hierdie kode in:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Besoek %@ en voer die kode in wat hierbo vertoon word.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Om jou rekening te verbind, maak die Facebook-toepassing op jou mobiele toestel oop en kontroleer vir kennisgewings.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- OF -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "Goed";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Deel";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Nie jy nie?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Bevestig aantekening";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Gaan voort as %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "زر %@ على هاتفك الذكي أو الكمبيوتر ثم أدخل هذا الرمز:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "تفضل بزيارة %@ وإدخال الرمز الموضح أدناه.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "لربط حسابك، افتح تطبيق فيسبوك على جهازك المحمول ثم تفقد الإشعارات.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- أو -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "موافق";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "مشاركة";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "لست أنت؟";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "تأكيد تسجيل الدخول";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "متابعة باسم %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "আপনার কম্পিউটার বা স্মার্টফোন থেকে %@ এ যান এবং এই কোডটিকে প্রবেশ করান:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "%@ -এ যান এবং উপরে যে কোডটি দেখানো হয়েছে সেটি লিখুন।";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "আপনার অ্যাকাউন্টে সংযোগ করতে, আপনার মোবাইল ডিভাইসে Facebook অ্যাপটি খুলুন এবং বিজ্ঞপ্তি চেক করুন।";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- অথবা -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "ঠিক আছে";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "ভাগ করুন";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "আপনি নন?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "লগ ইন নিশ্চিত করুন";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "%@ হিসেবে চালিয়ে যান";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Přejděte ze smartphonu nebo počítače na %@ a zadejte tento kód:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Navštivte %@ a zadejte nahoře uvedený kód.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Účet si můžete připojit tak, že si na mobilním zařízení spustíte aplikaci Facebook a podíváte se do upozornění.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- NEBO -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Sdílet";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Nejste to vy?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Potvrdit přihlášení";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Pokračovat jako %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Gå til %@ på din smartphone eller computer, og indtast denne kode:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Gå til %@, og indtast den kode, der er angivet ovenfor.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Du kan tilknytte din konto ved at åbne Facebook-appen på din mobilenhed og tjekke notifikationerne.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- ELLER -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Del";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Ikke dig?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Bekræft login";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Fortsæt som %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Gehe über dein Smartphone oder deinen Computer zu %@ und gib diesen Code ein:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Besuche %@ und gib den oben angezeigten Code ein.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Um dein Konto zu verbinden, öffne die Facebook-App auf deinem Mobilgerät und prüfe, ob du Benachrichtigungen erhalten hast.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = " ODER ";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Teilen";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Nicht du?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Login bestätigen";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Fortfahren als %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Επισκεφτείτε τον ιστότοπο %@ από το smartphone ή τον υπολογιστή σας και πληκτρολογήστε αυτόν τον κωδικό:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Επισκεφτείτε τη διεύθυνση %@ και συμπληρώστε τον παραπάνω κωδικό.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Για να συνδεθείτε στο λογαριασμό σας, ανοίξτε την εφαρμογή Facebook στη φορητή συσκευή σας και ελέγξτε τις ειδοποιήσεις.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- Ή -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Κοινοποίηση";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Δεν είστε εσείς;";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Επιβεβαίωση σύνδεσης";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Συνέχεια ως %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Visit %@ on your smartphone or computer and enter this code:";
"DeviceLogin.LogInPrompt" = "Visit %@ and enter the code shown above.";
/* The 'or' string for smart login instructions */
"DeviceLogin.SmartLogInOrLabel" = "-- OR --";
/* The string for smart login instructions */
"DeviceLogin.SmartLogInPrompt" = "To connect your account, open the Facebook app on your mobile device and check for notifications.";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Share";
/* The title for the alert when smart login requires confirmation */
"SmartLogin.ConfirmationTitle" = "Confirm Login";
/* The format string to continue as <name> for the alert when smart login requires confirmation */
"SmartLogin.Continue" = "Continue as %@";
/* The cancel label for the alert when smart login requires confirmation */
"SmartLogin.NotYou" = "Not you?";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Visita %@ en tu smartphone o computadora e ingresa este código:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Visita %@ e ingresa el código que se muestra arriba.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Para conectar tu cuenta, abre la aplicación de Facebook en tu dispositivo móvil y comprueba las notificaciones.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- O -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "Aceptar";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Compartir";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "¿No eres tú?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Confirmar inicio de sesión";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Continuar como %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Visita %@ en tu smartphone u ordenador e introduce este código:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Visita %@ e introduce el código que se muestra arriba.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Para conectar tu cuenta, abre la aplicación de Facebook en tu dispositivo móvil y comprueba las notificaciones.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- O -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "Aceptar";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Compartir";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "¿No eres tú?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Confirmar inicio de sesión";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Continuar como %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Siirry osoitteeseen %@ älypuhelimella tai tietokoneella ja anna seuraava koodi:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Siirry osoitteeseen %@ ja kirjoita oheinen koodi sivulle.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Pääset liittämään käyttäjätilisi avaamalla Facebook-sovelluksen mobiililaitteellasi ja tarkistamalla ilmoitukset.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- TAI -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Jaa";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Etkö tämä ole sinä?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Vahvista sisäänkirjautuminen";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Jatka nimellä %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Puntahan ang %@ sa iyong smartphone o computer at ilagay ang code na ito:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Pumunta sa %@ at ilagay ang code na ipinapakita sa itaas.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Para ikonekta ang iyong account, buksan ang Facebook app sa iyong cellphone at tumingin ng mga notification.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- O KAYA -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Ibahagi";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Hindi ikaw?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "I-confirm ang Pag-log in";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Magpatuloy bilang %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Rendez-vous sur %@ sur votre smartphone ou votre ordinateur et entrez ce code :";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Consultez la page %@ et saisissez le code indiqué ci-dessus.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Pour connecter votre compte, lancez lapplication Facebook sur votre appareil mobile et consultez les notifications.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- OU -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Partager";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Ce nest pas vous ?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Confirmer la connexion";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Continuer en tant que %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "તમારા સ્માર્ટફોન અથવા કમ્પ્યુટર પર %@ ની મુલાકાત લો અને આ કોડ દાખલ કરો:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "%@ ની મુલાકાત લો અને ઉપર બતાવ્યા પ્રમાણે કોડ દાખલ કરો.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "તમારા એકાઉન્ટ સાથે જોડાવા માટે, તમારા મોબાઇલ ઉપકરણ પર Facebook એપ્લિકેશન ખોલો અને સૂચનો માટે તપાસો.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- અથવા -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "ઠીક";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "શેર કરો";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "તમે નહિ?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "લૉગિનની પુષ્ટિ કરો";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "%@ તરીકે ચાલુ રાખો";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "בקר ב-%@ בטלפון החכם או במחשב והזן קוד זה:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "בקר ב-%@ והזן את הקוד המופיע למעלה.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "כדי לחבר את החשבון שלך, פתח את אפליקציית פייסבוק במכשיר הנייד שלך ובדוק אם יש התראות.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- או -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "אישור";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "שתף";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "לא אתה?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "אשר התחברות";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "המשך כ-%@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "अपने स्मार्टफ़ोन या कंप्यूटर पर %@ पर जाएँ और यह कोड डालें:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "%@ पर जाएँ और ऊपर दिया गया कोड दर्ज करें.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "अपने खाते को कनेक्ट करने के लिए, अपने मोबाइल एप्लिकेशन में Facebook एप्लिकेशन खोलें और सूचनाओं के लिए जाँच करें.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- या -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "ठीक";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "साझा करें";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "आप नहीं हैं?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "लॉग इन कन्फ़र्म करें";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "%@ के रूप में जारी रखें";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Posjetite %@ na pametnom telefonu ili računalu i unesite ovaj kôd:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Posjetite adresu %@ i unesite gore prikazan kod.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Da biste povezali račun, otvorite aplikaciju Facebook na mobilnom uređaju i potražite obavijesti.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- ILI -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "U redu";
@ -20,7 +26,7 @@
"LikeButton.Like" = "Sviđa mi se";
/* The label for the FBSDKLikeButton when the object is currently liked. */
"LikeButton.Liked" = "Označeno sa "sviđa mi se"";
"LikeButton.Liked" = "Označeno sa \"sviđa mi se\"";
/* The label for the FBSDKLoginButton action sheet to cancel logging out */
"LoginButton.CancelLogout" = "Odustani";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Dijeli";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "To niste vi?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Potvrda prijave";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Nastavi kao %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Keresd fel a(z) %@ oldalt a telefonodról vagy számítógépről, és írd be a következő kódot:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Keresd fel a %@ címet, és írd be a fent megjelenített kódot.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "A fiók hozzákapcsolásához nyisd meg a Facebook alkalmazást a mobilkészülékeden, és nézd meg az értesítéseket.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- VAGY -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Megosztás";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Nem te vagy az?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Bejelentkezés megerősítése";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Folytatás mint %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Buka %@ dari smartphone Anda atau komputer dan masukkan kode ini:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Kunjungi %@ dan masukkan kode yang ditampilkan di atas.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Untuk menghubungkan akun Anda, buka aplikasi Facebook di perangkat seluler Anda dan periksa pemberitahuan.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- ATAU -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Berbagi";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Bukan Anda?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Konfirmasikan Masuk";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Lanjutkan sebagai %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Accedi a %@ nel tuo smartphone o computer e inserisci questo codice:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Visita %@ e inserisci il codice mostrato sopra.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Per collegare il tuo account, apri l'app Facebook sul tuo dispositivo mobile e controlla se hai notifiche.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- OPPURE -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Condividi";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Non sei tu?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Conferma l'accesso";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Continua come %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "スマートフォンまたはコンピュータから%@にアクセスし、次のコードを入力してください。";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "%@にアクセスし、上に表示されているコードを入力してください。";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "アカウントをリンクするには、お使いのモバイル機器でFacebookアプリを開き、お知らせをご確認ください。";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- または -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "シェア";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "別のユーザーとしてログイン";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "ログインの確認";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "%@として続行";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "스마트폰이나 컴퓨터에서 %@ 주소를 방문하여 다음 코드를 입력하세요.";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "%@를 방문하여 위에 표시된 코드를 입력하세요.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "계정을 연결하려면 모바일 기기에서 Facebook 앱을 열고 알림을 확인하세요.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- 또는 -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "확인";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "공유하기";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "회원님이 아닌가요?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "로그인 확인";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "%@님으로 계속";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "നിങ്ങളുടെ സ്‌മാർട്ട്ഫോണിലെ അല്ലെങ്കിൽ കമ്പ്യൂട്ടറിലെ %@ സന്ദർശിച്ച് ഇനിപ്പറയുന്ന കോഡ് നൽകുക:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "%@ സന്ദർശിച്ച്‌ മുകളിൽ കാണിച്ച‌ കോഡ്‌ നൽകുക.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "നിങ്ങളുടെ അക്കൗണ്ട്‌ കണക്‌റ്റുചെയ്യാൻ, നിങ്ങളുടെ മൊബൈൽ ഉപകരണത്തിലെ Facebook ആപ്പ്‌ തുറന്ന്‌ അറിയിപ്പുകൾ പരിശോധിക്കുക.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- അല്ലെങ്കിൽ -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "ശരി";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "പങ്കിടൂ";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "നിങ്ങൾ അല്ലേ?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "ലോഗിൻ സ്ഥിരീകരിക്കുക";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "%@ ആയി തുടരുക";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "आपला स्‍मार्ट फोन किंवा संगणकावर %@ ला भेट द्या आणि हा कोड प्रविष्‍ट करा:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "%@ वर भेट द्या आणि वर दर्शवलेला कोड प्रविष्ट करा.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "तुमचे खाते कनेक्ट करण्यासाठी, तुमच्या मोबाईल उपकरणावर Facebook अॅप उघडा आणि सूचना तपासा.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- किंवा -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "ठीक";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "सामायिक करा";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "तुम्ही नाही?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "लॉग इन पुष्टी करा";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "%@ म्हणून चालू ठेवा";

View File

@ -1,3 +1,12 @@
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Lawati %@ dan masukkan kod yang ditunjukkan di atas.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Untuk menghubungkan akaun anda, buka apl Facebook di peranti mudah alih anda dan semak pemberitahuan.";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Bukan anda?";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -72,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Kongsi";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Sahkan Log Masuk";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Teruskan sebagai %@";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- ATAU -";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Gå til %@ på smarttelefonen eller datamaskinen din, og oppgi denne koden:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Gå til %@, og oppgi koden som vises ovenfor.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Koble til kontoen din ved å åpne Facebook-appen på mobilenheten din og se etter varsler.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- ELLER -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Del";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Ikke deg?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Bekreft innlogging";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Fortsett som %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Ga op je smartphone of computer naar %@ en voer deze code in:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Ga naar %@ en voer de bovenstaande code in.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Om je account te verbinden, open je de Facebook-app op je mobiele apparaat en controleer of je meldingen ziet.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- OF -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Delen";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Ben jij dit niet?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Aanmelden bevestigen";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Doorgaan als %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "ਆਪਣੇ ਸਮਾਰਟਫ਼ੋਨ ਜਾਂ ਕੰਪਿਊਟਰ 'ਤੇ %@ ਵਿੱਚ ਜਾਓ ਅਤੇ ਇਸ ਕੋਡ ਨੂੰ ਦਾਖ਼ਲ ਕਰੋ:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "%@ ਵਿੱਚ ਜਾਓ ਅਤੇ ਉੱਤੇ ਦਿਖਾਏ ਗਏ ਕੋਡ ਨੂੰ ਦਾਖ਼ਲ ਕਰੋ।";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "ਆਪਣੇ ਖਾਤੇ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਲਈ, ਆਪਣੀ ਮੋਬਾਈਲ ਡਿਵਾਈਸ 'ਤੇ Facebook ਐਪ ਨੂੰ ਖੋਲ੍ਹੋ ਅਤੇ ਸੂਚਨਾਵਾਂ ਨੂੰ ਦੇਖੋ।";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- ਜਾਂ -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "ਠੀਕ";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "ਭੇਜੋ";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "ਕੀ ਤੁਸੀਂ ਨਹੀਂ ਹੋ?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "ਲੌਗਇਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "%@ ਵੱਜੋਂ ਜਾਰੀ ਰੱਖੋ";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Przejdź do %@ na smartfonie lub komputerze i wprowadź ten kod:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Wejdź na stronę %@ i wprowadź podany powyżej kod.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Aby połączyć konto, otwórz aplikację Facebook na urządzeniu mobilnym i sprawdź powiadomienia.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- LUB -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Udostępnij";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "To nie Ty?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Potwierdź logowanie";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Kontynuuj jako %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Acesse %@ no seu smartphone ou computador e insira este código:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Acesse %@ e introduza o código mostrado acima.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Para conectar sua conta, abra o aplicativo Facebook em seu dispositivo móvel e verifique se tem notificações.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = " OU ";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Compartilhar";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Não é você?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Confirme o login";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Continue como %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Visita %@ no teu smartphone ou computador e insere este código:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Visita %@ e introduz o código mostrado acima.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Para ligares a tua conta, abre a app Facebook no teu dispositivo móvel e verifica se tens notificações.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = " OU ";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Partilhar";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Não és tu?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Confirmar Início de Sessão";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Continuar como %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Откройте «%@» на своем смартфофне или компьютере и введите этот код:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Откройте страницу %@ и введите представленный выше код.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Чтобы подключить аккаунт, откройте приложение Facebook на мобильном устройстве и проверьте уведомления.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- ИЛИ -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Поделиться";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Это не вы?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Подтвердить вход";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Продолжить как %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Navštívte %@ v smartfóne alebo počítači a zadajte tento kód:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Navštívte stránku %@ a zadajte kód zobrazený vyššie.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Na pripojenie svojho účtu otvorte vo svojom mobilnom zariadení aplikáciu Facebook a skontrolujte upozornenia.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- ALEBO -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Zdieľať";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Nie ste to vy?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Potvrdiť prihlásenie";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Pokračovať ako %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Besök %@ på din smartphone eller dator och ange den här koden:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Besök %@ och ange koden som visas ovan.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Koppla ditt konto genom att öppna Facebook-appen på din mobila enhet och söka efter aviseringar.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- ELLER -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Dela";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Inte du?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Bekräfta inloggning";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Fortsätt som %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "உங்கள் ஸ்மார்ட்ஃபோன் அல்லது கணினியில் %@ ஐப் பார்வையிட்டு, பின்வரும் குறியீட்டை உள்ளிடவும்:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "%@ என்பதற்குச் சென்று மேலே தெரியும் குறியீட்டை உள்ளிடவும்.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "உங்கள் கணக்குடன் இணைக்க, உங்கள் மொபைல் சாதனத்தில் Facebook பயன்பாட்டைத் திறந்து அறிவிப்புகளைப் பார்க்கவும்.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- அல்லது -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "சரி";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "பகிர்";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "நீங்கள் இல்லையா?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "உள்நுழைவை உறுதிப்படுத்தவும்";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "%@ ஆகத் தொடரவும்";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "మీ స్మార్ట్‌ఫోన్ లేదా కంప్యూటర్‌లో %@ సందర్శించి, ఈ కోడ్‌ను నమోదు చేయండి:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "%@ లింక్‌ను సందర్శించి, ఎగువ చూపిన కోడ్‌ను నమోదు చేయండి.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "మీ ఖాతాను అనుసంధానించడానికి, మీ మొబైల్ పరికరంలో Facebook అనువర్తనాన్ని తెరిచి, నోటిఫికేషన్‌లను తనిఖీ చేయండి.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- లేదా -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "ఒప్పుకుంటున్నాను";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "భాగస్వామ్యం చేయండి";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "మీరు కాదా?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "లాగిన్‌ను నిర్ధారించండి";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "%@ వలె కొనసాగండి";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "ไปที่ %@ ในสมาร์ทโฟนหรือคอมพิวเตอร์ของคุณ แล้วป้อนรหัสนี้:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "ไปที่ %@ และใส่โค้ดที่แสดงด้านบน";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "หากต้องการเชื่อมต่อบัญชีผู้ใช้ของคุณ ให้เปิดแอพ Facebook บนอุปกรณ์มือถือของคุณและตรวจสอบการแจ้งเตือน";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- หรือ -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "ตกลง";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "แชร์";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "หากไม่ใช่คุณ";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "ยืนยันการเข้าสู่ระบบ";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "ดำเนินการต่อในชื่อ %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Akıllı telefonunda veya bilgisayarında %@ adresine git ve bu kodu gir:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "%@ adresini ziyaret edin ve yukarıda görülen kodu girin.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Hesabınızı bağlamak için, mobil cihazınızda Facebook uygulamasınıın ve bildirimlerinizi kontrol edin.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- YA DA -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "Tamam";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Paylaş";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Sen değil misin?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Girişi Onayla";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "%@ olarak devam et";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "Truy cập %@ trên điện thoại thông minh hoặc máy tính và nhập mã sau:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "Truy cập %@ và nhập mã hiển thị ở trên.";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "Để kết nối tài khoản của bạn, hãy mở ứng dụng Facebook trên thiết bị di động và kiểm tra thông báo.";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- HOẶC -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "OK";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "Chia sẻ";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "Không phải bạn?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "Xác nhận đăng nhập";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "Tiếp tục với tư cách %@";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "请用智能手机或电脑访问 %@,然后输入验证码:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "请访问 %@ 并输入上方显示的验证码。";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "要关联你的帐户,请在移动设备上打开 Facebook 应用,并查看通知。";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- 或者 -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "确定";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "分享";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "不是你?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "确认登录";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "以%@的身份继续";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "在智能手機或電腦前往 %@ 並輸入此代碼:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "前往 %@ 並輸入上方的程式碼。";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "若要連結您的帳戶,請在您的流動裝置上開啟 Facebook 應用程式並查看通知。";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- 或 -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "確定";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "分享";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "這不是您?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "確認登入";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "以%@的身分繼續";

View File

@ -1,5 +1,11 @@
/* The format string for device login instructions */
"DeviceLogin.LogInPrompt" = "使用您的智慧型手機或電腦前往 %@,然後輸入此代碼:";
/* Prompts a person to go to the URL listed to enter the confirmation code that is presented to them above the given string. */
"DeviceLogin.LogInPrompt" = "請前往 %@ 並輸入上方顯示的代碼。";
/* Prompts a person that the next thing they need to do to finish connecting their Smart TV and Facebook application is to navigate to their Facebook application on their mobile device and look through their notifications for a message about the connection being formed */
"DeviceLogin.SmartLogInPrompt" = "若要連結帳號,請從行動裝置開啟 Facebook 應用程式,並查看通知。";
/* Displayed as a separator between two options. First option is on a line above this, and second option is below */
"DeviceLogin.SmartLogInOrLabel" = "- 或 -";
/* The title of the label to dismiss the alert when presenting user facing error messages */
"ErrorRecovery.Alert.OK" = "是";
@ -75,3 +81,12 @@
/* The label for FBSDKShareButton */
"ShareButton.Share" = "分享";
/* Prompts a person if this is their current account */
"SmartLogin.NotYou" = "這不是您?";
/* Text on a button that a person presses to confirm that they are finished with the login experience */
"SmartLogin.ConfirmationTitle" = "確認登入";
/* Text on a button that lets a person continue with their name linked to a Facebook account (Name = %@) */
"SmartLogin.Continue" = "以 %@ 身分繼續";

View File

@ -20,7 +20,7 @@ FEATURES
* Sharing - https://developers.facebook.com/docs/sharing
* App Links - https://developers.facebook.com/docs/applinks
* Graph API - https://developers.facebook.com/docs/ios/graph
* Analytics for Apps - https://developers.facebook.com/docs/analytics
* Analytics - https://developers.facebook.com/docs/analytics
GIVE FEEDBACK
-------------

View File

@ -32,6 +32,7 @@
static int const FBClientStateChallengeLength = 20;
static NSString *const FBSDKExpectedChallengeKey = @"expected_login_challenge";
static NSString *const FBSDKOauthPath = @"/dialog/oauth";
typedef NS_ENUM(NSInteger, FBSDKLoginManagerState) {
FBSDKLoginManagerStateIdle,
@ -505,10 +506,10 @@ typedef NS_ENUM(NSInteger, FBSDKLoginManagerState) {
NSURL *authURL = [FBSDKInternalUtility URLWithScheme:scheme host:@"authorize" path:@"" queryParameters:mutableParams error:&error];
NSDate *start = [NSDate date];
[[FBSDKApplicationDelegate sharedInstance] openURL:authURL sender:self handler:^(BOOL openedURL) {
[[FBSDKApplicationDelegate sharedInstance] openURL:authURL sender:self handler:^(BOOL openedURL, NSError *anError) {
[_logger logNativeAppDialogResult:openedURL dialogDuration:-[start timeIntervalSinceNow]];
if (handler) {
handler(openedURL, error);
handler(openedURL, anError);
}
}];
}
@ -534,14 +535,14 @@ typedef NS_ENUM(NSInteger, FBSDKLoginManagerState) {
setObject:redirectURL
forKey:@"redirect_uri"];
authURL = [FBSDKInternalUtility facebookURLWithHostPrefix:@"m."
path:@"/dialog/oauth"
path:FBSDKOauthPath
queryParameters:browserParams
error:&error];
}
if (authURL) {
void(^handlerWrapper)(BOOL) = ^(BOOL didOpen) {
void(^handlerWrapper)(BOOL, NSError*) = ^(BOOL didOpen, NSError *anError) {
if (handler) {
handler(didOpen, authMethod, nil);
handler(didOpen, authMethod, anError);
}
};
if (useSafariViewController) {
@ -607,6 +608,11 @@ typedef NS_ENUM(NSInteger, FBSDKLoginManagerState) {
}
}
- (BOOL)isAuthenticationURL:(NSURL *)url
{
return [url.path hasSuffix:FBSDKOauthPath];
}
@end
@implementation FBSDKLoginManager (Accounts)

View File

@ -300,6 +300,7 @@ static NSString *const FBSDKLoginManagerLoggerTryWebView = @"tryFallback";
}
} else if (error) {
params[FBSDKLoginManagerLoggerParamErrorCodeKey] = @(error.code);
params[FBSDKLoginManagerLoggerParamErrorMessageKey] = error.localizedDescription;
}
[self logEvent:eventName params:params];

View File

@ -20,7 +20,7 @@ FEATURES
* Sharing - https://developers.facebook.com/docs/sharing
* App Links - https://developers.facebook.com/docs/applinks
* Graph API - https://developers.facebook.com/docs/ios/graph
* Analytics for Apps - https://developers.facebook.com/docs/analytics
* Analytics - https://developers.facebook.com/docs/analytics
GIVE FEEDBACK
-------------

View File

@ -268,10 +268,12 @@ static NSMutableArray *g_pendingFBSDKShareAPI;
[self _addCommonParameters:parameters content:linkContent];
[FBSDKInternalUtility dictionary:parameters setObject:self.message forKey:@"message"];
[FBSDKInternalUtility dictionary:parameters setObject:linkContent.contentURL forKey:@"link"];
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
[FBSDKInternalUtility dictionary:parameters setObject:linkContent.imageURL forKey:@"picture"];
[FBSDKInternalUtility dictionary:parameters setObject:linkContent.contentTitle forKey:@"name"];
[FBSDKInternalUtility dictionary:parameters setObject:linkContent.contentDescription forKey:@"description"];
#pragma clang diagnostic pop
[[[FBSDKGraphRequest alloc] initWithGraphPath:[self _graphPathWithSuffix:@"feed", nil]
parameters:parameters
tokenString:self.accessToken.tokenString

View File

@ -109,6 +109,7 @@ FBSDK_STATIC_INLINE void FBSDKShareDialogValidateShareExtensionSchemeRegisteredF
- (BOOL)canShow
{
if (!self.shareContent) {
switch (self.mode) {
case FBSDKShareDialogModeAutomatic:
case FBSDKShareDialogModeBrowser:
@ -124,6 +125,10 @@ FBSDK_STATIC_INLINE void FBSDKShareDialogValidateShareExtensionSchemeRegisteredF
return [self _canShowShareSheet];
}
}
} else {
NSError *error = nil;
return [self _validateWithError:&error];
}
}
- (BOOL)show
@ -195,10 +200,10 @@ FBSDK_STATIC_INLINE void FBSDKShareDialogValidateShareExtensionSchemeRegisteredF
}
message:results[@"error_message"]
underlyingError:nil];
[self _handleWebResponseParameters:nil error:error];
[self _handleWebResponseParameters:nil error:error cancelled: NO];
} else {
// not all web dialogs report cancellation, so assume that the share has completed with no additional information
[self _handleWebResponseParameters:results error:nil];
[self _handleWebResponseParameters:results error:nil cancelled: NO];
}
[FBSDKInternalUtility unregisterTransientObject:self];
}
@ -433,14 +438,16 @@ FBSDK_STATIC_INLINE void FBSDKShareDialogValidateShareExtensionSchemeRegisteredF
return URLs;
}
- (void)_handleWebResponseParameters:(NSDictionary *)webResponseParameters error:(NSError *)error
- (void)_handleWebResponseParameters:(NSDictionary *)webResponseParameters
error:(NSError *)error
cancelled:(BOOL)isCancelled
{
if (error) {
[self _invokeDelegateDidFailWithError:error];
return;
} else {
NSString *completionGesture = webResponseParameters[FBSDK_SHARE_RESULT_COMPLETION_GESTURE_KEY];
if ([completionGesture isEqualToString:FBSDK_SHARE_RESULT_COMPLETION_GESTURE_VALUE_CANCEL]) {
if ([completionGesture isEqualToString:FBSDK_SHARE_RESULT_COMPLETION_GESTURE_VALUE_CANCEL] || isCancelled) {
[self _invokeDelegateDidCancel];
} else {
// not all web dialogs report cancellation, so assume that the share has completed with no additional information
@ -477,7 +484,7 @@ FBSDK_STATIC_INLINE void FBSDKShareDialogValidateShareExtensionSchemeRegisteredF
void(^completion)(BOOL, NSString *, NSDictionary *) = ^(BOOL successfullyBuilt, NSString *cMethodName, NSDictionary *cParameters) {
if (successfullyBuilt) {
FBSDKBridgeAPICallbackBlock completionBlock = ^(FBSDKBridgeAPIResponse *response) {
[self _handleWebResponseParameters:response.responseParameters error:response.error];
[self _handleWebResponseParameters:response.responseParameters error:response.error cancelled: response.isCancelled];
[FBSDKInternalUtility unregisterTransientObject:self];
};
FBSDKBridgeAPIRequest *request;
@ -504,7 +511,7 @@ FBSDK_STATIC_INLINE void FBSDKShareDialogValidateShareExtensionSchemeRegisteredF
return NO;
}
FBSDKBridgeAPICallbackBlock completionBlock = ^(FBSDKBridgeAPIResponse *response) {
[self _handleWebResponseParameters:response.responseParameters error:response.error];
[self _handleWebResponseParameters:response.responseParameters error:response.error cancelled: response.isCancelled];
[FBSDKInternalUtility unregisterTransientObject:self];
};
FBSDKBridgeAPIRequest *request;
@ -530,7 +537,7 @@ FBSDK_STATIC_INLINE void FBSDKShareDialogValidateShareExtensionSchemeRegisteredF
id<FBSDKSharingContent> shareContent = self.shareContent;
NSDictionary *parameters = [FBSDKShareUtility feedShareDictionaryForContent:shareContent];
FBSDKBridgeAPICallbackBlock completionBlock = ^(FBSDKBridgeAPIResponse *response) {
[self _handleWebResponseParameters:response.responseParameters error:response.error];
[self _handleWebResponseParameters:response.responseParameters error:response.error cancelled:response.isCancelled];
[FBSDKInternalUtility unregisterTransientObject:self];
};
FBSDKBridgeAPIRequest *request;
@ -794,18 +801,6 @@ FBSDK_STATIC_INLINE void FBSDKShareDialogValidateShareExtensionSchemeRegisteredF
}
return NO;
}
} else if ([shareContent isKindOfClass:[FBSDKShareMediaContent class]]) {
FBSDKShareMediaContent *mediaContent = (FBSDKShareMediaContent *)shareContent;
if ([FBSDKShareUtility shareMediaContentContainsPhotosAndVideos:mediaContent] &&
self.mode == FBSDKShareDialogModeShareSheet &&
![self _canUseMMPInShareSheet]) {
if ((errorRef != NULL) && !*errorRef) {
*errorRef = [FBSDKShareError invalidArgumentErrorWithName:@"shareContent"
value:shareContent
message:@"Multimedia content (photos + videos) is only supported if Facebook for iOS version 52 and above is installed"];
}
return NO;
}
}
return YES;
}
@ -898,6 +893,7 @@ FBSDK_STATIC_INLINE void FBSDKShareDialogValidateShareExtensionSchemeRegisteredF
[self _validateVideoURL:((FBSDKShareVideoContent *)shareContent).video.videoURL error:errorRef]);
} else if ([shareContent isKindOfClass:[FBSDKShareMediaContent class]]) {
return ([self _canUseFBShareSheet] &&
[self _validateShareMediaContentAvailability:shareContent error:errorRef] &&
[FBSDKShareUtility validateShareMediaContent:(FBSDKShareMediaContent *)shareContent error:errorRef]);
} else if ([shareContent isKindOfClass:[FBSDKShareOpenGraphContent class]]) {
FBSDKShareOpenGraphContent *ogContent = (FBSDKShareOpenGraphContent *)shareContent;
@ -936,6 +932,21 @@ FBSDK_STATIC_INLINE void FBSDKShareDialogValidateShareExtensionSchemeRegisteredF
return YES;
}
- (BOOL)_validateShareMediaContentAvailability:(FBSDKShareMediaContent *)shareContent error:(NSError **)errorRef
{
if ([FBSDKShareUtility shareMediaContentContainsPhotosAndVideos:shareContent] &&
self.mode == FBSDKShareDialogModeShareSheet &&
![self _canUseMMPInShareSheet]) {
if ((errorRef != NULL) && !*errorRef) {
*errorRef = [FBSDKShareError invalidArgumentErrorWithName:@"shareContent"
value:shareContent
message:@"Multimedia content (photos + videos) is only supported if Facebook for iOS version 52 and above is installed"];
}
return NO;
}
return YES;
}
- (void)_invokeDelegateDidCancel
{
NSDictionary * parameters = @{

View File

@ -31,22 +31,34 @@
If not specified, this field is automatically populated by information scraped from the contentURL,
typically the title of the page. This value may be discarded for specially handled links (ex: iTunes URLs).
- Returns: The description of the link
@deprecated `contentDescription` is deprecated from Graph API 2.9.
For more information, see https://developers.facebook.com/docs/apps/changelog#v2_9_deprecations.
*/
@property (nonatomic, copy) NSString *contentDescription;
@property (nonatomic, readonly) NSString *contentDescription
DEPRECATED_MSG_ATTRIBUTE("`contentDescription` is deprecated from Graph API 2.9");
/**
The title to display for this link.
This value may be discarded for specially handled links (ex: iTunes URLs).
- Returns: The link title
@deprecated `contentTitle` is deprecated from Graph API 2.9.
For more information, see https://developers.facebook.com/docs/apps/changelog#v2_9_deprecations
*/
@property (nonatomic, copy) NSString *contentTitle;
@property (nonatomic, readonly) NSString *contentTitle
DEPRECATED_MSG_ATTRIBUTE("`contentTitle` is deprecated from Graph API 2.9");
/**
The URL of a picture to attach to this content.
- Returns: The network URL of an image
@deprecated `imageURL` is deprecated from Graph API 2.9.
For more information, see https://developers.facebook.com/docs/apps/changelog#v2_9_deprecations
*/
@property (nonatomic, copy) NSURL *imageURL;
@property (nonatomic, readonly) NSURL *imageURL
DEPRECATED_MSG_ATTRIBUTE("`imageURL` is deprecated from Graph API 2.9");
/**
Some quote text of the link.

View File

@ -92,6 +92,8 @@
- (BOOL)isEqualToShareLinkContent:(FBSDKShareLinkContent *)content
{
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
return (content &&
[FBSDKInternalUtility object:_contentDescription isEqualToObject:content.contentDescription] &&
[FBSDKInternalUtility object:_contentTitle isEqualToObject:content.contentTitle] &&
@ -103,6 +105,7 @@
[FBSDKInternalUtility object:_placeID isEqualToObject:content.placeID] &&
[FBSDKInternalUtility object:_ref isEqualToObject:content.ref]) &&
[FBSDKInternalUtility object:_quote isEqualToObject:content.quote];
#pragma clang diagnostic pop
}
#pragma mark - NSCoding

View File

@ -239,6 +239,8 @@
+ (NSDictionary *)feedShareDictionaryForContent:(id<FBSDKSharingContent>)content
{
NSMutableDictionary *parameters = nil;
#pragma clang diagnostic pop
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
if ([content isKindOfClass:[FBSDKShareLinkContent class]]) {
FBSDKShareLinkContent *linkContent = (FBSDKShareLinkContent *)content;
parameters = [[NSMutableDictionary alloc] initWithDictionary:linkContent.feedParameters];
@ -250,6 +252,7 @@
[FBSDKInternalUtility dictionary:parameters setObject:linkContent.imageURL forKey:@"picture"];
[FBSDKInternalUtility dictionary:parameters setObject:linkContent.ref forKey:@"ref"];
}
#pragma clang diagnostic pop
return [parameters copy];
}
@ -556,6 +559,7 @@
![self _validateArray:medias minCount:1 maxCount:20 name:@"photos" error:errorRef]) {
return NO;
}
int videoCount = 0;
for (id media in medias) {
if ([media isKindOfClass:[FBSDKSharePhoto class]]) {
FBSDKSharePhoto *photo = (FBSDKSharePhoto *)media;
@ -568,10 +572,21 @@
return NO;
}
} else if ([media isKindOfClass:[FBSDKShareVideo class]]) {
if (videoCount > 0) {
if (errorRef != NULL) {
*errorRef = [FBSDKShareError invalidArgumentErrorWithName:@"media"
value:media
message:@"Only 1 video is allowed"];
return NO;
}
}
videoCount++;
FBSDKShareVideo *video = (FBSDKShareVideo *)media;
NSURL *videoURL = video.videoURL;
return ([self _validateRequiredValue:video name:@"video" error:errorRef] &&
[self _validateRequiredValue:videoURL name:@"videoURL" error:errorRef]);
if (![self _validateRequiredValue:video name:@"video" error:errorRef] &&
[self _validateRequiredValue:videoURL name:@"videoURL" error:errorRef]) {
return NO;
}
} else {
if (errorRef != NULL) {
@ -585,12 +600,14 @@
return YES;
}
+ (BOOL)validateShareLinkContent:(FBSDKShareLinkContent *)linkContent error:(NSError *__autoreleasing *)errorRef
{
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
return ([self _validateRequiredValue:linkContent name:@"shareContent" error:errorRef] &&
[self _validateNetworkURL:linkContent.contentURL name:@"contentURL" error:errorRef] &&
[self _validateNetworkURL:linkContent.imageURL name:@"imageURL" error:errorRef]);
#pragma clang diagnostic pop
}
+ (BOOL)validateShareVideoContent:(FBSDKShareVideoContent *)videoContent error:(NSError *__autoreleasing *)errorRef
@ -662,10 +679,13 @@ forShareOpenGraphContent:(FBSDKShareOpenGraphContent *)openGraphContent
+ (void)_addToParameters:(NSMutableDictionary *)parameters
forShareLinkContent:(FBSDKShareLinkContent *)linkContent
{
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
[FBSDKInternalUtility dictionary:parameters setObject:linkContent.contentURL forKey:@"link"];
[FBSDKInternalUtility dictionary:parameters setObject:linkContent.contentTitle forKey:@"name"];
[FBSDKInternalUtility dictionary:parameters setObject:linkContent.contentDescription forKey:@"description"];
[FBSDKInternalUtility dictionary:parameters setObject:linkContent.imageURL forKey:@"picture"];
#pragma clang diagnostic pop
}
+ (void)_addToParameters:(NSMutableDictionary *)parameters

View File

@ -20,7 +20,7 @@ FEATURES
* Sharing - https://developers.facebook.com/docs/sharing
* App Links - https://developers.facebook.com/docs/applinks
* Graph API - https://developers.facebook.com/docs/ios/graph
* Analytics for Apps - https://developers.facebook.com/docs/analytics
* Analytics - https://developers.facebook.com/docs/analytics
GIVE FEEDBACK
-------------

View File

@ -1,6 +1,6 @@
{
"name": "PNObject",
"version": "1.3.1",
"version": "1.3.2",
"summary": "PNObject is a simple replica of the more complex ParseObject",
"homepage": "https://github.com/giuseppenucifora/PNObject",
"license": {
@ -12,7 +12,7 @@
},
"source": {
"git": "https://github.com/giuseppenucifora/PNObject.git",
"tag": "1.3.1"
"tag": "1.3.2"
},
"platforms": {
"ios": "8.0"

View File

@ -25,19 +25,19 @@ PODS:
- DJLocalization (1.2.2):
- DJLocalization/Core (= 1.2.2)
- DJLocalization/Core (1.2.2)
- Expecta (1.0.5)
- FBSDKCoreKit (4.19.0):
- Expecta (1.0.6)
- FBSDKCoreKit (4.26.0):
- Bolts (~> 1.7)
- FBSDKLoginKit (4.19.0):
- FBSDKLoginKit (4.26.0):
- FBSDKCoreKit
- FBSDKShareKit (4.19.0):
- FBSDKShareKit (4.26.0):
- FBSDKCoreKit
- NSDataAES (0.2.2)
- NSDate_Utils (1.0.5)
- NSDate_Utils (1.0.6)
- NSString-Helper (1.0.5)
- nv-ios-http-status (0.0.1)
- PEAR-FileManager-iOS (1.3.1)
- PNObject (1.3.1):
- PNObject (1.3.2):
- AFNetworking
- CodFis-Helper
- DDDKeychainWrapper
@ -67,7 +67,7 @@ DEPENDENCIES:
EXTERNAL SOURCES:
PNObject:
:path: "../"
:path: ../
SPEC CHECKSUMS:
AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67
@ -75,16 +75,16 @@ SPEC CHECKSUMS:
CodFis-Helper: 28be4c74d7202542459d72354f59b1215871de87
DDDKeychainWrapper: e681a4daba6448786fa83b4941f58102a33b1897
DJLocalization: 0c84029af375647d4104a42ae36be87194c46c47
Expecta: e1c022fcd33910b6be89c291d2775b3fe27a89fe
FBSDKCoreKit: 894b2b6eda6a4c8c4204e92e59cc355709ef045c
FBSDKLoginKit: 83ca4d8f12a2022570af9fd6aacf27f6b425b99f
FBSDKShareKit: 5953758366278430dc322d5cdc906db361ed7f81
Expecta: 3b6bd90a64b9a1dcb0b70aa0e10a7f8f631667d5
FBSDKCoreKit: c8b8582311ec11b145451d8b9717dc6cc2ae5a76
FBSDKLoginKit: f3f03b94c21eb834af243c0a881d48641f47ca60
FBSDKShareKit: 320712d8293fde6392872c91eb80ef0da5d73cc3
NSDataAES: 967ea3337476a80e9838a533c25d570a06855ed0
NSDate_Utils: b0ab72ccec6df25297766bd64b0cd0c124521a45
NSDate_Utils: c7802a1e0f5ef3acaf39bf55806a1caaa0343d2d
NSString-Helper: 459e1b6a62b3bf7db10f01b0d102548608e945c4
nv-ios-http-status: b6c2b5fc8656cc19e0d3000dadce2080b99d0e2f
PEAR-FileManager-iOS: 3bc403f68a53483f5629aa822f4649e40275c4d3
PNObject: fce7072deed194ed45fca961cb72084b9a0e48d1
PNObject: 6dcb7b25b6d1ab221b59b7ed4e7c34a6dc50f76e
PureLayout: 4d550abe49a94f24c2808b9b95db9131685fe4cd
RZDataBinding: 6981e90ddaae2f5e02028323b1043f8c31013109
Specta: f506f3a8361de16bc0dcf3b17b75e269072ba465
@ -93,4 +93,4 @@ SPEC CHECKSUMS:
PODFILE CHECKSUM: db08ccdd0a68e33d4a1cceb1843643fbab2f2a8e
COCOAPODS: 1.2.0
COCOAPODS: 1.3.1

View File

@ -528,7 +528,9 @@ static NSDateFormatter *_displayFormatter = nil;
+ (NSTimeInterval) timeIntervalFromHours:(NSUInteger) hours {
NSTimeInterval seconds = hours / 60 / 60;
return seconds;
}

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@
Pod::Spec.new do |s|
s.name = 'PNObject'
s.version = '1.3.1'
s.version = '1.3.2'
s.summary = 'PNObject is a simple replica of the more complex ParseObject'