feat: INJECTION !!

PYZULE FINALLY DOESNT SUCK!
This commit is contained in:
zx
2024-09-03 00:13:00 -04:00
parent 8c4d35f568
commit 5fe28ee86c
218 changed files with 7414 additions and 19 deletions

View File

@@ -3,5 +3,5 @@ indent-width = 2
target-version = "py312"
[lint]
select = ["W", "E", "F", "C"]
select = ["W", "E", "F"]

Binary file not shown.

View File

@@ -0,0 +1,8 @@
#import "HBOutputForShellCommand.h"
#import "HBPreferences.h"
#import "HBRespringController.h"
#import "NSDictionary+HBAdditions.h"
#import "NSLayoutConstraint+CompactConstraint.h"
#import "NSString+HBAdditions.h"
#import "UIColor+HBAdditions.h"
#import "UIView+CompactConstraint.h"

View File

@@ -0,0 +1,19 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
/// Executes a shell command and returns its output.
///
/// @param command The shell command to run.
/// @param returnCode A pointer to an integer that will contain the return code of the command.
/// @return The output of the provided command.
FOUNDATION_EXPORT NSString * _Nullable HBOutputForShellCommandWithReturnCode(NSString *command, int *returnCode);
/// Executes a shell command and returns its output.
///
/// @param command The shell command to run.
/// @return The output of the provided command, or nil if the command returned with a code other
/// than 0.
FOUNDATION_EXPORT NSString * _Nullable HBOutputForShellCommand(NSString *command);
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,529 @@
#import <Foundation/Foundation.h>
#import <CoreGraphics/CoreGraphics.h>
NS_ASSUME_NONNULL_BEGIN
typedef void (^HBPreferencesChangeCallback)(void);
typedef void (^HBPreferencesValueChangeCallback)(NSString *key, id<NSCopying> _Nullable value);
/// The HBPreferences class in Cephei provides an interface for managing user-defined
/// preferences of a tweak, and the default values used when the user has not yet changed a value.
///
/// `HBPreferences` is very similar to `NSUserDefaults`, however it is specifically tailored to iOS
/// tweak development, since tweaks may be loaded into a sandboxed process (most obviously, App
/// Store apps, but also system apps like Safari), or one that runs as the `root` user (for
/// instance, iFile, although these apps are slowly changing their model so they now run as mobile).
/// In both of these cases, using `NSUserDefaults` will result in reading from preferences inside
/// the sandbox, or inside `root`’s home directory; both of which are not what is expected.
///
/// Advantages `HBPreferences` has over `NSUserDefaults` are:
///
/// - Directly reading the property list from the `mobile` user’s home directory, to support
/// sandboxed apps and apps running as `root`.
/// - Intuitive method of setting a default preference value.
/// - Updating of the app/tweak’s variables when preferences are changed.
/// - Keyed subscripting is allowed, which enables simple array syntax.
/// - Values in the preferences plist are called preferences, not defaults, to avoid ambiguity -
/// `NSUserDefaults` uses “defaults” to refer to both preferences themselves and the fallback values
/// if a key doesn’t exist.
///
/// Ensure you read the discussion for `-registerObject:default:forKey:` before using the automatic
/// updating mechanism. `-objectForKey:` does not update as another process updates the preferences
/// on iOS 7 or older; if you need to support older iOS versions, use the registration methods
/// instead.
///
/// As of Cephei 1.17, HBPreferences supports Key-Value Observation. As such, you may subscribe to
/// changes made to preferences through observer callbacks. The `-registerPreferenceChangeBlock:`
/// and `-registerPreferenceChangeBlockForKey:block:` methods are provided to subscribe to
/// preference changes via a callback block since Cephei 1.3, and you can additionally observe
/// `HBPreferencesDidChangeNotification`.
///
/// ### Example usage
/// In Objective-C/Logos:
///
/// ```logos
/// HBPreferences *preferences;
/// BOOL doThing;
///
/// %ctor {
/// preferences = [[HBPreferences alloc] initWithIdentifier:@"ws.hbang.common.demo"];
/// [preferences registerDefaults:@{
/// @"Enabled": @YES,
/// @"AnotherSetting": @1.f
/// }];
///
/// [preferences registerBool:&doThing default:NO forKey:@"DoThing"];
///
/// NSLog(@"Am I enabled? %i", [preferences boolForKey:@"Enabled"]);
/// NSLog(@"Can I do thing? %i", doThing);
/// }
/// ```
///
/// In Swift:
///
/// ```swift
/// class Preferences {
///
/// private let preferences = HBPreferences(identifier: "ws.hbang.common.demo")
///
/// // Example using registration method
/// private(set) var canDoThing: ObjCBool = false
///
/// // Example using custom getter and setter
/// var anotherSetting: Int {
/// get { preferences["AnotherSetting"] as? Int ?? -1 }
/// set { preferences["AnotherSetting"] = newValue }
/// }
///
/// // Example using KVO observation
/// private var doThingObserver: NSKeyValueObserving?
///
/// init() {
/// preferences.register(defaults: [
/// "Enabled": true,
/// "AnotherSetting": 1
/// ])
///
/// preferences.register(&canDoThing, default: false, forKey: "DoThing")
///
/// print("Am I enabled? \(preferences["Enabled"] as? Bool ?? false)")
/// print("Can I do thing? \(canDoThing)")
/// }
///
/// }
/// ```
///
/// ### References
/// * [NSUserDefaults in Practice](http://dscoder.com/defaults.html)
///
/// ### Security
/// As of Cephei 1.12, HBPreferences restricts most Apple preferences (identifiers starting with
/// `com.apple.…`) from being read/written from a sandboxed process. This protects against a
/// malicious app using HBPreferences as a way to gather sensitive information or change system
/// preferences without the user’s knowledge. For instance, an App Store app could
/// [phish for the user’s Apple ID login](https://krausefx.com/blog/ios-privacy-stealpassword-easily-get-the-users-apple-id-password-just-by-asking),
/// creating a very real-looking login prompt by pre-filling their email address in the username box,
/// or gain access to the numbers/email addresses of people the user has recently contacted.
///
/// There is currently no way to avoid this restriction while still using HBPreferences. If you need
/// access to Apple preferences, design your code to not need to do this from within the sandbox.
/// This could be done [using IPC](http://iphonedevwiki.net/index.php/IPC) from an unsandboxed
/// process such as SpringBoard. Avoid sending sensitive information via IPC to sandboxed apps, as
/// they can still get access to data you send through various ways.
@interface HBPreferences : NSObject
/// @name Initializing an HBPreferences Object
/// Creates an instance of the class for the specified identifier.
///
/// @param identifier The identifier to be used. This is usually the same as the package identifier
/// of the tweak.
/// @return An autoreleased instance of HBPreferences for the specified identifier.
+ (instancetype)preferencesForIdentifier:(NSString *)identifier NS_SWIFT_UNAVAILABLE("");
/// Initializes an instance of the class for the specified identifier.
///
/// @param identifier The identifier to be used. This is usually the same as the package identifier
/// of the tweak.
/// @return An autoreleased instance of HBPreferences for the specified identifier.
- (instancetype)initWithIdentifier:(NSString *)identifier NS_DESIGNATED_INITIALIZER;
/// The preferences identifier provided at initialisation.
@property (nonatomic, retain, readonly) NSString *identifier;
/// @name Synchronizing Preferences
/// Synchronizes preferences data to prevent race conditions.
///
/// On iOS 8.0 and later, waits until all communications between the `cfprefsd` daemon and the
/// current process have completed, preventing race conditions and guaranteeing no data will be
/// lost. Prior to iOS 8.0, writes all pending changes to disk, and reads latest preferences from
/// disk.
///
/// Deprecated. On iOS 12.0 and later, synchronization is
/// [no longer required](https://developer.apple.com/documentation/ios-ipados-release-notes/foundation-release-notes#UserDefaults).
/// The underlying CFPreferencesSynchronize() function simply returns `YES`.
///
/// For earlier iOS releases, do not use this method directly unless you have a specific need.
/// HBPreferences will synchronize automatically when needed. For further information on what this
/// method does and when to use it, refer to
/// [NSUserDefaults in Practice](http://dscoder.com/defaults.html) § “Sharing Defaults Between
/// Programs”.
///
/// @return `YES` if synchronization was successful, `NO` if an error occurred.
- (BOOL)synchronize API_DEPRECATED("Synchronization is no longer required as of iOS 12", ios(5.0, 12.0));
/// @name Registering Default Preference Values
/// The default preferences to be used when no value has been set by the user.
///
/// You may modify the values of this dictionary directly.
@property (nonatomic, copy, readonly) NSMutableDictionary <NSString *, id> *defaults;
/// Adds the contents of the specified dictionary to the defaults property.
///
/// Merges the provided dictionary with the mutable dictionary found on the defaults property.
///
/// @param defaultValues The dictionary of keys and values you want to register.
/// @see `defaults`
- (void)registerDefaults:(NSDictionary <NSString *, id> *)defaultValues NS_SWIFT_NAME(register(defaults:));
/// @name Getting Preference Values
/// Returns a dictionary that contains all preferences that are set.
///
/// This does not include default values.
///
/// @return A dictionary containing all keys and values.
- (NSDictionary <NSString *, id> *)dictionaryRepresentation;
/// Returns the object associated with the specified key.
///
/// If the preference is not yet set, returns the default. If no default is set, returns `nil`.
///
/// @param key The key for which to return the corresponding value.
/// @return The object associated with the specified key.
/// @warning You must manually synchronize preferences or use `-registerObject:default:forKey:` for
/// this value to be updated when running on iOS 7 or older.
- (id)objectForKey:(NSString *)key;
/// Returns the integer value associated with the specified key.
///
/// If the preference is not yet set, returns the default. If no default is set, returns `nil`.
///
/// @param key The key for which to return the corresponding value.
/// @return The integer value associated with the specified key.
/// @see `-objectForKey:`
- (NSInteger)integerForKey:(NSString *)key;
/// Returns the unsigned integer value associated with the specified key.
///
/// If the preference is not yet set, returns the default. If no default is set, returns `nil`.
///
/// @param key The key for which to return the corresponding value.
/// @return The unsigned integer value associated with the specified key.
/// @see `-objectForKey:`
- (NSUInteger)unsignedIntegerForKey:(NSString *)key;
/// Returns the floating-point value associated with the specified key.
///
/// If the preference is not yet set, returns the default. If no default is set, returns `nil`.
///
/// @param key The key for which to return the corresponding value.
/// @return The floating-point value associated with the specified key.
/// @see `-objectForKey:`
- (CGFloat)floatForKey:(NSString *)key;
/// Returns the double value associated with the specified key.
///
/// If the preference is not yet set, returns the default. If no default is set, returns `nil`.
///
/// @param key The key for which to return the corresponding value.
/// @return The double value associated with the specified key.
/// @see `-objectForKey:`
- (double)doubleForKey:(NSString *)key;
/// Returns the Boolean value associated with the specified key.
///
/// If the preference is not yet set, returns the default. If no default is set, returns `nil`.
///
/// @param key The key for which to return the corresponding value.
/// @return The Boolean value associated with the specified key.
/// @see `-objectForKey:`
- (BOOL)boolForKey:(NSString *)key;
/// Returns the value associated with a given key.
///
/// This method behaves the same as `-objectForKey:`, and enables the preferences object to be used
/// with a subscript (square brackets). For example:
///
/// Objective-C:
///
/// ```objc
/// NSString *fooBar = preferences[@"FooBar"];
/// preferences[@"Awesome"] = @YES;
/// ```
///
/// Swift:
///
/// ```swift
/// let fooBar = preferences["FooBar"] as? String
/// preferences["Awesome"] = true
/// ```
///
/// @param key The key for which to return the corresponding value.
/// @return The value associated with the specified key.
/// @see `-objectForKey:`
- (id)objectForKeyedSubscript:(id)key;
/// Returns the object associated with the specified key, or if no user preference is set, the
/// provided default.
///
/// @param key The key for which to return the corresponding value.
/// @param defaultValue The default value to use when no user preference is set.
/// @return The object associated with the specified key, or the default value.
- (id)objectForKey:(NSString *)key default:(nullable id)defaultValue;
/// Returns the integer value associated with the specified key, or if no user preference is set,
/// the provided default.
///
/// @param key The key for which to return the corresponding value.
/// @param defaultValue The default value to use when no user preference is set.
/// @return The integer value associated with the specified key, or the default value.
/// @see `-objectForKey:default:`
- (NSInteger)integerForKey:(NSString *)key default:(NSInteger)defaultValue;
/// Returns the unsigned integer value associated with the specified key, or if no user preference
/// is set, the provided default.
///
/// @param key The key for which to return the corresponding value.
/// @param defaultValue The default value to use when no user preference is set.
/// @return The unsigned integer value associated with the specified key, or the default value.
/// @see `-objectForKey:default:`
- (NSUInteger)unsignedIntegerForKey:(NSString *)key default:(NSUInteger)defaultValue;
/// Returns the floating-point value associated with the specified key, or if no user preference is
/// set, the provided default.
///
/// @param key The key for which to return the corresponding value.
/// @param defaultValue The default value to use when no user preference is set.
/// @return The floating-point value associated with the specified key, or the default value.
/// @see `-objectForKey:default:`
- (CGFloat)floatForKey:(NSString *)key default:(CGFloat)defaultValue;
/// Returns the double value associated with the specified key, or if no user preference is set,
/// the provided default.
///
/// @param key The key for which to return the corresponding value.
/// @param defaultValue The default value to use when no user preference is set.
/// @return The double value associated with the specified key, or the default value.
/// @see `-objectForKey:default:`
- (double)doubleForKey:(NSString *)key default:(double)defaultValue;
/// Returns the Boolean value associated with the specified key, or if no user preference is set,
/// the provided default.
///
/// @param key The key for which to return the corresponding value.
/// @param defaultValue The default value to use when no user preference is set.
/// @return The Boolean value associated with the specified key, or the default value.
/// @see `-objectForKey:default:`
- (BOOL)boolForKey:(NSString *)key default:(BOOL)defaultValue;
/// @name Setting Preference Values
/// Sets the value of the specified key.
///
/// You should only call these methods if you are certain that the process is running as the
/// `mobile` user.
///
/// @param value The object to store in the preferences.
/// @param key The key with which to associate with the value.
/// @exception HBPreferencesNotMobileException Thrown when the method is called by a process not
/// running as the `mobile` user.
- (void)setObject:(nullable id)value forKey:(NSString *)key NS_SWIFT_NAME(set(_:forKey:));
/// Sets the value of the specified key to the specified integer value.
///
/// This is a convenience method that calls `-setObject:forKey:`. See the discussion of that method
/// for more details.
///
/// @param value The integer value to store in the preferences.
/// @param key The key with which to associate with the value.
/// @see `-setObject:forKey:`
- (void)setInteger:(NSInteger)value forKey:(NSString *)key NS_SWIFT_NAME(set(_:forKey:));
/// Sets the value of the specified key to the specified unsigned integer value.
///
/// This is a convenience method that calls `-setObject:forKey:`. See the discussion of that method
/// for more details.
///
/// @param value The unsigned integer value to store in the preferences.
/// @param key The key with which to associate with the value.
/// @see `-setObject:forKey:`
- (void)setUnsignedInteger:(NSUInteger)value forKey:(NSString *)key NS_SWIFT_NAME(set(_:forKey:));
/// Sets the value of the specified key to the specified floating-point value.
///
/// This is a convenience method that calls `-setObject:forKey:`. See the discussion of that method
/// for more details.
///
/// @param value The floating-point value to store in the preferences.
/// @param key The key with which to associate with the value.
/// @see `-setObject:forKey:`
- (void)setFloat:(CGFloat)value forKey:(NSString *)key NS_SWIFT_NAME(set(_:forKey:));
/// Sets the value of the specified key to the specified double value.
///
/// This is a convenience method that calls `-setObject:forKey:`. See the discussion of that method
/// for more details.
///
/// @param value The double value to store in the preferences.
/// @param key The key with which to associate with the value.
/// @see `-setObject:forKey:`
- (void)setDouble:(double)value forKey:(NSString *)key NS_SWIFT_NAME(set(_:forKey:));
/// Sets the value of the specified key to the specified Boolean value.
///
/// This is a convenience method that calls `-setObject:forKey:`. See the discussion of that method
/// for more details.
///
/// @param value The Boolean value to store in the preferences.
/// @param key The key with which to associate with the value.
/// @see `-setObject:forKey:`
- (void)setBool:(BOOL)value forKey:(NSString *)key NS_SWIFT_NAME(set(_:forKey:));
/// Sets the value of the specified key to the specified value.
///
/// This method behaves the same as `-setObject:forKey:`, and enables the preferences object to be
/// used with a subscript (square brackets). For example:
///
/// ```objc
/// NSString *fooBar = preferences[@"FooBar"];
/// preferences[@"Awesome"] = @YES;
/// ```
///
/// @param object The value to store in the preferences.
/// @param key The key with which to associate with the value.
- (void)setObject:(nullable id)object forKeyedSubscript:(id)key;
/// @name Removing Preference Values
/// Removes a given key and its associated value from the dictionary.
///
/// @param key The key to remove.
- (void)removeObjectForKey:(NSString *)key NS_SWIFT_NAME(removeValue(forKey:));
/// Removes all stored preferences.
///
/// This method acts in the same way as discussed in `-removeObjectForKey:`.
- (void)removeAllObjects NS_SWIFT_NAME(removeAll());
/// @name Registering Variables
/// Register an object to be automatically set to the user’s preference.
///
/// If the preference is not yet set, the object will be set to the provided default.
///
/// You must post a Darwin notification after updating preferences for this to work. In particular,
/// it must be set to the value of identifier, followed by `/ReloadPrefs` - for instance,
/// `ws.hbang.common.demo/ReloadPrefs`. In a Preferences specifier property list, you can use the
/// `PostNotification` key on your specifiers to achieve this:
///
/// ```xml
/// <dict>
/// …
/// <key>PostNotification</key>
/// <string>ws.hbang.common.demo/ReloadPrefs</string>
/// </dict>
/// ```
///
/// @param object The pointer to the object.
/// @param defaultValue The default value to be used if no user preference is set.
/// @param key The key in the preferences property list.
/// @see `-registerObject:default:forKey:`
- (void)registerObject:(_Nullable id __strong * _Nonnull)object default:(nullable id)defaultValue forKey:(NSString *)key NS_SWIFT_NAME(register(_:default:forKey:));
/// Register an integer value to be automatically set to the user’s preference.
///
/// If the preference is not yet set, the object will be set to the provided default.
///
/// @param object The pointer to the integer.
/// @param defaultValue The default value to be used if no user preference is set.
/// @param key The key in the preferences property list.
/// @see `-registerObject:default:forKey:`
- (void)registerInteger:(NSInteger *)object default:(NSInteger)defaultValue forKey:(NSString *)key NS_SWIFT_NAME(register(_:default:forKey:));
/// Register an unsigned integer value to be automatically set to the user’s preference.
///
/// If the preference is not yet set, the object will be set to the provided default.
///
/// @param object The pointer to the unsigned integer.
/// @param defaultValue The default value to be used if no user preference is set.
/// @param key The key in the preferences property list.
/// @see `-registerObject:default:forKey:`
- (void)registerUnsignedInteger:(NSUInteger *)object default:(NSUInteger)defaultValue forKey:(NSString *)key NS_SWIFT_NAME(register(_:default:forKey:));
/// Register a floating-point value to be automatically set to the user’s preference.
///
/// If the preference is not yet set, the object will be set to the provided default.
///
/// @param object The pointer to the integer.
/// @param defaultValue The default value to be used if no user preference is set.
/// @param key The key in the preferences property list.
/// @see `-registerObject:default:forKey:`
- (void)registerFloat:(CGFloat *)object default:(CGFloat)defaultValue forKey:(NSString *)key NS_SWIFT_NAME(register(_:default:forKey:));
/// Register a double value to be automatically set to the user’s preference.
///
/// If the preference is not yet set, the object will be set to the provided default.
///
/// @param object The pointer to the double.
/// @param defaultValue The default value to be used if no user preference is set.
/// @param key The key in the preferences property list.
/// @see `-registerObject:default:forKey:`
- (void)registerDouble:(double *)object default:(double)defaultValue forKey:(NSString *)key NS_SWIFT_NAME(register(_:default:forKey:));
/// Register a Boolean value to be automatically set to the user’s preference.
///
/// If the preference is not yet set, the object will be set to the provided default.
///
/// @param object The pointer to the Boolean.
/// @param defaultValue The default value to be used if no user preference is set.
/// @param key The key in the preferences property list.
/// @see `-registerObject:default:forKey:`
- (void)registerBool:(BOOL *)object default:(BOOL)defaultValue forKey:(NSString *)key NS_SWIFT_NAME(register(_:default:forKey:));
/// @name Preference Change Callbacks
/// Register a block to be called when a preference change is detected.
///
/// Blocks are called after HBPreferences’ cache of values is updated. The block will also be called
/// immediately after calling this method. See `registerObject:default:forKey:` for details on how
/// to set up callbacks.
///
/// @param callback A block object called when the specified key’s value changes. The block object
/// takes no parameters and returns no value.
/// @see `-registerObject:default:forKey:`
- (void)registerPreferenceChangeBlock:(HBPreferencesChangeCallback)callback;
/// Register a block to be called when a specific preference is changed.
///
/// Blocks are called after HBPreferences’ cache of values is updated. The block will also be called
/// immediately after calling this method. See `registerObject:default:forKey:` for details on how
/// to set up callbacks.
///
/// @param key The key to listen for.
/// @param callback A block object called when the specified key’s value changes. The block object’s
/// parameters are the key and its new value.
/// @see `-registerObject:default:forKey:`
- (void)registerPreferenceChangeBlockForKey:(NSString *)key block:(HBPreferencesValueChangeCallback)callback;
/// Register a block to be called when a specific preference is changed.
///
/// Blocks are called after HBPreferences’ cache of values is updated. The block will also be called
/// immediately after calling this method. See `-registerObject:default:forKey:` for details on how
/// to set up callbacks.
///
/// Deprecated. This method signature changed in Cephei 1.17 to better support the order of
/// arguments preferred by Swift closure syntax. Use `-registerPreferenceChangeBlockForKey:block:`
/// instead.
///
/// @param callback A block object called when the specified key’s value changes. The block object’s
/// parameters are the key and its new value.
/// @param key The key to listen for.
/// @see `-registerPreferenceChangeBlockForKey:block:`
/// @see `-registerObject:default:forKey:`
- (void)registerPreferenceChangeBlock:(HBPreferencesValueChangeCallback)callback forKey:(NSString *)key __attribute((deprecated("Use registerPreferenceChangeBlockForKey:block: instead.")));
@end
/// Name of an exception that occurs when attempting to set preferences from a process not running
/// as the `mobile` user.
extern NSExceptionName const HBPreferencesNotMobileException NS_SWIFT_NAME(HBPreferences.notMobileException);
/// This notification is posted when a change is made to a registered preferences identifier. The
/// notification object is the associated HBPreferences object.
extern NSNotificationName const HBPreferencesDidChangeNotification NS_SWIFT_NAME(HBPreferences.didChangeNotification);
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,26 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
/// The HBRespringController class in Cephei provides conveniences for restarting the system app
/// (usually SpringBoard). It also ensures battery usage statistics are not lost when performing the
/// restart.
@interface HBRespringController : NSObject
/// Restart the system app.
///
/// On iOS 8.0 and newer, fades out and then returns to the home screen (system remains unlocked).
/// On older iOS versions, a standard restart occurs.
+ (void)respring;
/// Restart the system app and immediately launch a URL.
///
/// Requires iOS 8.0 or newer. On older iOS versions, a standard restart occurs and the URL is not
/// opened.
///
/// @param returnURL The URL to launch after restarting.
+ (void)respringAndReturnTo:(nullable NSURL *)returnURL;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,20 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
/// NSDictionary (HBAdditions) is a class category in Cephei that provides some convenience methods.
@interface NSDictionary (HBAdditions)
/// Constructs and returns an NSString object that is the result of joining the dictionary keys and
/// values into an HTTP query string.
///
/// On iOS 8.0 and newer, this uses the built in NSURLComponents functionality to deserialize the
/// query string. On earlier versions, uses an approximation implemented within Cephei. This
/// implementation is simplistic and does not handle edge cases that NSURLComponents does support.
///
/// @return An NSString containing an HTTP query string.
- (NSString *)hb_queryString;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,34 @@
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
/// NSString (HBAdditions) is a class category in Cephei that provides some convenience methods.
@interface NSString (HBAdditions)
/// Returns a string encoded for an HTTP query parameter.
///
/// This method encodes a variety of symbols that can conflict with other portions of a URL, such as
/// `&` and `=`, and other similar symbols that could otherwise be misinterpreted by some
/// implementations.
///
/// @return A string encoded for an HTTP query parameter.
- (NSString *)hb_stringByEncodingQueryPercentEscapes;
/// Returns a string decoded from an HTTP query parameter.
///
/// This method decodes percent escapes, as well as spaces encoded with a `+`.
///
/// @return A string decoded from an HTTP query parameter.
- (NSString *)hb_stringByDecodingQueryPercentEscapes;
/// Returns a dictionary containing the HTTP query parameters in the string.
///
/// The string is expected to be in the format `key=value&key=value`, with both keys and values
/// encoded where necessary.
///
/// @return An NSDictionary object containing the keys and values from the query string.
- (NSDictionary *)hb_queryStringComponents;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>Cephei</string>
<key>CFBundleIdentifier</key>
<string>ws.hbang.common</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Cephei</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>DTPlatformName</key>
<string>iphoneos</string>
<key>HBPackageIdentifier</key>
<string>ws.hbang.common</string>
</dict>
</plist>

Binary file not shown.

View File

@@ -0,0 +1,144 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
<key>condensed</key>
<true/>
<key>headerCellClass</key>
<string>HBPackageNameHeaderCell</string>
<key>icon</key>
<string>icon.png</string>
<key>packageIdentifier</key>
<string>ws.hbang.common</string>
<key>packageNameOverride</key>
<string>Cephei</string>
<key>titleColor</key>
<string>#ffffff</string>
<key>subtitleColor</key>
<string>#aaaaaa</string>
</dict>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
</dict>
<dict>
<key>big</key>
<true/>
<key>cellClass</key>
<string>HBLinkTableCell</string>
<key>height</key>
<integer>64</integer>
<key>label</key>
<string>HASHBANG Productions</string>
<key>subtitle</key>
<string>VISIT_WEBSITE</string>
<key>url</key>
<string>https://hashbang.productions/</string>
<key>iconURL</key>
<string>https://hashbang.productions/favicon.ico</string>
</dict>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
<key>label</key>
<string>Follow Us</string>
</dict>
<dict>
<key>cellClass</key>
<string>HBTwitterCell</string>
<key>label</key>
<string>HASHBANG Productions</string>
<key>user</key>
<string>hashbang</string>
<key>userID</key>
<string>945654024</string>
</dict>
<dict>
<key>cellClass</key>
<string>HBTwitterCell</string>
<key>label</key>
<string>Chariz</string>
<key>user</key>
<string>CharizTeam</string>
<key>userID</key>
<string>3066301983</string>
</dict>
<dict>
<key>cellClass</key>
<string>HBTwitterCell</string>
<key>label</key>
<string>Adam Demasi</string>
<key>user</key>
<string>hbkirb</string>
<key>userID</key>
<string>103767197</string>
</dict>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
<key>footerText</key>
<string>DONATE_FOOTER</string>
</dict>
<dict>
<key>action</key>
<string>hb_sendSupportEmail</string>
<key>cell</key>
<string>PSLinkCell</string>
<key>cellClass</key>
<string>HBTintedTableCell</string>
<key>defaults</key>
<string>ws.hbang.common</string>
<key>label</key>
<string>EMAIL_SUPPORT</string>
<key>iconImageSystem</key>
<dict>
<key>name</key>
<string>envelope</string>
<key>backgroundColor</key>
<string>#007aff</string>
</dict>
</dict>
<dict>
<key>cell</key>
<string>PSButtonCell</string>
<key>cellClass</key>
<string>HBLinkTableCell</string>
<key>label</key>
<string>TRANSLATORS</string>
<key>url</key>
<string>https://hashbang.productions/translations/</string>
<key>iconImageSystem</key>
<dict>
<key>name</key>
<string>globe</string>
<key>backgroundColor</key>
<string>#34c759</string>
</dict>
</dict>
<dict>
<key>cell</key>
<string>PSButtonCell</string>
<key>cellClass</key>
<string>HBLinkTableCell</string>
<key>label</key>
<string>DONATE</string>
<key>url</key>
<string>https://hashbang.productions/donate/</string>
<key>iconImageSystem</key>
<dict>
<key>name</key>
<string>heart</string>
<key>backgroundColor</key>
<string>#ff3b30</string>
</dict>
</dict>
</array>
<key>title</key>
<string>ABOUT</string>
</dict>
</plist>

View File

@@ -0,0 +1,422 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
<key>headerCellClass</key>
<string>HBPackageNameHeaderCell</string>
<key>icon</key>
<string>icon.png</string>
<key>packageIdentifier</key>
<string>ws.hbang.common</string>
<key>packageNameOverride</key>
<string>Cephei</string>
<key>titleColor</key>
<string>#ffffff</string>
<key>subtitleColor</key>
<string>#aaaaaa</string>
<key>footerText</key>
<string>This is a demo of Cephei features. Refer to https://hbang.github.io/libcephei/ for further details.</string>
</dict>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
</dict>
<dict>
<key>cell</key>
<string>PSSwitchCell</string>
<key>default</key>
<true/>
<key>defaults</key>
<string>ws.hbang.common.demo</string>
<key>key</key>
<string>Switch</string>
<key>label</key>
<string>Awesome</string>
<key>iconImageSystem</key>
<dict>
<key>name</key>
<string>switch.2</string>
</dict>
</dict>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
</dict>
<dict>
<key>cell</key>
<string>PSLinkListCell</string>
<key>default</key>
<integer>0</integer>
<key>defaults</key>
<string>ws.hbang.common.demo</string>
<key>detail</key>
<string>PSListItemsController</string>
<key>key</key>
<string>Region</string>
<key>label</key>
<string>Region</string>
<key>validTitles</key>
<array>
<string>Worldwide</string>
<string>Australia</string>
<string>Canada</string>
<string>China</string>
<string>France</string>
<string>Germany</string>
<string>Japan</string>
<string>New Zealand</string>
<string>United Kingdom</string>
<string>United States</string>
</array>
<key>validValues</key>
<array>
<integer>0</integer>
<integer>1</integer>
<integer>2</integer>
<integer>3</integer>
<integer>4</integer>
<integer>5</integer>
<integer>6</integer>
<integer>7</integer>
<integer>8</integer>
<integer>9</integer>
</array>
<key>iconImageSystem</key>
<dict>
<key>name</key>
<string>globe</string>
</dict>
</dict>
<dict>
<key>cellClass</key>
<string>HBStepperTableCell</string>
<key>default</key>
<real>5</real>
<key>defaults</key>
<string>ws.hbang.common.demo</string>
<key>key</key>
<string>Stepper</string>
<key>label</key>
<string>%i Things</string>
<key>max</key>
<real>15</real>
<key>min</key>
<real>1</real>
<key>singularLabel</key>
<string>1 Thing</string>
<key>iconImageSystem</key>
<dict>
<key>name</key>
<string>number.circle</string>
</dict>
</dict>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
<key>label</key>
<string>Sliders</string>
</dict>
<dict>
<key>cell</key>
<string>PSSliderCell</string>
<key>default</key>
<real>5</real>
<key>defaults</key>
<string>ws.hbang.common.demo</string>
<key>key</key>
<string>Slider</string>
<key>label</key>
<string>Slider</string>
<key>max</key>
<real>15</real>
<key>min</key>
<real>1</real>
<key>showValue</key>
<true/>
<key>leftImageSystem</key>
<dict>
<key>name</key>
<string>slider.horizontal.3</string>
</dict>
</dict>
<dict>
<key>cell</key>
<string>PSSliderCell</string>
<key>cellClass</key>
<string>HBDiscreteSliderTableCell</string>
<key>default</key>
<real>5</real>
<key>defaults</key>
<string>ws.hbang.common.demo</string>
<key>key</key>
<string>Discrete</string>
<key>label</key>
<string>Discrete</string>
<key>max</key>
<real>15</real>
<key>min</key>
<real>1</real>
<key>leftImageSystem</key>
<dict>
<key>name</key>
<string>sun.min</string>
</dict>
<key>rightImageSystem</key>
<dict>
<key>name</key>
<string>sun.max</string>
</dict>
</dict>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
<key>label</key>
<string>HBTintedTableCell</string>
</dict>
<dict>
<key>action</key>
<string>doStuffTapped:</string>
<key>cell</key>
<string>PSButtonCell</string>
<key>cellClass</key>
<string>HBSpinnerTableCell</string>
<key>label</key>
<string>Perform Magic Tricks</string>
<key>iconImageSystem</key>
<dict>
<key>name</key>
<string>wand.and.stars</string>
<key>weight</key>
<string>semibold</string>
</dict>
</dict>
<dict>
<key>cell</key>
<string>PSButtonCell</string>
<key>cellClass</key>
<string>HBTintedTableCell</string>
<key>label</key>
<string>Do Something Destructive</string>
<key>iconImageSystem</key>
<dict>
<key>name</key>
<string>exclamationmark.triangle</string>
<key>weight</key>
<string>bold</string>
</dict>
<key>tintColor</key>
<string>#ff3b30</string>
</dict>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
<key>label</key>
<string>HBLinkTableCell</string>
</dict>
<dict>
<key>cellClass</key>
<string>HBLinkTableCell</string>
<key>label</key>
<string>HASHBANG Productions</string>
<key>url</key>
<string>https://hashbang.productions/</string>
</dict>
<dict>
<key>cellClass</key>
<string>HBLinkTableCell</string>
<key>label</key>
<string>Avatar from URL</string>
<key>url</key>
<string>https://hashbang.productions/</string>
<key>iconURL</key>
<string>https://repo.chariz.com/CydiaIcon@3x.png</string>
</dict>
<dict>
<key>cellClass</key>
<string>HBLinkTableCell</string>
<key>label</key>
<string>Avatar from URL, circular</string>
<key>subtitle</key>
<string>They seem like a pretty cool bunch</string>
<key>url</key>
<string>https://hashbang.productions/</string>
<key>iconURL</key>
<string>https://repo.chariz.com/CydiaIcon@3x.png</string>
<key>iconCircular</key>
<true/>
<key>big</key>
<true/>
</dict>
<dict>
<key>cellClass</key>
<string>HBLinkTableCell</string>
<key>label</key>
<string>Avatar from URL, big</string>
<key>subtitle</key>
<string>They seem like a pretty cool bunch</string>
<key>url</key>
<string>https://hashbang.productions/</string>
<key>iconURL</key>
<string>https://repo.chariz.com/CydiaIcon@3x.png</string>
<key>big</key>
<true/>
</dict>
<dict>
<key>cellClass</key>
<string>HBLinkTableCell</string>
<key>label</key>
<string>Doesn’t Exist</string>
<key>url</key>
<string>http://localhost/</string>
<key>iconURL</key>
<string>http://localhost/</string>
</dict>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
<key>label</key>
<string>HBPackageTableCell</string>
</dict>
<dict>
<key>cellClass</key>
<string>HBPackageTableCell</string>
<key>label</key>
<string>Cephei</string>
<key>packageIdentifier</key>
<string>ws.hbang.common</string>
<key>iconCornerRadius</key>
<integer>12</integer>
</dict>
<dict>
<key>cellClass</key>
<string>HBPackageTableCell</string>
<key>label</key>
<string>Cephei</string>
<key>subtitle</key>
<string>Cephei is awesome!</string>
<key>packageIdentifier</key>
<string>ws.hbang.common</string>
<key>iconURL</key>
<string>https://repo.chariz.com/CydiaIcon@3x.png</string>
</dict>
<dict>
<key>cellClass</key>
<string>HBPackageTableCell</string>
<key>label</key>
<string>NewTerm</string>
<key>subtitle</key>
<string>NewTerm is also awesome!</string>
<key>packageIdentifier</key>
<string>ws.hbang.newterm2</string>
</dict>
<dict>
<key>cellClass</key>
<string>HBPackageTableCell</string>
<key>label</key>
<string>Quanta</string>
<key>subtitle</key>
<string>Quanta is hyper awesome!</string>
<key>packageIdentifier</key>
<string>ws.hbang.quanta</string>
<key>packageRepository</key>
<string>https://repo.chariz.com/</string>
</dict>
<dict>
<key>cellClass</key>
<string>HBPackageTableCell</string>
<key>label</key>
<string>Doesn’t Exist</string>
<key>packageIdentifier</key>
<string>ws.hbang.common.doesntexist</string>
</dict>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
<key>label</key>
<string>HBTwitterCell</string>
</dict>
<dict>
<key>cellClass</key>
<string>HBTwitterCell</string>
<key>label</key>
<string>Mismatched username</string>
<key>user</key>
<string>NotActuallyHashbang</string>
<key>userID</key>
<string>945654024</string>
</dict>
<dict>
<key>big</key>
<true/>
<key>cellClass</key>
<string>HBTwitterCell</string>
<key>height</key>
<integer>56</integer>
<key>label</key>
<string>Big cell</string>
<key>user</key>
<string>hashbang</string>
</dict>
<dict>
<key>cellClass</key>
<string>HBTwitterCell</string>
<key>label</key>
<string>No avatar</string>
<key>showAvatar</key>
<false/>
<key>user</key>
<string>hashbang</string>
</dict>
<dict>
<key>cellClass</key>
<string>HBTwitterCell</string>
<key>label</key>
<string>Avatar from URL</string>
<key>iconURL</key>
<string>https://chariz.com/img/favicon.png</string>
<key>iconCircular</key>
<false/>
<key>user</key>
<string>hashbang</string>
</dict>
<dict>
<key>cellClass</key>
<string>HBTwitterCell</string>
<key>label</key>
<string>Monogram initials</string>
<key>initials</key>
<string>HB</string>
<key>user</key>
<string>hashbang</string>
</dict>
<dict>
<key>cell</key>
<string>PSGroupCell</string>
<key>label</key>
<string>HBAboutListController</string>
</dict>
<dict>
<key>cell</key>
<string>PSLinkCell</string>
<key>detail</key>
<string>HBDemoAboutListController</string>
<key>isController</key>
<true/>
<key>label</key>
<string>ABOUT</string>
<key>iconImageSystem</key>
<dict>
<key>name</key>
<string>info.circle</string>
</dict>
</dict>
</array>
<key>title</key>
<string>Cephei Demo</string>
</dict>
</plist>

View File

@@ -0,0 +1,18 @@
#import "HBAboutListController.h"
#import "HBAppearanceSettings.h"
#import "HBDiscreteSliderTableCell.h"
#import "HBImageTableCell.h"
#import "HBInitialsLinkTableCell.h"
#import "HBLinkTableCell.h"
#import "HBListController.h"
#import "HBListController+Actions.h"
#import "HBListItemsController.h"
#import "HBPackageTableCell.h"
#import "HBPackageNameHeaderCell.h"
#import "HBRootListController.h"
#import "HBSpinnerTableCell.h"
#import "HBStepperTableCell.h"
#import "HBSupportController.h"
#import "HBTintedTableCell.h"
#import "HBTwitterCell.h"
#import "PSListController+HBTintAdditions.h"

View File

@@ -0,0 +1,113 @@
#import "HBListController.h"
NS_ASSUME_NONNULL_BEGIN
/// The HBAboutListController class in CepheiPrefs provides a list controller with functions
/// that would typically be used on an "about" page. It includes two class methods you can override
/// to provide a developer website and donation URL, and a class method to provide an email address
/// so the user can send the developer an email right from the tweak's settings.
///
/// There is a sample of an HBAboutListController implemented in the Cephei demo preferences. See
/// the Cephei readme for details.
///
/// ### Example Usage
/// ```xml
/// <dict>
/// <key>cell</key>
/// <string>PSLinkCell</string>
/// <key>cellClass</key>
/// <string>HBLinkTableCell</string>
/// <key>label</key>
/// <string>Visit Website</string>
/// <key>url</key>
/// <string>https://hashbang.productions/</string>
/// </dict>
/// <dict>
/// <key>cell</key>
/// <string>PSGroupCell</string>
/// <key>label</key>
/// <string>Experiencing issues?</string>
/// </dict>
/// <dict>
/// <key>action</key>
/// <string>hb_sendSupportEmail</string>
/// <key>cell</key>
/// <string>PSLinkCell</string>
/// <key>label</key>
/// <string>Email Support</string>
/// </dict>
/// <dict>
/// <key>cell</key>
/// <string>PSGroupCell</string>
/// <key>footerText</key>
/// <string>If you like this tweak, please consider a donation.</string>
/// </dict>
/// <dict>
/// <key>cell</key>
/// <string>PSLinkCell</string>
/// <key>cellClass</key>
/// <string>HBLinkTableCell</string>
/// <key>label</key>
/// <string>Donate</string>
/// <key>url</key>
/// <string>https://hashbang.productions/donate/</string>
/// </dict>
/// ```
@interface HBAboutListController : HBListController
/// @name Constants
/// The website URL to open when tapping the “visit website” cell. Override this method to return
/// your own URL.
///
/// Deprecated. It is encouraged to use an `HBLinkTableCell` instead.
///
/// @return By default, https://hashbang.productions/.
+ (NSURL *)hb_websiteURL __attribute((deprecated("Use an HBLinkTableCell instead.")));
/// The website URL to open when tapping the "donate" cell. Override this method to return your own
/// URL.
///
/// Deprecated. It is encouraged to use an `HBLinkTableCell` instead.
///
/// @return By default, https://hashbang.productions/donate/.
+ (NSURL *)hb_donateURL __attribute((deprecated("Use an HBLinkTableCell instead.")));
/// The email address to use in the support email composer form. Override this method to return an
/// email address.
///
/// If this method returns nil, the package’s author email address is used.
///
/// @return By default, nil.
+ (nullable NSString *)hb_supportEmailAddress;
/// No longer supported.
///
/// @return By default, nil.
/// @see `HBSupportController`
+ (nullable NSArray *)hb_supportInstructions __attribute((deprecated("TechSupport is no longer supported.")));
/// @name Preference Specifier Actions
/// Opens the user's browser to the URL specified by `-hb_websiteURL`.
///
/// Deprecated. Use an `HBLinkTableCell` instead.
- (void)hb_openWebsite __attribute((deprecated("Use an HBLinkTableCell instead.")));
/// Opens the user's browser to the URL specified by `-hb_donateURL`.
///
/// Deprecated. Use an `HBLinkTableCell` instead.
- (void)hb_openDonate __attribute((deprecated("Use an HBLinkTableCell instead.")));
/// Displays a support composer form.
///
/// The `-hb_supportEmailAddress` and `-hb_supportInstructions` methods are used to provide the
/// appropriate parameters to `HBSupportController`.
///
/// @see `HBSupportController`
- (void)hb_sendSupportEmail;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,167 @@
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
/// Constants indicating how to size the title of this item.
typedef NS_ENUM(NSUInteger, HBAppearanceSettingsLargeTitleStyle) {
/// Display a large title only when the current view controller is a subclass of
/// `HBRootListController`.
///
/// This is the default mode.
HBAppearanceSettingsLargeTitleStyleRootOnly,
/// Always display a large title.
HBAppearanceSettingsLargeTitleStyleAlways,
/// Never display a large title.
HBAppearanceSettingsLargeTitleStyleNever
} NS_SWIFT_NAME(HBAppearanceSettings.LargeTitleStyle);
/// The HBAppearanceSettings class in CepheiPrefs provides a model object read by other components
/// of Cephei to determine colors and other appearence settings to use in the user interface.
///
/// Appearance settings are typically set on a view controller, via the
/// `-[PSListController(HBTintAdditions) hb_appearanceSettings]` property. This is automatically
/// managed by Cephei and provided to view controllers as they are pushed onto the stack.
///
/// Most commonly, the API will be used by setting the `hb_appearanceSettings` property from the
/// init method. The following example sets the tint color, table view background color, and
/// customises the navigation bar with a background, title, and status bar color:
///
/// ```objc
/// - (instancetype)init {
/// self = [super init];
///
/// if (self) {
/// HBAppearanceSettings *appearanceSettings = [[HBAppearanceSettings alloc] init];
/// appearanceSettings.tintColor = [UIColor colorWithRed:66.f / 255.f green:105.f / 255.f blue:154.f / 255.f alpha:1];
/// appearanceSettings.barTintColor = [UIColor systemRedColor];
/// appearanceSettings.navigationBarTitleColor = [UIColor whiteColor];
/// appearanceSettings.tableViewBackgroundColor = [UIColor colorWithWhite:242.f / 255.f alpha:1];
/// appearanceSettings.statusBarStyle = UIStatusBarStyleLightContent;
/// self.hb_appearanceSettings = appearanceSettings;
/// }
///
/// return self;
/// }
/// ```
@interface HBAppearanceSettings : NSObject
/// @name General
/// The tint color to use for interactable elements within the list controller. Set this property to
/// a UIColor to use.
///
/// A nil value will cause no modification of the tint to occur.
///
/// @return By default, nil.
@property (nonatomic, copy, nullable) UIColor *tintColor;
#ifdef __IPHONE_13_0
/// The user interface style to use. Set this property to a UIUserInterfaceStyle to use.
///
/// @return By default, UIUserInterfaceStyleUnspecified.
@property (nonatomic, assign) UIUserInterfaceStyle userInterfaceStyle API_AVAILABLE(ios(13.0));
#endif
/// @name Navigation Bar
/// The tint color to use for the navigation bar buttons, or, if invertedNavigationBar is set, the
/// background of the navigation bar. Set this property to a UIColor to use, if you don’t want to
/// use the same color as tintColor.
///
/// A nil value will cause no modification of the navigation bar tint to occur.
///
/// @return By default, nil.
@property (nonatomic, copy, nullable) UIColor *navigationBarTintColor;
/// The color to use for the navigation bar title label. Set this property to a UIColor to use.
///
/// A nil value will cause no modification of the navigation bar title color to occur.
///
/// @return By default, nil.
@property (nonatomic, copy, nullable) UIColor *navigationBarTitleColor;
/// The background color to use for the navigation bar. Set this property to a UIColor to use.
///
/// A nil value will cause no modification of the navigation bar background to occur.
///
/// @return By default, nil.
@property (nonatomic, copy, nullable) UIColor *navigationBarBackgroundColor;
/// The status bar style to use. Set this property to a UIStatusBarStyle to use.
///
/// @return By default, UIStatusBarStyleDefault.
@property (nonatomic, assign) UIStatusBarStyle statusBarStyle;
/// The color to use for the status bar icons. Set this property to a UIColor to use.
///
/// A nil value will cause no modification of the status bar color to occur.
///
/// @return By default, nil.
/// @warning Setting the status bar to a custom color is no longer possible as of iOS 13. Set
/// statusBarStyle instead.
@property (nonatomic, copy, nullable) UIColor *statusBarTintColor __attribute((deprecated("Set statusBarStyle instead.")));
/// Whether to use an inverted navigation bar.
///
/// An inverted navigation bar has a tinted background, rather than the buttons being tinted. All
/// other interface elements will be tinted the same.
///
/// @return By default, NO.
@property (nonatomic, assign) BOOL invertedNavigationBar __attribute((deprecated("Set navigationBarBackgroundColor and navigationBarTitleColor instead.")));
/// Whether to use a translucent navigation bar. Set this property to YES if you want this behavior.
///
/// @return By default, YES.
@property (nonatomic, assign) BOOL translucentNavigationBar;
/// Whether to show the shadow (separator line) at the bottom of the navigation bar.
///
/// Requires iOS 13 or later.
///
/// @return By default, YES.
@property (nonatomic, assign) BOOL showsNavigationBarShadow;
/// Whether to use a large title on iOS 11 and newer. Set this property to a value from
/// HBAppearanceSettingsLargeTitleStyle.
///
/// @return By default, HBAppearanceSettingsLargeTitleStyleRootOnly.
@property (nonatomic, assign) HBAppearanceSettingsLargeTitleStyle largeTitleStyle;
/// @name Table View
/// The color to be used for the overall background of the table view. Set this property to a
/// UIColor to use.
///
/// @return By default, nil.
@property (nonatomic, copy, nullable) UIColor *tableViewBackgroundColor;
/// The color to be used for the text color of table view cells. Set this property to a UIColor to
/// use.
///
/// @return By default, nil.
@property (nonatomic, copy, nullable) UIColor *tableViewCellTextColor;
/// The color to be used for the background color of table view cells. Set this property to a
/// UIColor to use.
///
/// @return By default, nil.
@property (nonatomic, copy, nullable) UIColor *tableViewCellBackgroundColor;
/// The color to be used for the separator between table view cells. Set this property to a UIColor
/// to use.
///
/// @return By default, nil.
@property (nonatomic, copy, nullable) UIColor *tableViewCellSeparatorColor;
/// The color to be used when a table view cell is selected. This color will be shown when the cell
/// is in the highlighted state.
///
/// @return By default, nil.
@property (nonatomic, copy, nullable) UIColor *tableViewCellSelectionColor;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,46 @@
#import <Preferences/PSSliderTableCell.h>
#import <Preferences/PSDiscreteSlider.h>
/// The HBDiscreteSliderTableCell class in CepheiPrefs is a subclass of the standard slider
/// cell, which displays a vertical line at every whole number. Additionally, when dragging the
/// slider, it jumps to these lines so the user’s preference will always be a whole number.
///
/// It is no longer necessary to use this as of iOS 8.2, which has built in `isSegmented` and
/// `segmentCount` parameters on PSSliderCell. This class is kept for backwards compatibility, and
/// will use the built-in implementation on iOS 8.2 and newer.
///
/// Requires iOS 7.0 or later. A normal slider is shown for older versions.
///
/// ### Specifier Parameters
/// All parameters specific to
/// [PSSliderCell](http://iphonedevwiki.net/index.php/Preferences_specifier_plist#PSSliderCell)
/// are applicable here. There are no custom parameters.
///
/// ### Example Usage
/// ```xml
/// <dict>
/// <key>cell</key>
/// <string>PSSliderCell</string>
/// <key>cellClass</key>
/// <string>HBDiscreteSliderTableCell</string>
/// <key>default</key>
/// <real>5</real>
/// <key>defaults</key>
/// <string>ws.hbang.common.demo</string>
/// <key>key</key>
/// <string>Discrete</string>
/// <key>label</key>
/// <string>Discrete</string>
/// <key>max</key>
/// <real>15</real>
/// <key>min</key>
/// <real>1</real>
/// </dict>
/// ```
@interface HBDiscreteSliderTableCell : PSControlTableCell
/// The slider control.
@property (nonatomic, retain) PSDiscreteSlider *control;
@end

View File

@@ -0,0 +1,45 @@
#import <Preferences/PSTableCell.h>
#import <Preferences/PSHeaderFooterView.h>
/// The HBImageTableCell class in CepheiPrefs provides a simple way to display an image as a
/// table cell, or a header or footer.
///
/// ### Specifier Parameters
/// <table class="graybox">
/// <tr>
/// <td>icon</td> <td>Required. The file name of the image to display in the cell.</td>
/// </tr>
/// </table>
///
/// If you use `HBImageTableCell` as a header or footer with `headerCellClass` or `footerCellClass`,
/// it will size automatically to fit the image. If you use it as a cell with `cellClass`, you must
/// set the height yourself using the `height` key.
///
/// ### Example Usage
/// ```xml
/// <!-- As a header (or footer): -->
/// <dict>
/// <key>cell</key>
/// <string>PSGroupCell</string>
/// <key>headerCellClass</key>
/// <string>HBImageTableCell</string>
/// <key>height</key>
/// <integer>100</integer>
/// <key>icon</key>
/// <string>logo.png</string>
/// </dict>
///
/// <!-- As a cell: -->
/// <dict>
/// <key>cellClass</key>
/// <string>HBImageTableCell</string>
/// <key>height</key>
/// <integer>100</integer>
/// <key>icon</key>
/// <string>logo.png</string>
/// </dict>
/// ```
@interface HBImageTableCell : PSTableCell <PSHeaderFooterView>
@end

View File

@@ -0,0 +1,8 @@
#import "HBLinkTableCell.h"
/// The HBInitialsLinkTableCell class in CepheiPrefs is a shim kept for compatibility reasons.
/// The class is now called `HBLinkTableCell`.
@interface HBInitialsLinkTableCell : HBLinkTableCell
@end

View File

@@ -0,0 +1,129 @@
#import "HBTintedTableCell.h"
/// The HBLinkTableCell class in CepheiPrefs displays a button that, when tapped, opens the
/// specified URL. A typical icon can be used, or the initials key can be set to one or two
/// characters to show as the icon.
///
/// This cell can either be used without setting any cell type, or by setting it to `PSButtonCell`
/// to get a tinted button.
///
/// ### Specifier Parameters
/// <table class="graybox">
/// <tr>
/// <td>url</td> <td>Required. The URL to open.</td>
/// </tr>
/// <tr>
/// <td>subtitle</td> <td>Optional. A subtitle to display below the label. The default is an empty
/// string, hiding the subtitle.</td>
/// </tr>
/// <tr>
/// <td>initials</td> <td>Optional. One or two characters to show as the icon.</td>
/// </tr>
/// <tr>
/// <td>iconURL</td> <td>Optional. The URL to an image to display. The default is no value,
/// hiding the image.</td>
/// </tr>
/// <tr>
/// <td>iconCircular</td> <td>Optional. Whether the icon should be displayed as a circle. The
/// default is NO when an iconURL is set, otherwise this property is unused.</td>
/// </tr>
/// <tr>
/// <td>iconCornerRadius</td> <td>Optional. A custom corner radius to use for the icon. Ignored
/// if iconCircular is set to true. If set to -1, the operating system’s default icon corner radius
/// is used. The default is -1.</td>
/// </tr>
/// </table>
///
/// ### Example Usage
/// ```xml
/// <!-- With icon: -->
/// <dict>
/// <key>cellClass</key>
/// <string>HBLinkTableCell</string>
/// <key>icon</key>
/// <string>example.png</string>
/// <key>label</key>
/// <string>Example</string>
/// <key>url</key>
/// <string>http://example.com/</string>
/// </dict>
///
/// <!-- With initials: -->
/// <dict>
/// <key>cellClass</key>
/// <string>HBLinkTableCell</string>
/// <key>initials</key>
/// <string>XX</string>
/// <key>label</key>
/// <string>Example</string>
/// <key>url</key>
/// <string>http://example.com/</string>
/// </dict>
///
/// <!-- With a subtitle: -->
/// <dict>
/// <key>cellClass</key>
/// <string>HBLinkTableCell</string>
/// <key>label</key>
/// <string>Example</string>
/// <key>subtitle</key>
/// <string>Visit our amazing website</string>
/// <key>url</key>
/// <string>http://example.com/</string>
/// </dict>
///
/// <!-- With a subtitle, in big mode: -->
/// <dict>
/// <key>big</key>
/// <true/>
/// <key>cellClass</key>
/// <string>HBLinkTableCell</string>
/// <key>height</key>
/// <integer>64</integer>
/// <key>label</key>
/// <string>Example</string>
/// <key>subtitle</key>
/// <string>Visit our amazing website</string>
/// <key>url</key>
/// <string>http://example.com/</string>
/// </dict>
/// ```
@interface HBLinkTableCell : HBTintedTableCell
/// Whether the cell is 64 pixels or more in height.
///
/// This is not set automatically; the specifier for the cell must set the `big` property to true
/// (see examples above).
@property (nonatomic, readonly) BOOL isBig;
/// The view containing the icon image view.
@property (nonatomic, retain, readonly) UIView *iconView;
/// The icon image view.
@property (nonatomic, retain, readonly) UIImageView *iconImageView;
/// The image to display as the icon, if enabled.
@property (nonatomic, retain) UIImage *iconImage;
/// A URL to load into iconImage to display as the icon, if enabled.
@property (nonatomic, retain) NSURL *iconURL;
/// Whether the image displays as a circle.
///
/// The default is YES if an iconURL is set in the specifier, otherwise NO.
@property (nonatomic, readonly) BOOL isIconCircular;
/// Load and display the icon.
///
/// You don’t need to call this unless subclassing.
- (void)loadIconIfNeeded;
/// Handle failure to load the icon.
///
/// You don’t need to call this unless subclassing. The default implementation replaces the image
/// with the operating system’s generic “no icon” placeholder if `iconCornerRadius` is set to -1,
/// and `isIconCircular` is set to NO.
- (void)iconLoadDidFailWithResponse:(NSURLResponse *)response error:(NSError *)error;
@end

View File

@@ -0,0 +1,42 @@
#import "HBListController.h"
@class PSSpecifier;
NS_ASSUME_NONNULL_BEGIN
/// The HBListController (Actions) class category in CepheiPrefs implements action methods you can
/// use with link and button specifiers.
@interface HBListController (Actions)
/// Specifier action to perform a restart of the system app (respring).
///
/// You should prefer to have preferences immediately take effect, rather than using this method.
///
/// @see `-hb_respringAndReturn:`
- (void)hb_respring:(PSSpecifier *)specifier;
/// Specifier action to perform a restart of the system app (respring), and return to the current
/// preferences screen.
///
/// You should prefer to have preferences immediately take effect, rather than using this method.
///
/// @see `-hb_respring:`
- (void)hb_respringAndReturn:(PSSpecifier *)specifier;
/// Specifier action to open the URL specified by the specifier.
///
/// This is intended to be used with `HBLinkTableCell`.
///
/// @see `HBLinkTableCell`
- (void)hb_openURL:(PSSpecifier *)specifier;
/// Specifier action to open the package specified by the specifier.
///
/// This is intended to be used with `HBPackageTableCell`.
///
/// @see `HBPackageTableCell`
- (void)hb_openPackage:(PSSpecifier *)specifier;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,260 @@
#import <Preferences/PSListController.h>
#import "PSListController+HBTintAdditions.h"
NS_ASSUME_NONNULL_BEGIN
/// The HBListController class in CepheiPrefs provides a list controller with various
/// conveniences such as a unique tint color for the list controllers within a preference bundle,
/// and bug fixes for common issues within the Settings app and Preferences framework. In
/// particular, a bug with the list controller’s content disappearing after closing the Settings
/// app and opening it again is worked around, as well as an issue on iOS 7 where in some cases a
/// cell may stay highlighted after being tapped.
///
/// It includes two class methods you can override to return the name of a Preferences specifier
/// property list, and various methods to control appearance of the interface.
///
/// If you use `HBLinkTableCell` or subclasses such as `HBTwitterCell` and `HBPackageTableCell`, it
/// is recommended to subclass from HBListController on the view controller classes containing these
/// cells to use CepheiPrefs’s built-in callback actions. If you do not subclass from
/// HBListController, you will need to implement action methods yourself.
///
/// ### Specifier Parameters
/// HBListController extends specifiers with the following parameters:
///
/// <table class="graybox">
/// <tr>
/// <td>pl_filter</td> <td>Optional. Supports additional filters that decide whether a specifier
/// should be displayed, as specified below.</td>
/// </tr>
/// <tr>
/// <td>iconImageSystem</td> <td>Optional. Supports displaying a system image as the cell icon, as
/// specified below.</td>
/// </tr>
/// <tr>
/// <td>leftImageSystem</td> <td>Optional. Supports displaying a system image as the icon to the
/// left of a PSSliderCell’s slider control, as specified below.</td>
/// </tr>
/// <tr>
/// <td>rightImageSystem</td> <td>Optional. Supports displaying a system image as the icon to the
/// right of a PSSliderCell’s slider control, as specified below.</td>
/// </tr>
/// </table>
///
/// #### PreferenceLoader Filter Parameters
/// The `pl_filter` key is inherited from PreferenceLoader’s libprefs, and can be used to specify
/// [CoreFoundation version](https://iphonedev.wiki/index.php/CoreFoundation.framework) criteria
/// for a specifier. Specifiers that do not meet the `pl_filter` criteria will be discarded.
///
/// The version number of CoreFoundation is often used as a stable method of checking the operating
/// system version in use. It has the benefit of increasing in predictable amounts (to the next
/// hundred or more) for each major revision of Apple’s OS platforms, and it is typically roughly
/// the same between all Apple OS platforms at any point in time.
///
/// <table class="graybox">
/// <tr>
/// <td>CoreFoundationVersion</td> <td>Optional. An array of one or two CoreFoundation version
/// numbers in decimal (&lt;real&gt;). If one number is present, this is a minimum bound. The
/// current device’s CoreFoundation version must be greater than or equal to this number. If two
/// numbers are present, the first number is the lower bound, and the second number is one more than
/// the upper bound. The current device’s CoreFoundation version must be greater than or equal to
/// the first number, and less than (but not equal to) the second number.</td>
/// </tr>
/// </table>
///
/// ##### Example Usage
/// ```xml
/// <!-- Will only display on iOS 12.0 (CF 1556.0) or newer: -->
/// <dict>
/// <key>cell</key>
/// <string>PSSwitchCell</string>
/// <key>label</key>
/// <string>My iOS 12+ Only Feature</string>
/// <key>pl_filter</key>
/// <dict>
/// <key>CoreFoundationVersion</key>
/// <array>
/// <real>1556.00</real>
/// </array>
/// </dict>
/// </dict>
///
/// <!-- Will only display between iOS 7.0 (CF 847.20) and 12.0 (CF 1556.00): -->
/// <dict>
/// <key>cell</key>
/// <string>PSSwitchCell</string>
/// <key>label</key>
/// <string>My iOS 7-11 Only Feature</string>
/// <key>pl_filter</key>
/// <dict>
/// <key>CoreFoundationVersion</key>
/// <array>
/// <real>847.20</real>
/// <real>1556.00</real>
/// </array>
/// </dict>
/// </dict>
///
/// <!-- Will only display on versions earlier than iOS 12.0 (CF 1556.00): -->
/// <dict>
/// <key>cell</key>
/// <string>PSSwitchCell</string>
/// <key>label</key>
/// <string>My iOS &lt;12 Only Feature</string>
/// <key>pl_filter</key>
/// <dict>
/// <key>CoreFoundationVersion</key>
/// <array>
/// <real>0.0</real>
/// <real>1556.00</real>
/// </array>
/// </dict>
/// </dict>
/// ```
///
/// #### System Icon Parameters
/// On iOS 13.0 and newer, you can specify a system icon
/// ([SF Symbols](https://developer.apple.com/sf-symbols/) glyph) to be displayed in a cell. Use the
/// SF Symbols app to find symbol names.
///
/// When running on iOS versions earlier than 13.0, icons will not be rendered. This also applies
/// when a symbol name is specified that was added in a later iOS version than is currently in use.
/// In this case, you can supply a PNG icon through the usual means as a fallback.
///
/// <table class="graybox">
/// <tr>
/// <td>name</td> <td>Required. The symbol name to use.</td>
/// </tr>
/// <tr>
/// <td>weight</td> <td>Optional. The weight to render the symbol at. The supported values are:
/// ultraLight, thin, light, regular, medium, semibold, bold, heavy, black. The default is
/// regular.</td>
/// </tr>
/// <tr>
/// <td>scale</td> <td>Optional. The scale to render the symbol at. The supported values are: small,
/// medium, large. The default is medium.</td>
/// </tr>
/// <tr>
/// <td>pointSize</td> <td>Optional. The equivalent font size to render the symbol at. The default
/// is 20.0.</td>
/// </tr>
/// <tr>
/// <td>tintColor</td> <td>Optional. The color to render the icon in. The default is no value, which
/// means the tint color will be inherited from the -[HBAppearanceSettings tintColor]; if neither
/// value is set, the default iOS blue tint color is used. When backgroundColor is set, no value
/// means white (#ffffff) will be used.</td>
/// </tr>
/// <tr>
/// <td>backgroundColor</td> <td>Optional. The background color to use for the symbol. When
/// specified, the symbol will be rendered inside an icon shape of the specified background color.
/// The symbol will be scaled down by 20% to appropriately fit the icon shape. The default is no
/// value, which means no icon shape will be rendered.</td>
/// </tr>
/// </table>
///
/// ##### Example Usage
///
/// ```xml
/// <!-- A switch with a two switches symbol as its icon -->
/// <dict>
/// <key>cell</key>
/// <string>PSSwitchCell</string>
/// <key>label</key>
/// <string>Awesome</string>
/// <key>iconImageSystem</key>
/// <dict>
/// <key>name</key>
/// <string>switch.2</string>
/// </dict>
/// </dict>
///
/// <!-- A link cell with an information symbol as its icon -->
/// <dict>
/// <key>cell</key>
/// <string>PSLinkCell</string>
/// <key>detail</key>
/// <string>HBDemoAboutListController</string>
/// <key>isController</key>
/// <true/>
/// <key>label</key>
/// <string>ABOUT</string>
/// <key>iconImageSystem</key>
/// <dict>
/// <key>name</key>
/// <string>info.circle</string>
/// </dict>
/// </dict>
///
/// <!-- A slider cell with brightness sun symbols on the left and right -->
/// <dict>
/// <key>cell</key>
/// <string>PSSliderCell</string>
/// <key>min</key>
/// <real>1</real>
/// <key>max</key>
/// <real>15</real>
/// <key>leftImageSystem</key>
/// <dict>
/// <key>name</key>
/// <string>sun.min</string>
/// </dict>
/// <key>rightImageSystem</key>
/// <dict>
/// <key>name</key>
/// <string>sun.max</string>
/// </dict>
/// </dict>
///
/// <!-- A link cell with white heart symbol in a red icon shape -->
/// <dict>
/// <key>cell</key>
/// <string>PSButtonCell</string>
/// <key>cellClass</key>
/// <string>HBLinkTableCell</string>
/// <key>label</key>
/// <string>DONATE</string>
/// <key>url</key>
/// <string>https://hashbang.productions/</string>
/// <key>iconImageSystem</key>
/// <dict>
/// <key>name</key>
/// <string>heart</string>
/// <key>backgroundColor</key>
/// <string>#ff3b30</string>
/// </dict>
/// </dict>
/// ```
@interface HBListController : PSListController
/// @name Specifiers
/// The property list that contains Preference framework specifiers to display as the content of the
/// list controller. Override this method to return the file name of a property list inside your
/// preference bundle, omitting the file extension.
///
/// Example:
/// ```objc
/// + (NSString *)hb_specifierPlist {
/// return @"Root";
/// }
/// ```
///
/// If you use this method and override the `specifiers` method, ensure you call the super method
/// with `[super specifiers];` first in your `specifiers` implementation.
///
/// @return By default, nil.
@property (nonatomic, strong, readonly, class, nullable) NSString *hb_specifierPlist NS_SWIFT_NAME(specifierPlist);
/// @name Related View Controllers
/// Returns the “real” navigation controller for this view controller.
///
/// As of iOS 8.0, the navigation controller that owns the navigation bar and other responsibilities
/// is actually a parent of `self.navigationController` on iPhone, due to the larger Plus models.
/// The realNavigationController method returns the correct navigation controller.
///
/// @return The real navigation controller.
- (UINavigationController *)realNavigationController;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,10 @@
#import <UIKit/UIKit.h>
#import <Preferences/PSListItemsController.h>
/// The HBListItemsController class in CepheiPrefs was used with previous versions to ensure
/// that the tint color from the previous view controller is retained. As of Cephei 1.4, this is no
/// longer needed, and this class is kept for backwards compatibility purposes.
@interface HBListItemsController : PSListItemsController
@end

View File

@@ -0,0 +1,114 @@
#import <Preferences/PSTableCell.h>
#import <Preferences/PSHeaderFooterView.h>
/// The HBPackageNameHeaderCell class in CepheiPrefs displays a header containing the package’s
/// icon, name, version number, and author. It can be displayed in a subtle condensed design, or, by
/// default, a tall header that might be displayed at the top of a preference bundle’s root list
/// controller, for instance.
///
/// ### Specifier Parameters
/// <table class="graybox">
/// <tr>
/// <td>condensed</td> <td>Optional. When true, displays an icon, the package name and version in
/// one line, and on another displays the author name. When false, displays a large package name,
/// and on two lines in small font the package version and author. The default is false.</td>
/// </tr>
/// <tr>
/// <td>icon</td> <td>Required in condensed mode. Not used otherwise. The file name of the icon to
/// use within the current preference bundle.</td>
/// </tr>
/// <tr>
/// <td>packageIdentifier</td> <td>Required. The package identifier to retrieve the required
/// information from.</td>
/// </tr>
/// <tr>
/// <td>packageNameOverride</td> <td>Optional. A custom name to use instead of the package’s
/// name.</td>
/// </tr>
/// <tr>
/// <td>showAuthor</td> <td>Optional. Whether to show the Author field of the package. The default
/// is true.</td>
/// </tr>
/// <tr>
/// <td>showVersion</td> <td>Optional. Whether to show the Version field of the package. The default
/// is true.</td>
/// </tr>
/// <tr>
/// <td>titleColor</td> <td>Optional. The color to apply to the name of the package. The default is
/// #111111.</td>
/// </tr>
/// <tr>
/// <td>subtitleColor</td> <td>Optional. The color to apply to the subtitles. The default is
/// #444444.</td>
/// </tr>
/// <tr>
/// <td>backgroundGradientColors</td> <td>Optional. An array of color stops to use as a background
/// gradient. At least one is required. The default is no background gradient.</td>
/// </tr>
/// </table>
///
/// ### Example Usage
/// ```xml
/// <!-- Standard size: -->
/// <dict>
/// <key>cell</key>
/// <string>PSGroupCell</string>
/// <key>headerCellClass</key>
/// <string>HBPackageNameHeaderCell</string>
/// <key>packageIdentifier</key>
/// <string>ws.hbang.common</string>
/// </dict>
///
/// <!-- Condensed size: -->
/// <dict>
/// <key>cell</key>
/// <string>PSGroupCell</string>
/// <key>condensed</key>
/// <true/>
/// <key>headerCellClass</key>
/// <string>HBPackageNameHeaderCell</string>
/// <key>icon</key>
/// <string>icon.png</string>
/// <key>packageIdentifier</key>
/// <string>ws.hbang.common</string>
/// </dict>
///
/// <!-- Standard size with custom colors: -->
/// <dict>
/// <key>cell</key>
/// <string>PSGroupCell</string>
/// <key>headerCellClass</key>
/// <string>HBPackageNameHeaderCell</string>
/// <key>packageIdentifier</key>
/// <string>ws.hbang.common</string>
/// <key>titleColor</key>
/// <string>#CC0000</string>
/// <key>subtitleColor</key>
/// <array>
/// <integer>55</integer>
/// <integer>147</integer>
/// <integer>230</integer>
/// </array>
/// </dict>
///
/// <!-- Standard size with gradient background: -->
/// <dict>
/// <key>cell</key>
/// <string>PSGroupCell</string>
/// <key>headerCellClass</key>
/// <string>HBPackageNameHeaderCell</string>
/// <key>packageIdentifier</key>
/// <string>ws.hbang.common</string>
/// <key>backgroundGradientColors</key>
/// <array>
/// <string>#5AD427</string>
/// <string>#FFDB4C</string>
/// <string>#EF4DB6</string>
/// <string>#898C90</string>
/// </array>
/// </dict>
/// ```
@interface HBPackageNameHeaderCell : PSTableCell <PSHeaderFooterView>
@end

View File

@@ -0,0 +1,63 @@
#import "HBLinkTableCell.h"
/// The HBPackageTableCell class in CepheiPrefs provides a cell containing any package's icon,
/// name, and description. Tapping it opens the package in Cydia.
///
/// ### Specifier Parameters
/// <table class="graybox">
/// <tr>
/// <td>packageIdentifier</td> <td>Required. The package identifier to retrieve the required
/// information from.</td>
/// </tr>
/// <tr>
/// <td>packageRepository</td> <td>Optional. The URL to the repository the package is available on,
/// if not one of the default repos.</td>
/// </tr>
/// <tr>
/// <td>label</td> <td>Required. The name of the package.</td>
/// </tr>
/// <tr>
/// <td>subtitle</td> <td>Optional. Can be used for a description of the package.</td>
/// </tr>
/// </table>
///
/// ### Example Usage
/// ```xml
/// <!-- Typical: -->
/// <dict>
/// <key>cellClass</key>
/// <string>HBPackageTableCell</string>
/// <key>label</key>
/// <string>Cephei</string>
/// <key>packageIdentifier</key>
/// <string>ws.hbang.common</string>
/// </dict>
///
/// <!-- With subtitle: -->
/// <dict>
/// <key>cellClass</key>
/// <string>HBPackageTableCell</string>
/// <key>label</key>
/// <string>Cephei</string>
/// <key>packageIdentifier</key>
/// <string>ws.hbang.common</string>
/// <key>subtitle</key>
/// <string>Support library for tweaks</string>
/// </dict>
///
/// <!-- From a repository: -->
/// <dict>
/// <key>cellClass</key>
/// <string>HBPackageTableCell</string>
/// <key>label</key>
/// <string>Cephei</string>
/// <key>packageIdentifier</key>
/// <string>ws.hbang.common</string>
/// <key>packageRepository</key>
/// <string>https://repo.chariz.io</string>
/// </dict>
/// ```
@interface HBPackageTableCell : HBLinkTableCell
@end

View File

@@ -0,0 +1,38 @@
#import "HBListController.h"
NS_ASSUME_NONNULL_BEGIN
/// The HBRootListController class in CepheiPrefs provides a list controller class that should
/// be used as the root of the package's settings. It includes two class methods you can override to
/// provide a default message and a URL that the user can share via a sharing button displayed to
/// the right of the navigation bar.
///
/// It is recommended that you use this class even if its current features aren’t appealing in case
/// of future improvements or code that relies on the presence of an HBRootListController.
@interface HBRootListController : HBListController
/// @name Constants
/// A string to be used as a default message when the user shares the package to a friend or social
/// website. Override this method to return your own string.
///
/// If the return value of this method and `hb_shareURL `are nil, the sharing button will not be
/// displayed.
///
/// @return By default, nil.
+ (nullable NSString *)hb_shareText;
/// The URL to be shared when the user shares the package to a friend or social website. Override
/// this method to return your own URL.
///
/// If the return value of this method and `hb_shareText` are nil, the sharing button will not be
/// displayed.
///
/// @return By default, nil.
+ (nullable NSURL *)hb_shareURL;
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,35 @@
#import "HBTintedTableCell.h"
/// The HBSpinnerTableCell class in CepheiPrefs displays an activity indicator when the cell is
/// disabled.
///
/// ### Example Usage
/// Specifier plist:
///
/// ```xml
/// <dict>
/// <key>action</key>
/// <string>doStuffTapped:</string>
/// <key>cell</key>
/// <string>PSButtonCell</string>
/// <key>cellClass</key>
/// <string>HBSpinnerTableCell</string>
/// <key>label</key>
/// <string>Do Stuff</string>
/// </dict>
/// ```
///
/// List controller implementation:
///
/// ```objc
/// - (void)doStuffTapped:(PSSpecifier *)specifier {
/// PSTableCell *cell = [self cachedCellForSpecifier:specifier];
/// cell.cellEnabled = NO;
/// // do something in the background…
/// cell.cellEnabled = YES;
/// }
/// ```
@interface HBSpinnerTableCell : HBTintedTableCell
@end

View File

@@ -0,0 +1,52 @@
#import <Preferences/PSControlTableCell.h>
/// The HBStepperTableCell class in CepheiPrefs allows setting a value using a stepper control
/// ("minus" and "plus" buttons).
///
/// Requires iOS 6.0 or later.
///
/// ### Specifier Parameters
/// <table class="graybox">
/// <tr>
/// <td>label</td> <td>Required. The label displayed when the value is plural. Use <code>%i</code>
/// to denote where the number should be displayed.</td>
/// </tr>
/// <tr>
/// <td>max</td> <td>Required. The highest possible numeric value for the stepper.</td>
/// </tr>
/// <tr>
/// <td>min</td> <td>Required. The lowest possible numeric value for the stepper.</td>
/// </tr>
/// <tr>
/// <td>singularLabel</td> <td>Required. The label displayed when the value is singular.</td>
/// </tr>
/// </table>
///
/// ### Example Usage
/// ```xml
/// <dict>
/// <key>cellClass</key>
/// <string>HBStepperTableCell</string>
/// <key>default</key>
/// <real>5</real>
/// <key>defaults</key>
/// <string>ws.hbang.common.demo</string>
/// <key>key</key>
/// <string>Stepper</string>
/// <key>label</key>
/// <string>%i Things</string>
/// <key>max</key>
/// <real>15</real>
/// <key>min</key>
/// <real>1</real>
/// <key>singularLabel</key>
/// <string>1 Thing</string>
/// </dict>
/// ```
@interface HBStepperTableCell : PSControlTableCell
/// The stepper control.
@property (nonatomic, retain) UIStepper *control;
@end

View File

@@ -0,0 +1,77 @@
@import UIKit;
NS_ASSUME_NONNULL_BEGIN
/// The HBSupportController class in CepheiPrefs provides a factory that configures an email
/// composer for package support.
///
/// The resulting view controller should be presented modally; it should not be pushed on a
/// navigation controller stack.
@interface HBSupportController : NSObject
/// Initialises a Mail composer by using information provided by a bundle and preferences identifier.
///
/// Either a bundle or preferences identifier is required. If both are nil, an exception will be
/// thrown. The email address is derived from the `Author` field of the package’s control file.
/// `HBSupportController` implicitly adds the user’s package listing (output of `dpkg -l`) and the
/// preferences plist as attachments.
///
/// @param bundle A bundle included with the package.
/// @param preferencesIdentifier A preferences identifier that is used by the package.
/// @return A pre-configured email composer.
/// @see `+supportViewControllerForBundle:preferencesIdentifier:sendToEmail:`
+ (UIViewController *)supportViewControllerForBundle:(nullable NSBundle *)bundle preferencesIdentifier:(nullable NSString *)preferencesIdentifier;
/// Initialises a Mail composer by using information provided by a bundle, preferences identifier,
/// and optional email address.
///
/// Either a bundle or preferences identifier is required. If both are nil, an exception will be
/// thrown. If sendToEmail is nil, the email address is derived from the `Author` field of the
/// package’s control file. `HBSupportController` implicitly adds the user’s package listing (output
/// of `dpkg -l`) and the preferences plist as attachments.
///
/// @param bundle A bundle included with the package.
/// @param preferencesIdentifier A preferences identifier that is used by the package.
/// @param sendToEmail The email address to prefill in the To field. Pass nil to use the email
/// address from the package.
/// @return A pre-configured email composer.
+ (UIViewController *)supportViewControllerForBundle:(nullable NSBundle *)bundle preferencesIdentifier:(nullable NSString *)preferencesIdentifier sendToEmail:(nullable NSString *)sendToEmail;
/// @name Deprecated
/// No longer supported. Returns nil.
///
/// @return nil.
+ (id)linkInstructionForEmailAddress:(NSString *)emailAddress __attribute((deprecated("TechSupport is no longer supported.")));
/// Initialises a Mail composer by using information provided by a bundle.
///
/// Refer to `+supportViewControllerForBundle:preferencesIdentifier:linkInstruction:supportInstructions:`
/// for information on how the bundle is used.
///
/// @param bundle A bundle included with the package.
/// @return A pre-configured email composer.
/// @see `+supportViewControllerForBundle:preferencesIdentifier:sendToEmail:`
+ (UIViewController *)supportViewControllerForBundle:(NSBundle *)bundle __attribute((deprecated("TechSupport is no longer supported.")));
/// Initialises a Mail composer by using information provided by either a bundle or a preferences
/// identifier, and providing it a custom link instruction and support instructions.
///
/// The bundle may set the key `HBPackageIdentifier` in its Info.plist, containing the package
/// identifier to gather information from. Otherwise, the dpkg file lists are searched to find the
/// package that contains the bundle. The package’s name, identifier, and author will be used to
/// fill out fields in the information that the user will submit.
///
/// @param bundle A bundle included with the package.
/// @param preferencesIdentifier The preferences identifier of the package, if it’s different from
/// the package identifier that contains the bundle.
/// @param linkInstruction Ignored.
/// @param supportInstructions Ignored.
/// @return A pre-configured email composer.
/// @see `+supportViewControllerForBundle:preferencesIdentifier:`
+ (UIViewController *)supportViewControllerForBundle:(nullable NSBundle *)bundle preferencesIdentifier:(nullable NSString *)preferencesIdentifier linkInstruction:(nullable id)linkInstruction supportInstructions:(nullable NSArray *)supportInstructions __attribute((deprecated("Use +[HBSupportController supportViewControllerForBundle:preferencesIdentifier:].")));
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,43 @@
#import <Preferences/PSTableCell.h>
/// The HBTintedTableCell class in CepheiPrefs ensures that a tint set with `HBAppearanceSettings`
/// will also be applied to the title label of a of a cell intended to be used as a button.
///
/// ### Specifier Parameters
/// HBListController extends specifiers with the following parameters:
///
/// <table class="graybox">
/// <tr>
/// <td>tintColor</td> <td>Optional. The color to use for the label of the cell. The default is no
/// value, which means the tint color will be inherited from the -[HBAppearanceSettings tintColor];
/// if neither value is set, the default iOS blue tint color is used.</td>
/// </tr>
/// </table>
///
/// ### Example Usage
/// ```xml
/// <dict>
/// <key>cell</key>
/// <string>PSButtonCell</string>
/// <key>cellClass</key>
/// <string>HBTintedTableCell</string>
/// <key>label</key>
/// <string>Do Something</string>
/// </dict>
///
/// <!-- Or with a custom tint color: -->
/// <dict>
/// <key>cell</key>
/// <string>PSButtonCell</string>
/// <key>cellClass</key>
/// <string>HBTintedTableCell</string>
/// <key>label</key>
/// <string>Do Something</string>
/// <key>tintColor</key>
/// <string>#33b5e5</string>
/// </dict>
/// ```
@interface HBTintedTableCell : PSTableCell
@end

View File

@@ -0,0 +1,83 @@
#import "HBLinkTableCell.h"
/// The HBTwitterCell class in CepheiPrefs displays a button containing a person’s name, along
/// with their Twitter username and avatar. When tapped, a Twitter client installed on the user’s
/// device or the Twitter website is opened to the person’s profile.
///
/// ### Specifier Parameters
/// <table class="graybox">
/// <tr>
/// <td>big</td> <td>Optional. Whether to display the username below the name (true) or to the right
/// of it (false). The default is false. If you set this to true, you should also set the cell’s
/// height to 56pt.</td>
/// </tr>
/// <tr>
/// <td>initials</td> <td>Optional. One or two characters to show instead of an avatar.</td>
/// </tr>
/// <tr>
/// <td>label</td> <td>Required. The name of the person.</td>
/// </tr>
/// <tr>
/// <td>user</td> <td>Required. The Twitter username of the person.</td>
/// </tr>
/// <tr>
/// <td>userID</td> <td>Optional. The Twitter user identifier number of the person. You can find
/// the user ID using <a href="https://www.google.com/search?q=find+twitter+user+id">online tools</a>.
/// </td>
/// </tr>
/// <tr>
/// <td>showAvatar</td> <td>Optional. Whether to show the avatar of the user. The default is
/// true.</td>
/// </tr>
/// <tr>
/// <td>iconURL</td> <td>Optional. The URL to an image to display. The default is no value, meaning
/// meaning to retrieve the avatar for the Twitter username specified in the user property.</td>
/// </tr>
/// <tr>
/// <td>iconCircular</td> <td>Optional. Whether the icon should be displayed as a circle. The
/// default is YES.</td>
/// </tr>
/// </table>
///
/// ### Example Usage
/// ```xml
/// <!-- Standard size: -->
/// <dict>
/// <key>cellClass</key>
/// <string>HBTwitterCell</string>
/// <key>label</key>
/// <string>HASHBANG Productions</string>
/// <key>user</key>
/// <string>hashbang</string>
/// </dict>
///
/// <!-- Big size: -->
/// <dict>
/// <key>big</key>
/// <true/>
/// <key>cellClass</key>
/// <string>HBTwitterCell</string>
/// <key>height</key>
/// <integer>56</integer>
/// <key>label</key>
/// <string>HASHBANG Productions</string>
/// <key>user</key>
/// <string>hashbang</string>
/// </dict>
///
/// <!-- Without an avatar: -->
/// <dict>
/// <key>cellClass</key>
/// <string>HBTwitterCell</string>
/// <key>label</key>
/// <string>HASHBANG Productions</string>
/// <key>showAvatar</key>
/// <false/>
/// <key>user</key>
/// <string>hashbang</string>
/// </dict>
/// ```
@interface HBTwitterCell : HBLinkTableCell
@end

View File

@@ -0,0 +1,20 @@
#import <Preferences/PSListController.h>
@class HBAppearanceSettings;
NS_ASSUME_NONNULL_BEGIN
/// The PSListController (HBTintAdditions) class category in CepheiPrefs provides a property for
/// setting the desired appearance settings of the view controller.
@interface PSListController (HBTintAdditions)
/// The appearance settings for the view controller.
///
/// This should only be set in an init or viewDidLoad method of the view controller. The result when
/// this property or its properties are changed after the view has appeared is undefined.
@property (nonatomic, copy, nullable, setter=hb_setAppearanceSettings:) HBAppearanceSettings *hb_appearanceSettings NS_SWIFT_NAME(appearanceSettings);
@end
NS_ASSUME_NONNULL_END

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>CepheiPrefs</string>
<key>CFBundleIdentifier</key>
<string>ws.hbang.common.prefs</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Cephei</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>DTPlatformName</key>
<string>iphoneos</string>
<key>HBPackageIdentifier</key>
<string>ws.hbang.common</string>
<key>NSPrincipalClass</key>
<string>HBDemoRootListController</string>
</dict>
</plist>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Buttons leading to, and titles of, sub-sections. -->
<key>ABOUT</key>
<string>حول</string>
<key>CREDITS</key>
<string>الشُكر والتقدير</string>
<key>GENERAL</key>
<string>عام</string>
<key>SUPPORT</key>
<string>الدعم</string>
<!-- Label for switch to enable or disable the tweak. -->
<key>ENABLED</key>
<string>تشغيل</string>
<!-- Label for the state of a switch.-->
<key>OFF</key>
<string>إيقاف</string>
<key>ON</key>
<string>تشغيل</string>
<!-- Button leading to a website. -->
<key>VISIT_WEBSITE</key>
<string>زيارة موقعنا</string>
<!-- Heading above the "Email Support" button. -->
<key>EMAIL_SUPPORT_HEADER</key>
<string>لديك مشكلة؟</string>
<!-- Button leading to a contact form. -->
<key>EMAIL_SUPPORT</key>
<string>الدعم بواسطة البريد الإلكتروني</string>
<!-- Button leading to a donation page. -->
<key>DONATE</key>
<string>جرة البقشيش</string>
<!-- Footer under the donate button. -->
<key>DONATE_FOOTER</key>
<string>يرجى التفكير في إظهار تقديرك لهذه الأداة عبر تبرع صغير لجرة البقشيش.</string>
<!-- Headings above the credits. -->
<key>DEVELOPER</key>
<string>المبرمج</string>
<key>DEVELOPERS</key>
<string>المبرمجون</string>
<key>LEAD_DEVELOPER</key>
<string>رئيس المبرمجين</string>
<key>DESIGNER</key>
<string>المُصمم</string>
<key>DESIGNERS</key>
<string>المُصممون</string>
<key>ICON</key>
<string>الأيكونة</string>
<key>ICONS</key>
<string>الأيكونات</string>
<key>TRANSLATORS</key>
<string>المترجمون</string>
<!-- Title of a prompt that allows typing in a value. -->
<key>ENTER_VALUE</key>
<string>أدخل قيمة</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title of a menu of apps the user can view the package in. -->
<key>OPEN_PACKAGE_IN_TITLE</key>
<string>فتح في...</string>
<!-- Message displayed below the Open In… title when the package comes from a non-default repository. %@ is the repository URL. -->
<key>OPEN_PACKAGE_IN_REPO_NOTICE</key>
<string>سيتم تثبيت هذه الحزمة من مستودع %@.</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The subheading containing the package version. -->
<key>HEADER_VERSION</key>
<string>رقم الإصدار %@</string>
<!-- The subheading containing the package author. -->
<key>HEADER_AUTHOR</key>
<string>بواسطة %@</string>
</dict>
</plist>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title displayed in the navigation bar of the support page. -->
<key>SUPPORT_TITLE</key>
<string>الدعم</string>
<!-- The subject used when sending a support email. %@ %@ is the package name and version respectively. -->
<key>SUPPORT_EMAIL_SUBJECT</key>
<string>الدعم - %@ %@</string>
<!-- Title of error message shown when no email accounts are set up on the device. -->
<key>NO_EMAIL_ACCOUNTS_TITLE</key>
<string>لم يتم إعداد أي حسابات بريد.</string>
<!-- Explanation of how to add an email account to the device. -->
<key>NO_EMAIL_ACCOUNTS_BODY</key>
<string>استخدم إعدادات البريد لإضافة حساب جديد.</string>
</dict>
</plist>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Buttons leading to, and titles of, sub-sections. -->
<key>ABOUT</key>
<string>Sobre</string>
<key>CREDITS</key>
<string>Crèdits</string>
<key>GENERAL</key>
<string>General</string>
<key>SUPPORT</key>
<string>Suport</string>
<!-- Label for switch to enable or disable the tweak. -->
<key>ENABLED</key>
<string>Habilitat</string>
<!-- Label for the state of a switch.-->
<key>OFF</key>
<string>No</string>
<key>ON</key>
<string>Sí</string>
<!-- Button leading to a website. -->
<key>VISIT_WEBSITE</key>
<string>Visitar pàgina web</string>
<!-- Heading above the "Email Support" button. -->
<key>EMAIL_SUPPORT_HEADER</key>
<string>Tens problemes?</string>
<!-- Button leading to a contact form. -->
<key>EMAIL_SUPPORT</key>
<string>Suport per correu-e</string>
<!-- Button leading to a donation page. -->
<key>DONATE</key>
<string>Fer una donació</string>
<!-- Footer under the donate button. -->
<key>DONATE_FOOTER</key>
<string>Si us plau, mostreu el vostra apreci per aquest tweak mitjançant una donació.</string>
<!-- Headings above the credits. -->
<key>DEVELOPER</key>
<string>Desenvolupador</string>
<key>DEVELOPERS</key>
<string>Desenvolupadors</string>
<key>LEAD_DEVELOPER</key>
<string>Desenvolupador en cap</string>
<key>DESIGNER</key>
<string>Dissenyador</string>
<key>DESIGNERS</key>
<string>Dissenyadors</string>
<key>ICON</key>
<string>Icona</string>
<key>ICONS</key>
<string>Icones</string>
<key>TRANSLATORS</key>
<string>Traductors</string>
<!-- Title of a prompt that allows typing in a value. -->
<key>ENTER_VALUE</key>
<string>Introduir valor</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title of a menu of apps the user can view the package in. -->
<key>OPEN_PACKAGE_IN_TITLE</key>
<string>Open in…</string>
<!-- Message displayed below the Open In… title when the package comes from a non-default repository. %@ is the repository URL. -->
<key>OPEN_PACKAGE_IN_REPO_NOTICE</key>
<string>This package will be installed from the repository %@.</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The subheading containing the package version. -->
<key>HEADER_VERSION</key>
<string>Versió %@</string>
<!-- The subheading containing the package author. -->
<key>HEADER_AUTHOR</key>
<string>Fet per %@</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title displayed in the navigation bar of the support page. -->
<key>SUPPORT_TITLE</key>
<string>Suport</string>
<!-- The subject used when sending a support email. %@ %@ is the package name and version respectively. -->
<key>SUPPORT_EMAIL_SUBJECT</key>
<string>%@ %@ – Suport</string>
</dict>
</plist>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Buttons leading to, and titles of, sub-sections. -->
<key>ABOUT</key>
<string>O aplikaci</string>
<key>CREDITS</key>
<string>Podìkování</string>
<key>GENERAL</key>
<string>Obecné</string>
<key>SUPPORT</key>
<string>Podpora</string>
<!-- Label for switch to enable or disable the tweak. -->
<key>ENABLED</key>
<string>Povoleno</string>
<!-- Label for the state of a switch.-->
<key>OFF</key>
<string>Vypnuto</string>
<key>ON</key>
<string>Zapnuto</string>
<!-- Button leading to a website. -->
<key>VISIT_WEBSITE</key>
<string>Navštívit stránku</string>
<!-- Heading above the "Email Support" button. -->
<key>EMAIL_SUPPORT_HEADER</key>
<string>Máte problémy?</string>
<!-- Button leading to a contact form. -->
<key>EMAIL_SUPPORT</key>
<string>E-Mailová podpora</string>
<!-- Button leading to a donation page. -->
<key>DONATE</key>
<string>Přispívání</string>
<!-- Footer under the donate button. -->
<key>DONATE_FOOTER</key>
<string>Poděkujte tomuto projektu přispěním do projektu.</string>
<!-- Headings above the credits. -->
<key>DEVELOPER</key>
<string>Vývojář</string>
<key>DEVELOPERS</key>
<string>Vývojáři</string>
<key>LEAD_DEVELOPER</key>
<string>Hlavní vývojář</string>
<key>DESIGNER</key>
<string>Designér</string>
<key>DESIGNERS</key>
<string>Designeři</string>
<key>ICON</key>
<string>Ikona</string>
<key>ICONS</key>
<string>Ikony</string>
<key>TRANSLATORS</key>
<string>Překladatelé</string>
<!-- Title of a prompt that allows typing in a value. -->
<key>ENTER_VALUE</key>
<string>Přidat hodnotu</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title of a menu of apps the user can view the package in. -->
<key>OPEN_PACKAGE_IN_TITLE</key>
<string>Open in…</string>
<!-- Message displayed below the Open In… title when the package comes from a non-default repository. %@ is the repository URL. -->
<key>OPEN_PACKAGE_IN_REPO_NOTICE</key>
<string>This package will be installed from the repository %@.</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The subheading containing the package version. -->
<key>HEADER_VERSION</key>
<string>Verze %@</string>
<!-- The subheading containing the package author. -->
<key>HEADER_AUTHOR</key>
<string>Od %@</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title displayed in the navigation bar of the support page. -->
<key>SUPPORT_TITLE</key>
<string>Podpora</string>
<!-- The subject used when sending a support email. %@ %@ is the package name and version respectively. -->
<key>SUPPORT_EMAIL_SUBJECT</key>
<string>%@ %@ – Podpora</string>
</dict>
</plist>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Buttons leading to, and titles of, sub-sections. -->
<key>ABOUT</key>
<string>Om</string>
<key>CREDITS</key>
<string>Tak til</string>
<key>GENERAL</key>
<string>Generelt</string>
<key>SUPPORT</key>
<string>Support</string>
<!-- Label for switch to enable or disable the tweak. -->
<key>ENABLED</key>
<string>Aktiveret</string>
<!-- Label for the state of a switch.-->
<key>OFF</key>
<string>Fra</string>
<key>ON</key>
<string>Til</string>
<!-- Button leading to a website. -->
<key>VISIT_WEBSITE</key>
<string>Besøg Hjemmesiden</string>
<!-- Heading above the "Email Support" button. -->
<key>EMAIL_SUPPORT_HEADER</key>
<string>Har du problemer?</string>
<!-- Button leading to a contact form. -->
<key>EMAIL_SUPPORT</key>
<string>Email Support</string>
<!-- Button leading to a donation page. -->
<key>DONATE</key>
<string>Donér</string>
<!-- Footer under the donate button. -->
<key>DONATE_FOOTER</key>
<string>Overvej venligst at vise din taknemmelighed for denne tweak med en lille donation.</string>
<!-- Headings above the credits. -->
<key>DEVELOPER</key>
<string>Udvikler</string>
<key>DEVELOPERS</key>
<string>Udviklere</string>
<key>LEAD_DEVELOPER</key>
<string>Hoved Udvikler</string>
<key>DESIGNER</key>
<string>Designer</string>
<key>DESIGNERS</key>
<string>Designere</string>
<key>ICON</key>
<string>Ikon</string>
<key>ICONS</key>
<string>Icons</string>
<key>TRANSLATORS</key>
<string>Oversættere</string>
<!-- Title of a prompt that allows typing in a value. -->
<key>ENTER_VALUE</key>
<string>Indtast værdi</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title of a menu of apps the user can view the package in. -->
<key>OPEN_PACKAGE_IN_TITLE</key>
<string>Open in…</string>
<!-- Message displayed below the Open In… title when the package comes from a non-default repository. %@ is the repository URL. -->
<key>OPEN_PACKAGE_IN_REPO_NOTICE</key>
<string>This package will be installed from the repository %@.</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The subheading containing the package version. -->
<key>HEADER_VERSION</key>
<string>Version %@</string>
<!-- The subheading containing the package author. -->
<key>HEADER_AUTHOR</key>
<string>Af %@</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title displayed in the navigation bar of the support page. -->
<key>SUPPORT_TITLE</key>
<string>Support</string>
<!-- The subject used when sending a support email. %@ %@ is the package name and version respectively. -->
<key>SUPPORT_EMAIL_SUBJECT</key>
<string>%@ %@ – Support</string>
</dict>
</plist>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Buttons leading to, and titles of, sub-sections. -->
<key>ABOUT</key>
<string>Informationen</string>
<key>CREDITS</key>
<string>Credits</string>
<key>GENERAL</key>
<string>Allgemein</string>
<key>SUPPORT</key>
<string>Support</string>
<!-- Label for switch to enable or disable the tweak. -->
<key>ENABLED</key>
<string>Aktiviert</string>
<!-- Label for the state of a switch.-->
<key>OFF</key>
<string>Aus</string>
<key>ON</key>
<string>Ein</string>
<!-- Button leading to a website. -->
<key>VISIT_WEBSITE</key>
<string>Website besuchen</string>
<!-- Heading above the "Email Support" button. -->
<key>EMAIL_SUPPORT_HEADER</key>
<string>Bestehen Probleme?</string>
<!-- Button leading to a contact form. -->
<key>EMAIL_SUPPORT</key>
<string>Email Support</string>
<!-- Button leading to a donation page. -->
<key>DONATE</key>
<string>Spenden</string>
<!-- Footer under the donate button. -->
<key>DONATE_FOOTER</key>
<string>Zeigen Sie Ihr Interesse an dieser Optimierung, indem Sie eine Spende machen.</string>
<!-- Headings above the credits. -->
<key>DEVELOPER</key>
<string>Entwickler</string>
<key>DEVELOPERS</key>
<string>Entwickler</string>
<key>LEAD_DEVELOPER</key>
<string>Führender Entwickler</string>
<key>DESIGNER</key>
<string>Designer</string>
<key>DESIGNERS</key>
<string>Designer</string>
<key>ICON</key>
<string>Symbol</string>
<key>ICONS</key>
<string>Symbole</string>
<key>TRANSLATORS</key>
<string>Übersetzer</string>
<!-- Title of a prompt that allows typing in a value. -->
<key>ENTER_VALUE</key>
<string>Wert eingeben</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title of a menu of apps the user can view the package in. -->
<key>OPEN_PACKAGE_IN_TITLE</key>
<string>Öffnen in…</string>
<!-- Message displayed below the Open In… title when the package comes from a non-default repository. %@ is the repository URL. -->
<key>OPEN_PACKAGE_IN_REPO_NOTICE</key>
<string>Dieses Paket wird von der Quelle %@ installiert..</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The subheading containing the package version. -->
<key>HEADER_VERSION</key>
<string>Version %@</string>
<!-- The subheading containing the package author. -->
<key>HEADER_AUTHOR</key>
<string>Von %@</string>
</dict>
</plist>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title displayed in the navigation bar of the support page. -->
<key>SUPPORT_TITLE</key>
<string>Support</string>
<!-- The subject used when sending a support email. %@ %@ is the package name and version respectively. -->
<key>SUPPORT_EMAIL_SUBJECT</key>
<string>%@ %@ – Support</string>
<!-- Title of error message shown when no email accounts are set up on the device. -->
<key>NO_EMAIL_ACCOUNTS_TITLE</key>
<string>Es ist kein E-Mail-Konto konfiguriert.</string>
<!-- Explanation of how to add an email account to the device. -->
<key>NO_EMAIL_ACCOUNTS_BODY</key>
<string>Verwenden Sie die E-Mail-Optionen, um ein neues Konto hinzuzufügen.</string>
</dict>
</plist>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Buttons leading to, and titles of, sub-sections. -->
<key>ABOUT</key>
<string>Σχετικά</string>
<key>CREDITS</key>
<string>Έπαινοι</string>
<key>GENERAL</key>
<string>Γενικά</string>
<key>SUPPORT</key>
<string>Υποστήριξη</string>
<!-- Label for switch to enable or disable the tweak. -->
<key>ENABLED</key>
<string>Ενεργοποιημένο</string>
<!-- Label for the state of a switch.-->
<key>OFF</key>
<string>Όχι</string>
<key>ON</key>
<string>Ναι</string>
<!-- Button leading to a website. -->
<key>VISIT_WEBSITE</key>
<string>Επισκεφθείτε την ιστοσελίδα</string>
<!-- Heading above the "Email Support" button. -->
<key>EMAIL_SUPPORT_HEADER</key>
<string>Παρουσιάζονται προβλήματα;</string>
<!-- Button leading to a contact form. -->
<key>EMAIL_SUPPORT</key>
<string>Υποστήριξη μέσω Email</string>
<!-- Button leading to a donation page. -->
<key>DONATE</key>
<string>Εισφορά</string>
<!-- Footer under the donate button. -->
<key>DONATE_FOOTER</key>
<string>Παρακαλώ όπως δείξετε την εκτίμησή σας για αυτό το tweak με μια εισφορά.</string>
<!-- Headings above the credits. -->
<key>DEVELOPER</key>
<string>Δημιουργός</string>
<key>DEVELOPERS</key>
<string>Δημιουργοί</string>
<key>LEAD_DEVELOPER</key>
<string>Κύριος Δημιουργός</string>
<key>DESIGNER</key>
<string>Σχεδιαστής</string>
<key>DESIGNERS</key>
<string>Σχεδιαστές</string>
<key>ICON</key>
<string>Εικονίδιο</string>
<key>ICONS</key>
<string>Εικονίδια</string>
<key>TRANSLATORS</key>
<string>Μεταφραστές</string>
<!-- Title of a prompt that allows typing in a value. -->
<key>ENTER_VALUE</key>
<string>Εισάγετε τιμή</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title of a menu of apps the user can view the package in. -->
<key>OPEN_PACKAGE_IN_TITLE</key>
<string>Open in…</string>
<!-- Message displayed below the Open In… title when the package comes from a non-default repository. %@ is the repository URL. -->
<key>OPEN_PACKAGE_IN_REPO_NOTICE</key>
<string>This package will be installed from the repository %@.</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The subheading containing the package version. -->
<key>HEADER_VERSION</key>
<string>Έκδοση %@</string>
<!-- The subheading containing the package author. -->
<key>HEADER_AUTHOR</key>
<string>Από %@</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title displayed in the navigation bar of the support page. -->
<key>SUPPORT_TITLE</key>
<string>Υποστήριξη</string>
<!-- The subject used when sending a support email. %@ %@ is the package name and version respectively. -->
<key>SUPPORT_EMAIL_SUBJECT</key>
<string>%@ %@ – Υποστήριξη</string>
</dict>
</plist>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Buttons leading to, and titles of, sub-sections. -->
<key>ABOUT</key>
<string>About</string>
<key>CREDITS</key>
<string>Credits</string>
<key>GENERAL</key>
<string>General</string>
<key>SUPPORT</key>
<string>Support</string>
<!-- Label for switch to enable or disable the tweak. -->
<key>ENABLED</key>
<string>Enabled</string>
<!-- Label for the state of a switch.-->
<key>OFF</key>
<string>Off</string>
<key>ON</key>
<string>On</string>
<!-- Button leading to a website. -->
<key>VISIT_WEBSITE</key>
<string>Visit Website</string>
<!-- Heading above the "Email Support" button. -->
<key>EMAIL_SUPPORT_HEADER</key>
<string>Having Problems?</string>
<!-- Button leading to a contact form. -->
<key>EMAIL_SUPPORT</key>
<string>Email Support</string>
<!-- Button leading to a donation page. -->
<key>DONATE</key>
<string>Tip Jar</string>
<!-- Footer under the donate button. -->
<key>DONATE_FOOTER</key>
<string>Please consider showing your appreciation for this tweak with a small donation to the tip jar.</string>
<!-- Headings above the credits. -->
<key>DEVELOPER</key>
<string>Developer</string>
<key>DEVELOPERS</key>
<string>Developers</string>
<key>LEAD_DEVELOPER</key>
<string>Lead Developer</string>
<key>DESIGNER</key>
<string>Designer</string>
<key>DESIGNERS</key>
<string>Designers</string>
<key>ICON</key>
<string>Icon</string>
<key>ICONS</key>
<string>Icons</string>
<key>TRANSLATORS</key>
<string>Translators</string>
<!-- Title of a prompt that allows typing in a value. -->
<key>ENTER_VALUE</key>
<string>Enter Value</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title of a menu of apps the user can view the package in. -->
<key>OPEN_PACKAGE_IN_TITLE</key>
<string>Open in…</string>
<!-- Message displayed below the Open In… title when the package comes from a non-default repository. %@ is the repository URL. -->
<key>OPEN_PACKAGE_IN_REPO_NOTICE</key>
<string>This package will be installed from the repository %@.</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The subheading containing the package version. -->
<key>HEADER_VERSION</key>
<string>Version %@</string>
<!-- The subheading containing the package author. -->
<key>HEADER_AUTHOR</key>
<string>By %@</string>
</dict>
</plist>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title displayed in the navigation bar of the support page. -->
<key>SUPPORT_TITLE</key>
<string>Support</string>
<!-- The subject used when sending a support email. %@ %@ is the package name and version respectively. -->
<key>SUPPORT_EMAIL_SUBJECT</key>
<string>%@ %@ – Support</string>
<!-- Title of error message shown when no email accounts are set up on the device. -->
<key>NO_EMAIL_ACCOUNTS_TITLE</key>
<string>No mail accounts are set up.</string>
<!-- Explanation of how to add an email account to the device. -->
<key>NO_EMAIL_ACCOUNTS_BODY</key>
<string>Use the Mail settings to add a new account.</string>
</dict>
</plist>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Buttons leading to, and titles of, sub-sections. -->
<key>ABOUT</key>
<string>About</string>
<key>CREDITS</key>
<string>Credits</string>
<key>GENERAL</key>
<string>General</string>
<key>SUPPORT</key>
<string>Support</string>
<!-- Label for switch to enable or disable the tweak. -->
<key>ENABLED</key>
<string>Enabled</string>
<!-- Label for the state of a switch.-->
<key>OFF</key>
<string>Off</string>
<key>ON</key>
<string>On</string>
<!-- Button leading to a website. -->
<key>VISIT_WEBSITE</key>
<string>Visit Website</string>
<!-- Heading above the "Email Support" button. -->
<key>EMAIL_SUPPORT_HEADER</key>
<string>Having Problems?</string>
<!-- Button leading to a contact form. -->
<key>EMAIL_SUPPORT</key>
<string>Email Support</string>
<!-- Button leading to a donation page. -->
<key>DONATE</key>
<string>Tip Jar</string>
<!-- Footer under the donate button. -->
<key>DONATE_FOOTER</key>
<string>Please consider showing your appreciation for this tweak with a small donation to the tip jar.</string>
<!-- Headings above the credits. -->
<key>DEVELOPER</key>
<string>Developer</string>
<key>DEVELOPERS</key>
<string>Developers</string>
<key>LEAD_DEVELOPER</key>
<string>Lead Developer</string>
<key>DESIGNER</key>
<string>Designer</string>
<key>DESIGNERS</key>
<string>Designers</string>
<key>ICON</key>
<string>Icon</string>
<key>ICONS</key>
<string>Icons</string>
<key>TRANSLATORS</key>
<string>Translators</string>
<!-- Title of a prompt that allows typing in a value. -->
<key>ENTER_VALUE</key>
<string>Enter Value</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title of a menu of apps the user can view the package in. -->
<key>OPEN_PACKAGE_IN_TITLE</key>
<string>Open in…</string>
<!-- Message displayed below the Open In… title when the package comes from a non-default repository. %@ is the repository URL. -->
<key>OPEN_PACKAGE_IN_REPO_NOTICE</key>
<string>This package will be installed from the repository %@.</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The subheading containing the package version. -->
<key>HEADER_VERSION</key>
<string>Version %@</string>
<!-- The subheading containing the package author. -->
<key>HEADER_AUTHOR</key>
<string>By %@</string>
</dict>
</plist>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title displayed in the navigation bar of the support page. -->
<key>SUPPORT_TITLE</key>
<string>Support</string>
<!-- The subject used when sending a support email. %@ %@ is the package name and version respectively. -->
<key>SUPPORT_EMAIL_SUBJECT</key>
<string>%@ %@ – Support</string>
<!-- Title of error message shown when no email accounts are set up on the device. -->
<key>NO_EMAIL_ACCOUNTS_TITLE</key>
<string>No mail accounts are set up.</string>
<!-- Explanation of how to add an email account to the device. -->
<key>NO_EMAIL_ACCOUNTS_BODY</key>
<string>Use the Mail settings to add a new account.</string>
</dict>
</plist>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Buttons leading to, and titles of, sub-sections. -->
<key>ABOUT</key>
<string>About</string>
<key>CREDITS</key>
<string>Credits</string>
<key>GENERAL</key>
<string>General</string>
<key>SUPPORT</key>
<string>Support</string>
<!-- Label for switch to enable or disable the tweak. -->
<key>ENABLED</key>
<string>Enabled</string>
<!-- Label for the state of a switch.-->
<key>OFF</key>
<string>Off</string>
<key>ON</key>
<string>On</string>
<!-- Button leading to a website. -->
<key>VISIT_WEBSITE</key>
<string>Visit Website</string>
<!-- Heading above the "Email Support" button. -->
<key>EMAIL_SUPPORT_HEADER</key>
<string>Having Problems?</string>
<!-- Button leading to a contact form. -->
<key>EMAIL_SUPPORT</key>
<string>Email Support</string>
<!-- Button leading to a donation page. -->
<key>DONATE</key>
<string>Tip Jar</string>
<!-- Footer under the donate button. -->
<key>DONATE_FOOTER</key>
<string>Please consider showing your appreciation for this tweak with a small donation to the tip jar.</string>
<!-- Headings above the credits. -->
<key>DEVELOPER</key>
<string>Developer</string>
<key>DEVELOPERS</key>
<string>Developers</string>
<key>LEAD_DEVELOPER</key>
<string>Lead Developer</string>
<key>DESIGNER</key>
<string>Designer</string>
<key>DESIGNERS</key>
<string>Designers</string>
<key>ICON</key>
<string>Icon</string>
<key>ICONS</key>
<string>Icons</string>
<key>TRANSLATORS</key>
<string>Translators</string>
<!-- Title of a prompt that allows typing in a value. -->
<key>ENTER_VALUE</key>
<string>Enter Value</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title of a menu of apps the user can view the package in. -->
<key>OPEN_PACKAGE_IN_TITLE</key>
<string>Open in…</string>
<!-- Message displayed below the Open In… title when the package comes from a non-default repository. %@ is the repository URL. -->
<key>OPEN_PACKAGE_IN_REPO_NOTICE</key>
<string>This package will be installed from the repository %@.</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The subheading containing the package version. -->
<key>HEADER_VERSION</key>
<string>Version %@</string>
<!-- The subheading containing the package author. -->
<key>HEADER_AUTHOR</key>
<string>By %@</string>
</dict>
</plist>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title displayed in the navigation bar of the support page. -->
<key>SUPPORT_TITLE</key>
<string>Support</string>
<!-- The subject used when sending a support email. %@ %@ is the package name and version respectively. -->
<key>SUPPORT_EMAIL_SUBJECT</key>
<string>%@ %@ – Support</string>
<!-- Title of error message shown when no email accounts are set up on the device. -->
<key>NO_EMAIL_ACCOUNTS_TITLE</key>
<string>No mail accounts are set up.</string>
<!-- Explanation of how to add an email account to the device. -->
<key>NO_EMAIL_ACCOUNTS_BODY</key>
<string>Use the Mail settings to add a new account.</string>
</dict>
</plist>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>entry</key>
<dict>
<key>bundle</key>
<string>Cephei</string>
<key>cell</key>
<string>PSLinkCell</string>
<key>detail</key>
<string>HBDemoRootListController</string>
<key>icon</key>
<string>icon.png</string>
<key>isController</key>
<true/>
<key>label</key>
<string>Cephei Demo</string>
</dict>
</dict>
</plist>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Buttons leading to, and titles of, sub-sections. -->
<key>ABOUT</key>
<string>Acerca</string>
<key>CREDITS</key>
<string>Créditos</string>
<key>GENERAL</key>
<string>General</string>
<key>SUPPORT</key>
<string>Soporte</string>
<!-- Label for switch to enable or disable the tweak. -->
<key>ENABLED</key>
<string>Habilitado</string>
<!-- Label for the state of a switch.-->
<key>OFF</key>
<string>No</string>
<key>ON</key>
<string>Sí</string>
<!-- Button leading to a website. -->
<key>VISIT_WEBSITE</key>
<string>Visitar sitio web</string>
<!-- Heading above the "Email Support" button. -->
<key>EMAIL_SUPPORT_HEADER</key>
<string>¿Tienes problemas?</string>
<!-- Button leading to a contact form. -->
<key>EMAIL_SUPPORT</key>
<string>Soporte por email</string>
<!-- Button leading to a donation page. -->
<key>DONATE</key>
<string>Tarro de Donaciones</string>
<!-- Footer under the donate button. -->
<key>DONATE_FOOTER</key>
<string>Considera mostrar tu aprecio a este tweak con una pequeña donación al tarro de donaciones.</string>
<!-- Headings above the credits. -->
<key>DEVELOPER</key>
<string>Desarrollador</string>
<key>DEVELOPERS</key>
<string>Desarrolladores</string>
<key>LEAD_DEVELOPER</key>
<string>Desarrollador principal</string>
<key>DESIGNER</key>
<string>Diseñador</string>
<key>DESIGNERS</key>
<string>Diseñadores</string>
<key>ICON</key>
<string>Icono</string>
<key>ICONS</key>
<string>Iconos</string>
<key>TRANSLATORS</key>
<string>Traductores</string>
<!-- Title of a prompt that allows typing in a value. -->
<key>ENTER_VALUE</key>
<string>Introducid valor</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title of a menu of apps the user can view the package in. -->
<key>OPEN_PACKAGE_IN_TITLE</key>
<string>Abrir en…</string>
<!-- Message displayed below the Open In… title when the package comes from a non-default repository. %@ is the repository URL. -->
<key>OPEN_PACKAGE_IN_REPO_NOTICE</key>
<string>Este paquete será instalado del repositorio %@.</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The subheading containing the package version. -->
<key>HEADER_VERSION</key>
<string>Versión %@</string>
<!-- The subheading containing the package author. -->
<key>HEADER_AUTHOR</key>
<string>Por %@</string>
</dict>
</plist>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title displayed in the navigation bar of the support page. -->
<key>SUPPORT_TITLE</key>
<string>Soporte</string>
<!-- The subject used when sending a support email. %@ %@ is the package name and version respectively. -->
<key>SUPPORT_EMAIL_SUBJECT</key>
<string>%@ %@ – Soporte</string>
<!-- Title of error message shown when no email accounts are set up on the device. -->
<key>NO_EMAIL_ACCOUNTS_TITLE</key>
<string>No hay cuentas de correo configuradas.</string>
<!-- Explanation of how to add an email account to the device. -->
<key>NO_EMAIL_ACCOUNTS_BODY</key>
<string>Usa los ajustes de Mail para añadir una nueva cuenta.</string>
</dict>
</plist>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Buttons leading to, and titles of, sub-sections. -->
<key>ABOUT</key>
<string>Acerca</string>
<key>CREDITS</key>
<string>Créditos</string>
<key>GENERAL</key>
<string>General</string>
<key>SUPPORT</key>
<string>Soporte</string>
<!-- Label for switch to enable or disable the tweak. -->
<key>ENABLED</key>
<string>Habilitado</string>
<!-- Label for the state of a switch.-->
<key>OFF</key>
<string>No</string>
<key>ON</key>
<string>Sí</string>
<!-- Button leading to a website. -->
<key>VISIT_WEBSITE</key>
<string>Visitar sitio web</string>
<!-- Heading above the "Email Support" button. -->
<key>EMAIL_SUPPORT_HEADER</key>
<string>¿Tienes problemas?</string>
<!-- Button leading to a contact form. -->
<key>EMAIL_SUPPORT</key>
<string>Soporte por email</string>
<!-- Button leading to a donation page. -->
<key>DONATE</key>
<string>Tarro de Donaciones</string>
<!-- Footer under the donate button. -->
<key>DONATE_FOOTER</key>
<string>Considera mostrar tu aprecio a este tweak con una pequeña donación al tarro de donaciones.</string>
<!-- Headings above the credits. -->
<key>DEVELOPER</key>
<string>Desarrollador</string>
<key>DEVELOPERS</key>
<string>Desarrolladores</string>
<key>LEAD_DEVELOPER</key>
<string>Desarrollador principal</string>
<key>DESIGNER</key>
<string>Diseñador</string>
<key>DESIGNERS</key>
<string>Diseñadores</string>
<key>ICON</key>
<string>Icono</string>
<key>ICONS</key>
<string>Iconos</string>
<key>TRANSLATORS</key>
<string>Traductores</string>
<!-- Title of a prompt that allows typing in a value. -->
<key>ENTER_VALUE</key>
<string>Introducid valor</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title of a menu of apps the user can view the package in. -->
<key>OPEN_PACKAGE_IN_TITLE</key>
<string>Abrir en…</string>
<!-- Message displayed below the Open In… title when the package comes from a non-default repository. %@ is the repository URL. -->
<key>OPEN_PACKAGE_IN_REPO_NOTICE</key>
<string>Este paquete será instalado del repositorio %@.</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The subheading containing the package version. -->
<key>HEADER_VERSION</key>
<string>Versión %@</string>
<!-- The subheading containing the package author. -->
<key>HEADER_AUTHOR</key>
<string>Por %@</string>
</dict>
</plist>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title displayed in the navigation bar of the support page. -->
<key>SUPPORT_TITLE</key>
<string>Soporte</string>
<!-- The subject used when sending a support email. %@ %@ is the package name and version respectively. -->
<key>SUPPORT_EMAIL_SUBJECT</key>
<string>%@ %@ – Soporte</string>
<!-- Title of error message shown when no email accounts are set up on the device. -->
<key>NO_EMAIL_ACCOUNTS_TITLE</key>
<string>No hay cuentas de correo configuradas.</string>
<!-- Explanation of how to add an email account to the device. -->
<key>NO_EMAIL_ACCOUNTS_BODY</key>
<string>Usa los ajustes de Mail para añadir una nueva cuenta.</string>
</dict>
</plist>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Buttons leading to, and titles of, sub-sections. -->
<key>ABOUT</key>
<string>Tietoja</string>
<key>CREDITS</key>
<string>Kiitokset</string>
<key>GENERAL</key>
<string>Yleiset</string>
<key>SUPPORT</key>
<string>Tuki</string>
<!-- Label for switch to enable or disable the tweak. -->
<key>ENABLED</key>
<string>Päällä</string>
<!-- Label for the state of a switch.-->
<key>OFF</key>
<string>Pois</string>
<key>ON</key>
<string>Päällä</string>
<!-- Button leading to a website. -->
<key>VISIT_WEBSITE</key>
<string>Vieraile verkkosivulla</string>
<!-- Heading above the "Email Support" button. -->
<key>EMAIL_SUPPORT_HEADER</key>
<string>Onko ongelmia?</string>
<!-- Button leading to a contact form. -->
<key>EMAIL_SUPPORT</key>
<string>Sähköpostituki</string>
<!-- Button leading to a donation page. -->
<key>DONATE</key>
<string>Lahjoita</string>
<!-- Footer under the donate button. -->
<key>DONATE_FOOTER</key>
<string>Mikäli olet tyytyväinen tähän twiikkiin, harkitse lahjoituksen antamista.</string>
<!-- Headings above the credits. -->
<key>DEVELOPER</key>
<string>Kehittäjä</string>
<key>DEVELOPERS</key>
<string>Kehittäjät</string>
<key>LEAD_DEVELOPER</key>
<string>Pääkehittäjä</string>
<key>DESIGNER</key>
<string>Suunnittelija</string>
<key>DESIGNERS</key>
<string>Suunnittelijat</string>
<key>ICON</key>
<string>Kuvake</string>
<key>ICONS</key>
<string>Kuvakkeet</string>
<key>TRANSLATORS</key>
<string>Kääntäjät</string>
<!-- Title of a prompt that allows typing in a value. -->
<key>ENTER_VALUE</key>
<string>Anna arvo</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title of a menu of apps the user can view the package in. -->
<key>OPEN_PACKAGE_IN_TITLE</key>
<string>Open in…</string>
<!-- Message displayed below the Open In… title when the package comes from a non-default repository. %@ is the repository URL. -->
<key>OPEN_PACKAGE_IN_REPO_NOTICE</key>
<string>This package will be installed from the repository %@.</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The subheading containing the package version. -->
<key>HEADER_VERSION</key>
<string>Versio %@</string>
<!-- The subheading containing the package author. -->
<key>HEADER_AUTHOR</key>
<string>%@</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title displayed in the navigation bar of the support page. -->
<key>SUPPORT_TITLE</key>
<string>Tuki</string>
<!-- The subject used when sending a support email. %@ %@ is the package name and version respectively. -->
<key>SUPPORT_EMAIL_SUBJECT</key>
<string>%@ %@ – Tuki</string>
</dict>
</plist>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Buttons leading to, and titles of, sub-sections. -->
<key>ABOUT</key>
<string>À propos</string>
<key>CREDITS</key>
<string>Crédits</string>
<key>GENERAL</key>
<string>Général</string>
<key>SUPPORT</key>
<string>Aide</string>
<!-- Label for switch to enable or disable the tweak. -->
<key>ENABLED</key>
<string>Activé</string>
<!-- Label for the state of a switch.-->
<key>OFF</key>
<string>Désactivé</string>
<key>ON</key>
<string>Activé</string>
<!-- Button leading to a website. -->
<key>VISIT_WEBSITE</key>
<string>Visiter le site web</string>
<!-- Heading above the "Email Support" button. -->
<key>EMAIL_SUPPORT_HEADER</key>
<string>Des problèmes ?</string>
<!-- Button leading to a contact form. -->
<key>EMAIL_SUPPORT</key>
<string>Aide par email</string>
<!-- Button leading to a donation page. -->
<key>DONATE</key>
<string>Faire un don</string>
<!-- Footer under the donate button. -->
<key>DONATE_FOOTER</key>
<string>Montrez votre intérêt pour ce tweak en faisant un don</string>
<!-- Headings above the credits. -->
<key>DEVELOPER</key>
<string>Développeur</string>
<key>DEVELOPERS</key>
<string>Développeurs</string>
<key>LEAD_DEVELOPER</key>
<string>Développeur principal</string>
<key>DESIGNER</key>
<string>Designer</string>
<key>DESIGNERS</key>
<string>Designers</string>
<key>ICON</key>
<string>Icône</string>
<key>ICONS</key>
<string>Icônes</string>
<key>TRANSLATORS</key>
<string>Traducteurs</string>
<!-- Title of a prompt that allows typing in a value. -->
<key>ENTER_VALUE</key>
<string>Entrer une valeur</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title of a menu of apps the user can view the package in. -->
<key>OPEN_PACKAGE_IN_TITLE</key>
<string>Ouvrir dans…</string>
<!-- Message displayed below the Open In… title when the package comes from a non-default repository. %@ is the repository URL. -->
<key>OPEN_PACKAGE_IN_REPO_NOTICE</key>
<string>Ce paquet sera installé depuis la source %@.</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The subheading containing the package version. -->
<key>HEADER_VERSION</key>
<string>Version %@</string>
<!-- The subheading containing the package author. -->
<key>HEADER_AUTHOR</key>
<string>Par %@</string>
</dict>
</plist>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title displayed in the navigation bar of the support page. -->
<key>SUPPORT_TITLE</key>
<string>Aide</string>
<!-- The subject used when sending a support email. %@ %@ is the package name and version respectively. -->
<key>SUPPORT_EMAIL_SUBJECT</key>
<string>%@ %@ – Aide</string>
<!-- Title of error message shown when no email accounts are set up on the device. -->
<key>NO_EMAIL_ACCOUNTS_TITLE</key>
<string>Aucun compte mail n'est paramétré</string>
<!-- Explanation of how to add an email account to the device. -->
<key>NO_EMAIL_ACCOUNTS_BODY</key>
<string>Utilisez les options de Mail pour ajouter un nouveau compte.</string>
</dict>
</plist>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Buttons leading to, and titles of, sub-sections. -->
<key>ABOUT</key>
<string>À propos</string>
<key>CREDITS</key>
<string>Crédits</string>
<key>GENERAL</key>
<string>Général</string>
<key>SUPPORT</key>
<string>Aide</string>
<!-- Label for switch to enable or disable the tweak. -->
<key>ENABLED</key>
<string>Activé</string>
<!-- Label for the state of a switch.-->
<key>OFF</key>
<string>Désactivé</string>
<key>ON</key>
<string>Activé</string>
<!-- Button leading to a website. -->
<key>VISIT_WEBSITE</key>
<string>Visiter le site web</string>
<!-- Heading above the "Email Support" button. -->
<key>EMAIL_SUPPORT_HEADER</key>
<string>Des problèmes?</string>
<!-- Button leading to a contact form. -->
<key>EMAIL_SUPPORT</key>
<string>Aide par email</string>
<!-- Button leading to a donation page. -->
<key>DONATE</key>
<string>Faire un don</string>
<!-- Footer under the donate button. -->
<key>DONATE_FOOTER</key>
<string>Montrez votre intérêt pour ce tweak en faisant un don</string>
<!-- Headings above the credits. -->
<key>DEVELOPER</key>
<string>Développeur</string>
<key>DEVELOPERS</key>
<string>Développeurs</string>
<key>LEAD_DEVELOPER</key>
<string>Développeur principal</string>
<key>DESIGNER</key>
<string>Designer</string>
<key>DESIGNERS</key>
<string>Designers</string>
<key>ICON</key>
<string>Icône</string>
<key>ICONS</key>
<string>Icônes</string>
<key>TRANSLATORS</key>
<string>Traducteurs</string>
<!-- Title of a prompt that allows typing in a value. -->
<key>ENTER_VALUE</key>
<string>Entrer une valeur</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title of a menu of apps the user can view the package in. -->
<key>OPEN_PACKAGE_IN_TITLE</key>
<string>Ouvrir dans…</string>
<!-- Message displayed below the Open In… title when the package comes from a non-default repository. %@ is the repository URL. -->
<key>OPEN_PACKAGE_IN_REPO_NOTICE</key>
<string>Ce paquet sera installé depuis la source %@.</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The subheading containing the package version. -->
<key>HEADER_VERSION</key>
<string>Version %@</string>
<!-- The subheading containing the package author. -->
<key>HEADER_AUTHOR</key>
<string>Par %@</string>
</dict>
</plist>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title displayed in the navigation bar of the support page. -->
<key>SUPPORT_TITLE</key>
<string>Aide</string>
<!-- The subject used when sending a support email. %@ %@ is the package name and version respectively. -->
<key>SUPPORT_EMAIL_SUBJECT</key>
<string>%@ %@ – Aide</string>
<!-- Title of error message shown when no email accounts are set up on the device. -->
<key>NO_EMAIL_ACCOUNTS_TITLE</key>
<string>Aucun compte mail n'est paramétré</string>
<!-- Explanation of how to add an email account to the device. -->
<key>NO_EMAIL_ACCOUNTS_BODY</key>
<string>Utilisez les options de Mail pour ajouter un nouveau compte.</string>
</dict>
</plist>

View File

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Buttons leading to, and titles of, sub-sections. -->
<key>ABOUT</key>
<string>אודות</string>
<key>CREDITS</key>
<string>קרדיטים</string>
<key>GENERAL</key>
<string>כללי</string>
<key>SUPPORT</key>
<string>תמיכה</string>
<!-- Label for switch to enable or disable the tweak. -->
<key>ENABLED</key>
<string>מופעל</string>
<!-- Label for the state of a switch.-->
<key>OFF</key>
<string>כבוי</string>
<key>ON</key>
<string>פעיל</string>
<!-- Button leading to a website. -->
<key>VISIT_WEBSITE</key>
<string>בקר/י באתר</string>
<!-- Heading above the "Email Support" button. -->
<key>EMAIL_SUPPORT_HEADER</key>
<string>חווה בעיות?</string>
<!-- Button leading to a contact form. -->
<key>EMAIL_SUPPORT</key>
<string>שלח/י דואר לתמיכה</string>
<!-- Button leading to a donation page. -->
<key>DONATE</key>
<string>כוס טיפים</string>
<key>DONATE_FOOTER</key>
<string>אנא שקול/י להראות את הערתך לטוויק זה עם תרומה קטנה לכוס הטיפים.</string>
<!-- Headings above the credits. -->
<key>DEVELOPER</key>
<string>מפתח</string>
<key>DEVELOPERS</key>
<string>מפתחים</string>
<key>LEAD_DEVELOPER</key>
<string>מפתח מוביל</string>
<key>DESIGNER</key>
<string>מעצב</string>
<key>DESIGNERS</key>
<string>מעצבים</string>
<key>ICON</key>
<string>אייקון</string>
<key>ICONS</key>
<string>אייקונים</string>
<key>TRANSLATORS</key>
<string>מתרגמים</string>
<!-- Title of a prompt that allows typing in a value. -->
<key>ENTER_VALUE</key>
<string>הכנס ערך</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title of a menu of apps the user can view the package in. -->
<key>OPEN_PACKAGE_IN_TITLE</key>
<string>פתח ב...</string>
<!-- Message displayed below the Open In… title when the package comes from a non-default repository. %@ is the repository URL. -->
<key>OPEN_PACKAGE_IN_REPO_NOTICE</key>
<string>חבילה זו תותקן מהמקור %@.</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The subheading containing the package version. -->
<key>HEADER_VERSION</key>
<string>גרסה %@</string>
<!-- The subheading containing the package author. -->
<key>HEADER_AUTHOR</key>
<string>על ידי %@</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title displayed in the navigation bar of the support page. -->
<key>SUPPORT_TITLE</key>
<string>אין חשבונות דוא"ל שהוגדרו..</string>
<!-- Explanation of how to add an email account to the device. -->
<key>NO_EMAIL_ACCOUNTS_BODY</key>
<string>השתמש/י בהגדרות דוא"ל כדי להוסיף חשבון חדש.</string>
</dict>
</plist>

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Buttons leading to, and titles of, sub-sections. -->
<key>ABOUT</key>
<string>के बारे में</string>
<key>CREDITS</key>
<string>क्रेडिट्स</string>
<key>GENERAL</key>
<string>सामान्य</string>
<key>SUPPORT</key>
<string>समर्थन</string>
<!-- Label for switch to enable or disable the tweak. -->
<key>ENABLED</key>
<string>सक्षम किया</string>
<!-- Label for the state of a switch.-->
<key>OFF</key>
<string>बंद</string>
<key>ON</key>
<string>चालू</string>
<!-- Button leading to a website. -->
<key>VISIT_WEBSITE</key>
<string>बेवसाइट देखना</string>
<!-- Heading above the "Email Support" button. -->
<key>EMAIL_SUPPORT_HEADER</key>
<string>समस्याएं आ रही हैं?</string>
<!-- Button leading to a contact form. -->
<key>EMAIL_SUPPORT</key>
<string>ई - मेल समर्थन</string>
<!-- Button leading to a donation page. -->
<key>DONATE</key>
<string>दान</string>
<!-- Footer under the donate button. -->
<key>DONATE_FOOTER</key>
<string>एक दान के साथ इस tweak के लिए अपनी प्रशंसा दिखा पर विचार करें।</string>
<!-- Headings above the credits. -->
<key>DEVELOPER</key>
<string>डेवलपर</string>
<key>DEVELOPERS</key>
<string>डेवलपर्स</string>
<key>LEAD_DEVELOPER</key>
<string>प्रमुख डेवलपर</string>
<key>DESIGNER</key>
<string>डिजाइनर</string>
<key>DESIGNERS</key>
<string>डिजाइनर</string>
<key>ICON</key>
<string>चिह्न</string>
<key>ICONS</key>
<string>प्रतीक</string>
<key>TRANSLATORS</key>
<string>अनुवादक</string>
<!-- Title of a prompt that allows typing in a value. -->
<key>ENTER_VALUE</key>
<string> मूल्य दर्ज करें</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title of a menu of apps the user can view the package in. -->
<key>OPEN_PACKAGE_IN_TITLE</key>
<string>Open in…</string>
<!-- Message displayed below the Open In… title when the package comes from a non-default repository. %@ is the repository URL. -->
<key>OPEN_PACKAGE_IN_REPO_NOTICE</key>
<string>This package will be installed from the repository %@.</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- The subheading containing the package version. -->
<key>HEADER_VERSION</key>
<string>संस्करण %@</string>
<!-- The subheading containing the package author. -->
<key>HEADER_AUTHOR</key>
<string>द्वारा %@</string>
</dict>
</plist>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Title displayed in the navigation bar of the support page. -->
<key>SUPPORT_TITLE</key>
<string>समर्थन</string>
<!-- The subject used when sending a support email. %@ %@ is the package name and version respectively. -->
<key>SUPPORT_EMAIL_SUBJECT</key>
<string>%@ %@ – समर्थन</string>
</dict>
</plist>

Some files were not shown because too many files have changed in this diff Show More