├── _Pods.xcodeproj ├── LanguageManager-iOS-Lokalise ├── Assets │ └── .gitkeep └── Classes │ ├── .gitkeep │ └── LanguageManager.swift ├── header.png ├── Example ├── Podfile ├── Pods │ ├── Lokalise │ │ ├── Lokalise.framework │ │ │ ├── Lokalise │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ │ └── module.modulemap │ │ │ ├── Headers │ │ │ │ ├── LokaliseLocalizationType.h │ │ │ │ ├── LokaliseErrors.h │ │ │ │ └── Lokalise.h │ │ │ └── strip-frameworks.sh │ │ ├── Readme.md │ │ └── LICENSE.md │ ├── Pods.xcodeproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── project.pbxproj │ ├── Target Support Files │ │ ├── LanguageManager-iOS-Lokalise │ │ │ ├── LanguageManager-iOS-Lokalise.modulemap │ │ │ ├── LanguageManager-iOS-Lokalise-dummy.m │ │ │ ├── LanguageManager-iOS-Lokalise-prefix.pch │ │ │ ├── LanguageManager-iOS-Lokalise-umbrella.h │ │ │ ├── LanguageManager-iOS-Lokalise.xcconfig │ │ │ ├── LanguageManager-iOS-Lokalise.debug.xcconfig │ │ │ ├── LanguageManager-iOS-Lokalise.release.xcconfig │ │ │ └── LanguageManager-iOS-Lokalise-Info.plist │ │ ├── Pods-LanguageManager-iOS-Lokalise_Example │ │ │ ├── Pods-LanguageManager-iOS-Lokalise_Example.modulemap │ │ │ ├── Pods-LanguageManager-iOS-Lokalise_Example-dummy.m │ │ │ ├── Pods-LanguageManager-iOS-Lokalise_Example-umbrella.h │ │ │ ├── Pods-LanguageManager-iOS-Lokalise_Example-Info.plist │ │ │ ├── Pods-LanguageManager-iOS-Lokalise_Example.debug.xcconfig │ │ │ ├── Pods-LanguageManager-iOS-Lokalise_Example.release.xcconfig │ │ │ ├── Pods-LanguageManager-iOS-Lokalise_Example-acknowledgements.markdown │ │ │ ├── Pods-LanguageManager-iOS-Lokalise_Example-acknowledgements.plist │ │ │ └── Pods-LanguageManager-iOS-Lokalise_Example-frameworks.sh │ │ └── Lokalise │ │ │ ├── Lokalise.xcconfig │ │ │ ├── Lokalise.debug.xcconfig │ │ │ └── Lokalise.release.xcconfig │ ├── Manifest.lock │ └── Local Podspecs │ │ └── LanguageManager-iOS-Lokalise.podspec.json ├── LanguageManager-iOS-Lokalise │ ├── en.lproj │ │ └── Localizable.strings │ ├── ar.lproj │ │ └── Localizable.strings │ ├── ViewControllers │ │ ├── MainViewController.swift │ │ └── SplashViewController.swift │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Screens │ │ └── Base.lproj │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ └── AppDelegate.swift ├── LanguageManager-iOS-Lokalise.xcodeproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ ├── xcshareddata │ │ └── xcschemes │ │ │ └── LanguageManger-iOS-Lokalise-Example.xcscheme │ └── project.pbxproj ├── LanguageManager-iOS-Lokalise.xcworkspace │ ├── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── contents.xcworkspacedata └── Podfile.lock ├── .travis.yml ├── .gitignore ├── LICENSE ├── README.md └── LanguageManager-iOS-Lokalise.podspec /_Pods.xcodeproj: -------------------------------------------------------------------------------- 1 | Example/Pods/Pods.xcodeproj -------------------------------------------------------------------------------- /LanguageManager-iOS-Lokalise/Assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /LanguageManager-iOS-Lokalise/Classes/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Abedalkareem/LanguageManager-iOS-Lokalise/HEAD/header.png -------------------------------------------------------------------------------- /Example/Podfile: -------------------------------------------------------------------------------- 1 | use_frameworks! 2 | 3 | target 'LanguageManager-iOS-Lokalise_Example' do 4 | pod 'LanguageManager-iOS-Lokalise', :path => '../' 5 | 6 | end 7 | -------------------------------------------------------------------------------- /Example/Pods/Lokalise/Lokalise.framework/Lokalise: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Abedalkareem/LanguageManager-iOS-Lokalise/HEAD/Example/Pods/Lokalise/Lokalise.framework/Lokalise -------------------------------------------------------------------------------- /Example/Pods/Lokalise/Lokalise.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Abedalkareem/LanguageManager-iOS-Lokalise/HEAD/Example/Pods/Lokalise/Lokalise.framework/Info.plist -------------------------------------------------------------------------------- /Example/Pods/Lokalise/Lokalise.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Lokalise { 2 | umbrella header "Lokalise.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/LanguageManager-iOS-Lokalise/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localizable.strings 3 | LanguageManager-iOS-Lokalise 4 | 5 | Created by abedalkareem omreyh on 9/1/19. 6 | Copyright © 2019 CocoaPods. All rights reserved. 7 | */ 8 | "key" = "Hi"; 9 | -------------------------------------------------------------------------------- /Example/LanguageManager-iOS-Lokalise/ar.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localizable.strings 3 | LanguageManager-iOS-Lokalise 4 | 5 | Created by abedalkareem omreyh on 9/1/19. 6 | Copyright © 2019 CocoaPods. All rights reserved. 7 | */ 8 | "key" = "مرحبا"; 9 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LanguageManager-iOS-Lokalise/LanguageManager-iOS-Lokalise.modulemap: -------------------------------------------------------------------------------- 1 | framework module LanguageManager_iOS_Lokalise { 2 | umbrella header "LanguageManager-iOS-Lokalise-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LanguageManager-iOS-Lokalise/LanguageManager-iOS-Lokalise-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_LanguageManager_iOS_Lokalise : NSObject 3 | @end 4 | @implementation PodsDummy_LanguageManager_iOS_Lokalise 5 | @end 6 | -------------------------------------------------------------------------------- /Example/LanguageManager-iOS-Lokalise.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_LanguageManager_iOS_Lokalise_Example { 2 | umbrella header "Pods-LanguageManager-iOS-Lokalise_Example-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_LanguageManager_iOS_Lokalise_Example : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_LanguageManager_iOS_Lokalise_Example 5 | @end 6 | -------------------------------------------------------------------------------- /Example/LanguageManager-iOS-Lokalise.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LanguageManager-iOS-Lokalise/LanguageManager-iOS-Lokalise-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Example/LanguageManager-iOS-Lokalise.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LanguageManager-iOS-Lokalise/LanguageManager-iOS-Lokalise-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double LanguageManager_iOS_LokaliseVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char LanguageManager_iOS_LokaliseVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_LanguageManager_iOS_Lokalise_ExampleVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_LanguageManager_iOS_Lokalise_ExampleVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Example/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - LanguageManager-iOS-Lokalise (0.1.4): 3 | - Lokalise (~> 0.10.2) 4 | - Lokalise (0.10.2) 5 | 6 | DEPENDENCIES: 7 | - LanguageManager-iOS-Lokalise (from `../`) 8 | 9 | SPEC REPOS: 10 | trunk: 11 | - Lokalise 12 | 13 | EXTERNAL SOURCES: 14 | LanguageManager-iOS-Lokalise: 15 | :path: "../" 16 | 17 | SPEC CHECKSUMS: 18 | LanguageManager-iOS-Lokalise: d746ddd88a7bf49a6b3d0d86eede468f20ad71f7 19 | Lokalise: 252c397887dfd9983331abffa90ab60cdb004e19 20 | 21 | PODFILE CHECKSUM: 6f091b1adc87bdbc05939808033f5c19387dd9ce 22 | 23 | COCOAPODS: 1.10.0 24 | -------------------------------------------------------------------------------- /Example/Pods/Lokalise/Lokalise.framework/Headers/LokaliseLocalizationType.h: -------------------------------------------------------------------------------- 1 | // 2 | // LokaliseLocalizationType.h 3 | // Lokalise 4 | // 5 | // Created by Fedya Levkin on 04/04/2017. 6 | // Copyright © 2017 Lokalise SIA. All rights reserved. 7 | // 8 | 9 | #ifndef LokaliseLocalizationType_h 10 | #define LokaliseLocalizationType_h 11 | 12 | typedef NS_ENUM(NSInteger, LokaliseLocalizationType) { 13 | LokaliseLocalizationRelease = 0, 14 | LokaliseLocalizationPrerelease = 1, 15 | LokaliseLocalizationLocal = 2, 16 | LokaliseLocalizationDebug = 3 17 | }; 18 | 19 | #endif /* LokaliseLocalizationType_h */ 20 | -------------------------------------------------------------------------------- /Example/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - LanguageManager-iOS-Lokalise (0.1.4): 3 | - Lokalise (~> 0.10.2) 4 | - Lokalise (0.10.2) 5 | 6 | DEPENDENCIES: 7 | - LanguageManager-iOS-Lokalise (from `../`) 8 | 9 | SPEC REPOS: 10 | trunk: 11 | - Lokalise 12 | 13 | EXTERNAL SOURCES: 14 | LanguageManager-iOS-Lokalise: 15 | :path: "../" 16 | 17 | SPEC CHECKSUMS: 18 | LanguageManager-iOS-Lokalise: d746ddd88a7bf49a6b3d0d86eede468f20ad71f7 19 | Lokalise: 252c397887dfd9983331abffa90ab60cdb004e19 20 | 21 | PODFILE CHECKSUM: 6f091b1adc87bdbc05939808033f5c19387dd9ce 22 | 23 | COCOAPODS: 1.10.0 24 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Lokalise/Lokalise.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Lokalise 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Lokalise" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" -framework "Foundation" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Lokalise 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # references: 2 | # * https://www.objc.io/issues/6-build-tools/travis-ci/ 3 | # * https://github.com/supermarin/xcpretty#usage 4 | 5 | osx_image: xcode7.3 6 | language: objective-c 7 | # cache: cocoapods 8 | # podfile: Example/Podfile 9 | # before_install: 10 | # - gem install cocoapods # Since Travis is not always on latest version 11 | # - pod install --project-directory=Example 12 | script: 13 | - set -o pipefail && xcodebuild test -enableCodeCoverage YES -workspace Example/LanguageManger-iOS-Lokalise.xcworkspace -scheme LanguageManger-iOS-Lokalise-Example -sdk iphonesimulator9.3 ONLY_ACTIVE_ARCH=NO | xcpretty 14 | - pod lib lint 15 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LanguageManager-iOS-Lokalise/LanguageManager-iOS-Lokalise.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/LanguageManager-iOS-Lokalise 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Lokalise" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Lokalise/Lokalise.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Lokalise 3 | EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 4 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Lokalise" 5 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 6 | OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" -framework "Foundation" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Lokalise 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Lokalise/Lokalise.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Lokalise 3 | EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 4 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Lokalise" 5 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 6 | OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" -framework "Foundation" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Lokalise 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Example/LanguageManager-iOS-Lokalise/ViewControllers/MainViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MainViewController.swift 3 | // LanguageManager-iOS-Lokalise_Example 4 | // 5 | // Created by abedalkareem omreyh on 9/1/19. 6 | // Copyright © 2019 CocoaPods. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import LanguageManager_iOS_Lokalise 11 | 12 | class MainViewController: UIViewController { 13 | 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | 17 | // 18 | // To know more about how to use LanguageManager-iOS 19 | // please visit https://github.com/Abedalkareem/LanguageManager-iOS 20 | // it's the same thing expect in LanguageManager-iOS-Lokalise 21 | // you need to set the project id, token, and you need to call the 22 | // `LanguageManager.shared.checkLocalizationUpdates`. 23 | // 24 | print("key".localiz()) 25 | 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OS X 2 | .DS_Store 3 | 4 | # Xcode 5 | build/ 6 | *.pbxuser 7 | !default.pbxuser 8 | *.mode1v3 9 | !default.mode1v3 10 | *.mode2v3 11 | !default.mode2v3 12 | *.perspectivev3 13 | !default.perspectivev3 14 | xcuserdata/ 15 | *.xccheckout 16 | profile 17 | *.moved-aside 18 | DerivedData 19 | *.hmap 20 | *.ipa 21 | 22 | # Bundler 23 | .bundle 24 | 25 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 26 | # Carthage/Checkouts 27 | 28 | Carthage/Build 29 | 30 | # We recommend against adding the Pods directory to your .gitignore. However 31 | # you should judge for yourself, the pros and cons are mentioned at: 32 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 33 | # 34 | # Note: if you ignore the Pods directory, make sure to uncomment 35 | # `pod install` in .travis.yml 36 | # 37 | # Pods/ 38 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LanguageManager-iOS-Lokalise/LanguageManager-iOS-Lokalise.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/LanguageManager-iOS-Lokalise 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Lokalise" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | OTHER_LDFLAGS = $(inherited) -framework "Foundation" -framework "Lokalise" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LanguageManager-iOS-Lokalise/LanguageManager-iOS-Lokalise.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/LanguageManager-iOS-Lokalise 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Lokalise" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | OTHER_LDFLAGS = $(inherited) -framework "Foundation" -framework "Lokalise" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/LanguageManager-iOS-Lokalise/LanguageManager-iOS-Lokalise-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 0.1.4 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Local Podspecs/LanguageManager-iOS-Lokalise.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "LanguageManager-iOS-Lokalise", 3 | "version": "0.1.4", 4 | "summary": "Language manager used to handle change app language.", 5 | "description": "Language manager used to handle change app language without restart the app.", 6 | "homepage": "https://github.com/Abedalkareem/LanguageManager-iOS-Lokalise", 7 | "license": { 8 | "type": "MIT", 9 | "file": "LICENSE" 10 | }, 11 | "authors": { 12 | "Abedalkareem": "abedalkareem.omreyh@yahoo.com" 13 | }, 14 | "source": { 15 | "git": "https://github.com/Abedalkareem/LanguageManager-iOS-Lokalise.git", 16 | "tag": "0.1.4" 17 | }, 18 | "swift_versions": "5.0", 19 | "social_media_url": "https://twitter.com/AbedalkareemOmr", 20 | "platforms": { 21 | "ios": "9.0" 22 | }, 23 | "source_files": "LanguageManager-iOS-Lokalise/Classes/**/*", 24 | "dependencies": { 25 | "Lokalise": [ 26 | "~> 0.10.2" 27 | ] 28 | }, 29 | "swift_version": "5.0" 30 | } 31 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2019 Abedalkareem 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Example/LanguageManager-iOS-Lokalise/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ios-marketing", 45 | "size" : "1024x1024", 46 | "scale" : "1x" 47 | } 48 | ], 49 | "info" : { 50 | "version" : 1, 51 | "author" : "xcode" 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Example/LanguageManager-iOS-Lokalise/ViewControllers/SplashViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SplashViewController.swift 3 | // LanguageManager-iOS-Lokalise 4 | // 5 | // Created by Abedalkareem on 09/01/2019. 6 | // Copyright (c) 2019 Abedalkareem. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import LanguageManager_iOS_Lokalise 11 | 12 | class SplashViewController: UIViewController { 13 | 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | 17 | // 18 | // To know more about how to use LanguageManager-iOS 19 | // please visit https://github.com/Abedalkareem/LanguageManager-iOS 20 | // it's the same thing expect in LanguageManager-iOS-Lokalise 21 | // you need to set the project id, token, and you need to call the 22 | // `LanguageManager.shared.checkLocalizationUpdates`. 23 | // 24 | 25 | LanguageManager.shared.checkLocalizationUpdates { _, _ in 26 | let storyboard = UIStoryboard(name: "Main", bundle: nil) 27 | let viewController = storyboard.instantiateViewController(withIdentifier: "MainViewController") 28 | self.present(viewController, animated: true, completion: nil) 29 | } 30 | 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /Example/Pods/Lokalise/Lokalise.framework/Headers/LokaliseErrors.h: -------------------------------------------------------------------------------- 1 | // 2 | // LokaliseErrors.h 3 | // Lokalise 4 | // 5 | // Created by Fjodors Levkins on 21/05/15. 6 | // Copyright (c) 2015 Lokalise SIA. All rights reserved. 7 | // 8 | 9 | #ifndef Lokalise_LokaliseErrors_h 10 | #define Lokalise_LokaliseErrors_h 11 | 12 | /** 13 | Lokalise API error domain 14 | */ 15 | static NSString *LKLAPIErrorDomain = @"lokalise.api.error"; 16 | 17 | /** 18 | Lokalise framework error domain 19 | */ 20 | static NSString *LKLErrorDomain = @"lokalise.error"; 21 | 22 | typedef NS_ENUM(NSInteger, LokaliseErrorCode) { 23 | LokaliseErrorNoProjectData = 1, 24 | LokaliseErrorLocaleNotSupported, 25 | LokaliseErrorNoLokaliseFolder, 26 | LokaliseErrorNoLokaliseBundle, 27 | LokaliseErrorAlreadyUpdating, 28 | LokaliseErrorFailedToExtact, 29 | LokaliseErrorBadServerResponse, 30 | LokaliseErrorBadBundleLocation, 31 | LokaliseErrorBadServerBundleResponse, 32 | LokaliseErrorNoLocalBundleForLocale, 33 | LokaliseErrorNoLocalBundleForLocaleSwizzleDisabled, 34 | LokaliseErrorNoLokaliseBundleForLocale, 35 | LokaliseErrorNoUniqueIdentifier 36 | }; 37 | 38 | 39 | #endif 40 | 41 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example.debug.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 3 | EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 4 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/LanguageManager-iOS-Lokalise" "${PODS_ROOT}/Lokalise" 5 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 6 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/LanguageManager-iOS-Lokalise/LanguageManager_iOS_Lokalise.framework/Headers" 7 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 8 | OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" -framework "Foundation" -framework "LanguageManager_iOS_Lokalise" -framework "Lokalise" 9 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 10 | PODS_BUILD_DIR = ${BUILD_DIR} 11 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 12 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 13 | PODS_ROOT = ${SRCROOT}/Pods 14 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 15 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 16 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example.release.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 3 | EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64 4 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/LanguageManager-iOS-Lokalise" "${PODS_ROOT}/Lokalise" 5 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 6 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/LanguageManager-iOS-Lokalise/LanguageManager_iOS_Lokalise.framework/Headers" 7 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 8 | OTHER_LDFLAGS = $(inherited) -l"c++" -l"z" -framework "Foundation" -framework "LanguageManager_iOS_Lokalise" -framework "Lokalise" 9 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 10 | PODS_BUILD_DIR = ${BUILD_DIR} 11 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 12 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 13 | PODS_ROOT = ${SRCROOT}/Pods 14 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 15 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 16 | -------------------------------------------------------------------------------- /Example/LanguageManager-iOS-Lokalise/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /Example/LanguageManager-iOS-Lokalise/Screens/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /Example/LanguageManager-iOS-Lokalise/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // LanguageManager-iOS-Lokalise 4 | // 5 | // Created by Abedalkareem on 09/01/2019. 6 | // Copyright (c) 2019 Abedalkareem. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import LanguageManager_iOS_Lokalise 11 | 12 | @UIApplicationMain 13 | class AppDelegate: UIResponder, UIApplicationDelegate { 14 | 15 | var window: UIWindow? 16 | 17 | 18 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 19 | 20 | // 21 | // To know more about how to use LanguageManager-iOS 22 | // please visit https://github.com/Abedalkareem/LanguageManager-iOS 23 | // it's the same thing expect in LanguageManager-iOS-Lokalise 24 | // you need to set the project id, token, and you need to call the 25 | // `LanguageManager.shared.checkLocalizationUpdates`. 26 | // 27 | 28 | LanguageManager.shared.lokaliseToken = "App Token" 29 | LanguageManager.shared.lokaliseProjectID = "Project id" 30 | LanguageManager.shared.localizationType = .release 31 | 32 | LanguageManager.shared.defaultLanguage = .en 33 | 34 | return true 35 | } 36 | 37 | func applicationWillResignActive(_ application: UIApplication) { } 38 | 39 | func applicationDidEnterBackground(_ application: UIApplication) { } 40 | 41 | func applicationWillEnterForeground(_ application: UIApplication) { } 42 | 43 | func applicationDidBecomeActive(_ application: UIApplication) { } 44 | 45 | func applicationWillTerminate(_ application: UIApplication) { } 46 | 47 | 48 | } 49 | 50 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 |

3 | 4 |

5 |
6 | 7 | Language manager used to handle change app language without restart the app. 8 | 9 |
10 | 11 | 12 | ## ScreenShots 13 | 14 | 15 | 16 | ## Example 17 | 18 | To run the example project, clone the repo, and run `pod install` from the Example directory first. 19 | For more information and examples, please visit the [LangaugeManager-iOS repo](https://github.com/Abedalkareem/LanguageManager-iOS). 20 | 21 | 22 | ## Usage 23 | 24 | In your app delegate you need to set the following values: 25 | 26 | ``` 27 | LanguageManager.shared.lokaliseToken = "App Token" 28 | LanguageManager.shared.lokaliseProjectID = "Project id" 29 | LanguageManager.shared.localizationType = .release 30 | 31 | LanguageManager.shared.defaultLanguage = .en 32 | ``` 33 | 34 | To check for new update on your strings: 35 | 36 | ``` 37 | LanguageManager.shared.checkLocalizationUpdates { updated, error in 38 | print(error?.localizedDescription ?? "") 39 | } 40 | ``` 41 | 42 | ## Installation 43 | 44 | LanguageManager-iOS-Lokalise is available through [CocoaPods](https://cocoapods.org). To install 45 | it, simply add the following line to your Podfile: 46 | 47 | ```ruby 48 | pod 'LanguageManager-iOS-Lokalise' 49 | ``` 50 | 51 | ## Author 52 | 53 | Abedalkareem, abedalkareem.omreyh@yahoo.com 54 | 55 | ## License 56 | 57 | LanguageManager-iOS-Lokalise is available under the MIT license. See the LICENSE file for more info. 58 | -------------------------------------------------------------------------------- /Example/Pods/Lokalise/Readme.md: -------------------------------------------------------------------------------- 1 | # Lokalise iOS SDK 2 | 3 | **[Lokalise](https://lokalise.com)** lets you manage keys and translations of your app, game or website – either on your own or with a team of collaborators. Built for developers, Lokalise offers neat features including inline suggestions, project chat, export webhooks and an API, so you can easily integrate with your projects workflow. 4 | 5 | ## Features 6 | 7 | - Over-the-air (OTA) localization 8 | - Instant UI language switching 9 | - Test localizations (using prerelease bundles) 10 | - NSBundle swizzling for transparent integration 11 | - XIB and storyboard localization 12 | 13 | ## Requirements 14 | 15 | - Xcode 12+ 16 | - iOS 9.0+ 17 | 18 | ## Setup 19 | 20 | ### CocoaPods 21 | 22 | To install using [CocoaPods](https://cocoapods.org) simply add this line to your Podfile 23 | 24 | ``` 25 | use_frameworks! 26 | pod 'Lokalise', '~> 0.10.2' 27 | ``` 28 | 29 | ### Carthage 30 | 31 | To install using [Carthage](https://github.com/Carthage/Carthage) simply add below line to your Cartfile 32 | 33 | ``` 34 | binary "https://raw.githubusercontent.com/lokalise/lokalise-ios-framework/master/LokaliseCarthage.json" ~> 0.10.1 35 | ``` 36 | 37 | Link **c++ (libc++.tbd)** and **z (libz.tbd)** libraries to your targets. 38 | 39 | ### Manual 40 | 41 | If you would like to install manually, download Lokalise.framework and add it to your project (embed and link). 42 | 43 | Link **c++ (libc++.tbd)** and **z (libz.tbd)** libraries. 44 | 45 | Add **Run Script** to your **Build Phases**. 46 | ``` 47 | bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Lokalise.framework/strip-frameworks.sh" 48 | ``` 49 | 50 | ## Getting started 51 | 52 | Read **[documentation page](https://lokalise.com/blog/getting-started-with-ios-localization/)** for detailed integration guide. 53 | 54 | ## Support 55 | 56 | Please contact us through our live support chat for support and bug reports. It is available at every page on **[lokalise.com](https://lokalise.com)**. 57 | -------------------------------------------------------------------------------- /LanguageManager-iOS-Lokalise.podspec: -------------------------------------------------------------------------------- 1 | # 2 | # Be sure to run `pod lib lint LanguageManager-iOS-Lokalise.podspec' to ensure this is a 3 | # valid spec before submitting. 4 | # 5 | # Any lines starting with a # are optional, but their use is encouraged 6 | # To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html 7 | # 8 | 9 | Pod::Spec.new do |s| 10 | s.name = 'LanguageManager-iOS-Lokalise' 11 | s.version = '0.1.4' 12 | s.summary = 'Language manager used to handle change app language.' 13 | 14 | # This description is used to generate tags and improve search results. 15 | # * Think: What does it do? Why did you write it? What is the focus? 16 | # * Try to keep it short, snappy and to the point. 17 | # * Write the description between the DESC delimiters below. 18 | # * Finally, don't worry about the indent, CocoaPods strips it! 19 | 20 | s.description = <<-DESC 21 | Language manager used to handle change app language without restart the app. 22 | DESC 23 | 24 | s.homepage = 'https://github.com/Abedalkareem/LanguageManager-iOS-Lokalise' 25 | # s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2' 26 | s.license = { :type => 'MIT', :file => 'LICENSE' } 27 | s.author = { 'Abedalkareem' => 'abedalkareem.omreyh@yahoo.com' } 28 | s.source = { :git => 'https://github.com/Abedalkareem/LanguageManager-iOS-Lokalise.git', :tag => s.version.to_s } 29 | s.swift_version = '5.0' 30 | s.social_media_url = 'https://twitter.com/AbedalkareemOmr' 31 | 32 | s.ios.deployment_target = '9.0' 33 | 34 | s.source_files = 'LanguageManager-iOS-Lokalise/Classes/**/*' 35 | 36 | s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } 37 | s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } 38 | 39 | # s.resource_bundles = { 40 | # 'LanguageManager-iOS-Lokalise' => ['LanguageManager-iOS-Lokalise/Assets/*.png'] 41 | # } 42 | 43 | # s.public_header_files = 'Pod/Classes/**/*.h' 44 | # s.frameworks = 'UIKit', 'MapKit' 45 | s.dependency 'Lokalise', '~> 0.10.2' 46 | end 47 | -------------------------------------------------------------------------------- /Example/Pods/Lokalise/Lokalise.framework/strip-frameworks.sh: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 3 | # Copyright 2015 Realm Inc. 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | ################################################################################ 18 | 19 | # This script strips all non-valid architectures from dynamic libraries in 20 | # the application's `Frameworks` directory. 21 | # 22 | # The following environment variables are required: 23 | # 24 | # BUILT_PRODUCTS_DIR 25 | # FRAMEWORKS_FOLDER_PATH 26 | # VALID_ARCHS 27 | # EXPANDED_CODE_SIGN_IDENTITY 28 | 29 | 30 | # Signs a framework with the provided identity 31 | code_sign() { 32 | # Use the current code_sign_identitiy 33 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 34 | echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements $1" 35 | /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1" 36 | } 37 | 38 | # Set working directory to product’s embedded frameworks 39 | cd "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}" 40 | 41 | if [ "$ACTION" = "install" ]; then 42 | echo "Copy .bcsymbolmap files to .xcarchive" 43 | find . -name '*.bcsymbolmap' -type f -exec mv {} "${CONFIGURATION_BUILD_DIR}" \; 44 | else 45 | # Delete *.bcsymbolmap files from framework bundle unless archiving 46 | find . -name '*.bcsymbolmap' -type f -exec rm -rf "{}" +\; 47 | fi 48 | 49 | echo "Stripping frameworks" 50 | 51 | for file in $(find . -type f -perm +111); do 52 | # Skip non-dynamic libraries 53 | if ! [[ "$(file "$file")" == *"dynamically linked shared library"* ]]; then 54 | continue 55 | fi 56 | # Get architectures for current file 57 | archs="$(lipo -info "${file}" | rev | cut -d ':' -f1 | rev)" 58 | stripped="" 59 | for arch in $archs; do 60 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 61 | # Strip non-valid architectures in-place 62 | lipo -remove "$arch" -output "$file" "$file" || exit 1 63 | stripped="$stripped $arch" 64 | fi 65 | done 66 | if [[ "$stripped" != "" ]]; then 67 | echo "Stripped $file of architectures:$stripped" 68 | if [ "${CODE_SIGNING_REQUIRED}" == "YES" ]; then 69 | code_sign "${file}" 70 | fi 71 | fi 72 | done 73 | -------------------------------------------------------------------------------- /Example/Pods/Lokalise/LICENSE.md: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2017-present, Lokalise, Inc. All rights reserved. 2 | 3 | You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 4 | copy and distribute this software in binary form for use 5 | in connection with the services provided by Lokalise provided that the following conditions are met: 6 | 7 | * Redistributions in binary form must reproduce copyright notices and conditions of Intellectual Property included in this software. 8 | * Neither the name of Lokalise, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Lokalise, Inc. 9 | 10 | By using this software you are agreeing to Lokalise (Terms of Use)[https://lokalise.co/terms] and (Privacy Policy)[https://lokalise.co/privacy]. 11 | 12 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 13 | 14 | ## Intellectual Property Included in the Lokalise 15 | 16 | ### **ZipZap** 17 | Copyright (c) 2012, Pixelglow Software. 18 | All rights reserved. 19 | 20 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 21 | 22 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 23 | 24 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /Example/LanguageManager-iOS-Lokalise/Screens/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## LanguageManager-iOS-Lokalise 5 | 6 | Copyright (c) 2019 Abedalkareem 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in 16 | all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | THE SOFTWARE. 25 | 26 | 27 | ## Lokalise 28 | 29 | # Copyright (c) 2017-present, Lokalise, Inc. All rights reserved. 30 | 31 | You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 32 | copy and distribute this software in binary form for use 33 | in connection with the services provided by Lokalise provided that the following conditions are met: 34 | 35 | * Redistributions in binary form must reproduce copyright notices and conditions of Intellectual Property included in this software. 36 | * Neither the name of Lokalise, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Lokalise, Inc. 37 | 38 | By using this software you are agreeing to Lokalise (Terms of Use)[https://lokalise.co/terms] and (Privacy Policy)[https://lokalise.co/privacy]. 39 | 40 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 41 | 42 | ## Intellectual Property Included in the Lokalise 43 | 44 | ### **ZipZap** 45 | Copyright (c) 2012, Pixelglow Software. 46 | All rights reserved. 47 | 48 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 49 | 50 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 51 | 52 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 53 | 54 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 55 | Generated by CocoaPods - https://cocoapods.org 56 | -------------------------------------------------------------------------------- /Example/Pods/Lokalise/Lokalise.framework/Headers/Lokalise.h: -------------------------------------------------------------------------------- 1 | // 2 | // Lokalise.h 3 | // Lokalise 4 | // 5 | // Created by Fjodors Levkins on 20/05/15. 6 | // Copyright (c) 2015 Lokalise SIA. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "LokaliseErrors.h" 11 | #import "LokaliseLocalizationType.h" 12 | 13 | @protocol LokaliseDelegate; 14 | 15 | extern NSString *__nonnull LokaliseFrameworkVersion; 16 | extern NSString *__nonnull LokaliseDidUpdateLocalizationNotification; 17 | 18 | @interface Lokalise : NSObject 19 | 20 | @property (class, readonly, strong) Lokalise *__nonnull sharedObject NS_SWIFT_NAME(shared); 21 | 22 | /** 23 | Lokalise SDK token. 24 | */ 25 | @property (strong, nonatomic, readonly, nullable) NSString *token; 26 | 27 | /** 28 | Lokalise Project ID. 29 | */ 30 | @property (strong, nonatomic, readonly, nullable) NSString *projectID; 31 | 32 | /** 33 | Set api token and project ID. 34 | 35 | @param projectID Project ID. 36 | @param token Lokalise SDK token. 37 | */ 38 | - (void)setProjectID:(NSString *__nonnull)projectID token:(NSString *__nonnull)token; 39 | 40 | /** 41 | Set api token and project ID. 42 | 43 | @param apiToken Lokalise API Token. 44 | @param projectID Project ID. 45 | @deprecated Use [Lokalise.sharedObject setProjectId:projectId token:token] 46 | */ 47 | - (void)setAPIToken:(NSString *__nonnull)apiToken projectID:(NSString *__nonnull)projectID __deprecated_msg("Use [Lokalise.sharedObject setProjectId:projectId token:token]"); 48 | 49 | /** 50 | Currently selected localization locale. 51 | */ 52 | @property (strong, nonatomic, readonly, nonnull) NSLocale *localizationLocale; 53 | 54 | /** 55 | @return NSArray of NSLocale objects. Always has at least one locale. 56 | */ 57 | - (NSArray *__nonnull)availableLocales; 58 | 59 | /** 60 | Sets localization locale which will be available right away. 61 | Can be set only to one of available locales. 62 | 63 | @param localizationLocale Locale from availableLocales array. 64 | @param makeDefault Application will remember selected locale if set to true. 65 | @param completionBlock Completion block where error is nil if locale is set. 66 | */ 67 | - (void)setLocalizationLocale:(NSLocale *__nonnull)localizationLocale makeDefault:(BOOL)makeDefault completion:(void (^__nullable)(NSError *__nullable error))completionBlock; 68 | 69 | /** 70 | Current bundle version. 0 if bundle is not loaded or downloaded. 71 | */ 72 | @property (nonatomic, readonly) NSInteger lokaliseBundleVersion; 73 | 74 | /** 75 | Determines what source is used for localization. 76 | Set to `LokaliseLocalizationRelease` by default. 77 | */ 78 | @property (nonatomic) LokaliseLocalizationType localizationType; 79 | 80 | /** 81 | 82 | This method returns the following when key is nil or not found in table: 83 | 84 | - If key is nil and value is nil, returns an empty string. 85 | 86 | - If key is nil and value is non-nil, returns value. 87 | 88 | - If key is not found and value is nil or an empty string, returns key. 89 | 90 | - If key is not found and value is non-nil and not empty, return value. 91 | 92 | @param key The key for a string in the table identified by tableName. 93 | @param value The value to return if key is nil or if a localized string for key can’t be found in the table. 94 | @param tableName The receiver’s string table to search. If tableName is nil or is an empty string, the method attempts to use the table in Localizable.strings. 95 | 96 | @return A localized version of the string designated by key in table tableName. 97 | */ 98 | - (NSString *__nonnull)localizedStringForKey:(NSString *__nonnull)key value:(NSString *__nullable)value table:(NSString *__nullable)tableName NS_FORMAT_ARGUMENT(1); 99 | 100 | /** 101 | Check if new localization version is available and downloads it. 102 | 103 | @param completionBlock Completion block where parameter `updated` is set to true if new bundle was downloaded and `error` which provides details if something went wrong. 104 | */ 105 | - (void)checkForUpdatesWithCompletion:(void (^__nullable)(BOOL updated, NSError *__nullable error))completionBlock; 106 | 107 | /** 108 | Deletes all files downloaded by lokalise framework. 109 | */ 110 | - (void)deleteLokaliseData; 111 | 112 | /** 113 | Forces [[NSBundle mainBundle] localizedStringForKey:key value:value table:tableName] to use [[Lokalise shareObject] localizedStringForKey:key value:value table:tableName]. 114 | */ 115 | - (void)swizzleMainBundle; 116 | 117 | /** 118 | Deswizzles [[NSBundle mainBundle] localizedStringForKey:key value:value table:tableName]. 119 | */ 120 | - (void)deswizzleMainBundle; 121 | 122 | @end 123 | -------------------------------------------------------------------------------- /Example/LanguageManager-iOS-Lokalise.xcodeproj/xcshareddata/xcschemes/LanguageManger-iOS-Lokalise-Example.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 44 | 45 | 47 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 65 | 66 | 67 | 68 | 78 | 80 | 86 | 87 | 88 | 89 | 90 | 91 | 97 | 99 | 105 | 106 | 107 | 108 | 110 | 111 | 114 | 115 | 116 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Copyright (c) 2019 Abedalkareem <abedalkareem.omreyh@yahoo.com> 18 | 19 | Permission is hereby granted, free of charge, to any person obtaining a copy 20 | of this software and associated documentation files (the "Software"), to deal 21 | in the Software without restriction, including without limitation the rights 22 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 23 | copies of the Software, and to permit persons to whom the Software is 24 | furnished to do so, subject to the following conditions: 25 | 26 | The above copyright notice and this permission notice shall be included in 27 | all copies or substantial portions of the Software. 28 | 29 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 30 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 31 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 32 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 33 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 34 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 35 | THE SOFTWARE. 36 | 37 | License 38 | MIT 39 | Title 40 | LanguageManager-iOS-Lokalise 41 | Type 42 | PSGroupSpecifier 43 | 44 | 45 | FooterText 46 | # Copyright (c) 2017-present, Lokalise, Inc. All rights reserved. 47 | 48 | You are hereby granted a non-exclusive, worldwide, royalty-free license to use, 49 | copy and distribute this software in binary form for use 50 | in connection with the services provided by Lokalise provided that the following conditions are met: 51 | 52 | * Redistributions in binary form must reproduce copyright notices and conditions of Intellectual Property included in this software. 53 | * Neither the name of Lokalise, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Lokalise, Inc. 54 | 55 | By using this software you are agreeing to Lokalise (Terms of Use)[https://lokalise.co/terms] and (Privacy Policy)[https://lokalise.co/privacy]. 56 | 57 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 58 | 59 | ## Intellectual Property Included in the Lokalise 60 | 61 | ### **ZipZap** 62 | Copyright (c) 2012, Pixelglow Software. 63 | All rights reserved. 64 | 65 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 66 | 67 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 68 | 69 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 70 | 71 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 72 | License 73 | Custom 74 | Title 75 | Lokalise 76 | Type 77 | PSGroupSpecifier 78 | 79 | 80 | FooterText 81 | Generated by CocoaPods - https://cocoapods.org 82 | Title 83 | 84 | Type 85 | PSGroupSpecifier 86 | 87 | 88 | StringsTable 89 | Acknowledgements 90 | Title 91 | Acknowledgements 92 | 93 | 94 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | set -u 4 | set -o pipefail 5 | 6 | function on_error { 7 | echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" 8 | } 9 | trap 'on_error $LINENO' ERR 10 | 11 | if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then 12 | # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy 13 | # frameworks to, so exit 0 (signalling the script phase was successful). 14 | exit 0 15 | fi 16 | 17 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 18 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 19 | 20 | COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" 21 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 22 | BCSYMBOLMAP_DIR="BCSymbolMaps" 23 | 24 | 25 | # This protects against multiple targets copying the same framework dependency at the same time. The solution 26 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html 27 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") 28 | 29 | # Copies and strips a vendored framework 30 | install_framework() 31 | { 32 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 33 | local source="${BUILT_PRODUCTS_DIR}/$1" 34 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 35 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 36 | elif [ -r "$1" ]; then 37 | local source="$1" 38 | fi 39 | 40 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 41 | 42 | if [ -L "${source}" ]; then 43 | echo "Symlinked..." 44 | source="$(readlink "${source}")" 45 | fi 46 | 47 | if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then 48 | # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied 49 | find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do 50 | echo "Installing $f" 51 | install_bcsymbolmap "$f" "$destination" 52 | rm "$f" 53 | done 54 | rmdir "${source}/${BCSYMBOLMAP_DIR}" 55 | fi 56 | 57 | # Use filter instead of exclude so missing patterns don't throw errors. 58 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 59 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 60 | 61 | local basename 62 | basename="$(basename -s .framework "$1")" 63 | binary="${destination}/${basename}.framework/${basename}" 64 | 65 | if ! [ -r "$binary" ]; then 66 | binary="${destination}/${basename}" 67 | elif [ -L "${binary}" ]; then 68 | echo "Destination binary is symlinked..." 69 | dirname="$(dirname "${binary}")" 70 | binary="${dirname}/$(readlink "${binary}")" 71 | fi 72 | 73 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 74 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 75 | strip_invalid_archs "$binary" 76 | fi 77 | 78 | # Resign the code if required by the build settings to avoid unstable apps 79 | code_sign_if_enabled "${destination}/$(basename "$1")" 80 | 81 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 82 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 83 | local swift_runtime_libs 84 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) 85 | for lib in $swift_runtime_libs; do 86 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 87 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 88 | code_sign_if_enabled "${destination}/${lib}" 89 | done 90 | fi 91 | } 92 | # Copies and strips a vendored dSYM 93 | install_dsym() { 94 | local source="$1" 95 | warn_missing_arch=${2:-true} 96 | if [ -r "$source" ]; then 97 | # Copy the dSYM into the targets temp dir. 98 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" 99 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" 100 | 101 | local basename 102 | basename="$(basename -s .dSYM "$source")" 103 | binary_name="$(ls "$source/Contents/Resources/DWARF")" 104 | binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" 105 | 106 | # Strip invalid architectures from the dSYM. 107 | if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then 108 | strip_invalid_archs "$binary" "$warn_missing_arch" 109 | fi 110 | if [[ $STRIP_BINARY_RETVAL == 0 ]]; then 111 | # Move the stripped file into its final destination. 112 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" 113 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" 114 | else 115 | # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. 116 | touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" 117 | fi 118 | fi 119 | } 120 | 121 | # Used as a return value for each invocation of `strip_invalid_archs` function. 122 | STRIP_BINARY_RETVAL=0 123 | 124 | # Strip invalid architectures 125 | strip_invalid_archs() { 126 | binary="$1" 127 | warn_missing_arch=${2:-true} 128 | # Get architectures for current target binary 129 | binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" 130 | # Intersect them with the architectures we are building for 131 | intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" 132 | # If there are no archs supported by this binary then warn the user 133 | if [[ -z "$intersected_archs" ]]; then 134 | if [[ "$warn_missing_arch" == "true" ]]; then 135 | echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." 136 | fi 137 | STRIP_BINARY_RETVAL=1 138 | return 139 | fi 140 | stripped="" 141 | for arch in $binary_archs; do 142 | if ! [[ "${ARCHS}" == *"$arch"* ]]; then 143 | # Strip non-valid architectures in-place 144 | lipo -remove "$arch" -output "$binary" "$binary" 145 | stripped="$stripped $arch" 146 | fi 147 | done 148 | if [[ "$stripped" ]]; then 149 | echo "Stripped $binary of architectures:$stripped" 150 | fi 151 | STRIP_BINARY_RETVAL=0 152 | } 153 | 154 | # Copies the bcsymbolmap files of a vendored framework 155 | install_bcsymbolmap() { 156 | local bcsymbolmap_path="$1" 157 | local destination="${BUILT_PRODUCTS_DIR}" 158 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" 159 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" 160 | } 161 | 162 | # Signs a framework with the provided identity 163 | code_sign_if_enabled() { 164 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 165 | # Use the current code_sign_identity 166 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 167 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" 168 | 169 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 170 | code_sign_cmd="$code_sign_cmd &" 171 | fi 172 | echo "$code_sign_cmd" 173 | eval "$code_sign_cmd" 174 | fi 175 | } 176 | 177 | if [[ "$CONFIGURATION" == "Debug" ]]; then 178 | install_framework "${BUILT_PRODUCTS_DIR}/LanguageManager-iOS-Lokalise/LanguageManager_iOS_Lokalise.framework" 179 | install_framework "${PODS_ROOT}/Lokalise/Lokalise.framework" 180 | fi 181 | if [[ "$CONFIGURATION" == "Release" ]]; then 182 | install_framework "${BUILT_PRODUCTS_DIR}/LanguageManager-iOS-Lokalise/LanguageManager_iOS_Lokalise.framework" 183 | install_framework "${PODS_ROOT}/Lokalise/Lokalise.framework" 184 | fi 185 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 186 | wait 187 | fi 188 | -------------------------------------------------------------------------------- /LanguageManager-iOS-Lokalise/Classes/LanguageManager.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LanguageManager.swift 3 | // 4 | // Created by abedalkareem omreyh on 10/23/17. 5 | // Copyright © 2017 abedlkareem omreyh. All rights reserved. 6 | // GitHub: https://github.com/Abedalkareem/LanguageManager-iOS 7 | // The MIT License (MIT) 8 | // 9 | // Copyright (c) 2017 Abedalkareem 10 | // 11 | // Permission is hereby granted, free of charge, to any person obtaining a copy 12 | // of this software and associated documentation files (the "Software"), to deal 13 | // in the Software without restriction, including without limitation the rights 14 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 15 | // copies of the Software, and to permit persons to whom the Software is 16 | // furnished to do so, subject to the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be included in all 19 | // copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 22 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 24 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 25 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 26 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 27 | // SOFTWARE. 28 | 29 | import UIKit 30 | import Lokalise 31 | 32 | public class LanguageManager { 33 | 34 | /// 35 | /// The singleton LanguageManager instance. 36 | /// 37 | public static let shared: LanguageManager = LanguageManager() 38 | 39 | /// Lokalise project id 40 | public var lokaliseProjectID: String? 41 | /// Lokalise token 42 | public var lokaliseToken: String? 43 | /// Lokalise localization type. 44 | /// The defualt value is `debug`. 45 | public var localizationType: LokaliseLocalizationType = .debug 46 | 47 | /// 48 | /// The current language. 49 | /// 50 | public var currentLanguage: Languages { 51 | get { 52 | guard let currentLang = UserDefaults.standard.string(forKey: Constants.defaultsKeys.selectedLanguage) else { 53 | fatalError("Did you set the default language for the app ?") 54 | } 55 | return Languages(rawValue: currentLang)! 56 | } 57 | set { 58 | UserDefaults.standard.set(newValue.rawValue, forKey: Constants.defaultsKeys.selectedLanguage) 59 | } 60 | } 61 | 62 | /// 63 | /// The default language that the app will run first time. 64 | /// You need to set the `defaultLanguage` in the `AppDelegate`, specifically in 65 | /// the first line inside `application(_:willFinishLaunchingWithOptions:)`. 66 | /// 67 | public var defaultLanguage: Languages { 68 | get { 69 | 70 | guard let defaultLanguage = UserDefaults.standard.string(forKey: Constants.defaultsKeys.defaultLanguage) else { 71 | fatalError("Did you set the default language for the app ?") 72 | } 73 | return Languages(rawValue: defaultLanguage)! 74 | } 75 | set { 76 | 77 | // swizzle the awakeFromNib from nib and localize the text in the new awakeFromNib 78 | UIView.localize() 79 | 80 | if let lokaliseProjectID = lokaliseProjectID, let lokaliseToken = lokaliseToken { 81 | Lokalise.shared.setProjectID(lokaliseProjectID, 82 | token: lokaliseToken) 83 | Lokalise.shared.localizationType = localizationType 84 | } else { 85 | fatalError("Did you forget to set the lokalise project id and token?") 86 | } 87 | 88 | let defaultLanguage = UserDefaults.standard.string(forKey: Constants.defaultsKeys.defaultLanguage) 89 | guard defaultLanguage == nil else { 90 | setLanguage(language: currentLanguage) 91 | return 92 | } 93 | 94 | var language = newValue 95 | if language == .deviceLanguage { 96 | language = deviceLanguage ?? .en 97 | } 98 | 99 | UserDefaults.standard.set(language.rawValue, forKey: Constants.defaultsKeys.defaultLanguage) 100 | UserDefaults.standard.set(language.rawValue, forKey: Constants.defaultsKeys.selectedLanguage) 101 | setLanguage(language: language) 102 | } 103 | } 104 | 105 | /// 106 | /// The device language is deffrent than the app language, 107 | /// to get the app language use `currentLanguage`. 108 | /// 109 | public var deviceLanguage: Languages? { 110 | get { 111 | 112 | guard let deviceLanguage = Bundle.main.preferredLocalizations.first else { 113 | return nil 114 | } 115 | return Languages(rawValue: deviceLanguage) 116 | } 117 | } 118 | 119 | /// The diriction of the language. 120 | public var isRightToLeft: Bool { 121 | get { 122 | return isLanguageRightToLeft(language: currentLanguage) 123 | } 124 | } 125 | 126 | /// The app locale to use it in dates and currency. 127 | public var appLocale: Locale { 128 | get { 129 | return Locale(identifier: currentLanguage.rawValue) 130 | } 131 | } 132 | 133 | /// 134 | /// Set the current language of the app 135 | /// 136 | /// - parameter language: The language that you need the app to run with. 137 | /// - parameter rootViewController: The new view controller to show after changing the language. 138 | /// - parameter animation: A closure with the current view to animate to the new view controller, 139 | /// so you need to animate the view, move it out of the screen, change the alpha, 140 | /// or scale it down to zero. 141 | /// 142 | public func setLanguage(language: Languages, rootViewController: UIViewController? = nil, lokaliseCompletionBlock: ((Error?) -> Void)? = nil, animation: ((UIView) -> Void)? = nil) { 143 | 144 | // change the dircation of the views 145 | let semanticContentAttribute: UISemanticContentAttribute = isLanguageRightToLeft(language: language) ? .forceRightToLeft : .forceLeftToRight 146 | UIView.appearance().semanticContentAttribute = semanticContentAttribute 147 | 148 | // set current language 149 | currentLanguage = language 150 | 151 | Lokalise.shared.setLocalizationLocale(Locale(identifier: language.rawValue), 152 | makeDefault: true) 153 | { error in 154 | print(error?.localizedDescription ?? "") 155 | lokaliseCompletionBlock?(error) 156 | } 157 | 158 | guard let rootViewController = rootViewController else { 159 | return 160 | } 161 | 162 | let snapshot = (UIApplication.shared.keyWindow?.snapshotView(afterScreenUpdates: true))! 163 | rootViewController.view.addSubview(snapshot); 164 | 165 | UIApplication.shared.delegate?.window??.rootViewController = rootViewController 166 | 167 | UIView.animate(withDuration: 0.5, animations: { 168 | animation?(snapshot) 169 | }) { _ in 170 | snapshot.removeFromSuperview() 171 | } 172 | 173 | } 174 | 175 | public func checkLocalizationUpdates(completion: ((Bool, Error?) -> Void)? = nil) { 176 | Lokalise.shared.checkForUpdates { updated, error in 177 | print("Localization bundle update status: \(updated)") 178 | if let error = error { 179 | print("Localization bundle can't be updated, reason: \(error.localizedDescription)") 180 | } 181 | completion?(updated, error) 182 | } 183 | } 184 | 185 | private func isLanguageRightToLeft(language: Languages) -> Bool { 186 | return Locale.characterDirection(forLanguage: language.rawValue) == .rightToLeft 187 | } 188 | 189 | } 190 | 191 | // MARK: - Languages 192 | 193 | public enum Languages: String { 194 | case ar,en,nl,ja,ko,vi,ru,sv,fr,es,pt,it,de,da,fi,nb,tr,el,id, 195 | ms,th,hi,hu,pl,cs,sk,uk,hr,ca,ro,he,ur,fa,ku,arc,sl,ml 196 | case enGB = "en-GB" 197 | case enAU = "en-AU" 198 | case enCA = "en-CA" 199 | case enIN = "en-IN" 200 | case frCA = "fr-CA" 201 | case esMX = "es-MX" 202 | case ptBR = "pt-BR" 203 | case zhHans = "zh-Hans" 204 | case zhHant = "zh-Hant" 205 | case zhHK = "zh-HK" 206 | case es419 = "es-419" 207 | case ptPT = "pt-PT" 208 | case deviceLanguage 209 | } 210 | 211 | // MARK: - Swizzling 212 | 213 | fileprivate extension UIView { 214 | static func localize() { 215 | 216 | let orginalSelector = #selector(awakeFromNib) 217 | let swizzledSelector = #selector(swizzledAwakeFromNib) 218 | 219 | let orginalMethod = class_getInstanceMethod(self, orginalSelector) 220 | let swizzledMethod = class_getInstanceMethod(self, swizzledSelector) 221 | 222 | let didAddMethod = class_addMethod(self, orginalSelector, method_getImplementation(swizzledMethod!), method_getTypeEncoding(swizzledMethod!)) 223 | 224 | if didAddMethod { 225 | class_replaceMethod(self, swizzledSelector, method_getImplementation(orginalMethod!), method_getTypeEncoding(orginalMethod!)) 226 | } else { 227 | method_exchangeImplementations(orginalMethod!, swizzledMethod!) 228 | } 229 | 230 | } 231 | 232 | @objc func swizzledAwakeFromNib() { 233 | swizzledAwakeFromNib() 234 | 235 | switch self { 236 | case let txtf as UITextField: 237 | txtf.text = txtf.text?.localiz() 238 | txtf.placeholder = txtf.placeholder?.localiz() 239 | case let lbl as UILabel: 240 | lbl.text = lbl.text?.localiz() 241 | case let btn as UIButton: 242 | btn.setTitle(btn.title(for: .normal)?.localiz(), for: .normal) 243 | case let sgmnt as UISegmentedControl: 244 | (0 ..< sgmnt.numberOfSegments).forEach { sgmnt.setTitle(sgmnt.titleForSegment(at: $0)?.localiz(), forSegmentAt: $0) } 245 | case let txtv as UITextView: 246 | txtv.text = txtv.text?.localiz() 247 | default: 248 | break 249 | } 250 | } 251 | } 252 | 253 | // MARK: - String extension 254 | 255 | public extension String { 256 | 257 | /// 258 | /// Localize the current string to the selected language 259 | /// 260 | /// - returns: The localized string 261 | /// 262 | func localiz(comment: String = "") -> String { 263 | return Lokalise.shared.localizedString(forKey: self, value: self, table: nil) 264 | } 265 | 266 | } 267 | 268 | // MARK: - ImageDirection 269 | 270 | public enum ImageDirection: Int { 271 | case fixed, leftToRight, rightToLeft 272 | } 273 | 274 | private extension UIView { 275 | /// 276 | /// Change the direction of the image depeneding in the language, there is no return value for this variable. 277 | /// The expectid values: 278 | /// 279 | /// -`fixed`: if the image must not change the direction depending on the language you need to set the value as 0. 280 | /// 281 | /// -`leftToRight`: if the image must change the direction depending on the language 282 | /// and the image is left to right image then you need to set the value as 1. 283 | /// 284 | /// -`rightToLeft`: if the image must change the direction depending on the language 285 | /// and the image is right to left image then you need to set the value as 2. 286 | /// 287 | var direction: ImageDirection { 288 | set { 289 | switch newValue { 290 | case .fixed: 291 | break 292 | case .leftToRight where LanguageManager.shared.isRightToLeft: 293 | transform = CGAffineTransform(scaleX: -1, y: 1) 294 | case .rightToLeft where !LanguageManager.shared.isRightToLeft: 295 | transform = CGAffineTransform(scaleX: -1, y: 1) 296 | default: 297 | break 298 | } 299 | } 300 | get { 301 | fatalError("There is no value return from this variable, this variable used to change the image direction depending on the langauge") 302 | } 303 | } 304 | } 305 | 306 | @IBDesignable 307 | public extension UIImageView { 308 | @IBInspectable var imageDirection: Int { 309 | set { 310 | direction = ImageDirection(rawValue: newValue)! 311 | } 312 | get { 313 | return direction.rawValue 314 | } 315 | } 316 | } 317 | 318 | @IBDesignable 319 | public extension UIButton { 320 | @IBInspectable var imageDirection: Int { 321 | set { 322 | direction = ImageDirection(rawValue: newValue)! 323 | } 324 | get { 325 | return direction.rawValue 326 | } 327 | } 328 | } 329 | 330 | // MARK: - Constants 331 | 332 | fileprivate enum Constants { 333 | 334 | enum defaultsKeys { 335 | static let selectedLanguage = "LanguageManagerSelectedLanguage" 336 | static let defaultLanguage = "LanguageManagerDefaultLanguage" 337 | } 338 | 339 | enum strings { 340 | static let unlocalized = "" 341 | } 342 | } 343 | -------------------------------------------------------------------------------- /Example/LanguageManager-iOS-Lokalise.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | C6375EDD231BBDAD00FF6A3B /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6375ED5231BBDAD00FF6A3B /* MainViewController.swift */; }; 11 | C6375EDE231BBDAD00FF6A3B /* SplashViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6375ED6231BBDAD00FF6A3B /* SplashViewController.swift */; }; 12 | C6375EE0231BBDAD00FF6A3B /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6375ED8231BBDAD00FF6A3B /* AppDelegate.swift */; }; 13 | C6375EE3231BBE7800FF6A3B /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = C6375ED0231BBDAD00FF6A3B /* LaunchScreen.xib */; }; 14 | C6375EE4231BBE7800FF6A3B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C6375ED2231BBDAD00FF6A3B /* Main.storyboard */; }; 15 | C6375EE5231BBE8200FF6A3B /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C6375ECC231BBDAD00FF6A3B /* Localizable.strings */; }; 16 | C6375EE6231BBE8200FF6A3B /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C6375ED7231BBDAD00FF6A3B /* Images.xcassets */; }; 17 | FA263C2010AFD85D3CCBE278 /* Pods_LanguageManager_iOS_Lokalise_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E6F09A2F7774D4EBA0B20866 /* Pods_LanguageManager_iOS_Lokalise_Example.framework */; }; 18 | /* End PBXBuildFile section */ 19 | 20 | /* Begin PBXFileReference section */ 21 | 0093FDB2F3AEABEAF9C63F06 /* LanguageManger-iOS-Lokalise.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = "LanguageManger-iOS-Lokalise.podspec"; path = "../LanguageManger-iOS-Lokalise.podspec"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 22 | 0C657FBA5865B621534E9B27 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; 23 | 0D76B229664E02E5A65B8229 /* Pods-LanguageManger-iOS-Lokalise_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LanguageManger-iOS-Lokalise_Tests.release.xcconfig"; path = "Target Support Files/Pods-LanguageManger-iOS-Lokalise_Tests/Pods-LanguageManger-iOS-Lokalise_Tests.release.xcconfig"; sourceTree = ""; }; 24 | 1A4C0D372BE356F24B089F4E /* Pods-LanguageManger-iOS-Lokalise_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LanguageManger-iOS-Lokalise_Tests.debug.xcconfig"; path = "Target Support Files/Pods-LanguageManger-iOS-Lokalise_Tests/Pods-LanguageManger-iOS-Lokalise_Tests.debug.xcconfig"; sourceTree = ""; }; 25 | 4B447E8431BB4F527D705A01 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; 26 | 607FACD01AFB9204008FA782 /* LanguageManager-iOS-Lokalise_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "LanguageManager-iOS-Lokalise_Example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 27 | 86193079C1788D4EC4691D5E /* Pods-LanguageManger-iOS-Lokalise_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LanguageManger-iOS-Lokalise_Example.debug.xcconfig"; path = "Target Support Files/Pods-LanguageManger-iOS-Lokalise_Example/Pods-LanguageManger-iOS-Lokalise_Example.debug.xcconfig"; sourceTree = ""; }; 28 | 88B7C9A014438C617EB9E99E /* Pods-LanguageManger-iOS-Lokalise_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LanguageManger-iOS-Lokalise_Example.release.xcconfig"; path = "Target Support Files/Pods-LanguageManger-iOS-Lokalise_Example/Pods-LanguageManger-iOS-Lokalise_Example.release.xcconfig"; sourceTree = ""; }; 29 | A237CD18D2DEA5D3BD11CA54 /* Pods_LanguageManger_iOS_Lokalise_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LanguageManger_iOS_Lokalise_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 30 | C6375ECD231BBDAD00FF6A3B /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; 31 | C6375ECE231BBDAD00FF6A3B /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; 32 | C6375ED1231BBDAD00FF6A3B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 33 | C6375ED3231BBDAD00FF6A3B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 34 | C6375ED5231BBDAD00FF6A3B /* MainViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainViewController.swift; sourceTree = ""; }; 35 | C6375ED6231BBDAD00FF6A3B /* SplashViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SplashViewController.swift; sourceTree = ""; }; 36 | C6375ED7231BBDAD00FF6A3B /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 37 | C6375ED8231BBDAD00FF6A3B /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 38 | C6375ED9231BBDAD00FF6A3B /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 39 | E6F09A2F7774D4EBA0B20866 /* Pods_LanguageManager_iOS_Lokalise_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LanguageManager_iOS_Lokalise_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 40 | E9B80318C40749B7976A40DC /* Pods-LanguageManager-iOS-Lokalise_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LanguageManager-iOS-Lokalise_Example.release.xcconfig"; path = "Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example.release.xcconfig"; sourceTree = ""; }; 41 | FD8BAB132CA3E77F67342C25 /* Pods-LanguageManager-iOS-Lokalise_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LanguageManager-iOS-Lokalise_Example.debug.xcconfig"; path = "Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example.debug.xcconfig"; sourceTree = ""; }; 42 | /* End PBXFileReference section */ 43 | 44 | /* Begin PBXFrameworksBuildPhase section */ 45 | 607FACCD1AFB9204008FA782 /* Frameworks */ = { 46 | isa = PBXFrameworksBuildPhase; 47 | buildActionMask = 2147483647; 48 | files = ( 49 | FA263C2010AFD85D3CCBE278 /* Pods_LanguageManager_iOS_Lokalise_Example.framework in Frameworks */, 50 | ); 51 | runOnlyForDeploymentPostprocessing = 0; 52 | }; 53 | /* End PBXFrameworksBuildPhase section */ 54 | 55 | /* Begin PBXGroup section */ 56 | 607FACC71AFB9204008FA782 = { 57 | isa = PBXGroup; 58 | children = ( 59 | 607FACF51AFB993E008FA782 /* Podspec Metadata */, 60 | 607FACD11AFB9204008FA782 /* Products */, 61 | C9AAE328F4EFD35FD167EDEE /* Pods */, 62 | C21EA82D1B577381A1A1C4FC /* Frameworks */, 63 | ); 64 | sourceTree = ""; 65 | }; 66 | 607FACD11AFB9204008FA782 /* Products */ = { 67 | isa = PBXGroup; 68 | children = ( 69 | 607FACD01AFB9204008FA782 /* LanguageManager-iOS-Lokalise_Example.app */, 70 | ); 71 | name = Products; 72 | sourceTree = ""; 73 | }; 74 | 607FACF51AFB993E008FA782 /* Podspec Metadata */ = { 75 | isa = PBXGroup; 76 | children = ( 77 | 0093FDB2F3AEABEAF9C63F06 /* LanguageManger-iOS-Lokalise.podspec */, 78 | 4B447E8431BB4F527D705A01 /* README.md */, 79 | 0C657FBA5865B621534E9B27 /* LICENSE */, 80 | C6375ECB231BBDAD00FF6A3B /* LanguageManager-iOS-Lokalise */, 81 | ); 82 | name = "Podspec Metadata"; 83 | sourceTree = ""; 84 | }; 85 | C21EA82D1B577381A1A1C4FC /* Frameworks */ = { 86 | isa = PBXGroup; 87 | children = ( 88 | A237CD18D2DEA5D3BD11CA54 /* Pods_LanguageManger_iOS_Lokalise_Tests.framework */, 89 | E6F09A2F7774D4EBA0B20866 /* Pods_LanguageManager_iOS_Lokalise_Example.framework */, 90 | ); 91 | name = Frameworks; 92 | sourceTree = ""; 93 | }; 94 | C6375ECB231BBDAD00FF6A3B /* LanguageManager-iOS-Lokalise */ = { 95 | isa = PBXGroup; 96 | children = ( 97 | C6375ECC231BBDAD00FF6A3B /* Localizable.strings */, 98 | C6375ECF231BBDAD00FF6A3B /* Screens */, 99 | C6375ED4231BBDAD00FF6A3B /* ViewControllers */, 100 | C6375ED7231BBDAD00FF6A3B /* Images.xcassets */, 101 | C6375ED8231BBDAD00FF6A3B /* AppDelegate.swift */, 102 | C6375ED9231BBDAD00FF6A3B /* Info.plist */, 103 | ); 104 | path = "LanguageManager-iOS-Lokalise"; 105 | sourceTree = ""; 106 | }; 107 | C6375ECF231BBDAD00FF6A3B /* Screens */ = { 108 | isa = PBXGroup; 109 | children = ( 110 | C6375ED0231BBDAD00FF6A3B /* LaunchScreen.xib */, 111 | C6375ED2231BBDAD00FF6A3B /* Main.storyboard */, 112 | ); 113 | path = Screens; 114 | sourceTree = ""; 115 | }; 116 | C6375ED4231BBDAD00FF6A3B /* ViewControllers */ = { 117 | isa = PBXGroup; 118 | children = ( 119 | C6375ED5231BBDAD00FF6A3B /* MainViewController.swift */, 120 | C6375ED6231BBDAD00FF6A3B /* SplashViewController.swift */, 121 | ); 122 | path = ViewControllers; 123 | sourceTree = ""; 124 | }; 125 | C9AAE328F4EFD35FD167EDEE /* Pods */ = { 126 | isa = PBXGroup; 127 | children = ( 128 | 86193079C1788D4EC4691D5E /* Pods-LanguageManger-iOS-Lokalise_Example.debug.xcconfig */, 129 | 88B7C9A014438C617EB9E99E /* Pods-LanguageManger-iOS-Lokalise_Example.release.xcconfig */, 130 | 1A4C0D372BE356F24B089F4E /* Pods-LanguageManger-iOS-Lokalise_Tests.debug.xcconfig */, 131 | 0D76B229664E02E5A65B8229 /* Pods-LanguageManger-iOS-Lokalise_Tests.release.xcconfig */, 132 | FD8BAB132CA3E77F67342C25 /* Pods-LanguageManager-iOS-Lokalise_Example.debug.xcconfig */, 133 | E9B80318C40749B7976A40DC /* Pods-LanguageManager-iOS-Lokalise_Example.release.xcconfig */, 134 | ); 135 | path = Pods; 136 | sourceTree = ""; 137 | }; 138 | /* End PBXGroup section */ 139 | 140 | /* Begin PBXNativeTarget section */ 141 | 607FACCF1AFB9204008FA782 /* LanguageManager-iOS-Lokalise_Example */ = { 142 | isa = PBXNativeTarget; 143 | buildConfigurationList = 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "LanguageManager-iOS-Lokalise_Example" */; 144 | buildPhases = ( 145 | 173479217808B682A8771822 /* [CP] Check Pods Manifest.lock */, 146 | 607FACCC1AFB9204008FA782 /* Sources */, 147 | 607FACCD1AFB9204008FA782 /* Frameworks */, 148 | 607FACCE1AFB9204008FA782 /* Resources */, 149 | 6CA02F44F95CAF5DAC9DA047 /* [CP] Embed Pods Frameworks */, 150 | ); 151 | buildRules = ( 152 | ); 153 | dependencies = ( 154 | ); 155 | name = "LanguageManager-iOS-Lokalise_Example"; 156 | productName = "LanguageManger-iOS-Lokalise"; 157 | productReference = 607FACD01AFB9204008FA782 /* LanguageManager-iOS-Lokalise_Example.app */; 158 | productType = "com.apple.product-type.application"; 159 | }; 160 | /* End PBXNativeTarget section */ 161 | 162 | /* Begin PBXProject section */ 163 | 607FACC81AFB9204008FA782 /* Project object */ = { 164 | isa = PBXProject; 165 | attributes = { 166 | LastSwiftUpdateCheck = 0830; 167 | LastUpgradeCheck = 1030; 168 | ORGANIZATIONNAME = CocoaPods; 169 | TargetAttributes = { 170 | 607FACCF1AFB9204008FA782 = { 171 | CreatedOnToolsVersion = 6.3.1; 172 | LastSwiftMigration = 1030; 173 | }; 174 | }; 175 | }; 176 | buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "LanguageManager-iOS-Lokalise" */; 177 | compatibilityVersion = "Xcode 3.2"; 178 | developmentRegion = English; 179 | hasScannedForEncodings = 0; 180 | knownRegions = ( 181 | English, 182 | en, 183 | Base, 184 | ar, 185 | ); 186 | mainGroup = 607FACC71AFB9204008FA782; 187 | productRefGroup = 607FACD11AFB9204008FA782 /* Products */; 188 | projectDirPath = ""; 189 | projectRoot = ""; 190 | targets = ( 191 | 607FACCF1AFB9204008FA782 /* LanguageManager-iOS-Lokalise_Example */, 192 | ); 193 | }; 194 | /* End PBXProject section */ 195 | 196 | /* Begin PBXResourcesBuildPhase section */ 197 | 607FACCE1AFB9204008FA782 /* Resources */ = { 198 | isa = PBXResourcesBuildPhase; 199 | buildActionMask = 2147483647; 200 | files = ( 201 | C6375EE5231BBE8200FF6A3B /* Localizable.strings in Resources */, 202 | C6375EE6231BBE8200FF6A3B /* Images.xcassets in Resources */, 203 | C6375EE3231BBE7800FF6A3B /* LaunchScreen.xib in Resources */, 204 | C6375EE4231BBE7800FF6A3B /* Main.storyboard in Resources */, 205 | ); 206 | runOnlyForDeploymentPostprocessing = 0; 207 | }; 208 | /* End PBXResourcesBuildPhase section */ 209 | 210 | /* Begin PBXShellScriptBuildPhase section */ 211 | 173479217808B682A8771822 /* [CP] Check Pods Manifest.lock */ = { 212 | isa = PBXShellScriptBuildPhase; 213 | buildActionMask = 2147483647; 214 | files = ( 215 | ); 216 | inputFileListPaths = ( 217 | ); 218 | inputPaths = ( 219 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 220 | "${PODS_ROOT}/Manifest.lock", 221 | ); 222 | name = "[CP] Check Pods Manifest.lock"; 223 | outputFileListPaths = ( 224 | ); 225 | outputPaths = ( 226 | "$(DERIVED_FILE_DIR)/Pods-LanguageManager-iOS-Lokalise_Example-checkManifestLockResult.txt", 227 | ); 228 | runOnlyForDeploymentPostprocessing = 0; 229 | shellPath = /bin/sh; 230 | 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"; 231 | showEnvVarsInLog = 0; 232 | }; 233 | 6CA02F44F95CAF5DAC9DA047 /* [CP] Embed Pods Frameworks */ = { 234 | isa = PBXShellScriptBuildPhase; 235 | buildActionMask = 2147483647; 236 | files = ( 237 | ); 238 | inputPaths = ( 239 | "${PODS_ROOT}/Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example-frameworks.sh", 240 | "${BUILT_PRODUCTS_DIR}/LanguageManager-iOS-Lokalise/LanguageManager_iOS_Lokalise.framework", 241 | "${PODS_ROOT}/Lokalise/Lokalise.framework", 242 | ); 243 | name = "[CP] Embed Pods Frameworks"; 244 | outputPaths = ( 245 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LanguageManager_iOS_Lokalise.framework", 246 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Lokalise.framework", 247 | ); 248 | runOnlyForDeploymentPostprocessing = 0; 249 | shellPath = /bin/sh; 250 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example-frameworks.sh\"\n"; 251 | showEnvVarsInLog = 0; 252 | }; 253 | /* End PBXShellScriptBuildPhase section */ 254 | 255 | /* Begin PBXSourcesBuildPhase section */ 256 | 607FACCC1AFB9204008FA782 /* Sources */ = { 257 | isa = PBXSourcesBuildPhase; 258 | buildActionMask = 2147483647; 259 | files = ( 260 | C6375EE0231BBDAD00FF6A3B /* AppDelegate.swift in Sources */, 261 | C6375EDD231BBDAD00FF6A3B /* MainViewController.swift in Sources */, 262 | C6375EDE231BBDAD00FF6A3B /* SplashViewController.swift in Sources */, 263 | ); 264 | runOnlyForDeploymentPostprocessing = 0; 265 | }; 266 | /* End PBXSourcesBuildPhase section */ 267 | 268 | /* Begin PBXVariantGroup section */ 269 | C6375ECC231BBDAD00FF6A3B /* Localizable.strings */ = { 270 | isa = PBXVariantGroup; 271 | children = ( 272 | C6375ECD231BBDAD00FF6A3B /* ar */, 273 | C6375ECE231BBDAD00FF6A3B /* en */, 274 | ); 275 | name = Localizable.strings; 276 | sourceTree = ""; 277 | }; 278 | C6375ED0231BBDAD00FF6A3B /* LaunchScreen.xib */ = { 279 | isa = PBXVariantGroup; 280 | children = ( 281 | C6375ED1231BBDAD00FF6A3B /* Base */, 282 | ); 283 | name = LaunchScreen.xib; 284 | sourceTree = ""; 285 | }; 286 | C6375ED2231BBDAD00FF6A3B /* Main.storyboard */ = { 287 | isa = PBXVariantGroup; 288 | children = ( 289 | C6375ED3231BBDAD00FF6A3B /* Base */, 290 | ); 291 | name = Main.storyboard; 292 | sourceTree = ""; 293 | }; 294 | /* End PBXVariantGroup section */ 295 | 296 | /* Begin XCBuildConfiguration section */ 297 | 607FACED1AFB9204008FA782 /* Debug */ = { 298 | isa = XCBuildConfiguration; 299 | buildSettings = { 300 | ALWAYS_SEARCH_USER_PATHS = NO; 301 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 302 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 303 | CLANG_CXX_LIBRARY = "libc++"; 304 | CLANG_ENABLE_MODULES = YES; 305 | CLANG_ENABLE_OBJC_ARC = YES; 306 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 307 | CLANG_WARN_BOOL_CONVERSION = YES; 308 | CLANG_WARN_COMMA = YES; 309 | CLANG_WARN_CONSTANT_CONVERSION = YES; 310 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 311 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 312 | CLANG_WARN_EMPTY_BODY = YES; 313 | CLANG_WARN_ENUM_CONVERSION = YES; 314 | CLANG_WARN_INFINITE_RECURSION = YES; 315 | CLANG_WARN_INT_CONVERSION = YES; 316 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 317 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 318 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 319 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 320 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 321 | CLANG_WARN_STRICT_PROTOTYPES = YES; 322 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 323 | CLANG_WARN_UNREACHABLE_CODE = YES; 324 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 325 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 326 | COPY_PHASE_STRIP = NO; 327 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 328 | ENABLE_STRICT_OBJC_MSGSEND = YES; 329 | ENABLE_TESTABILITY = YES; 330 | GCC_C_LANGUAGE_STANDARD = gnu99; 331 | GCC_DYNAMIC_NO_PIC = NO; 332 | GCC_NO_COMMON_BLOCKS = YES; 333 | GCC_OPTIMIZATION_LEVEL = 0; 334 | GCC_PREPROCESSOR_DEFINITIONS = ( 335 | "DEBUG=1", 336 | "$(inherited)", 337 | ); 338 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 339 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 340 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 341 | GCC_WARN_UNDECLARED_SELECTOR = YES; 342 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 343 | GCC_WARN_UNUSED_FUNCTION = YES; 344 | GCC_WARN_UNUSED_VARIABLE = YES; 345 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 346 | MTL_ENABLE_DEBUG_INFO = YES; 347 | ONLY_ACTIVE_ARCH = YES; 348 | SDKROOT = iphoneos; 349 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 350 | }; 351 | name = Debug; 352 | }; 353 | 607FACEE1AFB9204008FA782 /* Release */ = { 354 | isa = XCBuildConfiguration; 355 | buildSettings = { 356 | ALWAYS_SEARCH_USER_PATHS = NO; 357 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 358 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 359 | CLANG_CXX_LIBRARY = "libc++"; 360 | CLANG_ENABLE_MODULES = YES; 361 | CLANG_ENABLE_OBJC_ARC = YES; 362 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 363 | CLANG_WARN_BOOL_CONVERSION = YES; 364 | CLANG_WARN_COMMA = YES; 365 | CLANG_WARN_CONSTANT_CONVERSION = YES; 366 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 367 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 368 | CLANG_WARN_EMPTY_BODY = YES; 369 | CLANG_WARN_ENUM_CONVERSION = YES; 370 | CLANG_WARN_INFINITE_RECURSION = YES; 371 | CLANG_WARN_INT_CONVERSION = YES; 372 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 373 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 374 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 375 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 376 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 377 | CLANG_WARN_STRICT_PROTOTYPES = YES; 378 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 379 | CLANG_WARN_UNREACHABLE_CODE = YES; 380 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 381 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 382 | COPY_PHASE_STRIP = NO; 383 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 384 | ENABLE_NS_ASSERTIONS = NO; 385 | ENABLE_STRICT_OBJC_MSGSEND = YES; 386 | GCC_C_LANGUAGE_STANDARD = gnu99; 387 | GCC_NO_COMMON_BLOCKS = YES; 388 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 389 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 390 | GCC_WARN_UNDECLARED_SELECTOR = YES; 391 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 392 | GCC_WARN_UNUSED_FUNCTION = YES; 393 | GCC_WARN_UNUSED_VARIABLE = YES; 394 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 395 | MTL_ENABLE_DEBUG_INFO = NO; 396 | SDKROOT = iphoneos; 397 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 398 | VALIDATE_PRODUCT = YES; 399 | }; 400 | name = Release; 401 | }; 402 | 607FACF01AFB9204008FA782 /* Debug */ = { 403 | isa = XCBuildConfiguration; 404 | baseConfigurationReference = FD8BAB132CA3E77F67342C25 /* Pods-LanguageManager-iOS-Lokalise_Example.debug.xcconfig */; 405 | buildSettings = { 406 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 407 | INFOPLIST_FILE = "$(SRCROOT)/LanguageManager-iOS-Lokalise/Info.plist"; 408 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 409 | MODULE_NAME = ExampleApp; 410 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; 411 | PRODUCT_NAME = "$(TARGET_NAME)"; 412 | SWIFT_VERSION = 5.0; 413 | }; 414 | name = Debug; 415 | }; 416 | 607FACF11AFB9204008FA782 /* Release */ = { 417 | isa = XCBuildConfiguration; 418 | baseConfigurationReference = E9B80318C40749B7976A40DC /* Pods-LanguageManager-iOS-Lokalise_Example.release.xcconfig */; 419 | buildSettings = { 420 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 421 | INFOPLIST_FILE = "$(SRCROOT)/LanguageManager-iOS-Lokalise/Info.plist"; 422 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 423 | MODULE_NAME = ExampleApp; 424 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; 425 | PRODUCT_NAME = "$(TARGET_NAME)"; 426 | SWIFT_VERSION = 5.0; 427 | }; 428 | name = Release; 429 | }; 430 | /* End XCBuildConfiguration section */ 431 | 432 | /* Begin XCConfigurationList section */ 433 | 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "LanguageManager-iOS-Lokalise" */ = { 434 | isa = XCConfigurationList; 435 | buildConfigurations = ( 436 | 607FACED1AFB9204008FA782 /* Debug */, 437 | 607FACEE1AFB9204008FA782 /* Release */, 438 | ); 439 | defaultConfigurationIsVisible = 0; 440 | defaultConfigurationName = Release; 441 | }; 442 | 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "LanguageManager-iOS-Lokalise_Example" */ = { 443 | isa = XCConfigurationList; 444 | buildConfigurations = ( 445 | 607FACF01AFB9204008FA782 /* Debug */, 446 | 607FACF11AFB9204008FA782 /* Release */, 447 | ); 448 | defaultConfigurationIsVisible = 0; 449 | defaultConfigurationName = Release; 450 | }; 451 | /* End XCConfigurationList section */ 452 | }; 453 | rootObject = 607FACC81AFB9204008FA782 /* Project object */; 454 | } 455 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXAggregateTarget section */ 10 | 58BADA2E6AF091DA3F6549904CCC4CE5 /* Lokalise */ = { 11 | isa = PBXAggregateTarget; 12 | buildConfigurationList = 9E904FA6943811AE0BC46D25AAC257A5 /* Build configuration list for PBXAggregateTarget "Lokalise" */; 13 | buildPhases = ( 14 | ); 15 | dependencies = ( 16 | ); 17 | name = Lokalise; 18 | productName = Lokalise; 19 | }; 20 | /* End PBXAggregateTarget section */ 21 | 22 | /* Begin PBXBuildFile section */ 23 | 4F4636B6F6B232D390ED5276F2B58430 /* LanguageManager-iOS-Lokalise-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BE0E12368E0D1FD9D1A474C1E9B200B /* LanguageManager-iOS-Lokalise-dummy.m */; }; 24 | 6B8B56479A65FB5B9C0CD76DEE0E2051 /* Pods-LanguageManager-iOS-Lokalise_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CA2C9A31E9DD41005A31DD762397E168 /* Pods-LanguageManager-iOS-Lokalise_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 25 | 84B0524220A6D7E561BAF91ABF6B6FC6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; 26 | 96023548344C496249CAA30478E7E70A /* LanguageManager-iOS-Lokalise-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F43CC755A380E9B385AA72B5B4F10F73 /* LanguageManager-iOS-Lokalise-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 27 | A54684040954ED2CC80E29B088D3569E /* LanguageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74A29CB2CF63C79FD76B6C817E6AA8BC /* LanguageManager.swift */; }; 28 | B3E2CF85A07B0146B3F49FE5D673C164 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; }; 29 | ED545D49FD3DF770840BE5A3A4F81AE1 /* Pods-LanguageManager-iOS-Lokalise_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F9D2B0CE39401744908CDCE50D0D59B /* Pods-LanguageManager-iOS-Lokalise_Example-dummy.m */; }; 30 | /* End PBXBuildFile section */ 31 | 32 | /* Begin PBXContainerItemProxy section */ 33 | 3354BB9EA0C19B76FAAF4010E0E01E5B /* PBXContainerItemProxy */ = { 34 | isa = PBXContainerItemProxy; 35 | containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; 36 | proxyType = 1; 37 | remoteGlobalIDString = 58BADA2E6AF091DA3F6549904CCC4CE5; 38 | remoteInfo = Lokalise; 39 | }; 40 | 59481A32140FBA9E0B583171972CE207 /* PBXContainerItemProxy */ = { 41 | isa = PBXContainerItemProxy; 42 | containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; 43 | proxyType = 1; 44 | remoteGlobalIDString = CB3B2598A10A954BE6E667B85D3FE02A; 45 | remoteInfo = "LanguageManager-iOS-Lokalise"; 46 | }; 47 | 7E0C156760047C3693558D04DD44ECF5 /* PBXContainerItemProxy */ = { 48 | isa = PBXContainerItemProxy; 49 | containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; 50 | proxyType = 1; 51 | remoteGlobalIDString = 58BADA2E6AF091DA3F6549904CCC4CE5; 52 | remoteInfo = Lokalise; 53 | }; 54 | /* End PBXContainerItemProxy section */ 55 | 56 | /* Begin PBXFileReference section */ 57 | 1BE0E12368E0D1FD9D1A474C1E9B200B /* LanguageManager-iOS-Lokalise-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LanguageManager-iOS-Lokalise-dummy.m"; sourceTree = ""; }; 58 | 1E68EAB85FE17EDB834ED19DF2ED54C5 /* LanguageManager_iOS_Lokalise.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LanguageManager_iOS_Lokalise.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 59 | 244AF18D546A7041388E9AC73074B6B1 /* Pods-LanguageManager-iOS-Lokalise_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-LanguageManager-iOS-Lokalise_Example-acknowledgements.markdown"; sourceTree = ""; }; 60 | 254A0288B9E24F337D878225F3A41FCE /* Pods-LanguageManager-iOS-Lokalise_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-LanguageManager-iOS-Lokalise_Example-Info.plist"; sourceTree = ""; }; 61 | 25ABA06EC60A4E5E63C1B057DE93B47F /* Pods-LanguageManager-iOS-Lokalise_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-LanguageManager-iOS-Lokalise_Example.modulemap"; sourceTree = ""; }; 62 | 3B6EA36ABD351C46A5F94BEDF5C6806C /* LanguageManager-iOS-Lokalise-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LanguageManager-iOS-Lokalise-prefix.pch"; sourceTree = ""; }; 63 | 3C9BFCA652AEF0D3982DDB6946202D5B /* LanguageManager-iOS-Lokalise.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "LanguageManager-iOS-Lokalise.debug.xcconfig"; sourceTree = ""; }; 64 | 404234EC7387B4DE6FFDA292F7D8987D /* Pods-LanguageManager-iOS-Lokalise_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-LanguageManager-iOS-Lokalise_Example-acknowledgements.plist"; sourceTree = ""; }; 65 | 5948E1812BF550A7E346B230C369E5A3 /* Pods_LanguageManager_iOS_Lokalise_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LanguageManager_iOS_Lokalise_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 66 | 5F9D2B0CE39401744908CDCE50D0D59B /* Pods-LanguageManager-iOS-Lokalise_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LanguageManager-iOS-Lokalise_Example-dummy.m"; sourceTree = ""; }; 67 | 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 68 | 74A29CB2CF63C79FD76B6C817E6AA8BC /* LanguageManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LanguageManager.swift; path = "LanguageManager-iOS-Lokalise/Classes/LanguageManager.swift"; sourceTree = ""; }; 69 | 7F0ACF2B98EDC7E37F334B25A36C6BA7 /* Lokalise.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Lokalise.release.xcconfig; sourceTree = ""; }; 70 | 9D4D1C2FB17BB13303A0E9498A0738A2 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; 71 | 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 72 | A757ABF2A42AFA1C43F03A0EF35B262D /* Pods-LanguageManager-iOS-Lokalise_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LanguageManager-iOS-Lokalise_Example.release.xcconfig"; sourceTree = ""; }; 73 | B70C2F49238A1BB918AA190735CF4CFE /* LanguageManager-iOS-Lokalise-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "LanguageManager-iOS-Lokalise-Info.plist"; sourceTree = ""; }; 74 | C704C4C16D2F19AAD7D3FC379B2B28EF /* Lokalise.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Lokalise.debug.xcconfig; sourceTree = ""; }; 75 | CA2C9A31E9DD41005A31DD762397E168 /* Pods-LanguageManager-iOS-Lokalise_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LanguageManager-iOS-Lokalise_Example-umbrella.h"; sourceTree = ""; }; 76 | CB2752581B12103941D31DD9A2572C13 /* Pods-LanguageManager-iOS-Lokalise_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LanguageManager-iOS-Lokalise_Example-frameworks.sh"; sourceTree = ""; }; 77 | DCE656F1BCD909A52AF4A7170DBF4ACB /* LanguageManager-iOS-Lokalise.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; path = "LanguageManager-iOS-Lokalise.podspec"; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 78 | E61FFAC279FE7DA4E4C936F56CB08A8E /* LanguageManager-iOS-Lokalise.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "LanguageManager-iOS-Lokalise.release.xcconfig"; sourceTree = ""; }; 79 | EC6BB708297B7584DC5D63EDA23F8EB0 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; 80 | ED0C18AB90C464DFC3D083270001E576 /* Lokalise.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Lokalise.framework; sourceTree = ""; }; 81 | EDCD6A3B9EEB30665EC4D85013388B82 /* Pods-LanguageManager-iOS-Lokalise_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LanguageManager-iOS-Lokalise_Example.debug.xcconfig"; sourceTree = ""; }; 82 | F43CC755A380E9B385AA72B5B4F10F73 /* LanguageManager-iOS-Lokalise-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LanguageManager-iOS-Lokalise-umbrella.h"; sourceTree = ""; }; 83 | FD71EFA4FFB221C5235CC077C9DABE0C /* LanguageManager-iOS-Lokalise.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "LanguageManager-iOS-Lokalise.modulemap"; sourceTree = ""; }; 84 | /* End PBXFileReference section */ 85 | 86 | /* Begin PBXFrameworksBuildPhase section */ 87 | 027A086889C11A3B3710B4D01442546C /* Frameworks */ = { 88 | isa = PBXFrameworksBuildPhase; 89 | buildActionMask = 2147483647; 90 | files = ( 91 | 84B0524220A6D7E561BAF91ABF6B6FC6 /* Foundation.framework in Frameworks */, 92 | ); 93 | runOnlyForDeploymentPostprocessing = 0; 94 | }; 95 | 7150965C8768361098E8A432786D3411 /* Frameworks */ = { 96 | isa = PBXFrameworksBuildPhase; 97 | buildActionMask = 2147483647; 98 | files = ( 99 | B3E2CF85A07B0146B3F49FE5D673C164 /* Foundation.framework in Frameworks */, 100 | ); 101 | runOnlyForDeploymentPostprocessing = 0; 102 | }; 103 | /* End PBXFrameworksBuildPhase section */ 104 | 105 | /* Begin PBXGroup section */ 106 | 033218D23D22FB1E0CE1F3AE7191744E /* Pod */ = { 107 | isa = PBXGroup; 108 | children = ( 109 | DCE656F1BCD909A52AF4A7170DBF4ACB /* LanguageManager-iOS-Lokalise.podspec */, 110 | EC6BB708297B7584DC5D63EDA23F8EB0 /* LICENSE */, 111 | 9D4D1C2FB17BB13303A0E9498A0738A2 /* README.md */, 112 | ); 113 | name = Pod; 114 | sourceTree = ""; 115 | }; 116 | 27C1C1AC2D49C2FCA9B45FB3E10207C9 /* Development Pods */ = { 117 | isa = PBXGroup; 118 | children = ( 119 | 6A648C6EEBCFB5D57B5E0021B7E266FB /* LanguageManager-iOS-Lokalise */, 120 | ); 121 | name = "Development Pods"; 122 | sourceTree = ""; 123 | }; 124 | 3A4AF540CEF5D10E00143EFEAF254085 /* Support Files */ = { 125 | isa = PBXGroup; 126 | children = ( 127 | C704C4C16D2F19AAD7D3FC379B2B28EF /* Lokalise.debug.xcconfig */, 128 | 7F0ACF2B98EDC7E37F334B25A36C6BA7 /* Lokalise.release.xcconfig */, 129 | ); 130 | name = "Support Files"; 131 | path = "../Target Support Files/Lokalise"; 132 | sourceTree = ""; 133 | }; 134 | 578452D2E740E91742655AC8F1636D1F /* iOS */ = { 135 | isa = PBXGroup; 136 | children = ( 137 | 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */, 138 | ); 139 | name = iOS; 140 | sourceTree = ""; 141 | }; 142 | 625A94D65F5F2DA6DE45A479FA5BE89F /* Lokalise */ = { 143 | isa = PBXGroup; 144 | children = ( 145 | D83247E85564C33CFDE71AA91B8D7C27 /* Frameworks */, 146 | 3A4AF540CEF5D10E00143EFEAF254085 /* Support Files */, 147 | ); 148 | path = Lokalise; 149 | sourceTree = ""; 150 | }; 151 | 6A648C6EEBCFB5D57B5E0021B7E266FB /* LanguageManager-iOS-Lokalise */ = { 152 | isa = PBXGroup; 153 | children = ( 154 | 74A29CB2CF63C79FD76B6C817E6AA8BC /* LanguageManager.swift */, 155 | 033218D23D22FB1E0CE1F3AE7191744E /* Pod */, 156 | D96EB960B0E80852394FB5E937E289E7 /* Support Files */, 157 | ); 158 | name = "LanguageManager-iOS-Lokalise"; 159 | path = ../..; 160 | sourceTree = ""; 161 | }; 162 | 883E6D4AFBF8288C2BA213285D522B71 /* Pods */ = { 163 | isa = PBXGroup; 164 | children = ( 165 | 625A94D65F5F2DA6DE45A479FA5BE89F /* Lokalise */, 166 | ); 167 | name = Pods; 168 | sourceTree = ""; 169 | }; 170 | 97C5159C31DC24FAAD428440C7997017 /* Products */ = { 171 | isa = PBXGroup; 172 | children = ( 173 | 1E68EAB85FE17EDB834ED19DF2ED54C5 /* LanguageManager_iOS_Lokalise.framework */, 174 | 5948E1812BF550A7E346B230C369E5A3 /* Pods_LanguageManager_iOS_Lokalise_Example.framework */, 175 | ); 176 | name = Products; 177 | sourceTree = ""; 178 | }; 179 | B80B50E65860056A75A5E6B73FB57490 /* Pods-LanguageManager-iOS-Lokalise_Example */ = { 180 | isa = PBXGroup; 181 | children = ( 182 | 25ABA06EC60A4E5E63C1B057DE93B47F /* Pods-LanguageManager-iOS-Lokalise_Example.modulemap */, 183 | 244AF18D546A7041388E9AC73074B6B1 /* Pods-LanguageManager-iOS-Lokalise_Example-acknowledgements.markdown */, 184 | 404234EC7387B4DE6FFDA292F7D8987D /* Pods-LanguageManager-iOS-Lokalise_Example-acknowledgements.plist */, 185 | 5F9D2B0CE39401744908CDCE50D0D59B /* Pods-LanguageManager-iOS-Lokalise_Example-dummy.m */, 186 | CB2752581B12103941D31DD9A2572C13 /* Pods-LanguageManager-iOS-Lokalise_Example-frameworks.sh */, 187 | 254A0288B9E24F337D878225F3A41FCE /* Pods-LanguageManager-iOS-Lokalise_Example-Info.plist */, 188 | CA2C9A31E9DD41005A31DD762397E168 /* Pods-LanguageManager-iOS-Lokalise_Example-umbrella.h */, 189 | EDCD6A3B9EEB30665EC4D85013388B82 /* Pods-LanguageManager-iOS-Lokalise_Example.debug.xcconfig */, 190 | A757ABF2A42AFA1C43F03A0EF35B262D /* Pods-LanguageManager-iOS-Lokalise_Example.release.xcconfig */, 191 | ); 192 | name = "Pods-LanguageManager-iOS-Lokalise_Example"; 193 | path = "Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example"; 194 | sourceTree = ""; 195 | }; 196 | CF1408CF629C7361332E53B88F7BD30C = { 197 | isa = PBXGroup; 198 | children = ( 199 | 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, 200 | 27C1C1AC2D49C2FCA9B45FB3E10207C9 /* Development Pods */, 201 | D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */, 202 | 883E6D4AFBF8288C2BA213285D522B71 /* Pods */, 203 | 97C5159C31DC24FAAD428440C7997017 /* Products */, 204 | E7F6658A9CA4079D6E622AE27DCF3A05 /* Targets Support Files */, 205 | ); 206 | sourceTree = ""; 207 | }; 208 | D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = { 209 | isa = PBXGroup; 210 | children = ( 211 | 578452D2E740E91742655AC8F1636D1F /* iOS */, 212 | ); 213 | name = Frameworks; 214 | sourceTree = ""; 215 | }; 216 | D83247E85564C33CFDE71AA91B8D7C27 /* Frameworks */ = { 217 | isa = PBXGroup; 218 | children = ( 219 | ED0C18AB90C464DFC3D083270001E576 /* Lokalise.framework */, 220 | ); 221 | name = Frameworks; 222 | sourceTree = ""; 223 | }; 224 | D96EB960B0E80852394FB5E937E289E7 /* Support Files */ = { 225 | isa = PBXGroup; 226 | children = ( 227 | FD71EFA4FFB221C5235CC077C9DABE0C /* LanguageManager-iOS-Lokalise.modulemap */, 228 | 1BE0E12368E0D1FD9D1A474C1E9B200B /* LanguageManager-iOS-Lokalise-dummy.m */, 229 | B70C2F49238A1BB918AA190735CF4CFE /* LanguageManager-iOS-Lokalise-Info.plist */, 230 | 3B6EA36ABD351C46A5F94BEDF5C6806C /* LanguageManager-iOS-Lokalise-prefix.pch */, 231 | F43CC755A380E9B385AA72B5B4F10F73 /* LanguageManager-iOS-Lokalise-umbrella.h */, 232 | 3C9BFCA652AEF0D3982DDB6946202D5B /* LanguageManager-iOS-Lokalise.debug.xcconfig */, 233 | E61FFAC279FE7DA4E4C936F56CB08A8E /* LanguageManager-iOS-Lokalise.release.xcconfig */, 234 | ); 235 | name = "Support Files"; 236 | path = "Example/Pods/Target Support Files/LanguageManager-iOS-Lokalise"; 237 | sourceTree = ""; 238 | }; 239 | E7F6658A9CA4079D6E622AE27DCF3A05 /* Targets Support Files */ = { 240 | isa = PBXGroup; 241 | children = ( 242 | B80B50E65860056A75A5E6B73FB57490 /* Pods-LanguageManager-iOS-Lokalise_Example */, 243 | ); 244 | name = "Targets Support Files"; 245 | sourceTree = ""; 246 | }; 247 | /* End PBXGroup section */ 248 | 249 | /* Begin PBXHeadersBuildPhase section */ 250 | A3AF0D74C6EFB7D2083919BBB8E5377E /* Headers */ = { 251 | isa = PBXHeadersBuildPhase; 252 | buildActionMask = 2147483647; 253 | files = ( 254 | 96023548344C496249CAA30478E7E70A /* LanguageManager-iOS-Lokalise-umbrella.h in Headers */, 255 | ); 256 | runOnlyForDeploymentPostprocessing = 0; 257 | }; 258 | C0D3A09D8A9149BF467E75BEDD9DE656 /* Headers */ = { 259 | isa = PBXHeadersBuildPhase; 260 | buildActionMask = 2147483647; 261 | files = ( 262 | 6B8B56479A65FB5B9C0CD76DEE0E2051 /* Pods-LanguageManager-iOS-Lokalise_Example-umbrella.h in Headers */, 263 | ); 264 | runOnlyForDeploymentPostprocessing = 0; 265 | }; 266 | /* End PBXHeadersBuildPhase section */ 267 | 268 | /* Begin PBXNativeTarget section */ 269 | 097EF4806D532B862B40E9E9C521F80E /* Pods-LanguageManager-iOS-Lokalise_Example */ = { 270 | isa = PBXNativeTarget; 271 | buildConfigurationList = ED6EE77289B5C3C74A1199C583F1FD69 /* Build configuration list for PBXNativeTarget "Pods-LanguageManager-iOS-Lokalise_Example" */; 272 | buildPhases = ( 273 | C0D3A09D8A9149BF467E75BEDD9DE656 /* Headers */, 274 | 0FD3DEDCB9BB52FF114BE6F3F38FDC86 /* Sources */, 275 | 7150965C8768361098E8A432786D3411 /* Frameworks */, 276 | 708F2C2B991C9B8E936A8B2F9E5A98A5 /* Resources */, 277 | ); 278 | buildRules = ( 279 | ); 280 | dependencies = ( 281 | 9496D924C22E063FB8119AFB706A8F63 /* PBXTargetDependency */, 282 | 00441E0908A589D2AD124F9155F116D1 /* PBXTargetDependency */, 283 | ); 284 | name = "Pods-LanguageManager-iOS-Lokalise_Example"; 285 | productName = "Pods-LanguageManager-iOS-Lokalise_Example"; 286 | productReference = 5948E1812BF550A7E346B230C369E5A3 /* Pods_LanguageManager_iOS_Lokalise_Example.framework */; 287 | productType = "com.apple.product-type.framework"; 288 | }; 289 | CB3B2598A10A954BE6E667B85D3FE02A /* LanguageManager-iOS-Lokalise */ = { 290 | isa = PBXNativeTarget; 291 | buildConfigurationList = DB8EC636087F98984F1364D34FB8C195 /* Build configuration list for PBXNativeTarget "LanguageManager-iOS-Lokalise" */; 292 | buildPhases = ( 293 | A3AF0D74C6EFB7D2083919BBB8E5377E /* Headers */, 294 | 1047EF11FF3765E2A983F58BAE74535F /* Sources */, 295 | 027A086889C11A3B3710B4D01442546C /* Frameworks */, 296 | 38F096ACF0057890C73245A327E543B4 /* Resources */, 297 | ); 298 | buildRules = ( 299 | ); 300 | dependencies = ( 301 | 9D4B58C33AF2826FED8D889DDDEC086D /* PBXTargetDependency */, 302 | ); 303 | name = "LanguageManager-iOS-Lokalise"; 304 | productName = "LanguageManager-iOS-Lokalise"; 305 | productReference = 1E68EAB85FE17EDB834ED19DF2ED54C5 /* LanguageManager_iOS_Lokalise.framework */; 306 | productType = "com.apple.product-type.framework"; 307 | }; 308 | /* End PBXNativeTarget section */ 309 | 310 | /* Begin PBXProject section */ 311 | BFDFE7DC352907FC980B868725387E98 /* Project object */ = { 312 | isa = PBXProject; 313 | attributes = { 314 | LastSwiftUpdateCheck = 1100; 315 | LastUpgradeCheck = 1100; 316 | }; 317 | buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; 318 | compatibilityVersion = "Xcode 3.2"; 319 | developmentRegion = en; 320 | hasScannedForEncodings = 0; 321 | knownRegions = ( 322 | en, 323 | Base, 324 | ); 325 | mainGroup = CF1408CF629C7361332E53B88F7BD30C; 326 | productRefGroup = 97C5159C31DC24FAAD428440C7997017 /* Products */; 327 | projectDirPath = ""; 328 | projectRoot = ""; 329 | targets = ( 330 | CB3B2598A10A954BE6E667B85D3FE02A /* LanguageManager-iOS-Lokalise */, 331 | 58BADA2E6AF091DA3F6549904CCC4CE5 /* Lokalise */, 332 | 097EF4806D532B862B40E9E9C521F80E /* Pods-LanguageManager-iOS-Lokalise_Example */, 333 | ); 334 | }; 335 | /* End PBXProject section */ 336 | 337 | /* Begin PBXResourcesBuildPhase section */ 338 | 38F096ACF0057890C73245A327E543B4 /* Resources */ = { 339 | isa = PBXResourcesBuildPhase; 340 | buildActionMask = 2147483647; 341 | files = ( 342 | ); 343 | runOnlyForDeploymentPostprocessing = 0; 344 | }; 345 | 708F2C2B991C9B8E936A8B2F9E5A98A5 /* Resources */ = { 346 | isa = PBXResourcesBuildPhase; 347 | buildActionMask = 2147483647; 348 | files = ( 349 | ); 350 | runOnlyForDeploymentPostprocessing = 0; 351 | }; 352 | /* End PBXResourcesBuildPhase section */ 353 | 354 | /* Begin PBXSourcesBuildPhase section */ 355 | 0FD3DEDCB9BB52FF114BE6F3F38FDC86 /* Sources */ = { 356 | isa = PBXSourcesBuildPhase; 357 | buildActionMask = 2147483647; 358 | files = ( 359 | ED545D49FD3DF770840BE5A3A4F81AE1 /* Pods-LanguageManager-iOS-Lokalise_Example-dummy.m in Sources */, 360 | ); 361 | runOnlyForDeploymentPostprocessing = 0; 362 | }; 363 | 1047EF11FF3765E2A983F58BAE74535F /* Sources */ = { 364 | isa = PBXSourcesBuildPhase; 365 | buildActionMask = 2147483647; 366 | files = ( 367 | 4F4636B6F6B232D390ED5276F2B58430 /* LanguageManager-iOS-Lokalise-dummy.m in Sources */, 368 | A54684040954ED2CC80E29B088D3569E /* LanguageManager.swift in Sources */, 369 | ); 370 | runOnlyForDeploymentPostprocessing = 0; 371 | }; 372 | /* End PBXSourcesBuildPhase section */ 373 | 374 | /* Begin PBXTargetDependency section */ 375 | 00441E0908A589D2AD124F9155F116D1 /* PBXTargetDependency */ = { 376 | isa = PBXTargetDependency; 377 | name = Lokalise; 378 | target = 58BADA2E6AF091DA3F6549904CCC4CE5 /* Lokalise */; 379 | targetProxy = 3354BB9EA0C19B76FAAF4010E0E01E5B /* PBXContainerItemProxy */; 380 | }; 381 | 9496D924C22E063FB8119AFB706A8F63 /* PBXTargetDependency */ = { 382 | isa = PBXTargetDependency; 383 | name = "LanguageManager-iOS-Lokalise"; 384 | target = CB3B2598A10A954BE6E667B85D3FE02A /* LanguageManager-iOS-Lokalise */; 385 | targetProxy = 59481A32140FBA9E0B583171972CE207 /* PBXContainerItemProxy */; 386 | }; 387 | 9D4B58C33AF2826FED8D889DDDEC086D /* PBXTargetDependency */ = { 388 | isa = PBXTargetDependency; 389 | name = Lokalise; 390 | target = 58BADA2E6AF091DA3F6549904CCC4CE5 /* Lokalise */; 391 | targetProxy = 7E0C156760047C3693558D04DD44ECF5 /* PBXContainerItemProxy */; 392 | }; 393 | /* End PBXTargetDependency section */ 394 | 395 | /* Begin XCBuildConfiguration section */ 396 | 012331D908ED344F48984BD34234F7DA /* Debug */ = { 397 | isa = XCBuildConfiguration; 398 | baseConfigurationReference = 3C9BFCA652AEF0D3982DDB6946202D5B /* LanguageManager-iOS-Lokalise.debug.xcconfig */; 399 | buildSettings = { 400 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 401 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 402 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 403 | CURRENT_PROJECT_VERSION = 1; 404 | DEFINES_MODULE = YES; 405 | DYLIB_COMPATIBILITY_VERSION = 1; 406 | DYLIB_CURRENT_VERSION = 1; 407 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 408 | GCC_PREFIX_HEADER = "Target Support Files/LanguageManager-iOS-Lokalise/LanguageManager-iOS-Lokalise-prefix.pch"; 409 | INFOPLIST_FILE = "Target Support Files/LanguageManager-iOS-Lokalise/LanguageManager-iOS-Lokalise-Info.plist"; 410 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 411 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 412 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 413 | MODULEMAP_FILE = "Target Support Files/LanguageManager-iOS-Lokalise/LanguageManager-iOS-Lokalise.modulemap"; 414 | PRODUCT_MODULE_NAME = LanguageManager_iOS_Lokalise; 415 | PRODUCT_NAME = LanguageManager_iOS_Lokalise; 416 | SDKROOT = iphoneos; 417 | SKIP_INSTALL = YES; 418 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 419 | SWIFT_VERSION = 5.0; 420 | TARGETED_DEVICE_FAMILY = "1,2"; 421 | VERSIONING_SYSTEM = "apple-generic"; 422 | VERSION_INFO_PREFIX = ""; 423 | }; 424 | name = Debug; 425 | }; 426 | 431BA2B8298F0EE71735B9E0114E1955 /* Release */ = { 427 | isa = XCBuildConfiguration; 428 | buildSettings = { 429 | ALWAYS_SEARCH_USER_PATHS = NO; 430 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 431 | CLANG_ANALYZER_NONNULL = YES; 432 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 433 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 434 | CLANG_CXX_LIBRARY = "libc++"; 435 | CLANG_ENABLE_MODULES = YES; 436 | CLANG_ENABLE_OBJC_ARC = YES; 437 | CLANG_ENABLE_OBJC_WEAK = YES; 438 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 439 | CLANG_WARN_BOOL_CONVERSION = YES; 440 | CLANG_WARN_COMMA = YES; 441 | CLANG_WARN_CONSTANT_CONVERSION = YES; 442 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 443 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 444 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 445 | CLANG_WARN_EMPTY_BODY = YES; 446 | CLANG_WARN_ENUM_CONVERSION = YES; 447 | CLANG_WARN_INFINITE_RECURSION = YES; 448 | CLANG_WARN_INT_CONVERSION = YES; 449 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 450 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 451 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 452 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 453 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 454 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 455 | CLANG_WARN_STRICT_PROTOTYPES = YES; 456 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 457 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 458 | CLANG_WARN_UNREACHABLE_CODE = YES; 459 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 460 | COPY_PHASE_STRIP = NO; 461 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 462 | ENABLE_NS_ASSERTIONS = NO; 463 | ENABLE_STRICT_OBJC_MSGSEND = YES; 464 | EXCLUDED_ARCHS = arm64; 465 | GCC_C_LANGUAGE_STANDARD = gnu11; 466 | GCC_NO_COMMON_BLOCKS = YES; 467 | GCC_PREPROCESSOR_DEFINITIONS = ( 468 | "POD_CONFIGURATION_RELEASE=1", 469 | "$(inherited)", 470 | ); 471 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 472 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 473 | GCC_WARN_UNDECLARED_SELECTOR = YES; 474 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 475 | GCC_WARN_UNUSED_FUNCTION = YES; 476 | GCC_WARN_UNUSED_VARIABLE = YES; 477 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 478 | MTL_ENABLE_DEBUG_INFO = NO; 479 | MTL_FAST_MATH = YES; 480 | PRODUCT_NAME = "$(TARGET_NAME)"; 481 | STRIP_INSTALLED_PRODUCT = NO; 482 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 483 | SWIFT_VERSION = 5.0; 484 | SYMROOT = "${SRCROOT}/../build"; 485 | }; 486 | name = Release; 487 | }; 488 | 71644963916416E691BB429FEDA6E093 /* Release */ = { 489 | isa = XCBuildConfiguration; 490 | baseConfigurationReference = E61FFAC279FE7DA4E4C936F56CB08A8E /* LanguageManager-iOS-Lokalise.release.xcconfig */; 491 | buildSettings = { 492 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 493 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 494 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 495 | CURRENT_PROJECT_VERSION = 1; 496 | DEFINES_MODULE = YES; 497 | DYLIB_COMPATIBILITY_VERSION = 1; 498 | DYLIB_CURRENT_VERSION = 1; 499 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 500 | GCC_PREFIX_HEADER = "Target Support Files/LanguageManager-iOS-Lokalise/LanguageManager-iOS-Lokalise-prefix.pch"; 501 | INFOPLIST_FILE = "Target Support Files/LanguageManager-iOS-Lokalise/LanguageManager-iOS-Lokalise-Info.plist"; 502 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 503 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 504 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 505 | MODULEMAP_FILE = "Target Support Files/LanguageManager-iOS-Lokalise/LanguageManager-iOS-Lokalise.modulemap"; 506 | PRODUCT_MODULE_NAME = LanguageManager_iOS_Lokalise; 507 | PRODUCT_NAME = LanguageManager_iOS_Lokalise; 508 | SDKROOT = iphoneos; 509 | SKIP_INSTALL = YES; 510 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 511 | SWIFT_VERSION = 5.0; 512 | TARGETED_DEVICE_FAMILY = "1,2"; 513 | VALIDATE_PRODUCT = YES; 514 | VERSIONING_SYSTEM = "apple-generic"; 515 | VERSION_INFO_PREFIX = ""; 516 | }; 517 | name = Release; 518 | }; 519 | 7924778F180A013F9E9B658D668A3CD2 /* Debug */ = { 520 | isa = XCBuildConfiguration; 521 | baseConfigurationReference = EDCD6A3B9EEB30665EC4D85013388B82 /* Pods-LanguageManager-iOS-Lokalise_Example.debug.xcconfig */; 522 | buildSettings = { 523 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 524 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 525 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 526 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 527 | CURRENT_PROJECT_VERSION = 1; 528 | DEFINES_MODULE = YES; 529 | DYLIB_COMPATIBILITY_VERSION = 1; 530 | DYLIB_CURRENT_VERSION = 1; 531 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 532 | INFOPLIST_FILE = "Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example-Info.plist"; 533 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 534 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 535 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 536 | MACH_O_TYPE = staticlib; 537 | MODULEMAP_FILE = "Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example.modulemap"; 538 | OTHER_LDFLAGS = ""; 539 | OTHER_LIBTOOLFLAGS = ""; 540 | PODS_ROOT = "$(SRCROOT)"; 541 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 542 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 543 | SDKROOT = iphoneos; 544 | SKIP_INSTALL = YES; 545 | TARGETED_DEVICE_FAMILY = "1,2"; 546 | VERSIONING_SYSTEM = "apple-generic"; 547 | VERSION_INFO_PREFIX = ""; 548 | }; 549 | name = Debug; 550 | }; 551 | 79759604D78320E712558F49DF19AA9F /* Debug */ = { 552 | isa = XCBuildConfiguration; 553 | buildSettings = { 554 | ALWAYS_SEARCH_USER_PATHS = NO; 555 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; 556 | CLANG_ANALYZER_NONNULL = YES; 557 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 558 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 559 | CLANG_CXX_LIBRARY = "libc++"; 560 | CLANG_ENABLE_MODULES = YES; 561 | CLANG_ENABLE_OBJC_ARC = YES; 562 | CLANG_ENABLE_OBJC_WEAK = YES; 563 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 564 | CLANG_WARN_BOOL_CONVERSION = YES; 565 | CLANG_WARN_COMMA = YES; 566 | CLANG_WARN_CONSTANT_CONVERSION = YES; 567 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 568 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 569 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 570 | CLANG_WARN_EMPTY_BODY = YES; 571 | CLANG_WARN_ENUM_CONVERSION = YES; 572 | CLANG_WARN_INFINITE_RECURSION = YES; 573 | CLANG_WARN_INT_CONVERSION = YES; 574 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 575 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 576 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 577 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 578 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 579 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 580 | CLANG_WARN_STRICT_PROTOTYPES = YES; 581 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 582 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 583 | CLANG_WARN_UNREACHABLE_CODE = YES; 584 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 585 | COPY_PHASE_STRIP = NO; 586 | DEBUG_INFORMATION_FORMAT = dwarf; 587 | ENABLE_STRICT_OBJC_MSGSEND = YES; 588 | ENABLE_TESTABILITY = YES; 589 | EXCLUDED_ARCHS = arm64; 590 | GCC_C_LANGUAGE_STANDARD = gnu11; 591 | GCC_DYNAMIC_NO_PIC = NO; 592 | GCC_NO_COMMON_BLOCKS = YES; 593 | GCC_OPTIMIZATION_LEVEL = 0; 594 | GCC_PREPROCESSOR_DEFINITIONS = ( 595 | "POD_CONFIGURATION_DEBUG=1", 596 | "DEBUG=1", 597 | "$(inherited)", 598 | ); 599 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 600 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 601 | GCC_WARN_UNDECLARED_SELECTOR = YES; 602 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 603 | GCC_WARN_UNUSED_FUNCTION = YES; 604 | GCC_WARN_UNUSED_VARIABLE = YES; 605 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 606 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 607 | MTL_FAST_MATH = YES; 608 | ONLY_ACTIVE_ARCH = YES; 609 | PRODUCT_NAME = "$(TARGET_NAME)"; 610 | STRIP_INSTALLED_PRODUCT = NO; 611 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 612 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 613 | SWIFT_VERSION = 5.0; 614 | SYMROOT = "${SRCROOT}/../build"; 615 | }; 616 | name = Debug; 617 | }; 618 | 7C7600F7EA8CC03DCBAAD227A6F8DBD2 /* Debug */ = { 619 | isa = XCBuildConfiguration; 620 | baseConfigurationReference = C704C4C16D2F19AAD7D3FC379B2B28EF /* Lokalise.debug.xcconfig */; 621 | buildSettings = { 622 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 623 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 624 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 625 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 626 | SDKROOT = iphoneos; 627 | TARGETED_DEVICE_FAMILY = "1,2"; 628 | }; 629 | name = Debug; 630 | }; 631 | BBAF6F8F82C21E6494AD928C40D26E2C /* Release */ = { 632 | isa = XCBuildConfiguration; 633 | baseConfigurationReference = 7F0ACF2B98EDC7E37F334B25A36C6BA7 /* Lokalise.release.xcconfig */; 634 | buildSettings = { 635 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 636 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 637 | IPHONEOS_DEPLOYMENT_TARGET = 9.0; 638 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 639 | SDKROOT = iphoneos; 640 | TARGETED_DEVICE_FAMILY = "1,2"; 641 | VALIDATE_PRODUCT = YES; 642 | }; 643 | name = Release; 644 | }; 645 | EAE2BEBBC0E19B5F44105A687D61AFD5 /* Release */ = { 646 | isa = XCBuildConfiguration; 647 | baseConfigurationReference = A757ABF2A42AFA1C43F03A0EF35B262D /* Pods-LanguageManager-iOS-Lokalise_Example.release.xcconfig */; 648 | buildSettings = { 649 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 650 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 651 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 652 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 653 | CURRENT_PROJECT_VERSION = 1; 654 | DEFINES_MODULE = YES; 655 | DYLIB_COMPATIBILITY_VERSION = 1; 656 | DYLIB_CURRENT_VERSION = 1; 657 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 658 | INFOPLIST_FILE = "Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example-Info.plist"; 659 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 660 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 661 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 662 | MACH_O_TYPE = staticlib; 663 | MODULEMAP_FILE = "Target Support Files/Pods-LanguageManager-iOS-Lokalise_Example/Pods-LanguageManager-iOS-Lokalise_Example.modulemap"; 664 | OTHER_LDFLAGS = ""; 665 | OTHER_LIBTOOLFLAGS = ""; 666 | PODS_ROOT = "$(SRCROOT)"; 667 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 668 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 669 | SDKROOT = iphoneos; 670 | SKIP_INSTALL = YES; 671 | TARGETED_DEVICE_FAMILY = "1,2"; 672 | VALIDATE_PRODUCT = YES; 673 | VERSIONING_SYSTEM = "apple-generic"; 674 | VERSION_INFO_PREFIX = ""; 675 | }; 676 | name = Release; 677 | }; 678 | /* End XCBuildConfiguration section */ 679 | 680 | /* Begin XCConfigurationList section */ 681 | 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { 682 | isa = XCConfigurationList; 683 | buildConfigurations = ( 684 | 79759604D78320E712558F49DF19AA9F /* Debug */, 685 | 431BA2B8298F0EE71735B9E0114E1955 /* Release */, 686 | ); 687 | defaultConfigurationIsVisible = 0; 688 | defaultConfigurationName = Release; 689 | }; 690 | 9E904FA6943811AE0BC46D25AAC257A5 /* Build configuration list for PBXAggregateTarget "Lokalise" */ = { 691 | isa = XCConfigurationList; 692 | buildConfigurations = ( 693 | 7C7600F7EA8CC03DCBAAD227A6F8DBD2 /* Debug */, 694 | BBAF6F8F82C21E6494AD928C40D26E2C /* Release */, 695 | ); 696 | defaultConfigurationIsVisible = 0; 697 | defaultConfigurationName = Release; 698 | }; 699 | DB8EC636087F98984F1364D34FB8C195 /* Build configuration list for PBXNativeTarget "LanguageManager-iOS-Lokalise" */ = { 700 | isa = XCConfigurationList; 701 | buildConfigurations = ( 702 | 012331D908ED344F48984BD34234F7DA /* Debug */, 703 | 71644963916416E691BB429FEDA6E093 /* Release */, 704 | ); 705 | defaultConfigurationIsVisible = 0; 706 | defaultConfigurationName = Release; 707 | }; 708 | ED6EE77289B5C3C74A1199C583F1FD69 /* Build configuration list for PBXNativeTarget "Pods-LanguageManager-iOS-Lokalise_Example" */ = { 709 | isa = XCConfigurationList; 710 | buildConfigurations = ( 711 | 7924778F180A013F9E9B658D668A3CD2 /* Debug */, 712 | EAE2BEBBC0E19B5F44105A687D61AFD5 /* Release */, 713 | ); 714 | defaultConfigurationIsVisible = 0; 715 | defaultConfigurationName = Release; 716 | }; 717 | /* End XCConfigurationList section */ 718 | }; 719 | rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; 720 | } 721 | --------------------------------------------------------------------------------