localize main app
This commit is contained in:
@@ -7,6 +7,7 @@
|
|||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
|
1C0DAB45279DB0FB003B1F21 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1C0DAB47279DB0FB003B1F21 /* Localizable.strings */; };
|
||||||
1C2618FA2795E41D00FDC148 /* Charts in Frameworks */ = {isa = PBXBuildFile; productRef = 1C2618F92795E41D00FDC148 /* Charts */; };
|
1C2618FA2795E41D00FDC148 /* Charts in Frameworks */ = {isa = PBXBuildFile; productRef = 1C2618F92795E41D00FDC148 /* Charts */; };
|
||||||
1C2618FE27960A4F00FDC148 /* FilterViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C2618FD27960A4F00FDC148 /* FilterViewModel.swift */; };
|
1C2618FE27960A4F00FDC148 /* FilterViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C2618FD27960A4F00FDC148 /* FilterViewModel.swift */; };
|
||||||
1C26190327960CE500FDC148 /* ChartDataBuildable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C26190227960CE500FDC148 /* ChartDataBuildable.swift */; };
|
1C26190327960CE500FDC148 /* ChartDataBuildable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C26190227960CE500FDC148 /* ChartDataBuildable.swift */; };
|
||||||
@@ -112,6 +113,8 @@
|
|||||||
/* End PBXCopyFilesBuildPhase section */
|
/* End PBXCopyFilesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
|
1C0DAB46279DB0FB003B1F21 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
1C0DAB48279DB116003B1F21 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
1C2618FD27960A4F00FDC148 /* FilterViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilterViewModel.swift; sourceTree = "<group>"; };
|
1C2618FD27960A4F00FDC148 /* FilterViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilterViewModel.swift; sourceTree = "<group>"; };
|
||||||
1C26190227960CE500FDC148 /* ChartDataBuildable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChartDataBuildable.swift; sourceTree = "<group>"; };
|
1C26190227960CE500FDC148 /* ChartDataBuildable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChartDataBuildable.swift; sourceTree = "<group>"; };
|
||||||
1C26190627960DC900FDC148 /* ChartViewItemBuildable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChartViewItemBuildable.swift; sourceTree = "<group>"; };
|
1C26190627960DC900FDC148 /* ChartViewItemBuildable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChartViewItemBuildable.swift; sourceTree = "<group>"; };
|
||||||
@@ -243,6 +246,7 @@
|
|||||||
1CD90AE5278C7DDF001C4FEA = {
|
1CD90AE5278C7DDF001C4FEA = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
1C0DAB47279DB0FB003B1F21 /* Localizable.strings */,
|
||||||
1CD90B6A278C7F75001C4FEA /* Feels (iOS).entitlements */,
|
1CD90B6A278C7F75001C4FEA /* Feels (iOS).entitlements */,
|
||||||
1CD90B70278C8000001C4FEA /* Feels (iOS)Dev.entitlements */,
|
1CD90B70278C8000001C4FEA /* Feels (iOS)Dev.entitlements */,
|
||||||
1CD90B6D278C7F89001C4FEA /* FeelsWidgetExtension.entitlements */,
|
1CD90B6D278C7F89001C4FEA /* FeelsWidgetExtension.entitlements */,
|
||||||
@@ -495,6 +499,7 @@
|
|||||||
knownRegions = (
|
knownRegions = (
|
||||||
en,
|
en,
|
||||||
Base,
|
Base,
|
||||||
|
es,
|
||||||
);
|
);
|
||||||
mainGroup = 1CD90AE5278C7DDF001C4FEA;
|
mainGroup = 1CD90AE5278C7DDF001C4FEA;
|
||||||
packageReferences = (
|
packageReferences = (
|
||||||
@@ -519,6 +524,7 @@
|
|||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
1CD90B1E278C7DE0001C4FEA /* Assets.xcassets in Resources */,
|
1CD90B1E278C7DE0001C4FEA /* Assets.xcassets in Resources */,
|
||||||
|
1C0DAB45279DB0FB003B1F21 /* Localizable.strings in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -665,11 +671,24 @@
|
|||||||
};
|
};
|
||||||
/* End PBXTargetDependency section */
|
/* End PBXTargetDependency section */
|
||||||
|
|
||||||
|
/* Begin PBXVariantGroup section */
|
||||||
|
1C0DAB47279DB0FB003B1F21 /* Localizable.strings */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
1C0DAB46279DB0FB003B1F21 /* en */,
|
||||||
|
1C0DAB48279DB116003B1F21 /* es */,
|
||||||
|
);
|
||||||
|
name = Localizable.strings;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* End PBXVariantGroup section */
|
||||||
|
|
||||||
/* Begin XCBuildConfiguration section */
|
/* Begin XCBuildConfiguration section */
|
||||||
1CD90B20278C7DE0001C4FEA /* Debug */ = {
|
1CD90B20278C7DE0001C4FEA /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
|
||||||
@@ -730,6 +749,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||||
CLANG_ANALYZER_NONNULL = YES;
|
CLANG_ANALYZER_NONNULL = YES;
|
||||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
|
||||||
|
|||||||
@@ -19,17 +19,17 @@ enum Mood: Int {
|
|||||||
var strValue: String {
|
var strValue: String {
|
||||||
switch self {
|
switch self {
|
||||||
case .horrible:
|
case .horrible:
|
||||||
return "Horrible"
|
return String(localized: "mood_value_horrible")
|
||||||
case .bad:
|
case .bad:
|
||||||
return "Bad"
|
return String(localized: "mood_value_bad")
|
||||||
case .average:
|
case .average:
|
||||||
return "Average"
|
return String(localized: "mood_value_average")
|
||||||
case .good:
|
case .good:
|
||||||
return "Good"
|
return String(localized: "mood_value_good")
|
||||||
case .great:
|
case .great:
|
||||||
return "Great"
|
return String(localized: "mood_value_great")
|
||||||
case .missing:
|
case .missing:
|
||||||
return "Missing"
|
return String(localized: "mood_value_missing")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,9 +7,19 @@
|
|||||||
|
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
enum DayOptions: String, CaseIterable, RawRepresentable, Codable {
|
enum DayOptions: Int, CaseIterable, RawRepresentable, Codable {
|
||||||
case Today = "Same Day"
|
case Today
|
||||||
case Previous = "Previous Day"
|
case Previous
|
||||||
|
|
||||||
|
var localizedValue: String {
|
||||||
|
switch self {
|
||||||
|
|
||||||
|
case .Today:
|
||||||
|
return String(localized: "onboarding_day_options_today")
|
||||||
|
case .Previous:
|
||||||
|
return String(localized: "onboarding_day_options_yesterday")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct OnboardingDay: View {
|
struct OnboardingDay: View {
|
||||||
@@ -18,9 +28,9 @@ struct OnboardingDay: View {
|
|||||||
var previewText: String {
|
var previewText: String {
|
||||||
switch onboardingData.inputDay {
|
switch onboardingData.inputDay {
|
||||||
case .Today:
|
case .Today:
|
||||||
return "Example: If you pick on a Tuesday, the value will be recorded for Tuesday"
|
return String(localized: "onboarding_day_preview_text_today")
|
||||||
case .Previous:
|
case .Previous:
|
||||||
return "Example: If you pick on a Tuesday, the value will be recorded for Monday, the day before"
|
return String(localized: "onboarding_day_preview_text_yesterday")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,7 +45,7 @@ struct OnboardingDay: View {
|
|||||||
|
|
||||||
ScrollView {
|
ScrollView {
|
||||||
VStack{
|
VStack{
|
||||||
Text("Will this rating be for current day or previous day")
|
Text(String(localized: "onboarding_day_title"))
|
||||||
.font(.title)
|
.font(.title)
|
||||||
.foregroundColor(Color(UIColor.white))
|
.foregroundColor(Color(UIColor.white))
|
||||||
.padding([.trailing, .leading], 55)
|
.padding([.trailing, .leading], 55)
|
||||||
@@ -44,7 +54,7 @@ struct OnboardingDay: View {
|
|||||||
Picker(selection: $onboardingData.inputDay,
|
Picker(selection: $onboardingData.inputDay,
|
||||||
label: Text("")) {
|
label: Text("")) {
|
||||||
ForEach(DayOptions.allCases, id: \.self) { day in
|
ForEach(DayOptions.allCases, id: \.self) { day in
|
||||||
Text(day.rawValue)
|
Text(day.localizedValue)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.padding()
|
.padding()
|
||||||
@@ -52,7 +62,7 @@ struct OnboardingDay: View {
|
|||||||
.padding([.trailing, .leading], 55)
|
.padding([.trailing, .leading], 55)
|
||||||
.pickerStyle(SegmentedPickerStyle())
|
.pickerStyle(SegmentedPickerStyle())
|
||||||
|
|
||||||
Text("When you vote your vote will be for the \(onboardingData.inputDay.rawValue)")
|
Text(String(localized: "onboarding_day_body"))
|
||||||
.font(.body)
|
.font(.body)
|
||||||
.foregroundColor(Color(UIColor.white))
|
.foregroundColor(Color(UIColor.white))
|
||||||
.padding([.trailing, .leading], 75)
|
.padding([.trailing, .leading], 75)
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ struct OnboardingTime: View {
|
|||||||
|
|
||||||
ScrollView {
|
ScrollView {
|
||||||
VStack {
|
VStack {
|
||||||
Text("What time do you want to unlock your rating")
|
Text(String(localized: "onboarding_time_title"))
|
||||||
.font(.title)
|
.font(.title)
|
||||||
.padding([.trailing, .leading], 55)
|
.padding([.trailing, .leading], 55)
|
||||||
.padding([.top], 25)
|
.padding([.top], 25)
|
||||||
@@ -41,7 +41,8 @@ struct OnboardingTime: View {
|
|||||||
.padding([.top, .bottom], 25)
|
.padding([.top, .bottom], 25)
|
||||||
.colorScheme(.dark)
|
.colorScheme(.dark)
|
||||||
|
|
||||||
Text("Your shit will be unlocked at \(formatter.string(from: onboardingData.date)) daily")
|
Text(String(format: String(localized: "onboarding_time_body"),
|
||||||
|
formatter.string(from: onboardingData.date)))
|
||||||
.font(.body)
|
.font(.body)
|
||||||
.padding([.top], 15)
|
.padding([.top], 15)
|
||||||
.padding([.trailing, .leading], 55)
|
.padding([.trailing, .leading], 55)
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ import SwiftUI
|
|||||||
|
|
||||||
struct OnboardingTitle: View {
|
struct OnboardingTitle: View {
|
||||||
static let titleOptions = [
|
static let titleOptions = [
|
||||||
"Its time to select.",
|
String(localized: "onboarding_title_title_option_1"),
|
||||||
"Pick your shit!",
|
String(localized: "onboarding_title_title_option_2"),
|
||||||
"How was your day?"]
|
String(localized: "onboarding_title_title_option_3")]
|
||||||
|
|
||||||
@ObservedObject var onboardingData: OnboardingData
|
@ObservedObject var onboardingData: OnboardingData
|
||||||
|
|
||||||
@@ -26,7 +26,7 @@ struct OnboardingTitle: View {
|
|||||||
|
|
||||||
ScrollView {
|
ScrollView {
|
||||||
VStack{
|
VStack{
|
||||||
Text("What would you like the reminder to say?")
|
Text(String(localized: "onboarding_title_title"))
|
||||||
.font(.title)
|
.font(.title)
|
||||||
.foregroundColor(Color(UIColor.white))
|
.foregroundColor(Color(UIColor.white))
|
||||||
.padding([.trailing, .leading], 55)
|
.padding([.trailing, .leading], 55)
|
||||||
@@ -48,7 +48,7 @@ struct OnboardingTitle: View {
|
|||||||
.padding([.top], 10)
|
.padding([.top], 10)
|
||||||
}
|
}
|
||||||
|
|
||||||
Text("-- or type your own--")
|
Text(String(localized: "onboarding_title_type_your_own"))
|
||||||
.font(.body)
|
.font(.body)
|
||||||
.foregroundColor(Color(UIColor.white))
|
.foregroundColor(Color(UIColor.white))
|
||||||
.padding([.top], 25)
|
.padding([.top], 25)
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ struct OnboardingWrapup: View {
|
|||||||
VStack {
|
VStack {
|
||||||
Spacer()
|
Spacer()
|
||||||
|
|
||||||
Text("At")
|
Text(String(localized: "onboarding_wrap_up_1"))
|
||||||
.font(.title)
|
.font(.title)
|
||||||
.foregroundColor(Color(UIColor.white))
|
.foregroundColor(Color(UIColor.white))
|
||||||
.padding([.trailing, .leading], 55)
|
.padding([.trailing, .leading], 55)
|
||||||
@@ -44,7 +44,7 @@ struct OnboardingWrapup: View {
|
|||||||
.padding([.trailing, .leading], 55)
|
.padding([.trailing, .leading], 55)
|
||||||
.padding([.top], 15)
|
.padding([.top], 15)
|
||||||
|
|
||||||
Text("aou will get notified that")
|
Text(String(localized: "onboarding_wrap_up_2"))
|
||||||
.font(.title)
|
.font(.title)
|
||||||
.foregroundColor(Color(UIColor.white))
|
.foregroundColor(Color(UIColor.white))
|
||||||
.padding([.trailing, .leading], 55)
|
.padding([.trailing, .leading], 55)
|
||||||
@@ -57,13 +57,13 @@ struct OnboardingWrapup: View {
|
|||||||
.padding([.trailing, .leading], 55)
|
.padding([.trailing, .leading], 55)
|
||||||
.padding([.top], 15)
|
.padding([.top], 15)
|
||||||
|
|
||||||
Text("and when you vote it will be counted for the")
|
Text(String(localized: "onboarding_wrap_up_3"))
|
||||||
.font(.title)
|
.font(.title)
|
||||||
.foregroundColor(Color(UIColor.white))
|
.foregroundColor(Color(UIColor.white))
|
||||||
.padding([.trailing, .leading], 55)
|
.padding([.trailing, .leading], 55)
|
||||||
.padding([.top], 15)
|
.padding([.top], 15)
|
||||||
|
|
||||||
Text(onboardingData.inputDay.rawValue)
|
Text(onboardingData.inputDay.localizedValue)
|
||||||
.font(.title)
|
.font(.title)
|
||||||
.fontWeight(.bold)
|
.fontWeight(.bold)
|
||||||
.foregroundColor(Color(UIColor.white))
|
.foregroundColor(Color(UIColor.white))
|
||||||
@@ -73,7 +73,7 @@ struct OnboardingWrapup: View {
|
|||||||
Button(action: {
|
Button(action: {
|
||||||
completionClosure(onboardingData)
|
completionClosure(onboardingData)
|
||||||
}, label: {
|
}, label: {
|
||||||
Text("Complete")
|
Text(String(localized: "onboarding_wrap_up_complete_button"))
|
||||||
.font(.title)
|
.font(.title)
|
||||||
.fontWeight(.bold)
|
.fontWeight(.bold)
|
||||||
.foregroundColor(.yellow)
|
.foregroundColor(.yellow)
|
||||||
|
|||||||
@@ -53,9 +53,9 @@ struct AddMoodHeaderView: View {
|
|||||||
switch savedOnboardingData.inputDay {
|
switch savedOnboardingData.inputDay {
|
||||||
|
|
||||||
case .Today:
|
case .Today:
|
||||||
return "How is today?"
|
return String(localized: "add_mood_header_view_title_today")
|
||||||
case .Previous:
|
case .Previous:
|
||||||
return "How was yesterday?"
|
return String(localized: "add_mood_header_view_title_yesterday")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,17 +26,17 @@ struct ContentView: View {
|
|||||||
TabView {
|
TabView {
|
||||||
mainView
|
mainView
|
||||||
.tabItem {
|
.tabItem {
|
||||||
Label("Main", systemImage: "list.dash")
|
Label(String(localized: "content_view_tab_main"), systemImage: "list.dash")
|
||||||
}
|
}
|
||||||
|
|
||||||
FilterView()
|
FilterView()
|
||||||
.tabItem {
|
.tabItem {
|
||||||
Label("Filter", systemImage: "calendar.circle")
|
Label(String(localized: "content_view_tab_filter"), systemImage: "calendar.circle")
|
||||||
}
|
}
|
||||||
|
|
||||||
GraphView()
|
GraphView()
|
||||||
.tabItem {
|
.tabItem {
|
||||||
Label("Stats", systemImage: "chart.line.uptrend.xyaxis")
|
Label(String(localized: "content_view_tab_stats"), systemImage: "chart.line.uptrend.xyaxis")
|
||||||
}
|
}
|
||||||
}.sheet(isPresented: $needsOnboarding, onDismiss: {
|
}.sheet(isPresented: $needsOnboarding, onDismiss: {
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ struct FilterView: View {
|
|||||||
.cornerRadius(25)
|
.cornerRadius(25)
|
||||||
.padding([.leading, .trailing])
|
.padding([.leading, .trailing])
|
||||||
|
|
||||||
Text("Total: \(self.viewModel.numberOfRatings)")
|
Text(String(localized: "filter_view_total") + ": \(self.viewModel.numberOfRatings)")
|
||||||
.font(.title2)
|
.font(.title2)
|
||||||
|
|
||||||
if showFilter {
|
if showFilter {
|
||||||
@@ -71,7 +71,7 @@ struct FilterView: View {
|
|||||||
showFilter.toggle()
|
showFilter.toggle()
|
||||||
}
|
}
|
||||||
}, label: {
|
}, label: {
|
||||||
Text(showFilter ? "Close Filters" : "Show Filters")
|
Text(showFilter ? String(localized: "filter_view_hide_filters") : String(localized: "filter_view_show_filters"))
|
||||||
.frame(maxWidth: .infinity)
|
.frame(maxWidth: .infinity)
|
||||||
.frame(height: 44)
|
.frame(height: 44)
|
||||||
.foregroundColor(Color(UIColor.label))
|
.foregroundColor(Color(UIColor.label))
|
||||||
@@ -117,7 +117,7 @@ struct FilterView: View {
|
|||||||
ZStack {
|
ZStack {
|
||||||
Color(UIColor.secondarySystemBackground)
|
Color(UIColor.secondarySystemBackground)
|
||||||
DatePicker(
|
DatePicker(
|
||||||
"Start Date",
|
String(localized: "filter_view_begin_date"),
|
||||||
selection: $viewModel.entryStartDate,
|
selection: $viewModel.entryStartDate,
|
||||||
displayedComponents: [.date]
|
displayedComponents: [.date]
|
||||||
).onChange(of: viewModel.entryStartDate, perform: { value in
|
).onChange(of: viewModel.entryStartDate, perform: { value in
|
||||||
@@ -132,7 +132,7 @@ struct FilterView: View {
|
|||||||
ZStack {
|
ZStack {
|
||||||
Color(UIColor.secondarySystemBackground)
|
Color(UIColor.secondarySystemBackground)
|
||||||
DatePicker(
|
DatePicker(
|
||||||
"End Date",
|
String(localized: "filter_view_end_date"),
|
||||||
selection: $viewModel.entryEndDate,
|
selection: $viewModel.entryEndDate,
|
||||||
displayedComponents: [.date]
|
displayedComponents: [.date]
|
||||||
).onChange(of: viewModel.entryStartDate, perform: { value in
|
).onChange(of: viewModel.entryStartDate, perform: { value in
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ struct SettingsView: View {
|
|||||||
Button(action: {
|
Button(action: {
|
||||||
dismiss()
|
dismiss()
|
||||||
}, label: {
|
}, label: {
|
||||||
Text("Exit")
|
Text(String(localized: "settings_view_exit"))
|
||||||
.font(.body)
|
.font(.body)
|
||||||
.foregroundColor(Color(UIColor.systemBlue))
|
.foregroundColor(Color(UIColor.systemBlue))
|
||||||
})
|
})
|
||||||
@@ -60,7 +60,7 @@ struct SettingsView: View {
|
|||||||
Button(action: {
|
Button(action: {
|
||||||
|
|
||||||
}, label: {
|
}, label: {
|
||||||
Text("Special thanks to")
|
Text(String(localized: "settings_view_special_thanks_to"))
|
||||||
})
|
})
|
||||||
.padding()
|
.padding()
|
||||||
}
|
}
|
||||||
@@ -102,7 +102,7 @@ struct SettingsView: View {
|
|||||||
private var whyBackgroundMode: some View {
|
private var whyBackgroundMode: some View {
|
||||||
ZStack {
|
ZStack {
|
||||||
Color(UIColor.systemBackground)
|
Color(UIColor.systemBackground)
|
||||||
Text("we do bg mode b/c we can")
|
Text(String(localized: "settings_view_why_bg_mode"))
|
||||||
.padding()
|
.padding()
|
||||||
}
|
}
|
||||||
.fixedSize(horizontal: false, vertical: true)
|
.fixedSize(horizontal: false, vertical: true)
|
||||||
@@ -118,7 +118,7 @@ struct SettingsView: View {
|
|||||||
ZStack {
|
ZStack {
|
||||||
Color(UIColor.systemBackground)
|
Color(UIColor.systemBackground)
|
||||||
VStack {
|
VStack {
|
||||||
Text("Change Icon")
|
Text(String(localized: "settings_view_change_icon"))
|
||||||
HStack {
|
HStack {
|
||||||
|
|
||||||
Button(action: {
|
Button(action: {
|
||||||
@@ -157,7 +157,7 @@ struct SettingsView: View {
|
|||||||
Button(action: {
|
Button(action: {
|
||||||
showOnboarding.toggle()
|
showOnboarding.toggle()
|
||||||
}, label: {
|
}, label: {
|
||||||
Text("Show Onboarding")
|
Text(String(localized: "settings_view_show_onboarding"))
|
||||||
})
|
})
|
||||||
.padding()
|
.padding()
|
||||||
}
|
}
|
||||||
|
|||||||
54
en.lproj/Localizable.strings
Normal file
54
en.lproj/Localizable.strings
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
Localizable.strings
|
||||||
|
Feels
|
||||||
|
|
||||||
|
Created by Trey Tartt on 1/23/22.
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
"onboarding_time_title" = "What time do you want to unlock your rating";
|
||||||
|
"onboarding_time_body" = "Your shit will be unlocked at %@ daily";
|
||||||
|
|
||||||
|
"onboarding_day_title" = "Will this rating be for current day or previous day";
|
||||||
|
"onboarding_day_body" = "When you vote your vote will be for the %@";
|
||||||
|
"onboarding_day_preview_text_today" = "Example: If you pick on a Tuesday, the value will be recorded for Tuesday";
|
||||||
|
"onboarding_day_preview_text_yesterday" = "Example: If you pick on a Tuesday, the value will be recorded for Monday, the day before";
|
||||||
|
"onboarding_day_options_today" = "Same Day";
|
||||||
|
"onboarding_day_options_yesterday" = "Previous Day";
|
||||||
|
|
||||||
|
"onboarding_title_title" = "What would you like the reminder to say?";
|
||||||
|
"onboarding_title_type_your_own" = "-- or type your own--";
|
||||||
|
"onboarding_title_title_option_1" = "Its time to select.";
|
||||||
|
"onboarding_title_title_option_2" = "Pick your shit!";
|
||||||
|
"onboarding_title_title_option_3" = "How was your day?";
|
||||||
|
|
||||||
|
"onboarding_wrap_up_1" = "At";
|
||||||
|
"onboarding_wrap_up_2" = "you will get notified that";
|
||||||
|
"onboarding_wrap_up_3" = "and when you vote it will be counted for the";
|
||||||
|
"onboarding_wrap_up_complete_button" = "Complete";
|
||||||
|
|
||||||
|
"add_mood_header_view_title_today" = "How is today?";
|
||||||
|
"add_mood_header_view_title_yesterday" = "How was yesterday?";
|
||||||
|
|
||||||
|
"content_view_tab_main" = "Main";
|
||||||
|
"content_view_tab_filter" = "Filter";
|
||||||
|
"content_view_tab_stats" = "Stats";
|
||||||
|
|
||||||
|
"filter_view_total" = "Total";
|
||||||
|
"filter_view_show_filters" = "Show Filters";
|
||||||
|
"filter_view_hide_filters" = "Hide Filters";
|
||||||
|
"filter_view_begin_date" = "Begin Date";
|
||||||
|
"filter_view_end_date" = "End Date";
|
||||||
|
|
||||||
|
"settings_view_exit" = "Exit";
|
||||||
|
"settings_view_special_thanks_to" = "Special thanks to";
|
||||||
|
"settings_view_why_bg_mode" = "we do bg mode b/c we can";
|
||||||
|
"settings_view_change_icon" = "Change Icon";
|
||||||
|
"settings_view_show_onboarding" = "Show onboarding";
|
||||||
|
|
||||||
|
"mood_value_great" = "Great";
|
||||||
|
"mood_value_good" = "Good";
|
||||||
|
"mood_value_average" = "Average";
|
||||||
|
"mood_value_bad" = "Bad";
|
||||||
|
"mood_value_horrible" = "Horrible";
|
||||||
|
"mood_value_missing" = "Missing";
|
||||||
7
es.lproj/Localizable.strings
Normal file
7
es.lproj/Localizable.strings
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
/*
|
||||||
|
Localizable.strings
|
||||||
|
Feels
|
||||||
|
|
||||||
|
Created by Trey Tartt on 1/23/22.
|
||||||
|
|
||||||
|
*/
|
||||||
Reference in New Issue
Block a user