From 31fb2a7fe22c619288d8153c6dc5b66443de9d25 Mon Sep 17 00:00:00 2001 From: Trey t Date: Wed, 11 Mar 2026 00:16:26 -0500 Subject: [PATCH 1/4] Add weather feature with WeatherKit integration for mood entries Fetch and display weather data (temp, condition, hi/lo, humidity) when users log a mood. Weather is stored as JSON on MoodEntryModel and shown as a card in EntryDetailView. Premium-gated with location permission prompt. Includes BGTask retry for failed fetches and full analytics. Co-Authored-By: Claude Opus 4.6 --- Reflect--iOS--Info.plist | 3 + Shared/Analytics.swift | 13 ++ Shared/BGTask.swift | 28 ++++ Shared/Models/MoodEntryModel.swift | 11 +- Shared/Models/UserDefaultsStore.swift | 1 + Shared/Models/WeatherData.swift | 32 ++++ Shared/MoodLogger.swift | 11 +- .../Persisence/DataControllerProtocol.swift | 4 + Shared/Persisence/DataControllerUPDATE.swift | 13 ++ Shared/ReflectApp.swift | 4 + Shared/Services/LocationManager.swift | 71 +++++++++ Shared/Services/WeatherManager.swift | 149 ++++++++++++++++++ Shared/Views/DayView/WeatherCardView.swift | 70 ++++++++ Shared/Views/NoteEditorView.swift | 16 ++ Shared/Views/SettingsView/SettingsView.swift | 134 ++++++++++++++++ 15 files changed, 557 insertions(+), 3 deletions(-) create mode 100644 Shared/Models/WeatherData.swift create mode 100644 Shared/Services/LocationManager.swift create mode 100644 Shared/Services/WeatherManager.swift create mode 100644 Shared/Views/DayView/WeatherCardView.swift diff --git a/Reflect--iOS--Info.plist b/Reflect--iOS--Info.plist index aaeefa3..062fe43 100644 --- a/Reflect--iOS--Info.plist +++ b/Reflect--iOS--Info.plist @@ -5,7 +5,10 @@ BGTaskSchedulerPermittedIdentifiers com.88oakapps.reflect.dbUpdateMissing + com.88oakapps.reflect.weatherRetry + NSLocationWhenInUseUsageDescription + Reflect uses your location to show weather details for your mood entries. CFBundleURLTypes diff --git a/Shared/Analytics.swift b/Shared/Analytics.swift index 822e2ff..ea3ccd3 100644 --- a/Shared/Analytics.swift +++ b/Shared/Analytics.swift @@ -451,6 +451,11 @@ extension AnalyticsManager { case healthKitNotAuthorized case healthKitSyncCompleted(total: Int, success: Int, failed: Int) + // MARK: Weather + case weatherToggled(enabled: Bool) + case weatherFetched + case weatherFetchFailed(error: String) + // MARK: Navigation case tabSwitched(tab: String) case viewHeaderChanged(header: String) @@ -604,6 +609,14 @@ extension AnalyticsManager { case .healthKitSyncCompleted(let total, let success, let failed): return ("healthkit_sync_completed", ["total": total, "success": success, "failed": failed]) + // Weather + case .weatherToggled(let enabled): + return ("weather_toggled", ["enabled": enabled]) + case .weatherFetched: + return ("weather_fetched", nil) + case .weatherFetchFailed(let error): + return ("weather_fetch_failed", ["error": error]) + // Navigation case .tabSwitched(let tab): return ("tab_switched", ["tab": tab]) diff --git a/Shared/BGTask.swift b/Shared/BGTask.swift index 7190a8d..a01c74d 100644 --- a/Shared/BGTask.swift +++ b/Shared/BGTask.swift @@ -10,6 +10,7 @@ import BackgroundTasks class BGTask { static let updateDBMissingID = "com.88oakapps.reflect.dbUpdateMissing" + static let weatherRetryID = "com.88oakapps.reflect.weatherRetry" @MainActor class func runFillInMissingDatesTask(task: BGProcessingTask) { @@ -27,6 +28,33 @@ class BGTask { task.setTaskCompleted(success: true) } + @MainActor + class func runWeatherRetryTask(task: BGProcessingTask) { + BGTask.scheduleWeatherRetry() + + task.expirationHandler = { + task.setTaskCompleted(success: false) + } + + Task { + await WeatherManager.shared.retryPendingWeatherFetches() + task.setTaskCompleted(success: true) + } + } + + class func scheduleWeatherRetry() { + let request = BGProcessingTaskRequest(identifier: BGTask.weatherRetryID) + request.requiresNetworkConnectivity = true + request.requiresExternalPower = false + request.earliestBeginDate = Date(timeIntervalSinceNow: 15 * 60) + + do { + try BGTaskScheduler.shared.submit(request) + } catch { + print("Could not schedule weather retry: \(error)") + } + } + class func scheduleBackgroundProcessing() { let request = BGProcessingTaskRequest(identifier: BGTask.updateDBMissingID) request.requiresNetworkConnectivity = false diff --git a/Shared/Models/MoodEntryModel.swift b/Shared/Models/MoodEntryModel.swift index 0eb5479..950cd04 100644 --- a/Shared/Models/MoodEntryModel.swift +++ b/Shared/Models/MoodEntryModel.swift @@ -42,6 +42,9 @@ final class MoodEntryModel { var notes: String? var photoID: UUID? + // Weather + var weatherJSON: String? + // Computed properties var mood: Mood { Mood(rawValue: moodValue) ?? .missing @@ -58,7 +61,8 @@ final class MoodEntryModel { canEdit: Bool = true, canDelete: Bool = true, notes: String? = nil, - photoID: UUID? = nil + photoID: UUID? = nil, + weatherJSON: String? = nil ) { self.forDate = forDate self.moodValue = mood.rawValue @@ -69,6 +73,7 @@ final class MoodEntryModel { self.canDelete = canDelete self.notes = notes self.photoID = photoID + self.weatherJSON = weatherJSON } // Convenience initializer for raw values @@ -81,7 +86,8 @@ final class MoodEntryModel { canEdit: Bool = true, canDelete: Bool = true, notes: String? = nil, - photoID: UUID? = nil + photoID: UUID? = nil, + weatherJSON: String? = nil ) { self.forDate = forDate self.moodValue = moodValue @@ -92,5 +98,6 @@ final class MoodEntryModel { self.canDelete = canDelete self.notes = notes self.photoID = photoID + self.weatherJSON = weatherJSON } } diff --git a/Shared/Models/UserDefaultsStore.swift b/Shared/Models/UserDefaultsStore.swift index a3dab09..ccb7c5d 100644 --- a/Shared/Models/UserDefaultsStore.swift +++ b/Shared/Models/UserDefaultsStore.swift @@ -207,6 +207,7 @@ class UserDefaultsStore { case lockScreenStyle case celebrationAnimation case hapticFeedbackEnabled + case weatherEnabled case contentViewCurrentSelectedHeaderViewBackDays case contentViewHeaderTag diff --git a/Shared/Models/WeatherData.swift b/Shared/Models/WeatherData.swift new file mode 100644 index 0000000..f6396fb --- /dev/null +++ b/Shared/Models/WeatherData.swift @@ -0,0 +1,32 @@ +// +// WeatherData.swift +// Reflect +// +// Codable weather model stored as JSON string in MoodEntryModel. +// + +import Foundation + +struct WeatherData: Codable { + let conditionSymbol: String // SF Symbol from WeatherKit (e.g. "cloud.sun.fill") + let condition: String // "Partly Cloudy" + let temperature: Double // Current/average in Celsius + let highTemperature: Double // Day high in Celsius + let lowTemperature: Double // Day low in Celsius + let humidity: Double // 0.0–1.0 + let latitude: Double + let longitude: Double + let fetchedAt: Date + + // MARK: - JSON Helpers + + func encode() -> String? { + guard let data = try? JSONEncoder().encode(self) else { return nil } + return String(data: data, encoding: .utf8) + } + + static func decode(from json: String) -> WeatherData? { + guard let data = json.data(using: .utf8) else { return nil } + return try? JSONDecoder().decode(WeatherData.self, from: data) + } +} diff --git a/Shared/MoodLogger.swift b/Shared/MoodLogger.swift index b9c1d92..56a0400 100644 --- a/Shared/MoodLogger.swift +++ b/Shared/MoodLogger.swift @@ -65,10 +65,11 @@ final class MoodLogger { Self.logger.info("Applying side effects for mood \(mood.rawValue) on \(date)") + let hasAccess = !IAPManager.shared.shouldShowPaywall + // 1. Sync to HealthKit if enabled, requested, and user has full access if syncHealthKit { let healthKitEnabled = GroupUserDefaults.groupDefaults.bool(forKey: UserDefaultsStore.Keys.healthKitEnabled.rawValue) - let hasAccess = !IAPManager.shared.shouldShowPaywall if healthKitEnabled && hasAccess { Task { try? await HealthKitManager.shared.saveMood(mood, for: date) @@ -101,6 +102,14 @@ final class MoodLogger { // 8. Mark side effects as applied for this date markSideEffectsApplied(for: date) + + // 9. Fetch weather if enabled and user has full access + let weatherEnabled = GroupUserDefaults.groupDefaults.bool(forKey: UserDefaultsStore.Keys.weatherEnabled.rawValue) + if weatherEnabled && hasAccess { + Task { + await WeatherManager.shared.fetchAndSaveWeather(for: date) + } + } } /// Delete a mood entry for a specific date with all associated cleanup. diff --git a/Shared/Persisence/DataControllerProtocol.swift b/Shared/Persisence/DataControllerProtocol.swift index 9f5659f..b52cf97 100644 --- a/Shared/Persisence/DataControllerProtocol.swift +++ b/Shared/Persisence/DataControllerProtocol.swift @@ -49,6 +49,10 @@ protocol MoodDataWriting { @discardableResult func updatePhoto(forDate date: Date, photoID: UUID?) -> Bool + /// Update weather for an entry + @discardableResult + func updateWeather(forDate date: Date, weatherJSON: String?) -> Bool + /// Fill in missing dates with placeholder entries func fillInMissingDates() diff --git a/Shared/Persisence/DataControllerUPDATE.swift b/Shared/Persisence/DataControllerUPDATE.swift index d0a5427..d42fc56 100644 --- a/Shared/Persisence/DataControllerUPDATE.swift +++ b/Shared/Persisence/DataControllerUPDATE.swift @@ -38,6 +38,19 @@ extension DataController { return true } + // MARK: - Weather + + @discardableResult + func updateWeather(forDate date: Date, weatherJSON: String?) -> Bool { + guard let entry = getEntry(byDate: date) else { + return false + } + + entry.weatherJSON = weatherJSON + saveAndRunDataListeners() + return true + } + // MARK: - Photo @discardableResult diff --git a/Shared/ReflectApp.swift b/Shared/ReflectApp.swift index 6cfce52..bbc580d 100644 --- a/Shared/ReflectApp.swift +++ b/Shared/ReflectApp.swift @@ -36,6 +36,10 @@ struct ReflectApp: App { guard let processingTask = task as? BGProcessingTask else { return } BGTask.runFillInMissingDatesTask(task: processingTask) } + BGTaskScheduler.shared.register(forTaskWithIdentifier: BGTask.weatherRetryID, using: nil) { task in + guard let processingTask = task as? BGProcessingTask else { return } + BGTask.runWeatherRetryTask(task: processingTask) + } UNUserNotificationCenter.current().setBadgeCount(0) // Reset tips session on app launch diff --git a/Shared/Services/LocationManager.swift b/Shared/Services/LocationManager.swift new file mode 100644 index 0000000..c27e947 --- /dev/null +++ b/Shared/Services/LocationManager.swift @@ -0,0 +1,71 @@ +// +// LocationManager.swift +// Reflect +// +// CoreLocation wrapper with async/await for one-shot location requests. +// + +import CoreLocation +import os.log + +@MainActor +final class LocationManager: NSObject { + static let shared = LocationManager() + + private static let logger = Logger( + subsystem: Bundle.main.bundleIdentifier ?? "com.88oakapps.reflect", + category: "LocationManager" + ) + + private let manager = CLLocationManager() + private var locationContinuation: CheckedContinuation? + + var authorizationStatus: CLAuthorizationStatus { + manager.authorizationStatus + } + + private override init() { + super.init() + manager.delegate = self + manager.desiredAccuracy = kCLLocationAccuracyKilometer + } + + func requestAuthorization() { + manager.requestWhenInUseAuthorization() + } + + var currentLocation: CLLocation { + get async throws { + // Return last known location if recent enough (within 10 minutes) + if let last = manager.location, + abs(last.timestamp.timeIntervalSinceNow) < 600 { + return last + } + + return try await withCheckedThrowingContinuation { continuation in + self.locationContinuation = continuation + self.manager.requestLocation() + } + } + } +} + +// MARK: - CLLocationManagerDelegate + +extension LocationManager: CLLocationManagerDelegate { + nonisolated func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { + Task { @MainActor in + guard let location = locations.first else { return } + locationContinuation?.resume(returning: location) + locationContinuation = nil + } + } + + nonisolated func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) { + Task { @MainActor in + Self.logger.error("Location request failed: \(error.localizedDescription)") + locationContinuation?.resume(throwing: error) + locationContinuation = nil + } + } +} diff --git a/Shared/Services/WeatherManager.swift b/Shared/Services/WeatherManager.swift new file mode 100644 index 0000000..fb63adf --- /dev/null +++ b/Shared/Services/WeatherManager.swift @@ -0,0 +1,149 @@ +// +// WeatherManager.swift +// Reflect +// +// WeatherKit fetch service for attaching weather data to mood entries. +// + +import Foundation +import WeatherKit +import CoreLocation +import os.log + +@MainActor +final class WeatherManager { + static let shared = WeatherManager() + + private static let logger = Logger( + subsystem: Bundle.main.bundleIdentifier ?? "com.88oakapps.reflect", + category: "WeatherManager" + ) + + private static let retryQueueKey = "weatherRetryQueue" + + private init() {} + + // MARK: - Fetch Weather + + func fetchWeather(for date: Date, at location: CLLocation) async throws -> WeatherData { + let calendar = Calendar.current + let startOfDay = calendar.startOfDay(for: date) + let endOfDay = calendar.date(byAdding: .day, value: 1, to: startOfDay)! + + let (daily, current) = try await WeatherService.shared.weather( + for: location, + including: .daily(startDate: startOfDay, endDate: endOfDay), .current + ) + + guard let dayWeather = daily.forecast.first else { + throw WeatherError.noDataAvailable + } + + return WeatherData( + conditionSymbol: dayWeather.symbolName, + condition: dayWeather.condition.description, + temperature: (dayWeather.highTemperature.value + dayWeather.lowTemperature.value) / 2.0, + highTemperature: dayWeather.highTemperature.value, + lowTemperature: dayWeather.lowTemperature.value, + humidity: current.humidity, + latitude: location.coordinate.latitude, + longitude: location.coordinate.longitude, + fetchedAt: Date() + ) + } + + // MARK: - Fetch and Save + + func fetchAndSaveWeather(for date: Date) async { + do { + let location = try await LocationManager.shared.currentLocation + + let weatherData = try await fetchWeather(for: date, at: location) + + guard let json = weatherData.encode() else { + Self.logger.error("Failed to encode weather data") + return + } + + DataController.shared.updateWeather(forDate: date, weatherJSON: json) + AnalyticsManager.shared.track(.weatherFetched) + + Self.logger.info("Weather saved for \(date)") + } catch { + Self.logger.error("Weather fetch failed: \(error.localizedDescription)") + AnalyticsManager.shared.track(.weatherFetchFailed(error: error.localizedDescription)) + addToRetryQueue(date: date) + } + } + + // MARK: - Retry Queue + + func retryPendingWeatherFetches() async { + let dates = getRetryQueue() + guard !dates.isEmpty else { return } + + Self.logger.info("Retrying weather fetch for \(dates.count) entries") + + var remainingDates: [Date] = [] + + for date in dates { + do { + let location = try await LocationManager.shared.currentLocation + let weatherData = try await fetchWeather(for: date, at: location) + + guard let json = weatherData.encode() else { continue } + + DataController.shared.updateWeather(forDate: date, weatherJSON: json) + Self.logger.info("Retry succeeded for \(date)") + } catch { + Self.logger.error("Retry failed for \(date): \(error.localizedDescription)") + remainingDates.append(date) + } + } + + saveRetryQueue(remainingDates) + } + + private func addToRetryQueue(date: Date) { + var queue = getRetryQueue() + let startOfDay = Calendar.current.startOfDay(for: date) + + // Don't add duplicates + guard !queue.contains(where: { Calendar.current.isDate($0, inSameDayAs: startOfDay) }) else { return } + + queue.append(startOfDay) + + // Keep only last 7 days of retries + let sevenDaysAgo = Calendar.current.date(byAdding: .day, value: -7, to: Date())! + queue = queue.filter { $0 > sevenDaysAgo } + + saveRetryQueue(queue) + } + + private func getRetryQueue() -> [Date] { + guard let strings = GroupUserDefaults.groupDefaults.stringArray(forKey: Self.retryQueueKey) else { + return [] + } + let formatter = ISO8601DateFormatter() + return strings.compactMap { formatter.date(from: $0) } + } + + private func saveRetryQueue(_ dates: [Date]) { + let formatter = ISO8601DateFormatter() + let strings = dates.map { formatter.string(from: $0) } + GroupUserDefaults.groupDefaults.set(strings, forKey: Self.retryQueueKey) + } + + // MARK: - Error + + enum WeatherError: LocalizedError { + case noDataAvailable + + var errorDescription: String? { + switch self { + case .noDataAvailable: + return "No weather data available for the requested date" + } + } + } +} diff --git a/Shared/Views/DayView/WeatherCardView.swift b/Shared/Views/DayView/WeatherCardView.swift new file mode 100644 index 0000000..5588f23 --- /dev/null +++ b/Shared/Views/DayView/WeatherCardView.swift @@ -0,0 +1,70 @@ +// +// WeatherCardView.swift +// Reflect +// +// Visual weather card shown in EntryDetailView. +// + +import SwiftUI + +struct WeatherCardView: View { + let weatherData: WeatherData + + private var highTemp: String { + formatTemperature(weatherData.highTemperature) + } + + private var lowTemp: String { + formatTemperature(weatherData.lowTemperature) + } + + private var humidityPercent: String { + "\(Int(weatherData.humidity * 100))%" + } + + var body: some View { + HStack(spacing: 14) { + Image(systemName: weatherData.conditionSymbol) + .font(.system(size: 36)) + .symbolRenderingMode(.multicolor) + .frame(width: 44) + + VStack(alignment: .leading, spacing: 4) { + Text(weatherData.condition) + .font(.subheadline) + .fontWeight(.medium) + + HStack(spacing: 8) { + Label(String(localized: "H: \(highTemp)"), systemImage: "thermometer.high") + Label(String(localized: "L: \(lowTemp)"), systemImage: "thermometer.low") + Label(humidityPercent, systemImage: "humidity") + } + .font(.caption) + .foregroundStyle(.secondary) + .labelStyle(.titleOnly) + } + + Spacer() + } + .padding() + .background( + RoundedRectangle(cornerRadius: 16) + .fill(Color(.systemBackground)) + ) + } + + private func formatTemperature(_ celsius: Double) -> String { + let measurement = Measurement(value: celsius, unit: UnitTemperature.celsius) + let formatter = MeasurementFormatter() + formatter.unitOptions = .providedUnit + formatter.numberFormatter.maximumFractionDigits = 0 + formatter.unitStyle = .short + // Use locale-aware conversion + let locale = Locale.current + if locale.measurementSystem == .us { + let fahrenheit = measurement.converted(to: .fahrenheit) + return formatter.string(from: fahrenheit) + } + return formatter.string(from: measurement) + } +} diff --git a/Shared/Views/NoteEditorView.swift b/Shared/Views/NoteEditorView.swift index 78cfd1a..5706261 100644 --- a/Shared/Views/NoteEditorView.swift +++ b/Shared/Views/NoteEditorView.swift @@ -187,6 +187,12 @@ struct EntryDetailView: View { // Notes section notesSection + // Weather section + if let weatherJSON = entry.weatherJSON, + let weatherData = WeatherData.decode(from: weatherJSON) { + weatherSection(weatherData) + } + // Photo section photoSection @@ -411,6 +417,16 @@ struct EntryDetailView: View { } } + private func weatherSection(_ weatherData: WeatherData) -> some View { + VStack(alignment: .leading, spacing: 12) { + Text("Weather") + .font(.headline) + .foregroundColor(textColor) + + WeatherCardView(weatherData: weatherData) + } + } + private var photoSection: some View { VStack(alignment: .leading, spacing: 12) { HStack { diff --git a/Shared/Views/SettingsView/SettingsView.swift b/Shared/Views/SettingsView/SettingsView.swift index a0cacab..53bb2f5 100644 --- a/Shared/Views/SettingsView/SettingsView.swift +++ b/Shared/Views/SettingsView/SettingsView.swift @@ -39,6 +39,8 @@ struct SettingsContentView: View { @AppStorage(UserDefaultsStore.Keys.deleteEnable.rawValue, store: GroupUserDefaults.groupDefaults) private var deleteEnabled = true @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system @AppStorage(UserDefaultsStore.Keys.hapticFeedbackEnabled.rawValue, store: GroupUserDefaults.groupDefaults) private var hapticFeedbackEnabled = true + @AppStorage(UserDefaultsStore.Keys.weatherEnabled.rawValue, store: GroupUserDefaults.groupDefaults) private var weatherEnabled = true + @State private var showWeatherSubscriptionStore = false private var textColor: Color { theme.currentTheme.labelColor } @@ -49,6 +51,7 @@ struct SettingsContentView: View { featuresSectionHeader privacyLockToggle healthKitToggle + weatherToggle exportDataButton // Settings section @@ -959,6 +962,72 @@ struct SettingsContentView: View { } } + // MARK: - Weather Toggle + + private var weatherToggle: some View { + VStack(spacing: 0) { + HStack(spacing: 12) { + Image(systemName: "cloud.sun.fill") + .font(.title2) + .foregroundColor(.blue) + .frame(width: 32) + + VStack(alignment: .leading, spacing: 2) { + Text("Weather") + .foregroundColor(textColor) + + Text("Show weather details for each day") + .font(.caption) + .foregroundStyle(.secondary) + } + + Spacer() + + Toggle("", isOn: Binding( + get: { iapManager.shouldShowPaywall ? false : weatherEnabled }, + set: { newValue in + if iapManager.shouldShowPaywall { + showWeatherSubscriptionStore = true + return + } + + weatherEnabled = newValue + + if newValue { + LocationManager.shared.requestAuthorization() + } + + AnalyticsManager.shared.track(.weatherToggled(enabled: newValue)) + } + )) + .labelsHidden() + .disabled(iapManager.shouldShowPaywall) + .accessibilityLabel(String(localized: "Weather")) + .accessibilityHint(String(localized: "Show weather details for each day")) + } + .padding() + + if iapManager.shouldShowPaywall { + HStack { + Image(systemName: "crown.fill") + .foregroundColor(.yellow) + Text("Premium Feature") + .font(.caption) + .foregroundStyle(.secondary) + } + .padding(.horizontal) + .padding(.bottom, 12) + .accessibilityElement(children: .combine) + .accessibilityLabel(String(localized: "Premium feature, subscription required")) + } + } + .background(theme.currentTheme.secondaryBGColor) + .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight]) + .sheet(isPresented: $showWeatherSubscriptionStore) { + ReflectSubscriptionStoreView(source: "settings") + } + } + // MARK: - Export Data Button private var exportDataButton: some View { @@ -1240,6 +1309,8 @@ struct SettingsView: View { @AppStorage(UserDefaultsStore.Keys.firstLaunchDate.rawValue, store: GroupUserDefaults.groupDefaults) private var firstLaunchDate = Date() @AppStorage(UserDefaultsStore.Keys.privacyLockEnabled.rawValue, store: GroupUserDefaults.groupDefaults) private var privacyLockEnabled = false @AppStorage(UserDefaultsStore.Keys.hapticFeedbackEnabled.rawValue, store: GroupUserDefaults.groupDefaults) private var hapticFeedbackEnabled = true + @AppStorage(UserDefaultsStore.Keys.weatherEnabled.rawValue, store: GroupUserDefaults.groupDefaults) private var weatherEnabled = true + @State private var showWeatherSubscriptionStore = false private var textColor: Color { theme.currentTheme.labelColor } @@ -1257,6 +1328,7 @@ struct SettingsView: View { featuresSectionHeader privacyLockToggle healthKitToggle + weatherToggle exportDataButton // Settings section @@ -1560,6 +1632,68 @@ struct SettingsView: View { } } + // MARK: - Weather Toggle + + private var weatherToggle: some View { + VStack(spacing: 0) { + HStack(spacing: 12) { + Image(systemName: "cloud.sun.fill") + .font(.title2) + .foregroundColor(.blue) + .frame(width: 32) + + VStack(alignment: .leading, spacing: 2) { + Text("Weather") + .foregroundColor(textColor) + + Text("Show weather details for each day") + .font(.caption) + .foregroundStyle(.secondary) + } + + Spacer() + + Toggle("", isOn: Binding( + get: { iapManager.shouldShowPaywall ? false : weatherEnabled }, + set: { newValue in + if iapManager.shouldShowPaywall { + showWeatherSubscriptionStore = true + return + } + + weatherEnabled = newValue + + if newValue { + LocationManager.shared.requestAuthorization() + } + + AnalyticsManager.shared.track(.weatherToggled(enabled: newValue)) + } + )) + .labelsHidden() + .disabled(iapManager.shouldShowPaywall) + } + .padding() + + if iapManager.shouldShowPaywall { + HStack { + Image(systemName: "crown.fill") + .foregroundColor(.yellow) + Text("Premium Feature") + .font(.caption) + .foregroundStyle(.secondary) + } + .padding(.horizontal) + .padding(.bottom, 12) + } + } + .background(theme.currentTheme.secondaryBGColor) + .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight]) + .sheet(isPresented: $showWeatherSubscriptionStore) { + ReflectSubscriptionStoreView(source: "settings") + } + } + // MARK: - Export Data Button private var exportDataButton: some View { From 19b4c8b05b5046e8c9fb5f525079c8eda86b5e71 Mon Sep 17 00:00:00 2001 From: Trey t Date: Wed, 11 Mar 2026 10:13:54 -0500 Subject: [PATCH 2/4] Add AI mood report feature with PDF export for therapist sharing Adds a Reports tab to the Insights view with date range selection, two report types (Quick Summary / Detailed), Foundation Models AI generation with batched concurrent processing, and clinical PDF export via WKWebView HTML rendering. Co-Authored-By: Claude Opus 4.6 --- Shared/AccessibilityIdentifiers.swift | 14 + Shared/Analytics.swift | 17 + Shared/Models/AIReport.swift | 146 +++++ Shared/Services/ReportPDFGenerator.swift | 445 +++++++++++++++ Shared/Views/InsightsView/InsightsView.swift | 332 ++++++----- .../InsightsView/ReportDateRangePicker.swift | 346 ++++++++++++ .../InsightsView/ReportGeneratingView.swift | 86 +++ Shared/Views/InsightsView/ReportsView.swift | 381 +++++++++++++ .../Views/InsightsView/ReportsViewModel.swift | 530 ++++++++++++++++++ 9 files changed, 2149 insertions(+), 148 deletions(-) create mode 100644 Shared/Models/AIReport.swift create mode 100644 Shared/Services/ReportPDFGenerator.swift create mode 100644 Shared/Views/InsightsView/ReportDateRangePicker.swift create mode 100644 Shared/Views/InsightsView/ReportGeneratingView.swift create mode 100644 Shared/Views/InsightsView/ReportsView.swift create mode 100644 Shared/Views/InsightsView/ReportsViewModel.swift diff --git a/Shared/AccessibilityIdentifiers.swift b/Shared/AccessibilityIdentifiers.swift index 110b838..9ba20ff 100644 --- a/Shared/AccessibilityIdentifiers.swift +++ b/Shared/AccessibilityIdentifiers.swift @@ -153,6 +153,20 @@ enum AccessibilityID { static let skipButton = "onboarding_skip_button" } + // MARK: - Reports + enum Reports { + static let segmentedPicker = "reports_segmented_picker" + static let dateRangePicker = "reports_date_range_picker" + static let quickSummaryButton = "reports_quick_summary_button" + static let detailedReportButton = "reports_detailed_report_button" + static let generateButton = "reports_generate_button" + static let progressView = "reports_progress_view" + static let cancelButton = "reports_cancel_button" + static let exportButton = "reports_export_button" + static let privacyConfirmation = "reports_privacy_confirmation" + static let minimumEntriesWarning = "reports_minimum_entries_warning" + } + // MARK: - Common enum Common { static let lockScreen = "lock_screen" diff --git a/Shared/Analytics.swift b/Shared/Analytics.swift index ea3ccd3..b153e53 100644 --- a/Shared/Analytics.swift +++ b/Shared/Analytics.swift @@ -368,6 +368,7 @@ extension AnalyticsManager { case specialThanks = "special_thanks" case reminderTimePicker = "reminder_time_picker" case exportView = "export_view" + case reports = "reports" } } @@ -463,6 +464,12 @@ extension AnalyticsManager { // MARK: Sharing case shareTemplateViewed(template: String) + // MARK: Reports + case reportGenerated(type: String, entryCount: Int, daySpan: Int) + case reportExported(type: String, entryCount: Int) + case reportGenerationFailed(error: String) + case reportCancelled + // MARK: Error case storageFallbackActivated @@ -627,6 +634,16 @@ extension AnalyticsManager { case .shareTemplateViewed(let template): return ("share_template_viewed", ["template": template]) + // Reports + case .reportGenerated(let type, let entryCount, let daySpan): + return ("report_generated", ["type": type, "entry_count": entryCount, "day_span": daySpan]) + case .reportExported(let type, let entryCount): + return ("report_exported", ["type": type, "entry_count": entryCount]) + case .reportGenerationFailed(let error): + return ("report_generation_failed", ["error": error]) + case .reportCancelled: + return ("report_cancelled", nil) + // Error case .storageFallbackActivated: return ("storage_fallback_activated", nil) diff --git a/Shared/Models/AIReport.swift b/Shared/Models/AIReport.swift new file mode 100644 index 0000000..a8c5b42 --- /dev/null +++ b/Shared/Models/AIReport.swift @@ -0,0 +1,146 @@ +// +// AIReport.swift +// Reflect +// +// Data models for AI-generated mood reports with PDF export. +// + +import Foundation +import FoundationModels + +// MARK: - Report Type + +enum ReportType: String, CaseIterable { + case quickSummary = "Quick Summary" + case detailed = "Detailed Report" + + var icon: String { + switch self { + case .quickSummary: return "doc.text" + case .detailed: return "doc.text.magnifyingglass" + } + } + + var description: String { + switch self { + case .quickSummary: return "AI overview of your mood patterns" + case .detailed: return "Week-by-week analysis with full data" + } + } +} + +// MARK: - Report Entry (decoupled from SwiftData) + +struct ReportEntry { + let date: Date + let mood: Mood + let notes: String? + let weather: WeatherData? + + init(from model: MoodEntryModel) { + self.date = model.forDate + self.mood = model.mood + self.notes = model.notes + self.weather = model.weatherJSON.flatMap { WeatherData.decode(from: $0) } + } +} + +// MARK: - Report Overview Stats + +struct ReportOverviewStats { + let totalEntries: Int + let averageMood: Double + let moodDistribution: [Mood: Int] + let trend: String + let dateRange: String +} + +// MARK: - Report Week + +struct ReportWeek: Identifiable { + let id = UUID() + let weekNumber: Int + let startDate: Date + let endDate: Date + let entries: [ReportEntry] + var aiSummary: String? +} + +// MARK: - Report Month Summary + +struct ReportMonthSummary: Identifiable { + let id = UUID() + let month: Int + let year: Int + let entryCount: Int + let averageMood: Double + var aiSummary: String? + + var title: String { + let formatter = DateFormatter() + formatter.dateFormat = "MMMM yyyy" + var components = DateComponents() + components.month = month + components.year = year + let date = Calendar.current.date(from: components) ?? Date() + return formatter.string(from: date) + } +} + +// MARK: - Report Year Summary + +struct ReportYearSummary: Identifiable { + let id = UUID() + let year: Int + let entryCount: Int + let averageMood: Double + var aiSummary: String? +} + +// MARK: - Assembled Report + +struct MoodReport { + let reportType: ReportType + let generatedAt: Date + let overview: ReportOverviewStats + let weeks: [ReportWeek] + let monthlySummaries: [ReportMonthSummary] + let yearlySummaries: [ReportYearSummary] + var quickSummary: String? +} + +// MARK: - @Generable AI Response Structs + +@available(iOS 26, *) +@Generable +struct AIWeeklySummary: Equatable { + @Guide(description: "A clinical, factual summary of the user's mood patterns for this week. Use third-person perspective (e.g., 'The individual'). 2-3 sentences covering mood trends, notable patterns, and any significant changes. Neutral, professional tone suitable for a therapist to read.") + var summary: String +} + +@available(iOS 26, *) +@Generable +struct AIMonthSummary: Equatable { + @Guide(description: "A clinical, factual summary of the user's mood patterns for this month. Use third-person perspective. 3-4 sentences covering overall mood trend, week-over-week changes, and notable patterns. Professional tone suitable for clinical review.") + var summary: String +} + +@available(iOS 26, *) +@Generable +struct AIYearSummary: Equatable { + @Guide(description: "A clinical, factual summary of the user's mood patterns for this year. Use third-person perspective. 3-5 sentences covering seasonal patterns, long-term trends, and significant periods. Professional tone suitable for clinical review.") + var summary: String +} + +@available(iOS 26, *) +@Generable +struct AIQuickSummaryResponse: Equatable { + @Guide(description: "A comprehensive clinical summary of the user's mood data for the selected period. Use third-person perspective (e.g., 'The individual'). 4-6 sentences covering: overall mood patterns, notable trends, day-of-week patterns, and any areas of concern or improvement. Factual, neutral, professional tone suitable for sharing with a therapist.") + var summary: String + + @Guide(description: "2-3 key clinical observations as brief bullet points. Each should be a single factual sentence about a pattern or trend observed in the data.") + var keyObservations: [String] + + @Guide(description: "1-2 brief, neutral recommendations based on observed patterns. Frame as observations rather than prescriptions (e.g., 'Mood data suggests weekday routines may benefit from...').") + var recommendations: [String] +} diff --git a/Shared/Services/ReportPDFGenerator.swift b/Shared/Services/ReportPDFGenerator.swift new file mode 100644 index 0000000..a9cccf9 --- /dev/null +++ b/Shared/Services/ReportPDFGenerator.swift @@ -0,0 +1,445 @@ +// +// ReportPDFGenerator.swift +// Reflect +// +// Generates clinical PDF reports from MoodReport data using HTML + WKWebView. +// + +import Foundation +import WebKit + +@MainActor +final class ReportPDFGenerator { + + enum PDFError: Error, LocalizedError { + case htmlRenderFailed + case pdfGenerationFailed(underlying: Error) + case fileWriteFailed + + var errorDescription: String? { + switch self { + case .htmlRenderFailed: return "Failed to render report HTML" + case .pdfGenerationFailed(let error): return "PDF generation failed: \(error.localizedDescription)" + case .fileWriteFailed: return "Failed to save PDF file" + } + } + } + + // MARK: - Public API + + func generatePDF(from report: MoodReport) async throws -> URL { + let html = generateHTML(from: report) + let pdfData = try await renderHTMLToPDF(html: html) + + let dateFormatter = DateFormatter() + dateFormatter.dateFormat = "yyyy-MM-dd" + let startStr = dateFormatter.string(from: report.weeks.first?.startDate ?? Date()) + let endStr = dateFormatter.string(from: report.weeks.last?.endDate ?? Date()) + let fileName = "Reflect-AI-Report-\(startStr)-to-\(endStr).pdf" + let fileURL = FileManager.default.temporaryDirectory.appendingPathComponent(fileName) + + do { + try pdfData.write(to: fileURL) + return fileURL + } catch { + throw PDFError.fileWriteFailed + } + } + + // MARK: - HTML Generation + + func generateHTML(from report: MoodReport) -> String { + let dateFormatter = DateFormatter() + dateFormatter.dateStyle = .long + + let generatedDate = dateFormatter.string(from: report.generatedAt) + let useFahrenheit = Locale.current.measurementSystem == .us + + var html = """ + + + + + + + + + """ + + // Header + html += """ +
+

Reflect Mood Report

+

\(report.overview.dateRange)

+

Generated \(generatedDate)

+
+ """ + + // Overview Stats + html += generateOverviewSection(report.overview) + + // Quick Summary (if available) + if let quickSummary = report.quickSummary { + html += """ +
+

Summary

+
\(escapeHTML(quickSummary))
+
+ """ + } + + // Weekly sections (Detailed report only) + if report.reportType == .detailed { + for week in report.weeks { + html += generateWeekSection(week, useFahrenheit: useFahrenheit) + } + } + + // Monthly Summaries + if !report.monthlySummaries.isEmpty { + html += """ +
+

Monthly Summaries

+ """ + for month in report.monthlySummaries { + html += """ +
+

\(escapeHTML(month.title))

+

\(month.entryCount) entries · Average mood: \(String(format: "%.1f", month.averageMood))/5

+ \(month.aiSummary.map { "
\(escapeHTML($0))
" } ?? "") +
+ """ + } + html += "
" + } + + // Yearly Summaries + if !report.yearlySummaries.isEmpty { + html += """ +
+

Yearly Summaries

+ """ + for year in report.yearlySummaries { + html += """ +
+

\(year.year)

+

\(year.entryCount) entries · Average mood: \(String(format: "%.1f", year.averageMood))/5

+ \(year.aiSummary.map { "
\(escapeHTML($0))
" } ?? "") +
+ """ + } + html += "
" + } + + // Footer + html += """ + + + + """ + + return html + } + + // MARK: - Section Generators + + private func generateOverviewSection(_ overview: ReportOverviewStats) -> String { + let distributionHTML = [Mood.great, .good, .average, .bad, .horrible] + .compactMap { mood -> String? in + guard let count = overview.moodDistribution[mood], count > 0 else { return nil } + let pct = overview.totalEntries > 0 ? Int(Double(count) / Double(overview.totalEntries) * 100) : 0 + return """ +
+ + \(mood.widgetDisplayName) + \(count) (\(pct)%) +
+ """ + } + .joined() + + return """ +
+

Overview

+
+
+
\(overview.totalEntries)
+
Total Entries
+
+
+
\(String(format: "%.1f", overview.averageMood))
+
Avg Mood (1-5)
+
+
+
\(overview.trend)
+
Trend
+
+
+
+

Mood Distribution

+ \(distributionHTML) +
+
+ """ + } + + private func generateWeekSection(_ week: ReportWeek, useFahrenheit: Bool) -> String { + let weekDateFormatter = DateFormatter() + weekDateFormatter.dateFormat = "MMM d" + + let startStr = weekDateFormatter.string(from: week.startDate) + let endStr = weekDateFormatter.string(from: week.endDate) + + let entryDateFormatter = DateFormatter() + entryDateFormatter.dateFormat = "EEE, MMM d" + + var rows = "" + for entry in week.entries.sorted(by: { $0.date < $1.date }) { + let dateStr = entryDateFormatter.string(from: entry.date) + let moodStr = entry.mood.widgetDisplayName + let moodColor = moodHexColor(entry.mood) + let notesStr = entry.notes ?? "-" + let weatherStr = formatWeather(entry.weather, useFahrenheit: useFahrenheit) + + rows += """ + + \(escapeHTML(dateStr)) + \(escapeHTML(moodStr)) + \(escapeHTML(notesStr)) + \(escapeHTML(weatherStr)) + + """ + } + + return """ +
+

Week \(week.weekNumber): \(escapeHTML(startStr)) - \(escapeHTML(endStr))

+ + + + + + + + + + + \(rows) + +
DateMoodNotesWeather
+ \(week.aiSummary.map { "
\(escapeHTML($0))
" } ?? "") +
+ """ + } + + // MARK: - Helpers + + private func formatWeather(_ weather: WeatherData?, useFahrenheit: Bool) -> String { + guard let w = weather else { return "-" } + let temp: String + if useFahrenheit { + let f = w.temperature * 9 / 5 + 32 + temp = "\(Int(round(f)))°F" + } else { + temp = "\(Int(round(w.temperature)))°C" + } + return "\(w.condition), \(temp)" + } + + private func moodHexColor(_ mood: Mood) -> String { + switch mood { + case .great: return "#4CAF50" + case .good: return "#8BC34A" + case .average: return "#FFC107" + case .bad: return "#FF9800" + case .horrible: return "#F44336" + default: return "#9E9E9E" + } + } + + private func escapeHTML(_ string: String) -> String { + string + .replacingOccurrences(of: "&", with: "&") + .replacingOccurrences(of: "<", with: "<") + .replacingOccurrences(of: ">", with: ">") + .replacingOccurrences(of: "\"", with: """) + } + + // MARK: - PDF Rendering + + private func renderHTMLToPDF(html: String) async throws -> Data { + let webView = WKWebView(frame: CGRect(x: 0, y: 0, width: 612, height: 792)) + webView.isOpaque = false + + // Load HTML and wait for it to render + return try await withCheckedThrowingContinuation { continuation in + let delegate = PDFNavigationDelegate { result in + switch result { + case .success(let data): + continuation.resume(returning: data) + case .failure(let error): + continuation.resume(throwing: error) + } + } + + // Prevent delegate from being deallocated + objc_setAssociatedObject(webView, "delegate", delegate, .OBJC_ASSOCIATION_RETAIN) + webView.navigationDelegate = delegate + webView.loadHTMLString(html, baseURL: nil) + } + } + + // MARK: - CSS + + private var cssStyles: String { + """ + * { margin: 0; padding: 0; box-sizing: border-box; } + body { + font-family: Georgia, 'Times New Roman', serif; + font-size: 11pt; + line-height: 1.5; + color: #333; + padding: 40px; + } + h1, h2, h3 { + font-family: -apple-system, Helvetica, Arial, sans-serif; + color: #1a1a1a; + } + h1 { font-size: 22pt; margin-bottom: 4px; } + h2 { font-size: 16pt; margin-bottom: 12px; border-bottom: 1px solid #ddd; padding-bottom: 6px; } + h3 { font-size: 13pt; margin-bottom: 8px; } + .header { text-align: center; margin-bottom: 30px; } + .subtitle { font-size: 13pt; color: #555; margin-bottom: 2px; } + .generated { font-size: 10pt; color: #888; } + .section { margin-bottom: 24px; } + .stats-grid { + display: flex; + gap: 20px; + margin-bottom: 16px; + } + .stat-item { + flex: 1; + text-align: center; + padding: 12px; + background: #f8f8f8; + border-radius: 8px; + } + .stat-value { + font-family: -apple-system, Helvetica, Arial, sans-serif; + font-size: 20pt; + font-weight: 700; + color: #1a1a1a; + } + .stat-label { + font-size: 9pt; + color: #888; + text-transform: uppercase; + letter-spacing: 0.5px; + } + .distribution { margin-top: 12px; } + .mood-bar-row { + display: flex; + align-items: center; + gap: 8px; + padding: 4px 0; + } + .mood-dot { + width: 10px; + height: 10px; + border-radius: 50%; + display: inline-block; + } + .mood-dot-inline { + width: 8px; + height: 8px; + border-radius: 50%; + display: inline-block; + vertical-align: middle; + } + .mood-label { width: 80px; font-size: 10pt; } + .mood-count { font-size: 10pt; color: #666; } + table { + width: 100%; + border-collapse: collapse; + margin: 8px 0 12px 0; + font-size: 10pt; + } + thead { background: #f0f0f0; } + th { + font-family: -apple-system, Helvetica, Arial, sans-serif; + font-weight: 600; + text-align: left; + padding: 6px 8px; + font-size: 9pt; + text-transform: uppercase; + letter-spacing: 0.3px; + color: #555; + } + td { padding: 6px 8px; border-bottom: 1px solid #eee; } + tr:nth-child(even) { background: #fafafa; } + .notes-cell { max-width: 200px; overflow: hidden; text-overflow: ellipsis; } + .ai-summary { + background: #f4f0ff; + border-left: 3px solid #7c5cbf; + padding: 10px 14px; + margin: 8px 0; + font-style: italic; + font-size: 10.5pt; + line-height: 1.6; + } + .summary-block { + margin-bottom: 16px; + page-break-inside: avoid; + } + .stats { font-size: 10pt; color: #666; margin-bottom: 6px; } + .page-break { page-break-before: always; } + .no-page-break { page-break-inside: avoid; } + .footer { + margin-top: 40px; + padding-top: 12px; + border-top: 1px solid #ddd; + text-align: center; + font-size: 9pt; + color: #999; + } + """ + } +} + +// MARK: - WKNavigationDelegate for PDF + +private class PDFNavigationDelegate: NSObject, WKNavigationDelegate { + let completion: (Result) -> Void + + init(completion: @escaping (Result) -> Void) { + self.completion = completion + } + + func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { + let config = WKPDFConfiguration() + config.rect = CGRect(x: 0, y: 0, width: 612, height: 792) // US Letter + + webView.createPDF(configuration: config) { [weak self] result in + DispatchQueue.main.async { + switch result { + case .success(let data): + self?.completion(.success(data)) + case .failure(let error): + self?.completion(.failure(ReportPDFGenerator.PDFError.pdfGenerationFailed(underlying: error))) + } + } + } + } + + func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) { + completion(.failure(ReportPDFGenerator.PDFError.htmlRenderFailed)) + } + + func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) { + completion(.failure(ReportPDFGenerator.PDFError.htmlRenderFailed)) + } +} diff --git a/Shared/Views/InsightsView/InsightsView.swift b/Shared/Views/InsightsView/InsightsView.swift index 96a4c6a..303e047 100644 --- a/Shared/Views/InsightsView/InsightsView.swift +++ b/Shared/Views/InsightsView/InsightsView.swift @@ -7,6 +7,11 @@ import SwiftUI +enum InsightsTab: String, CaseIterable { + case insights = "Insights" + case reports = "Reports" +} + struct InsightsView: View { @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system @AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default @@ -18,161 +23,65 @@ struct InsightsView: View { @StateObject private var viewModel = InsightsViewModel() @EnvironmentObject var iapManager: IAPManager @State private var showSubscriptionStore = false + @State private var selectedTab: InsightsTab = .insights var body: some View { - ZStack { - ScrollView { - VStack(spacing: 20) { - // Header - HStack { - Text("Insights") - .font(.title.weight(.bold)) - .foregroundColor(textColor) - .accessibilityIdentifier(AccessibilityID.Insights.header) - Spacer() - - // AI badge - if viewModel.isAIAvailable { - HStack(spacing: 4) { - Image(systemName: "sparkles") - .font(.caption.weight(.medium)) - Text("AI") - .font(.caption.weight(.semibold)) - } - .foregroundColor(.white) - .padding(.horizontal, 8) - .padding(.vertical, 4) - .background( - LinearGradient( - colors: [.purple, .blue], - startPoint: .leading, - endPoint: .trailing - ) - ) - .clipShape(Capsule()) - .aiInsightsTip() - } - } - .padding(.horizontal) - - // This Month Section - InsightsSectionView( - title: "This Month", - icon: "calendar", - insights: viewModel.monthInsights, - loadingState: viewModel.monthLoadingState, - textColor: textColor, - moodTint: moodTint, - imagePack: imagePack, - colorScheme: colorScheme - ) - .accessibilityIdentifier(AccessibilityID.Insights.monthSection) - - // This Year Section - InsightsSectionView( - title: "This Year", - icon: "calendar.badge.clock", - insights: viewModel.yearInsights, - loadingState: viewModel.yearLoadingState, - textColor: textColor, - moodTint: moodTint, - imagePack: imagePack, - colorScheme: colorScheme - ) - .accessibilityIdentifier(AccessibilityID.Insights.yearSection) - - // All Time Section - InsightsSectionView( - title: "All Time", - icon: "infinity", - insights: viewModel.allTimeInsights, - loadingState: viewModel.allTimeLoadingState, - textColor: textColor, - moodTint: moodTint, - imagePack: imagePack, - colorScheme: colorScheme - ) - .accessibilityIdentifier(AccessibilityID.Insights.allTimeSection) - } - .padding(.vertical) - .padding(.bottom, 100) - } - .refreshable { - viewModel.refreshInsights() - // Small delay to show refresh animation - try? await Task.sleep(nanoseconds: 500_000_000) - } - .disabled(iapManager.shouldShowPaywall) - - if iapManager.shouldShowPaywall { - // Premium insights prompt - VStack(spacing: 24) { - Spacer() - - // Icon - ZStack { - Circle() - .fill( - LinearGradient( - colors: [.purple.opacity(0.2), .blue.opacity(0.2)], - startPoint: .topLeading, - endPoint: .bottomTrailing - ) - ) - .frame(width: 100, height: 100) + VStack(spacing: 0) { + // Header + HStack { + Text("Insights") + .font(.title.weight(.bold)) + .foregroundColor(textColor) + .accessibilityIdentifier(AccessibilityID.Insights.header) + Spacer() + // AI badge + if viewModel.isAIAvailable { + HStack(spacing: 4) { Image(systemName: "sparkles") - .font(.largeTitle) - .foregroundStyle( - LinearGradient( - colors: [.purple, .blue], - startPoint: .topLeading, - endPoint: .bottomTrailing - ) - ) + .font(.caption.weight(.medium)) + Text("AI") + .font(.caption.weight(.semibold)) } - - // Text - VStack(spacing: 12) { - Text("Unlock AI-Powered Insights") - .font(.title2.weight(.bold)) - .foregroundColor(textColor) - .multilineTextAlignment(.center) - - Text("Discover patterns in your mood, get personalized recommendations, and understand what affects how you feel.") - .font(.body) - .foregroundColor(textColor.opacity(0.7)) - .multilineTextAlignment(.center) - .padding(.horizontal, 32) - } - - // Subscribe button - Button { - showSubscriptionStore = true - } label: { - HStack { - Image(systemName: "sparkles") - Text("Get Personal Insights") - } - .font(.headline.weight(.bold)) - .foregroundColor(.white) - .frame(maxWidth: .infinity) - .padding(.vertical, 16) - .background( - LinearGradient( - colors: [.purple, .blue], - startPoint: .leading, - endPoint: .trailing - ) + .foregroundColor(.white) + .padding(.horizontal, 8) + .padding(.vertical, 4) + .background( + LinearGradient( + colors: [.purple, .blue], + startPoint: .leading, + endPoint: .trailing ) - .clipShape(RoundedRectangle(cornerRadius: 14)) - } - .padding(.horizontal, 24) - - Spacer() + ) + .clipShape(Capsule()) + .aiInsightsTip() + } + } + .padding(.horizontal) + + // Segmented picker + Picker("", selection: $selectedTab) { + ForEach(InsightsTab.allCases, id: \.self) { tab in + Text(tab.rawValue).tag(tab) + } + } + .pickerStyle(.segmented) + .padding(.horizontal, 16) + .padding(.top, 12) + .padding(.bottom, 16) + .accessibilityIdentifier(AccessibilityID.Reports.segmentedPicker) + + // Content + ZStack { + if selectedTab == .insights { + insightsContent + } else { + ReportsView() + } + + if iapManager.shouldShowPaywall { + paywallOverlay } - .background(theme.currentTheme.bg) - .accessibilityIdentifier(AccessibilityID.Paywall.insightsOverlay) } } .sheet(isPresented: $showSubscriptionStore) { @@ -188,6 +97,133 @@ struct InsightsView: View { } .padding(.top) } + + // MARK: - Insights Content + + private var insightsContent: some View { + ScrollView { + VStack(spacing: 20) { + // This Month Section + InsightsSectionView( + title: "This Month", + icon: "calendar", + insights: viewModel.monthInsights, + loadingState: viewModel.monthLoadingState, + textColor: textColor, + moodTint: moodTint, + imagePack: imagePack, + colorScheme: colorScheme + ) + .accessibilityIdentifier(AccessibilityID.Insights.monthSection) + + // This Year Section + InsightsSectionView( + title: "This Year", + icon: "calendar.badge.clock", + insights: viewModel.yearInsights, + loadingState: viewModel.yearLoadingState, + textColor: textColor, + moodTint: moodTint, + imagePack: imagePack, + colorScheme: colorScheme + ) + .accessibilityIdentifier(AccessibilityID.Insights.yearSection) + + // All Time Section + InsightsSectionView( + title: "All Time", + icon: "infinity", + insights: viewModel.allTimeInsights, + loadingState: viewModel.allTimeLoadingState, + textColor: textColor, + moodTint: moodTint, + imagePack: imagePack, + colorScheme: colorScheme + ) + .accessibilityIdentifier(AccessibilityID.Insights.allTimeSection) + } + .padding(.vertical) + .padding(.bottom, 100) + } + .refreshable { + viewModel.refreshInsights() + // Small delay to show refresh animation + try? await Task.sleep(nanoseconds: 500_000_000) + } + .disabled(iapManager.shouldShowPaywall) + } + + // MARK: - Paywall Overlay + + private var paywallOverlay: some View { + VStack(spacing: 24) { + Spacer() + + // Icon + ZStack { + Circle() + .fill( + LinearGradient( + colors: [.purple.opacity(0.2), .blue.opacity(0.2)], + startPoint: .topLeading, + endPoint: .bottomTrailing + ) + ) + .frame(width: 100, height: 100) + + Image(systemName: "sparkles") + .font(.largeTitle) + .foregroundStyle( + LinearGradient( + colors: [.purple, .blue], + startPoint: .topLeading, + endPoint: .bottomTrailing + ) + ) + } + + // Text + VStack(spacing: 12) { + Text("Unlock AI-Powered Insights") + .font(.title2.weight(.bold)) + .foregroundColor(textColor) + .multilineTextAlignment(.center) + + Text("Discover patterns in your mood, get personalized recommendations, and understand what affects how you feel.") + .font(.body) + .foregroundColor(textColor.opacity(0.7)) + .multilineTextAlignment(.center) + .padding(.horizontal, 32) + } + + // Subscribe button + Button { + showSubscriptionStore = true + } label: { + HStack { + Image(systemName: "sparkles") + Text("Get Personal Insights") + } + .font(.headline.weight(.bold)) + .foregroundColor(.white) + .frame(maxWidth: .infinity) + .padding(.vertical, 16) + .background( + LinearGradient( + colors: [.purple, .blue], + startPoint: .leading, + endPoint: .trailing + ) + ) + .clipShape(RoundedRectangle(cornerRadius: 14)) + } + .padding(.horizontal, 24) + + Spacer() + } + .background(theme.currentTheme.bg) + .accessibilityIdentifier(AccessibilityID.Paywall.insightsOverlay) + } } // MARK: - Insights Section View diff --git a/Shared/Views/InsightsView/ReportDateRangePicker.swift b/Shared/Views/InsightsView/ReportDateRangePicker.swift new file mode 100644 index 0000000..4920d80 --- /dev/null +++ b/Shared/Views/InsightsView/ReportDateRangePicker.swift @@ -0,0 +1,346 @@ +// +// ReportDateRangePicker.swift +// Reflect +// +// Calendar-based date range picker for AI mood reports. +// Ported from SportsTime DateRangePicker with Reflect theming. +// + +import SwiftUI + +struct ReportDateRangePicker: View { + @Binding var startDate: Date + @Binding var endDate: Date + + @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system + @Environment(\.colorScheme) private var colorScheme + + @State private var displayedMonth: Date = Date() + @State private var selectionState: SelectionState = .none + + enum SelectionState { + case none + case startSelected + case complete + } + + private var textColor: Color { theme.currentTheme.labelColor } + private let calendar = Calendar.current + private let daysOfWeek = ["S", "M", "T", "W", "T", "F", "S"] + private let daysOfWeekFull = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] + + private var monthYearString: String { + let formatter = DateFormatter() + formatter.dateFormat = "MMMM yyyy" + return formatter.string(from: displayedMonth) + } + + private var daysInMonth: [Date?] { + guard let monthInterval = calendar.dateInterval(of: .month, for: displayedMonth), + let monthFirstWeek = calendar.dateInterval(of: .weekOfMonth, for: monthInterval.start) else { + return [] + } + + var days: [Date?] = [] + let startOfMonth = monthInterval.start + guard let endOfMonth = calendar.date(byAdding: .day, value: -1, to: monthInterval.end) else { + return [] + } + + var currentDate = monthFirstWeek.start + + while currentDate <= endOfMonth || days.count % 7 != 0 { + if currentDate >= startOfMonth && currentDate <= endOfMonth { + days.append(currentDate) + } else if currentDate < startOfMonth { + days.append(nil) + } else if days.count % 7 != 0 { + days.append(nil) + } else { + break + } + guard let nextDate = calendar.date(byAdding: .day, value: 1, to: currentDate) else { + break + } + currentDate = nextDate + } + + return days + } + + private var selectedDayCount: Int { + let components = calendar.dateComponents([.day], from: startDate, to: endDate) + return (components.day ?? 0) + 1 + } + + var body: some View { + VStack(spacing: 16) { + selectedRangeSummary + monthNavigation + daysOfWeekHeader + calendarGrid + dayCountBadge + } + .accessibilityIdentifier(AccessibilityID.Reports.dateRangePicker) + .onAppear { + displayedMonth = calendar.startOfDay(for: startDate) + if endDate > startDate { + selectionState = .complete + } + } + } + + // MARK: - Selected Range Summary + + private var selectedRangeSummary: some View { + HStack(spacing: 16) { + VStack(alignment: .leading, spacing: 4) { + Text("START") + .font(.caption2) + .foregroundStyle(textColor.opacity(0.5)) + Text(startDate.formatted(.dateTime.month(.abbreviated).day().year())) + .font(.body) + .foregroundColor(.accentColor) + } + .frame(maxWidth: .infinity, alignment: .leading) + + Image(systemName: "arrow.right") + .font(.subheadline) + .foregroundStyle(textColor.opacity(0.5)) + .accessibilityHidden(true) + + VStack(alignment: .trailing, spacing: 4) { + Text("END") + .font(.caption2) + .foregroundStyle(textColor.opacity(0.5)) + Text(endDate.formatted(.dateTime.month(.abbreviated).day().year())) + .font(.body) + .foregroundColor(.accentColor) + } + .frame(maxWidth: .infinity, alignment: .trailing) + } + .padding() + .background( + RoundedRectangle(cornerRadius: 12) + .fill(colorScheme == .dark ? Color(.systemGray6) : .white) + ) + } + + // MARK: - Month Navigation + + private var monthNavigation: some View { + HStack { + Button { + if UIAccessibility.isReduceMotionEnabled { + displayedMonth = calendar.date(byAdding: .month, value: -1, to: displayedMonth) ?? displayedMonth + } else { + withAnimation(.easeInOut(duration: 0.2)) { + displayedMonth = calendar.date(byAdding: .month, value: -1, to: displayedMonth) ?? displayedMonth + } + } + } label: { + Image(systemName: "chevron.left") + .font(.body) + .foregroundColor(.accentColor) + .frame(minWidth: 44, minHeight: 44) + .background(Color.accentColor.opacity(0.15)) + .clipShape(Circle()) + } + .accessibilityLabel("Previous month") + + Spacer() + + Text(monthYearString) + .font(.headline) + .foregroundStyle(textColor) + + Spacer() + + Button { + if UIAccessibility.isReduceMotionEnabled { + displayedMonth = calendar.date(byAdding: .month, value: 1, to: displayedMonth) ?? displayedMonth + } else { + withAnimation(.easeInOut(duration: 0.2)) { + displayedMonth = calendar.date(byAdding: .month, value: 1, to: displayedMonth) ?? displayedMonth + } + } + } label: { + Image(systemName: "chevron.right") + .font(.body) + .foregroundColor(.accentColor) + .frame(minWidth: 44, minHeight: 44) + .background(Color.accentColor.opacity(0.15)) + .clipShape(Circle()) + } + .accessibilityLabel("Next month") + .disabled(isDisplayingCurrentMonth) + } + } + + private var isDisplayingCurrentMonth: Bool { + let now = Date() + return calendar.component(.month, from: displayedMonth) == calendar.component(.month, from: now) + && calendar.component(.year, from: displayedMonth) == calendar.component(.year, from: now) + } + + // MARK: - Days of Week Header + + private var daysOfWeekHeader: some View { + HStack(spacing: 0) { + ForEach(Array(daysOfWeek.enumerated()), id: \.offset) { index, day in + Text(day) + .font(.caption) + .foregroundStyle(textColor.opacity(0.5)) + .frame(maxWidth: .infinity) + .accessibilityLabel(daysOfWeekFull[index]) + } + } + } + + // MARK: - Calendar Grid + + private var calendarGrid: some View { + let columns = Array(repeating: GridItem(.flexible(), spacing: 4), count: 7) + + return LazyVGrid(columns: columns, spacing: 4) { + ForEach(Array(daysInMonth.enumerated()), id: \.offset) { _, date in + if let date = date { + ReportDayCell( + date: date, + isStart: calendar.isDate(date, inSameDayAs: startDate), + isEnd: calendar.isDate(date, inSameDayAs: endDate), + isInRange: isDateInRange(date), + isToday: calendar.isDateInToday(date), + isFuture: isFutureDate(date), + textColor: textColor, + onTap: { handleDateTap(date) } + ) + } else { + Color.clear + .frame(height: 40) + } + } + } + } + + // MARK: - Day Count Badge + + private var dayCountBadge: some View { + HStack(spacing: 4) { + Image(systemName: "calendar.badge.clock") + .foregroundColor(.accentColor) + .accessibilityHidden(true) + Text("\(selectedDayCount) day\(selectedDayCount == 1 ? "" : "s") selected") + .font(.subheadline) + .foregroundStyle(textColor.opacity(0.6)) + } + .frame(maxWidth: .infinity, alignment: .center) + .padding(.top, 4) + } + + // MARK: - Helpers + + private func isDateInRange(_ date: Date) -> Bool { + let start = calendar.startOfDay(for: startDate) + let end = calendar.startOfDay(for: endDate) + let current = calendar.startOfDay(for: date) + return current > start && current < end + } + + private func isFutureDate(_ date: Date) -> Bool { + calendar.startOfDay(for: date) > calendar.startOfDay(for: Date()) + } + + private func handleDateTap(_ date: Date) { + let tappedDate = calendar.startOfDay(for: date) + let today = calendar.startOfDay(for: Date()) + + // Don't allow selecting dates after today + if tappedDate > today { return } + + switch selectionState { + case .none, .complete: + startDate = date + endDate = date + selectionState = .startSelected + + case .startSelected: + if date >= startDate { + endDate = date + } else { + endDate = startDate + startDate = date + } + selectionState = .complete + } + } +} + +// MARK: - Report Day Cell + +private struct ReportDayCell: View { + let date: Date + let isStart: Bool + let isEnd: Bool + let isInRange: Bool + let isToday: Bool + let isFuture: Bool + let textColor: Color + let onTap: () -> Void + + @Environment(\.colorScheme) private var colorScheme + + private let calendar = Calendar.current + + private var dayNumber: String { + "\(calendar.component(.day, from: date))" + } + + var body: some View { + Button(action: onTap) { + ZStack { + // Range highlight background + if isInRange || isStart || isEnd { + HStack(spacing: 0) { + Rectangle() + .fill(Color.accentColor.opacity(0.15)) + .frame(maxWidth: .infinity) + .opacity(isStart && !isEnd ? 0 : 1) + .offset(x: isStart ? 20 : 0) + + Rectangle() + .fill(Color.accentColor.opacity(0.15)) + .frame(maxWidth: .infinity) + .opacity(isEnd && !isStart ? 0 : 1) + .offset(x: isEnd ? -20 : 0) + } + .opacity(isStart && isEnd ? 0 : 1) + } + + // Day circle + ZStack { + if isStart || isEnd { + Circle() + .fill(Color.accentColor) + } else if isToday { + Circle() + .stroke(Color.accentColor, lineWidth: 2) + } + + Text(dayNumber) + .font(.subheadline) + .foregroundStyle( + isFuture ? textColor.opacity(0.25) : + (isStart || isEnd) ? .white : + isToday ? .accentColor : + textColor + ) + } + .frame(width: 36, height: 36) + } + } + .buttonStyle(.plain) + .disabled(isFuture) + .frame(height: 40) + } +} diff --git a/Shared/Views/InsightsView/ReportGeneratingView.swift b/Shared/Views/InsightsView/ReportGeneratingView.swift new file mode 100644 index 0000000..d8e2589 --- /dev/null +++ b/Shared/Views/InsightsView/ReportGeneratingView.swift @@ -0,0 +1,86 @@ +// +// ReportGeneratingView.swift +// Reflect +// +// Overlay shown during AI report generation with progress and cancel. +// + +import SwiftUI + +struct ReportGeneratingView: View { + let progress: Double + let message: String + let onCancel: () -> Void + + @Environment(\.colorScheme) private var colorScheme + @State private var isPulsing = false + + var body: some View { + ZStack { + // Semi-transparent background + Color.black.opacity(0.4) + .ignoresSafeArea() + + VStack(spacing: 24) { + // Sparkles icon + Image(systemName: "sparkles") + .font(.system(size: 44)) + .foregroundStyle( + LinearGradient( + colors: [.purple, .blue], + startPoint: .topLeading, + endPoint: .bottomTrailing + ) + ) + .scaleEffect(isPulsing ? 1.1 : 1.0) + .opacity(isPulsing ? 0.8 : 1.0) + .animation( + UIAccessibility.isReduceMotionEnabled ? nil : + .easeInOut(duration: 1.2).repeatForever(autoreverses: true), + value: isPulsing + ) + + // Progress bar + VStack(spacing: 8) { + ProgressView(value: progress) + .progressViewStyle(.linear) + .tint( + LinearGradient( + colors: [.purple, .blue], + startPoint: .leading, + endPoint: .trailing + ) + ) + .accessibilityIdentifier(AccessibilityID.Reports.progressView) + + Text(message) + .font(.subheadline) + .foregroundStyle(.secondary) + .multilineTextAlignment(.center) + } + + // Cancel button + Button(role: .cancel) { + onCancel() + } label: { + Text("Cancel") + .font(.subheadline.weight(.medium)) + .foregroundColor(.secondary) + } + .accessibilityIdentifier(AccessibilityID.Reports.cancelButton) + } + .padding(32) + .background( + RoundedRectangle(cornerRadius: 20) + .fill(colorScheme == .dark ? Color(.systemGray6) : .white) + .shadow(radius: 20) + ) + .padding(.horizontal, 40) + } + .onAppear { + if !UIAccessibility.isReduceMotionEnabled { + isPulsing = true + } + } + } +} diff --git a/Shared/Views/InsightsView/ReportsView.swift b/Shared/Views/InsightsView/ReportsView.swift new file mode 100644 index 0000000..62ceb2c --- /dev/null +++ b/Shared/Views/InsightsView/ReportsView.swift @@ -0,0 +1,381 @@ +// +// ReportsView.swift +// Reflect +// +// AI-powered mood report generation with date range selection and PDF export. +// + +import SwiftUI + +struct ReportsView: View { + @StateObject private var viewModel = ReportsViewModel() + @EnvironmentObject var iapManager: IAPManager + + @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system + @Environment(\.colorScheme) private var colorScheme + + @State private var showSubscriptionStore = false + + private var textColor: Color { theme.currentTheme.labelColor } + + var body: some View { + ZStack { + ScrollView { + VStack(spacing: 20) { + // Report type selector + reportTypeSelector + + // Date range picker + ReportDateRangePicker( + startDate: $viewModel.startDate, + endDate: $viewModel.endDate + ) + .padding(.horizontal) + + // Entry count / validation + entryValidationCard + + // AI unavailable warning + if !viewModel.isAIAvailable { + aiUnavailableCard + } + + // Generate button + generateButton + + // Report ready card + if viewModel.generationState == .completed { + reportReadyCard + } + + // Error message + if case .failed(let message) = viewModel.generationState { + errorCard(message: message) + } + } + .padding(.vertical) + .padding(.bottom, 100) + } + .disabled(iapManager.shouldShowPaywall) + + // Generating overlay + if viewModel.generationState == .generating { + ReportGeneratingView( + progress: viewModel.progressValue, + message: viewModel.progressMessage, + onCancel: { viewModel.cancelGeneration() } + ) + } + + // Paywall overlay + if iapManager.shouldShowPaywall { + paywallOverlay + } + } + .sheet(isPresented: $viewModel.showShareSheet) { + if let url = viewModel.exportedPDFURL { + ExportShareSheet(items: [url]) + } + } + .sheet(isPresented: $showSubscriptionStore) { + ReflectSubscriptionStoreView(source: "reports_gate") + } + .confirmationDialog( + String(localized: "Privacy Notice"), + isPresented: $viewModel.showPrivacyConfirmation, + titleVisibility: .visible + ) { + Button(String(localized: "Share Report")) { + viewModel.exportPDF() + } + Button(String(localized: "Cancel"), role: .cancel) {} + } message: { + Text("This report contains your personal mood data and journal notes. Only share it with people you trust.") + } + .onAppear { + AnalyticsManager.shared.trackScreen(.reports) + } + } + + // MARK: - Report Type Selector + + private var reportTypeSelector: some View { + VStack(alignment: .leading, spacing: 12) { + Text("Report Type") + .font(.headline) + .foregroundColor(textColor) + .padding(.horizontal) + + ForEach(ReportType.allCases, id: \.self) { type in + Button { + viewModel.reportType = type + } label: { + HStack(spacing: 16) { + Image(systemName: type.icon) + .font(.title2) + .frame(width: 44, height: 44) + .background(viewModel.reportType == type ? Color.accentColor.opacity(0.15) : Color(.systemGray5)) + .foregroundColor(viewModel.reportType == type ? .accentColor : .gray) + .clipShape(Circle()) + + VStack(alignment: .leading, spacing: 2) { + Text(type.rawValue) + .font(.headline) + .foregroundColor(textColor) + + Text(type.description) + .font(.subheadline) + .foregroundStyle(.secondary) + } + + Spacer() + + if viewModel.reportType == type { + Image(systemName: "checkmark.circle.fill") + .foregroundColor(.accentColor) + } + } + .padding() + .background( + RoundedRectangle(cornerRadius: 14) + .fill(colorScheme == .dark ? Color(.systemGray6) : .white) + .overlay( + RoundedRectangle(cornerRadius: 14) + .stroke(viewModel.reportType == type ? Color.accentColor : Color.clear, lineWidth: 2) + ) + ) + } + .buttonStyle(.plain) + .accessibilityIdentifier( + type == .quickSummary ? AccessibilityID.Reports.quickSummaryButton : AccessibilityID.Reports.detailedReportButton + ) + .padding(.horizontal) + } + } + } + + // MARK: - Entry Validation Card + + private var entryValidationCard: some View { + HStack(spacing: 12) { + Image(systemName: viewModel.validEntryCount >= 3 ? "checkmark.circle.fill" : "exclamationmark.triangle.fill") + .foregroundColor(viewModel.validEntryCount >= 3 ? .green : .orange) + + VStack(alignment: .leading, spacing: 2) { + Text("\(viewModel.validEntryCount) mood entries in range") + .font(.subheadline.weight(.medium)) + .foregroundColor(textColor) + + if viewModel.validEntryCount < 3 { + Text("At least 3 entries required to generate a report") + .font(.caption) + .foregroundStyle(.secondary) + } + } + + Spacer() + } + .padding() + .background( + RoundedRectangle(cornerRadius: 14) + .fill(colorScheme == .dark ? Color(.systemGray6) : .white) + ) + .padding(.horizontal) + .accessibilityIdentifier(AccessibilityID.Reports.minimumEntriesWarning) + } + + // MARK: - AI Unavailable Card + + private var aiUnavailableCard: some View { + HStack(spacing: 12) { + Image(systemName: "brain.head.profile") + .foregroundColor(.orange) + + VStack(alignment: .leading, spacing: 2) { + Text("Apple Intelligence Required") + .font(.subheadline.weight(.medium)) + .foregroundColor(textColor) + + Text("AI report generation requires Apple Intelligence to be enabled in Settings.") + .font(.caption) + .foregroundStyle(.secondary) + } + + Spacer() + } + .padding() + .background( + RoundedRectangle(cornerRadius: 14) + .fill(Color.orange.opacity(0.1)) + ) + .padding(.horizontal) + } + + // MARK: - Generate Button + + private var generateButton: some View { + Button { + viewModel.generateReport() + } label: { + HStack(spacing: 8) { + Image(systemName: "sparkles") + Text("Generate Report") + .fontWeight(.semibold) + } + .frame(maxWidth: .infinity) + .padding() + .background(viewModel.canGenerate ? Color.accentColor : Color.gray) + .foregroundColor(.white) + .clipShape(RoundedRectangle(cornerRadius: 14)) + } + .disabled(!viewModel.canGenerate) + .padding(.horizontal) + .accessibilityIdentifier(AccessibilityID.Reports.generateButton) + } + + // MARK: - Report Ready Card + + private var reportReadyCard: some View { + VStack(spacing: 16) { + HStack(spacing: 12) { + Image(systemName: "checkmark.circle.fill") + .font(.title2) + .foregroundColor(.green) + + VStack(alignment: .leading, spacing: 2) { + Text("Report Ready") + .font(.headline) + .foregroundColor(textColor) + + Text("\(viewModel.reportType.rawValue) with \(viewModel.validEntryCount) entries") + .font(.subheadline) + .foregroundStyle(.secondary) + } + + Spacer() + } + + Button { + viewModel.showPrivacyConfirmation = true + } label: { + HStack(spacing: 8) { + Image(systemName: "square.and.arrow.up") + Text("Export PDF") + .fontWeight(.semibold) + } + .frame(maxWidth: .infinity) + .padding() + .background(Color.accentColor) + .foregroundColor(.white) + .clipShape(RoundedRectangle(cornerRadius: 14)) + } + .accessibilityIdentifier(AccessibilityID.Reports.exportButton) + } + .padding() + .background( + RoundedRectangle(cornerRadius: 14) + .fill(colorScheme == .dark ? Color(.systemGray6) : .white) + ) + .padding(.horizontal) + } + + // MARK: - Error Card + + private func errorCard(message: String) -> some View { + HStack(spacing: 12) { + Image(systemName: "exclamationmark.triangle.fill") + .foregroundColor(.red) + + VStack(alignment: .leading, spacing: 2) { + Text("Generation Failed") + .font(.subheadline.weight(.medium)) + .foregroundColor(textColor) + + Text(message) + .font(.caption) + .foregroundStyle(.secondary) + } + + Spacer() + + Button("Retry") { + viewModel.generateReport() + } + .font(.subheadline.weight(.medium)) + } + .padding() + .background( + RoundedRectangle(cornerRadius: 14) + .fill(Color.red.opacity(0.1)) + ) + .padding(.horizontal) + } + + // MARK: - Paywall Overlay + + private var paywallOverlay: some View { + VStack(spacing: 24) { + Spacer() + + ZStack { + Circle() + .fill( + LinearGradient( + colors: [.purple.opacity(0.2), .blue.opacity(0.2)], + startPoint: .topLeading, + endPoint: .bottomTrailing + ) + ) + .frame(width: 100, height: 100) + + Image(systemName: "doc.text.magnifyingglass") + .font(.largeTitle) + .foregroundStyle( + LinearGradient( + colors: [.purple, .blue], + startPoint: .topLeading, + endPoint: .bottomTrailing + ) + ) + } + + VStack(spacing: 12) { + Text("Unlock AI Reports") + .font(.title2.weight(.bold)) + .foregroundColor(textColor) + .multilineTextAlignment(.center) + + Text("Generate clinical-quality mood reports to share with your therapist or track your progress over time.") + .font(.body) + .foregroundColor(textColor.opacity(0.7)) + .multilineTextAlignment(.center) + .padding(.horizontal, 32) + } + + Button { + showSubscriptionStore = true + } label: { + HStack { + Image(systemName: "sparkles") + Text("Unlock Reports") + } + .font(.headline.weight(.bold)) + .foregroundColor(.white) + .frame(maxWidth: .infinity) + .padding(.vertical, 16) + .background( + LinearGradient( + colors: [.purple, .blue], + startPoint: .leading, + endPoint: .trailing + ) + ) + .clipShape(RoundedRectangle(cornerRadius: 14)) + } + .padding(.horizontal, 24) + + Spacer() + } + .background(theme.currentTheme.bg) + } +} diff --git a/Shared/Views/InsightsView/ReportsViewModel.swift b/Shared/Views/InsightsView/ReportsViewModel.swift new file mode 100644 index 0000000..dcc9bd8 --- /dev/null +++ b/Shared/Views/InsightsView/ReportsViewModel.swift @@ -0,0 +1,530 @@ +// +// ReportsViewModel.swift +// Reflect +// +// ViewModel for AI mood report generation and PDF export. +// + +import Foundation +import SwiftUI +import FoundationModels + +// MARK: - Generation State + +enum ReportGenerationState: Equatable { + case idle + case generating + case completed + case failed(String) +} + +// MARK: - ViewModel + +@MainActor +class ReportsViewModel: ObservableObject { + + // MARK: - Published State + + @Published var startDate: Date = Calendar.current.date(byAdding: .month, value: -1, to: Date()) ?? Date() + @Published var endDate: Date = Date() + @Published var reportType: ReportType = .quickSummary + @Published var generationState: ReportGenerationState = .idle + @Published var progressValue: Double = 0.0 + @Published var progressMessage: String = "" + @Published var generatedReport: MoodReport? + @Published var exportedPDFURL: URL? + @Published var showShareSheet: Bool = false + @Published var showPrivacyConfirmation: Bool = false + @Published var errorMessage: String? + @Published var isAIAvailable: Bool = false + + // MARK: - Computed Properties + + var entriesInRange: [MoodEntryModel] { + let allEntries = DataController.shared.getData( + startDate: Calendar.current.startOfDay(for: startDate), + endDate: Calendar.current.startOfDay(for: Calendar.current.date(byAdding: .day, value: 1, to: endDate) ?? endDate), + includedDays: [1, 2, 3, 4, 5, 6, 7] + ) + return allEntries.filter { ![.missing, .placeholder].contains($0.mood) } + } + + var validEntryCount: Int { entriesInRange.count } + + var canGenerate: Bool { + validEntryCount >= 3 && isAIAvailable + } + + var daySpan: Int { + let components = Calendar.current.dateComponents([.day], from: startDate, to: endDate) + return (components.day ?? 0) + 1 + } + + // MARK: - Dependencies + + private var insightService: Any? + private let summarizer = MoodDataSummarizer() + private let pdfGenerator = ReportPDFGenerator() + private let calendar = Calendar.current + private var generationTask: Task? + + // MARK: - Initialization + + init() { + if #available(iOS 26, *) { + let service = FoundationModelsInsightService() + insightService = service + isAIAvailable = service.isAvailable + } else { + insightService = nil + isAIAvailable = false + } + } + + deinit { + generationTask?.cancel() + } + + // MARK: - Report Generation + + func generateReport() { + generationTask?.cancel() + generationState = .generating + progressValue = 0.0 + progressMessage = String(localized: "Preparing data...") + errorMessage = nil + generatedReport = nil + + generationTask = Task { + do { + let entries = entriesInRange + let reportEntries = entries.map { ReportEntry(from: $0) } + + let report: MoodReport + switch reportType { + case .quickSummary: + report = try await generateQuickSummary(entries: entries, reportEntries: reportEntries) + case .detailed: + report = try await generateDetailedReport(entries: entries, reportEntries: reportEntries) + } + + guard !Task.isCancelled else { return } + + generatedReport = report + generationState = .completed + progressValue = 1.0 + progressMessage = String(localized: "Report ready") + + AnalyticsManager.shared.track(.reportGenerated( + type: reportType.rawValue, + entryCount: validEntryCount, + daySpan: daySpan + )) + } catch { + guard !Task.isCancelled else { return } + generationState = .failed(error.localizedDescription) + errorMessage = error.localizedDescription + AnalyticsManager.shared.track(.reportGenerationFailed(error: error.localizedDescription)) + } + } + } + + func cancelGeneration() { + generationTask?.cancel() + generationState = .idle + progressValue = 0.0 + progressMessage = "" + AnalyticsManager.shared.track(.reportCancelled) + } + + // MARK: - PDF Export + + func exportPDF() { + guard let report = generatedReport else { return } + + Task { + do { + let url = try await pdfGenerator.generatePDF(from: report) + exportedPDFURL = url + showShareSheet = true + + AnalyticsManager.shared.track(.reportExported( + type: reportType.rawValue, + entryCount: validEntryCount + )) + } catch { + errorMessage = error.localizedDescription + generationState = .failed(error.localizedDescription) + } + } + } + + // MARK: - Quick Summary Generation + + private func generateQuickSummary(entries: [MoodEntryModel], reportEntries: [ReportEntry]) async throws -> MoodReport { + let overview = buildOverview(entries: entries) + let weeks = splitIntoWeeks(entries: reportEntries) + + progressValue = 0.3 + progressMessage = String(localized: "Generating AI summary...") + + var quickSummaryText: String? + + if #available(iOS 26, *) { + let summary = summarizer.summarize(entries: entries, periodName: "selected period") + let promptData = summarizer.toPromptString(summary) + + let session = LanguageModelSession(instructions: clinicalSystemInstructions) + + let prompt = """ + Analyze this mood data and generate a clinical summary report: + + \(promptData) + + Generate a factual, third-person clinical summary suitable for sharing with a therapist. + """ + + do { + let response = try await session.respond(to: prompt, generating: AIQuickSummaryResponse.self) + + guard !Task.isCancelled else { throw CancellationError() } + + var text = response.content.summary + if !response.content.keyObservations.isEmpty { + text += "\n\nKey Observations:\n" + response.content.keyObservations.map { "- \($0)" }.joined(separator: "\n") + } + if !response.content.recommendations.isEmpty { + text += "\n\nRecommendations:\n" + response.content.recommendations.map { "- \($0)" }.joined(separator: "\n") + } + quickSummaryText = text + } catch is CancellationError { + throw CancellationError() + } catch { + quickSummaryText = "Summary unavailable: \(error.localizedDescription)" + } + } + + progressValue = 0.9 + + let monthlySummaries = buildMonthlySummaries(entries: reportEntries) + let yearlySummaries = buildYearlySummaries(entries: reportEntries) + + return MoodReport( + reportType: .quickSummary, + generatedAt: Date(), + overview: overview, + weeks: weeks, + monthlySummaries: monthlySummaries, + yearlySummaries: yearlySummaries, + quickSummary: quickSummaryText + ) + } + + // MARK: - Detailed Report Generation + + private func generateDetailedReport(entries: [MoodEntryModel], reportEntries: [ReportEntry]) async throws -> MoodReport { + let overview = buildOverview(entries: entries) + var weeks = splitIntoWeeks(entries: reportEntries) + var monthlySummaries = buildMonthlySummaries(entries: reportEntries) + var yearlySummaries = buildYearlySummaries(entries: reportEntries) + + let totalSections = weeks.count + monthlySummaries.count + yearlySummaries.count + var completedSections = 0 + + // Generate weekly AI summaries — batched at 4 concurrent + if #available(iOS 26, *) { + let batchSize = 4 + + for batchStart in stride(from: 0, to: weeks.count, by: batchSize) { + guard !Task.isCancelled else { throw CancellationError() } + + let batchEnd = min(batchStart + batchSize, weeks.count) + let batchIndices = batchStart.. String? { + let session = LanguageModelSession(instructions: clinicalSystemInstructions) + + let moodList = week.entries.sorted(by: { $0.date < $1.date }).map { entry in + let day = entry.date.formatted(.dateTime.weekday(.abbreviated)) + let mood = entry.mood.widgetDisplayName + let notes = entry.notes ?? "no notes" + return "\(day): \(mood) (\(notes))" + }.joined(separator: "\n") + + let prompt = """ + Summarize this week's mood data (Week \(week.weekNumber)): + \(moodList) + + Average mood: \(String(format: "%.1f", weekAverage(week)))/5 + """ + + do { + let response = try await session.respond(to: prompt, generating: AIWeeklySummary.self) + return response.content.summary + } catch { + return "Summary unavailable" + } + } + + @available(iOS 26, *) + private func generateMonthlySummary(month: ReportMonthSummary, allEntries: [ReportEntry]) async -> String? { + let session = LanguageModelSession(instructions: clinicalSystemInstructions) + + let monthEntries = allEntries.filter { + calendar.component(.month, from: $0.date) == month.month && + calendar.component(.year, from: $0.date) == month.year + } + + let moodDist = Dictionary(grouping: monthEntries, by: { $0.mood.widgetDisplayName }) + .mapValues { $0.count } + .sorted { $0.value > $1.value } + .map { "\($0.key): \($0.value)" } + .joined(separator: ", ") + + let prompt = """ + Summarize this month's mood data (\(month.title)): + \(month.entryCount) entries, average mood: \(String(format: "%.1f", month.averageMood))/5 + Distribution: \(moodDist) + """ + + do { + let response = try await session.respond(to: prompt, generating: AIMonthSummary.self) + return response.content.summary + } catch { + return "Summary unavailable" + } + } + + @available(iOS 26, *) + private func generateYearlySummary(year: ReportYearSummary, allEntries: [ReportEntry]) async -> String? { + let session = LanguageModelSession(instructions: clinicalSystemInstructions) + + let yearEntries = allEntries.filter { calendar.component(.year, from: $0.date) == year.year } + + let monthlyAvgs = Dictionary(grouping: yearEntries) { calendar.component(.month, from: $0.date) } + .sorted { $0.key < $1.key } + .map { (month, entries) in + let avg = Double(entries.reduce(0) { $0 + Int($1.mood.rawValue) + 1 }) / Double(entries.count) + let formatter = DateFormatter() + formatter.dateFormat = "MMM" + var comps = DateComponents() + comps.month = month + let date = calendar.date(from: comps) ?? Date() + return "\(formatter.string(from: date)): \(String(format: "%.1f", avg))" + } + .joined(separator: ", ") + + let prompt = """ + Summarize this year's mood data (\(year.year)): + \(year.entryCount) entries, average mood: \(String(format: "%.1f", year.averageMood))/5 + Monthly averages: \(monthlyAvgs) + """ + + do { + let response = try await session.respond(to: prompt, generating: AIYearSummary.self) + return response.content.summary + } catch { + return "Summary unavailable" + } + } + + // MARK: - Data Building Helpers + + private func buildOverview(entries: [MoodEntryModel]) -> ReportOverviewStats { + let validEntries = entries.filter { ![.missing, .placeholder].contains($0.mood) } + let total = validEntries.count + let avgMood = total > 0 ? Double(validEntries.reduce(0) { $0 + Int($1.moodValue) + 1 }) / Double(total) : 0 + + var distribution: [Mood: Int] = [:] + for entry in validEntries { + distribution[entry.mood, default: 0] += 1 + } + + let sorted = validEntries.sorted { $0.forDate < $1.forDate } + let trend: String + if sorted.count >= 4 { + let half = sorted.count / 2 + let firstAvg = Double(sorted.prefix(half).reduce(0) { $0 + Int($1.moodValue) + 1 }) / Double(half) + let secondAvg = Double(sorted.suffix(half).reduce(0) { $0 + Int($1.moodValue) + 1 }) / Double(half) + let diff = secondAvg - firstAvg + trend = diff > 0.5 ? "Improving" : diff < -0.5 ? "Declining" : "Stable" + } else { + trend = "Stable" + } + + let dateFormatter = DateFormatter() + dateFormatter.dateStyle = .medium + let rangeStr: String + if let first = sorted.first, let last = sorted.last { + rangeStr = "\(dateFormatter.string(from: first.forDate)) - \(dateFormatter.string(from: last.forDate))" + } else { + rangeStr = "No data" + } + + return ReportOverviewStats( + totalEntries: total, + averageMood: avgMood, + moodDistribution: distribution, + trend: trend, + dateRange: rangeStr + ) + } + + private func splitIntoWeeks(entries: [ReportEntry]) -> [ReportWeek] { + let sorted = entries.sorted { $0.date < $1.date } + guard let firstDate = sorted.first?.date else { return [] } + + var weeks: [ReportWeek] = [] + var weekStart = calendar.startOfDay(for: firstDate) + var weekNumber = 1 + + while weekStart <= (sorted.last?.date ?? Date()) { + let weekEnd = calendar.date(byAdding: .day, value: 6, to: weekStart) ?? weekStart + let weekEntries = sorted.filter { entry in + let entryDay = calendar.startOfDay(for: entry.date) + return entryDay >= weekStart && entryDay <= weekEnd + } + + if !weekEntries.isEmpty { + weeks.append(ReportWeek( + weekNumber: weekNumber, + startDate: weekStart, + endDate: weekEnd, + entries: weekEntries + )) + } + + weekStart = calendar.date(byAdding: .day, value: 7, to: weekStart) ?? weekStart + weekNumber += 1 + } + + return weeks + } + + private func buildMonthlySummaries(entries: [ReportEntry]) -> [ReportMonthSummary] { + let grouped = Dictionary(grouping: entries) { entry in + let month = calendar.component(.month, from: entry.date) + let year = calendar.component(.year, from: entry.date) + return "\(year)-\(month)" + } + + return grouped.map { (key, monthEntries) in + let components = key.split(separator: "-") + let year = Int(components[0]) ?? 0 + let month = Int(components[1]) ?? 0 + let avg = Double(monthEntries.reduce(0) { $0 + Int($1.mood.rawValue) + 1 }) / Double(monthEntries.count) + + return ReportMonthSummary( + month: month, + year: year, + entryCount: monthEntries.count, + averageMood: avg + ) + } + .sorted { ($0.year, $0.month) < ($1.year, $1.month) } + } + + private func buildYearlySummaries(entries: [ReportEntry]) -> [ReportYearSummary] { + let grouped = Dictionary(grouping: entries) { calendar.component(.year, from: $0.date) } + guard grouped.count > 1 else { return [] } // Only generate if range spans multiple years + + return grouped.map { (year, yearEntries) in + let avg = Double(yearEntries.reduce(0) { $0 + Int($1.mood.rawValue) + 1 }) / Double(yearEntries.count) + return ReportYearSummary(year: year, entryCount: yearEntries.count, averageMood: avg) + } + .sorted { $0.year < $1.year } + } + + private func weekAverage(_ week: ReportWeek) -> Double { + let total = week.entries.reduce(0) { $0 + Int($1.mood.rawValue) + 1 } + return week.entries.isEmpty ? 0 : Double(total) / Double(week.entries.count) + } + + // MARK: - Clinical System Instructions + + private var clinicalSystemInstructions: String { + let languageCode = Locale.current.language.languageCode?.identifier ?? "en" + return """ + You are a clinical mood data analyst generating a professional mood report. \ + Use third-person perspective (e.g., "The individual", "The subject"). \ + Be factual, neutral, and objective. Do not use casual language, emojis, or personality-driven tone. \ + Reference specific data points and patterns. \ + This report may be shared with a therapist or healthcare professional. \ + Generate all text in the language with code: \(languageCode). + """ + } +} From 5bd8f8076a03978df75385256c4047313515e488 Mon Sep 17 00:00:00 2001 From: Trey t Date: Wed, 11 Mar 2026 10:51:36 -0500 Subject: [PATCH 3/4] Add guided reflection flow with mood-adaptive CBT/ACT questions Walks users through 3-4 guided questions based on mood category: positive (great/good) gets gratitude-oriented questions, neutral (average) gets exploratory questions, and negative (bad/horrible) gets empathetic questions. Stored as JSON in MoodEntryModel, integrated into PDF reports, AI summaries, and CSV export. Co-Authored-By: Claude Opus 4.6 --- Reflect (iOS).entitlements | 2 + Reflect/Localizable.xcstrings | 28388 ++++++++-------- Shared/AccessibilityIdentifiers.swift | 14 + Shared/Analytics.swift | 7 + Shared/Models/AIReport.swift | 2 + Shared/Models/GuidedReflection.swift | 110 + Shared/Models/MoodEntryModel.swift | 11 +- Shared/Persisence/DataControllerUPDATE.swift | 12 + Shared/Services/ExportService.swift | 7 +- Shared/Services/ReportPDFGenerator.swift | 23 + Shared/Views/GuidedReflectionView.swift | 297 + .../Views/InsightsView/ReportsViewModel.swift | 7 +- Shared/Views/NoteEditorView.swift | 77 + 13 files changed, 15340 insertions(+), 13617 deletions(-) create mode 100644 Shared/Models/GuidedReflection.swift create mode 100644 Shared/Views/GuidedReflectionView.swift diff --git a/Reflect (iOS).entitlements b/Reflect (iOS).entitlements index 55683bc..7bb8f06 100644 --- a/Reflect (iOS).entitlements +++ b/Reflect (iOS).entitlements @@ -18,6 +18,8 @@ CloudKit + com.apple.developer.weatherkit + com.apple.security.application-groups group.com.88oakapps.reflect diff --git a/Reflect/Localizable.xcstrings b/Reflect/Localizable.xcstrings index 8fbfaef..47084f0 100644 --- a/Reflect/Localizable.xcstrings +++ b/Reflect/Localizable.xcstrings @@ -1,20518 +1,21682 @@ { - "sourceLanguage": "en", - "strings": { - "": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "" + "sourceLanguage" : "en", + "strings" : { + "" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "" } } } }, - " ": { - "comment": "A placeholder text used to create spacing between list items.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": " " + " " : { + "comment" : "A placeholder text used to create spacing between list items.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : " " } }, - "es": { - "stringUnit": { - "state": "translated", - "value": " " + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : " " } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": " " + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : " " } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": " " + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : " " } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": " " + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : " " } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": " " + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : " " } } } }, - " - ": { - "comment": "A separator between the start and end times in the TimeHeaderView.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": " - " + " - " : { + "comment" : "A separator between the start and end times in the TimeHeaderView.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : " - " } }, - "es": { - "stringUnit": { - "state": "translated", - "value": " - " + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : " - " } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": " - " + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : " - " } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": " - " + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : " - " } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": " - " + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : " - " } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": " - " + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : " - " } } } }, - "-": { - "comment": "A hyphen used to separate two dates in a list.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "-" + "-" : { + "comment" : "A hyphen used to separate two dates in a list.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "-" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "-" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "-" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "-" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "-" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "-" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "-" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "-" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "-" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "-" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "-" } } } }, - "—": { - "comment": "A placeholder text used to indicate that an entry is missing.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "—" + "—" : { + "comment" : "A placeholder text used to indicate that an entry is missing.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "—" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "—" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "—" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "—" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "—" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "—" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "—" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "—" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "—" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "—" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "—" } } } }, - "·": { - "comment": "A period used to separate two related items.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "·" + "·" : { + "comment" : "A period used to separate two related items.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "·" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "·" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "·" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "·" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "·" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "·" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "·" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "·" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "·" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "·" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "·" } } } }, - "\"%@\"": { - "comment": "A pull-quote style text view displaying the user's mood as a quoted string. The text is italicized for emphasis.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "„%@”" + "\"%@\"" : { + "comment" : "A pull-quote style text view displaying the user's mood as a quoted string. The text is italicized for emphasis.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "„%@”" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "«%@»" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "«%@»" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "« %@ »" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "« %@ »" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "「%@」" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "「%@」" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "\"%@\"" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "\"%@\"" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "\"%@\"" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "\"%@\"" } } } }, - "[%@](https://support.apple.com/guide/iphone/add-widgets-iphb8f1bf206/ios)": { - "comment": "A text link at the bottom of the view that provides instructions on how to add a custom widget. The argument is the string “how_to_add_widget”.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "[%@](https://support.apple.com/de-de/guide/iphone/add-widgets-iphb8f1bf206/ios)" + "[%@](https://support.apple.com/guide/iphone/add-widgets-iphb8f1bf206/ios)" : { + "comment" : "A text link at the bottom of the view that provides instructions on how to add a custom widget. The argument is the string “how_to_add_widget”.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "[%@](https://support.apple.com/de-de/guide/iphone/add-widgets-iphb8f1bf206/ios)" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "[%@](https://support.apple.com/es-es/guide/iphone/add-widgets-iphb8f1bf206/ios)" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "[%@](https://support.apple.com/es-es/guide/iphone/add-widgets-iphb8f1bf206/ios)" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "[%@](https://support.apple.com/fr-fr/guide/iphone/add-widgets-iphb8f1bf206/ios)" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "[%@](https://support.apple.com/fr-fr/guide/iphone/add-widgets-iphb8f1bf206/ios)" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "[%@](https://support.apple.com/ja-jp/guide/iphone/add-widgets-iphb8f1bf206/ios)" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "[%@](https://support.apple.com/ja-jp/guide/iphone/add-widgets-iphb8f1bf206/ios)" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "[%@](https://support.apple.com/ko-kr/guide/iphone/add-widgets-iphb8f1bf206/ios)" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "[%@](https://support.apple.com/ko-kr/guide/iphone/add-widgets-iphb8f1bf206/ios)" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "[%@](https://support.apple.com/pt-br/guide/iphone/add-widgets-iphb8f1bf206/ios)" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "[%@](https://support.apple.com/pt-br/guide/iphone/add-widgets-iphb8f1bf206/ios)" } } } }, - "§": { - "comment": "A decorative flourish character used in the header of the \"Chronicle\" section of the day view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "§" + "§" : { + "comment" : "A decorative flourish character used in the header of the \"Chronicle\" section of the day view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "§" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "§" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "§" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "§" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "§" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "§" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "§" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "§" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "§" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "§" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "§" } } } }, - "%.0f%%": { - "comment": "A text view displaying the percentage of days with a given mood, formatted to show only the integer part. The argument is the percentage of days with the specified mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%.0f%%" + "%.0f%%" : { + "comment" : "A text view displaying the percentage of days with a given mood, formatted to show only the integer part. The argument is the percentage of days with the specified mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%.0f%%" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%.0f%%" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%.0f%%" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%.0f%%" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%.0f%%" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%.0f%%" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%.0f%%" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%.0f%%" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%.0f%%" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%.0f%%" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%.0f%%" } } } }, - "%@": { - "comment": "The text that will be shown to the user when they select a mood from the list of suggestions. The argument is the name of the mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%@" + "%@" : { + "comment" : "The text that will be shown to the user when they select a mood from the list of suggestions. The argument is the name of the mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%@" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%@" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@" } } } }, - "%@ '%@": { - "comment": "The month and year displayed in the header of the calendar view. The first argument is the name of the month. The second argument is the last two digits of the year.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%1$@ '%2$@" + "%@ '%@" : { + "comment" : "The month and year displayed in the header of the calendar view. The first argument is the name of the month. The second argument is the last two digits of the year.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ '%2$@" } }, - "en": { - "stringUnit": { - "state": "new", - "value": "%1$@ '%2$@" + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ '%2$@" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%1$@ '%2$@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ '%2$@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%1$@ '%2$@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ '%2$@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%1$@ '%2$@" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ '%2$@" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%1$@ '%2$@" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ '%2$@" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%1$@ '%2$@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ '%2$@" } } } }, - "%@ %@": { - "comment": "A month and year label displayed in a calendar view. The first argument is the name of the month. The second argument is the year.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$@" + "%@ %@" : { + "comment" : "A month and year label displayed in a calendar view. The first argument is the name of the month. The second argument is the year.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$@" } }, - "en": { - "stringUnit": { - "state": "new", - "value": "%1$@ %2$@" + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ %2$@" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$@" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$@" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$@" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$@" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$@" } } } }, - "%@ %@, %@": { - "comment": "An accessibility element that acts as a toggle for expanding or collapsing the statistics section of a month view. The label describes the current state (\"expanded\" or \"collapsed\") and the month being represented. The hint provides a description of the action that can be taken to toggle the state.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$@, %3$@" + "%@ %@, %@" : { + "comment" : "An accessibility element that acts as a toggle for expanding or collapsing the statistics section of a month view. The label describes the current state (\"expanded\" or \"collapsed\") and the month being represented. The hint provides a description of the action that can be taken to toggle the state.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$@, %3$@" } }, - "en": { - "stringUnit": { - "state": "new", - "value": "%1$@ %2$@, %3$@" + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ %2$@, %3$@" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$@, %3$@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$@, %3$@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$@, %3$@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$@, %3$@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$@, %3$@" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$@, %3$@" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$@, %3$@" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$@, %3$@" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$@, %3$@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$@, %3$@" } } } }, - "%@ %lld percent": { - "comment": "A label that describes the mood and the percentage of days that mood was experienced. The first argument is the name of the mood. The second argument is the percentage of days that mood was experienced.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$lld Prozent" + "%@ %lld percent" : { + "comment" : "A label that describes the mood and the percentage of days that mood was experienced. The first argument is the name of the mood. The second argument is the percentage of days that mood was experienced.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$lld Prozent" } }, - "en": { - "stringUnit": { - "state": "new", - "value": "%1$@ %2$lld percent" + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ %2$lld percent" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$lld por ciento" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$lld por ciento" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$lld pour cent" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$lld pour cent" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$lldパーセント" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$lldパーセント" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$lld퍼센트" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$lld퍼센트" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$lld por cento" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$lld por cento" } } } }, - "%@ on %@": { - "comment": "A label that combines the mood description with the date it was recorded, separated by a space.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%1$@ am %2$@" + "%@ on %@" : { + "comment" : "A label that combines the mood description with the date it was recorded, separated by a space.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ am %2$@" } }, - "en": { - "stringUnit": { - "state": "new", - "value": "%1$@ on %2$@" + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ on %2$@" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%1$@ el %2$@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ el %2$@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%1$@ le %2$@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ le %2$@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%2$@の%1$@" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%2$@の%1$@" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%2$@에 %1$@" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%2$@에 %1$@" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%1$@ em %2$@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ em %2$@" } } } }, - "%@ v %@ (Build %@)": { - "comment": "The current version of the app, displayed in a small, secondary font.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%1$@ v %2$@ (Build %3$@)" + "%@ v %@ (Build %@)" : { + "comment" : "The current version of the app, displayed in a small, secondary font.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ v %2$@ (Build %3$@)" } }, - "en": { - "stringUnit": { - "state": "new", - "value": "%1$@ v %2$@ (Build %3$@)" + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ v %2$@ (Build %3$@)" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%1$@ v %2$@ (Build %3$@)" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ v %2$@ (Build %3$@)" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%1$@ v %2$@ (Build %3$@)" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ v %2$@ (Build %3$@)" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%1$@ v %2$@ (ビルド %3$@)" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ v %2$@ (ビルド %3$@)" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%1$@ v %2$@ (빌드 %3$@)" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ v %2$@ (빌드 %3$@)" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%1$@ v %2$@ (Build %3$@)" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ v %2$@ (Build %3$@)" } } } }, - "%@_%@": { - "comment": "The month and year displayed in the header of the calendar view. The first argument is the name of the month, in uppercase. The second argument is the year.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%@_%@" + "%@ with %lld entries" : { + "comment" : "A subheading that describes the type of report and the number of entries it contains. The first argument is the type of report (e.g., \"Mood Log\"). The second argument is the count of valid entries in the report.", + "isCommentAutoGenerated" : true, + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ with %2$lld entries" + } + } + } + }, + "%@_%@" : { + "comment" : "The month and year displayed in the header of the calendar view. The first argument is the name of the month, in uppercase. The second argument is the year.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@_%@" } }, - "en": { - "stringUnit": { - "state": "new", - "value": "%1$@_%2$@" + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@_%2$@" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%@_%@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@_%@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%@_%@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@_%@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%@_%@" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@_%@" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%@_%@" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@_%@" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%@_%@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@_%@" } } } }, - "%@, %@": { - "comment": "A button that, when tapped, selects or deselects a day option. The button's label is a combination of the title and subtitle.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%@, %@" + "%@, %@" : { + "comment" : "A button that, when tapped, selects or deselects a day option. The button's label is a combination of the title and subtitle.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@, %@" } }, - "en": { - "stringUnit": { - "state": "new", - "value": "%1$@, %2$@" + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@, %2$@" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%@, %@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@, %@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%@, %@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@, %@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%@, %@" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@, %@" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%@, %@" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@, %@" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%@, %@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@, %@" } } } }, - "%@, no mood logged": { - "comment": "A string that describes a day with no mood logged. The argument is the date string.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%@, keine Stimmung eingetragen" + "%@, no mood logged" : { + "comment" : "A string that describes a day with no mood logged. The argument is the date string.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@, keine Stimmung eingetragen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%@, sin estado de ánimo registrado" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@, sin estado de ánimo registrado" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%@, aucune humeur enregistrée" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@, aucune humeur enregistrée" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%@、気分の記録なし" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@、気分の記録なし" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%@, 기분 기록 없음" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@, 기분 기록 없음" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%@, nenhum humor registrado" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@, nenhum humor registrado" } } } }, - "%@: %@": { - "comment": "An element that represents a benefit of a service or product, with a title and a description.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%@: %@" + "%@: %@" : { + "comment" : "An element that represents a benefit of a service or product, with a title and a description.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@: %@" } }, - "en": { - "stringUnit": { - "state": "new", - "value": "%1$@: %2$@" + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@: %2$@" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%@: %@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@: %@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%@: %@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@: %@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%@: %@" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@: %@" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%@: %@" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@: %@" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%@: %@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@: %@" } } } }, - "%@%@": { - "comment": "A text that displays the number of days remaining in the trial period, prefixed by \"Trial expires in \". The text is displayed in bold when the trial period is nearing its end.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%@%@" + "%@%@" : { + "comment" : "A text that displays the number of days remaining in the trial period, prefixed by \"Trial expires in \". The text is displayed in bold when the trial period is nearing its end.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@%@" } }, - "en": { - "stringUnit": { - "state": "new", - "value": "%1$@%2$@" + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@%2$@" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%@%@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@%@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%@%@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@%@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%@%@" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@%@" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%@%@" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@%@" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%@%@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@%@" } } } }, - "%lld": { - "comment": "A title displaying the current streak of days a user has logged in. The argument is the current streak.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%lld" + "%lld" : { + "comment" : "A title displaying the current streak of days a user has logged in. The argument is the current streak.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%lld" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%lld" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%lld" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%lld" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%lld" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld" } } } }, - "%lld / %lld": { - "comment": "A text displaying the current and target streak counts for the live activity export. The first argument is the current streak count. The second argument is the target streak count.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%1$lld / %2$lld" + "%lld / %lld" : { + "comment" : "A text displaying the current and target streak counts for the live activity export. The first argument is the current streak count. The second argument is the target streak count.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld / %2$lld" } }, - "en": { - "stringUnit": { - "state": "new", - "value": "%1$lld / %2$lld" + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$lld / %2$lld" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%1$lld / %2$lld" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld / %2$lld" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%1$lld / %2$lld" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld / %2$lld" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%1$lld / %2$lld" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld / %2$lld" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%1$lld / %2$lld" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld / %2$lld" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%1$lld / %2$lld" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld / %2$lld" } } } }, - "%lld / %lld days": { - "comment": "A text displaying the current and target number of days in a year. The first argument is the current number of days. The second argument is the target number of days.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%1$lld / %2$lld Tage" + "%lld / %lld days" : { + "comment" : "A text displaying the current and target number of days in a year. The first argument is the current number of days. The second argument is the target number of days.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld / %2$lld Tage" } }, - "en": { - "stringUnit": { - "state": "new", - "value": "%1$lld / %2$lld days" + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$lld / %2$lld days" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%1$lld / %2$lld días" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld / %2$lld días" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%1$lld / %2$lld jours" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld / %2$lld jours" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%1$lld / %2$lld日" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld / %2$lld日" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%1$lld / %2$lld일" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld / %2$lld일" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%1$lld / %2$lld dias" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld / %2$lld dias" } } } }, - "%lld day streak": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%lld Tage in Folge" + "%lld day streak" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld Tage in Folge" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%lld días consecutivos" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld días consecutivos" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%lld jours consécutifs" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld jours consécutifs" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%lld日連続" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld日連続" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%lld일 연속" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld일 연속" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%lld dias consecutivos" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld dias consecutivos" } } } }, - "%lld days": { - "comment": "A secondary label below the year, showing the total number of days in that year. The argument is the total number of days in the year.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%lld Tage" + "%lld day%@ selected" : { + "comment" : "A text label displaying the number of days selected in the date range picker. The argument is the count of selected days.", + "isCommentAutoGenerated" : true, + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$lld day%2$@ selected" + } + } + } + }, + "%lld days" : { + "comment" : "A secondary label below the year, showing the total number of days in that year. The argument is the total number of days in the year.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld Tage" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%lld días" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld días" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%lld jours" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld jours" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%lld日" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld日" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%lld일" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld일" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%lld dias" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld dias" } } } }, - "%lld DAYS TRACKED": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%lld ERFASSTE TAGE" + "%lld DAYS TRACKED" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld ERFASSTE TAGE" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%lld DÍAS REGISTRADOS" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld DÍAS REGISTRADOS" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%lld JOURS SUIVIS" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld JOURS SUIVIS" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%lld日記録済み" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld日記録済み" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%lld일 기록됨" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld일 기록됨" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%lld DIAS REGISTRADOS" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld DIAS REGISTRADOS" } } } }, - "%lld entries": { - "comment": "A label showing the total number of mood entries recorded. The argument is the total number of entries.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%lld Einträge" + "%lld entries" : { + "comment" : "A label showing the total number of mood entries recorded. The argument is the total number of entries.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld Einträge" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%lld entradas" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld entradas" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%lld entrées" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld entrées" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%lld件" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld件" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%lld개 항목" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld개 항목" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%lld entradas" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld entradas" } } } }, - "%lld moods": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%lld Stimmungen" + "%lld mood entries in range" : { + "comment" : "A subheading indicating the number of valid mood entries within a specified date range. The argument is the count of valid entries.", + "isCommentAutoGenerated" : true + }, + "%lld moods" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld Stimmungen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%lld estados de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld estados de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%lld humeurs" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld humeurs" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%lld件の気分" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld件の気分" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%lld개의 기분" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld개의 기분" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%lld humores" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld humores" } } } }, - "%lld percent": { - "comment": "A value indicating the percentage of health data that has been successfully synced with Apple Health.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%lld Prozent" + "%lld percent" : { + "comment" : "A value indicating the percentage of health data that has been successfully synced with Apple Health.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld Prozent" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%lld por ciento" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld por ciento" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%lld pour cent" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld pour cent" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%lldパーセント" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lldパーセント" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%lld 퍼센트" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 퍼센트" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%lld por cento" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld por cento" } } } }, - "%lld/%lld": { - "comment": "A text view showing the current number of characters in the note, followed by a slash and the maximum allowed number of characters.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%1$lld/%2$lld" + "%lld/%lld" : { + "comment" : "A text view showing the current number of characters in the note, followed by a slash and the maximum allowed number of characters.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld/%2$lld" } }, - "en": { - "stringUnit": { - "state": "new", - "value": "%1$lld/%2$lld" + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$lld/%2$lld" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%1$lld/%2$lld" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld/%2$lld" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%1$lld/%2$lld" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld/%2$lld" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%1$lld/%2$lld" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld/%2$lld" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%1$lld/%2$lld" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld/%2$lld" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%1$lld/%2$lld" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld/%2$lld" } } } }, - "%lld%%": { - "comment": "A text label showing the percentage of days with a specific mood. The argument is the percentage of days with the given mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%lld%%" + "%lld%%" : { + "comment" : "A text label showing the percentage of days with a specific mood. The argument is the percentage of days with the given mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld%%" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "%lld%%" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld%%" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%lld%%" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld%%" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%lld%%" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld%%" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%lld%%" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld%%" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "%lld%%" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld%%" } } } }, - "•": { - "comment": "A small separator symbol.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "•" + "•" : { + "comment" : "A small separator symbol.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "•" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "•" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "•" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "•" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "•" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "•" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "•" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "•" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "•" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "•" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "•" } } } }, - "→": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "→" + "→" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "→" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "→" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "→" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "→" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "→" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "→" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "→" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "→" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "→" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "→" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "→" } } } }, - ">": { - "comment": "A symbol that appears before a command in a terminal interface.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": ">" + ">" : { + "comment" : "A symbol that appears before a command in a terminal interface.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : ">" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": ">" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : ">" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": ">" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : ">" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": ">" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : ">" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": ">" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : ">" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": ">" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : ">" } } } }, - "✨": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "✨" + "✨" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "✨" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "✨" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "✨" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "✨" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "✨" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "✨" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "✨" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "✨" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "✨" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "✨" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "✨" } } } }, - "🌈": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "🌈" + "🌈" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "🌈" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "🌈" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "🌈" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "🌈" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "🌈" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "🌈" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "🌈" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "🌈" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "🌈" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "🌈" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "🌈" } } } }, - "🎉": { - "comment": "A smiling face emoji.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "🎉" + "🎉" : { + "comment" : "A smiling face emoji.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "🎉" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "🎉" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "🎉" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "🎉" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "🎉" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "🎉" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "🎉" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "🎉" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "🎉" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "🎉" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "🎉" } } } }, - "🎨": { - "comment": "An emoji used as a preview for a theme in the CustomizeContentView.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "🎨" + "🎨" : { + "comment" : "An emoji used as a preview for a theme in the CustomizeContentView.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "🎨" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "🎨" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "🎨" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "🎨" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "🎨" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "🎨" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "🎨" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "🎨" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "🎨" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "🎨" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "🎨" } } } }, - "💫": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "💫" + "💫" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "💫" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "💫" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "💫" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "💫" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "💫" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "💫" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "💫" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "💫" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "💫" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "💫" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "💫" } } } }, - "😄": { - "comment": "A smiling face emoji.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "😄" + "😄" : { + "comment" : "A smiling face emoji.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "😄" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "😄" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "😄" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "😄" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "😄" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "😄" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "😄" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "😄" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "😄" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "😄" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "😄" } } } }, - "😊": { - "comment": "A playful emoji used in the lock screen view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "😊" + "😊" : { + "comment" : "A playful emoji used in the lock screen view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "😊" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "😊" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "😊" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "😊" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "😊" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "😊" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "😊" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "😊" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "😊" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "😊" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "😊" } } } }, - "10 DAYS": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "10 TAGE" + "10 DAYS" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "10 TAGE" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "10 DÍAS" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "10 DÍAS" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "10 JOURS" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "10 JOURS" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "10日間" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "10日間" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "10일" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "10일" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "10 DIAS" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "10 DIAS" } } } }, - "12": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "12" + "12" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "12" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "12" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "12" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "12" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "12" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "12" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "12" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "12" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "12" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "12" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "12" } } } }, - "12 curated combinations of colors, icons, and layouts": { - "comment": "A description of the 12 color, icon, and layout combinations available in the theme picker.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "12 kuratierte Kombinationen aus Farben, Icons und Layouts" + "12 curated combinations of colors, icons, and layouts" : { + "comment" : "A description of the 12 color, icon, and layout combinations available in the theme picker.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "12 kuratierte Kombinationen aus Farben, Icons und Layouts" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "12 combinaciones seleccionadas de colores, iconos y diseños" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "12 combinaciones seleccionadas de colores, iconos y diseños" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "12 combinaisons de couleurs, icônes et mises en page" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "12 combinaisons de couleurs, icônes et mises en page" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "12種類の厳選されたカラー、アイコン、レイアウトの組み合わせ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "12種類の厳選されたカラー、アイコン、レイアウトの組み合わせ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "12가지 엄선된 색상, 아이콘, 레이아웃 조합" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "12가지 엄선된 색상, 아이콘, 레이아웃 조합" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "12 combinações selecionadas de cores, ícones e layouts" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "12 combinações selecionadas de cores, ícones e layouts" } } } }, - "17": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "17" + "17" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "17" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "17" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "17" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "17" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "17" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "17" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "17" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "17" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "17" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "17" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "17" } } } }, - "20": { - "comment": "A placeholder text that appears in place of a number.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "20" + "20" : { + "comment" : "A placeholder text that appears in place of a number.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "20" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "20" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "20" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "20" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "20" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "20" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "20" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "20" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "20" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "20" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "20" } } } }, - "365 frames exported to:": { - "comment": "A label displayed below the path where the exported frames are saved.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "365 Frames exportiert nach:" + "365 frames exported to:" : { + "comment" : "A label displayed below the path where the exported frames are saved.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "365 Frames exportiert nach:" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "365 fotogramas exportados a:" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "365 fotogramas exportados a:" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "365 images exportées vers :" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "365 images exportées vers :" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "365フレームのエクスポート先:" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "365フレームのエクスポート先:" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "365개의 프레임 내보내기 완료:" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "365개의 프레임 내보내기 완료:" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "365 quadros exportados para:" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "365 quadros exportados para:" } } } }, - "Add": { - "comment": "A button that allows the user to add or edit a journal note.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Hinzufügen" + "Add" : { + "comment" : "A button that allows the user to add or edit a journal note.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hinzufügen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Añadir" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Añadir" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ajouter" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "追加" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "追加" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "추가" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "추가" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Adicionar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Adicionar" } } } }, - "Add a note about how you're feeling...": { - "comment": "A placeholder text that appears when a journal note is not yet added.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Notiere, wie du dich fühlst..." + "Add a note about how you're feeling..." : { + "comment" : "A placeholder text that appears when a journal note is not yet added.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Notiere, wie du dich fühlst..." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Añade una nota sobre cómo te sientes..." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Añade una nota sobre cómo te sientes..." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ajoute une note sur ton humeur..." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajoute une note sur ton humeur..." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今の気持ちをメモしてみよう..." + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今の気持ちをメモしてみよう..." } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "지금 기분을 메모해 보세요..." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "지금 기분을 메모해 보세요..." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Adicione uma nota sobre como você está se sentindo..." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Adicione uma nota sobre como você está se sentindo..." } } } }, - "Add a photo": { - "comment": "A description of an action to add a photo to a journal entry.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Foto hinzufügen" + "Add a photo" : { + "comment" : "A description of an action to add a photo to a journal entry.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Foto hinzufügen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Añadir una foto" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Añadir una foto" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ajouter une photo" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter une photo" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "写真を追加" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "写真を追加" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사진 추가" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사진 추가" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Adicionar uma foto" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Adicionar uma foto" } } } }, - "Add a Photo": { - "comment": "A title for the screen where users can add photos.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Foto hinzufügen" + "Add a Photo" : { + "comment" : "A title for the screen where users can add photos.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Foto hinzufügen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Añadir una foto" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Añadir una foto" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ajouter une photo" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter une photo" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "写真を追加" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "写真を追加" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사진 추가" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사진 추가" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Adicionar uma foto" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Adicionar uma foto" } } } }, - "Add Photo": { - "comment": "The title of the screen where users can add photos.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Foto hinzufügen" + "Add Photo" : { + "comment" : "The title of the screen where users can add photos.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Foto hinzufügen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Añadir foto" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Añadir foto" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ajouter une photo" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter une photo" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "写真を追加" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "写真を追加" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사진 추가" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사진 추가" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Adicionar foto" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Adicionar foto" } } } }, - "Add test data": { - "comment": "A button label that allows users to add test data to the app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Testdaten hinzufügen" + "Add test data" : { + "comment" : "A button label that allows users to add test data to the app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Testdaten hinzufügen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Añadir datos de prueba" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Añadir datos de prueba" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ajouter des données de test" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter des données de test" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "テストデータを追加" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "テストデータを追加" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "테스트 데이터 추가" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "테스트 데이터 추가" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Adicionar dados de teste" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Adicionar dados de teste" } } } }, - "Add Test Data": { - "comment": "A button label that, when tapped, populates the app with sample mood entries for testing purposes.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Testdaten hinzufügen" + "Add Test Data" : { + "comment" : "A button label that, when tapped, populates the app with sample mood entries for testing purposes.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Testdaten hinzufügen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Agregar datos de prueba" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Agregar datos de prueba" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ajouter des données de test" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajouter des données de test" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "テストデータを追加" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "テストデータを追加" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "테스트 데이터 추가" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "테스트 데이터 추가" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Adicionar dados de teste" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Adicionar dados de teste" } } } }, - "add_mood_header_view_title": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wie war %@?" + "add_mood_header_view_title" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wie war %@?" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "How was %@?" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "How was %@?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Cómo estuvo %@?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Cómo estuvo %@?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Comment était %@ ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comment était %@ ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%@はどうでしたか?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@はどうでしたか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%@ 어땠어요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 어땠어요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Como foi %@?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Como foi %@?" } } } }, - "add_mood_header_view_title_today": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wie ist heute?" + "add_mood_header_view_title_today" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wie ist heute?" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "How is today?" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "How is today?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Cómo va hoy?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Cómo va hoy?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Comment va aujourd'hui ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comment va aujourd'hui ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今日はどうですか?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日はどうですか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘 어때요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘 어때요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Como está hoje?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Como está hoje?" } } } }, - "add_mood_header_view_title_yesterday": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wie war gestern?" + "add_mood_header_view_title_yesterday" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wie war gestern?" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "How was yesterday?" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "How was yesterday?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Cómo estuvo ayer?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Cómo estuvo ayer?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Comment était hier ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comment était hier ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "昨日はどうでしたか?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "昨日はどうでしたか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "어제 어땠어요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "어제 어땠어요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Como foi ontem?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Como foi ontem?" } } } }, - "AI": { - "comment": "An abbreviation for \"Artificial Intelligence\".", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "KI" + "AI" : { + "comment" : "An abbreviation for \"Artificial Intelligence\".", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "KI" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "IA" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "IA" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "IA" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "IA" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "AI" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "AI" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "AI" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "AI" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "IA" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "IA" } } } }, - "AI insights in light & dark mode": { - "comment": "A description of the feature that allows users to export insights from the app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "KI-Einblicke in Hell- & Dunkelmodus" + "AI insights in light & dark mode" : { + "comment" : "A description of the feature that allows users to export insights from the app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "KI-Einblicke in Hell- & Dunkelmodus" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Información de IA en modo claro y oscuro" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Información de IA en modo claro y oscuro" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Aperçus IA en mode clair et sombre" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aperçus IA en mode clair et sombre" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ライト&ダークモードのAIインサイト" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ライト&ダークモードのAIインサイト" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "라이트 & 다크 모드의 AI 인사이트" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "라이트 & 다크 모드의 AI 인사이트" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Insights de IA nos modos claro e escuro" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Insights de IA nos modos claro e escuro" } } } }, - "All sizes & theme variations": { - "comment": "A description of what the \"Export Voting Layouts\" button does.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Alle Größen & Themenvarianten" + "AI report generation requires Apple Intelligence to be enabled in Settings." : { + "comment" : "A description of the requirement for generating an AI-powered mood report.", + "isCommentAutoGenerated" : true + }, + "All sizes & theme variations" : { + "comment" : "A description of what the \"Export Voting Layouts\" button does.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alle Größen & Themenvarianten" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Todos los tamaños y variaciones de tema" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Todos los tamaños y variaciones de tema" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Toutes les tailles et variantes de thème" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toutes les tailles et variantes de thème" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "すべてのサイズとテーマのバリエーション" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "すべてのサイズとテーマのバリエーション" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "모든 크기 및 테마 변형" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "모든 크기 및 테마 변형" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Todos os tamanhos e variações de tema" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Todos os tamanhos e variações de tema" } } } }, - "All styles & complications": { - "comment": "A description of the feature that allows users to export all watch view screenshots.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Alle Stile & Komplikationen" + "All styles & complications" : { + "comment" : "A description of the feature that allows users to export all watch view screenshots.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alle Stile & Komplikationen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Todos los estilos y complicaciones" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Todos los estilos y complicaciones" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Tous les styles et complications" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tous les styles et complications" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "すべてのスタイルとコンプリケーション" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "すべてのスタイルとコンプリケーション" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "모든 스타일 및 컴플리케이션" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "모든 스타일 및 컴플리케이션" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Todos os estilos e complicações" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Todos os estilos e complicações" } } } }, - "All Time Moods": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Alle Stimmungen" + "All Time Moods" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alle Stimmungen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Todos los estados de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Todos los estados de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Toutes les humeurs" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toutes les humeurs" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "全期間の気分" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "全期間の気分" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "전체 기분" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "전체 기분" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Todos os humores" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Todos os humores" } } } }, - "Allow deleting mood entries by swiping": { - "comment": "A hint describing the functionality of the \"Allow deleting mood entries by swiping\" toggle.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Löschen von Stimmungseinträgen durch Wischen erlauben" + "Allow deleting mood entries by swiping" : { + "comment" : "A hint describing the functionality of the \"Allow deleting mood entries by swiping\" toggle.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Löschen von Stimmungseinträgen durch Wischen erlauben" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Permitir eliminar entradas deslizando" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Permitir eliminar entradas deslizando" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Autoriser la suppression par balayage" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Autoriser la suppression par balayage" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "スワイプで気分の記録を削除可能にする" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "スワイプで気分の記録を削除可能にする" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "스와이프로 기분 기록 삭제 허용" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "스와이프로 기분 기록 삭제 허용" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Permitir excluir registros deslizando" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Permitir excluir registros deslizando" } } } }, - "Amazing! You have a %lld day streak. Keep it up!": { - "comment": "A response to a voice intent that confirms a user's current mood logging streak. The argument is the length of the streak.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Toll! Du hast eine %lld-Tage-Serie. Weiter so!" + "Amazing! You have a %lld day streak. Keep it up!" : { + "comment" : "A response to a voice intent that confirms a user's current mood logging streak. The argument is the length of the streak.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toll! Du hast eine %lld-Tage-Serie. Weiter so!" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡Increíble! Tienes una racha de %lld días. ¡Sigue así!" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡Increíble! Tienes una racha de %lld días. ¡Sigue así!" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Incroyable ! Vous avez une série de %lld jours. Continuez !" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Incroyable ! Vous avez une série de %lld jours. Continuez !" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "すごい!%lld日連続です。この調子で!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "すごい!%lld日連続です。この調子で!" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "대단해요! %lld일 연속입니다. 계속 화이팅!" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "대단해요! %lld일 연속입니다. 계속 화이팅!" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Incrível! Você tem uma sequência de %lld dias. Continue assim!" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Incrível! Você tem uma sequência de %lld dias. Continue assim!" } } } }, - "Amplify your emotional intelligence.\nGo premium. Go limitless.": { - "comment": "A description of the premium subscription experience, emphasizing emotional intelligence and limitless access.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Verstärke deine emotionale Intelligenz.\nWerde Premium. Grenzenlos." + "Amplify your emotional intelligence.\nGo premium. Go limitless." : { + "comment" : "A description of the premium subscription experience, emphasizing emotional intelligence and limitless access.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verstärke deine emotionale Intelligenz.\nWerde Premium. Grenzenlos." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Amplifica tu inteligencia emocional.\nHazte premium. Sin límites." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Amplifica tu inteligencia emocional.\nHazte premium. Sin límites." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Amplifiez votre intelligence émotionnelle.\nPassez premium. Sans limites." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Amplifiez votre intelligence émotionnelle.\nPassez premium. Sans limites." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "感情的知性を高めよう。\nプレミアムで無限の可能性を。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "感情的知性を高めよう。\nプレミアムで無限の可能性を。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "감성 지능을 높이세요.\n프리미엄으로 무한대로." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "감성 지능을 높이세요.\n프리미엄으로 무한대로." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Amplifique sua inteligência emocional.\nSeja premium. Sem limites." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Amplifique sua inteligência emocional.\nSeja premium. Sem limites." } } } }, - "Animation Lab": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Animationslabor" + "Animation Lab" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Animationslabor" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Laboratorio de animación" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Laboratorio de animación" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Labo d'animation" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Labo d'animation" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "アニメーションラボ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アニメーションラボ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "애니메이션 랩" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "애니메이션 랩" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Laboratório de animação" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Laboratório de animação" } } } }, - "App icon style %@": { - "comment": "A button that lets the user select an app icon style. The label shows the name of the style, without the \"AppIcon\" or \"Image\" prefix.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "App-Icon-Stil %@" + "App icon style %@" : { + "comment" : "A button that lets the user select an app icon style. The label shows the name of the style, without the \"AppIcon\" or \"Image\" prefix.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "App-Icon-Stil %@" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Estilo de icono de app %@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Estilo de icono de app %@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Style d'icône d'app %@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Style d'icône d'app %@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "アプリアイコンスタイル %@" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アプリアイコンスタイル %@" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "앱 아이콘 스타일 %@" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "앱 아이콘 스타일 %@" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Estilo do ícone do app %@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Estilo do ícone do app %@" } } } }, - "Apple Health": { - "comment": "The title of the toggle that enables or disables syncing mood data with Apple Health.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Apple Health" + "Apple Health" : { + "comment" : "The title of the toggle that enables or disables syncing mood data with Apple Health.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apple Health" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Apple Health" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apple Health" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Apple Health" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apple Health" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Apple Health" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apple Health" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Apple 건강" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apple 건강" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Apple Health" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apple Health" } } } }, - "Apple Health not available": { - "comment": "An accessibility label for the section of the settings view that indicates that Apple Health is not available on the user's device.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Apple Health nicht verfügbar" + "Apple Health not available" : { + "comment" : "An accessibility label for the section of the settings view that indicates that Apple Health is not available on the user's device.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apple Health nicht verfügbar" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Apple Health no disponible" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apple Health no disponible" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Apple Health non disponible" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apple Health non disponible" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Apple Healthが利用できません" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apple Healthが利用できません" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Apple Health를 사용할 수 없음" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apple Health를 사용할 수 없음" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Apple Health não disponível" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apple Health não disponível" } } } }, - "Apply %@ Theme": { - "comment": "A button that, when tapped, applies a theme to the app. The text inside the button changes based on the theme being applied.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%@-Theme anwenden" + "Apple Intelligence Required" : { + "comment" : "A title for a card that informs the user that AI report generation requires Apple Intelligence to be enabled in Settings.", + "isCommentAutoGenerated" : true + }, + "Apply %@ Theme" : { + "comment" : "A button that, when tapped, applies a theme to the app. The text inside the button changes based on the theme being applied.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@-Theme anwenden" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Aplicar tema %@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aplicar tema %@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Appliquer le thème %@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appliquer le thème %@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%@テーマを適用" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@テーマを適用" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%@ 테마 적용" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 테마 적용" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Aplicar tema %@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aplicar tema %@" } } } }, - "Are you sure you want to delete this mood entry? This cannot be undone.": { - "comment": "An alert message displayed when the user attempts to delete a mood entry.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Möchtest du diesen Stimmungseintrag wirklich löschen? Dies kann nicht rückgängig gemacht werden." + "Are you sure you want to delete this mood entry? This cannot be undone." : { + "comment" : "An alert message displayed when the user attempts to delete a mood entry.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Möchtest du diesen Stimmungseintrag wirklich löschen? Dies kann nicht rückgängig gemacht werden." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Seguro que quieres eliminar esta entrada de estado de ánimo? Esta acción no se puede deshacer." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Seguro que quieres eliminar esta entrada de estado de ánimo? Esta acción no se puede deshacer." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Tu veux vraiment supprimer cette entrée d'humeur ? Cette action est irréversible." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tu veux vraiment supprimer cette entrée d'humeur ? Cette action est irréversible." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "この気分の記録を削除しますか?この操作は取り消せません。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "この気分の記録を削除しますか?この操作は取り消せません。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "이 기분 기록을 삭제하시겠어요? 이 작업은 되돌릴 수 없습니다." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 기분 기록을 삭제하시겠어요? 이 작업은 되돌릴 수 없습니다." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Tem certeza de que deseja excluir este registro de humor? Esta ação não pode ser desfeita." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tem certeza de que deseja excluir este registro de humor? Esta ação não pode ser desfeita." } } } }, - "Are you sure you want to delete this photo?": { - "comment": "A confirmation message displayed when a user attempts to delete a photo.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Möchtest du dieses Foto wirklich löschen?" + "Are you sure you want to delete this photo?" : { + "comment" : "A confirmation message displayed when a user attempts to delete a photo.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Möchtest du dieses Foto wirklich löschen?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Seguro que quieres eliminar esta foto?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Seguro que quieres eliminar esta foto?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Tu veux vraiment supprimer cette photo ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tu veux vraiment supprimer cette photo ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "この写真を削除しますか?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "この写真を削除しますか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "이 사진을 삭제하시겠어요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 사진을 삭제하시겠어요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Tem certeza de que deseja excluir esta foto?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tem certeza de que deseja excluir esta foto?" } } } }, - "Authentication Failed": { - "comment": "An alert title when authentication fails.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Authentifizierung fehlgeschlagen" + "At least 3 entries required to generate a report" : { + "comment" : "A description of the minimum number of mood entries needed to generate a report.", + "isCommentAutoGenerated" : true + }, + "Authentication Failed" : { + "comment" : "An alert title when authentication fails.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Authentifizierung fehlgeschlagen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Autenticación fallida" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Autenticación fallida" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Échec de l'authentification" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Échec de l'authentification" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "認証に失敗しました" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "認証に失敗しました" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "인증 실패" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "인증 실패" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Falha na autenticação" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Falha na autenticação" } } } }, - "Browse Themes": { - "comment": "A suggestion to the user to explore different color and layout combinations.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Themes durchsuchen" + "Browse Themes" : { + "comment" : "A suggestion to the user to explore different color and layout combinations.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Themes durchsuchen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Explorar temas" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Explorar temas" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Parcourir les thèmes" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Parcourir les thèmes" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "テーマを探す" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "テーマを探す" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "테마 둘러보기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "테마 둘러보기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Explorar temas" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Explorar temas" } } } }, - "Bypass Subscription": { - "comment": "A label displayed next to a toggle switch in the \"Debug\" section.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Abonnement umgehen" + "Bypass Subscription" : { + "comment" : "A label displayed next to a toggle switch in the \"Debug\" section.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abonnement umgehen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Omitir suscripción" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Omitir suscripción" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Contourner l'abonnement" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contourner l'abonnement" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "サブスクリプションをスキップ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "サブスクリプションをスキップ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "구독 건너뛰기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "구독 건너뛰기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Ignorar assinatura" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ignorar assinatura" } } } }, - "Cancel": { - "comment": "The text for a button that dismisses the current view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Abbrechen" + "Cancel" : { + "comment" : "The text for a button that dismisses the current view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abbrechen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Cancelar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cancelar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Annuler" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Annuler" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "キャンセル" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "キャンセル" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "취소" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "취소" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Cancelar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cancelar" } } } }, - "Capture how you're feeling today": { - "comment": "A description below the title of the photo picker view, instructing the user to capture their mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Halte fest, wie du dich heute fühlst" + "Capture how you're feeling today" : { + "comment" : "A description below the title of the photo picker view, instructing the user to capture their mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Halte fest, wie du dich heute fühlst" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Registra cómo te sientes hoy" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registra cómo te sientes hoy" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Note comment tu te sens aujourd'hui" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Note comment tu te sens aujourd'hui" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今日の気持ちを記録しよう" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日の気持ちを記録しよう" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘의 기분을 기록하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘의 기분을 기록하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Registre como você está se sentindo hoje" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registre como você está se sentindo hoje" } } } }, - "Change": { - "comment": "A button label that allows the user to change the photo of an entry.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Ändern" + "Change" : { + "comment" : "A button label that allows the user to change the photo of an entry.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ändern" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Cambiar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cambiar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Modifier" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modifier" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "変更" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "変更" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "변경" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "변경" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Alterar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alterar" } } } }, - "Charts": { - "comment": "A link to the Charts library on GitHub.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Diagramme" + "Charts" : { + "comment" : "A link to the Charts library on GitHub.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Diagramme" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Gráficos" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gráficos" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Graphiques" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Graphiques" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "グラフ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "グラフ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "차트" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "차트" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Gráficos" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gráficos" } } } }, - "Check Today's Mood": { - "comment": "Title of an intent that allows the user to check what mood they logged today.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Heutige Stimmung prüfen" + "Check Today's Mood" : { + "comment" : "Title of an intent that allows the user to check what mood they logged today.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Heutige Stimmung prüfen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Comprobar el estado de ánimo de hoy" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comprobar el estado de ánimo de hoy" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Vérifier l'humeur du jour" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vérifier l'humeur du jour" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今日の気分を確認" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日の気分を確認" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘의 기분 확인" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘의 기분 확인" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Verificar o humor de hoje" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verificar o humor de hoje" } } } }, - "Check your current mood logging streak": { - "comment": "Title of an intent that checks the user's current mood logging streak.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Überprüfe deine aktuelle Stimmungs-Serie" + "Check your current mood logging streak" : { + "comment" : "Title of an intent that checks the user's current mood logging streak.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Überprüfe deine aktuelle Stimmungs-Serie" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Consulta tu racha actual de registro de estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Consulta tu racha actual de registro de estado de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Consulte ta série actuelle d'enregistrement d'humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Consulte ta série actuelle d'enregistrement d'humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "現在の気分記録の連続日数を確認" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "現在の気分記録の連続日数を確認" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "현재 기분 기록 연속 일수 확인" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "현재 기분 기록 연속 일수 확인" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Verifique sua sequência atual de registro de humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verifique sua sequência atual de registro de humor" } } } }, - "Choose from Library": { - "comment": "A button that lets the user choose a photo from their photo library.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Aus Mediathek wählen" + "Choose from Library" : { + "comment" : "A button that lets the user choose a photo from their photo library.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aus Mediathek wählen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Elegir de la biblioteca" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Elegir de la biblioteca" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Choisir dans la photothèque" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisir dans la photothèque" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ライブラリから選択" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ライブラリから選択" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "보관함에서 선택" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "보관함에서 선택" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Escolher da biblioteca" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Escolher da biblioteca" } } } }, - "Choose from your photos": { - "comment": "A description of the action a user can take to select a photo from their photo library.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Aus deinen Fotos wählen" + "Choose from your photos" : { + "comment" : "A description of the action a user can take to select a photo from their photo library.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aus deinen Fotos wählen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Elegir de tus fotos" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Elegir de tus fotos" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Choisir parmi tes photos" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisir parmi tes photos" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "写真から選択" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "写真から選択" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사진에서 선택" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사진에서 선택" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Escolher das suas fotos" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Escolher das suas fotos" } } } }, - "Choose your vibe": { - "comment": "A title displayed on the onboarding screen, encouraging users to choose their preferred theme.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wähle deinen Stil" + "Choose your vibe" : { + "comment" : "A title displayed on the onboarding screen, encouraging users to choose their preferred theme.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wähle deinen Stil" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Elige tu estilo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Elige tu estilo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Choisissez votre style" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisissez votre style" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "スタイルを選ぶ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "スタイルを選ぶ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "스타일을 선택하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "스타일을 선택하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Escolha seu estilo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Escolha seu estilo" } } } }, - "Choose Your Vibe": { - "comment": "A title displayed at the top of the view, encouraging the user to choose a theme.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wähle deinen Stil" + "Choose Your Vibe" : { + "comment" : "A title displayed at the top of the view, encouraging the user to choose a theme.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wähle deinen Stil" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Elige tu estilo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Elige tu estilo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Choisissez votre style" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisissez votre style" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "スタイルを選ぶ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "スタイルを選ぶ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "스타일을 선택하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "스타일을 선택하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Escolha seu estilo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Escolha seu estilo" } } } }, - "Clarity through simplicity.\nPremium unlocks understanding.": { - "comment": "A description of the benefits of the premium subscription.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Klarheit durch Einfachheit.\nPremium öffnet Verständnis." + "Clarity through simplicity.\nPremium unlocks understanding." : { + "comment" : "A description of the benefits of the premium subscription.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Klarheit durch Einfachheit.\nPremium öffnet Verständnis." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Claridad a través de la simplicidad.\nPremium desbloquea la comprensión." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Claridad a través de la simplicidad.\nPremium desbloquea la comprensión." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "La clarté par la simplicité.\nPremium déverrouille la compréhension." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "La clarté par la simplicité.\nPremium déverrouille la compréhension." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "シンプルさが明晰さをもたらす。\nプレミアムで理解を深めよう。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "シンプルさが明晰さをもたらす。\nプレミアムで理解を深めよう。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "단순함을 통한 명확함.\n프리미엄으로 이해를 열어보세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "단순함을 통한 명확함.\n프리미엄으로 이해를 열어보세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Clareza através da simplicidade.\nPremium desbloqueia o entendimento." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Clareza através da simplicidade.\nPremium desbloqueia o entendimento." } } } }, - "Clear All Data": { - "comment": "A button label that clears all user data.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Alle Daten löschen" + "Clear All Data" : { + "comment" : "A button label that clears all user data.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alle Daten löschen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Borrar todos los datos" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Borrar todos los datos" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Effacer toutes les données" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Effacer toutes les données" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "すべてのデータを消去" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "すべてのデータを消去" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "모든 데이터 지우기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "모든 데이터 지우기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Limpar todos os dados" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Limpar todos os dados" } } } }, - "Clear DB": { - "comment": "A button label that clears the app's database.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "DB löschen" + "Clear DB" : { + "comment" : "A button label that clears the app's database.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "DB löschen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Borrar BD" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Borrar BD" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Effacer BDD" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Effacer BDD" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "DBをクリア" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "DBをクリア" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "DB 삭제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "DB 삭제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Limpar BD" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Limpar BD" } } } }, - "Close": { - "comment": "An accessibility label for the button that dismisses the view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Schließen" + "Close" : { + "comment" : "An accessibility label for the button that dismisses the view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Schließen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Cerrar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cerrar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Fermer" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fermer" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "閉じる" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "閉じる" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "닫기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "닫기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Fechar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fechar" } } } }, - "content_view_delete_entry": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Diese Bewertung löschen" + "content_view_delete_entry" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Diese Bewertung löschen" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Delete this rating" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete this rating" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Eliminar esta calificación" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eliminar esta calificación" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Supprimer cette évaluation" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer cette évaluation" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "この評価を削除" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "この評価を削除" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "이 평가 삭제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 평가 삭제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Excluir esta avaliação" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Excluir esta avaliação" } } } }, - "content_view_fill_in_missing_entry": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%@ aktualisieren" + "content_view_fill_in_missing_entry" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ aktualisieren" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Update %@" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Update %@" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Actualizar %@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Actualizar %@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Mettre à jour %@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mettre à jour %@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%@を更新" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@を更新" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%@ 업데이트" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 업데이트" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Atualizar %@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Atualizar %@" } } } }, - "content_view_fill_in_missing_entry_cancel": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Abbrechen" + "content_view_fill_in_missing_entry_cancel" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abbrechen" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Cancel" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cancel" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Cancelar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cancelar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Annuler" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Annuler" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "キャンセル" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "キャンセル" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "취소" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "취소" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Cancelar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cancelar" } } } }, - "content_view_header_title": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Letzte %d Tage" + "content_view_header_title" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Letzte %d Tage" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Past %d days" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Past %d days" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Últimos %d días" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Últimos %d días" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "%d derniers jours" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d derniers jours" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "過去%d日間" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "過去%d日間" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "지난 %d일" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "지난 %d일" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Últimos %d dias" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Últimos %d dias" } } } }, - "content_view_tab_filter": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Jahr" + "content_view_tab_filter" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jahr" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Year" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Year" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Año" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Año" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Année" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Année" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "年" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "年" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "연도" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "연도" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Ano" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ano" } } } }, - "content_view_tab_insights": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Einblicke" + "content_view_tab_insights" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Einblicke" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Insights" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Insights" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Análisis" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Análisis" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Aperçus" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aperçus" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "インサイト" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "インサイト" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "인사이트" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "인사이트" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Insights" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Insights" } } } }, - "content_view_tab_main": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tag" + "content_view_tab_main" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tag" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Day" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Day" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Día" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Día" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Jour" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jour" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "日" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "日" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "일" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "일" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Dia" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dia" } } } }, - "content_view_tab_month": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Monat" + "content_view_tab_month" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Monat" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Month" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Month" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Mes" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mes" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Mois" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mois" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "月" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "月" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "월" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "월" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Mês" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mês" } } } }, - "Correlate mood with health data": { - "comment": "A description of the feature that allows users to sync their mood data with Apple Health.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Stimmung mit Gesundheitsdaten verknüpfen" + "Correlate mood with health data" : { + "comment" : "A description of the feature that allows users to sync their mood data with Apple Health.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stimmung mit Gesundheitsdaten verknüpfen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Correlacionar estado de ánimo con datos de salud" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Correlacionar estado de ánimo con datos de salud" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Corréler l'humeur avec les données de santé" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Corréler l'humeur avec les données de santé" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分と健康データを関連付ける" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分と健康データを関連付ける" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분과 건강 데이터 연관 짓기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분과 건강 데이터 연관 짓기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Correlacionar humor com dados de saúde" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Correlacionar humor com dados de saúde" } } } }, - "Count": { - "comment": "Label for the count of a mood in the header stats view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Anzahl" + "Count" : { + "comment" : "Label for the count of a mood in the header stats view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Anzahl" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Cantidad" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cantidad" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Nombre" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nombre" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "件数" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "件数" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "개수" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "개수" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Quantidade" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quantidade" } } } }, - "Create random icons": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Zufällige Icons erstellen" + "Create random icons" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zufällige Icons erstellen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Crear iconos aleatorios" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Crear iconos aleatorios" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Créer des icônes aléatoires" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Créer des icônes aléatoires" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ランダムなアイコンを作成" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ランダムなアイコンを作成" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "랜덤 아이콘 생성" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "랜덤 아이콘 생성" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Criar ícones aleatórios" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Criar ícones aleatórios" } } } }, - "create_widget_background_color": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Hintergrund" + "create_widget_background_color" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hintergrund" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Background" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Background" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Fondo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fondo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Arrière-plan" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Arrière-plan" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "背景" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "背景" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "배경" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "배경" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Fundo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fundo" } } } }, - "create_widget_face_outline_color": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Gesichtsumriss" + "create_widget_face_outline_color" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gesichtsumriss" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Face Outline" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Face Outline" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Contorno de Cara" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contorno de Cara" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Contour du visage" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contour du visage" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "顔の輪郭" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "顔の輪郭" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "얼굴 윤곽" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "얼굴 윤곽" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Contorno do rosto" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contorno do rosto" } } } }, - "create_widget_inner_color": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Innen" + "create_widget_inner_color" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Innen" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Inner" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Inner" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Interior" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Interior" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Intérieur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Intérieur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "内側" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "内側" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "내부" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "내부" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Interior" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Interior" } } } }, - "create_widget_save": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Speichern" + "create_widget_save" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Speichern" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Save" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Save" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Guardar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Guardar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistrer" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrer" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "保存" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "保存" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "저장" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "저장" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Salvar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Salvar" } } } }, - "create_widget_use": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Verwenden" + "create_widget_use" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verwenden" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Use" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Use" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Usar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Usar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Utiliser" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Utiliser" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "使用" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "使用" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사용" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사용" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Usar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Usar" } } } }, - "create_widget_view_left_eye": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Linkes Auge" + "create_widget_view_left_eye" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Linkes Auge" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Left Eye" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Left Eye" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Ojo Izquierdo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ojo Izquierdo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Œil gauche" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Œil gauche" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "左目" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "左目" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "왼쪽 눈" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "왼쪽 눈" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Olho esquerdo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olho esquerdo" } } } }, - "create_widget_view_left_eye_color": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Linkes Auge" + "create_widget_view_left_eye_color" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Linkes Auge" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Left Eye" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Left Eye" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Ojo Izquierdo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ojo Izquierdo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Œil gauche" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Œil gauche" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "左目" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "左目" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "왼쪽 눈" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "왼쪽 눈" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Olho esquerdo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olho esquerdo" } } } }, - "create_widget_view_mouth": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Mund" + "create_widget_view_mouth" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mund" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Mouth" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mouth" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Boca" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Boca" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Bouche" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bouche" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "口" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "口" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "입" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "입" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Boca" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Boca" } } } }, - "create_widget_view_mouth_color": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Mund" + "create_widget_view_mouth_color" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mund" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Mouth" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mouth" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Boca" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Boca" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Bouche" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bouche" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "口" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "口" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "입" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "입" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Boca" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Boca" } } } }, - "create_widget_view_right_eye": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Rechtes Auge" + "create_widget_view_right_eye" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rechtes Auge" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Right Eye" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Right Eye" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Ojo Derecho" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ojo Derecho" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Œil droit" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Œil droit" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "右目" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "右目" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오른쪽 눈" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오른쪽 눈" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Olho direito" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olho direito" } } } }, - "create_widget_view_right_eye_color": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Rechtes Auge" + "create_widget_view_right_eye_color" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rechtes Auge" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Right Eye" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Right Eye" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Ojo Derecho" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ojo Derecho" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Œil droit" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Œil droit" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "右目" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "右目" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오른쪽 눈" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오른쪽 눈" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Olho direito" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olho direito" } } } }, - "CSV or PDF report": { - "comment": "A description of what the \"Export Data\" button does.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "CSV- oder PDF-Bericht" + "CSV or PDF report" : { + "comment" : "A description of what the \"Export Data\" button does.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "CSV- oder PDF-Bericht" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Informe CSV o PDF" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Informe CSV o PDF" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Rapport CSV ou PDF" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rapport CSV ou PDF" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "CSVまたはPDFレポート" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "CSVまたはPDFレポート" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "CSV 또는 PDF 보고서" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "CSV 또는 PDF 보고서" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Relatório CSV ou PDF" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Relatório CSV ou PDF" } } } }, - "Current Parameters": { - "comment": "A section header that lists various current parameters related to the app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Aktuelle Parameter" + "Current Parameters" : { + "comment" : "A section header that lists various current parameters related to the app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aktuelle Parameter" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Parámetros actuales" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Parámetros actuales" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Paramètres actuels" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paramètres actuels" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "現在のパラメータ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "現在のパラメータ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "현재 매개변수" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "현재 매개변수" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Parâmetros atuais" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Parâmetros atuais" } } } }, - "Current Streak": { - "comment": "A label describing the user's current streak of using the app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Aktuelle Serie" + "Current Streak" : { + "comment" : "A label describing the user's current streak of using the app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aktuelle Serie" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Racha actual" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Racha actual" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Série actuelle" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Série actuelle" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "現在の連続記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "現在の連続記録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "현재 연속 기록" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "현재 연속 기록" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Sequência atual" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sequência atual" } } } }, - "Current: %@": { - "comment": "A label showing the current trial start date. The date is formatted using the \"abbreviated\" date and \"omitted\" time styles.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Aktuell: %@" + "Current: %@" : { + "comment" : "A label showing the current trial start date. The date is formatted using the \"abbreviated\" date and \"omitted\" time styles.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aktuell: %@" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Actual: %@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Actual: %@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Actuel : %@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Actuel : %@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "現在: %@" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "現在: %@" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "현재: %@" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "현재: %@" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Atual: %@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Atual: %@" } } } }, - "Customize": { - "comment": "The title of the Customize screen.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Anpassen" + "Customize" : { + "comment" : "The title of the Customize screen.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Anpassen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Personalizar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Personalizar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Personnaliser" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Personnaliser" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "カスタマイズ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "カスタマイズ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사용자 정의" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사용자 정의" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Personalizar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Personalizar" } } } }, - "customize_view_over18alert_body": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Einige Texte könnten anstößig sein." + "customize_view_over18alert_body" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Einige Texte könnten anstößig sein." } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Some of this text might be offensive." + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Some of this text might be offensive." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Parte de este texto podría ser ofensivo." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Parte de este texto podría ser ofensivo." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Certains textes peuvent être offensants." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Certains textes peuvent être offensants." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "一部のテキストは不快な内容を含む場合があります。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "一部のテキストは不快な内容を含む場合があります。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "일부 텍스트가 불쾌할 수 있습니다." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "일부 텍스트가 불쾌할 수 있습니다." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Alguns textos podem ser ofensivos." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alguns textos podem ser ofensivos." } } } }, - "customize_view_over18alert_no": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Nein" + "customize_view_over18alert_no" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nein" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "No" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "No" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "No" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "No" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Non" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Non" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "いいえ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "いいえ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "아니요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "아니요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Não" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Não" } } } }, - "customize_view_over18alert_ok": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Ja" + "customize_view_over18alert_ok" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ja" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Yes" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Yes" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Sí" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sí" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Oui" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oui" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "はい" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "はい" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "예" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "예" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Sim" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sim" } } } }, - "customize_view_over18alert_title": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Bist du über 18?" + "customize_view_over18alert_title" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bist du über 18?" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Are you over 18?" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Are you over 18?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Eres mayor de 18?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Eres mayor de 18?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Avez-vous plus de 18 ans ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Avez-vous plus de 18 ans ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "18歳以上ですか?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "18歳以上ですか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "18세 이상이신가요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "18세 이상이신가요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Você tem mais de 18 anos?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Você tem mais de 18 anos?" } } } }, - "Data Storage Unavailable": { - "comment": "An alert title when the app cannot save mood data permanently.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Datenspeicher nicht verfügbar" + "Data Storage Unavailable" : { + "comment" : "An alert title when the app cannot save mood data permanently.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Datenspeicher nicht verfügbar" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Almacenamiento de datos no disponible" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Almacenamiento de datos no disponible" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Stockage de données indisponible" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stockage de données indisponible" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "データストレージが利用できません" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "データストレージが利用できません" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "데이터 저장소를 사용할 수 없음" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "데이터 저장소를 사용할 수 없음" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Armazenamento de dados indisponível" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Armazenamento de dados indisponível" } } } }, - "Date Range": { - "comment": "A label describing the date range for the mood data being exported.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Zeitraum" + "Date Range" : { + "comment" : "A label describing the date range for the mood data being exported.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zeitraum" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Rango de fechas" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rango de fechas" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Période" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Période" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "期間" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "期間" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기간" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기간" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Período" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Período" } } } }, - "day streak": { - "comment": "A description of the unit of measurement for a day streak.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tage Serie" + "day streak" : { + "comment" : "A description of the unit of measurement for a day streak.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tage Serie" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "días de racha" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "días de racha" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "jours de série" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "jours de série" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "日連続" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "日連続" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "일 연속" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "일 연속" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "dias de sequência" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "dias de sequência" } } } }, - "day_picker_view_text": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Zeigt nur ausgewählte Daten in den Tages-, Monats- und Jahresdiagrammen." + "day_picker_view_text" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zeigt nur ausgewählte Daten in den Tages-, Monats- und Jahresdiagrammen." } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Only shows selected dates on the Day, Month, and Year charts." + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Only shows selected dates on the Day, Month, and Year charts." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Solo muestra las fechas seleccionadas en los gráficos de Día, Mes y Año." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Solo muestra las fechas seleccionadas en los gráficos de Día, Mes y Año." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Affiche uniquement les dates sélectionnées sur les graphiques Jour, Mois et Année." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Affiche uniquement les dates sélectionnées sur les graphiques Jour, Mois et Année." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "日、月、年のチャートで選択した日付のみを表示します。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "日、月、年のチャートで選択した日付のみを表示します。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "일, 월, 연도 차트에서 선택한 날짜만 표시합니다." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "일, 월, 연도 차트에서 선택한 날짜만 표시합니다." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Mostra apenas as datas selecionadas nos gráficos de Dia, Mês e Ano." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostra apenas as datas selecionadas nos gráficos de Dia, Mês e Ano." } } } }, - "days": { - "comment": "A unit of measurement for the number of days.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tage" + "days" : { + "comment" : "A unit of measurement for the number of days.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tage" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "días" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "días" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "jours" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "jours" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "日" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "日" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "일" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "일" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "dias" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "dias" } } } }, - "DAYS": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "TAGE" + "DAYS" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "TAGE" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "DÍAS" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "DÍAS" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "JOURS" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "JOURS" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "日" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "日" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "일" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "일" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "DIAS" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "DIAS" } } } }, - "Days Tracked": { - "comment": "A label displayed below the number of days a user has tracked their mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Erfasste Tage" + "Days Tracked" : { + "comment" : "A label displayed below the number of days a user has tracked their mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erfasste Tage" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Días registrados" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Días registrados" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Jours suivis" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jours suivis" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "記録した日数" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "記録した日数" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기록한 일수" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기록한 일수" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Dias registrados" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dias registrados" } } } }, - "Days Using App": { - "comment": "A label describing the number of days the app has been used.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tage der App-Nutzung" + "Days Using App" : { + "comment" : "A label describing the number of days the app has been used.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tage der App-Nutzung" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Días usando la app" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Días usando la app" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Jours d'utilisation" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jours d'utilisation" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "アプリ使用日数" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アプリ使用日数" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "앱 사용 일수" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "앱 사용 일수" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Dias usando o app" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dias usando o app" } } } }, - "Debug": { - "comment": "A section header in the settings view, hidden in release builds.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Debug" + "Debug" : { + "comment" : "A section header in the settings view, hidden in release builds.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Debug" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Depuración" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Depuración" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Débogage" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Débogage" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "デバッグ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "デバッグ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "디버그" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "디버그" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Depuração" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Depuração" } } } }, - "Default app icon": { - "comment": "A description of the default app icon option in the icon picker.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Standard-App-Symbol" + "Default app icon" : { + "comment" : "A description of the default app icon option in the icon picker.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Standard-App-Symbol" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Icono predeterminado" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Icono predeterminado" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Icône par défaut" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Icône par défaut" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "デフォルトのアプリアイコン" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "デフォルトのアプリアイコン" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기본 앱 아이콘" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기본 앱 아이콘" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Ícone padrão do app" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ícone padrão do app" } } } }, - "default_notif_body_today_four": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Nur kurz nachfragen, wie heute war." + "default_notif_body_today_four" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nur kurz nachfragen, wie heute war." } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Just checking in how today was, friend." + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Just checking in how today was, friend." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Solo verificando cómo estuvo hoy, amigo." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Solo verificando cómo estuvo hoy, amigo." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Je voulais juste savoir comment s'est passée ta journée." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Je voulais juste savoir comment s'est passée ta journée." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今日はどうだったか確認したくて。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日はどうだったか確認したくて。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘 하루 어땠는지 확인하려고요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘 하루 어땠는지 확인하려고요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Só passando pra saber como foi seu dia." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Só passando pra saber como foi seu dia." } } } }, - "default_notif_body_today_one": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wie war heute?" + "default_notif_body_today_one" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wie war heute?" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "How was today?" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "How was today?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Cómo estuvo hoy?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Cómo estuvo hoy?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Comment était aujourd'hui ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comment était aujourd'hui ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今日はどうでしたか?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日はどうでしたか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘 하루 어땠어요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘 하루 어땠어요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Como foi hoje?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Como foi hoje?" } } } }, - "default_notif_body_today_three": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Bitte bewerte deinen Tag." + "default_notif_body_today_three" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bitte bewerte deinen Tag." } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Please rate your day." + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please rate your day." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Por favor califica tu día." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Por favor califica tu día." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "N'oublie pas d'évaluer ta journée." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "N'oublie pas d'évaluer ta journée." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今日の気分を記録してください。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日の気分を記録してください。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘 하루를 평가해 주세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘 하루를 평가해 주세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Por favor, avalie seu dia." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Por favor, avalie seu dia." } } } }, - "default_notif_body_today_two": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Vergiss nicht, deinen Tag zu bewerten!" + "default_notif_body_today_two" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vergiss nicht, deinen Tag zu bewerten!" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Don't forget to rate your day!" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Don't forget to rate your day!" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡No olvides calificar tu día!" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡No olvides calificar tu día!" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "N'oublie pas d'évaluer ta journée !" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "N'oublie pas d'évaluer ta journée !" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今日の記録を忘れずに!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日の記録を忘れずに!" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘 하루 평가하는 거 잊지 마세요!" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘 하루 평가하는 거 잊지 마세요!" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Não esqueça de avaliar seu dia!" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Não esqueça de avaliar seu dia!" } } } }, - "default_notif_body_yesterday_four": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Nur kurz nachfragen, wie gestern war." + "default_notif_body_yesterday_four" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nur kurz nachfragen, wie gestern war." } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Just checking how yesterday was, buddy." + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Just checking how yesterday was, buddy." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Solo verificando cómo estuvo ayer, amigo." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Solo verificando cómo estuvo ayer, amigo." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Je voulais juste savoir comment s'est passé hier." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Je voulais juste savoir comment s'est passé hier." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "昨日はどうだったか確認したくて。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "昨日はどうだったか確認したくて。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "어제 어땠는지 확인하려고요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "어제 어땠는지 확인하려고요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Só passando pra saber como foi ontem." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Só passando pra saber como foi ontem." } } } }, - "default_notif_body_yesterday_one": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wie war gestern?" + "default_notif_body_yesterday_one" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wie war gestern?" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "How was yesterday?" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "How was yesterday?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Cómo estuvo ayer?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Cómo estuvo ayer?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Comment était hier ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comment était hier ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "昨日はどうでしたか?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "昨日はどうでしたか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "어제 어땠어요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "어제 어땠어요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Como foi ontem?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Como foi ontem?" } } } }, - "default_notif_body_yesterday_three": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Bitte bewerte gestern." + "default_notif_body_yesterday_three" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bitte bewerte gestern." } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Please rate yesterday." + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Please rate yesterday." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Por favor califica ayer." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Por favor califica ayer." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "N'oublie pas d'évaluer hier." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "N'oublie pas d'évaluer hier." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "昨日の気分を記録してください。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "昨日の気分を記録してください。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "어제를 평가해 주세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "어제를 평가해 주세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Por favor, avalie ontem." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Por favor, avalie ontem." } } } }, - "default_notif_body_yesterday_two": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Vergiss nicht, gestern zu bewerten!" + "default_notif_body_yesterday_two" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vergiss nicht, gestern zu bewerten!" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Don't forget to rate yesterday!" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Don't forget to rate yesterday!" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡No olvides calificar ayer!" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡No olvides calificar ayer!" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "N'oublie pas d'évaluer hier !" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "N'oublie pas d'évaluer hier !" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "昨日の記録を忘れずに!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "昨日の記録を忘れずに!" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "어제 평가하는 거 잊지 마세요!" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "어제 평가하는 거 잊지 마세요!" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Não esqueça de avaliar ontem!" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Não esqueça de avaliar ontem!" } } } }, - "default_notif_title_one": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Hallo! 👋" + "default_notif_title_one" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hallo! 👋" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Hi! 👋" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hi! 👋" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡Hola! 👋" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡Hola! 👋" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Salut ! 👋" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Salut ! 👋" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "こんにちは!👋" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "こんにちは!👋" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "안녕하세요! 👋" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "안녕하세요! 👋" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Oi! 👋" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oi! 👋" } } } }, - "default_notif_title_three": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Es ist wieder soweit! 😃" + "default_notif_title_three" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Es ist wieder soweit! 😃" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "It's that time again! 😃" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "It's that time again! 😃" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡Es hora otra vez! 😃" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡Es hora otra vez! 😃" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "C'est l'heure ! 😃" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "C'est l'heure ! 😃" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "記録の時間です!😃" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "記録の時間です!😃" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "그 시간이에요! 😃" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "그 시간이에요! 😃" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "É hora! 😃" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "É hora! 😃" } } } }, - "default_notif_title_two": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Eine freundliche Erinnerung! 😁" + "default_notif_title_two" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eine freundliche Erinnerung! 😁" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Just a friendly reminder! 😁" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Just a friendly reminder! 😁" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡Solo un recordatorio amistoso! 😁" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡Solo un recordatorio amistoso! 😁" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Petit rappel ! 😁" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Petit rappel ! 😁" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "リマインダーです!😁" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "リマインダーです!😁" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "친근한 알림이에요! 😁" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "친근한 알림이에요! 😁" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Só um lembrete! 😁" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Só um lembrete! 😁" } } } }, - "Delete": { - "comment": "The text on a button that deletes a mood entry.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Löschen" + "Delete" : { + "comment" : "The text on a button that deletes a mood entry.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Löschen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Eliminar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eliminar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Supprimer" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "削除" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "削除" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "삭제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "삭제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Excluir" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Excluir" } } } }, - "Delete all mood entries": { - "comment": "A description of what happens when the \"Clear All Data\" button is tapped.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Alle Stimmungseinträge löschen" + "Delete all mood entries" : { + "comment" : "A description of what happens when the \"Clear All Data\" button is tapped.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alle Stimmungseinträge löschen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Eliminar todas las entradas" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eliminar todas las entradas" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Supprimer toutes les entrées" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer toutes les entrées" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "すべての気分の記録を削除" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "すべての気分の記録を削除" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "모든 기분 기록 삭제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "모든 기분 기록 삭제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Excluir todos os registros de humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Excluir todos os registros de humor" } } } }, - "Delete Entry": { - "comment": "An alert that appears when the user confirms they want to delete an entry.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Eintrag löschen" + "Delete Entry" : { + "comment" : "An alert that appears when the user confirms they want to delete an entry.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eintrag löschen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Eliminar entrada" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eliminar entrada" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Supprimer l'entrée" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer l'entrée" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "記録を削除" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "記録を削除" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "항목 삭제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "항목 삭제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Excluir entrada" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Excluir entrada" } } } }, - "Delete HealthKit Data": { - "comment": "A button label that deletes all State of Mind records from HealthKit.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "HealthKit-Daten löschen" + "Delete HealthKit Data" : { + "comment" : "A button label that deletes all State of Mind records from HealthKit.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "HealthKit-Daten löschen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Eliminar datos de HealthKit" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eliminar datos de HealthKit" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Supprimer les données HealthKit" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer les données HealthKit" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "HealthKitデータを削除" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "HealthKitデータを削除" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "HealthKit 데이터 삭제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "HealthKit 데이터 삭제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Excluir dados do HealthKit" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Excluir dados do HealthKit" } } } }, - "Delete Photo": { - "comment": "The title of a confirmation dialog that appears when a user tries to delete a photo.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Foto löschen" + "Delete Photo" : { + "comment" : "The title of a confirmation dialog that appears when a user tries to delete a photo.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Foto löschen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Eliminar foto" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eliminar foto" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Supprimer la photo" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer la photo" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "写真を削除" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "写真を削除" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사진 삭제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사진 삭제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Excluir foto" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Excluir foto" } } } }, - "Discover patterns in your mood, get personalized recommendations, and understand what affects how you feel.": { - "comment": "A description of the benefits of using the app's AI-powered insights feature.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Entdecke Muster in deiner Stimmung, erhalte persönliche Empfehlungen und verstehe, was dein Befinden beeinflusst." + "Discover patterns in your mood, get personalized recommendations, and understand what affects how you feel." : { + "comment" : "A description of the benefits of using the app's AI-powered insights feature.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entdecke Muster in deiner Stimmung, erhalte persönliche Empfehlungen und verstehe, was dein Befinden beeinflusst." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Descubre patrones en tu estado de ánimo, obtén recomendaciones personalizadas y comprende qué afecta cómo te sientes." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Descubre patrones en tu estado de ánimo, obtén recomendaciones personalizadas y comprende qué afecta cómo te sientes." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Découvre des tendances dans ton humeur, reçois des recommandations personnalisées et comprends ce qui influence ton bien-être." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Découvre des tendances dans ton humeur, reçois des recommandations personnalisées et comprends ce qui influence ton bien-être." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分のパターンを発見し、パーソナライズされた提案を受け取り、何があなたの気持ちに影響を与えているか理解しよう。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分のパターンを発見し、パーソナライズされた提案を受け取り、何があなたの気持ちに影響を与えているか理解しよう。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분의 패턴을 발견하고, 맞춤 추천을 받고, 무엇이 기분에 영향을 주는지 이해하세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분의 패턴을 발견하고, 맞춤 추천을 받고, 무엇이 기분에 영향을 주는지 이해하세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Descubra padrões no seu humor, receba recomendações personalizadas e entenda o que afeta como você se sente." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Descubra padrões no seu humor, receba recomendações personalizadas e entenda o que afeta como você se sente." } } } }, - "Discover your emotional rhythm across the year. Spot trends and celebrate how far you've come.": { - "comment": "A description of what the \"See Your Year at a Glance\" feature does.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Entdecke deinen emotionalen Rhythmus über das Jahr. Erkenne Trends und feiere, wie weit du gekommen bist." + "Discover your emotional rhythm across the year. Spot trends and celebrate how far you've come." : { + "comment" : "A description of what the \"See Your Year at a Glance\" feature does.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entdecke deinen emotionalen Rhythmus über das Jahr. Erkenne Trends und feiere, wie weit du gekommen bist." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Descubre tu ritmo emocional a lo largo del año. Detecta tendencias y celebra tu progreso." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Descubre tu ritmo emocional a lo largo del año. Detecta tendencias y celebra tu progreso." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Découvrez votre rythme émotionnel tout au long de l'année. Repérez les tendances et célébrez votre progression." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Découvrez votre rythme émotionnel tout au long de l'année. Repérez les tendances et célébrez votre progression." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "1年を通じた感情のリズムを発見。トレンドを見つけ、成長を祝おう。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "1年を通じた感情のリズムを発見。トレンドを見つけ、成長を祝おう。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "1년 동안의 감정 리듬을 발견하세요. 트렌드를 파악하고 성장을 축하하세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "1년 동안의 감정 리듬을 발견하세요. 트렌드를 파악하고 성장을 축하하세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Descubra seu ritmo emocional ao longo do ano. Identifique tendências e celebre seu progresso." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Descubra seu ritmo emocional ao longo do ano. Identifique tendências e celebre seu progresso." } } } }, - "Dismiss": { - "comment": "A button to dismiss the current view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Schließen" + "Dismiss" : { + "comment" : "A button to dismiss the current view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Schließen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Cerrar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cerrar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Fermer" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fermer" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "閉じる" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "閉じる" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "닫기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "닫기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Fechar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fechar" } } } }, - "Don't break your streak!": { - "comment": "A description of the current streak or a motivational message.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Brich deine Serie nicht ab!" + "Don't break your streak!" : { + "comment" : "A description of the current streak or a motivational message.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Brich deine Serie nicht ab!" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡No rompas tu racha!" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡No rompas tu racha!" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ne brise pas ta série !" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ne brise pas ta série !" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "連続記録を途切れさせないで!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "連続記録を途切れさせないで!" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "연속 기록을 끊지 마세요!" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "연속 기록을 끊지 마세요!" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Não quebre sua sequência!" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Não quebre sua sequência!" } } } }, - "Done": { - "comment": "A button that dismisses the keyboard when pressed.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Fertig" + "Done" : { + "comment" : "A button that dismisses the keyboard when pressed.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fertig" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Listo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Listo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Terminé" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Terminé" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "完了" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "完了" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "완료" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "완료" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Concluído" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Concluído" } } } }, - "Double tap to authenticate with %@": { - "comment": "A button that triggers biometric authentication. The hint provides more information about the authentication method.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Doppeltippen, um sich mit %@ zu authentifizieren" + "Double tap to authenticate with %@" : { + "comment" : "A button that triggers biometric authentication. The hint provides more information about the authentication method.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Doppeltippen, um sich mit %@ zu authentifizieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca dos veces para autenticarte con %@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca dos veces para autenticarte con %@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Touchez deux fois pour vous authentifier avec %@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Touchez deux fois pour vous authentifier avec %@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ダブルタップして%@で認証" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ダブルタップして%@で認証" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%@(으)로 인증하려면 두 번 탭하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@(으)로 인증하려면 두 번 탭하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque duas vezes para autenticar com %@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque duas vezes para autenticar com %@" } } } }, - "Double tap to authenticate with your device passcode": { - "comment": "A hint text for the \"Use device passcode\" button on the lock screen.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Doppeltippen, um sich mit Ihrem Gerätecode zu authentifizieren" + "Double tap to authenticate with your device passcode" : { + "comment" : "A hint text for the \"Use device passcode\" button on the lock screen.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Doppeltippen, um sich mit Ihrem Gerätecode zu authentifizieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca dos veces para autenticarte con el código de tu dispositivo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca dos veces para autenticarte con el código de tu dispositivo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Touchez deux fois pour vous authentifier avec le code de votre appareil" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Touchez deux fois pour vous authentifier avec le code de votre appareil" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ダブルタップしてデバイスのパスコードで認証" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ダブルタップしてデバイスのパスコードで認証" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기기 암호로 인증하려면 두 번 탭하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기기 암호로 인증하려면 두 번 탭하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque duas vezes para autenticar com o código do dispositivo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque duas vezes para autenticar com o código do dispositivo" } } } }, - "Double tap to edit": { - "comment": "A hint that appears when a user long-presses a heatmap cell, instructing them to tap it to edit the associated mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Zum Bearbeiten doppelt tippen" + "Double tap to edit" : { + "comment" : "A hint that appears when a user long-presses a heatmap cell, instructing them to tap it to edit the associated mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zum Bearbeiten doppelt tippen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca dos veces para editar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca dos veces para editar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Appuie deux fois pour modifier" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appuie deux fois pour modifier" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ダブルタップで編集" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ダブルタップで編集" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "편집하려면 두 번 탭하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "편집하려면 두 번 탭하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque duas vezes para editar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque duas vezes para editar" } } } }, - "Double tap to edit mood": { - "comment": "A hint that appears when a user long-presses a mood cell to indicate that they can tap it to edit the mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Zum Bearbeiten der Stimmung doppelt tippen" + "Double tap to edit mood" : { + "comment" : "A hint that appears when a user long-presses a mood cell to indicate that they can tap it to edit the mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zum Bearbeiten der Stimmung doppelt tippen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca dos veces para editar el estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca dos veces para editar el estado de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Appuie deux fois pour modifier l'humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appuie deux fois pour modifier l'humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ダブルタップで気分を編集" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ダブルタップで気分を編集" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분을 편집하려면 두 번 탭하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분을 편집하려면 두 번 탭하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque duas vezes para editar o humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque duas vezes para editar o humor" } } } }, - "Double tap to select": { - "comment": "A hint that appears when tapping on an icon to select it.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Doppeltippen zum Auswählen" + "Double tap to select" : { + "comment" : "A hint that appears when tapping on an icon to select it.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Doppeltippen zum Auswählen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Doble toque para seleccionar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Doble toque para seleccionar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Double touche pour sélectionner" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Double touche pour sélectionner" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ダブルタップで選択" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ダブルタップで選択" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "두 번 탭하여 선택" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "두 번 탭하여 선택" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque duplo para selecionar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque duplo para selecionar" } } } }, - "Double tap to toggle statistics": { - "comment": "An accessibility hint for the month card, instructing them to double-tap to toggle the visibility of the statistics section.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Doppeltippen, um Statistiken umzuschalten" + "Double tap to toggle statistics" : { + "comment" : "An accessibility hint for the month card, instructing them to double-tap to toggle the visibility of the statistics section.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Doppeltippen, um Statistiken umzuschalten" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca dos veces para alternar estadísticas" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca dos veces para alternar estadísticas" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Touchez deux fois pour basculer les statistiques" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Touchez deux fois pour basculer les statistiques" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ダブルタップして統計を切り替え" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ダブルタップして統計を切り替え" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "통계를 전환하려면 두 번 탭하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "통계를 전환하려면 두 번 탭하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque duas vezes para alternar estatísticas" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque duas vezes para alternar estatísticas" } } } }, - "Each theme combines colors, icons, layouts, and styles into a cohesive experience.": { - "comment": "A description of how themes work.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Jedes Theme kombiniert Farben, Icons, Layouts und Stile zu einem stimmigen Erlebnis." + "Each theme combines colors, icons, layouts, and styles into a cohesive experience." : { + "comment" : "A description of how themes work.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jedes Theme kombiniert Farben, Icons, Layouts und Stile zu einem stimmigen Erlebnis." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Cada tema combina colores, iconos, diseños y estilos en una experiencia cohesiva." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cada tema combina colores, iconos, diseños y estilos en una experiencia cohesiva." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Chaque thème combine couleurs, icônes, mises en page et styles en une expérience cohérente." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chaque thème combine couleurs, icônes, mises en page et styles en une expérience cohérente." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "各テーマはカラー、アイコン、レイアウト、スタイルを組み合わせた統一感のある体験を提供します。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "各テーマはカラー、アイコン、レイアウト、スタイルを組み合わせた統一感のある体験を提供します。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "각 테마는 색상, 아이콘, 레이아웃, 스타일을 결합하여 일관된 경험을 제공합니다." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "각 테마는 색상, 아이콘, 레이아웃, 스타일을 결합하여 일관된 경험을 제공합니다." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Cada tema combina cores, ícones, layouts e estilos em uma experiência coesa." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cada tema combina cores, ícones, layouts e estilos em uma experiência coesa." } } } }, - "Each theme sets your colors, icons, and layouts": { - "comment": "A description under the title of the view, explaining what each theme does.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Jedes Theme legt deine Farben, Icons und Layouts fest" + "Each theme sets your colors, icons, and layouts" : { + "comment" : "A description under the title of the view, explaining what each theme does.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jedes Theme legt deine Farben, Icons und Layouts fest" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Cada tema define tus colores, iconos y diseños" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cada tema define tus colores, iconos y diseños" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Chaque thème définit vos couleurs, icônes et mises en page" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chaque thème définit vos couleurs, icônes et mises en page" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "各テーマでカラー、アイコン、レイアウトが設定されます" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "各テーマでカラー、アイコン、レイアウトが設定されます" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "각 테마는 색상, 아이콘, 레이아웃을 설정합니다" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "각 테마는 색상, 아이콘, 레이아웃을 설정합니다" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Cada tema define suas cores, ícones e layouts" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cada tema define suas cores, ícones e layouts" } } } }, - "Edit": { - "comment": "A button label that triggers the editing of a journal note.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Bearbeiten" + "Edit" : { + "comment" : "A button label that triggers the editing of a journal note.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bearbeiten" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Editar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Editar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Modifier" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modifier" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "編集" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "編集" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "편집" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "편집" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Editar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Editar" } } } }, - "Elevate Your\nEmotional Life": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Verbessere dein\nemotionales Leben" + "Elevate Your\nEmotional Life" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verbessere dein\nemotionales Leben" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Eleva tu\nvida emocional" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eleva tu\nvida emocional" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Élevez votre\nvie émotionnelle" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Élevez votre\nvie émotionnelle" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "感情生活を\n高めよう" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "感情生活を\n高めよう" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "감정 생활을\n높이세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "감정 생활을\n높이세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Eleve sua\nvida emocional" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eleve sua\nvida emocional" } } } }, - "ELEVATE YOUR\nEXPERIENCE": { - "comment": "A title describing the premium theme's focus on elevating the user's experience.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "VERBESSERE DEIN\nERLEBNIS" + "ELEVATE YOUR\nEXPERIENCE" : { + "comment" : "A title describing the premium theme's focus on elevating the user's experience.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "VERBESSERE DEIN\nERLEBNIS" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "ELEVA TU\nEXPERIENCIA" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "ELEVA TU\nEXPERIENCIA" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "ÉLEVEZ VOTRE\nEXPÉRIENCE" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "ÉLEVEZ VOTRE\nEXPÉRIENCE" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "体験を\n高めよう" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "体験を\n高めよう" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "경험을\n높이세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "경험을\n높이세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "ELEVE SUA\nEXPERIÊNCIA" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "ELEVE SUA\nEXPERIÊNCIA" } } } }, - "Entries": { - "comment": "A label describing the number of mood entries.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Einträge" + "END" : { + "comment" : "A label displayed next to the user's selected end date in the date range picker.", + "isCommentAutoGenerated" : true + }, + "Entries" : { + "comment" : "A label describing the number of mood entries.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Einträge" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Entradas" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entradas" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Entrées" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entrées" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "記録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "항목" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "항목" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Entradas" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entradas" } } } }, - "entries tracked": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Einträge erfasst" + "entries tracked" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Einträge erfasst" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "entradas registradas" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "entradas registradas" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "entrées suivies" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "entrées suivies" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "エントリー記録済み" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "エントリー記録済み" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "항목 기록됨" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "항목 기록됨" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "entradas registradas" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "entradas registradas" } } } }, - "Entry Details": { - "comment": "The title of the view that displays detailed information about a mood entry.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Eintragsdetails" + "Entry Details" : { + "comment" : "The title of the view that displays detailed information about a mood entry.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eintragsdetails" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Detalles de la entrada" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Detalles de la entrada" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Détails de l'entrée" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Détails de l'entrée" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "記録の詳細" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "記録の詳細" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "항목 세부정보" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "항목 세부정보" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Detalhes da entrada" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Detalhes da entrada" } } } }, - "Entry Missing": { - "comment": "A message displayed when an entry is missing for a specific day.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Eintrag fehlt" + "Entry Missing" : { + "comment" : "A message displayed when an entry is missing for a specific day.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eintrag fehlt" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Entrada no encontrada" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entrada no encontrada" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Entrée manquante" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entrée manquante" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "記録がありません" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "記録がありません" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "항목 없음" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "항목 없음" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Entrada não encontrada" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entrada não encontrada" } } } }, - "Every entry tells your story.\nPremium unlocks the full narrative.": { - "comment": "A description of the premium subscription's benefits.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Jeder Eintrag erzählt deine Geschichte.\nPremium enthüllt die ganze Erzählung." + "Every entry tells your story.\nPremium unlocks the full narrative." : { + "comment" : "A description of the premium subscription's benefits.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jeder Eintrag erzählt deine Geschichte.\nPremium enthüllt die ganze Erzählung." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Cada entrada cuenta tu historia.\nPremium desbloquea la narrativa completa." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cada entrada cuenta tu historia.\nPremium desbloquea la narrativa completa." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Chaque entrée raconte votre histoire.\nPremium déverrouille le récit complet." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chaque entrée raconte votre histoire.\nPremium déverrouille le récit complet." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "すべての記録があなたの物語を語る。\nプレミアムで全体像を見よう。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "すべての記録があなたの物語を語る。\nプレミアムで全体像を見よう。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "모든 기록이 당신의 이야기를 전합니다.\n프리미엄으로 전체 이야기를 열어보세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "모든 기록이 당신의 이야기를 전합니다.\n프리미엄으로 전체 이야기를 열어보세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Cada registro conta sua história.\nPremium desbloqueia a narrativa completa." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cada registro conta sua história.\nPremium desbloqueia a narrativa completa." } } } }, - "Every feeling is a seed.\nPremium helps you grow.": { - "comment": "A description of the premium subscription's benefits, emphasizing growth and self-improvement.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Jedes Gefühl ist ein Samen.\nPremium hilft dir zu wachsen." + "Every feeling is a seed.\nPremium helps you grow." : { + "comment" : "A description of the premium subscription's benefits, emphasizing growth and self-improvement.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jedes Gefühl ist ein Samen.\nPremium hilft dir zu wachsen." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Cada sentimiento es una semilla.\nPremium te ayuda a crecer." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cada sentimiento es una semilla.\nPremium te ayuda a crecer." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Chaque sentiment est une graine.\nPremium vous aide à grandir." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chaque sentiment est une graine.\nPremium vous aide à grandir." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "すべての感情は種。\nプレミアムで成長しよう。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "すべての感情は種。\nプレミアムで成長しよう。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "모든 감정은 씨앗입니다.\n프리미엄으로 성장하세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "모든 감정은 씨앗입니다.\n프리미엄으로 성장하세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Cada sentimento é uma semente.\nPremium ajuda você a crescer." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cada sentimento é uma semente.\nPremium ajuda você a crescer." } } } }, - "Every feeling is a track.\nPremium gives you the full album.": { - "comment": "A description of the premium subscription's benefits.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Jedes Gefühl ist ein Track.\nPremium gibt dir das ganze Album." + "Every feeling is a track.\nPremium gives you the full album." : { + "comment" : "A description of the premium subscription's benefits.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jedes Gefühl ist ein Track.\nPremium gibt dir das ganze Album." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Cada sentimiento es una pista.\nPremium te da el álbum completo." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cada sentimiento es una pista.\nPremium te da el álbum completo." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Chaque sentiment est une piste.\nPremium vous donne l'album complet." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chaque sentiment est une piste.\nPremium vous donne l'album complet." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "すべての感情は一曲。\nプレミアムでアルバム全体を。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "すべての感情は一曲。\nプレミアムでアルバム全体を。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "모든 감정은 한 곡입니다.\n프리미엄으로 전체 앨범을 받으세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "모든 감정은 한 곡입니다.\n프리미엄으로 전체 앨범을 받으세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Cada sentimento é uma faixa.\nPremium te dá o álbum completo." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cada sentimento é uma faixa.\nPremium te dá o álbum completo." } } } }, - "Exit": { - "comment": "A button label that dismisses the current view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Beenden" + "Exit" : { + "comment" : "A button label that dismisses the current view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Beenden" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Salir" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Salir" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Quitter" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quitter" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "終了" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "終了" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "나가기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "나가기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Sair" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sair" } } } }, - "Experiment with vote celebrations": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Experimentiere mit Abstimmungsanimationen" + "Experiment with vote celebrations" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Experimentiere mit Abstimmungsanimationen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Experimenta con celebraciones de votación" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Experimenta con celebraciones de votación" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Expérimentez les célébrations de vote" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Expérimentez les célébrations de vote" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "投票セレブレーションを試す" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "投票セレブレーションを試す" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "투표 축하 실험" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "투표 축하 실험" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Experimente celebrações de votação" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Experimente celebrações de votação" } } } }, - "Explore Your Mood History": { - "comment": "A title for a feature that allows users to explore their mood history.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Erkunde deine Stimmungshistorie" + "Explore Your Mood History" : { + "comment" : "A title for a feature that allows users to explore their mood history.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erkunde deine Stimmungshistorie" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Explora tu historial de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Explora tu historial de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Explorez votre historique d'humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Explorez votre historique d'humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分の履歴を探索" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分の履歴を探索" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 기록 탐색" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 기록 탐색" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Explore seu histórico de humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Explore seu histórico de humor" } } } }, - "Export": { - "comment": "A button label that triggers data export.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Exportieren" + "Export" : { + "comment" : "A button label that triggers data export.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Exportar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Exporter" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exporter" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "エクスポート" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "エクスポート" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "내보내기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "내보내기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Exportar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportar" } } } }, - "Export %@": { - "comment": "A button that triggers the export of mood data in a selected format (e.g., CSV or PDF).", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%@ exportieren" + "Export %@" : { + "comment" : "A button that triggers the export of mood data in a selected format (e.g., CSV or PDF).", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ exportieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Exportar %@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportar %@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Exporter %@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exporter %@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%@をエクスポート" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@をエクスポート" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%@ 내보내기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 내보내기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Exportar %@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportar %@" } } } }, - "Export Complete!": { - "comment": "A message shown when the live activity export is complete.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Export abgeschlossen!" + "Export Complete!" : { + "comment" : "A message shown when the live activity export is complete.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Export abgeschlossen!" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡Exportación completada!" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡Exportación completada!" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Exportation terminée !" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportation terminée !" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "エクスポート完了!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "エクスポート完了!" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "내보내기 완료!" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "내보내기 완료!" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Exportação concluída!" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportação concluída!" } } } }, - "Export Data": { - "comment": "The title of the screen where users can export their mood data.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Daten exportieren" + "Export Data" : { + "comment" : "The title of the screen where users can export their mood data.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Daten exportieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Exportar datos" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportar datos" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Exporter les données" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exporter les données" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "データをエクスポート" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "データをエクスポート" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "데이터 내보내기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "데이터 내보내기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Exportar dados" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportar dados" } } } }, - "Export Failed": { - "comment": "The title of an alert that appears when exporting mood data fails.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Export fehlgeschlagen" + "Export Failed" : { + "comment" : "The title of an alert that appears when exporting mood data fails.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Export fehlgeschlagen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Error al exportar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Error al exportar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Échec de l'exportation" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Échec de l'exportation" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "エクスポートに失敗しました" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "エクスポートに失敗しました" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "내보내기 실패" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "내보내기 실패" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Falha ao exportar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Falha ao exportar" } } } }, - "Export Insights Screenshots": { - "comment": "A button label that allows users to export insights screenshots.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Insights-Screenshots exportieren" + "Export Insights Screenshots" : { + "comment" : "A button label that allows users to export insights screenshots.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Insights-Screenshots exportieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Exportar capturas de información" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportar capturas de información" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Exporter les captures d'aperçus" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exporter les captures d'aperçus" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "インサイトのスクリーンショットを書き出す" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "インサイトのスクリーンショットを書き出す" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "인사이트 스크린샷 내보내기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "인사이트 스크린샷 내보내기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Exportar capturas de insights" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportar capturas de insights" } } } }, - "Export Preview": { - "comment": "A title for the preview section of the export view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Exportvorschau" + "Export PDF" : { + "comment" : "A button label that triggers the export of a user's mood report as a PDF file.", + "isCommentAutoGenerated" : true + }, + "Export Preview" : { + "comment" : "A title for the preview section of the export view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportvorschau" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Vista previa de exportación" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vista previa de exportación" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Aperçu de l'exportation" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aperçu de l'exportation" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "エクスポートのプレビュー" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "エクスポートのプレビュー" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "내보내기 미리보기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "내보내기 미리보기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Pré-visualização da exportação" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pré-visualização da exportação" } } } }, - "Export Voting Layouts": { - "comment": "A button label that allows users to export all of their voting layout configurations.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Abstimmungs-Layouts exportieren" + "Export Voting Layouts" : { + "comment" : "A button label that allows users to export all of their voting layout configurations.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abstimmungs-Layouts exportieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Exportar diseños de votación" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportar diseños de votación" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Exporter les mises en page de vote" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exporter les mises en page de vote" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "投票レイアウトを書き出す" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "投票レイアウトを書き出す" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "투표 레이아웃 내보내기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "투표 레이아웃 내보내기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Exportar layouts de votação" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportar layouts de votação" } } } }, - "Export Watch Screenshots": { - "comment": "A button label that allows users to export watch view screenshots.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Watch-Screenshots exportieren" + "Export Watch Screenshots" : { + "comment" : "A button label that allows users to export watch view screenshots.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Watch-Screenshots exportieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Exportar capturas del Watch" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportar capturas del Watch" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Exporter les captures Watch" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exporter les captures Watch" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Watchスクリーンショットを書き出す" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Watchスクリーンショットを書き出す" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Watch 스크린샷 내보내기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Watch 스크린샷 내보내기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Exportar capturas do Watch" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportar capturas do Watch" } } } }, - "Export Widget Screenshots": { - "comment": "A button label that prompts the user to download their light and dark mode widget screenshots.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Widget-Screenshots exportieren" + "Export Widget Screenshots" : { + "comment" : "A button label that prompts the user to download their light and dark mode widget screenshots.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Widget-Screenshots exportieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Exportar capturas del widget" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportar capturas del widget" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Exporter les captures du widget" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exporter les captures du widget" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ウィジェットのスクリーンショットをエクスポート" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ウィジェットのスクリーンショットをエクスポート" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "위젯 스크린샷 내보내기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "위젯 스크린샷 내보내기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Exportar capturas do widget" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportar capturas do widget" } } } }, - "Export your mood data as CSV or PDF": { - "comment": "A hint that describes the functionality of the \"Export Data\" button in the Settings view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Exportiere deine Stimmungsdaten als CSV oder PDF" + "Export your mood data as CSV or PDF" : { + "comment" : "A hint that describes the functionality of the \"Export Data\" button in the Settings view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportiere deine Stimmungsdaten als CSV oder PDF" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Exporta tus datos como CSV o PDF" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exporta tus datos como CSV o PDF" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Exportez vos données en CSV ou PDF" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportez vos données en CSV ou PDF" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分データをCSVまたはPDFでエクスポート" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分データをCSVまたはPDFでエクスポート" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 데이터를 CSV 또는 PDF로 내보내기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 데이터를 CSV 또는 PDF로 내보내기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Exporte seus dados como CSV ou PDF" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exporte seus dados como CSV ou PDF" } } } }, - "Exporting frames...": { - "comment": "A message displayed while the live activity is exporting frames.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Frames werden exportiert ..." + "Exporting frames..." : { + "comment" : "A message displayed while the live activity is exporting frames.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Frames werden exportiert ..." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Exportando fotogramas..." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportando fotogramas..." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Exportation des images..." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportation des images..." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "フレームをエクスポート中..." + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "フレームをエクスポート中..." } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "프레임 내보내는 중..." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "프레임 내보내는 중..." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Exportando quadros..." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportando quadros..." } } } }, - "Exporting...": { - "comment": "A label indicating that a mood data export is in progress.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wird exportiert..." + "Exporting..." : { + "comment" : "A label indicating that a mood data export is in progress.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wird exportiert..." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Exportando..." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportando..." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Exportation..." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportation..." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "エクスポート中..." + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "エクスポート中..." } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "내보내는 중..." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "내보내는 중..." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Exportando..." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exportando..." } } } }, - "Features": { - "comment": "A heading displayed above the \"Features\" section in the settings view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Funktionen" + "Features" : { + "comment" : "A heading displayed above the \"Features\" section in the settings view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Funktionen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Funciones" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Funciones" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Fonctionnalités" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fonctionnalités" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "機能" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "機能" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기능" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기능" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Recursos" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Recursos" } } } }, - "Feel It All": { - "comment": "The title of a section that highlights the premium feature of the app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Fühle alles" + "Feel It All" : { + "comment" : "The title of a section that highlights the premium feature of the app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fühle alles" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Siéntelo todo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Siéntelo todo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ressentez tout" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ressentez tout" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "すべてを感じて" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "すべてを感じて" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "모든 것을 느껴보세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "모든 것을 느껴보세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Sinta tudo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sinta tudo" } } } }, - "Feel With\nAll Your Heart": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Fühle mit\ndeinem ganzen Herzen" + "Feel With\nAll Your Heart" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fühle mit\ndeinem ganzen Herzen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Siente con\ntodo tu corazón" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Siente con\ntodo tu corazón" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ressentez avec\ntout votre cœur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ressentez avec\ntout votre cœur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "心の底から\n感じよう" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "心の底から\n感じよう" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "온 마음으로\n느끼세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "온 마음으로\n느끼세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Sinta com\ntodo seu coração" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sinta com\ntodo seu coração" } } } }, - "Fill 2 years data + export PNGs": { - "comment": "A description of the feature that generates and exports sharing screenshots.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "2 Jahre Daten füllen + PNGs exportieren" + "Fill 2 years data + export PNGs" : { + "comment" : "A description of the feature that generates and exports sharing screenshots.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "2 Jahre Daten füllen + PNGs exportieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Rellenar 2 años de datos + exportar PNGs" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rellenar 2 años de datos + exportar PNGs" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Remplir 2 ans de données + exporter les PNG" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remplir 2 ans de données + exporter les PNG" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "2年分のデータを入力 + PNGをエクスポート" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "2年分のデータを入力 + PNGをエクスポート" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "2년 데이터 채우기 + PNG 내보내기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "2년 데이터 채우기 + PNG 내보내기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Preencher 2 anos de dados + exportar PNGs" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Preencher 2 anos de dados + exportar PNGs" } } } }, - "Find Your\nInner Calm": { - "comment": "A title describing the main benefit of the premium subscription.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Finde deine\ninnere Ruhe" + "Find Your\nInner Calm" : { + "comment" : "A title describing the main benefit of the premium subscription.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Finde deine\ninnere Ruhe" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Encuentra tu\ncalma interior" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Encuentra tu\ncalma interior" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Trouvez votre\ncalme intérieur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Trouvez votre\ncalme intérieur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "内なる静けさを\n見つけよう" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "内なる静けさを\n見つけよう" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "내면의 평온을\n찾으세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "내면의 평온을\n찾으세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Encontre sua\ncalma interior" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Encontre sua\ncalma interior" } } } }, - "Find Your\nInner Peace": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Finde deinen\ninneren Frieden" + "Find Your\nInner Peace" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Finde deinen\ninneren Frieden" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Encuentra tu\npaz interior" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Encuentra tu\npaz interior" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Trouvez votre\npaix intérieure" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Trouvez votre\npaix intérieure" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "内なる平和を\n見つけよう" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "内なる平和を\n見つけよう" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "내면의 평화를\n찾으세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "내면의 평화를\n찾으세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Encontre sua\npaz interior" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Encontre sua\npaz interior" } } } }, - "Fix Weekday": { - "comment": "A button label that, when tapped, will attempt to correct the user's calendar entries that are set to the wrong weekday.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wochentag korrigieren" + "Fix Weekday" : { + "comment" : "A button label that, when tapped, will attempt to correct the user's calendar entries that are set to the wrong weekday.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wochentag korrigieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Corregir día de la semana" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Corregir día de la semana" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Corriger le jour" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Corriger le jour" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "曜日を修正" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "曜日を修正" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "요일 수정" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "요일 수정" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Corrigir dia da semana" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Corrigir dia da semana" } } } }, - "Font Awesome": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Font Awesome" + "Font Awesome" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Font Awesome" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Font Awesome" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Font Awesome" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Font Awesome" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Font Awesome" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Font Awesome" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Font Awesome" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Font Awesome" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Font Awesome" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Font Awesome" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Font Awesome" } } } }, - "Format": { - "comment": "A label describing the format option in the export view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Format" + "Format" : { + "comment" : "A label describing the format option in the export view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Format" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Formato" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Formato" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Format" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Format" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "形式" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "形式" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "형식" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "형식" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Formato" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Formato" } } } }, - "Generate & Export Sharing": { - "comment": "A button label that allows users to generate and export all sharing screenshots.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Generieren & Teilen exportieren" + "Generate & Export Sharing" : { + "comment" : "A button label that allows users to generate and export all sharing screenshots.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Generieren & Teilen exportieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Generar y exportar para compartir" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Generar y exportar para compartir" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Générer et exporter le partage" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Générer et exporter le partage" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "共有を生成してエクスポート" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "共有を生成してエクスポート" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "공유 생성 및 내보내기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "공유 생성 및 내보내기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Gerar e exportar compartilhamento" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gerar e exportar compartilhamento" + } + } + } + }, + "Generate clinical-quality mood reports to share with your therapist or track your progress over time." : { + "comment" : "A description of the benefits of unlocking the mood report generation feature.", + "isCommentAutoGenerated" : true + }, + "Generate Report" : { + "comment" : "A button label that says \"Generate Report\".", + "isCommentAutoGenerated" : true + }, + "Generating AI summary..." : { + "comment" : "Text displayed in the progress indicator while generating the AI-generated quick summary report.", + "isCommentAutoGenerated" : true + }, + "Generating monthly summaries..." : { + "comment" : "Message displayed in the progress view while generating monthly summaries for the detailed report.", + "isCommentAutoGenerated" : true + }, + "Generating weekly summary %lld of %lld..." : { + "comment" : "Progress message displayed in the UI during detailed report generation. The number in parentheses represents the number of sections that have been completed out of the total number of sections.", + "isCommentAutoGenerated" : true, + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Generating weekly summary %1$lld of %2$lld..." } } } }, - "Get Mood Streak": { - "comment": "Title of an intent that checks the user's current mood logging streak.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Stimmungs-Serie abrufen" + "Generating yearly summaries..." : { + "comment" : "Message displayed in the progress bar during the generation of yearly AI summaries in the detailed report.", + "isCommentAutoGenerated" : true + }, + "Generation Failed" : { + "comment" : "A label displayed when the report generation fails.", + "isCommentAutoGenerated" : true + }, + "Get Mood Streak" : { + "comment" : "Title of an intent that checks the user's current mood logging streak.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stimmungs-Serie abrufen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Obtener racha de estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Obtener racha de estado de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Obtenir la série d'humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Obtenir la série d'humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分の連続記録を取得" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分の連続記録を取得" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 연속 기록 가져오기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 연속 기록 가져오기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Obter sequência de humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Obter sequência de humor" } } } }, - "Get Personal Insights": { - "comment": "A button label that encourages users to subscribe for more personalized insights.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Persönliche Erkenntnisse erhalten" + "Get Personal Insights" : { + "comment" : "A button label that encourages users to subscribe for more personalized insights.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Persönliche Erkenntnisse erhalten" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Obtener información personalizada" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Obtener información personalizada" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Obtenir des analyses personnalisées" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Obtenir des analyses personnalisées" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "パーソナルインサイトを取得" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "パーソナルインサイトを取得" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "개인 맞춤 인사이트 받기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "개인 맞춤 인사이트 받기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Obter insights personalizados" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Obter insights personalizados" } } } }, - "Get the most out of your mood tracking journey": { - "comment": "A description of the benefits of upgrading to the premium version of the app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Hole das Beste aus deiner Stimmungsverfolgung heraus" + "Get the most out of your mood tracking journey" : { + "comment" : "A description of the benefits of upgrading to the premium version of the app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hole das Beste aus deiner Stimmungsverfolgung heraus" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Aprovecha al máximo tu seguimiento de estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aprovecha al máximo tu seguimiento de estado de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Tire le meilleur parti de ton suivi d'humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tire le meilleur parti de ton suivi d'humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分記録をもっと活用しよう" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分記録をもっと活用しよう" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 기록을 최대한 활용하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 기록을 최대한 활용하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Aproveite ao máximo sua jornada de rastreamento de humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aproveite ao máximo sua jornada de rastreamento de humor" } } } }, - "Got it": { - "comment": "A button label that says \"Got it\".", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Verstanden" + "Got it" : { + "comment" : "A button label that says \"Got it\".", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verstanden" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Entendido" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entendido" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Compris" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Compris" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "了解" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "了解" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "알겠습니다" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "알겠습니다" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Entendi" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entendi" } } } }, - "Got it! Logged %@ for today.": { - "comment": "A confirmation dialog and a snippet view that appear when the user successfully logs their mood using Siri. The argument is the name of the mood that was logged.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Verstanden! %@ für heute eingetragen." + "Got it! Logged %@ for today." : { + "comment" : "A confirmation dialog and a snippet view that appear when the user successfully logs their mood using Siri. The argument is the name of the mood that was logged.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verstanden! %@ für heute eingetragen." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡Entendido! Se registró %@ para hoy." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡Entendido! Se registró %@ para hoy." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Compris ! %@ enregistré pour aujourd'hui." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Compris ! %@ enregistré pour aujourd'hui." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "了解!今日の気分を%@として記録しました。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "了解!今日の気分を%@として記録しました。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "알겠습니다! 오늘 %@로 기록했습니다." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "알겠습니다! 오늘 %@로 기록했습니다." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Entendido! Registrado %@ para hoje." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entendido! Registrado %@ para hoje." } } } }, - "Green dot = eligible to show. Tips only show once per session when eligible.": { - "comment": "A footer label explaining that tips are only shown once per session and that the green dot indicates whether a tip is currently eligible to be shown.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Grüner Punkt = kann angezeigt werden. Tipps werden nur einmal pro Sitzung angezeigt." + "Green dot = eligible to show. Tips only show once per session when eligible." : { + "comment" : "A footer label explaining that tips are only shown once per session and that the green dot indicates whether a tip is currently eligible to be shown.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Grüner Punkt = kann angezeigt werden. Tipps werden nur einmal pro Sitzung angezeigt." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Punto verde = elegible para mostrar. Los consejos solo se muestran una vez por sesión." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Punto verde = elegible para mostrar. Los consejos solo se muestran una vez por sesión." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Point vert = éligible à l'affichage. Les conseils ne s'affichent qu'une fois par session." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Point vert = éligible à l'affichage. Les conseils ne s'affichent qu'une fois par session." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "緑のドット = 表示可能。ヒントは対象時、セッションごとに1回のみ表示されます。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "緑のドット = 表示可能。ヒントは対象時、セッションごとに1回のみ表示されます。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "녹색 점 = 표시 가능. 팁은 해당 시 세션당 한 번만 표시됩니다." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "녹색 점 = 표시 가능. 팁은 해당 시 세션당 한 번만 표시됩니다." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Ponto verde = elegível para exibição. Dicas aparecem apenas uma vez por sessão." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ponto verde = elegível para exibição. Dicas aparecem apenas uma vez por sessão." } } } }, - "Haptic Feedback": { - "comment": "A label displayed above the toggle for haptic feedback.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Haptisches Feedback" + "guided_reflection_answered_count %lld %lld" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld von %lld beantwortet" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld of %lld answered" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Respuesta háptica" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld de %lld respondidas" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Retour haptique" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld sur %lld repondu" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "触覚フィードバック" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / %lld 回答済み" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "햅틱 피드백" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / %lld 답변 완료" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Feedback tátil" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld de %lld respondidas" } } } }, - "Has Seen Settings": { - "comment": "A label for whether the user has seen the settings section in the app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Hat Einstellungen gesehen" + "guided_reflection_back" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zuruck" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Back" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Ha visto configuración" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Atras" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "A vu les paramètres" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Retour" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "設定を確認済み" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "戻る" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "설정을 확인함" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "뒤로" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Viu as configurações" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voltar" } } } }, - "Help improve Reflect by sharing anonymous usage data": { - "comment": "A description of the analytics toggle.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Hilf Reflect zu verbessern, indem du anonyme Nutzungsdaten teilst" + "guided_reflection_begin" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Beginnen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Ayuda a mejorar Reflect compartiendo datos de uso anónimos" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Begin" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Aidez à améliorer Reflect en partageant des données d'utilisation anonymes" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comenzar" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "匿名の使用データを共有してReflectの改善に協力" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Commencer" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "익명 사용 데이터를 공유하여 Reflect 개선에 도움을 주세요" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "始める" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Ajude a melhorar o Reflect compartilhando dados de uso anônimos" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "시작" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comecar" } } } }, - "Hide trial banner & grant full access": { - "comment": "A description of the feature that allows users to bypass the trial period and access all features without ads.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Testbanner ausblenden & vollen Zugriff gewähren" + "guided_reflection_discard" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verwerfen" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Discard" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Ocultar banner de prueba y otorgar acceso completo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Descartar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Masquer la bannière d'essai et accorder l'accès complet" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abandonner" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "トライアルバナーを非表示にしてフルアクセスを許可" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "破棄" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "체험판 배너 숨기기 및 전체 액세스 허용" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "버리기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Ocultar banner de teste e conceder acesso total" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Descartar" } } } }, - "How are you feeling?": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wie fühlst du dich?" + "guided_reflection_edit" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bearbeiten" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Cómo te sientes?" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edit" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Comment vous sentez-vous ?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Editar" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今どんな気分?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modifier" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분이 어떠세요?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "編集" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Como você está se sentindo?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "편집" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Editar" } } } }, - "How do you feel?": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wie fühlst du dich?" + "guided_reflection_empty_prompt" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nimm dir einen Moment, um mit gefuhrten Fragen zu reflektieren..." + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Take a moment to reflect with guided questions..." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Cómo te sientes?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tomate un momento para reflexionar con preguntas guiadas..." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Comment vous sentez-vous ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Prends un moment pour reflechir avec des questions guidees..." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今の気分は?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ガイド付き質問で振り返りましょう..." } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분이 어떠세요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "안내 질문으로 잠시 돌아보세요..." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Como você está se sentindo?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reserve um momento para refletir com perguntas guiadas..." } } } }, - "How to add widgets": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "So fügst du Widgets hinzu" + "guided_reflection_negative_q1" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Was belastet dich heute?" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "What's weighing on you today?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Cómo añadir widgets" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Que te pesa hoy?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Comment ajouter des widgets" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Qu'est-ce qui te pese aujourd'hui ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ウィジェットの追加方法" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日、何が心に引っかかっていますか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "위젯 추가 방법" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘 마음을 누르는 것이 있나요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Como adicionar widgets" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "O que esta pesando em voce hoje?" } } } }, - "how_to_add_widget": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Widget hinzufügen" + "guided_reflection_negative_q2" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wenn du andern konntest, wie du dich fuhlst, was wurdest du stattdessen wollen?" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "How to Add Widget" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "If you could change how you're feeling, what would you want instead?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Cómo Agregar Widget" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si pudieras cambiar como te sientes, que querrias en su lugar?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Comment ajouter un widget" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Si tu pouvais changer ce que tu ressens, que voudrais-tu a la place ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ウィジェットの追加方法" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今の気持ちを変えられるとしたら、どんな気持ちになりたいですか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "위젯 추가 방법" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분을 바꿀 수 있다면, 대신 어떻게 느끼고 싶으세요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Como adicionar widget" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Se voce pudesse mudar como esta se sentindo, o que gostaria de sentir?" } } } }, - "iap_warning_view_buy_button": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Jetzt abonnieren" + "guided_reflection_negative_q3" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Warum ist es dir wichtig, dich so zu fuhlen?" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Subscribe Now" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Why is feeling that way important to you?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Suscribirse Ahora" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Por que es importante para ti sentirte asi?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "S'abonner maintenant" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pourquoi est-il important pour toi de te sentir ainsi ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今すぐ登録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "そのように感じることはなぜ大切ですか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "지금 구독" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "그렇게 느끼는 것이 왜 중요한가요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Assinar agora" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Por que sentir-se assim e importante para voce?" } } } }, - "iap_warning_view_title": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Testphase endet in " + "guided_reflection_negative_q4" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Was ist eine kleine Sache, die helfen konnte, etwas zu verandern?" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Trial expires in " + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "What's one small thing that might help shift things?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "La prueba expira en " + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cual es una pequena cosa que podria ayudar a cambiar las cosas?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "L'essai expire dans " + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quelle petite chose pourrait aider a changer les choses ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "トライアル終了まで " + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "少しでも状況を変えるためにできることは何ですか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "체험판 만료까지 " + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "상황을 바꾸는 데 도움이 될 작은 것 한 가지는 무엇인가요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Teste expira em " + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Qual e uma pequena coisa que poderia ajudar a mudar as coisas?" } } } }, - "ifeel": { - "comment": "The name of the app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "ifeel" + "guided_reflection_neutral_q1" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Welche Gefuhle kamen heute bei dir auf?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "ifeel" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "What feelings came up for you today?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "ifeel" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Que sentimientos surgieron hoy para ti?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ifeel" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quels sentiments as-tu ressenti aujourd'hui ?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "ifeel" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日、どんな気持ちが浮かびましたか?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "ifeel" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘 어떤 감정이 떠올랐나요?" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quais sentimentos surgiram para voce hoje?" } } } }, - "Import": { - "comment": "A button label that allows users to import data.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Importieren" + "guided_reflection_neutral_q2" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gibt es ein Gefuhl, das du dir starker gewunscht hattest?" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Is there a feeling you wish had been stronger?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Importar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hay algun sentimiento que desearias que hubiera sido mas fuerte?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Importer" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Y a-t-il un sentiment que tu aurais aime ressentir plus fort ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "インポート" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "もっと強く感じたかった気持ちはありますか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "가져오기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "더 강하게 느꼈으면 하는 감정이 있나요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Importar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ha algum sentimento que voce gostaria que tivesse sido mais forte?" } } } }, - "Insights": { - "comment": "A label displayed above the insights section in the Insights view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Erkenntnisse" + "guided_reflection_neutral_q3" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Warum ist dieses Gefuhl fur dich wichtig?" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Why does that feeling matter to you?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Información" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Por que ese sentimiento es importante para ti?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Analyses" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pourquoi ce sentiment est-il important pour toi ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "インサイト" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "その気持ちはなぜあなたにとって大切ですか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "인사이트" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "그 감정이 왜 중요한가요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Insights" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Por que esse sentimento e importante para voce?" } } } }, - "Join 50,000+ on their journey": { - "comment": "A description of the social proof badge.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Schließe dich 50.000+ auf ihrer Reise an" + "guided_reflection_neutral_q4" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Was konnte dir helfen, diesem Gefuhl naher zu kommen?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Únete a más de 50.000 en su viaje" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "What's one thing that could help you get closer to that?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Rejoignez plus de 50 000 personnes dans leur voyage" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Que cosa podria ayudarte a acercarte a eso?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "50,000人以上と一緒に旅を" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quelle chose pourrait t'aider a t'en rapprocher ?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "50,000명 이상과 함께 여정을" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "それに近づくためにできることは何ですか?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Junte-se a mais de 50.000 em sua jornada" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "그것에 더 가까워지려면 도움이 될 한 가지는 무엇인가요?" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "O que poderia ajudar voce a se aproximar disso?" } } } }, - "JOURNAL": { - "comment": "The title of the journal.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "TAGEBUCH" + "guided_reflection_next" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Weiter" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Next" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "DIARIO" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Siguiente" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "JOURNAL" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suivant" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "日記" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "次へ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "일기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "다음" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "DIÁRIO" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Proximo" } } } }, - "Journal Note": { - "comment": "The title of the view that appears in the navigation bar.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tagebuchnotiz" + "guided_reflection_positive_q1" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Welche Gefuhle sind dir heute besonders aufgefallen?" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "What feelings stood out to you today?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Nota del diario" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Que sentimientos te llamaron la atencion hoy?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Note de journal" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quels sentiments t'ont marque aujourd'hui ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "日記メモ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日、どんな気持ちが印象に残りましたか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "일기 메모" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘 어떤 감정이 눈에 띄었나요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Nota do diário" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quais sentimentos se destacaram para voce hoje?" } } } }, - "Last 5 Days": { - "comment": "A label displayed above the grid of days in the medium widget.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Letzte 5 Tage" + "guided_reflection_positive_q2" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Was hat dir deiner Meinung nach geholfen, dich so zu fuhlen?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Últimos 5 días" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "What do you think helped you feel this way?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "5 derniers jours" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Que crees que te ayudo a sentirte asi?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "過去5日間" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Qu'est-ce qui t'a aide a te sentir ainsi ?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "최근 5일" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "そのように感じたのは何がきっかけだと思いますか?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Últimos 5 dias" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "그렇게 느끼는 데 도움이 된 것은 무엇이라고 생각하세요?" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "O que voce acha que ajudou voce a se sentir assim?" } } } }, - "Last 10 Days": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Letzte 10 Tage" + "guided_reflection_positive_q3" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wie kannst du mehr davon in deinen Alltag bringen?" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "How can you bring more of this into your days?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Últimos 10 días" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Como puedes traer mas de esto a tus dias?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "10 derniers jours" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comment peux-tu apporter plus de cela dans tes journees ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "過去10日間" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "このような気持ちをもっと日々に取り入れるには?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "최근 10일" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이런 감정을 더 많이 느끼려면 어떻게 해야 할까요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Últimos 10 dias" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Como voce pode trazer mais disso para seus dias?" } } } }, - "Legal": { - "comment": "A heading displayed in the Settings view that links to legal information.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Rechtliches" + "guided_reflection_save" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflexion speichern" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Legal" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Save Reflection" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Mentions légales" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Guardar reflexion" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "法的事項" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrer la reflexion" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "법적 정보" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "振り返りを保存" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Jurídico" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "성찰 저장" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Salvar reflexao" } } } }, - "Level up your self-awareness.\nPremium = MAX POWER!": { - "comment": "A tagline that describes the benefits of the premium subscription.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Steigere dein Selbstbewusstsein.\nPremium = MAX POWER!" + "guided_reflection_title" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflektiere deinen Tag" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Sube de nivel tu autoconciencia.\n¡Premium = MÁXIMO PODER!" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflect on Your Day" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Améliorez votre conscience de soi.\nPremium = PUISSANCE MAX !" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflexiona sobre tu dia" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "自己認識をレベルアップ。\nプレミアム = 最大パワー!" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflechis a ta journee" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "자기 인식을 레벨업하세요.\n프리미엄 = 최대 파워!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "1日を振り返る" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Aumente sua autoconsciência.\nPremium = PODER MÁXIMO!" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "하루를 돌아보세요" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflita sobre seu dia" } } } }, - "Light & dark mode PNGs": { - "comment": "A description of what the \"Export Widget Screenshots\" button does.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Helle & dunkle PNGs" + "guided_reflection_unsaved_message" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Du hast ungespeicherte Reflexionsantworten. Mochtest du sie wirklich verwerfen?" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "You have unsaved reflection answers. Are you sure you want to discard them?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "PNGs modo claro y oscuro" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tienes respuestas de reflexion sin guardar. Estas seguro de que quieres descartarlas?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "PNG mode clair et sombre" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tu as des reponses de reflexion non enregistrees. Es-tu sur de vouloir les abandonner ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ライト&ダークモードPNG" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "未保存の振り返りの回答があります。破棄しますか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "라이트 & 다크 모드 PNG" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "저장되지 않은 성찰 답변이 있습니다. 정말 버리시겠습니까?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "PNGs modo claro e escuro" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voce tem respostas de reflexao nao salvas. Tem certeza de que deseja descarta-las?" } } } }, - "Like ink on paper, each mood\nleaves its mark. Premium reveals the pattern.": { - "comment": "A description of how the premium version reveals patterns in user moods.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wie Tinte auf Papier hinterlässt\njede Stimmung ihre Spur. Premium enthüllt das Muster." + "guided_reflection_unsaved_title" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ungespeicherte Anderungen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Como tinta en papel, cada estado de ánimo\ndeja su marca. Premium revela el patrón." + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Unsaved Changes" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Comme l'encre sur le papier, chaque humeur\nlaisse sa trace. Premium révèle le motif." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cambios sin guardar" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "紙の上のインクのように、すべての気分が\n痕跡を残す。プレミアムでパターンを見よう。" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modifications non enregistrees" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "종이 위의 잉크처럼, 모든 기분이\n흔적을 남깁니다. 프리미엄으로 패턴을 확인하세요." + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "未保存の変更" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Como tinta no papel, cada humor\ndeixa sua marca. Premium revela o padrão." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "저장되지 않은 변경사항" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alteracoes nao salvas" } } } }, - "Live Activity Preview": { - "comment": "The title of the view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Live-Aktivität Vorschau" + "H: %@" : { + "comment" : "A label displaying the high temperature. The argument is the high temperature as a string.", + "isCommentAutoGenerated" : true + }, + "Haptic Feedback" : { + "comment" : "A label displayed above the toggle for haptic feedback.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Haptisches Feedback" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Vista previa de actividad en vivo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Respuesta háptica" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Aperçu de l'activité en direct" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Retour haptique" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ライブアクティビティのプレビュー" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "触覚フィードバック" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "라이브 활동 미리보기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "햅틱 피드백" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Pré-visualização da atividade ao vivo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Feedback tátil" } } } }, - "Log": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Erfassen" + "Has Seen Settings" : { + "comment" : "A label for whether the user has seen the settings section in the app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hat Einstellungen gesehen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Registrar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ha visto configuración" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistrer" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "A vu les paramètres" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "設定を確認済み" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기록" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "설정을 확인함" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Registrar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Viu as configurações" } } } }, - "Log mood": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Stimmung erfassen" + "Help improve Reflect by sharing anonymous usage data" : { + "comment" : "A description of the analytics toggle.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hilf Reflect zu verbessern, indem du anonyme Nutzungsdaten teilst" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Registrar estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ayuda a mejorar Reflect compartiendo datos de uso anónimos" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistrer l'humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aidez à améliorer Reflect en partageant des données d'utilisation anonymes" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分を記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "匿名の使用データを共有してReflectの改善に協力" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 기록" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "익명 사용 데이터를 공유하여 Reflect 개선에 도움을 주세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Registrar humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajude a melhorar o Reflect compartilhando dados de uso anônimos" } } } }, - "Log Mood": { - "comment": "A button that opens Reflect to log a mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Stimmung erfassen" + "Hide trial banner & grant full access" : { + "comment" : "A description of the feature that allows users to bypass the trial period and access all features without ads.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Testbanner ausblenden & vollen Zugriff gewähren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Registrar estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ocultar banner de prueba y otorgar acceso completo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistrer l'humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Masquer la bannière d'essai et accorder l'accès complet" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分を記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "トライアルバナーを非表示にしてフルアクセスを許可" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 기록" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "체험판 배너 숨기기 및 전체 액세스 허용" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Registrar humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ocultar banner de teste e conceder acesso total" } } } }, - "Log mood as ${moodEntity}": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Stimmung als ${moodEntity} erfassen" + "How are you feeling?" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wie fühlst du dich?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Registrar estado de ánimo como ${moodEntity}" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Cómo te sientes?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistrer l'humeur comme ${moodEntity}" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comment vous sentez-vous ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "${moodEntity}として気分を記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今どんな気分?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "${moodEntity}로 기분 기록" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분이 어떠세요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Registrar humor como ${moodEntity}" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Como você está se sentindo?" } } } }, - "Log now": { - "comment": "A call-to-action text displayed in the expanded view of the MoodStreakLiveActivity widget, encouraging the user to log their mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Jetzt erfassen" + "How do you feel?" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wie fühlst du dich?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Registrar ahora" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Cómo te sientes?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistrer maintenant" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comment vous sentez-vous ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今すぐ記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今の気分は?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "지금 기록" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분이 어떠세요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Registrar agora" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Como você está se sentindo?" } } } }, - "Log this mood": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Diese Stimmung eintragen" + "How to add widgets" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "So fügst du Widgets hinzu" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Registrar este ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cómo añadir widgets" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistrer cette humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comment ajouter des widgets" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "この気分を記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ウィジェットの追加方法" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "이 기분 기록" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "위젯 추가 방법" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Registrar este humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Como adicionar widgets" } } } }, - "Log your mood": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Erfasse deine Stimmung" + "how_to_add_widget" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Widget hinzufügen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Registra tu estado de ánimo" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "How to Add Widget" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistrez votre humeur" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cómo Agregar Widget" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分を記録しよう" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comment ajouter un widget" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분을 기록하세요" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ウィジェットの追加方法" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Registre seu humor" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "위젯 추가 방법" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Como adicionar widget" } } } }, - "Logged!": { - "comment": "A message displayed when a mood is successfully logged.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Erfasst!" + "iap_warning_view_buy_button" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jetzt abonnieren" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Subscribe Now" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡Registrado!" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suscribirse Ahora" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistré !" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "S'abonner maintenant" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "記録しました!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今すぐ登録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기록됨!" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "지금 구독" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Registrado!" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Assinar agora" } } } }, - "Longest Streak": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Längste Serie" + "iap_warning_view_title" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Testphase endet in " + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Trial expires in " } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Racha más larga" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "La prueba expira en " } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Plus longue série" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'essai expire dans " } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "最長連続記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "トライアル終了まで " } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "최장 연속 기록" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "체험판 만료까지 " } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Maior sequência" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Teste expira em " } } } }, - "LONGEST STREAK": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "LÄNGSTE SERIE" + "ifeel" : { + "comment" : "The name of the app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "ifeel" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "RACHA MÁS LARGA" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "ifeel" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "PLUS LONGUE SÉRIE" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "ifeel" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "最長連続記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ifeel" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "최장 연속 기록" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "ifeel" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "MAIOR SEQUÊNCIA" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "ifeel" } } } }, - "Make Tracking\nFun Again!": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Mache das Tracking\nwieder spaßig!" + "Import" : { + "comment" : "A button label that allows users to import data.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Importieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡Haz que el seguimiento\nsea divertido otra vez!" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Importar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Rendez le suivi\namusant à nouveau !" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Importer" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "トラッキングを\nまた楽しく!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "インポート" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "추적을\n다시 재미있게!" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "가져오기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Torne o rastreamento\ndivertido novamente!" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Importar" } } } }, - "Manage": { - "comment": "A button that allows the user to manage their subscription.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Verwalten" + "Insights" : { + "comment" : "A label displayed above the insights section in the Insights view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erkenntnisse" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Gestionar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Información" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Gérer" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Analyses" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "管理" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "インサイト" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "관리" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "인사이트" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Gerenciar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Insights" } } } }, - "Maybe Later": { - "comment": "A label for a button that allows a user to skip the onboarding process.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Vielleicht später" + "Join 50,000+ on their journey" : { + "comment" : "A description of the social proof badge.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Schließe dich 50.000+ auf ihrer Reise an" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Quizás más tarde" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Únete a más de 50.000 en su viaje" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Peut-être plus tard" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rejoignez plus de 50 000 personnes dans leur voyage" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "また後で" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "50,000人以上と一緒に旅を" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "나중에" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "50,000명 이상과 함께 여정을" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Talvez depois" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Junte-se a mais de 50.000 em sua jornada" } } } }, - "Month & Year views, Insights & more": { - "comment": "A description of the premium features available in the subscription.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Monats- & Jahresansichten, Erkenntnisse & mehr" + "JOURNAL" : { + "comment" : "The title of the journal.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "TAGEBUCH" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Vistas de mes y año, información y más" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "DIARIO" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Vues mois et année, analyses et plus" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "JOURNAL" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "月・年表示、インサイトなど" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "日記" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "월별 및 연간 보기, 인사이트 등" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "일기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Visualizações de mês e ano, insights e mais" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "DIÁRIO" } } } }, - "Monthly Mood Wrap": { - "comment": "A title describing the content of the monthly mood wrap section.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Monatlicher Stimmungsrückblick" + "Journal Note" : { + "comment" : "The title of the view that appears in the navigation bar.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tagebuchnotiz" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Resumen mensual del estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nota del diario" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Bilan mensuel d'humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Note de journal" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "月間気分まとめ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "日記メモ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "월간 기분 요약" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "일기 메모" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Resumo mensal de humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nota do diário" } } } }, - "Mood": { - "comment": "Title of the parameter in the app intent for mood voting.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Stimmung" + "L: %@" : { + "comment" : "A label displaying the low temperature. The text inside the label is a placeholder that will be replaced with the actual low temperature value.", + "isCommentAutoGenerated" : true + }, + "Last 5 Days" : { + "comment" : "A label displayed above the grid of days in the medium widget.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Letzte 5 Tage" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Últimos 5 días" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "5 derniers jours" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "過去5日間" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "최근 5일" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Últimos 5 dias" } } } }, - "Mood Graphic": { - "comment": "Name of the widget configuration displayed in the Widget Chooser.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Stimmungsgrafik" + "Last 10 Days" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Letzte 10 Tage" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Gráfico de estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Últimos 10 días" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Graphique d'humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "10 derniers jours" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分グラフィック" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "過去10日間" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 그래픽" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "최근 10일" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Gráfico de humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Últimos 10 dias" } } } }, - "Mood Log Count": { - "comment": "The title of a label displaying the count of mood logs.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Anzahl Stimmungseinträge" + "Legal" : { + "comment" : "A heading displayed in the Settings view that links to legal information.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rechtliches" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Número de registros" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Legal" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Nombre d'entrées" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mentions légales" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分の記録数" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "法的事項" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 기록 수" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "법적 정보" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Contagem de registros" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jurídico" } } } }, - "Mood Logged": { - "comment": "A title for the view that appears when a user logs their mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Stimmung erfasst" + "Level up your self-awareness.\nPremium = MAX POWER!" : { + "comment" : "A tagline that describes the benefits of the premium subscription.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Steigere dein Selbstbewusstsein.\nPremium = MAX POWER!" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Estado de ánimo registrado" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sube de nivel tu autoconciencia.\n¡Premium = MÁXIMO PODER!" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Humeur enregistrée" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Améliorez votre conscience de soi.\nPremium = PUISSANCE MAX !" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分を記録しました" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "自己認識をレベルアップ。\nプレミアム = 最大パワー!" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 기록됨" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "자기 인식을 레벨업하세요.\n프리미엄 = 최대 파워!" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Humor registrado" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aumente sua autoconsciência.\nPremium = PODER MÁXIMO!" } } } }, - "Mood logged: %@": { - "comment": "A label describing the mood that was logged for today. The argument is the mood that was logged.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Stimmung erfasst: %@" + "Light & dark mode PNGs" : { + "comment" : "A description of what the \"Export Widget Screenshots\" button does.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Helle & dunkle PNGs" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Estado de ánimo registrado: %@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "PNGs modo claro y oscuro" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Humeur enregistrée : %@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "PNG mode clair et sombre" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分を記録: %@" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ライト&ダークモードPNG" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 기록됨: %@" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "라이트 & 다크 모드 PNG" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Humor registrado: %@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "PNGs modo claro e escuro" } } } }, - "Mood selection": { - "comment": "A heading for the mood selection section.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Stimmungsauswahl" + "Like ink on paper, each mood\nleaves its mark. Premium reveals the pattern." : { + "comment" : "A description of how the premium version reveals patterns in user moods.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wie Tinte auf Papier hinterlässt\njede Stimmung ihre Spur. Premium enthüllt das Muster." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Selección de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Como tinta en papel, cada estado de ánimo\ndeja su marca. Premium revela el patrón." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Sélection d'humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comme l'encre sur le papier, chaque humeur\nlaisse sa trace. Premium révèle le motif." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分の選択" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "紙の上のインクのように、すべての気分が\n痕跡を残す。プレミアムでパターンを見よう。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 선택" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "종이 위의 잉크처럼, 모든 기분이\n흔적을 남깁니다. 프리미엄으로 패턴을 확인하세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Seleção de humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Como tinta no papel, cada humor\ndeixa sua marca. Premium revela o padrão." } } } }, - "Mood Streak": { - "comment": "Title of an app shortcut that shows the user their mood streak.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Stimmungs-Serie" + "Live Activity Preview" : { + "comment" : "The title of the view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Live-Aktivität Vorschau" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Racha de estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vista previa de actividad en vivo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Série d'humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aperçu de l'activité en direct" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分連続記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ライブアクティビティのプレビュー" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 연속 기록" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "라이브 활동 미리보기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Sequência de humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pré-visualização da atividade ao vivo" } } } }, - "MOOD UNLOCKED! 🎮": { - "comment": "A catchy title for the premium subscription content.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "STIMMUNG FREIGESCHALTET! 🎮" + "Log" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erfassen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡ÁNIMO DESBLOQUEADO! 🎮" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registrar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "HUMEUR DÉBLOQUÉE ! 🎮" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrer" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分がアンロック! 🎮" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "記録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 잠금 해제! 🎮" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기록" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "HUMOR DESBLOQUEADO! 🎮" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registrar" } } } }, - "Mood Vote": { - "comment": "The display name of the widget configuration.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Mood Vote" + "Log mood" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stimmung erfassen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Mood Vote" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registrar estado de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Mood Vote" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrer l'humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Mood Vote" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分を記録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Mood Vote" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 기록" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Mood Vote" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registrar humor" } } } }, - "mood_value_average": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Durchschnitt" + "Log Mood" : { + "comment" : "A button that opens Reflect to log a mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stimmung erfassen" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Average" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registrar estado de ánimo" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Normal" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrer l'humeur" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Moyen" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分を記録" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "普通" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 기록" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "보통" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registrar humor" + } + } + } + }, + "Log mood as ${moodEntity}" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stimmung als ${moodEntity} erfassen" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Médio" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registrar estado de ánimo como ${moodEntity}" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrer l'humeur comme ${moodEntity}" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "${moodEntity}として気分を記録" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "${moodEntity}로 기분 기록" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registrar humor como ${moodEntity}" } } } }, - "mood_value_bad": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Schlecht" + "Log now" : { + "comment" : "A call-to-action text displayed in the expanded view of the MoodStreakLiveActivity widget, encouraging the user to log their mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jetzt erfassen" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registrar ahora" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrer maintenant" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今すぐ記録" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "지금 기록" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Bad" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registrar agora" + } + } + } + }, + "Log this mood" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Diese Stimmung eintragen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Mal" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registrar este ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Mauvais" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrer cette humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "悪い" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "この気分を記録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "나쁨" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 기분 기록" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Ruim" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registrar este humor" } } } }, - "mood_value_good": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Gut" + "Log your mood" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erfasse deine Stimmung" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Good" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registra tu estado de ánimo" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Bien" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrez votre humeur" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Bien" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分を記録しよう" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "良い" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분을 기록하세요" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "좋음" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registre seu humor" + } + } + } + }, + "Logged!" : { + "comment" : "A message displayed when a mood is successfully logged.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erfasst!" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Bom" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡Registrado!" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistré !" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "記録しました!" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기록됨!" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registrado!" } } } }, - "mood_value_great": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Super" + "Longest Streak" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Längste Serie" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Great" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Racha más larga" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Excelente" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Plus longue série" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Excellent" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "最長連続記録" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "最高" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "최장 연속 기록" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Maior sequência" + } + } + } + }, + "LONGEST STREAK" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "LÄNGSTE SERIE" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "최고" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "RACHA MÁS LARGA" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Ótimo" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "PLUS LONGUE SÉRIE" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "最長連続記録" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "최장 연속 기록" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "MAIOR SEQUÊNCIA" } } } }, - "mood_value_horrible": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Schrecklich" + "Make Tracking\nFun Again!" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mache das Tracking\nwieder spaßig!" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Horrible" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡Haz que el seguimiento\nsea divertido otra vez!" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Horrible" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rendez le suivi\namusant à nouveau !" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Horrible" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "トラッキングを\nまた楽しく!" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "最悪" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "추적을\n다시 재미있게!" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Torne o rastreamento\ndivertido novamente!" + } + } + } + }, + "Manage" : { + "comment" : "A button that allows the user to manage their subscription.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verwalten" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "최악" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gestionar" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Horrível" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gérer" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "管理" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "관리" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gerenciar" } } } }, - "mood_value_missing": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Fehlend" + "Maybe Later" : { + "comment" : "A label for a button that allows a user to skip the onboarding process.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vielleicht später" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quizás más tarde" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Peut-être plus tard" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "また後で" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Missing" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "나중에" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Faltante" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Talvez depois" + } + } + } + }, + "Month & Year views, Insights & more" : { + "comment" : "A description of the premium features available in the subscription.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Monats- & Jahresansichten, Erkenntnisse & mehr" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vistas de mes y año, información y más" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Manquant" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vues mois et année, analyses et plus" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "未記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "月・年表示、インサイトなど" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "없음" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "월별 및 연간 보기, 인사이트 등" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Faltando" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Visualizações de mês e ano, insights e mais" } } } }, - "mood_value_missing_tap_to_add": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Fehlend - Tippen zum Hinzufügen" + "Monthly Mood Wrap" : { + "comment" : "A title describing the content of the monthly mood wrap section.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Monatlicher Stimmungsrückblick" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Resumen mensual del estado de ánimo" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bilan mensuel d'humeur" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "月間気分まとめ" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Missing - Tap to add" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "월간 기분 요약" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Faltante - Toca para agregar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Resumo mensal de humor" + } + } + } + }, + "Mood" : { + "comment" : "Title of the parameter in the app intent for mood voting.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stimmung" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Manquant - Appuyez pour ajouter" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Estado de ánimo" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "未記録 - タップして追加" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Humeur" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "없음 - 탭하여 추가" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Faltando - Toque para adicionar" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Humor" } } } }, - "nice": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Nett" + "Mood Graphic" : { + "comment" : "Name of the widget configuration displayed in the Widget Chooser.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stimmungsgrafik" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Nice" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gráfico de estado de ánimo" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Amable" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Graphique d'humeur" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Gentil" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分グラフィック" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "やさしい" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 그래픽" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "친절한" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gráfico de humor" + } + } + } + }, + "Mood Log Count" : { + "comment" : "The title of a label displaying the count of mood logs.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Anzahl Stimmungseinträge" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Gentil" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Número de registros" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nombre d'entrées" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分の記録数" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 기록 수" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contagem de registros" } } } }, - "No designs available": { - "comment": "A message displayed when there are no sharing design variations available.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Keine Designs verfügbar" + "Mood Logged" : { + "comment" : "A title for the view that appears when a user logs their mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stimmung erfasst" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "No hay diseños disponibles" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Estado de ánimo registrado" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Aucun design disponible" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Humeur enregistrée" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "デザインがありません" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分を記録しました" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사용 가능한 디자인 없음" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 기록됨" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Nenhum design disponível" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Humor registrado" } } } }, - "No entry": { - "comment": "A label indicating that there is no entry for a particular day.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Kein Eintrag" + "Mood logged: %@" : { + "comment" : "A label describing the mood that was logged for today. The argument is the mood that was logged.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stimmung erfasst: %@" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Sin entrada" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Estado de ánimo registrado: %@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Aucune entrée" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Humeur enregistrée : %@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "記録なし" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分を記録: %@" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "항목 없음" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 기록됨: %@" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Sem entrada" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Humor registrado: %@" } } } }, - "No mood recorded": { - "comment": "A placeholder text displayed when no mood is recorded for an entry.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Keine Stimmung erfasst" + "Mood selection" : { + "comment" : "A heading for the mood selection section.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stimmungsauswahl" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Sin estado de ánimo registrado" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Selección de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Aucune humeur enregistrée" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sélection d'humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分の記録なし" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分の選択" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기록된 기분 없음" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 선택" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Nenhum humor registrado" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Seleção de humor" } } } }, - "NO_DATA": { - "comment": "A placeholder text indicating that there is no data available for a specific entry.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "KEINE_DATEN" + "Mood Streak" : { + "comment" : "Title of an app shortcut that shows the user their mood streak.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stimmungs-Serie" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "SIN_DATOS" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Racha de estado de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "AUCUNE_DONNÉE" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Série d'humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "データなし" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分連続記録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "데이터_없음" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 연속 기록" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "SEM_DADOS" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sequência de humor" } } } }, - "Not Available": { - "comment": "A label indicating that Apple Health is not available on the user's device.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Nicht verfügbar" + "MOOD UNLOCKED! 🎮" : { + "comment" : "A catchy title for the premium subscription content.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "STIMMUNG FREIGESCHALTET! 🎮" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "No disponible" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡ÁNIMO DESBLOQUEADO! 🎮" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Non disponible" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "HUMEUR DÉBLOQUÉE ! 🎮" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "利用不可" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分がアンロック! 🎮" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사용 불가" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 잠금 해제! 🎮" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Não disponível" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "HUMOR DESBLOQUEADO! 🎮" } } } }, - "nothing written...": { - "comment": "A placeholder text that appears when an entry is missing text.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "nichts geschrieben..." + "Mood Vote" : { + "comment" : "The display name of the widget configuration.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mood Vote" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "nada escrito..." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mood Vote" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "rien d'écrit..." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mood Vote" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "まだ何も書いていません..." + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mood Vote" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "아직 작성된 내용이 없습니다..." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mood Vote" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "nada escrito..." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mood Vote" } } } }, - "of feeling": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Gefühl" + "mood_value_average" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Durchschnitt" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Average" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "de sentirse" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Normal" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "de se sentir" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Moyen" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "の気分" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "普通" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "보통" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "de sentir" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Médio" } } } }, - "OK": { - "comment": "The text for an OK button.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "OK" + "mood_value_bad" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Schlecht" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bad" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "OK" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mal" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "OK" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mauvais" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "OK" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "悪い" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "확인" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "나쁨" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "OK" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ruim" } } } }, - "onboarding_day_options_today": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Aktueller Tag" + "mood_value_good" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gut" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Current Day" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Good" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Día Actual" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bien" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Jour actuel" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bien" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "当日" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "良い" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "좋음" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Dia atual" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bom" } } } }, - "onboarding_day_options_yesterday": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Vorheriger Tag" + "mood_value_great" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Super" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Previous Day" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Great" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Día Anterior" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Excelente" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Jour précédent" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Excellent" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "前日" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "最高" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "어제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "최고" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Dia anterior" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ótimo" } } } }, - "onboarding_title_customize_one_section_one_title": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Welches App-Symbol passt zu dir?" + "mood_value_horrible" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Schrecklich" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Which app icon are you?" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Horrible" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Qué ícono eres tú?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Horrible" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Quelle icône vous correspond ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Horrible" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "どのアプリアイコンにしますか?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "最悪" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "어떤 앱 아이콘이 마음에 드세요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "최악" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Qual ícone combina com você?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Horrível" } } } }, - "onboarding_title_customize_one_title": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Lege deine Einstellungen fest." + "mood_value_missing" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fehlend" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Set your preferences." + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Missing" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Configura tus preferencias." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Faltante" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Définissez vos préférences." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Manquant" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "設定をカスタマイズ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "未記録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "설정을 지정하세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "없음" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Defina suas preferências." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Faltando" } } } }, - "onboarding_title_customize_two_section_one_title": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Welches Icon-Set möchtest du?" + "mood_value_missing_tap_to_add" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fehlend - Tippen zum Hinzufügen" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "What icon set would you like?" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Missing - Tap to add" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Qué conjunto de íconos te gustaría?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Faltante - Toca para agregar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Quel jeu d'icônes souhaitez-vous ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Manquant - Appuyez pour ajouter" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "どのアイコンセットにしますか?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "未記録 - タップして追加" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "어떤 아이콘 세트를 원하세요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "없음 - 탭하여 추가" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Qual conjunto de ícones você quer?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Faltando - Toque para adicionar" } } } }, - "onboarding_title_customize_two_title": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wähle deinen Stil." + "Next month" : { + "comment" : "A button label that says \"Next month\".", + "isCommentAutoGenerated" : true + }, + "nice" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nett" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Pick your style." + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nice" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Elige tu estilo." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Amable" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Choisissez votre style." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gentil" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "スタイルを選択" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "やさしい" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "스타일을 선택하세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "친절한" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Escolha seu estilo." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gentil" } } } }, - "onboarding_title_title": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Was sollen deine Benachrichtigungen sagen?" + "No designs available" : { + "comment" : "A message displayed when there are no sharing design variations available.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Keine Designs verfügbar" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "What should your notifications say?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "No hay diseños disponibles" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Qué deben decir tus notificaciones?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucun design disponible" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Que doivent dire vos notifications ?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "デザインがありません" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "通知にはなんと表示しますか?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사용 가능한 디자인 없음" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "알림에 무엇을 표시할까요?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nenhum design disponível" + } + } + } + }, + "No entry" : { + "comment" : "A label indicating that there is no entry for a particular day.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kein Eintrag" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sin entrada" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucune entrée" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "O que suas notificações devem dizer?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "記録なし" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "항목 없음" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sem entrada" } } } }, - "onboarding_title_title_option_1": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Hallo!" + "No mood recorded" : { + "comment" : "A placeholder text displayed when no mood is recorded for an entry.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Keine Stimmung erfasst" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sin estado de ánimo registrado" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Hi there!" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucune humeur enregistrée" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡Hola!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分の記録なし" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Salut !" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기록된 기분 없음" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "こんにちは!" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nenhum humor registrado" + } + } + } + }, + "NO_DATA" : { + "comment" : "A placeholder text indicating that there is no data available for a specific entry.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "KEINE_DATEN" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "SIN_DATOS" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "안녕하세요!" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "AUCUNE_DONNÉE" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Olá!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "データなし" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "데이터_없음" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "SEM_DADOS" } } } }, - "onboarding_title_title_option_2": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Zeit einzuchecken!" + "Not Available" : { + "comment" : "A label indicating that Apple Health is not available on the user's device.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nicht verfügbar" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Time to check in!" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "No disponible" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡Hora de registrarte!" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Non disponible" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "C'est l'heure de faire le point !" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "利用不可" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "チェックインの時間です!" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사용 불가" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "체크인할 시간이에요!" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Não disponível" + } + } + } + }, + "nothing written..." : { + "comment" : "A placeholder text that appears when an entry is missing text.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "nichts geschrieben..." + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "nada escrito..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "rien d'écrit..." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "まだ何も書いていません..." + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "아직 작성된 내용이 없습니다..." + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "nada escrito..." + } + } + } + }, + "of feeling" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gefühl" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "de sentirse" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "de se sentir" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "の気分" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "de sentir" + } + } + } + }, + "OK" : { + "comment" : "The text for an OK button.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "확인" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "OK" + } + } + } + }, + "onboarding_day_options_today" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aktueller Tag" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Current Day" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Día Actual" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jour actuel" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "当日" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dia atual" + } + } + } + }, + "onboarding_day_options_yesterday" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vorheriger Tag" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Previous Day" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Día Anterior" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jour précédent" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "前日" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "어제" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dia anterior" + } + } + } + }, + "onboarding_title_customize_one_section_one_title" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Welches App-Symbol passt zu dir?" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Which app icon are you?" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Qué ícono eres tú?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quelle icône vous correspond ?" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "どのアプリアイコンにしますか?" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "어떤 앱 아이콘이 마음에 드세요?" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Qual ícone combina com você?" + } + } + } + }, + "onboarding_title_customize_one_title" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Lege deine Einstellungen fest." + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Set your preferences." + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Configura tus preferencias." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Définissez vos préférences." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Hora de fazer check-in!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "設定をカスタマイズ" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "설정을 지정하세요." + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Defina suas preferências." + } + } + } + }, + "onboarding_title_customize_two_section_one_title" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Welches Icon-Set möchtest du?" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "What icon set would you like?" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Qué conjunto de íconos te gustaría?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quel jeu d'icônes souhaitez-vous ?" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "どのアイコンセットにしますか?" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "어떤 아이콘 세트를 원하세요?" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Qual conjunto de ícones você quer?" + } + } + } + }, + "onboarding_title_customize_two_title" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wähle deinen Stil." + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pick your style." + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Elige tu estilo." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisissez votre style." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "スタイルを選択" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "스타일을 선택하세요." + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Escolha seu estilo." + } + } + } + }, + "onboarding_title_title" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Was sollen deine Benachrichtigungen sagen?" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "What should your notifications say?" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Qué deben decir tus notificaciones?" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Que doivent dire vos notifications ?" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "通知にはなんと表示しますか?" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "알림에 무엇을 표시할까요?" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "O que suas notificações devem dizer?" } } } }, - "onboarding_title_title_option_3": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wie fühlst du dich?" + "onboarding_title_title_option_1" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hallo!" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "How are you feeling?" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hi there!" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Cómo te sientes?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡Hola!" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Comment te sens-tu ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Salut !" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分はどうですか?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "こんにちは!" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분이 어때요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "안녕하세요!" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Como você está se sentindo?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Olá!" } } } }, - "onboarding_title_type_your_own": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Oder schreibe deine eigene:" + "onboarding_title_title_option_2" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zeit einzuchecken!" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Or type your own:" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Time to check in!" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "O escribe la tuya:" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡Hora de registrarte!" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ou écris la tienne :" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "C'est l'heure de faire le point !" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "または自分で入力:" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "チェックインの時間です!" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "또는 직접 입력:" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "체크인할 시간이에요!" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Ou digite a sua:" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hora de fazer check-in!" } } } }, - "onboarding_wrap_up_1": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Jeden Tag um" + "onboarding_title_title_option_3" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wie fühlst du dich?" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Every day at" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "How are you feeling?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Todos los días a las" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Cómo te sientes?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Chaque jour à" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comment te sens-tu ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "毎日" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分はどうですか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "매일" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분이 어때요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Todo dia às" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Como você está se sentindo?" } } } }, - "onboarding_wrap_up_3": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "wirst du benachrichtigt, den Tag zu bewerten" + "onboarding_title_type_your_own" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oder schreibe deine eigene:" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "you'll be notified it's time to rate the" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Or type your own:" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "serás notificado de que es hora de calificar el" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "O escribe la tuya:" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "vous serez notifié qu'il est temps d'évaluer" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ou écris la tienne :" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "に通知が届きます" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "または自分で入力:" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "에 평가 시간 알림을 받게 됩니다" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "또는 직접 입력:" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "você será notificado que é hora de avaliar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ou digite a sua:" } } } }, - "onboarding_wrap_up_complete_button": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Fertig" + "onboarding_wrap_up_1" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jeden Tag um" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Done" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Every day at" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Listo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Todos los días a las" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Terminé" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chaque jour à" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "完了" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "毎日" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "완료" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "매일" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Pronto" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Todo dia às" } } } }, - "Open app to subscribe": { - "comment": "A hint that appears when a user taps on a mood button in the voting view, explaining that they need to open the app to subscribe.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "App öffnen zum Abonnieren" + "onboarding_wrap_up_3" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "wirst du benachrichtigt, den Tag zu bewerten" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Abre la app para suscribirte" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "you'll be notified it's time to rate the" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ouvrez l'app pour vous abonner" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "serás notificado de que es hora de calificar el" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "アプリを開いて登録" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "vous serez notifié qu'il est temps d'évaluer" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "앱을 열어 구독" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "に通知が届きます" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Abra o app para assinar" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "에 평가 시간 알림을 받게 됩니다" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "você será notificado que é hora de avaliar" } } } }, - "Open Reflect": { - "comment": "Title of the app intent to open the Reflect app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Reflect öffnen" + "onboarding_wrap_up_complete_button" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fertig" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Done" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Abrir Reflect" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Listo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ouvrir Reflect" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Terminé" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Reflectを開く" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "完了" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Reflect 열기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "완료" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Abrir Reflect" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pronto" } } } }, - "Open Reflect to log your mood": { - "comment": "Description of the \"Log Mood\" control widget.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Öffne Reflect, um deine Stimmung zu erfassen" + "Open app to subscribe" : { + "comment" : "A hint that appears when a user taps on a mood button in the voting view, explaining that they need to open the app to subscribe.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "App öffnen zum Abonnieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Abre Reflect para registrar tu estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abre la app para suscribirte" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ouvre Reflect pour enregistrer ton humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ouvrez l'app pour vous abonner" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Reflectを開いて気分を記録しよう" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アプリを開いて登録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Reflect를 열어 기분을 기록하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "앱을 열어 구독" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Abra o Reflect para registrar seu humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abra o app para assinar" } } } }, - "Open the Reflect app to log your mood": { - "comment": "A user-visible description of the intent to open the Reflect app to log your mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Öffne die Reflect-App, um deine Stimmung zu erfassen" + "Open Reflect" : { + "comment" : "Title of the app intent to open the Reflect app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflect öffnen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Abre la app Reflect para registrar tu estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abrir Reflect" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ouvre l'app Reflect pour enregistrer ton humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ouvrir Reflect" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Reflectアプリを開いて気分を記録しよう" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflectを開く" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Reflect 앱을 열어 기분을 기록하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflect 열기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Abra o app Reflect para registrar seu humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abrir Reflect" } } } }, - "Opens End User License Agreement in browser": { - "comment": "A button that opens the app's End User License Agreement in the user's web browser.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Öffnet Endbenutzer-Lizenzvereinbarung im Browser" + "Open Reflect to log your mood" : { + "comment" : "Description of the \"Log Mood\" control widget.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Öffne Reflect, um deine Stimmung zu erfassen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Abre el acuerdo de licencia en el navegador" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abre Reflect para registrar tu estado de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ouvre le contrat de licence dans le navigateur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ouvre Reflect pour enregistrer ton humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "エンドユーザー使用許諾契約をブラウザで開く" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflectを開いて気分を記録しよう" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "브라우저에서 최종 사용자 라이선스 계약 열기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflect를 열어 기분을 기록하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Abre o contrato de licença no navegador" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abra o Reflect para registrar seu humor" } } } }, - "Opens Privacy Policy in browser": { - "comment": "A button that opens the app's privacy policy in a web browser.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Öffnet Datenschutzrichtlinie im Browser" + "Open the Reflect app to log your mood" : { + "comment" : "A user-visible description of the intent to open the Reflect app to log your mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Öffne die Reflect-App, um deine Stimmung zu erfassen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Abre la política de privacidad en el navegador" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abre la app Reflect para registrar tu estado de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ouvre la politique de confidentialité dans le navigateur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ouvre l'app Reflect pour enregistrer ton humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "プライバシーポリシーをブラウザで開く" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflectアプリを開いて気分を記録しよう" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "브라우저에서 개인정보 처리방침 열기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflect 앱을 열어 기분을 기록하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Abre a política de privacidade no navegador" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abra o app Reflect para registrar seu humor" } } } }, - "Opens subscription options": { - "comment": "A hint for a button that opens a subscription store.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Öffnet Abonnementoptionen" + "Opens End User License Agreement in browser" : { + "comment" : "A button that opens the app's End User License Agreement in the user's web browser.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Öffnet Endbenutzer-Lizenzvereinbarung im Browser" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Abre opciones de suscripción" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abre el acuerdo de licencia en el navegador" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ouvre les options d'abonnement" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ouvre le contrat de licence dans le navigateur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "サブスクリプションオプションを開く" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "エンドユーザー使用許諾契約をブラウザで開く" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "구독 옵션 열기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "브라우저에서 최종 사용자 라이선스 계약 열기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Abre opções de assinatura" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abre o contrato de licença no navegador" } } } }, - "Opens time picker to change reminder time": { - "comment": "A hint that describes the action of tapping the \"Reminder Time\" button in the Settings view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Öffnet Zeitauswahl zur Änderung der Erinnerungszeit" + "Opens Privacy Policy in browser" : { + "comment" : "A button that opens the app's privacy policy in a web browser.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Öffnet Datenschutzrichtlinie im Browser" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Abre selector de hora para cambiar el recordatorio" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abre la política de privacidad en el navegador" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ouvre le sélecteur d'heure pour changer le rappel" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ouvre la politique de confidentialité dans le navigateur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "リマインダー時刻を変更する時刻ピッカーを開く" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "プライバシーポリシーをブラウザで開く" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "알림 시간 변경을 위한 시간 선택기 열기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "브라우저에서 개인정보 처리방침 열기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Abre seletor de hora para alterar o lembrete" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abre a política de privacidade no navegador" } } } }, - "Or use your device passcode": { - "comment": "A hint displayed below the \"Unlock with biometric\" button, encouraging users to use their device passcode if they don't have a biometric authentication method set up.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Oder verwende deinen Gerätecode" + "Opens subscription options" : { + "comment" : "A hint for a button that opens a subscription store.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Öffnet Abonnementoptionen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "O usa el código de tu dispositivo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abre opciones de suscripción" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ou utilise le code de ton appareil" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ouvre les options d'abonnement" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "またはデバイスのパスコードを使用" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "サブスクリプションオプションを開く" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "또는 기기 암호를 사용하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "구독 옵션 열기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Ou use o código do seu dispositivo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abre opções de assinatura" } } } }, - "Pause": { - "comment": "A button label that pauses a live activity.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Pause" + "Opens time picker to change reminder time" : { + "comment" : "A hint that describes the action of tapping the \"Reminder Time\" button in the Settings view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Öffnet Zeitauswahl zur Änderung der Erinnerungszeit" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Pausar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abre selector de hora para cambiar el recordatorio" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Pause" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ouvre le sélecteur d'heure pour changer le rappel" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "一時停止" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "リマインダー時刻を変更する時刻ピッカーを開く" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "일시정지" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "알림 시간 변경을 위한 시간 선택기 열기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Pausar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abre seletor de hora para alterar o lembrete" } } } }, - "Payment Issue": { - "comment": "A label indicating that there is a payment issue with a subscription.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Zahlungsproblem" + "Or use your device passcode" : { + "comment" : "A hint displayed below the \"Unlock with biometric\" button, encouraging users to use their device passcode if they don't have a biometric authentication method set up.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oder verwende deinen Gerätecode" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Problema de pago" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "O usa el código de tu dispositivo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Problème de paiement" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ou utilise le code de ton appareil" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "支払いの問題" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "またはデバイスのパスコードを使用" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "결제 문제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "또는 기기 암호를 사용하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Problema de pagamento" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ou use o código do seu dispositivo" } } } }, - "Paywall Styles": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Paywall-Stile" + "Pause" : { + "comment" : "A button label that pauses a live activity.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pause" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Estilos de paywall" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pausar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Styles de paywall" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pause" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ペイウォールスタイル" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "一時停止" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "페이월 스타일" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "일시정지" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Estilos de paywall" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pausar" } } } }, - "Paywall Theme Lab": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Paywall-Theme-Labor" + "Payment Issue" : { + "comment" : "A label indicating that there is a payment issue with a subscription.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zahlungsproblem" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Laboratorio de temas de paywall" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Problema de pago" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Labo de thèmes de paywall" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Problème de paiement" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ペイウォールテーマラボ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "支払いの問題" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "페이월 테마 랩" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "결제 문제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Laboratório de temas de paywall" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Problema de pagamento" } } } }, - "Photo": { - "comment": "A label displayed next to the \"Photo\" button.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Foto" + "Paywall Styles" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paywall-Stile" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Foto" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Estilos de paywall" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Photo" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Styles de paywall" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "写真" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ペイウォールスタイル" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사진" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "페이월 스타일" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Foto" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Estilos de paywall" } } } }, - "Photo Library": { - "comment": "A button option that allows the user to choose a photo from their photo library.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Fotomediathek" + "Paywall Theme Lab" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Paywall-Theme-Labor" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Biblioteca de fotos" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Laboratorio de temas de paywall" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Photothèque" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Labo de thèmes de paywall" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "フォトライブラリ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ペイウォールテーマラボ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사진 보관함" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "페이월 테마 랩" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Biblioteca de fotos" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Laboratório de temas de paywall" } } } }, - "Photo not found": { - "comment": "A message displayed when a photo cannot be loaded.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Foto nicht gefunden" + "Photo" : { + "comment" : "A label displayed next to the \"Photo\" button.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Foto" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Foto no encontrada" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Foto" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Photo introuvable" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Photo" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "写真が見つかりません" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "写真" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사진을 찾을 수 없음" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사진" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Foto não encontrada" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Foto" } } } }, - "Pick a time that works for your daily check-in": { - "comment": "A description under the time picker that explains its purpose.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wähle eine Zeit für deinen täglichen Check-in" + "Photo Library" : { + "comment" : "A button option that allows the user to choose a photo from their photo library.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fotomediathek" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Elige una hora para tu registro diario" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Biblioteca de fotos" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Choisis une heure pour ton check-in quotidien" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Photothèque" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "毎日のチェックインに都合の良い時間を選んでね" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "フォトライブラリ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "매일 체크인할 시간을 선택하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사진 보관함" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Escolha um horário para seu check-in diário" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Biblioteca de fotos" } } } }, - "Pick Mood": { - "comment": "A button that allows users to select a mood from a menu.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Stimmung wählen" + "Photo not found" : { + "comment" : "A message displayed when a photo cannot be loaded.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Foto nicht gefunden" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Elegir estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Foto no encontrada" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Choisir l'humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Photo introuvable" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分を選択" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "写真が見つかりません" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 선택" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사진을 찾을 수 없음" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Escolher humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Foto não encontrada" } } } }, - "Populate with sample mood entries": { - "comment": "A description of what the \"Add Test Data\" button does.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Mit Beispiel-Stimmungseinträgen füllen" + "Pick a time that works for your daily check-in" : { + "comment" : "A description under the time picker that explains its purpose.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wähle eine Zeit für deinen täglichen Check-in" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Rellenar con entradas de ejemplo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Elige una hora para tu registro diario" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Remplir avec des entrées d'exemple" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisis une heure pour ton check-in quotidien" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "サンプルの気分記録を追加" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "毎日のチェックインに都合の良い時間を選んでね" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "샘플 기분 기록으로 채우기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "매일 체크인할 시간을 선택하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Preencher com registros de exemplo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Escolha um horário para seu check-in diário" } } } }, - "Predict your patterns.\nPrepare for any weather.": { - "comment": "A description of the app's main feature, \"Predict your patterns. Prepare for any weather.\"", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Sage deine Muster voraus.\nSei auf jedes Wetter vorbereitet." + "Pick Mood" : { + "comment" : "A button that allows users to select a mood from a menu.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stimmung wählen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Predice tus patrones.\nPrepárate para cualquier clima." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Elegir estado de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Prédisez vos schémas.\nPréparez-vous à tout temps." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Choisir l'humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "パターンを予測しよう。\nどんな天気にも備えて。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分を選択" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "패턴을 예측하세요.\n어떤 날씨에도 대비하세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 선택" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Preveja seus padrões.\nPrepare-se para qualquer clima." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Escolher humor" } } } }, - "Premium Active": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Premium aktiv" + "Populate with sample mood entries" : { + "comment" : "A description of what the \"Add Test Data\" button does.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mit Beispiel-Stimmungseinträgen füllen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Premium activo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rellenar con entradas de ejemplo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Premium actif" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remplir avec des entrées d'exemple" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "プレミアム有効" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "サンプルの気分記録を追加" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "프리미엄 활성화됨" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "샘플 기분 기록으로 채우기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Premium ativo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Preencher com registros de exemplo" } } } }, - "Premium Edition": { - "comment": "A title for the premium edition of the app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Premium-Edition" + "Predict your patterns.\nPrepare for any weather." : { + "comment" : "A description of the app's main feature, \"Predict your patterns. Prepare for any weather.\"", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sage deine Muster voraus.\nSei auf jedes Wetter vorbereitet." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Edición Premium" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Predice tus patrones.\nPrepárate para cualquier clima." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Édition Premium" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Prédisez vos schémas.\nPréparez-vous à tout temps." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "プレミアム版" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "パターンを予測しよう。\nどんな天気にも備えて。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "프리미엄 에디션" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "패턴을 예측하세요.\n어떤 날씨에도 대비하세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Edição Premium" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Preveja seus padrões.\nPrepare-se para qualquer clima." } } } }, - "Premium Feature": { - "comment": "A label indicating a premium feature.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Premium-Funktion" + "Premium Active" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium aktiv" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Función Premium" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium activo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Fonctionnalité Premium" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium actif" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "プレミアム機能" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "プレミアム有効" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "프리미엄 기능" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "프리미엄 활성화됨" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Recurso Premium" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium ativo" } } } }, - "Premium feature, subscription required": { - "comment": "A description of a premium feature that requires a subscription.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Premium-Funktion, Abonnement erforderlich" + "Premium Edition" : { + "comment" : "A title for the premium edition of the app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium-Edition" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Función premium, requiere suscripción" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edición Premium" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Fonction premium, abonnement requis" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Édition Premium" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "プレミアム機能、サブスクリプションが必要" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "プレミアム版" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "프리미엄 기능, 구독 필요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "프리미엄 에디션" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Recurso premium, assinatura necessária" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edição Premium" } } } }, - "Premium refinement for those\nwho expect the finest.": { - "comment": "A description of the premium theme, emphasizing its exclusivity and high-quality elements.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Premium-Verfeinerung für alle,\ndie das Beste erwarten." + "Premium Feature" : { + "comment" : "A label indicating a premium feature.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium-Funktion" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Refinamiento premium para quienes\nesperan lo mejor." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Función Premium" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Raffinement premium pour ceux\nqui attendent le meilleur." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fonctionnalité Premium" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "最高を求める人への\nプレミアム品質。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "プレミアム機能" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "최고를 기대하는 분들을 위한\n프리미엄 품격." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "프리미엄 기능" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Refinamento premium para quem\nespera o melhor." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Recurso Premium" } } } }, - "Preview": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Vorschau" + "Premium feature, subscription required" : { + "comment" : "A description of a premium feature that requires a subscription.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium-Funktion, Abonnement erforderlich" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Vista previa" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Función premium, requiere suscripción" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Aperçu" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fonction premium, abonnement requis" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "プレビュー" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "プレミアム機能、サブスクリプションが必要" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "미리보기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "프리미엄 기능, 구독 필요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Visualizar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Recurso premium, assinatura necessária" } } } }, - "Preview and test different subscription paywall designs": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Vorschau und Test verschiedener Abo-Paywall-Designs" + "Premium refinement for those\nwho expect the finest." : { + "comment" : "A description of the premium theme, emphasizing its exclusivity and high-quality elements.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium-Verfeinerung für alle,\ndie das Beste erwarten." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Previsualiza y prueba diferentes diseños de paywall" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Refinamiento premium para quienes\nesperan lo mejor." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Prévisualisez et testez différents designs de paywall" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Raffinement premium pour ceux\nqui attendent le meilleur." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "さまざまなサブスクリプションペイウォールデザインをプレビューしてテスト" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "最高を求める人への\nプレミアム品質。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "다양한 구독 페이월 디자인 미리보기 및 테스트" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "최고를 기대하는 분들을 위한\n프리미엄 품격." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Visualize e teste diferentes designs de paywall" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Refinamento premium para quem\nespera o melhor." } } } }, - "Preview subscription themes": { - "comment": "A description of what the paywall preview button does.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Abo-Themes Vorschau" + "Preparing data..." : { + "comment" : "Message displayed during the generation of a mood report, indicating that data is being prepared.", + "isCommentAutoGenerated" : true + }, + "Preview" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vorschau" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Vista previa de temas de suscripción" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vista previa" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Aperçu des thèmes d'abonnement" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aperçu" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "サブスクリプションテーマをプレビュー" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "プレビュー" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "구독 테마 미리보기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "미리보기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Visualizar temas de assinatura" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Visualizar" } } } }, - "Privacy Lock": { - "comment": "A title for a toggle that controls whether or not biometric authentication is enabled.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Datenschutzsperre" + "Preview and test different subscription paywall designs" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vorschau und Test verschiedener Abo-Paywall-Designs" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Bloqueo de privacidad" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Previsualiza y prueba diferentes diseños de paywall" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Verrouillage de confidentialité" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Prévisualisez et testez différents designs de paywall" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "プライバシーロック" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "さまざまなサブスクリプションペイウォールデザインをプレビューしてテスト" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "개인정보 보호 잠금" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "다양한 구독 페이월 디자인 미리보기 및 테스트" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Bloqueio de privacidade" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Visualize e teste diferentes designs de paywall" } } } }, - "Processing...": { - "comment": "A message displayed while an image is being processed.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wird verarbeitet..." + "Preview subscription themes" : { + "comment" : "A description of what the paywall preview button does.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abo-Themes Vorschau" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Procesando..." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vista previa de temas de suscripción" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Traitement..." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aperçu des thèmes d'abonnement" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "処理中..." + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "サブスクリプションテーマをプレビュー" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "처리 중..." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "구독 테마 미리보기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Processando..." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Visualizar temas de assinatura" } } } }, - "purchase_view_change_plan": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Plan ändern" + "Previous month" : { + "comment" : "A label for a button that navigates to the previous month in the date range picker.", + "isCommentAutoGenerated" : true + }, + "Privacy Lock" : { + "comment" : "A title for a toggle that controls whether or not biometric authentication is enabled.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Datenschutzsperre" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Change Plan" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bloqueo de privacidad" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Cambiar Plan" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verrouillage de confidentialité" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Changer de forfait" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "プライバシーロック" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "プランを変更" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "개인정보 보호 잠금" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "플랜 변경" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bloqueio de privacidade" + } + } + } + }, + "Privacy Notice" : { + "comment" : "A confirmation dialog title that informs the user about the privacy policy of the app.", + "isCommentAutoGenerated" : true + }, + "Processing..." : { + "comment" : "A message displayed while an image is being processed.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wird verarbeitet..." + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Procesando..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Traitement..." + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "処理中..." + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "처리 중..." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Alterar plano" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Processando..." } } } }, - "purchase_view_current_subscription": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Aktuelles Abo" + "purchase_view_change_plan" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Plan ändern" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Current Subscription" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Change Plan" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Suscripción Actual" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cambiar Plan" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Abonnement actuel" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Changer de forfait" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "現在のサブスクリプション" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "プランを変更" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "현재 구독" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "플랜 변경" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Assinatura atual" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alterar plano" } } } }, - "purchase_view_current_why_subscribe": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Ein iReflect-Abo gibt dir Zugang zu all deinen historischen Daten und den Monats- und Jahresdiagrammen." + "purchase_view_current_subscription" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aktuelles Abo" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "An iReflect subscription gives you access to all of your historical data, and both Month and Year charts." + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Current Subscription" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Una suscripción a iReflect te da acceso a todos tus datos históricos, y a los gráficos de Mes y Año." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suscripción Actual" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Un abonnement iReflect vous donne accès à toutes vos données historiques, ainsi qu'aux graphiques Mois et Année." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abonnement actuel" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "iReflectサブスクリプションで、すべての過去データと月・年チャートにアクセスできます。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "現在のサブスクリプション" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "iReflect 구독으로 모든 과거 데이터와 월별, 연도별 차트에 액세스할 수 있습니다." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "현재 구독" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Uma assinatura iReflect dá acesso a todos os seus dados históricos e aos gráficos de Mês e Ano." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Assinatura atual" } } } }, - "purchase_view_loading": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Abo-Optionen werden geladen" + "purchase_view_current_why_subscribe" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ein iReflect-Abo gibt dir Zugang zu all deinen historischen Daten und den Monats- und Jahresdiagrammen." } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Loading subscription options" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "An iReflect subscription gives you access to all of your historical data, and both Month and Year charts." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Cargando opciones de suscripción" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Una suscripción a iReflect te da acceso a todos tus datos históricos, y a los gráficos de Mes y Año." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Chargement des options d'abonnement" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Un abonnement iReflect vous donne accès à toutes vos données historiques, ainsi qu'aux graphiques Mois et Année." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "サブスクリプションオプションを読み込み中" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "iReflectサブスクリプションで、すべての過去データと月・年チャートにアクセスできます。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "구독 옵션 로딩 중" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "iReflect 구독으로 모든 과거 데이터와 월별, 연도별 차트에 액세스할 수 있습니다." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Carregando opções de assinatura" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Uma assinatura iReflect dá acesso a todos os seus dados históricos e aos gráficos de Mês e Ano." } } } }, - "purchase_view_manage_subscription": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Abo verwalten" + "purchase_view_loading" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abo-Optionen werden geladen" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Manage Subscription" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Loading subscription options" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Administrar Suscripción" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cargando opciones de suscripción" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Gérer l'abonnement" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chargement des options d'abonnement" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "サブスクリプションを管理" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "サブスクリプションオプションを読み込み中" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "구독 관리" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "구독 옵션 로딩 중" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Gerenciar assinatura" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Carregando opções de assinatura" } } } }, - "purchase_view_restore": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wiederherstellen" + "purchase_view_manage_subscription" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abo verwalten" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Restore" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Manage Subscription" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Restaurar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Administrar Suscripción" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Restaurer" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gérer l'abonnement" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "復元" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "サブスクリプションを管理" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "복원" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "구독 관리" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Restaurar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gerenciar assinatura" } } } }, - "purchase_view_subscribe_button": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Jetzt abonnieren" + "purchase_view_restore" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wiederherstellen" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Subscribe Now" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restore" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Suscribirse Ahora" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restaurar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "S'abonner maintenant" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restaurer" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今すぐ登録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "復元" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "지금 구독" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "복원" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Assinar agora" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restaurar" } } } }, - "purchase_view_title": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wie lange möchtest du deine Gefühle unterstützen?" + "purchase_view_subscribe_button" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jetzt abonnieren" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "How long do you want to support your feelings for?" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Subscribe Now" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Por cuánto tiempo quieres apoyar tus sentimientos?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suscribirse Ahora" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Combien de temps voulez-vous prendre soin de vos émotions ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "S'abonner maintenant" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "どのくらいの期間サポートしますか?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今すぐ登録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "얼마나 오래 감정을 돌보시겠어요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "지금 구독" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Por quanto tempo você quer cuidar dos seus sentimentos?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Assinar agora" } } } }, - "purchase_view_trial_expired": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Deine kostenlose Testphase ist beendet." + "purchase_view_title" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wie lange möchtest du deine Gefühle unterstützen?" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Your free trial has ended." + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "How long do you want to support your feelings for?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Tu prueba gratuita ha terminado." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Por cuánto tiempo quieres apoyar tus sentimientos?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Votre essai gratuit est terminé." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Combien de temps voulez-vous prendre soin de vos émotions ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "無料トライアルが終了しました。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "どのくらいの期間サポートしますか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "무료 체험이 종료되었습니다." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "얼마나 오래 감정을 돌보시겠어요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Seu teste gratuito terminou." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Por quanto tempo você quer cuidar dos seus sentimentos?" } } } }, - "purchase_view_trial_expires_in": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Testphase endet in" + "purchase_view_trial_expired" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deine kostenlose Testphase ist beendet." } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Trial expires in" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Your free trial has ended." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "La prueba expira en" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tu prueba gratuita ha terminado." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "L'essai expire dans" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre essai gratuit est terminé." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "トライアル終了まで" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "無料トライアルが終了しました。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "체험판 만료까지" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "무료 체험이 종료되었습니다." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Teste expira em" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Seu teste gratuito terminou." } } } }, - "Quickly rate your mood for today": { - "comment": "Description of the Mood Vote widget.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Bewerte schnell deine heutige Stimmung" + "purchase_view_trial_expires_in" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Testphase endet in" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Califica rápidamente tu estado de ánimo de hoy" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Trial expires in" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Note rapidement ton humeur du jour" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "La prueba expira en" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今日の気分をすばやく評価" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'essai expire dans" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘의 기분을 빠르게 평가하세요" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "トライアル終了まで" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Avalie rapidamente seu humor de hoje" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "체험판 만료까지" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Teste expira em" } } } }, - "Record your mood for today": { - "comment": "Description of the app intent to vote for a mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Erfasse deine Stimmung für heute" + "Quickly rate your mood for today" : { + "comment" : "Description of the Mood Vote widget.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bewerte schnell deine heutige Stimmung" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Registra tu estado de ánimo de hoy" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Califica rápidamente tu estado de ánimo de hoy" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistre ton humeur du jour" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Note rapidement ton humeur du jour" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今日の気分を記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日の気分をすばやく評価" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘의 기분을 기록하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘의 기분을 빠르게 평가하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Registre seu humor de hoje" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Avalie rapidamente seu humor de hoje" } } } }, - "Record your mood for today in Reflect": { - "comment": "Title of the \"Log Mood\" app intent.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Erfasse deine Stimmung für heute in Reflect" + "Record your mood for today" : { + "comment" : "Description of the app intent to vote for a mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erfasse deine Stimmung für heute" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Registra tu estado de ánimo de hoy en Reflect" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registra tu estado de ánimo de hoy" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistre ton humeur du jour dans Reflect" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistre ton humeur du jour" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Reflectで今日の気分を記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日の気分を記録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Reflect에서 오늘의 기분을 기록하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘의 기분을 기록하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Registre seu humor de hoje no Reflect" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registre seu humor de hoje" } } } }, - "Recorded mood entry": { - "comment": "A description of what a recorded mood entry looks like.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Stimmungseintrag erfasst" + "Record your mood for today in Reflect" : { + "comment" : "Title of the \"Log Mood\" app intent.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erfasse deine Stimmung für heute in Reflect" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Entrada de estado de ánimo registrada" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registra tu estado de ánimo de hoy en Reflect" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Entrée d'humeur enregistrée" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistre ton humeur du jour dans Reflect" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "記録された気分のエントリ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflectで今日の気分を記録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기록된 기분 항목" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflect에서 오늘의 기분을 기록하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Entrada de humor registrada" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registre seu humor de hoje no Reflect" } } } }, - "Recording Mode": { - "comment": "A button that enters a recording mode for live activity previews.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Aufnahmemodus" + "Recorded mood entry" : { + "comment" : "A description of what a recorded mood entry looks like.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stimmungseintrag erfasst" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Modo de grabación" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entrada de estado de ánimo registrada" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Mode d'enregistrement" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entrée d'humeur enregistrée" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "録画モード" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "記録された気分のエントリ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "녹화 모드" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기록된 기분 항목" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Modo de gravação" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entrada de humor registrada" } } } }, - "Reflect": { - "comment": "The name of the widget.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Reflect" + "Recording Mode" : { + "comment" : "A button that enters a recording mode for live activity previews.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aufnahmemodus" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Reflect" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modo de grabación" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Reflect" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mode d'enregistrement" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Reflect" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "録画モード" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Reflect" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "녹화 모드" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Reflect" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Modo de gravação" } } } }, - "REFLECT": { - "comment": "The name of the app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "REFLECT" + "Reflect" : { + "comment" : "The name of the widget.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflect" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "REFLECT" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflect" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "REFLECT" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflect" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "REFLECT" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflect" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "REFLECT" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflect" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "REFLECT" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflect" } } } }, - "Reflect Icon": { - "comment": "Name of the widget configuration.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Reflect-Symbol" + "REFLECT" : { + "comment" : "The name of the app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "REFLECT" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Icono de Reflect" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "REFLECT" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Icône Reflect" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "REFLECT" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Reflectアイコン" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "REFLECT" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Reflect 아이콘" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "REFLECT" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Ícone do Reflect" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "REFLECT" } } } }, - "REFLECT MIXTAPE": { - "comment": "The name of the premium subscription experience.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "REFLECT MIXTAPE" + "Reflect Icon" : { + "comment" : "Name of the widget configuration.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflect-Symbol" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "REFLECT MIXTAPE" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Icono de Reflect" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "REFLECT MIXTAPE" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Icône Reflect" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "REFLECT MIXTAPE" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflectアイコン" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "REFLECT MIXTAPE" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflect 아이콘" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "REFLECT MIXTAPE" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ícone do Reflect" } } } }, - "Reminder time": { - "comment": "An accessibility label for the time picker in the onboarding flow.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Erinnerungszeit" + "REFLECT MIXTAPE" : { + "comment" : "The name of the premium subscription experience.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "REFLECT MIXTAPE" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Hora del recordatorio" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "REFLECT MIXTAPE" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Heure du rappel" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "REFLECT MIXTAPE" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "リマインダー時刻" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "REFLECT MIXTAPE" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "알림 시간" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "REFLECT MIXTAPE" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Hora do lembrete" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "REFLECT MIXTAPE" } } } }, - "Reminder Time": { - "comment": "A label displayed above the reminder time in the settings view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Erinnerungszeit" + "Reminder time" : { + "comment" : "An accessibility label for the time picker in the onboarding flow.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erinnerungszeit" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Hora del recordatorio" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hora del recordatorio" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Heure du rappel" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Heure du rappel" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "リマインダー時刻" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "リマインダー時刻" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "알림 시간" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "알림 시간" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Horário do lembrete" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hora do lembrete" } } } }, - "Remove all State of Mind records": { - "comment": "A description of what happens when the \"Delete HealthKit Data\" button is pressed.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Alle Gemütszustand-Einträge entfernen" + "Reminder Time" : { + "comment" : "A label displayed above the reminder time in the settings view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erinnerungszeit" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Eliminar todos los registros de estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hora del recordatorio" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Supprimer tous les enregistrements d'état d'esprit" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Heure du rappel" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "すべての心の状態の記録を削除" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "リマインダー時刻" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "모든 마음 상태 기록 삭제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "알림 시간" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Remover todos os registros de Estado de Espírito" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Horário do lembrete" } } } }, - "Remove Photo": { - "comment": "A button that deletes a photo from a journal entry.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Foto entfernen" + "Remove all State of Mind records" : { + "comment" : "A description of what happens when the \"Delete HealthKit Data\" button is pressed.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alle Gemütszustand-Einträge entfernen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Eliminar foto" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eliminar todos los registros de estado de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Supprimer la photo" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer tous les enregistrements d'état d'esprit" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "写真を削除" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "すべての心の状態の記録を削除" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사진 삭제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "모든 마음 상태 기록 삭제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Remover foto" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remover todos os registros de Estado de Espírito" } } } }, - "Require %@ to open app": { - "comment": "A description of what the Privacy Lock feature does.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%@ zum Öffnen der App erforderlich" + "Remove Photo" : { + "comment" : "A button that deletes a photo from a journal entry.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Foto entfernen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Requerir %@ para abrir la app" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Eliminar foto" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Exiger %@ pour ouvrir l'app" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Supprimer la photo" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "アプリを開くには%@が必要" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "写真を削除" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "앱을 열려면 %@ 필요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사진 삭제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Exigir %@ para abrir o app" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remover foto" } } } }, - "Require biometric authentication to open app": { - "comment": "A hint that describes the purpose of the Privacy Lock toggle.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Biometrische Authentifizierung zum Öffnen der App erforderlich" + "Report ready" : { + "comment" : "Text indicating that the mood report is ready to be downloaded.", + "isCommentAutoGenerated" : true + }, + "Report Ready" : { + "comment" : "A label displayed when a mood report is ready to be exported as a PDF.", + "isCommentAutoGenerated" : true + }, + "Report Type" : { + "comment" : "A label displayed above the options for selecting the type of report to generate.", + "isCommentAutoGenerated" : true + }, + "Require %@ to open app" : { + "comment" : "A description of what the Privacy Lock feature does.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ zum Öffnen der App erforderlich" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Requerir %@ para abrir la app" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exiger %@ pour ouvrir l'app" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アプリを開くには%@が必要" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "앱을 열려면 %@ 필요" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exigir %@ para abrir o app" + } + } + } + }, + "Require biometric authentication to open app" : { + "comment" : "A hint that describes the purpose of the Privacy Lock toggle.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Biometrische Authentifizierung zum Öffnen der App erforderlich" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Requerir autenticación biométrica para abrir la app" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Requerir autenticación biométrica para abrir la app" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Exiger l'authentification biométrique pour ouvrir l'app" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exiger l'authentification biométrique pour ouvrir l'app" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "アプリを開くのに生体認証を要求" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アプリを開くのに生体認証を要求" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "앱 열기에 생체 인증 필요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "앱 열기에 생체 인증 필요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Exigir autenticação biométrica para abrir o app" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exigir autenticação biométrica para abrir o app" } } } }, - "Reset": { - "comment": "A button label that resets the live activity preview.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Zurücksetzen" + "Reset" : { + "comment" : "A button label that resets the live activity preview.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zurücksetzen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Restablecer" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restablecer" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Réinitialiser" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réinitialiser" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "リセット" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "リセット" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "재설정" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "재설정" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Redefinir" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Redefinir" } } } }, - "Reset All Tips": { - "comment": "A button that resets all tips to their default state.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Alle Tipps zurücksetzen" + "Reset All Tips" : { + "comment" : "A button that resets all tips to their default state.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alle Tipps zurücksetzen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Restablecer todos los consejos" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restablecer todos los consejos" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Réinitialiser tous les conseils" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réinitialiser tous les conseils" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "すべてのヒントをリセット" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "すべてのヒントをリセット" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "모든 팁 재설정" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "모든 팁 재설정" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Redefinir todas as dicas" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Redefinir todas as dicas" } } } }, - "Reset luanch date to current date": { - "comment": "A button label that resets the app's launch date to the current date.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Startdatum auf aktuelles Datum zurücksetzen" + "Reset luanch date to current date" : { + "comment" : "A button label that resets the app's launch date to the current date.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Startdatum auf aktuelles Datum zurücksetzen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Restablecer fecha de lanzamiento a fecha actual" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Restablecer fecha de lanzamiento a fecha actual" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Réinitialiser la date de lancement à la date actuelle" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réinitialiser la date de lancement à la date actuelle" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "起動日を現在の日付にリセット" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "起動日を現在の日付にリセット" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "실행 날짜를 현재 날짜로 재설정" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "실행 날짜를 현재 날짜로 재설정" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Redefinir data de lançamento para data atual" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Redefinir data de lançamento para data atual" } } } }, - "rude": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Frech" + "Retry" : { + "comment" : "A button that, when pressed, attempts to regenerate the mood report.", + "isCommentAutoGenerated" : true + }, + "rude" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Frech" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Rude" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rude" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Grosero" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Grosero" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Impoli" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Impoli" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "辛口" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "辛口" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "거친" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "거친" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Rude" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rude" } } } }, - "rude_notif_body_today_one": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wie zum Teufel war dein Tag?" + "rude_notif_body_today_one" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wie zum Teufel war dein Tag?" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "How the hell was your day?" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "How the hell was your day?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Cómo diablos estuvo tu día?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Cómo diablos estuvo tu día?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "C'était comment ta journée, bordel ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "C'était comment ta journée, bordel ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今日はどうだったんだよ?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日はどうだったんだよ?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘 하루 어땠냐고?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘 하루 어땠냐고?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Como diabos foi seu dia?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Como diabos foi seu dia?" } } } }, - "rude_notif_body_today_three": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Bewerte deinen verdammten Tag… oder sonst! ☠️" + "rude_notif_body_today_three" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bewerte deinen verdammten Tag… oder sonst! ☠️" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Rate your damn day… or else! ☠️" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rate your damn day… or else! ☠️" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Califica tu maldito día… ¡o si no! ☠️" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Califica tu maldito día… ¡o si no! ☠️" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Évalue ta foutue journée… sinon ! ☠️" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Évalue ta foutue journée… sinon ! ☠️" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "さっさと記録しろ…さもないと!☠️" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "さっさと記録しろ…さもないと!☠️" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "하루 평가해… 안 그러면! ☠️" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "하루 평가해… 안 그러면! ☠️" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Avalie seu maldito dia… ou então! ☠️" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Avalie seu maldito dia… ou então! ☠️" } } } }, - "rude_notif_body_today_two": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Sei kein Idiot, bewerte deinen Tag!" + "rude_notif_body_today_two" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sei kein Idiot, bewerte deinen Tag!" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Don't be an ass, rate your day!" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Don't be an ass, rate your day!" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡No seas idiota, califica tu día!" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡No seas idiota, califica tu día!" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Fais pas l'idiot, évalue ta journée !" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fais pas l'idiot, évalue ta journée !" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "グズグズしてないで、今日を記録しろ!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "グズグズしてないで、今日を記録しろ!" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "멍청이처럼 굴지 말고 하루 평가해!" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "멍청이처럼 굴지 말고 하루 평가해!" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Não seja idiota, avalie seu dia!" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Não seja idiota, avalie seu dia!" } } } }, - "rude_notif_body_yesterday_one": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wie zum Teufel war gestern?" + "rude_notif_body_yesterday_one" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wie zum Teufel war gestern?" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "How the hell was yesterday?" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "How the hell was yesterday?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Cómo diablos estuvo ayer?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Cómo diablos estuvo ayer?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "C'était comment hier, bordel ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "C'était comment hier, bordel ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "昨日はどうだったんだよ?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "昨日はどうだったんだよ?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "어제 어땠냐고?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "어제 어땠냐고?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Como diabos foi ontem?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Como diabos foi ontem?" } } } }, - "rude_notif_body_yesterday_three": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Bewerte gestern… oder sonst! ☠️" + "rude_notif_body_yesterday_three" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bewerte gestern… oder sonst! ☠️" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Rate yesterday… or else! ☠️" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rate yesterday… or else! ☠️" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Califica ayer… ¡o si no! ☠️" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Califica ayer… ¡o si no! ☠️" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Évalue hier… sinon ! ☠️" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Évalue hier… sinon ! ☠️" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "昨日を記録しろ…さもないと!☠️" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "昨日を記録しろ…さもないと!☠️" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "어제 평가해… 안 그러면! ☠️" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "어제 평가해… 안 그러면! ☠️" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Avalie ontem… ou então! ☠️" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Avalie ontem… ou então! ☠️" } } } }, - "rude_notif_body_yesterday_two": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Sei kein Idiot, bewerte gestern!" + "rude_notif_body_yesterday_two" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sei kein Idiot, bewerte gestern!" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Don't be an ass, rate yesterday!" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Don't be an ass, rate yesterday!" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡No seas idiota, califica ayer!" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡No seas idiota, califica ayer!" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Fais pas l'idiot, évalue hier !" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fais pas l'idiot, évalue hier !" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "グズグズしてないで、昨日を記録しろ!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "グズグズしてないで、昨日を記録しろ!" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "멍청이처럼 굴지 말고 어제 평가해!" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "멍청이처럼 굴지 말고 어제 평가해!" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Não seja idiota, avalie ontem!" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Não seja idiota, avalie ontem!" } } } }, - "rude_notif_title_four": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Ugh, muss ich es dir wirklich sagen? 😒" + "rude_notif_title_four" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ugh, muss ich es dir wirklich sagen? 😒" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Uggghhhhhhh, I really gotta tell you? 😒" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Uggghhhhhhh, I really gotta tell you? 😒" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Uggghhhh, ¿de verdad tengo que decirte? 😒" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Uggghhhh, ¿de verdad tengo que decirte? 😒" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Pffff, je dois vraiment te le dire ? 😒" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pffff, je dois vraiment te le dire ? 😒" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "はぁ…本当に言わなきゃダメ?😒" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "はぁ…本当に言わなきゃダメ?😒" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "으으으, 정말 말해야 해? 😒" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "으으으, 정말 말해야 해? 😒" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Aff, preciso mesmo te dizer? 😒" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aff, preciso mesmo te dizer? 😒" } } } }, - "rude_notif_title_one": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Hey, du Idiot!" + "rude_notif_title_one" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hey, du Idiot!" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Hey, asshole!" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hey, asshole!" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡Oye, idiota!" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡Oye, idiota!" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Hé, imbécile !" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hé, imbécile !" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "おい、お前!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "おい、お前!" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "야, 이 녀석아!" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "야, 이 녀석아!" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Ei, idiota!" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ei, idiota!" } } } }, - "rude_notif_title_three": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Verdammt, du schon wieder? 😡" + "rude_notif_title_three" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verdammt, du schon wieder? 😡" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Damn, you again? 😡" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Damn, you again? 😡" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Carajo, ¿tú otra vez? 😡" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Carajo, ¿tú otra vez? 😡" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Encore toi ? 😡" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Encore toi ? 😡" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "またお前かよ?😡" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "またお前かよ?😡" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "또 너야? 😡" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "또 너야? 😡" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Droga, você de novo? 😡" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Droga, você de novo? 😡" } } } }, - "rude_notif_title_two": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Worauf wartest du noch?" + "rude_notif_title_two" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Worauf wartest du noch?" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "WTF are you waiting for?" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "WTF are you waiting for?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Qué diablos estás esperando?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Qué diablos estás esperando?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "T'attends quoi, bordel ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "T'attends quoi, bordel ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "何をグズグズしてんだ?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "何をグズグズしてんだ?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "뭘 기다리는 거야?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "뭘 기다리는 거야?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Que diabos você tá esperando?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Que diabos você tá esperando?" } } } }, - "Save": { - "comment": "The text on a button that saves changes to a journal note.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Speichern" + "Save" : { + "comment" : "The text on a button that saves changes to a journal note.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Speichern" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Guardar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Guardar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistrer" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistrer" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "保存" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "保存" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "저장" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "저장" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Salvar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Salvar" } } } }, - "Saved to Documents/InsightsExports": { - "comment": "A description of where the insights export file will be saved.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Gespeichert in Dokumente/InsightsExports" + "Saved to Documents/InsightsExports" : { + "comment" : "A description of where the insights export file will be saved.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gespeichert in Dokumente/InsightsExports" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Guardado en Documentos/InsightsExports" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Guardado en Documentos/InsightsExports" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistré dans Documents/InsightsExports" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistré dans Documents/InsightsExports" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Documents/InsightsExportsに保存済み" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Documents/InsightsExportsに保存済み" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Documents/InsightsExports에 저장됨" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Documents/InsightsExports에 저장됨" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Salvo em Documentos/InsightsExports" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Salvo em Documentos/InsightsExports" } } } }, - "Saved to Documents/SharingExports": { - "comment": "A description of where the generated sharing screenshots are saved on a user's device.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Gespeichert in Dokumente/SharingExports" + "Saved to Documents/SharingExports" : { + "comment" : "A description of where the generated sharing screenshots are saved on a user's device.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gespeichert in Dokumente/SharingExports" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Guardado en Documentos/SharingExports" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Guardado en Documentos/SharingExports" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistré dans Documents/SharingExports" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistré dans Documents/SharingExports" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Documents/SharingExportsに保存済み" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Documents/SharingExportsに保存済み" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Documents/SharingExports에 저장됨" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Documents/SharingExports에 저장됨" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Salvo em Documentos/SharingExports" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Salvo em Documentos/SharingExports" } } } }, - "Saved to Documents/VotingLayoutExports": { - "comment": "A description of where the voting layouts are saved when exported.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Gespeichert in Dokumente/VotingLayoutExports" + "Saved to Documents/VotingLayoutExports" : { + "comment" : "A description of where the voting layouts are saved when exported.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gespeichert in Dokumente/VotingLayoutExports" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Guardado en Documentos/VotingLayoutExports" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Guardado en Documentos/VotingLayoutExports" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistré dans Documents/VotingLayoutExports" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistré dans Documents/VotingLayoutExports" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Documents/VotingLayoutExportsに保存済み" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Documents/VotingLayoutExportsに保存済み" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Documents/VotingLayoutExports에 저장됨" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Documents/VotingLayoutExports에 저장됨" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Salvo em Documentos/VotingLayoutExports" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Salvo em Documentos/VotingLayoutExports" } } } }, - "Saved to Documents/WatchExports": { - "comment": "A description of where the exported watch views are saved.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Gespeichert in Dokumente/WatchExports" + "Saved to Documents/WatchExports" : { + "comment" : "A description of where the exported watch views are saved.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gespeichert in Dokumente/WatchExports" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Guardado en Documentos/WatchExports" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Guardado en Documentos/WatchExports" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistré dans Documents/WatchExports" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistré dans Documents/WatchExports" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Documents/WatchExportsに保存済み" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Documents/WatchExportsに保存済み" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Documents/WatchExports에 저장됨" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Documents/WatchExports에 저장됨" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Salvo em Documentos/WatchExports" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Salvo em Documentos/WatchExports" } } } }, - "Saved to Documents/WidgetExports": { - "comment": "A description of where the exported widget screenshots are saved.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Gespeichert in Dokumente/WidgetExports" + "Saved to Documents/WidgetExports" : { + "comment" : "A description of where the exported widget screenshots are saved.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gespeichert in Dokumente/WidgetExports" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Guardado en Documentos/WidgetExports" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Guardado en Documentos/WidgetExports" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Enregistré dans Documents/WidgetExports" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enregistré dans Documents/WidgetExports" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Documents/WidgetExportsに保存されました" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Documents/WidgetExportsに保存されました" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Documents/WidgetExports에 저장됨" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Documents/WidgetExports에 저장됨" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Salvo em Documentos/WidgetExports" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Salvo em Documentos/WidgetExports" } } } }, - "See what mood you logged today in Reflect": { - "comment": "Title of an intent that allows the user to check their logged mood for the current day.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Sieh dir an, welche Stimmung du heute in Reflect erfasst hast" + "See what mood you logged today in Reflect" : { + "comment" : "Title of an intent that allows the user to check their logged mood for the current day.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sieh dir an, welche Stimmung du heute in Reflect erfasst hast" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Mira qué estado de ánimo registraste hoy en Reflect" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mira qué estado de ánimo registraste hoy en Reflect" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Vois quelle humeur tu as enregistrée aujourd'hui dans Reflect" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vois quelle humeur tu as enregistrée aujourd'hui dans Reflect" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Reflectで今日記録した気分を確認" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflectで今日記録した気分を確認" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Reflect에서 오늘 기록한 기분 확인" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflect에서 오늘 기록한 기분 확인" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Veja qual humor você registrou hoje no Reflect" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veja qual humor você registrou hoje no Reflect" } } } }, - "See your complete monthly journey. Track patterns and understand what shapes your days.": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Sieh deine komplette monatliche Reise. Verfolge Muster und verstehe, was deine Tage prägt." + "See your complete monthly journey. Track patterns and understand what shapes your days." : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sieh deine komplette monatliche Reise. Verfolge Muster und verstehe, was deine Tage prägt." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Ve tu viaje mensual completo. Rastrea patrones y comprende qué da forma a tus días." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ve tu viaje mensual completo. Rastrea patrones y comprende qué da forma a tus días." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Voyez votre parcours mensuel complet. Suivez les schémas et comprenez ce qui façonne vos jours." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voyez votre parcours mensuel complet. Suivez les schémas et comprenez ce qui façonne vos jours." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "月ごとの完全な旅路を見よう。パターンを追跡し、日々を形作るものを理解しよう。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "月ごとの完全な旅路を見よう。パターンを追跡し、日々を形作るものを理解しよう。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "완전한 월별 여정을 보세요. 패턴을 추적하고 일상을 형성하는 것을 이해하세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "완전한 월별 여정을 보세요. 패턴을 추적하고 일상을 형성하는 것을 이해하세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Veja sua jornada mensal completa. Acompanhe padrões e entenda o que molda seus dias." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veja sua jornada mensal completa. Acompanhe padrões e entenda o que molda seus dias." } } } }, - "See Your Year at a Glance": { - "comment": "A title for a feature that lets users see their year's emotional trends.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Sieh dein Jahr auf einen Blick" + "See Your Year at a Glance" : { + "comment" : "A title for a feature that lets users see their year's emotional trends.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sieh dein Jahr auf einen Blick" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Ve tu año de un vistazo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ve tu año de un vistazo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Voyez votre année en un coup d'œil" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voyez votre année en un coup d'œil" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "1年を一目で確認" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "1年を一目で確認" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "한눈에 1년 보기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "한눈에 1년 보기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Veja seu ano de relance" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veja seu ano de relance" } } } }, - "Select Style": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Stil auswählen" + "Select Style" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stil auswählen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Seleccionar estilo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Seleccionar estilo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Sélectionner le style" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sélectionner le style" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "スタイルを選択" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "スタイルを選択" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "스타일 선택" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "스타일 선택" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Selecionar estilo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Selecionar estilo" } } } }, - "Select this mood": { - "comment": "A hint that appears when a user taps on a mood button.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Diese Stimmung auswählen" + "Select this mood" : { + "comment" : "A hint that appears when a user taps on a mood button.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Diese Stimmung auswählen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Seleccionar este ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Seleccionar este ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Sélectionner cette humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sélectionner cette humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "この気分を選択" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "この気分を選択" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "이 기분 선택" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 기분 선택" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Selecionar este humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Selecionar este humor" } } } }, - "Select when you want to be reminded": { - "comment": "A hint that appears when a user taps on the time picker in the \"Reminder time\" section of the OnboardingTime view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wähle, wann du erinnert werden möchtest" + "Select when you want to be reminded" : { + "comment" : "A hint that appears when a user taps on the time picker in the \"Reminder time\" section of the OnboardingTime view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wähle, wann du erinnert werden möchtest" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Selecciona cuándo quieres recibir recordatorios" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Selecciona cuándo quieres recibir recordatorios" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Sélectionnez quand vous voulez être rappelé" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sélectionnez quand vous voulez être rappelé" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "リマインダーの時刻を選択" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "リマインダーの時刻を選択" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "알림 받을 시간 선택" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "알림 받을 시간 선택" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Selecione quando quer ser lembrado" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Selecione quando quer ser lembrado" } } } }, - "Send 5 personality pack notifications": { - "comment": "A description of the action that can be performed when tapping the \"Test All Notifications\" button in the Settings app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "5 Persönlichkeitspaket-Benachrichtigungen senden" + "Send 5 personality pack notifications" : { + "comment" : "A description of the action that can be performed when tapping the \"Test All Notifications\" button in the Settings app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "5 Persönlichkeitspaket-Benachrichtigungen senden" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Enviar 5 notificaciones del paquete de personalidad" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enviar 5 notificaciones del paquete de personalidad" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Envoyer 5 notifications du pack de personnalité" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Envoyer 5 notifications du pack de personnalité" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "5つの性格パック通知を送信" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "5つの性格パック通知を送信" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "성격 팩 알림 5개 보내기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "성격 팩 알림 5개 보내기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Enviar 5 notificações do pacote de personalidade" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enviar 5 notificações do pacote de personalidade" } } } }, - "Set Trial Start Date": { - "comment": "The title of a screen that lets a user set the start date of a free trial.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Teststart-Datum festlegen" + "Set Trial Start Date" : { + "comment" : "The title of a screen that lets a user set the start date of a free trial.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Teststart-Datum festlegen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Establecer fecha de inicio de prueba" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Establecer fecha de inicio de prueba" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Définir la date de début d'essai" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Définir la date de début d'essai" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "試用開始日を設定" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "試用開始日を設定" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "체험 시작 날짜 설정" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "체험 시작 날짜 설정" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Definir data de início do teste" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Definir data de início do teste" } } } }, - "Settings": { - "comment": "A label for the settings tab in the main tab view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Einstellungen" + "Settings" : { + "comment" : "A label for the settings tab in the main tab view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Einstellungen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Ajustes" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajustes" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Réglages" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réglages" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "設定" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "設定" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "설정" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "설정" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Configurações" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Configurações" } } } }, - "settings_use_delete_enable": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Löschen von Bewertungen erlauben" + "settings_use_delete_enable" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Löschen von Bewertungen erlauben" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Allow Rating Deletion" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Allow Rating Deletion" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Permitir Eliminar Calificaciones" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Permitir Eliminar Calificaciones" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Autoriser la suppression des évaluations" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Autoriser la suppression des évaluations" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "評価の削除を許可" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "評価の削除を許可" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "평가 삭제 허용" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "평가 삭제 허용" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Permitir exclusão de avaliações" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Permitir exclusão de avaliações" } } } }, - "settings_view_exit": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Schließen" + "settings_view_exit" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Schließen" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Exit" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Exit" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Salir" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Salir" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Quitter" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quitter" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "終了" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "終了" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "종료" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "종료" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Sair" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sair" } } } }, - "settings_view_show_eula": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Nutzungsbedingungen" + "settings_view_show_eula" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nutzungsbedingungen" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "EULA" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "EULA" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "EULA" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "EULA" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "CLUF" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "CLUF" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "利用規約" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "利用規約" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "이용약관" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이용약관" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Termos de uso" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Termos de uso" } } } }, - "settings_view_show_onboarding": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Einrichtung anzeigen" + "settings_view_show_onboarding" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Einrichtung anzeigen" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Show Setup" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Show Setup" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Mostrar Configuración" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostrar Configuración" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Afficher la configuration" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Afficher la configuration" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "設定を表示" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "設定を表示" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "설정 보기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "설정 보기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Mostrar configuração" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostrar configuração" } } } }, - "settings_view_show_privacy": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Datenschutzrichtlinie" + "settings_view_show_privacy" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Datenschutzrichtlinie" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Privacy Policy" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Privacy Policy" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Política de Privacidad" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Política de Privacidad" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Politique de confidentialité" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Politique de confidentialité" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "プライバシーポリシー" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "プライバシーポリシー" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "개인정보 처리방침" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "개인정보 처리방침" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Política de privacidade" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Política de privacidade" } } } }, - "settings_view_special_thanks_to_title": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Besonderer Dank" + "settings_view_special_thanks_to_title" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Besonderer Dank" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Special Thanks" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Special Thanks" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Agradecimientos Especiales" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Agradecimientos Especiales" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Remerciements spéciaux" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Remerciements spéciaux" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "スペシャルサンクス" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "スペシャルサンクス" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "특별히 감사드립니다" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "특별히 감사드립니다" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Agradecimentos especiais" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Agradecimentos especiais" } } } }, - "settings_view_why_bg_mode_body": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Die Hintergrundaktualisierung ermöglicht es iReflect, dir rechtzeitig Benachrichtigungen zu senden, auch wenn die App nicht geöffnet ist. So verpasst du nie deinen täglichen Stimmungs-Check-in." + "settings_view_why_bg_mode_body" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Die Hintergrundaktualisierung ermöglicht es iReflect, dir rechtzeitig Benachrichtigungen zu senden, auch wenn die App nicht geöffnet ist. So verpasst du nie deinen täglichen Stimmungs-Check-in." } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Background App Refresh allows iReflect to send you timely notifications even when the app isn't open. This ensures you never miss your daily mood check-in." + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Background App Refresh allows iReflect to send you timely notifications even when the app isn't open. This ensures you never miss your daily mood check-in." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "La actualización en segundo plano permite que iReflect te envíe notificaciones oportunas incluso cuando la app no está abierta. Esto asegura que nunca te pierdas tu registro diario de estado de ánimo." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "La actualización en segundo plano permite que iReflect te envíe notificaciones oportunas incluso cuando la app no está abierta. Esto asegura que nunca te pierdas tu registro diario de estado de ánimo." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "L'actualisation en arrière-plan permet à iReflect de t'envoyer des notifications à temps même lorsque l'app n'est pas ouverte. Cela garantit que tu ne manques jamais ton enregistrement quotidien d'humeur." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'actualisation en arrière-plan permet à iReflect de t'envoyer des notifications à temps même lorsque l'app n'est pas ouverte. Cela garantit que tu ne manques jamais ton enregistrement quotidien d'humeur." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "バックグラウンド更新により、アプリを開いていなくてもiReflectからタイムリーな通知を受け取れます。毎日の気分チェックインを見逃すことがありません。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "バックグラウンド更新により、アプリを開いていなくてもiReflectからタイムリーな通知を受け取れます。毎日の気分チェックインを見逃すことがありません。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "백그라운드 앱 새로고침을 사용하면 앱이 열려 있지 않아도 iReflect에서 적시에 알림을 보낼 수 있습니다. 이를 통해 매일 기분 체크인을 놓치지 않습니다." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "백그라운드 앱 새로고침을 사용하면 앱이 열려 있지 않아도 iReflect에서 적시에 알림을 보낼 수 있습니다. 이를 통해 매일 기분 체크인을 놓치지 않습니다." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "A atualização em segundo plano permite que o iReflect envie notificações no momento certo, mesmo quando o app não está aberto. Isso garante que você nunca perca seu registro diário de humor." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "A atualização em segundo plano permite que o iReflect envie notificações no momento certo, mesmo quando o app não está aberto. Isso garante que você nunca perca seu registro diário de humor." } } } }, - "settings_view_why_bg_mode_title": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Warum Hintergrundaktualisierung?" + "settings_view_why_bg_mode_title" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Warum Hintergrundaktualisierung?" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Why Background App Refresh?" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Why Background App Refresh?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Por qué actualización en segundo plano?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Por qué actualización en segundo plano?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Pourquoi l'actualisation en arrière-plan ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pourquoi l'actualisation en arrière-plan ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "なぜバックグラウンド更新が必要?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "なぜバックグラウンド更新が必要?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "왜 백그라운드 앱 새로고침이 필요한가요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "왜 백그라운드 앱 새로고침이 필요한가요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Por que atualização em segundo plano?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Por que atualização em segundo plano?" } } } }, - "Share": { - "comment": "A menu option to share a photo.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Teilen" + "Share" : { + "comment" : "A menu option to share a photo.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Teilen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Compartir" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Compartir" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Partager" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Partager" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "共有" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "共有" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "공유" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "공유" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Compartilhar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Compartilhar" } } } }, - "Share %@ %@ mood data": { - "comment": "An accessibility label for the share button, describing it as sharing mood data for a specific month.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$@ Stimmungsdaten teilen" + "Share %@ %@ mood data" : { + "comment" : "An accessibility label for the share button, describing it as sharing mood data for a specific month.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$@ Stimmungsdaten teilen" } }, - "en": { - "stringUnit": { - "state": "new", - "value": "Share %1$@ %2$@ mood data" + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Share %1$@ %2$@ mood data" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Compartir datos de ánimo de %1$@ %2$@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Compartir datos de ánimo de %1$@ %2$@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Partager les données d'humeur %1$@ %2$@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Partager les données d'humeur %1$@ %2$@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$@の気分データを共有" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$@の気分データを共有" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%1$@ %2$@ 기분 데이터 공유" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ %2$@ 기분 데이터 공유" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Compartilhar dados de humor de %1$@ %2$@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Compartilhar dados de humor de %1$@ %2$@" } } } }, - "Share Analytics": { - "comment": "A label describing the purpose of the \"Share Analytics\" toggle.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Analysen teilen" + "Share Analytics" : { + "comment" : "A label describing the purpose of the \"Share Analytics\" toggle.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Analysen teilen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Compartir analíticas" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Compartir analíticas" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Partager les analyses" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Partager les analyses" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "分析データを共有" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "分析データを共有" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "분석 데이터 공유" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "분석 데이터 공유" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Compartilhar análises" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Compartilhar análises" } } } }, - "share_view_all_moods_total_template_title": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Gesamteinträge: %d" + "Share Report" : { + "comment" : "A button that triggers the export and sharing of a user's mood report.", + "isCommentAutoGenerated" : true + }, + "share_view_all_moods_total_template_title" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gesamteinträge: %d" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Total Entries: %d" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Total Entries: %d" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Total de Entradas: %d" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Total de Entradas: %d" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Total des entrées : %d" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Total des entrées : %d" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "総エントリー数:%d" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "総エントリー数:%d" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "총 기록: %d" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "총 기록: %d" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Total de registros: %d" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Total de registros: %d" } } } }, - "share_view_current_streak_template_title": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Letzte 10 Tage" + "share_view_current_streak_template_title" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Letzte 10 Tage" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Last 10 Days" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Last 10 Days" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Últimos 10 Días" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Últimos 10 Días" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "10 derniers jours" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "10 derniers jours" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "過去10日間" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "過去10日間" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "최근 10일" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "최근 10일" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Últimos 10 dias" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Últimos 10 dias" } } } }, - "share_view_longest_streak_template_title": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Längste aufeinanderfolgende Tage mit %@" + "share_view_longest_streak_template_title" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Längste aufeinanderfolgende Tage mit %@" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Longest consecutive days I was %@" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Longest consecutive days I was %@" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Días consecutivos más largos que estuve %@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Días consecutivos más largos que estuve %@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Jours consécutifs les plus longs où j'étais %@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jours consécutifs les plus longs où j'étais %@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%@だった最長連続日数" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@だった最長連続日数" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%@ 상태였던 최장 연속 일수" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 상태였던 최장 연속 일수" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Maior sequência de dias que eu estava %@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Maior sequência de dias que eu estava %@" } } } }, - "share_view_month_moods_total_template_title": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Gesamteinträge für %@ - %d" + "share_view_month_moods_total_template_title" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gesamteinträge für %@ - %d" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Total Entries for %@ - %d" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Total Entries for %@ - %d" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Total de Entradas para %@ - %d" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Total de Entradas para %@ - %d" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Total des entrées pour %@ - %d" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Total des entrées pour %@ - %d" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "%@の総エントリー数 - %d" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@の総エントリー数 - %d" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "%@ 총 기록 - %d" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 총 기록 - %d" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Total de registros para %@ - %d" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Total de registros para %@ - %d" } } } }, - "Shown This Session": { - "comment": "A label displaying whether they have seen a tip during the current session.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "In dieser Sitzung gezeigt" + "Show weather details for each day" : { + "comment" : "A description displayed below the \"Weather\" label.", + "isCommentAutoGenerated" : true + }, + "Shown This Session" : { + "comment" : "A label displaying whether they have seen a tip during the current session.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "In dieser Sitzung gezeigt" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Mostrado esta sesión" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostrado esta sesión" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Affiché cette session" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Affiché cette session" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "このセッションで表示" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "このセッションで表示" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "이 세션에서 표시됨" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 세션에서 표시됨" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Mostrado nesta sessão" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostrado nesta sessão" } } } }, - "SIDE A": { - "comment": "The label for the left side of the tape reel.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "SEITE A" + "SIDE A" : { + "comment" : "The label for the left side of the tape reel.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "SEITE A" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "LADO A" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "LADO A" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "FACE A" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "FACE A" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "A面" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "A面" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "A면" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "A면" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "LADO A" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "LADO A" } } } }, - "SIDE B - NO RECORDING": { - "comment": "A message displayed when a user's mood entry is missing for a particular day.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "SEITE B - KEINE AUFNAHME" + "SIDE B - NO RECORDING" : { + "comment" : "A message displayed when a user's mood entry is missing for a particular day.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "SEITE B - KEINE AUFNAHME" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "LADO B - SIN GRABACIÓN" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "LADO B - SIN GRABACIÓN" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "FACE B - PAS D'ENREGISTREMENT" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "FACE B - PAS D'ENREGISTREMENT" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "B面 - 記録なし" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "B面 - 記録なし" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "B면 - 기록 없음" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "B면 - 기록 없음" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "LADO B - SEM GRAVAÇÃO" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "LADO B - SEM GRAVAÇÃO" } } } }, - "Simply\nKnow Yourself": { - "comment": "The title of the first section in the Minimal marketing content view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Erkenne dich\neinfach selbst" + "Simply\nKnow Yourself" : { + "comment" : "The title of the first section in the Minimal marketing content view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erkenne dich\neinfach selbst" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Simplemente\nconócete" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Simplemente\nconócete" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Simplement\nconnais-toi" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Simplement\nconnais-toi" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "シンプルに\n自分を知ろう" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "シンプルに\n自分を知ろう" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "간단히\n자신을 알아보세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "간단히\n자신을 알아보세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Simplesmente\nconheça-se" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Simplesmente\nconheça-se" } } } }, - "Skip subscription and complete setup": { - "comment": "A button label that says \"Skip subscription and complete setup\". It's used in the \"OnboardingSubscription\" view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Abonnement überspringen und Einrichtung abschließen" + "Skip subscription and complete setup" : { + "comment" : "A button label that says \"Skip subscription and complete setup\". It's used in the \"OnboardingSubscription\" view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abonnement überspringen und Einrichtung abschließen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Omitir suscripción y completar configuración" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Omitir suscripción y completar configuración" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ignorer l'abonnement et terminer la configuration" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ignorer l'abonnement et terminer la configuration" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "サブスクリプションをスキップしてセットアップを完了" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "サブスクリプションをスキップしてセットアップを完了" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "구독 건너뛰고 설정 완료" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "구독 건너뛰고 설정 완료" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Pular assinatura e concluir configuração" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pular assinatura e concluir configuração" } } } }, - "Start": { - "comment": "A button label that starts an animation.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Start" + "Start" : { + "comment" : "A button label that starts an animation.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Start" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Iniciar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Iniciar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Démarrer" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Démarrer" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "開始" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "開始" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "시작" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "시작" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Iniciar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Iniciar" } } } }, - "Start your streak!": { - "comment": "A title displayed in the center of the expanded view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Starte deine Serie!" + "START" : { + "comment" : "A label for the start date in the date range picker.", + "isCommentAutoGenerated" : true + }, + "Start your streak!" : { + "comment" : "A title displayed in the center of the expanded view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Starte deine Serie!" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¡Comienza tu racha!" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¡Comienza tu racha!" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Commencez votre série !" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Commencez votre série !" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "連続記録を始めよう!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "連続記録を始めよう!" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "연속 기록을 시작하세요!" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "연속 기록을 시작하세요!" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Comece sua sequência!" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comece sua sequência!" } } } }, - "Streak: %lld days": { - "comment": "A main text label in the expanded view of the live activity. The text changes based on whether the user has logged their mood today or not. If they have, it shows the current streak in days. If not", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Serie: %lld Tage" + "Streak: %lld days" : { + "comment" : "A main text label in the expanded view of the live activity. The text changes based on whether the user has logged their mood today or not. If they have, it shows the current streak in days. If not", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Serie: %lld Tage" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Racha: %lld días" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Racha: %lld días" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Série : %lld jours" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Série : %lld jours" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "連続: %lld日" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "連続: %lld日" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "연속: %lld일" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "연속: %lld일" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Sequência: %lld dias" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sequência: %lld dias" } } } }, - "Subscribe": { - "comment": "A button label that says \"Subscribe\".", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Abonnieren" + "Subscribe" : { + "comment" : "A button label that says \"Subscribe\".", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abonnieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Suscribirse" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suscribirse" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "S'abonner" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "S'abonner" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "登録する" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "登録する" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "구독" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "구독" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Assinar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Assinar" } } } }, - "subscription_status_active": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Aktiv" + "subscription_status_active" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aktiv" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Active" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Active" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Activa" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activa" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Actif" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Actif" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "有効" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "有効" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "활성" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "활성" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Ativo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ativo" } } } }, - "subscription_status_expires": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Läuft bald ab" + "subscription_status_expires" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Läuft bald ab" } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "Expires Soon" + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Expires Soon" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Expira Pronto" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Expira Pronto" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Expire bientôt" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Expire bientôt" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "まもなく期限切れ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "まもなく期限切れ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "곧 만료" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "곧 만료" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Expira em breve" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Expira em breve" } } } }, - "Swipe right to continue": { - "comment": "A hint that appears when a user swipes to the next onboarding step.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Nach rechts wischen zum Fortfahren" + "Swipe right to continue" : { + "comment" : "A hint that appears when a user swipes to the next onboarding step.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nach rechts wischen zum Fortfahren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Desliza a la derecha para continuar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desliza a la derecha para continuar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Balayez vers la droite pour continuer" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Balayez vers la droite pour continuer" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "右にスワイプして続ける" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "右にスワイプして続ける" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오른쪽으로 스와이프하여 계속" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오른쪽으로 스와이프하여 계속" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Deslize para a direita para continuar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deslize para a direita para continuar" } } } }, - "Swipe to get started": { - "comment": "A hint displayed below the feature rows, instructing users to swipe to continue.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wische, um loszulegen" + "Swipe to get started" : { + "comment" : "A hint displayed below the feature rows, instructing users to swipe to continue.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wische, um loszulegen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Desliza para empezar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desliza para empezar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Glisse pour commencer" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Glisse pour commencer" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "スワイプして始めよう" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "スワイプして始めよう" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "스와이프하여 시작하기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "스와이프하여 시작하기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Deslize para começar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deslize para começar" } } } }, - "Swipe to the next onboarding step": { - "comment": "An accessibility hint that describes the action to take to progress to the next onboarding step.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wischen zum nächsten Einführungsschritt" + "Swipe to the next onboarding step" : { + "comment" : "An accessibility hint that describes the action to take to progress to the next onboarding step.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wischen zum nächsten Einführungsschritt" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Desliza al siguiente paso de introducción" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desliza al siguiente paso de introducción" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Balayez vers l'étape suivante" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Balayez vers l'étape suivante" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "次のオンボーディングステップにスワイプ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "次のオンボーディングステップにスワイプ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "다음 온보딩 단계로 스와이프" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "다음 온보딩 단계로 스와이프" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Deslize para o próximo passo de introdução" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deslize para o próximo passo de introdução" } } } }, - "Sync mood data with Apple Health": { - "comment": "A hint that appears when the user taps the toggle to sync mood data with Apple Health.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Stimmungsdaten mit Apple Health synchronisieren" + "Sync mood data with Apple Health" : { + "comment" : "A hint that appears when the user taps the toggle to sync mood data with Apple Health.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stimmungsdaten mit Apple Health synchronisieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Sincronizar datos con Apple Health" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sincronizar datos con Apple Health" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Synchroniser les données avec Apple Health" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synchroniser les données avec Apple Health" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分データをApple Healthと同期" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分データをApple Healthと同期" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Apple Health와 기분 데이터 동기화" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apple Health와 기분 데이터 동기화" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Sincronizar dados com Apple Health" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sincronizar dados com Apple Health" } } } }, - "Syncing health data": { - "comment": "A label indicating that health data is being synced.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Gesundheitsdaten synchronisieren" + "Syncing health data" : { + "comment" : "A label indicating that health data is being synced.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gesundheitsdaten synchronisieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Sincronizando datos de salud" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sincronizando datos de salud" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Synchronisation des données de santé" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Synchronisation des données de santé" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ヘルスデータを同期中" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ヘルスデータを同期中" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "건강 데이터 동기화 중" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "건강 데이터 동기화 중" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Sincronizando dados de saúde" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sincronizando dados de saúde" } } } }, - "Take Photo": { - "comment": "A button that takes a photo using the device's camera.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Foto aufnehmen" + "Take Photo" : { + "comment" : "A button that takes a photo using the device's camera.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Foto aufnehmen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Tomar foto" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tomar foto" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Prendre une photo" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Prendre une photo" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "写真を撮る" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "写真を撮る" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사진 찍기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사진 찍기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Tirar foto" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tirar foto" } } } }, - "tap": { - "comment": "A placeholder text that appears when a user taps on a missing entry in the entry list. It's a suggestion to tap on an entry to view more details.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "tippen" + "tap" : { + "comment" : "A placeholder text that appears when a user taps on a missing entry in the entry list. It's a suggestion to tap on an entry to view more details.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "tippen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "tocar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "tocar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "appuyer" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "appuyer" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "タップ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "タップ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "탭" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "탭" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "tocar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "tocar" } } } }, - "Tap anywhere to start export": { - "comment": "A prompt displayed in the \"Live Activity Recording View\" that instructs the user to tap anywhere to start the export process.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tippe irgendwo, um den Export zu starten" + "Tap anywhere to start export" : { + "comment" : "A prompt displayed in the \"Live Activity Recording View\" that instructs the user to tap anywhere to start the export process.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tippe irgendwo, um den Export zu starten" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca en cualquier lugar para iniciar la exportación" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca en cualquier lugar para iniciar la exportación" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Touchez n'importe où pour lancer l'exportation" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Touchez n'importe où pour lancer l'exportation" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "どこかをタップしてエクスポートを開始" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "どこかをタップしてエクスポートを開始" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "아무 곳이나 탭하여 내보내기 시작" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "아무 곳이나 탭하여 내보내기 시작" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque em qualquer lugar para iniciar a exportação" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque em qualquer lugar para iniciar a exportação" } } } }, - "Tap to add": { - "comment": "A label displayed within a capsule in the entry list view, indicating that a user can tap on it to add a new entry.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Zum Hinzufügen tippen" + "Tap to add" : { + "comment" : "A label displayed within a capsule in the entry list view, indicating that a user can tap on it to add a new entry.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zum Hinzufügen tippen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca para añadir" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca para añadir" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Appuie pour ajouter" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appuie pour ajouter" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "タップして追加" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "タップして追加" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "탭하여 추가" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "탭하여 추가" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque para adicionar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque para adicionar" } } } }, - "Tap to change": { - "comment": "A description below a mood icon that explains how to change the mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Zum Ändern tippen" + "Tap to change" : { + "comment" : "A description below a mood icon that explains how to change the mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zum Ändern tippen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca para cambiar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca para cambiar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Appuie pour modifier" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appuie pour modifier" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "タップして変更" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "タップして変更" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "탭하여 변경" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "탭하여 변경" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque para alterar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque para alterar" } } } }, - "Tap to log mood": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tippe, um Stimmung zu erfassen" + "Tap to log mood" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tippe, um Stimmung zu erfassen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca para registrar tu estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca para registrar tu estado de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Touchez pour enregistrer votre humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Touchez pour enregistrer votre humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "タップして気分を記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "タップして気分を記録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "탭하여 기분 기록" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "탭하여 기분 기록" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque para registrar humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque para registrar humor" } } } }, - "Tap to log mood for this day": { - "comment": "A hint that appears when a user taps on a day with no mood logged, instructing them to log a mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tippen, um Stimmung für diesen Tag einzutragen" + "Tap to log mood for this day" : { + "comment" : "A hint that appears when a user taps on a day with no mood logged, instructing them to log a mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tippen, um Stimmung für diesen Tag einzutragen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca para registrar el ánimo de este día" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca para registrar el ánimo de este día" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Touchez pour enregistrer l'humeur de ce jour" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Touchez pour enregistrer l'humeur de ce jour" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "タップしてこの日の気分を記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "タップしてこの日の気分を記録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "탭하여 이 날의 기분 기록" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "탭하여 이 날의 기분 기록" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque para registrar o humor deste dia" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque para registrar o humor deste dia" } } } }, - "Tap to log your mood": { - "comment": "A description of an action a user can take to log their mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tippe, um deine Stimmung zu erfassen" + "Tap to log your mood" : { + "comment" : "A description of an action a user can take to log their mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tippe, um deine Stimmung zu erfassen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca para registrar tu estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca para registrar tu estado de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Appuie pour enregistrer ton humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appuie pour enregistrer ton humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "タップして気分を記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "タップして気分を記録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "탭하여 기분 기록" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "탭하여 기분 기록" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque para registrar seu humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque para registrar seu humor" } } } }, - "Tap to open app and subscribe": { - "comment": "A hint that describes the action to subscribe to the widget.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tippen, um App zu öffnen und zu abonnieren" + "Tap to open app and subscribe" : { + "comment" : "A hint that describes the action to subscribe to the widget.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tippen, um App zu öffnen und zu abonnieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca para abrir la app y suscribirte" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca para abrir la app y suscribirte" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Touchez pour ouvrir l'app et vous abonner" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Touchez pour ouvrir l'app et vous abonner" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "タップしてアプリを開き登録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "タップしてアプリを開き登録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "탭하여 앱 열고 구독" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "탭하여 앱 열고 구독" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque para abrir o app e assinar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque para abrir o app e assinar" } } } }, - "Tap to preview": { - "comment": "A text label displayed above a list of tips, instructing the user to tap on an item to view more details.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tippen für Vorschau" + "Tap to preview" : { + "comment" : "A text label displayed above a list of tips, instructing the user to tap on an item to view more details.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tippen für Vorschau" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca para vista previa" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca para vista previa" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Touchez pour prévisualiser" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Touchez pour prévisualiser" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "タップしてプレビュー" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "タップしてプレビュー" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "탭하여 미리보기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "탭하여 미리보기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque para visualizar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque para visualizar" } } } }, - "Tap to record your mood for this day": { - "comment": "A description of what a user can do to add a new entry to their mood journal.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tippe, um deine Stimmung für diesen Tag zu erfassen" + "Tap to record your mood for this day" : { + "comment" : "A description of what a user can do to add a new entry to their mood journal.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tippe, um deine Stimmung für diesen Tag zu erfassen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca para registrar tu estado de ánimo de este día" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca para registrar tu estado de ánimo de este día" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Appuie pour enregistrer ton humeur de ce jour" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appuie pour enregistrer ton humeur de ce jour" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "タップしてこの日の気分を記録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "タップしてこの日の気分を記録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "탭하여 이 날의 기분을 기록" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "탭하여 이 날의 기분을 기록" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque para registrar seu humor neste dia" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque para registrar seu humor neste dia" } } } }, - "Tap to subscribe": { - "comment": "A call-to-action label encouraging users to subscribe to the app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Zum Abonnieren tippen" + "Tap to subscribe" : { + "comment" : "A call-to-action label encouraging users to subscribe to the app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Zum Abonnieren tippen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca para suscribirte" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca para suscribirte" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Appuie pour t'abonner" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Appuie pour t'abonner" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "タップして登録" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "タップして登録" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "탭하여 구독" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "탭하여 구독" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque para assinar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque para assinar" } } } }, - "Tap to view or edit": { - "comment": "A hint that appears when a user taps on an entry to view or edit it.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tippen zum Anzeigen oder Bearbeiten" + "Tap to view or edit" : { + "comment" : "A hint that appears when a user taps on an entry to view or edit it.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tippen zum Anzeigen oder Bearbeiten" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca para ver o editar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca para ver o editar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Touchez pour voir ou modifier" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Touchez pour voir ou modifier" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "タップして表示または編集" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "タップして表示または編集" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "탭하여 보기 또는 편집" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "탭하여 보기 또는 편집" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque para ver ou editar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque para ver ou editar" } } } }, - "Tap to vote": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tippen zum Abstimmen" + "Tap to vote" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tippen zum Abstimmen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Toca para votar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toca para votar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Touchez pour voter" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Touchez pour voter" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "タップして投票" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "タップして投票" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "탭하여 투표" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "탭하여 투표" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Toque para votar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Toque para votar" } } } }, - "Test All Notifications": { - "comment": "A button label that tests sending notifications.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Alle Benachrichtigungen testen" + "Test All Notifications" : { + "comment" : "A button label that tests sending notifications.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alle Benachrichtigungen testen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Probar todas las notificaciones" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Probar todas las notificaciones" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Tester toutes les notifications" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tester toutes les notifications" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "すべての通知をテスト" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "すべての通知をテスト" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "모든 알림 테스트" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "모든 알림 테스트" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Testar todas as notificações" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Testar todas as notificações" } } } }, - "Test builds only": { - "comment": "A section header that indicates that the settings view contains only test data.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Nur Test-Builds" + "Test builds only" : { + "comment" : "A section header that indicates that the settings view contains only test data.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nur Test-Builds" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Solo versiones de prueba" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Solo versiones de prueba" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Versions de test uniquement" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Versions de test uniquement" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "テストビルドのみ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "テストビルドのみ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "테스트 빌드만" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "테스트 빌드만" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Apenas versões de teste" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Apenas versões de teste" } } } }, - "THE": { - "comment": "The first word of the title of the magazine.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "DAS" + "THE" : { + "comment" : "The first word of the title of the magazine.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "DAS" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "EL" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "EL" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "L'" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "THE" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "THE" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "THE" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "THE" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "A" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "A" } } } }, - "THE ART\nOF FEELING": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "DIE KUNST\nDES FÜHLENS" + "THE ART\nOF FEELING" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "DIE KUNST\nDES FÜHLENS" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "EL ARTE\nDE SENTIR" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "EL ARTE\nDE SENTIR" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "L'ART\nDE RESSENTIR" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'ART\nDE RESSENTIR" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "感じる\nアート" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "感じる\nアート" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "느낌의\n예술" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "느낌의\n예술" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "A ARTE\nDE SENTIR" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "A ARTE\nDE SENTIR" } } } }, - "Themes": { - "comment": "The title of the view where they can choose different themes.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Themes" + "Themes" : { + "comment" : "The title of the view where they can choose different themes.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Themes" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Temas" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Temas" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Thèmes" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Thèmes" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "テーマ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "テーマ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "테마" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "테마" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Temas" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Temas" } } } }, - "Themes set all four options at once": { - "comment": "An explanatory note about how themes affect all four settings.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Themes setzen alle vier Optionen auf einmal" + "Themes set all four options at once" : { + "comment" : "An explanatory note about how themes affect all four settings.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Themes setzen alle vier Optionen auf einmal" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Los temas configuran las cuatro opciones a la vez" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Los temas configuran las cuatro opciones a la vez" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Les thèmes définissent les quatre options à la fois" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Les thèmes définissent les quatre options à la fois" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "テーマは4つのオプションを一度に設定します" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "テーマは4つのオプションを一度に設定します" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "테마는 네 가지 옵션을 한 번에 설정합니다" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "테마는 네 가지 옵션을 한 번에 설정합니다" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Os temas definem as quatro opções de uma vez" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Os temas definem as quatro opções de uma vez" } } } }, - "This theme includes": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Dieses Theme enthält" + "This report contains your personal mood data and journal notes. Only share it with people you trust." : { + "comment" : "A message displayed in the \"Privacy Notice\" confirmation dialog, explaining the privacy implications of sharing a user's mood report.", + "isCommentAutoGenerated" : true + }, + "This theme includes" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dieses Theme enthält" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Este tema incluye" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Este tema incluye" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Ce thème inclut" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ce thème inclut" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "このテーマに含まれるもの" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "このテーマに含まれるもの" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "이 테마에 포함된 것" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 테마에 포함된 것" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Este tema inclui" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Este tema inclui" } } } }, - "Tip: \"Today\" works great for evening reminders": { - "comment": "A tip displayed below the day rating option, providing guidance on how to use the \"Today\" option effectively.", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tipp: „Heute\" eignet sich gut für Abenderinnerungen" + "Tip: \"Today\" works great for evening reminders" : { + "comment" : "A tip displayed below the day rating option, providing guidance on how to use the \"Today\" option effectively.", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tipp: „Heute\" eignet sich gut für Abenderinnerungen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Consejo: \"Hoy\" funciona muy bien para recordatorios nocturnos" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Consejo: \"Hoy\" funciona muy bien para recordatorios nocturnos" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Astuce : « Aujourd'hui » fonctionne bien pour les rappels du soir" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Astuce : « Aujourd'hui » fonctionne bien pour les rappels du soir" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ヒント:「今日」は夜のリマインダーに最適です" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ヒント:「今日」は夜のリマインダーに最適です" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "팁: \"오늘\"은 저녁 알림에 잘 맞습니다" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "팁: \"오늘\"은 저녁 알림에 잘 맞습니다" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Dica: \"Hoje\" funciona muito bem para lembretes noturnos" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dica: \"Hoje\" funciona muito bem para lembretes noturnos" } } } }, - "Tips Enabled": { - "comment": "A toggle that enables or disables tips in the app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tipps aktiviert" + "Tips Enabled" : { + "comment" : "A toggle that enables or disables tips in the app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tipps aktiviert" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Consejos activados" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Consejos activados" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Conseils activés" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Conseils activés" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ヒントを有効化" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ヒントを有効化" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "팁 활성화됨" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "팁 활성화됨" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Dicas ativadas" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dicas ativadas" } } } }, - "Tips Preview": { - "comment": "A label for a view that previews all tip modals.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Tipps-Vorschau" + "Tips Preview" : { + "comment" : "A label for a view that previews all tip modals.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tipps-Vorschau" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Vista previa de consejos" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vista previa de consejos" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Aperçu des conseils" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aperçu des conseils" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ヒントのプレビュー" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ヒントのプレビュー" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "팁 미리보기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "팁 미리보기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Visualização de dicas" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Visualização de dicas" } } } }, - "Today": { - "comment": "A label displayed next to the icon representing today's mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Heute" + "Today" : { + "comment" : "A label displayed next to the icon representing today's mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Heute" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Hoy" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hoy" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Aujourd'hui" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aujourd'hui" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今日" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Hoje" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hoje" } } } }, - "Today you logged feeling %@.": { - "comment": "A response to a \"Check Today's Mood\" intent, including the name of the mood logged.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Heute hast du %@ eingetragen." + "Today you logged feeling %@." : { + "comment" : "A response to a \"Check Today's Mood\" intent, including the name of the mood logged.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Heute hast du %@ eingetragen." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Hoy registraste sentirte %@." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hoy registraste sentirte %@." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Aujourd'hui, vous avez enregistré %@." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aujourd'hui, vous avez enregistré %@." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今日は%@と記録しました。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日は%@と記録しました。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘 %@로 기록했습니다." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘 %@로 기록했습니다." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Hoje você registrou sentir-se %@." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hoje você registrou sentir-se %@." } } } }, - "Today: %@": { - "comment": "A label displaying the date of the user's last logged mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Heute: %@" + "Today: %@" : { + "comment" : "A label displaying the date of the user's last logged mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Heute: %@" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Hoy: %@" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hoy: %@" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Aujourd'hui : %@" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aujourd'hui : %@" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今日: %@" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日: %@" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘: %@" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘: %@" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Hoje: %@" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hoje: %@" } } } }, - "Today's mood": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Heutige Stimmung" + "Today's mood" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Heutige Stimmung" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Estado de ánimo de hoy" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Estado de ánimo de hoy" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Humeur du jour" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Humeur du jour" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今日の気分" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日の気分" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘의 기분" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘의 기분" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Humor de hoje" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Humor de hoje" } } } }, - "Today's Mood": { - "comment": "Title of an app shortcut that checks the user's mood for the current day.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Heutige Stimmung" + "Today's Mood" : { + "comment" : "Title of an app shortcut that checks the user's mood for the current day.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Heutige Stimmung" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Estado de ánimo de hoy" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Estado de ánimo de hoy" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Humeur du jour" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Humeur du jour" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今日の気分" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日の気分" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘의 기분" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘의 기분" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Humor de hoje" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Humor de hoje" } } } }, - "Toggle anonymous usage analytics": { - "comment": "A hint that describes the functionality of the \"Share Analytics\" toggle.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Anonyme Nutzungsanalysen umschalten" + "Toggle anonymous usage analytics" : { + "comment" : "A hint that describes the functionality of the \"Share Analytics\" toggle.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Anonyme Nutzungsanalysen umschalten" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Alternar analíticas de uso anónimas" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alternar analíticas de uso anónimas" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Basculer les analyses d'utilisation anonymes" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Basculer les analyses d'utilisation anonymes" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "匿名の使用分析を切り替え" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "匿名の使用分析を切り替え" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "익명 사용 분석 전환" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "익명 사용 분석 전환" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Alternar análises de uso anônimas" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alternar análises de uso anônimas" } } } }, - "Toggle vibration feedback when voting": { - "comment": "A toggle that lets users enable or disable vibration feedback when voting.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Vibrationsfeedback beim Abstimmen umschalten" + "Toggle vibration feedback when voting" : { + "comment" : "A toggle that lets users enable or disable vibration feedback when voting.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vibrationsfeedback beim Abstimmen umschalten" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Activar vibración al votar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activar vibración al votar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Activer le retour vibratoire lors du vote" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Activer le retour vibratoire lors du vote" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "投票時の振動フィードバックを切り替え" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "投票時の振動フィードバックを切り替え" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "투표 시 진동 피드백 전환" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "투표 시 진동 피드백 전환" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Alternar vibração ao votar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alternar vibração ao votar" } } } }, - "Top Mood": { - "comment": "A label displayed above the top mood value in the month card.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Häufigste Stimmung" + "Top Mood" : { + "comment" : "A label displayed above the top mood value in the month card.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Häufigste Stimmung" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Estado de ánimo principal" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Estado de ánimo principal" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Humeur principale" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Humeur principale" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "よくある気分" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "よくある気分" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "주요 기분" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "주요 기분" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Humor principal" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Humor principal" } } } }, - "Track Your Mood": { - "comment": "A call-to-action prompt encouraging users to subscribe to the app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Verfolge deine Stimmung" + "Track Your Mood" : { + "comment" : "A call-to-action prompt encouraging users to subscribe to the app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verfolge deine Stimmung" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Registra tu estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Registra tu estado de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Suis ton humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suis ton humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分を記録しよう" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分を記録しよう" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분을 기록하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분을 기록하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Acompanhe seu humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Acompanhe seu humor" } } } }, - "Track your mood, discover patterns,\nand understand yourself better.": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Verfolge deine Stimmung, entdecke Muster\nund verstehe dich selbst besser." + "Track your mood, discover patterns,\nand understand yourself better." : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verfolge deine Stimmung, entdecke Muster\nund verstehe dich selbst besser." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Rastrea tu estado de ánimo, descubre patrones\ny entiéndete mejor." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rastrea tu estado de ánimo, descubre patrones\ny entiéndete mejor." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Suivez votre humeur, découvrez des schémas\net comprenez-vous mieux." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suivez votre humeur, découvrez des schémas\net comprenez-vous mieux." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分を記録し、パターンを発見し、\n自分をもっと理解しよう。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分を記録し、パターンを発見し、\n自分をもっと理解しよう。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분을 추적하고, 패턴을 발견하고,\n자신을 더 잘 이해하세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분을 추적하고, 패턴을 발견하고,\n자신을 더 잘 이해하세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Rastreie seu humor, descubra padrões\ne entenda-se melhor." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rastreie seu humor, descubra padrões\ne entenda-se melhor." } } } }, - "Trial expired": { - "comment": "A message displayed when a user's free trial has expired.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Testphase abgelaufen" + "Trial expired" : { + "comment" : "A message displayed when a user's free trial has expired.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Testphase abgelaufen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Prueba expirada" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Prueba expirada" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Essai expiré" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Essai expiré" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "試用期間終了" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "試用期間終了" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "체험 기간 만료" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "체험 기간 만료" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Teste expirado" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Teste expirado" } } } }, - "Trial expires in ": { - "comment": "A prefix for the text that displays how many days are left in a user's free trial.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Testphase läuft ab in " + "Trial expires in " : { + "comment" : "A prefix for the text that displays how many days are left in a user's free trial.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Testphase läuft ab in " } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "La prueba expira en " + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "La prueba expira en " } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "L'essai expire dans " + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "L'essai expire dans " } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "試用期間終了まで" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "試用期間終了まで" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "체험 기간 만료까지 " + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "체험 기간 만료까지 " } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Teste expira em " + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Teste expira em " } } } }, - "Trial Start Date": { - "comment": "A label describing the trial start date setting.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Teststart-Datum" + "Trial Start Date" : { + "comment" : "A label describing the trial start date setting.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Teststart-Datum" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Fecha de inicio de prueba" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Fecha de inicio de prueba" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Date de début d'essai" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Date de début d'essai" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "試用開始日" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "試用開始日" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "체험 시작 날짜" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "체험 시작 날짜" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Data de início do teste" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Data de início do teste" } } } }, - "Try Again": { - "comment": "A button that allows the user to try authenticating again if the initial attempt fails.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Erneut versuchen" + "Try Again" : { + "comment" : "A button that allows the user to try authenticating again if the initial attempt fails.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Erneut versuchen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Intentar de nuevo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Intentar de nuevo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Réessayer" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Réessayer" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "再試行" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "再試行" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "다시 시도" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "다시 시도" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Tentar novamente" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tentar novamente" } } } }, - "Unable to verify your identity. Please try again.": { - "comment": "An alert message displayed when biometric authentication fails.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Identität konnte nicht verifiziert werden. Bitte erneut versuchen." + "Unable to verify your identity. Please try again." : { + "comment" : "An alert message displayed when biometric authentication fails.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Identität konnte nicht verifiziert werden. Bitte erneut versuchen." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "No se pudo verificar tu identidad. Por favor, inténtalo de nuevo." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "No se pudo verificar tu identidad. Por favor, inténtalo de nuevo." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Impossible de vérifier ton identité. Réessaye." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Impossible de vérifier ton identité. Réessaye." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "本人確認ができませんでした。もう一度お試しください。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "本人確認ができませんでした。もう一度お試しください。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "신원을 확인할 수 없습니다. 다시 시도해 주세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "신원을 확인할 수 없습니다. 다시 시도해 주세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Não foi possível verificar sua identidade. Tente novamente." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Não foi possível verificar sua identidade. Tente novamente." } } } }, - "Understand\nYourself Deeper": { - "comment": "A title displayed in the premium subscription content.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Verstehe dich\ntiefer" + "Understand\nYourself Deeper" : { + "comment" : "A title displayed in the premium subscription content.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verstehe dich\ntiefer" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Entiéndete\nmás profundamente" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entiéndete\nmás profundamente" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Comprenez-vous\nplus profondément" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Comprenez-vous\nplus profondément" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "より深く\n自分を理解しよう" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "より深く\n自分を理解しよう" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "자신을\n더 깊이 이해하세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "자신을\n더 깊이 이해하세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Entenda-se\nmais profundamente" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entenda-se\nmais profundamente" } } } }, - "Unlock": { - "comment": "A button label that says \"Unlock\".", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Entsperren" + "Unlock" : { + "comment" : "A button label that says \"Unlock\".", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Entsperren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Desbloquear" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desbloquear" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Déverrouiller" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Déverrouiller" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "ロック解除" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "ロック解除" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "잠금 해제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "잠금 해제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Desbloquear" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desbloquear" } } } }, - "Unlock AI-Powered Insights": { - "comment": "A title for a button that allows users to unlock premium insights.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "KI-gestützte Erkenntnisse freischalten" + "Unlock AI Reports" : { + "comment" : "A button label that unlocks AI-generated mood reports.", + "isCommentAutoGenerated" : true + }, + "Unlock AI-Powered Insights" : { + "comment" : "A title for a button that allows users to unlock premium insights.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "KI-gestützte Erkenntnisse freischalten" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Desbloquea información con IA" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desbloquea información con IA" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Débloque les analyses IA" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Débloque les analyses IA" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "AI搭載のインサイトを解除" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "AI搭載のインサイトを解除" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "AI 기반 인사이트 잠금 해제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "AI 기반 인사이트 잠금 해제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Desbloqueie insights com IA" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desbloqueie insights com IA" } } } }, - "Unlock Full History": { - "comment": "A button label that appears when a user is on a free trial and wants to unlock all of their mood history.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Vollständige Historie freischalten" + "Unlock Full History" : { + "comment" : "A button label that appears when a user is on a free trial and wants to unlock all of their mood history.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vollständige Historie freischalten" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Desbloquear historial completo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desbloquear historial completo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Débloquer l'historique complet" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Débloquer l'historique complet" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "完全な履歴をアンロック" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "完全な履歴をアンロック" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "전체 기록 잠금 해제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "전체 기록 잠금 해제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Desbloquear histórico completo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desbloquear histórico completo" } } } }, - "Unlock Premium": { - "comment": "A button label that says \"Unlock Premium\".", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Premium freischalten" + "Unlock Premium" : { + "comment" : "A button label that says \"Unlock Premium\".", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Premium freischalten" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Desbloquear Premium" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desbloquear Premium" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Débloquer Premium" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Débloquer Premium" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "プレミアムを解除" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "プレミアムを解除" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "프리미엄 잠금 해제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "프리미엄 잠금 해제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Desbloquear Premium" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desbloquear Premium" } } } }, - "Unlock the complete story\nof your emotional landscape.": { - "comment": "A description of the premium edition of the app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Enthülle die ganze Geschichte\ndeiner emotionalen Landschaft." + "Unlock Reports" : { + "comment" : "A button label that says \"Unlock Reports\".", + "isCommentAutoGenerated" : true + }, + "Unlock the complete story\nof your emotional landscape." : { + "comment" : "A description of the premium edition of the app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Enthülle die ganze Geschichte\ndeiner emotionalen Landschaft." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Desbloquea la historia completa\nde tu paisaje emocional." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desbloquea la historia completa\nde tu paisaje emocional." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Débloquez l'histoire complète\nde votre paysage émotionnel." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Débloquez l'histoire complète\nde votre paysage émotionnel." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "感情の風景の\n完全なストーリーを解き放とう。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "感情の風景の\n完全なストーリーを解き放とう。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "감정 풍경의\n완전한 이야기를 열어보세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "감정 풍경의\n완전한 이야기를 열어보세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Desbloqueie a história completa\nda sua paisagem emocional." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desbloqueie a história completa\nda sua paisagem emocional." } } } }, - "Unlock the Full\nExperience": { - "comment": "The title of the section that describes the full experience unlocked with the subscription.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Schalte das volle\nErlebnis frei" + "Unlock the Full\nExperience" : { + "comment" : "The title of the section that describes the full experience unlocked with the subscription.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Schalte das volle\nErlebnis frei" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Desbloquea la\nexperiencia completa" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desbloquea la\nexperiencia completa" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Débloquez\nl'expérience complète" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Débloquez\nl'expérience complète" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "フル体験を\nアンロック" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "フル体験を\nアンロック" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "전체 경험을\n잠금 해제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "전체 경험을\n잠금 해제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Desbloqueie a\nexperiência completa" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desbloqueie a\nexperiência completa" } } } }, - "Unlock Year Overview": { - "comment": "A button label that appears when the user is not a premium subscriber, encouraging them to subscribe to unlock more features.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Jahresübersicht freischalten" + "Unlock Year Overview" : { + "comment" : "A button label that appears when the user is not a premium subscriber, encouraging them to subscribe to unlock more features.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jahresübersicht freischalten" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Desbloquear vista anual" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desbloquear vista anual" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Débloquer la vue annuelle" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Débloquer la vue annuelle" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "年間概要をアンロック" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "年間概要をアンロック" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "연간 개요 잠금 해제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "연간 개요 잠금 해제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Desbloquear visão anual" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Desbloquear visão anual" } } } }, - "UNLOCK YOUR\nFULL SIGNAL": { - "comment": "A title displayed in neon text on the premium subscription content page.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "SCHALTE DEIN\nVOLLES SIGNAL FREI" + "UNLOCK YOUR\nFULL SIGNAL" : { + "comment" : "A title displayed in neon text on the premium subscription content page.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "SCHALTE DEIN\nVOLLES SIGNAL FREI" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "DESBLOQUEA TU\nSEÑAL COMPLETA" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "DESBLOQUEA TU\nSEÑAL COMPLETA" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "DÉBLOQUEZ VOTRE\nSIGNAL COMPLET" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "DÉBLOQUEZ VOTRE\nSIGNAL COMPLET" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "フルシグナルを\nアンロック" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "フルシグナルを\nアンロック" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "전체 신호를\n잠금 해제" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "전체 신호를\n잠금 해제" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "DESBLOQUEIE SEU\nSINAL COMPLETO" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "DESBLOQUEIE SEU\nSINAL COMPLETO" } } } }, - "Use device passcode": { - "comment": "A button label that allows users to use their device passcode for authentication.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Gerätecode verwenden" + "Use device passcode" : { + "comment" : "A button label that allows users to use their device passcode for authentication.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Gerätecode verwenden" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Usar código del dispositivo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Usar código del dispositivo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Utiliser le code de l'appareil" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Utiliser le code de l'appareil" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "デバイスのパスコードを使用" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "デバイスのパスコードを使用" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기기 암호 사용" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기기 암호 사용" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Usar código do dispositivo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Usar código do dispositivo" } } } }, - "Use your camera": { - "comment": "A description of how to use the camera to take a photo.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Kamera verwenden" + "Use your camera" : { + "comment" : "A description of how to use the camera to take a photo.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kamera verwenden" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Usa tu cámara" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Usa tu cámara" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Utilise ton appareil photo" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Utilise ton appareil photo" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "カメラを使用" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "カメラを使用" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "카메라 사용" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "카메라 사용" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Use sua câmera" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Use sua câmera" } } } }, - "Vibrate when logging mood": { - "comment": "A description of the feature that lets users know when their device vibrates when they log a mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Beim Stimmungseintrag vibrieren" + "Vibrate when logging mood" : { + "comment" : "A description of the feature that lets users know when their device vibrates when they log a mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Beim Stimmungseintrag vibrieren" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Vibrar al registrar estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vibrar al registrar estado de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Vibrer lors de l'enregistrement de l'humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vibrer lors de l'enregistrement de l'humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分記録時に振動" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分記録時に振動" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 기록 시 진동" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 기록 시 진동" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Vibrar ao registrar humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vibrar ao registrar humor" } } } }, - "View all tip modals": { - "comment": "A description of what the \"Tips Preview\" button does.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Alle Tipp-Dialoge anzeigen" + "View all tip modals" : { + "comment" : "A description of what the \"Tips Preview\" button does.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Alle Tipp-Dialoge anzeigen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Ver todos los diálogos de consejos" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ver todos los diálogos de consejos" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Voir toutes les fenêtres de conseils" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voir toutes les fenêtres de conseils" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "すべてのヒントモーダルを表示" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "すべてのヒントモーダルを表示" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "모든 팁 모달 보기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "모든 팁 모달 보기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Ver todos os modais de dicas" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ver todos os modais de dicas" } } } }, - "View Full Paywall": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Vollständige Paywall anzeigen" + "View Full Paywall" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vollständige Paywall anzeigen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Ver paywall completo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ver paywall completo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Voir le paywall complet" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voir le paywall complet" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "完全なペイウォールを表示" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "完全なペイウォールを表示" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "전체 페이월 보기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "전체 페이월 보기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Ver paywall completo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ver paywall completo" } } } }, - "View the app introduction again": { - "comment": "A button that allows a user to view the app's introductory screen again.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "App-Einführung erneut anzeigen" + "View the app introduction again" : { + "comment" : "A button that allows a user to view the app's introductory screen again.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "App-Einführung erneut anzeigen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Ver la introducción de la app de nuevo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ver la introducción de la app de nuevo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Revoir l'introduction de l'app" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Revoir l'introduction de l'app" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "アプリの紹介を再表示" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アプリの紹介を再表示" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "앱 소개 다시 보기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "앱 소개 다시 보기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Ver introdução do app novamente" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ver introdução do app novamente" } } } }, - "view_no_data": { - "extractionState": "manual", - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Keine Einträge vorhanden." + "view_no_data" : { + "extractionState" : "manual", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Keine Einträge vorhanden." } }, - "en": { - "stringUnit": { - "state": "translated", - "value": "There are no entries." + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "There are no entries." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "No hay entradas." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "No hay entradas." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Aucune entrée." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aucune entrée." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "エントリーがありません。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "エントリーがありません。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기록이 없습니다." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기록이 없습니다." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Não há registros." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Não há registros." } } } }, - "Vote Mood": { - "comment": "Title of the app intent that allows users to vote for their mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Stimmung wählen" + "Vote Mood" : { + "comment" : "Title of the app intent that allows users to vote for their mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Stimmung wählen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Votar estado de ánimo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votar estado de ánimo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Voter l'humeur" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voter l'humeur" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分に投票" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分に投票" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 투표" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 투표" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Votar humor" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votar humor" } } } }, - "Voting closes at midnight": { - "comment": "A description displayed below the \"Log now\" text in the expanded view of the live activity widget.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Abstimmung endet um Mitternacht" + "Voting closes at midnight" : { + "comment" : "A description displayed below the \"Log now\" text in the expanded view of the live activity widget.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abstimmung endet um Mitternacht" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "La votación cierra a medianoche" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "La votación cierra a medianoche" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Le vote se termine à minuit" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Le vote se termine à minuit" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "投票は深夜に締め切られます" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "投票は深夜に締め切られます" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "투표는 자정에 마감됩니다" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "투표는 자정에 마감됩니다" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Votação encerra à meia-noite" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votação encerra à meia-noite" } } } }, - "Voting Layout": { - "comment": "The title of the view that lets users select their preferred voting layout.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Abstimmungs-Layout" + "Voting Layout" : { + "comment" : "The title of the view that lets users select their preferred voting layout.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Abstimmungs-Layout" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Diseño de votación" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Diseño de votación" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Disposition du vote" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Disposition du vote" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "投票レイアウト" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "投票レイアウト" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "투표 레이아웃" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "투표 레이아웃" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Layout de votação" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Layout de votação" } } } }, - "Watch Yourself\nBloom": { - "comment": "A title describing the premium subscription experience.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Beobachte dich\nerblühen" + "Watch Yourself\nBloom" : { + "comment" : "A title describing the premium subscription experience.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Beobachte dich\nerblühen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Mírate\nflorecer" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mírate\nflorecer" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Regardez-vous\nfleurir" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Regardez-vous\nfleurir" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "自分が\n花開くのを見よう" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "自分が\n花開くのを見よう" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "스스로\n꽃피는 것을 지켜보세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "스스로\n꽃피는 것을 지켜보세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Veja-se\nflorescer" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Veja-se\nflorescer" } } } }, - "WeekTotalTemplate body": { - "comment": "The body text for the WeekTotalTemplate view.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "WeekTotalTemplate body" + "Weather" : { + "comment" : "A label displayed above the weather information in the entry detail view.", + "isCommentAutoGenerated" : true + }, + "WeekTotalTemplate body" : { + "comment" : "The body text for the WeekTotalTemplate view.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "WeekTotalTemplate body" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "WeekTotalTemplate body" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "WeekTotalTemplate body" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "WeekTotalTemplate body" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "WeekTotalTemplate body" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "WeekTotalTemplate body" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "WeekTotalTemplate body" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "WeekTotalTemplate body" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "WeekTotalTemplate body" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "WeekTotalTemplate body" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "WeekTotalTemplate body" } } } }, - "Welcome to Reflect": { - "comment": "The title of the welcome screen in the onboarding flow.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Willkommen bei Reflect" + "Welcome to Reflect" : { + "comment" : "The title of the welcome screen in the onboarding flow.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Willkommen bei Reflect" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Bienvenido a Reflect" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bienvenido a Reflect" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Bienvenue dans Reflect" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bienvenue dans Reflect" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "Reflectへようこそ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflectへようこそ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "Reflect에 오신 것을 환영합니다" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Reflect에 오신 것을 환영합니다" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Bem-vindo ao Reflect" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bem-vindo ao Reflect" } } } }, - "When should we\nremind you?": { - "comment": "A title displayed on the onboarding screen related to when the user should be reminded to take their medication.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wann sollen wir\ndich erinnern?" + "When should we\nremind you?" : { + "comment" : "A title displayed on the onboarding screen related to when the user should be reminded to take their medication.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wann sollen wir\ndich erinnern?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Cuándo debemos\nrecordarte?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Cuándo debemos\nrecordarte?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Quand devons-nous\nvous rappeler ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quand devons-nous\nvous rappeler ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "いつ\nリマインドしましょうか?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "いつ\nリマインドしましょうか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "언제\n알려드릴까요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "언제\n알려드릴까요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Quando devemos\nlembrá-lo?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quando devemos\nlembrá-lo?" } } } }, - "When would you like to be reminded to log your mood?": { - "comment": "A prompt asking the user when they would like to be reminded to log their mood.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wann möchtest du an die Stimmungserfassung erinnert werden?" + "When would you like to be reminded to log your mood?" : { + "comment" : "A prompt asking the user when they would like to be reminded to log their mood.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wann möchtest du an die Stimmungserfassung erinnert werden?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Cuándo te gustaría que te recordemos registrar tu estado de ánimo?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Cuándo te gustaría que te recordemos registrar tu estado de ánimo?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Quand veux-tu qu'on te rappelle d'enregistrer ton humeur ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quand veux-tu qu'on te rappelle d'enregistrer ton humeur ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分を記録するリマインダーをいつ受け取りたいですか?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分を記録するリマインダーをいつ受け取りたいですか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분을 기록하라는 알림을 언제 받고 싶으세요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분을 기록하라는 알림을 언제 받고 싶으세요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Quando você gostaria de ser lembrado de registrar seu humor?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quando você gostaria de ser lembrado de registrar seu humor?" } } } }, - "When you get your reminder, do you want to rate today or yesterday?": { - "comment": "A description below the \"Which day should you rate?\" title, explaining that the user should choose whether they want to rate the current or previous day.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Wenn du deine Erinnerung erhältst, möchtest du heute oder gestern bewerten?" + "When you get your reminder, do you want to rate today or yesterday?" : { + "comment" : "A description below the \"Which day should you rate?\" title, explaining that the user should choose whether they want to rate the current or previous day.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wenn du deine Erinnerung erhältst, möchtest du heute oder gestern bewerten?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Cuando recibas el recordatorio, ¿quieres calificar hoy o ayer?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Cuando recibas el recordatorio, ¿quieres calificar hoy o ayer?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Quand tu reçois ton rappel, veux-tu noter aujourd'hui ou hier ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quand tu reçois ton rappel, veux-tu noter aujourd'hui ou hier ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "リマインダーを受け取ったとき、今日と昨日のどちらを評価しますか?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "リマインダーを受け取ったとき、今日と昨日のどちらを評価しますか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "알림을 받으면 오늘과 어제 중 어느 날을 평가하시겠어요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "알림을 받으면 오늘과 어제 중 어느 날을 평가하시겠어요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Quando receber o lembrete, quer avaliar hoje ou ontem?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quando receber o lembrete, quer avaliar hoje ou ontem?" } } } }, - "Which day should\nyou rate?": { - "comment": "A title displayed in the onboarding flow, asking the user which day they should rate.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Welchen Tag solltest\ndu bewerten?" + "Which day should\nyou rate?" : { + "comment" : "A title displayed in the onboarding flow, asking the user which day they should rate.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Welchen Tag solltest\ndu bewerten?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Qué día deberías\ncalificar?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Qué día deberías\ncalificar?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Quel jour devriez-vous\névaluer ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Quel jour devriez-vous\névaluer ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "どの日を\n評価しますか?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "どの日を\n評価しますか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "어떤 날을\n평가할까요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "어떤 날을\n평가할까요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Qual dia você\ndeve avaliar?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Qual dia você\ndeve avaliar?" } } } }, - "Why Upgrade?": { - "comment": "A button label that opens a view explaining the benefits of upgrading to the premium version of the app.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Warum upgraden?" + "Why Upgrade?" : { + "comment" : "A button label that opens a view explaining the benefits of upgrading to the premium version of the app.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Warum upgraden?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "¿Por qué actualizar?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "¿Por qué actualizar?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Pourquoi passer à la version supérieure ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pourquoi passer à la version supérieure ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "アップグレードする理由" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "アップグレードする理由" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "왜 업그레이드할까요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "왜 업그레이드할까요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Por que fazer upgrade?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Por que fazer upgrade?" } } } }, - "Write Your\nEmotional Story": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Schreibe deine\nemotionale Geschichte" + "Write Your\nEmotional Story" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Schreibe deine\nemotionale Geschichte" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Escribe tu\nhistoria emocional" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Escribe tu\nhistoria emocional" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Écrivez votre\nhistoire émotionnelle" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Écrivez votre\nhistoire émotionnelle" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "感情の物語を\n書こう" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "感情の物語を\n書こう" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "감정 이야기를\n쓰세요" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "감정 이야기를\n쓰세요" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Escreva sua\nhistória emocional" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Escreva sua\nhistória emocional" } } } }, - "Year in Review": { - "comment": "A description below the year's mood breakdown.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Jahresrückblick" + "Year in Review" : { + "comment" : "A description below the year's mood breakdown.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Jahresrückblick" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Resumen del año" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Resumen del año" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Bilan de l'année" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bilan de l'année" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "年間まとめ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "年間まとめ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "연간 리뷰" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "연간 리뷰" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Resumo do ano" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Resumo do ano" } } } }, - "You can change this anytime in Customize": { - "comment": "A hint displayed below the grid of theme cards, encouraging the user to change their theme settings.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Du kannst dies jederzeit unter Anpassen ändern" + "You can change this anytime in Customize" : { + "comment" : "A hint displayed below the grid of theme cards, encouraging the user to change their theme settings.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Du kannst dies jederzeit unter Anpassen ändern" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Puedes cambiar esto en cualquier momento en Personalizar" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Puedes cambiar esto en cualquier momento en Personalizar" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Vous pouvez changer cela à tout moment dans Personnaliser" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous pouvez changer cela à tout moment dans Personnaliser" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "カスタマイズでいつでも変更できます" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "カスタマイズでいつでも変更できます" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "사용자화에서 언제든 변경할 수 있습니다" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사용자화에서 언제든 변경할 수 있습니다" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Você pode mudar isso a qualquer momento em Personalizar" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Você pode mudar isso a qualquer momento em Personalizar" } } } }, - "You can still customize individual settings after applying a theme": { - "comment": "A note explaining that users can still customize individual settings after applying a theme.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Du kannst nach dem Anwenden eines Themes immer noch einzelne Einstellungen anpassen" + "You can still customize individual settings after applying a theme" : { + "comment" : "A note explaining that users can still customize individual settings after applying a theme.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Du kannst nach dem Anwenden eines Themes immer noch einzelne Einstellungen anpassen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Puedes personalizar ajustes individuales después de aplicar un tema" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Puedes personalizar ajustes individuales después de aplicar un tema" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Vous pouvez toujours personnaliser les paramètres individuels après avoir appliqué un thème" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous pouvez toujours personnaliser les paramètres individuels après avoir appliqué un thème" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "テーマを適用した後も個別の設定をカスタマイズできます" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "テーマを適用した後も個別の設定をカスタマイズできます" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "테마 적용 후에도 개별 설정을 사용자화할 수 있습니다" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "테마 적용 후에도 개별 설정을 사용자화할 수 있습니다" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Você ainda pode personalizar configurações individuais após aplicar um tema" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Você ainda pode personalizar configurações individuais após aplicar um tema" } } } }, - "You don't have a streak yet. Log your mood today to start one!": { - "comment": "Text displayed in a notification when a user has not logged a mood for the current day.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Du hast noch keine Serie. Erfasse heute deine Stimmung, um eine zu starten!" + "You don't have a streak yet. Log your mood today to start one!" : { + "comment" : "Text displayed in a notification when a user has not logged a mood for the current day.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Du hast noch keine Serie. Erfasse heute deine Stimmung, um eine zu starten!" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Aún no tienes una racha. ¡Registra tu estado de ánimo hoy para empezar una!" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aún no tienes una racha. ¡Registra tu estado de ánimo hoy para empezar una!" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Tu n'as pas encore de série. Enregistre ton humeur aujourd'hui pour en commencer une !" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tu n'as pas encore de série. Enregistre ton humeur aujourd'hui pour en commencer une !" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "まだ連続記録がありません。今日気分を記録して始めよう!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "まだ連続記録がありません。今日気分を記録して始めよう!" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "아직 연속 기록이 없어요. 오늘 기분을 기록해서 시작하세요!" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "아직 연속 기록이 없어요. 오늘 기분을 기록해서 시작하세요!" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Você ainda não tem uma sequência. Registre seu humor hoje para começar uma!" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Você ainda não tem uma sequência. Registre seu humor hoje para começar uma!" } } } }, - "You have a 1 day streak. Keep it going!": { - "comment": "Text displayed in a notification when the user has a 1-day streak.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Du hast eine 1-Tage-Serie. Mach weiter so!" + "You have a 1 day streak. Keep it going!" : { + "comment" : "Text displayed in a notification when the user has a 1-day streak.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Du hast eine 1-Tage-Serie. Mach weiter so!" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Tienes una racha de 1 día. ¡Sigue así!" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tienes una racha de 1 día. ¡Sigue así!" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Tu as une série de 1 jour. Continue !" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tu as une série de 1 jour. Continue !" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "1日連続です。続けていこう!" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "1日連続です。続けていこう!" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "1일 연속 기록이에요. 계속 이어가세요!" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "1일 연속 기록이에요. 계속 이어가세요!" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Você tem uma sequência de 1 dia. Continue assim!" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Você tem uma sequência de 1 dia. Continue assim!" } } } }, - "You have full access": { - "comment": "A description of the full access provided by a premium subscription.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Du hast vollen Zugang" + "You have full access" : { + "comment" : "A description of the full access provided by a premium subscription.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Du hast vollen Zugang" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Tienes acceso completo" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tienes acceso completo" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Tu as un accès complet" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tu as un accès complet" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "フルアクセスがあります" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "フルアクセスがあります" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "전체 액세스 권한이 있습니다" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "전체 액세스 권한이 있습니다" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Você tem acesso completo" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Você tem acesso completo" } } } }, - "You haven't logged your mood today yet. Would you like to log it now?": { - "comment": "Text displayed in a notification when the user hasn't logged their mood today.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Du hast heute noch keine Stimmung erfasst. Möchtest du sie jetzt erfassen?" + "You haven't logged your mood today yet. Would you like to log it now?" : { + "comment" : "Text displayed in a notification when the user hasn't logged their mood today.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Du hast heute noch keine Stimmung erfasst. Möchtest du sie jetzt erfassen?" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Aún no has registrado tu estado de ánimo hoy. ¿Quieres registrarlo ahora?" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aún no has registrado tu estado de ánimo hoy. ¿Quieres registrarlo ahora?" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Tu n'as pas encore enregistré ton humeur aujourd'hui. Tu veux le faire maintenant ?" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tu n'as pas encore enregistré ton humeur aujourd'hui. Tu veux le faire maintenant ?" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "今日はまだ気分を記録していません。今すぐ記録しますか?" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "今日はまだ気分を記録していません。今すぐ記録しますか?" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "오늘 아직 기분을 기록하지 않았어요. 지금 기록할까요?" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "오늘 아직 기분을 기록하지 않았어요. 지금 기록할까요?" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Você ainda não registrou seu humor hoje. Gostaria de registrar agora?" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Você ainda não registrou seu humor hoje. Gostaria de registrar agora?" } } } }, - "You'll get a gentle reminder at %@ every day": { - "comment": "A piece of text below the info icon, explaining that the user will receive a reminder at a selected time each day. The time is dynamically generated based on the user's selection in the time picker.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Du erhältst jeden Tag eine sanfte Erinnerung um %@" + "You'll get a gentle reminder at %@ every day" : { + "comment" : "A piece of text below the info icon, explaining that the user will receive a reminder at a selected time each day. The time is dynamically generated based on the user's selection in the time picker.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Du erhältst jeden Tag eine sanfte Erinnerung um %@" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Recibirás un recordatorio suave a las %@ todos los días" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Recibirás un recordatorio suave a las %@ todos los días" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Vous recevrez un rappel doux à %@ chaque jour" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vous recevrez un rappel doux à %@ chaque jour" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "毎日%@に優しいリマインダーが届きます" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "毎日%@に優しいリマインダーが届きます" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "매일 %@에 부드러운 알림을 받게 됩니다" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "매일 %@에 부드러운 알림을 받게 됩니다" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Você receberá um lembrete gentil às %@ todos os dias" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Você receberá um lembrete gentil às %@ todos os dias" } } } }, - "Your Emotional\nForecast": { - "comment": "The title of the section that describes the app's main feature: predicting emotional patterns.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Deine emotionale\nVorhersage" + "Your Emotional\nForecast" : { + "comment" : "The title of the section that describes the app's main feature: predicting emotional patterns.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deine emotionale\nVorhersage" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Tu pronóstico\nemocional" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tu pronóstico\nemocional" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Vos prévisions\némotionnelles" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vos prévisions\némotionnelles" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "感情の\n予報" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "感情の\n予報" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "당신의 감정\n예보" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "당신의 감정\n예보" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Sua previsão\nemocional" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sua previsão\nemocional" } } } }, - "Your emotions tell a story.\nPremium helps you read it.": { - "comment": "A description of how the premium subscription helps users understand themselves better.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Deine Emotionen erzählen eine Geschichte.\nPremium hilft dir, sie zu lesen." + "Your emotions tell a story.\nPremium helps you read it." : { + "comment" : "A description of how the premium subscription helps users understand themselves better.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deine Emotionen erzählen eine Geschichte.\nPremium hilft dir, sie zu lesen." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Tus emociones cuentan una historia.\nPremium te ayuda a leerla." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tus emociones cuentan una historia.\nPremium te ayuda a leerla." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Vos émotions racontent une histoire.\nPremium vous aide à la lire." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vos émotions racontent une histoire.\nPremium vous aide à la lire." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "感情は物語を語る。\nプレミアムで読み解こう。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "感情は物語を語る。\nプレミアムで読み解こう。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "감정은 이야기를 전합니다.\n프리미엄으로 읽어보세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "감정은 이야기를 전합니다.\n프리미엄으로 읽어보세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Suas emoções contam uma história.\nPremium ajuda você a lê-la." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Suas emoções contam uma história.\nPremium ajuda você a lê-la." } } } }, - "Your heart knows the way.\nPremium helps you listen.": { - "comment": "A description of the premium subscription's benefits.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Dein Herz kennt den Weg.\nPremium hilft dir zuzuhören." + "Your heart knows the way.\nPremium helps you listen." : { + "comment" : "A description of the premium subscription's benefits.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dein Herz kennt den Weg.\nPremium hilft dir zuzuhören." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Tu corazón conoce el camino.\nPremium te ayuda a escuchar." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tu corazón conoce el camino.\nPremium te ayuda a escuchar." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Votre cœur connaît le chemin.\nPremium vous aide à écouter." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre cœur connaît le chemin.\nPremium vous aide à écouter." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "心は道を知っている。\nプレミアムで耳を傾けよう。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "心は道を知っている。\nプレミアムで耳を傾けよう。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "마음은 길을 압니다.\n프리미엄으로 들어보세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "마음은 길을 압니다.\n프리미엄으로 들어보세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Seu coração conhece o caminho.\nPremium ajuda você a ouvir." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Seu coração conhece o caminho.\nPremium ajuda você a ouvir." } } } }, - "YOUR MOOD\nMIXTAPE": { - "comment": "The title of the mixtape theme on the homepage.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "DEIN STIMMUNGS-\nMIXTAPE" + "YOUR MOOD\nMIXTAPE" : { + "comment" : "The title of the mixtape theme on the homepage.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "DEIN STIMMUNGS-\nMIXTAPE" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "TU MIXTAPE\nDE ÁNIMO" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "TU MIXTAPE\nDE ÁNIMO" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "VOTRE MIXTAPE\nD'HUMEUR" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "VOTRE MIXTAPE\nD'HUMEUR" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "あなたの気分\nミックステープ" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "あなたの気分\nミックステープ" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "당신의 기분\n믹스테이프" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "당신의 기분\n믹스테이프" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "SUA MIXTAPE\nDE HUMOR" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "SUA MIXTAPE\nDE HUMOR" } } } }, - "Your mood data cannot be saved permanently. Please restart the app. If the problem persists, reinstall the app.": { - "comment": "An alert message displayed when the user's mood data cannot be saved permanently. It instructs the user to restart the app or reinstall it if the issue persists.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Deine Stimmungsdaten können nicht dauerhaft gespeichert werden. Bitte starte die App neu. Wenn das Problem weiterhin besteht, installiere die App erneut." + "Your mood data cannot be saved permanently. Please restart the app. If the problem persists, reinstall the app." : { + "comment" : "An alert message displayed when the user's mood data cannot be saved permanently. It instructs the user to restart the app or reinstall it if the issue persists.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deine Stimmungsdaten können nicht dauerhaft gespeichert werden. Bitte starte die App neu. Wenn das Problem weiterhin besteht, installiere die App erneut." } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Tus datos de ánimo no se pueden guardar permanentemente. Reinicia la app. Si el problema persiste, reinstala la app." + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tus datos de ánimo no se pueden guardar permanentemente. Reinicia la app. Si el problema persiste, reinstala la app." } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Vos données d'humeur ne peuvent pas être enregistrées de façon permanente. Veuillez redémarrer l'app. Si le problème persiste, réinstallez l'app." + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vos données d'humeur ne peuvent pas être enregistrées de façon permanente. Veuillez redémarrer l'app. Si le problème persiste, réinstallez l'app." } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "気分データを永続的に保存できません。アプリを再起動してください。問題が解決しない場合は、アプリを再インストールしてください。" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "気分データを永続的に保存できません。アプリを再起動してください。問題が解決しない場合は、アプリを再インストールしてください。" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "기분 데이터를 영구적으로 저장할 수 없습니다. 앱을 다시 시작해 주세요. 문제가 계속되면 앱을 다시 설치해 주세요." + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "기분 데이터를 영구적으로 저장할 수 없습니다. 앱을 다시 시작해 주세요. 문제가 계속되면 앱을 다시 설치해 주세요." } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Seus dados de humor não podem ser salvos permanentemente. Reinicie o app. Se o problema persistir, reinstale o app." + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Seus dados de humor não podem ser salvos permanentemente. Reinicie o app. Se o problema persistir, reinstale o app." } } } }, - "Your Personal\nDiary": { - "comment": "A title describing the main feature of the premium subscription: a personal diary.", - "isCommentAutoGenerated": true, - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Dein persönliches\nTagebuch" + "Your Personal\nDiary" : { + "comment" : "A title describing the main feature of the premium subscription: a personal diary.", + "isCommentAutoGenerated" : true, + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Dein persönliches\nTagebuch" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Tu diario\npersonal" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tu diario\npersonal" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Votre journal\npersonnel" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Votre journal\npersonnel" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "あなたの\n個人日記" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "あなたの\n個人日記" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "당신의 개인\n일기" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "당신의 개인\n일기" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Seu diário\npessoal" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Seu diário\npessoal" } } } }, - "Your recent moods": { - "localizations": { - "de": { - "stringUnit": { - "state": "translated", - "value": "Deine letzten Stimmungen" + "Your recent moods" : { + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Deine letzten Stimmungen" } }, - "es": { - "stringUnit": { - "state": "translated", - "value": "Tus estados de ánimo recientes" + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tus estados de ánimo recientes" } }, - "fr": { - "stringUnit": { - "state": "translated", - "value": "Vos humeurs récentes" + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Vos humeurs récentes" } }, - "ja": { - "stringUnit": { - "state": "translated", - "value": "最近の気分" + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "最近の気分" } }, - "ko": { - "stringUnit": { - "state": "translated", - "value": "최근 기분" + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "최근 기분" } }, - "pt-BR": { - "stringUnit": { - "state": "translated", - "value": "Seus humores recentes" + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Seus humores recentes" } } } } }, - "version": "1.1" -} + "version" : "1.1" +} \ No newline at end of file diff --git a/Shared/AccessibilityIdentifiers.swift b/Shared/AccessibilityIdentifiers.swift index 9ba20ff..98186fa 100644 --- a/Shared/AccessibilityIdentifiers.swift +++ b/Shared/AccessibilityIdentifiers.swift @@ -58,6 +58,20 @@ enum AccessibilityID { static let cancelButton = "note_editor_cancel" } + // MARK: - Guided Reflection + enum GuidedReflection { + static let sheet = "guided_reflection_sheet" + static let progressDots = "guided_reflection_progress" + static let textEditor = "guided_reflection_text_editor" + static let nextButton = "guided_reflection_next" + static let backButton = "guided_reflection_back" + static let saveButton = "guided_reflection_save" + static let cancelButton = "guided_reflection_cancel" + static func questionLabel(step: Int) -> String { + "guided_reflection_question_\(step)" + } + } + // MARK: - Settings enum Settings { static let header = "settings_header" diff --git a/Shared/Analytics.swift b/Shared/Analytics.swift index b153e53..1749394 100644 --- a/Shared/Analytics.swift +++ b/Shared/Analytics.swift @@ -350,6 +350,7 @@ extension AnalyticsManager { case paywall = "paywall" case entryDetail = "entry_detail" case noteEditor = "note_editor" + case guidedReflection = "guided_reflection" case lockScreen = "lock_screen" case sharing = "sharing" case themePicker = "theme_picker" @@ -382,6 +383,8 @@ extension AnalyticsManager { case noteUpdated(characterCount: Int) case photoAdded case photoDeleted + case reflectionStarted + case reflectionCompleted(answeredCount: Int) case missingEntriesFilled(count: Int) case entryDeleted(mood: Int) case allDataCleared @@ -491,6 +494,10 @@ extension AnalyticsManager { return ("photo_added", nil) case .photoDeleted: return ("photo_deleted", nil) + case .reflectionStarted: + return ("reflection_started", nil) + case .reflectionCompleted(let count): + return ("reflection_completed", ["answered_count": count]) case .missingEntriesFilled(let count): return ("missing_entries_filled", ["count": count]) case .entryDeleted(let mood): diff --git a/Shared/Models/AIReport.swift b/Shared/Models/AIReport.swift index a8c5b42..66e9dfa 100644 --- a/Shared/Models/AIReport.swift +++ b/Shared/Models/AIReport.swift @@ -36,12 +36,14 @@ struct ReportEntry { let mood: Mood let notes: String? let weather: WeatherData? + let reflection: GuidedReflection? init(from model: MoodEntryModel) { self.date = model.forDate self.mood = model.mood self.notes = model.notes self.weather = model.weatherJSON.flatMap { WeatherData.decode(from: $0) } + self.reflection = model.reflectionJSON.flatMap { GuidedReflection.decode(from: $0) } } } diff --git a/Shared/Models/GuidedReflection.swift b/Shared/Models/GuidedReflection.swift new file mode 100644 index 0000000..bf2ad1a --- /dev/null +++ b/Shared/Models/GuidedReflection.swift @@ -0,0 +1,110 @@ +// +// GuidedReflection.swift +// Reflect +// +// Codable model for guided reflection responses, stored as JSON in MoodEntryModel. +// + +import Foundation + +// MARK: - Mood Category + +enum MoodCategory: String, Codable { + case positive // great, good → 3 questions + case neutral // average → 4 questions + case negative // bad, horrible → 4 questions + + init(from mood: Mood) { + switch mood { + case .great, .good: self = .positive + case .average: self = .neutral + case .horrible, .bad: self = .negative + default: self = .neutral + } + } + + var questionCount: Int { + switch self { + case .positive: return 3 + case .neutral, .negative: return 4 + } + } +} + +// MARK: - Guided Reflection + +struct GuidedReflection: Codable, Equatable { + + struct Response: Codable, Equatable, Identifiable { + var id: Int // question index (0-based) + let question: String + var answer: String + } + + let moodCategory: MoodCategory + var responses: [Response] + var completedAt: Date? + + // MARK: - Computed Properties + + var isComplete: Bool { + responses.count == moodCategory.questionCount && + responses.allSatisfy { !$0.answer.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty } + } + + var answeredCount: Int { + responses.filter { !$0.answer.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty }.count + } + + var totalQuestions: Int { + moodCategory.questionCount + } + + // MARK: - Factory + + static func createNew(for mood: Mood) -> GuidedReflection { + let category = MoodCategory(from: mood) + let questionTexts = questions(for: category) + let responses = questionTexts.enumerated().map { index, question in + Response(id: index, question: question, answer: "") + } + return GuidedReflection(moodCategory: category, responses: responses, completedAt: nil) + } + + static func questions(for category: MoodCategory) -> [String] { + switch category { + case .positive: + return [ + String(localized: "guided_reflection_positive_q1"), + String(localized: "guided_reflection_positive_q2"), + String(localized: "guided_reflection_positive_q3"), + ] + case .neutral: + return [ + String(localized: "guided_reflection_neutral_q1"), + String(localized: "guided_reflection_neutral_q2"), + String(localized: "guided_reflection_neutral_q3"), + String(localized: "guided_reflection_neutral_q4"), + ] + case .negative: + return [ + String(localized: "guided_reflection_negative_q1"), + String(localized: "guided_reflection_negative_q2"), + String(localized: "guided_reflection_negative_q3"), + String(localized: "guided_reflection_negative_q4"), + ] + } + } + + // MARK: - JSON Helpers + + func encode() -> String? { + guard let data = try? JSONEncoder().encode(self) else { return nil } + return String(data: data, encoding: .utf8) + } + + static func decode(from json: String) -> GuidedReflection? { + guard let data = json.data(using: .utf8) else { return nil } + return try? JSONDecoder().decode(GuidedReflection.self, from: data) + } +} diff --git a/Shared/Models/MoodEntryModel.swift b/Shared/Models/MoodEntryModel.swift index 950cd04..c0d69e7 100644 --- a/Shared/Models/MoodEntryModel.swift +++ b/Shared/Models/MoodEntryModel.swift @@ -45,6 +45,9 @@ final class MoodEntryModel { // Weather var weatherJSON: String? + // Guided Reflection + var reflectionJSON: String? + // Computed properties var mood: Mood { Mood(rawValue: moodValue) ?? .missing @@ -62,7 +65,8 @@ final class MoodEntryModel { canDelete: Bool = true, notes: String? = nil, photoID: UUID? = nil, - weatherJSON: String? = nil + weatherJSON: String? = nil, + reflectionJSON: String? = nil ) { self.forDate = forDate self.moodValue = mood.rawValue @@ -74,6 +78,7 @@ final class MoodEntryModel { self.notes = notes self.photoID = photoID self.weatherJSON = weatherJSON + self.reflectionJSON = reflectionJSON } // Convenience initializer for raw values @@ -87,7 +92,8 @@ final class MoodEntryModel { canDelete: Bool = true, notes: String? = nil, photoID: UUID? = nil, - weatherJSON: String? = nil + weatherJSON: String? = nil, + reflectionJSON: String? = nil ) { self.forDate = forDate self.moodValue = moodValue @@ -99,5 +105,6 @@ final class MoodEntryModel { self.notes = notes self.photoID = photoID self.weatherJSON = weatherJSON + self.reflectionJSON = reflectionJSON } } diff --git a/Shared/Persisence/DataControllerUPDATE.swift b/Shared/Persisence/DataControllerUPDATE.swift index d42fc56..880e57a 100644 --- a/Shared/Persisence/DataControllerUPDATE.swift +++ b/Shared/Persisence/DataControllerUPDATE.swift @@ -51,6 +51,18 @@ extension DataController { return true } + // MARK: - Guided Reflection + + @discardableResult + func updateReflection(forDate date: Date, reflectionJSON: String?) -> Bool { + guard let entry = getEntry(byDate: date) else { return false } + entry.reflectionJSON = reflectionJSON + saveAndRunDataListeners() + let count = reflectionJSON.flatMap { GuidedReflection.decode(from: $0) }?.answeredCount ?? 0 + AnalyticsManager.shared.track(.reflectionCompleted(answeredCount: count)) + return true + } + // MARK: - Photo @discardableResult diff --git a/Shared/Services/ExportService.swift b/Shared/Services/ExportService.swift index 8717335..c4b9574 100644 --- a/Shared/Services/ExportService.swift +++ b/Shared/Services/ExportService.swift @@ -54,7 +54,7 @@ class ExportService { // MARK: - CSV Export func generateCSV(entries: [MoodEntryModel]) -> String { - var csv = "Date,Mood,Mood Value,Notes,Weekday,Entry Type,Timestamp\n" + var csv = "Date,Mood,Mood Value,Notes,Reflection,Weekday,Entry Type,Timestamp\n" let sortedEntries = entries.sorted { $0.forDate > $1.forDate } @@ -63,11 +63,14 @@ class ExportService { let mood = entry.mood.widgetDisplayName let moodValue = entry.moodValue + 1 // 1-5 scale let notes = escapeCSV(entry.notes ?? "") + let reflectionText = entry.reflectionJSON + .flatMap { GuidedReflection.decode(from: $0) } + .map { $0.responses.filter { !$0.answer.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty }.map { "Q: \($0.question) A: \($0.answer)" }.joined(separator: " | ") } ?? "" let weekday = weekdayName(from: entry.weekDay) let entryType = EntryType(rawValue: entry.entryType)?.description ?? "Unknown" let timestamp = isoFormatter.string(from: entry.timestamp) - csv += "\(date),\(mood),\(moodValue),\(notes),\(weekday),\(entryType),\(timestamp)\n" + csv += "\(date),\(mood),\(moodValue),\(notes),\(escapeCSV(reflectionText)),\(weekday),\(entryType),\(timestamp)\n" } return csv diff --git a/Shared/Services/ReportPDFGenerator.swift b/Shared/Services/ReportPDFGenerator.swift index a9cccf9..8ed6cce 100644 --- a/Shared/Services/ReportPDFGenerator.swift +++ b/Shared/Services/ReportPDFGenerator.swift @@ -213,6 +213,18 @@ final class ReportPDFGenerator { \(escapeHTML(weatherStr)) """ + + if let reflection = entry.reflection, reflection.answeredCount > 0 { + rows += """ + + +
+ \(formatReflectionHTML(reflection)) +
+ + + """ + } } return """ @@ -261,6 +273,13 @@ final class ReportPDFGenerator { } } + private func formatReflectionHTML(_ reflection: GuidedReflection) -> String { + reflection.responses + .filter { !$0.answer.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty } + .map { "

\(escapeHTML($0.question))

\(escapeHTML($0.answer))

" } + .joined() + } + private func escapeHTML(_ string: String) -> String { string .replacingOccurrences(of: "&", with: "&") @@ -396,6 +415,10 @@ final class ReportPDFGenerator { page-break-inside: avoid; } .stats { font-size: 10pt; color: #666; margin-bottom: 6px; } + .reflection-row td { border-bottom: none; padding-top: 0; } + .reflection-block { background: #f9f7ff; padding: 8px 12px; margin: 4px 0 8px 0; border-radius: 4px; } + .reflection-q { font-style: italic; font-size: 9pt; color: #666; margin-bottom: 2px; } + .reflection-a { font-size: 10pt; color: #333; margin-bottom: 6px; } .page-break { page-break-before: always; } .no-page-break { page-break-inside: avoid; } .footer { diff --git a/Shared/Views/GuidedReflectionView.swift b/Shared/Views/GuidedReflectionView.swift new file mode 100644 index 0000000..7206b05 --- /dev/null +++ b/Shared/Views/GuidedReflectionView.swift @@ -0,0 +1,297 @@ +// +// GuidedReflectionView.swift +// Reflect +// +// Card-step guided reflection sheet — one question at a time. +// + +import SwiftUI + +struct GuidedReflectionView: View { + + @Environment(\.dismiss) private var dismiss + @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system + @AppStorage(UserDefaultsStore.Keys.moodImages.rawValue, store: GroupUserDefaults.groupDefaults) private var imagePack: MoodImages = .FontAwesome + @AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default + + let entry: MoodEntryModel + + @State private var reflection: GuidedReflection + @State private var currentStep: Int = 0 + @State private var isSaving = false + @State private var showDiscardAlert = false + @FocusState private var isTextFieldFocused: Bool + + /// Snapshot of the initial state to detect unsaved changes + private let initialReflection: GuidedReflection + + private let maxCharacters = 500 + + private var textColor: Color { theme.currentTheme.labelColor } + + private var totalSteps: Int { reflection.totalQuestions } + + private var hasUnsavedChanges: Bool { + reflection != initialReflection + } + + init(entry: MoodEntryModel) { + self.entry = entry + let existing = entry.reflectionJSON.flatMap { GuidedReflection.decode(from: $0) } + ?? GuidedReflection.createNew(for: entry.mood) + self._reflection = State(initialValue: existing) + self.initialReflection = existing + } + + var body: some View { + NavigationStack { + VStack(spacing: 0) { + // Entry header + entryHeader + .padding() + .background(Color(.systemGray6)) + + Divider() + + // Progress dots + progressDots + .padding(.top, 20) + .padding(.bottom, 8) + + // Question + answer area + questionContent + .padding(.horizontal) + + Spacer() + + // Navigation buttons + navigationButtons + .padding() + } + .navigationTitle(String(localized: "guided_reflection_title")) + .navigationBarTitleDisplayMode(.inline) + .accessibilityIdentifier(AccessibilityID.GuidedReflection.sheet) + .toolbar { + ToolbarItem(placement: .cancellationAction) { + Button(String(localized: "Cancel")) { + if hasUnsavedChanges { + showDiscardAlert = true + } else { + dismiss() + } + } + .accessibilityIdentifier(AccessibilityID.GuidedReflection.cancelButton) + } + + ToolbarItemGroup(placement: .keyboard) { + Spacer() + Button("Done") { + isTextFieldFocused = false + } + } + } + .alert( + String(localized: "guided_reflection_unsaved_title"), + isPresented: $showDiscardAlert + ) { + Button(String(localized: "guided_reflection_discard"), role: .destructive) { + dismiss() + } + Button(String(localized: "Cancel"), role: .cancel) { } + } message: { + Text(String(localized: "guided_reflection_unsaved_message")) + } + .trackScreen(.guidedReflection) + } + } + + // MARK: - Entry Header + + private var entryHeader: some View { + HStack(spacing: 12) { + Circle() + .fill(moodTint.color(forMood: entry.mood).opacity(0.2)) + .frame(width: 50, height: 50) + .overlay( + imagePack.icon(forMood: entry.mood) + .resizable() + .aspectRatio(contentMode: .fit) + .frame(width: 28, height: 28) + .foregroundColor(moodTint.color(forMood: entry.mood)) + ) + + VStack(alignment: .leading, spacing: 4) { + Text(entry.forDate, format: .dateTime.weekday(.wide).month().day().year()) + .font(.headline) + .foregroundColor(textColor) + + Text(entry.moodString) + .font(.subheadline) + .foregroundColor(moodTint.color(forMood: entry.mood)) + } + + Spacer() + } + } + + // MARK: - Progress Dots + + private var progressDots: some View { + HStack(spacing: 8) { + ForEach(0.. maxCharacters { + reflection.responses[currentStep].answer = String(newValue.prefix(maxCharacters)) + } + } + .accessibilityIdentifier(AccessibilityID.GuidedReflection.textEditor) + + HStack { + Spacer() + Text("\(reflection.responses[currentStep].answer.count)/\(maxCharacters)") + .font(.caption) + .foregroundStyle( + reflection.responses[currentStep].answer.count >= maxCharacters ? .red : .secondary + ) + } + } + } + } + + // MARK: - Navigation Buttons + + private var navigationButtons: some View { + HStack { + // Back button + if currentStep > 0 { + Button { + navigateBack() + } label: { + HStack(spacing: 4) { + Image(systemName: "chevron.left") + Text(String(localized: "guided_reflection_back")) + } + .font(.body) + .fontWeight(.medium) + } + .accessibilityIdentifier(AccessibilityID.GuidedReflection.backButton) + } + + Spacer() + + // Next / Save button + if currentStep < totalSteps - 1 { + Button { + navigateForward() + } label: { + HStack(spacing: 4) { + Text(String(localized: "guided_reflection_next")) + Image(systemName: "chevron.right") + } + .font(.body) + .fontWeight(.semibold) + } + .accessibilityIdentifier(AccessibilityID.GuidedReflection.nextButton) + } else { + Button { + saveReflection() + } label: { + Text(String(localized: "guided_reflection_save")) + .font(.body) + .fontWeight(.semibold) + } + .disabled(isSaving) + .accessibilityIdentifier(AccessibilityID.GuidedReflection.saveButton) + } + } + } + + // MARK: - Navigation + + private func navigateForward() { + isTextFieldFocused = false + let animate = !UIAccessibility.isReduceMotionEnabled + if animate { + withAnimation(.easeInOut(duration: 0.3)) { + currentStep += 1 + } + } else { + currentStep += 1 + } + focusTextFieldDelayed() + } + + private func navigateBack() { + isTextFieldFocused = false + let animate = !UIAccessibility.isReduceMotionEnabled + if animate { + withAnimation(.easeInOut(duration: 0.3)) { + currentStep -= 1 + } + } else { + currentStep -= 1 + } + focusTextFieldDelayed() + } + + private func focusTextFieldDelayed() { + DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { + isTextFieldFocused = true + } + } + + // MARK: - Save + + private func saveReflection() { + isSaving = true + + if reflection.isComplete { + reflection.completedAt = Date() + } + + let json = reflection.encode() + let success = DataController.shared.updateReflection(forDate: entry.forDate, reflectionJSON: json) + + if success { + dismiss() + } else { + isSaving = false + } + } +} diff --git a/Shared/Views/InsightsView/ReportsViewModel.swift b/Shared/Views/InsightsView/ReportsViewModel.swift index dcc9bd8..f3b0ebc 100644 --- a/Shared/Views/InsightsView/ReportsViewModel.swift +++ b/Shared/Views/InsightsView/ReportsViewModel.swift @@ -322,7 +322,12 @@ class ReportsViewModel: ObservableObject { let day = entry.date.formatted(.dateTime.weekday(.abbreviated)) let mood = entry.mood.widgetDisplayName let notes = entry.notes ?? "no notes" - return "\(day): \(mood) (\(notes))" + let reflectionSummary = entry.reflection?.responses + .filter { !$0.answer.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty } + .map { "\($0.question): \(String($0.answer.prefix(150)))" } + .joined(separator: " | ") ?? "" + let reflectionStr = reflectionSummary.isEmpty ? "" : " [reflection: \(reflectionSummary)]" + return "\(day): \(mood) (\(notes))\(reflectionStr)" }.joined(separator: "\n") let prompt = """ diff --git a/Shared/Views/NoteEditorView.swift b/Shared/Views/NoteEditorView.swift index 5706261..e7978d9 100644 --- a/Shared/Views/NoteEditorView.swift +++ b/Shared/Views/NoteEditorView.swift @@ -158,6 +158,7 @@ struct EntryDetailView: View { @State private var showDeleteConfirmation = false @State private var showFullScreenPhoto = false @State private var selectedPhotoItem: PhotosPickerItem? + @State private var showReflectionFlow = false @State private var selectedMood: Mood? private var currentMood: Mood { @@ -184,6 +185,11 @@ struct EntryDetailView: View { // Mood section moodSection + // Guided reflection section + if currentMood != .missing && currentMood != .placeholder { + reflectionSection + } + // Notes section notesSection @@ -218,6 +224,9 @@ struct EntryDetailView: View { .sheet(isPresented: $showNoteEditor) { NoteEditorView(entry: entry) } + .sheet(isPresented: $showReflectionFlow) { + GuidedReflectionView(entry: entry) + } .alert("Delete Entry", isPresented: $showDeleteConfirmation) { Button("Delete", role: .destructive) { onDelete() @@ -417,6 +426,74 @@ struct EntryDetailView: View { } } + private var reflectionSection: some View { + VStack(alignment: .leading, spacing: 12) { + HStack { + Text(String(localized: "guided_reflection_title")) + .font(.headline) + .foregroundColor(textColor) + + Spacer() + + Button { + AnalyticsManager.shared.track(.reflectionStarted) + showReflectionFlow = true + } label: { + Text(entry.reflectionJSON != nil + ? String(localized: "guided_reflection_edit") + : String(localized: "guided_reflection_begin")) + .font(.subheadline) + .fontWeight(.medium) + } + } + + Button { + AnalyticsManager.shared.track(.reflectionStarted) + showReflectionFlow = true + } label: { + HStack { + if let json = entry.reflectionJSON, + let reflection = GuidedReflection.decode(from: json), + reflection.answeredCount > 0 { + VStack(alignment: .leading, spacing: 6) { + Text(reflection.responses.first(where: { + !$0.answer.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty + })?.answer ?? "") + .font(.body) + .foregroundColor(textColor) + .multilineTextAlignment(.leading) + .lineLimit(3) + + Text(String(localized: "guided_reflection_answered_count \(reflection.answeredCount) \(reflection.totalQuestions)")) + .font(.caption) + .foregroundStyle(.secondary) + } + } else { + HStack(spacing: 8) { + Image(systemName: "sparkles") + .foregroundStyle(.secondary) + Text(String(localized: "guided_reflection_empty_prompt")) + .foregroundStyle(.secondary) + } + } + + Spacer() + + Image(systemName: "chevron.right") + .font(.caption) + .foregroundStyle(.tertiary) + } + .padding() + .frame(maxWidth: .infinity, alignment: .leading) + .background( + RoundedRectangle(cornerRadius: 16) + .fill(Color(.systemBackground)) + ) + } + .buttonStyle(.plain) + } + } + private func weatherSection(_ weatherData: WeatherData) -> some View { VStack(alignment: .leading, spacing: 12) { Text("Weather") From 452f941b839d91a38efe58c50b1e6b5920d53e69 Mon Sep 17 00:00:00 2001 From: Trey t Date: Wed, 11 Mar 2026 15:55:28 -0500 Subject: [PATCH 4/4] Add .DS_Store and .claude/ to gitignore Co-Authored-By: Claude Opus 4.6 --- .DS_Store | Bin 6148 -> 0 bytes .claude/settings.local.json | 52 ------------------------- .claude/skills/remotion-best-practices | 1 - .gitignore | 6 +++ 4 files changed, 6 insertions(+), 53 deletions(-) delete mode 100644 .DS_Store delete mode 100644 .claude/settings.local.json delete mode 120000 .claude/skills/remotion-best-practices diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 4c2b253a52febfac671dbfd3c1f5e7be47b45e1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKu}T9$5PhR54lGP*xt*PmKRCl_Eu^uO*m<+NGkdcSvbzI7rZ@Ej7y~HS6h(~z(c!_VEq5LfC9iRf1KeVP2KB%~e{o22 z-^DSO{H?H={}L^(xRcA(`DC_e)~%)g^7wVcx~Z!9s+rTXcz!tDzq@}r{7zK;gQ)gm zBRe^j-_K~$Qg=QDA7X2OAN7ajwkmk9Xmq{hj{TJ{^hsgMe^6Ve#-8U(lB%|5DfGg z*tYIi@BbtIWd@7`n e^kZI diff --git a/.claude/settings.local.json b/.claude/settings.local.json deleted file mode 100644 index 0ecbc8e..0000000 --- a/.claude/settings.local.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "permissions": { - "allow": [ - "Bash(find:*)", - "Bash(xcodebuild:*)", - "Bash(cat:*)", - "Bash(grep:*)", - "WebSearch", - "WebFetch(domain:swiftwithmajid.com)", - "WebFetch(domain:azamsharp.com)", - "WebFetch(domain:www.createwithswift.com)", - "Skill(frontend-design:frontend-design)", - "Bash(npx claude-plugins:*)", - "Bash(cloc:*)", - "Bash(swift -parse:*)", - "Bash(swiftc:*)", - "Bash(git add:*)", - "WebFetch(domain:apps.apple.com)", - "Bash(ls:*)", - "Bash(python3:*)", - "Bash( comm -23 /tmp/code_keys.txt /tmp/xcstrings_keys.txt)", - "Bash( comm -13 /tmp/code_keys.txt /tmp/xcstrings_keys.txt)", - "Bash(xargs cat:*)", - "Bash(xcrun simctl:*)", - "Bash(curl:*)", - "Bash(open:*)", - "Bash(npx skills:*)", - "Bash(npx create-video@latest:*)", - "Bash(npm install:*)", - "Bash(npm run build:*)", - "Bash(npx remotion render:*)", - "Bash(ffmpeg:*)", - "Bash(sips:*)", - "Bash(unzip:*)", - "Bash(plutil:*)", - "Bash(done)", - "Bash(for:*)", - "Bash(# Check Button and Label strings grep -rE ''\\(Button|Label|navigationTitle\\)\\\\\\(\"\"'' /Users/treyt/Desktop/code/Feels/Shared/ --include=\"\"*.swift\"\")", - "Bash(# Double-check a few of these strings to make sure they''re not used echo \"\"=== Checking ''Custom'' ===\"\" grep -rn ''\"\"Custom\"\"'' /Users/treyt/Desktop/code/Feels/Shared/ --include=\"\"*.swift\"\")", - "Bash(echo \"=== How ''3D card flip'' is used ===\" grep -rn \"3D card flip\" /Users/treyt/Desktop/code/Feels/Shared/ --include=\"*.swift\")", - "Bash(ffprobe:*)", - "Bash(npx remotion:*)", - "Bash(npx tsc:*)", - "Bash(npm start)", - "Bash(npm run:*)" - ], - "ask": [ - "Bash(git commit:*)", - "Bash(git push:*)" - ] - } -} diff --git a/.claude/skills/remotion-best-practices b/.claude/skills/remotion-best-practices deleted file mode 120000 index 4b38dbf..0000000 --- a/.claude/skills/remotion-best-practices +++ /dev/null @@ -1 +0,0 @@ -../../.agents/skills/remotion-best-practices \ No newline at end of file diff --git a/.gitignore b/.gitignore index d9a3a31..5803836 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,9 @@ +# OS files +.DS_Store + +# Claude Code +.claude/ + # Xcode # # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore