feat: app theme selector

This commit is contained in:
TrueZhuanjia
2025-10-18 23:30:40 +08:00
parent cd415cc639
commit fee003b824
12 changed files with 362 additions and 35 deletions
+30 -3
View File
@@ -1360,16 +1360,16 @@
</constraints>
</stackView>
<stackView verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" ambiguous="YES" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="Oyk-L5-WTt" userLabel="singleTapSensitivityStack">
<rect key="frame" x="440" y="307" width="532" height="55.5"/>
<rect key="frame" x="440" y="307" width="572" height="55.5"/>
<subviews>
<label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Single Tap Sensitivity" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SuN-S2-8hj">
<rect key="frame" x="0.0" y="0.0" width="532" height="20.5"/>
<rect key="frame" x="0.0" y="0.0" width="572" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<slider verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="2" minValue="0.0" maxValue="5" minimumValueImage="0.square" catalog="system" maximumValueImage="5.square" translatesAutoresizingMaskIntoConstraints="NO" id="j4n-De-TRX" userLabel="Single Tap Sensitivity Slider">
<rect key="frame" x="-2" y="25.5" width="536" height="31"/>
<rect key="frame" x="-2" y="25.5" width="576" height="31"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="qOF-42-hPO"/>
</constraints>
@@ -1425,11 +1425,38 @@
<constraint firstAttribute="width" constant="380" id="xGn-ns-OEX"/>
</constraints>
</stackView>
<stackView verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" ambiguous="YES" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="Wf6-BA-Mdv" userLabel="appThemeStack">
<rect key="frame" x="440" y="2080" width="380" height="56.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Theme" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6GU-ZN-w6X">
<rect key="frame" x="0.0" y="0.0" width="380" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="0.93902439019999995" green="0.9625305918" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<segmentedControl verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="wi6-L4-KwS">
<rect key="frame" x="0.0" y="25.5" width="380" height="32"/>
<segments>
<segment title="System"/>
<segment title="Light"/>
<segment title="Dark"/>
</segments>
<color key="tintColor" red="0.6716768742" green="0.61711704730000005" blue="0.99902987480000005" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="selectedSegmentTintColor" systemColor="linkColor"/>
</segmentedControl>
</subviews>
<constraints>
<constraint firstAttribute="width" constant="380" id="Lsh-dC-dOa"/>
<constraint firstAttribute="height" constant="56.5" id="lWx-Il-ra7"/>
</constraints>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
<size key="freeformSize" width="2165" height="5000"/>
<connections>
<outlet property="appThemeSelector" destination="wi6-L4-KwS" id="mf9-YY-eyE"/>
<outlet property="appThemeStack" destination="Wf6-BA-Mdv" id="hlq-bB-S8N"/>
<outlet property="audioConfigSelector" destination="iZL-dA-jk9" id="Yja-os-o6g"/>
<outlet property="audioConfigStack" destination="qnG-5F-2YY" id="kFX-VK-vuK"/>
<outlet property="audioOnPcStack" destination="Bbr-Wj-Z75" id="c2K-3R-whg"/>
+47 -20
View File
@@ -1754,26 +1754,6 @@
<constraint firstAttribute="height" constant="89.5" id="q5y-ZD-WeN"/>
</constraints>
</stackView>
<stackView verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" ambiguous="YES" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="N0i-z6-WgC" userLabel="singleTapSensitivityStack">
<rect key="frame" x="410" y="2455" width="524" height="55.5"/>
<subviews>
<label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Single Tap Sensitivity" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WzD-wo-Wum">
<rect key="frame" x="0.0" y="0.0" width="524" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<slider verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="2" minValue="0.0" maxValue="5" minimumValueImage="0.square" catalog="system" maximumValueImage="5.square" translatesAutoresizingMaskIntoConstraints="NO" id="uCa-Oa-7mv" userLabel="Single Tap Sensitivity Slider">
<rect key="frame" x="-2" y="25.5" width="528" height="31"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="XXP-GP-uhn"/>
</constraints>
</slider>
</subviews>
<constraints>
<constraint firstAttribute="height" constant="55.5" id="sb3-hm-dEr"/>
</constraints>
</stackView>
<stackView verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" ambiguous="YES" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="9r0-OX-NYn" userLabel="performanceGraphs Stack">
<rect key="frame" x="437" y="1784" width="380" height="68"/>
<subviews>
@@ -2188,6 +2168,31 @@
<constraint firstAttribute="height" constant="56.5" id="P9y-0n-ygm"/>
</constraints>
</stackView>
<stackView verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" ambiguous="YES" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="Wpg-TL-KJy" userLabel="appThemeStack">
<rect key="frame" x="437" y="2241" width="380" height="56.5"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Theme" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yF6-p8-b2s">
<rect key="frame" x="0.0" y="0.0" width="380" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="0.93902439019999995" green="0.9625305918" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<segmentedControl verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="pNz-vd-Sr9">
<rect key="frame" x="0.0" y="25.5" width="380" height="32"/>
<segments>
<segment title="System"/>
<segment title="Light"/>
<segment title="Dark"/>
</segments>
<color key="tintColor" red="0.6716768742" green="0.61711704730000005" blue="0.99902987480000005" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<color key="selectedSegmentTintColor" systemColor="linkColor"/>
</segmentedControl>
</subviews>
<constraints>
<constraint firstAttribute="height" constant="56.5" id="pfi-OO-b9f"/>
<constraint firstAttribute="width" constant="380" id="zZy-Ze-n4I"/>
</constraints>
</stackView>
<stackView verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" ambiguous="YES" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="Nfo-3b-3IK" userLabel="Edge Trigger Sensitivity">
<rect key="frame" x="18" y="1326" width="380" height="55.5"/>
<subviews>
@@ -2208,11 +2213,33 @@
<constraint firstAttribute="height" constant="55.5" id="xcN-Av-idY"/>
</constraints>
</stackView>
<stackView verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" ambiguous="YES" axis="vertical" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="N0i-z6-WgC" userLabel="singleTapSensitivityStack">
<rect key="frame" x="437" y="2383" width="384" height="55.5"/>
<subviews>
<label verifyAmbiguity="off" opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Single Tap Sensitivity" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WzD-wo-Wum">
<rect key="frame" x="0.0" y="0.0" width="384" height="20.5"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<slider verifyAmbiguity="off" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="2" minValue="0.0" maxValue="5" minimumValueImage="0.square" catalog="system" maximumValueImage="5.square" translatesAutoresizingMaskIntoConstraints="NO" id="uCa-Oa-7mv" userLabel="Single Tap Sensitivity Slider">
<rect key="frame" x="-2" y="25.5" width="388" height="31"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="XXP-GP-uhn"/>
</constraints>
</slider>
</subviews>
<constraints>
<constraint firstAttribute="height" constant="55.5" id="sb3-hm-dEr"/>
</constraints>
</stackView>
</subviews>
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
<size key="freeformSize" width="1200" height="5000"/>
<connections>
<outlet property="appThemeSelector" destination="pNz-vd-Sr9" id="nYB-7o-wkT"/>
<outlet property="appThemeStack" destination="Wpg-TL-KJy" id="Vhd-oB-Sy3"/>
<outlet property="audioConfigSelector" destination="hfR-K8-Ti4" id="4La-bI-jLq"/>
<outlet property="audioConfigStack" destination="Rld-CY-qzs" id="dmf-m8-sor"/>
<outlet property="audioOnPcStack" destination="aud-Zf-37T" id="58Y-ri-ILs"/>
+6
View File
@@ -16,6 +16,12 @@
@interface DataManager : NSObject
typedef NS_ENUM(NSUInteger, AppTheme) {
SystemTheme,
LightTheme,
DarkTheme
};
typedef NS_ENUM(NSUInteger, UINavigationBarHeight) {
UINavigationBarHeightIPad = 50,
UINavigationBarHeightIPhone = 44
+1
View File
@@ -80,6 +80,7 @@
@property (nonatomic) BOOL rememberFoldState;
@property (nonatomic, retain) NSNumber * singleTapSensitivity;
@property (nonatomic, retain) NSNumber * hapticEngine;
@property (nonatomic, retain) NSNumber * appTheme;
@property (nonatomic, retain) NSNumber * edgeSlidingSensitivity;
@property (nonatomic, retain) NSNumber * framePacingMode;
+1
View File
@@ -136,6 +136,7 @@
self.singleTapSensitivity = settings.singleTapSensitivity;
self.backgroundSessionTimer = settings.backroundSessionTimer;
self.edgeSlidingSensitivity = settings.edgeSlidingSensitivity;
self.appTheme = settings.appTheme;
self.hapticEngine = settings.hapticEngine;
#endif
self.uniqueId = settings.uniqueId;
@@ -21,6 +21,7 @@
<relationship name="appList" optional="YES" toMany="YES" deletionRule="Cascade" destinationEntity="App" inverseName="host" inverseEntity="App" syncable="YES"/>
</entity>
<entity name="Settings" representedClassName="Settings" syncable="YES" codeGenerationType="class">
<attribute name="appTheme" optional="YES" attributeType="Integer 16" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="asyncNativeTouchPriority" optional="YES" attributeType="Integer 16" defaultValueString="0" usesScalarValueType="NO" syncable="YES"/>
<attribute name="audioConfig" attributeType="Integer 32" defaultValueString="2" usesScalarValueType="NO" syncable="YES"/>
<attribute name="backroundSessionTimer" optional="YES" attributeType="Integer 32" defaultValueString="32767" usesScalarValueType="NO" syncable="YES"/>
+8 -8
View File
@@ -15,7 +15,7 @@ NSString * const ThemeDidChangeNotification = @"ThemeDidChangeNotification";
static UIUserInterfaceStyle _privateUserInterfaceStyle = UIUserInterfaceStyleUnspecified;
static UIUserInterfaceStyle _userInterfaceStyle;
+ (UIColor *)getUIStyle{
+ (UIColor *)setPublicUIStyle{
if (@available(iOS 13.0, *)) {
UITraitCollection *traitCollection = [UIScreen mainScreen].traitCollection;
if(_privateUserInterfaceStyle == UIUserInterfaceStyleUnspecified) {
@@ -31,7 +31,7 @@ static UIUserInterfaceStyle _userInterfaceStyle;
+ (UIUserInterfaceStyle)userInterfaceStyle {
[ThemeManager getUIStyle];
[ThemeManager setPublicUIStyle];
return _userInterfaceStyle;
}
@@ -40,12 +40,12 @@ static UIUserInterfaceStyle _userInterfaceStyle;
return;
}
_privateUserInterfaceStyle = style;
[ThemeManager getUIStyle];
[ThemeManager setPublicUIStyle];
[[NSNotificationCenter defaultCenter] postNotificationName:ThemeDidChangeNotification object:nil];
}
+ (UIColor *)appBackgroundColor {
[ThemeManager getUIStyle];
[ThemeManager setPublicUIStyle];
switch (self.userInterfaceStyle) {
case UIUserInterfaceStyleLight:
return [UIColor colorWithRed:242.0/255.0 green:242.0/255.0 blue:247.0/255.0 alpha:1.0];
@@ -59,7 +59,7 @@ static UIUserInterfaceStyle _userInterfaceStyle;
}
+ (UIColor *)widgetBackgroundColor {
[ThemeManager getUIStyle];
[ThemeManager setPublicUIStyle];
switch (self.userInterfaceStyle) {
case UIUserInterfaceStyleLight:
return [UIColor whiteColor];
@@ -72,7 +72,7 @@ static UIUserInterfaceStyle _userInterfaceStyle;
}
+ (UIColor *)separatorColor {
[ThemeManager getUIStyle];
[ThemeManager setPublicUIStyle];
switch (self.userInterfaceStyle) {
case UIUserInterfaceStyleLight:
return [UIColor colorWithWhite:0.1 alpha:0.28];
@@ -86,7 +86,7 @@ static UIUserInterfaceStyle _userInterfaceStyle;
+ (UIColor *)textColor {
[ThemeManager getUIStyle];
[ThemeManager setPublicUIStyle];
switch (self.userInterfaceStyle) {
case UIUserInterfaceStyleLight:
return [UIColor blackColor];
@@ -126,7 +126,7 @@ static UIUserInterfaceStyle _userInterfaceStyle;
}
+ (UIColor *)appPrimaryColorWithAlpha {
[ThemeManager getUIStyle];
[ThemeManager setPublicUIStyle];
switch (self.userInterfaceStyle) {
case UIUserInterfaceStyleLight:
return [[ThemeManager appPrimaryColor] colorWithAlphaComponent:0.24]; // #0A84FF
@@ -1193,6 +1193,7 @@ static NSMutableSet* hostList;
[settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.externalDisplayModeStack];
[settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.audioConfigStack];
[settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.pipStack];
[settingsViewController setHidden:_settingsExpandedInStreamView forStack:settingsViewController.appThemeStack];
[settingsViewController.renderingBackendSelector setEnabled:!_settingsExpandedInStreamView];
// Enable frame pacing mode selector only if not in stream view AND not in performance mode
BOOL shouldEnableFramePacing = !_settingsExpandedInStreamView && (settingsViewController.renderingBackendSelector.selectedSegmentIndex != RENDER_METAL);
@@ -1554,6 +1555,9 @@ static NSMutableSet* hostList;
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
[super traitCollectionDidChange:previousTraitCollection];
if (@available(iOS 13.0, *)) {
DataManager* dataMan = [[DataManager alloc] init];
TemporarySettings* tempSettings = [dataMan getSettings];
if(tempSettings.appTheme.intValue != UIUserInterfaceStyleUnspecified) return;
if ([self.traitCollection hasDifferentColorAppearanceComparedToTraitCollection:previousTraitCollection]) {
[ThemeManager setUserInterfaceStyle:self.traitCollection.userInterfaceStyle];
}
@@ -1563,8 +1567,10 @@ static NSMutableSet* hostList;
- (void)viewDidLoad{
[super viewDidLoad];
//[OrientationHelper updateOrientationToLandscape];
// self.navigationController.delegate = self;
DataManager* dataMan = [[DataManager alloc] init];
TemporarySettings* tempSettings = [dataMan getSettings];
[ThemeManager setUserInterfaceStyle:tempSettings.appTheme.intValue];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(deviceOrientationDidChange) // handle orientation change since i made portrait mode available
name:UIDeviceOrientationDidChangeNotification
@@ -175,6 +175,9 @@
@property (strong, nonatomic) IBOutlet UIStackView *edgeSlidingSensitivityStack;
@property (strong, nonatomic) IBOutlet UISlider *edgeSlidingSensitivitySlider;
@property (strong, nonatomic) IBOutlet UIStackView *appThemeStack;
@property (strong, nonatomic) IBOutlet UISegmentedControl *appThemeSelector;
@property (strong, nonatomic) IBOutlet UIStackView *testStack;
@property (nonatomic, strong) MicHandler *micHandler;
@@ -800,6 +800,7 @@ BOOL isCustomResolution(int resolutionSelected) {
[self addSetting:self.statsOverlayStack ofId:@"statsOverlayStack" withInfoTag:NO withDynamicLabel:NO to:otherSection];
[self addSetting:self.unlockDisplayOrientationStack ofId:@"unlockDisplayOrientationStack" withInfoTag:YES withDynamicLabel:NO to:otherSection];
[self addSetting:self.backgroundSessionTimerStack ofId:@"backgroundSessionTimerStack" withInfoTag:NO withDynamicLabel:YES to:otherSection];
[self addSetting:self.appThemeStack ofId:@"appThemeStack" withInfoTag:NO withDynamicLabel:NO to:otherSection];
[self addSetting:self.optimizeGamesStack ofId:@"optimizeGamesStack" withInfoTag:YES withDynamicLabel:NO to:otherSection];
[self addSetting:self.multiControllerStack ofId:@"multiControllerStack" withInfoTag:NO withDynamicLabel:NO to:otherSection];
[self addSetting:self.softKeyboardToolbarStack ofId:@"softKeyboardToolbarStack" withInfoTag:NO withDynamicLabel:NO to:otherSection];
@@ -1766,7 +1767,15 @@ BOOL isCustomResolution(int resolutionSelected) {
[self.backgroundSessionTimerSlider setValue:(uint32_t)self->tempSettings.backgroundSessionTimer.floatValue];
[self.backgroundSessionTimerSlider addTarget:self action:@selector(backgroundSessionTimerSliderMoved:) forControlEvents:UIControlEventValueChanged];
[self backgroundSessionTimerSliderMoved:self.backgroundSessionTimerSlider];
[self.appThemeSelector setSelectedSegmentIndex:self->tempSettings.appTheme.intValue];
[self.appThemeSelector addTarget:self action:@selector(appThemeChanged:) forControlEvents:UIControlEventValueChanged];
if (@available(iOS 13.0, *)) nil;
else{
[self.appThemeSelector setSelectedSegmentIndex:UIUserInterfaceStyleDark];
[self.appThemeSelector setEnabled:false];
}
// lift streamview setting
[self.liftStreamViewForKeyboardSelector setSelectedSegmentIndex:self->tempSettings.liftStreamViewForKeyboard ? 1 : 0];// Load old setting
@@ -2211,6 +2220,12 @@ BOOL isCustomResolution(int resolutionSelected) {
[self findDynamicLabelFromStack:self.backgroundSessionTimerStack].text = labelString; // Update label display
}
- (void)appThemeChanged:(UISegmentedControl* )sender{
[ThemeManager setUserInterfaceStyle:sender.selectedSegmentIndex];
Settings* currentSettings = [self->dataMan retrieveSettings];
currentSettings.appTheme = @(sender.selectedSegmentIndex);
[dataMan saveData];
}
// veloc factor upto 700%
- (CGFloat) map_velocFactorDisplay_fromSliderValue:(CGFloat)sliderValue{
+121 -1
View File
@@ -313,6 +313,36 @@
}
}
},
"6GU-ZN-w6X.text" : {
"comment" : "Class = \"UILabel\"; text = \"Theme\"; ObjectID = \"6GU-ZN-w6X\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Theme"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "主题"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "translated",
"value" : "主題"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "translated",
"value" : "主題"
}
}
}
},
"6gY-8I-NWq.text" : {
"comment" : "Class = \"UILabel\"; text = \"Map Gyro to\"; ObjectID = \"6gY-8I-NWq\";",
"extractionState" : "extracted_with_value",
@@ -841,7 +871,7 @@
},
"zh-Hant" : {
"stringUnit" : {
"state" : "needs_review",
"state" : "translated",
"value" : "邊緣觸發靈敏度"
}
},
@@ -4321,6 +4351,96 @@
}
}
},
"wi6-L4-KwS.segmentTitles[0]" : {
"comment" : "Class = \"UISegmentedControl\"; wi6-L4-KwS.segmentTitles[0] = \"System\"; ObjectID = \"wi6-L4-KwS\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "System"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "跟随系统"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "translated",
"value" : "跟隨系統"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "translated",
"value" : "跟隨系統"
}
}
}
},
"wi6-L4-KwS.segmentTitles[1]" : {
"comment" : "Class = \"UISegmentedControl\"; wi6-L4-KwS.segmentTitles[1] = \"Light\"; ObjectID = \"wi6-L4-KwS\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Light"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "浅色"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "translated",
"value" : "淺色"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "translated",
"value" : "淺色"
}
}
}
},
"wi6-L4-KwS.segmentTitles[2]" : {
"comment" : "Class = \"UISegmentedControl\"; wi6-L4-KwS.segmentTitles[2] = \"Dark\"; ObjectID = \"wi6-L4-KwS\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Dark"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "深色"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "translated",
"value" : "深色"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "translated",
"value" : "深色"
}
}
}
},
"xfv-K0-1CO.text" : {
"comment" : "Class = \"UILabel\"; text = \"Tap any widget to load configuration (per widget)\\n\"; ObjectID = \"xfv-K0-1CO\";",
"extractionState" : "extracted_with_value",
+120
View File
@@ -3235,6 +3235,96 @@
}
}
},
"pNz-vd-Sr9.segmentTitles[0]" : {
"comment" : "Class = \"UISegmentedControl\"; pNz-vd-Sr9.segmentTitles[0] = \"System\"; ObjectID = \"pNz-vd-Sr9\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "System"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "跟随系统"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "translated",
"value" : "跟隨系統"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "translated",
"value" : "跟隨系統"
}
}
}
},
"pNz-vd-Sr9.segmentTitles[1]" : {
"comment" : "Class = \"UISegmentedControl\"; pNz-vd-Sr9.segmentTitles[1] = \"Light\"; ObjectID = \"pNz-vd-Sr9\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Light"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "浅色"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "translated",
"value" : "淺色"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "translated",
"value" : "淺色"
}
}
}
},
"pNz-vd-Sr9.segmentTitles[2]" : {
"comment" : "Class = \"UISegmentedControl\"; pNz-vd-Sr9.segmentTitles[2] = \"Dark\"; ObjectID = \"pNz-vd-Sr9\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Dark"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "深色"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "translated",
"value" : "深色"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "translated",
"value" : "深色"
}
}
}
},
"q6v-Jb-ysy.segmentTitles[0]" : {
"comment" : "Class = \"UISegmentedControl\"; q6v-Jb-ysy.segmentTitles[0] = \"Xbox 360\"; ObjectID = \"q6v-Jb-ysy\";",
"extractionState" : "extracted_with_value",
@@ -4435,6 +4525,36 @@
}
}
},
"yF6-p8-b2s.text" : {
"comment" : "Class = \"UILabel\"; text = \"Theme\"; ObjectID = \"yF6-p8-b2s\";",
"extractionState" : "extracted_with_value",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Theme"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "主题"
}
},
"zh-Hant" : {
"stringUnit" : {
"state" : "translated",
"value" : "主題"
}
},
"zh-HK" : {
"stringUnit" : {
"state" : "translated",
"value" : "主題"
}
}
}
},
"yJv-xb-5HL.text" : {
"comment" : "Class = \"UILabel\"; text = \"Pitch Sensitivity\"; ObjectID = \"yJv-xb-5HL\";",
"extractionState" : "extracted_with_value",