diff --git a/myApp/HaruDanim/Haru_Danim.entitlements b/myApp/HaruDanim/Haru_Danim.entitlements
index 3f29113..76b45e9 100644
--- a/myApp/HaruDanim/Haru_Danim.entitlements
+++ b/myApp/HaruDanim/Haru_Danim.entitlements
@@ -18,5 +18,9 @@
group.com.yechan.HaruDanim
+ keychain-access-groups
+
+ $(AppIdentifierPrefix)com.yechan.HaruDanim
+
diff --git a/myApp/HaruDanim/Haru_Danim.xcodeproj/project.pbxproj b/myApp/HaruDanim/Haru_Danim.xcodeproj/project.pbxproj
index 97c3b4c..d4dfacf 100644
--- a/myApp/HaruDanim/Haru_Danim.xcodeproj/project.pbxproj
+++ b/myApp/HaruDanim/Haru_Danim.xcodeproj/project.pbxproj
@@ -106,6 +106,7 @@
membershipExceptions = (
HaruDanimWidgets.swift,
Info.plist,
+ Localizable.xcstrings,
);
target = 725A9E832FFCC65000846FFB /* Haru_Danim */;
};
@@ -115,6 +116,7 @@
Assets.xcassets,
Haru_DanimWatchWidgetsBundle.swift,
Info.plist,
+ Localizable.xcstrings,
);
target = 7263D0DF3000433300EA47FC /* Haru_DanimWatch Watch App */;
};
@@ -662,6 +664,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = "Haru_DanimWatch Watch App/Haru_DanimWatch Watch App.entitlements";
+ CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 5GNS4Z2SYT;
@@ -677,6 +680,7 @@
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.yechan.HaruDanim.watchkitapp;
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = watchos;
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -696,6 +700,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = "Haru_DanimWatch Watch App/Haru_DanimWatch Watch App.entitlements";
+ CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 5GNS4Z2SYT;
@@ -711,6 +716,7 @@
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.yechan.HaruDanim.watchkitapp;
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = watchos;
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -730,6 +736,7 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CODE_SIGN_ENTITLEMENTS = Haru_DanimWatchWidgetsExtension.entitlements;
+ CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 5GNS4Z2SYT;
@@ -746,6 +753,7 @@
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.yechan.HaruDanim.watchkitapp.Haru-DanimWatchWidgets";
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = watchos;
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@@ -764,6 +772,7 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground;
CODE_SIGN_ENTITLEMENTS = Haru_DanimWatchWidgetsExtension.entitlements;
+ CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = 5GNS4Z2SYT;
@@ -780,6 +789,7 @@
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.yechan.HaruDanim.watchkitapp.Haru-DanimWatchWidgets";
PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = watchos;
SKIP_INSTALL = YES;
STRING_CATALOG_GENERATE_SYMBOLS = YES;
diff --git a/myApp/HaruDanim/Haru_Danim.xcodeproj/xcshareddata/xcschemes/Haru_Danim.xcscheme b/myApp/HaruDanim/Haru_Danim.xcodeproj/xcshareddata/xcschemes/Haru_Danim.xcscheme
index 61f273a..5330898 100644
--- a/myApp/HaruDanim/Haru_Danim.xcodeproj/xcshareddata/xcschemes/Haru_Danim.xcscheme
+++ b/myApp/HaruDanim/Haru_Danim.xcodeproj/xcshareddata/xcschemes/Haru_Danim.xcscheme
@@ -41,9 +41,6 @@
debugServiceExtension = "internal"
allowLocationSimulation = "YES"
queueDebuggingEnableBacktraceRecording = "Yes">
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/myApp/HaruDanim/Haru_Danim.xcodeproj/xcshareddata/xcschemes/Haru_DanimWatchWidgetsExtension.xcscheme b/myApp/HaruDanim/Haru_Danim.xcodeproj/xcshareddata/xcschemes/Haru_DanimWatchWidgetsExtension.xcscheme
new file mode 100644
index 0000000..d50f479
--- /dev/null
+++ b/myApp/HaruDanim/Haru_Danim.xcodeproj/xcshareddata/xcschemes/Haru_DanimWatchWidgetsExtension.xcscheme
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/myApp/HaruDanim/Haru_Danim.xcodeproj/xcshareddata/xcschemes/Haru_DanimWidgets.xcscheme b/myApp/HaruDanim/Haru_Danim.xcodeproj/xcshareddata/xcschemes/Haru_DanimWidgets.xcscheme
new file mode 100644
index 0000000..2edf38b
--- /dev/null
+++ b/myApp/HaruDanim/Haru_Danim.xcodeproj/xcshareddata/xcschemes/Haru_DanimWidgets.xcscheme
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/myApp/HaruDanim/Haru_DanimWatch Watch App/ContentView.swift b/myApp/HaruDanim/Haru_DanimWatch Watch App/ContentView.swift
index 13ff0e9..96a4301 100644
--- a/myApp/HaruDanim/Haru_DanimWatch Watch App/ContentView.swift
+++ b/myApp/HaruDanim/Haru_DanimWatch Watch App/ContentView.swift
@@ -206,8 +206,12 @@ enum WatchFormat {
let total = Int(seconds.rounded())
let h = total / 3600
let m = (total % 3600) / 60
- if h > 0 { return m > 0 ? "\(h)시간 \(m)분" : "\(h)시간" }
- if m > 0 { return "\(m)분" }
- return "\(total)초"
+ if h > 0 {
+ return m > 0
+ ? String(localized: "\(h)시간 \(m)분")
+ : String(localized: "\(h)시간")
+ }
+ if m > 0 { return String(localized: "\(m)분") }
+ return String(localized: "\(total)초")
}
}
diff --git a/myApp/HaruDanim/Haru_DanimWatch Watch App/Haru_DanimWatch Watch App.entitlements b/myApp/HaruDanim/Haru_DanimWatch Watch App/Haru_DanimWatch Watch App.entitlements
index 64b9130..9fb594a 100644
--- a/myApp/HaruDanim/Haru_DanimWatch Watch App/Haru_DanimWatch Watch App.entitlements
+++ b/myApp/HaruDanim/Haru_DanimWatch Watch App/Haru_DanimWatch Watch App.entitlements
@@ -6,5 +6,9 @@
group.com.yechan.HaruDanim
+ keychain-access-groups
+
+ $(AppIdentifierPrefix)com.yechan.HaruDanim
+
diff --git a/myApp/HaruDanim/Haru_DanimWatch Watch App/Localizable.xcstrings b/myApp/HaruDanim/Haru_DanimWatch Watch App/Localizable.xcstrings
new file mode 100644
index 0000000..575d0fa
--- /dev/null
+++ b/myApp/HaruDanim/Haru_DanimWatch Watch App/Localizable.xcstrings
@@ -0,0 +1,718 @@
+{
+ "sourceLanguage": "ko",
+ "strings": {
+ "%@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@"
+ }
+ }
+ }
+ },
+ "%@ %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ %@"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ %2$@"
+ }
+ }
+ }
+ },
+ "%@ %lld%%": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ %lld%%"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ %lld%%"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ %2$lld%%"
+ }
+ }
+ }
+ },
+ "%@ +%lld": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ +%lld"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ +%lld"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ +%2$lld"
+ }
+ }
+ }
+ },
+ "%lld": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld"
+ }
+ }
+ }
+ },
+ "%lld%%": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld%%"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld%%"
+ }
+ }
+ }
+ },
+ "%lld분": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lldm"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld分"
+ }
+ }
+ }
+ },
+ "%lld시간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lldh"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld時間"
+ }
+ }
+ }
+ },
+ "%lld시간 %lld분": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lldh %lldm"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld時間%lld分"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$lld시간 %2$lld분"
+ }
+ }
+ }
+ },
+ "%lld초": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%llds"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld秒"
+ }
+ }
+ }
+ },
+ "+%lld": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "+%lld"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "+%lld"
+ }
+ }
+ }
+ },
+ "iPhone 앱의 설정 → 프리미엄에서 잠금 해제해 주세요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Unlock in the iPhone app: Settings → Premium"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "iPhoneアプリの設定→プレミアムでロックを解除してください"
+ }
+ }
+ }
+ },
+ "iPhone과 연결 중...": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Connecting to iPhone..."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "iPhoneに接続中..."
+ }
+ }
+ }
+ },
+ "iPhone에 연결할 수 없어요. 근처에 있는지 확인해 주세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Can't reach your iPhone. Make sure it's nearby."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "iPhoneに接続できません。近くにあるか確認してください。"
+ }
+ }
+ }
+ },
+ "기간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Period"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "期間"
+ }
+ }
+ }
+ },
+ "꼬리표 없음": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No tag"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "タグなし"
+ }
+ }
+ }
+ },
+ "다짐": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト"
+ }
+ }
+ }
+ },
+ "다짐 달성률": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest Progress"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト達成率"
+ }
+ }
+ }
+ },
+ "다짐 달성률 (%@)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest progress (%@)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト達成率(%@)"
+ }
+ }
+ }
+ },
+ "목표": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goals"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標"
+ }
+ }
+ }
+ },
+ "목표 달성률": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal Progress"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標達成率"
+ }
+ }
+ }
+ },
+ "목표 달성률 (%@)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal progress (%@)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標達成率(%@)"
+ }
+ }
+ }
+ },
+ "선택한 다짐의 달성률을 표시해요. 한도형 다짐은 상태로 표시돼요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Shows the selected quest's progress. Limit quests show their status. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "選択したクエストの達成率を表示します。上限型はステータス表示になります。(プレミアム)"
+ }
+ }
+ }
+ },
+ "선택한 목표의 하루/주간/월간 달성률을 표시해요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Shows the selected goal's daily/weekly/monthly progress. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "選択した目標の日/週/月の達成率を表示します。(プレミアム)"
+ }
+ }
+ }
+ },
+ "실행 중 아님": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Not running"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "実行中なし"
+ }
+ }
+ }
+ },
+ "없음": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "None"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "なし"
+ }
+ }
+ }
+ },
+ "오늘 %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Today %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "今日 %@"
+ }
+ }
+ }
+ },
+ "오늘 %lld회": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Today %lld times"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "今日%lld回"
+ }
+ }
+ }
+ },
+ "월간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Monthly"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "月間"
+ }
+ }
+ }
+ },
+ "주간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Weekly"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "週間"
+ }
+ }
+ }
+ },
+ "초과": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Over"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "超過"
+ }
+ }
+ }
+ },
+ "측정 중": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Tracking"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "計測中"
+ }
+ }
+ }
+ },
+ "측정 중인 행동과 경과 시간을 표시해요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Shows the running action and elapsed time. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "計測中のアクションと経過時間を表示します。(プレミアム)"
+ }
+ }
+ }
+ },
+ "표시할 다짐과 기간을 선택하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose a quest and period to display."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "表示するクエストと期間を選んでください。"
+ }
+ }
+ }
+ },
+ "표시할 목표와 기간을 선택하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose a goal and period to display."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "表示する目標と期間を選んでください。"
+ }
+ }
+ }
+ },
+ "프리미엄": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Premium"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "プレミアム"
+ }
+ }
+ }
+ },
+ "프리미엄 기능": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Premium Features"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "プレミアム機能"
+ }
+ }
+ }
+ },
+ "하루": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Daily"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1日"
+ }
+ }
+ }
+ },
+ "하루다님": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "HaruDanim"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ハルダニム"
+ }
+ }
+ }
+ },
+ "한도": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Limit"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "上限"
+ }
+ }
+ }
+ },
+ "한도 안": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Within"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "上限内"
+ }
+ }
+ }
+ },
+ "한도 초과": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Over limit"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "上限超過"
+ }
+ }
+ }
+ },
+ "현재 현황": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Current Status"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "現在の状況"
+ }
+ }
+ }
+ }
+ },
+ "version": "1.0"
+}
diff --git a/myApp/HaruDanim/Haru_DanimWatchWidgets/ComplicationSupport.swift b/myApp/HaruDanim/Haru_DanimWatchWidgets/ComplicationSupport.swift
index 9ba5053..1f98349 100644
--- a/myApp/HaruDanim/Haru_DanimWatchWidgets/ComplicationSupport.swift
+++ b/myApp/HaruDanim/Haru_DanimWatchWidgets/ComplicationSupport.swift
@@ -37,9 +37,9 @@ enum WatchSpanOption: String, AppEnum {
var label: String {
switch self {
- case .day: return "하루"
- case .week: return "주간"
- case .month: return "월간"
+ case .day: return String(localized: "하루")
+ case .week: return String(localized: "주간")
+ case .month: return String(localized: "월간")
}
}
}
diff --git a/myApp/HaruDanim/Haru_DanimWatchWidgets/Localizable.xcstrings b/myApp/HaruDanim/Haru_DanimWatchWidgets/Localizable.xcstrings
new file mode 100644
index 0000000..dc699be
--- /dev/null
+++ b/myApp/HaruDanim/Haru_DanimWatchWidgets/Localizable.xcstrings
@@ -0,0 +1,536 @@
+{
+ "sourceLanguage": "ko",
+ "strings": {
+ "%@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@"
+ }
+ }
+ }
+ },
+ "%@ %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ %@"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ %2$@"
+ }
+ }
+ }
+ },
+ "%@ %lld%%": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ %lld%%"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ %lld%%"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ %2$lld%%"
+ }
+ }
+ }
+ },
+ "%@ +%lld": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ +%lld"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ +%lld"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ +%2$lld"
+ }
+ }
+ }
+ },
+ "%lld": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld"
+ }
+ }
+ }
+ },
+ "%lld%%": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld%%"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld%%"
+ }
+ }
+ }
+ },
+ "+%lld": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "+%lld"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "+%lld"
+ }
+ }
+ }
+ },
+ "기간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Period"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "期間"
+ }
+ }
+ }
+ },
+ "다짐": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト"
+ }
+ }
+ }
+ },
+ "다짐 달성률": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest Progress"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト達成率"
+ }
+ }
+ }
+ },
+ "다짐 달성률 (%@)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest progress (%@)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト達成率(%@)"
+ }
+ }
+ }
+ },
+ "목표": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goals"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標"
+ }
+ }
+ }
+ },
+ "목표 달성률": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal Progress"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標達成率"
+ }
+ }
+ }
+ },
+ "목표 달성률 (%@)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal progress (%@)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標達成率(%@)"
+ }
+ }
+ }
+ },
+ "선택한 다짐의 달성률을 표시해요. 한도형 다짐은 상태로 표시돼요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Shows the selected quest's progress. Limit quests show their status. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "選択したクエストの達成率を表示します。上限型はステータス表示になります。(プレミアム)"
+ }
+ }
+ }
+ },
+ "선택한 목표의 하루/주간/월간 달성률을 표시해요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Shows the selected goal's daily/weekly/monthly progress. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "選択した目標の日/週/月の達成率を表示します。(プレミアム)"
+ }
+ }
+ }
+ },
+ "실행 중 아님": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Not running"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "実行中なし"
+ }
+ }
+ }
+ },
+ "없음": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "None"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "なし"
+ }
+ }
+ }
+ },
+ "월간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Monthly"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "月間"
+ }
+ }
+ }
+ },
+ "주간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Weekly"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "週間"
+ }
+ }
+ }
+ },
+ "초과": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Over"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "超過"
+ }
+ }
+ }
+ },
+ "측정 중": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Tracking"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "計測中"
+ }
+ }
+ }
+ },
+ "측정 중인 행동과 경과 시간을 표시해요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Shows the running action and elapsed time. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "計測中のアクションと経過時間を表示します。(プレミアム)"
+ }
+ }
+ }
+ },
+ "표시할 다짐과 기간을 선택하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose a quest and period to display."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "表示するクエストと期間を選んでください。"
+ }
+ }
+ }
+ },
+ "표시할 목표와 기간을 선택하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose a goal and period to display."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "表示する目標と期間を選んでください。"
+ }
+ }
+ }
+ },
+ "프리미엄": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Premium"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "プレミアム"
+ }
+ }
+ }
+ },
+ "하루": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Daily"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1日"
+ }
+ }
+ }
+ },
+ "하루다님": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "HaruDanim"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ハルダニム"
+ }
+ }
+ }
+ },
+ "한도": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Limit"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "上限"
+ }
+ }
+ }
+ },
+ "한도 안": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Within"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "上限内"
+ }
+ }
+ }
+ },
+ "한도 초과": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Over limit"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "上限超過"
+ }
+ }
+ }
+ },
+ "현재 현황": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Current Status"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "現在の状況"
+ }
+ }
+ }
+ }
+ },
+ "version": "1.0"
+}
diff --git a/myApp/HaruDanim/Haru_DanimWatchWidgets/RateComplications.swift b/myApp/HaruDanim/Haru_DanimWatchWidgets/RateComplications.swift
index 8ff8fec..3a7db7d 100644
--- a/myApp/HaruDanim/Haru_DanimWatchWidgets/RateComplications.swift
+++ b/myApp/HaruDanim/Haru_DanimWatchWidgets/RateComplications.swift
@@ -261,7 +261,7 @@ struct QuestRateComplicationView: View {
Image(systemName: quest.achieved(forSpanRaw: entry.spanRaw)
? "checkmark.circle.fill" : "exclamationmark.triangle.fill")
.font(.system(size: 16))
- Text(quest.achieved(forSpanRaw: entry.spanRaw) ? "한도 안" : "초과")
+ Text(quest.achieved(forSpanRaw: entry.spanRaw) ? String(localized: "한도 안") : String(localized: "초과"))
.font(.system(size: 9))
}
} else {
@@ -277,7 +277,7 @@ struct QuestRateComplicationView: View {
private func inlineText(_ quest: WatchQuestInfo) -> String {
if quest.isAtMost {
- return quest.achieved(forSpanRaw: entry.spanRaw) ? "한도 안" : "한도 초과"
+ return quest.achieved(forSpanRaw: entry.spanRaw) ? String(localized: "한도 안") : String(localized: "한도 초과")
}
return "\(Int((quest.ratio(forSpanRaw: entry.spanRaw) * 100).rounded()))%"
}
diff --git a/myApp/HaruDanim/Haru_DanimWatchWidgetsExtension.entitlements b/myApp/HaruDanim/Haru_DanimWatchWidgetsExtension.entitlements
index 64b9130..9fb594a 100644
--- a/myApp/HaruDanim/Haru_DanimWatchWidgetsExtension.entitlements
+++ b/myApp/HaruDanim/Haru_DanimWatchWidgetsExtension.entitlements
@@ -6,5 +6,9 @@
group.com.yechan.HaruDanim
+ keychain-access-groups
+
+ $(AppIdentifierPrefix)com.yechan.HaruDanim
+
diff --git a/myApp/HaruDanim/IOS/ContentView.swift b/myApp/HaruDanim/IOS/ContentView.swift
index c8f560c..28db977 100644
--- a/myApp/HaruDanim/IOS/ContentView.swift
+++ b/myApp/HaruDanim/IOS/ContentView.swift
@@ -151,13 +151,13 @@ enum AppTab: String, CaseIterable, Identifiable {
var label: String {
switch self {
- case .main: return "모음"
- case .action: return "행동"
- case .tag: return "꼬리표"
- case .goal: return "목표"
- case .history: return "기록"
- case .stats: return "통계"
- case .settings: return "설정"
+ case .main: return String(localized: "모음")
+ case .action: return String(localized: "행동")
+ case .tag: return String(localized: "꼬리표")
+ case .goal: return String(localized: "목표")
+ case .history: return String(localized: "기록")
+ case .stats: return String(localized: "통계")
+ case .settings: return String(localized: "설정")
}
}
diff --git a/myApp/HaruDanim/IOS/Core/SymbolCatalog.swift b/myApp/HaruDanim/IOS/Core/SymbolCatalog.swift
index 0994bdd..240058a 100644
--- a/myApp/HaruDanim/IOS/Core/SymbolCatalog.swift
+++ b/myApp/HaruDanim/IOS/Core/SymbolCatalog.swift
@@ -26,14 +26,14 @@ enum SymbolCatalog {
}
private static let rawCategories: [(String, [String])] = [
- ("인기", [
+ (String(localized: "인기"), [
"star.fill", "heart.fill", "flame.fill", "bolt.fill", "leaf.fill",
"book.fill", "pencil", "figure.walk", "figure.run", "dumbbell.fill",
"cup.and.saucer.fill", "fork.knife", "bed.double.fill", "alarm.fill",
"laptopcomputer", "gamecontroller.fill", "music.note", "drop.fill",
"pills.fill", "brain.head.profile", "checkmark.circle.fill", "timer",
]),
- ("운동", [
+ (String(localized: "운동"), [
"figure.walk", "figure.run", "figure.hiking", "figure.yoga",
"figure.cooldown", "figure.strengthtraining.traditional",
"figure.strengthtraining.functional", "figure.core.training",
@@ -50,7 +50,7 @@ enum SymbolCatalog {
"volleyball.fill", "american.football.fill", "cricket.ball.fill",
"hockey.puck.fill", "medal.fill", "trophy.fill", "stopwatch.fill",
]),
- ("건강", [
+ (String(localized: "건강"), [
"heart.fill", "heart.text.square.fill", "cross.case.fill",
"pills.fill", "pill.fill", "syringe.fill", "bandage.fill",
"stethoscope", "thermometer.variable", "lungs.fill", "brain.fill",
@@ -60,7 +60,7 @@ enum SymbolCatalog {
"staroflife.fill", "leaf.fill", "carrot.fill", "scalemass.fill",
"toilet.fill", "shower.fill", "bathtub.fill", "comb.fill",
]),
- ("학습", [
+ (String(localized: "학습"), [
"book.fill", "book.closed.fill", "books.vertical.fill",
"text.book.closed.fill", "bookmark.fill", "graduationcap.fill",
"pencil", "pencil.and.ruler.fill", "highlighter",
@@ -72,7 +72,7 @@ enum SymbolCatalog {
"brain.head.profile", "lightbulb.fill", "puzzlepiece.fill",
"backpack.fill", "ruler.fill", "paperclip", "folder.fill",
]),
- ("일·업무", [
+ (String(localized: "일·업무"), [
"briefcase.fill", "laptopcomputer", "desktopcomputer",
"keyboard.fill", "printer.fill", "envelope.fill", "phone.fill",
"video.fill", "person.2.fill", "person.3.fill", "calendar",
@@ -84,7 +84,7 @@ enum SymbolCatalog {
"checklist", "list.bullet.clipboard.fill", "tray.full.fill",
"archivebox.fill", "presentation.fill" ,"megaphone.fill",
]),
- ("생활", [
+ (String(localized: "생활"), [
"house.fill", "sofa.fill", "bed.double.fill", "lamp.desk.fill",
"lightbulb.fill", "washer.fill", "dryer.fill", "dishwasher.fill",
"refrigerator.fill", "oven.fill", "stove.fill", "microwave.fill",
@@ -97,14 +97,14 @@ enum SymbolCatalog {
"pawprint.fill", "dog.fill", "cat.fill", "fish.fill",
"bird.fill", "teddybear.fill", "stroller.fill",
]),
- ("음식", [
+ (String(localized: "음식"), [
"fork.knife", "cup.and.saucer.fill", "mug.fill", "wineglass.fill",
"waterbottle.fill", "takeoutbag.and.cup.and.straw.fill",
"birthday.cake.fill", "carrot.fill", "fish.fill",
"frying.pan.fill", "popcorn.fill", "cooktop.fill",
"drop.fill", "flame.fill", "leaf.fill",
]),
- ("취미", [
+ (String(localized: "취미"), [
"gamecontroller.fill", "arcade.stick.console.fill", "dice.fill",
"puzzlepiece.fill", "music.note", "music.mic", "guitars.fill",
"pianokeys", "headphones", "hifispeaker.fill", "radio.fill",
@@ -116,7 +116,7 @@ enum SymbolCatalog {
"fishing.rod" ,"tree.fill", "camera.macro", "bird.fill",
"balloon.2.fill", "party.popper.fill", "crown.fill",
]),
- ("이동", [
+ (String(localized: "이동"), [
"car.fill", "bus.fill", "tram.fill", "train.side.front.car",
"airplane", "ferry.fill", "sailboat.fill", "bicycle",
"scooter", "motorcycle.fill" ,"fuelpump.fill", "ev.charger.fill",
@@ -124,7 +124,7 @@ enum SymbolCatalog {
"mappin.and.ellipse", "signpost.right.fill", "road.lanes",
"parkingsign", "steeringwheel", "suitcase.rolling.fill",
]),
- ("자연", [
+ (String(localized: "자연"), [
"sun.max.fill", "moon.fill", "moon.stars.fill", "sparkles",
"cloud.fill", "cloud.rain.fill", "cloud.snow.fill",
"cloud.sun.fill", "wind", "snowflake", "drop.fill",
@@ -132,7 +132,7 @@ enum SymbolCatalog {
"camera.macro", "mountain.2.fill", "water.waves",
"globe.asia.australia.fill", "star.fill", "rainbow",
]),
- ("기호", [
+ (String(localized: "기호"), [
"circle.fill", "square.fill", "triangle.fill", "diamond.fill",
"seal.fill", "shield.fill", "flag.fill", "flag.checkered",
"tag.fill", "bell.fill", "bookmark.fill", "pin.fill",
diff --git a/myApp/HaruDanim/IOS/Localizable.xcstrings b/myApp/HaruDanim/IOS/Localizable.xcstrings
index e9b44ff..59b45f8 100644
--- a/myApp/HaruDanim/IOS/Localizable.xcstrings
+++ b/myApp/HaruDanim/IOS/Localizable.xcstrings
@@ -1,1101 +1,6575 @@
{
- "sourceLanguage" : "ko",
- "strings" : {
- "" : {
-
- },
- "'%@ · %@' %@ 진행률: %@" : {
- "localizations" : {
- "ko" : {
- "stringUnit" : {
- "state" : "new",
- "value" : "'%1$@ · %2$@' %3$@ 진행률: %4$@"
- }
- }
- }
- },
- "'%@' %@ 진행률은 %lld%%예요." : {
- "localizations" : {
- "ko" : {
- "stringUnit" : {
- "state" : "new",
- "value" : "'%1$@' %2$@ 진행률은 %3$lld%%예요."
- }
- }
- }
- },
- "‘%@’ 꼬리표를 삭제할까요? 행동은 삭제되지 않아요." : {
-
- },
- "‘%@’ 목표를 달성했나요?" : {
-
- },
- "‘%@’ 목표를 삭제할까요? 다짐도 함께 삭제됩니다." : {
-
- },
- "'%@' 목표에는 아직 다짐이 없어요." : {
-
- },
- "‘%@’ 행동을 삭제할까요? 기록도 함께 삭제됩니다." : {
-
- },
- "'%@'은(는) 시간 측정 행동이에요. 측정 시작/종료를 사용해 주세요." : {
-
- },
- "'%@'은(는) 횟수 기록 행동이에요. 횟수 추가를 사용해 주세요." : {
-
- },
- "%@" : {
-
- },
- "%@ · %@" : {
- "localizations" : {
- "ko" : {
- "stringUnit" : {
- "state" : "new",
- "value" : "%1$@ · %2$@"
- }
- }
- }
- },
- "%@ · %@ %@" : {
- "localizations" : {
- "ko" : {
- "stringUnit" : {
- "state" : "new",
- "value" : "%1$@ · %2$@ %3$@"
- }
- }
- }
- },
- "%@ %@" : {
- "localizations" : {
- "ko" : {
- "stringUnit" : {
- "state" : "new",
- "value" : "%1$@ %2$@"
- }
- }
- }
- },
- "%@ %@ 누적 시간은 %@이에요." : {
- "localizations" : {
- "ko" : {
- "stringUnit" : {
- "state" : "new",
- "value" : "%1$@ %2$@ 누적 시간은 %3$@이에요."
- }
- }
- }
- },
- "%@ %@ 누적 횟수는 %lld회예요." : {
- "localizations" : {
- "ko" : {
- "stringUnit" : {
- "state" : "new",
- "value" : "%1$@ %2$@ 누적 횟수는 %3$lld회예요."
- }
- }
- }
- },
- "%@ %lld회" : {
- "localizations" : {
- "ko" : {
- "stringUnit" : {
- "state" : "new",
- "value" : "%1$@ %2$lld회"
- }
- }
- }
- },
- "%@ %lld회 추가했어요. 오늘 총 %lld회예요." : {
- "localizations" : {
- "ko" : {
- "stringUnit" : {
- "state" : "new",
- "value" : "%1$@ %2$lld회 추가했어요. 오늘 총 %3$lld회예요."
- }
- }
- }
- },
- "%@ ~ %@" : {
- "localizations" : {
- "ko" : {
- "stringUnit" : {
- "state" : "new",
- "value" : "%1$@ ~ %2$@"
- }
- }
- }
- },
- "%@ 기록" : {
-
- },
- "%@ 시작" : {
-
- },
- "%@ 측정 완료" : {
-
- },
- "%@ 측정을 시작했어요." : {
-
- },
- "%@ 측정을 종료했어요. %@ 기록했어요." : {
- "localizations" : {
- "ko" : {
- "stringUnit" : {
- "state" : "new",
- "value" : "%1$@ 측정을 종료했어요. %2$@ 기록했어요."
- }
- }
- }
- },
- "%@ 측정을 종료했어요. 너무 짧은 기록이라 저장하지 않았어요." : {
-
- },
- "%@요일" : {
-
- },
- "%@은(는) 이미 측정 중이에요." : {
-
- },
- "%@은(는) 측정 중이 아니에요." : {
-
- },
- "%lld" : {
-
- },
- "%lld/%lld" : {
- "localizations" : {
- "ko" : {
- "stringUnit" : {
- "state" : "new",
- "value" : "%1$lld/%2$lld"
- }
- }
- }
- },
- "%lld%%" : {
-
- },
- "%lld개" : {
-
- },
- "%lld분" : {
-
- },
- "%lld시간" : {
-
- },
- "%lld째 주" : {
-
- },
- "%lld회" : {
-
- },
- "+%lld" : {
-
- },
- "+%lld 기록 완료" : {
-
- },
- "1.0" : {
-
- },
- "① 대상 선택" : {
-
- },
- "② 주기 선택" : {
-
- },
- "③ 목표량과 방향" : {
-
- },
- "iCloud로 아이패드 등 다른 기기와 데이터가 동기화돼요. 변경 사항은 앱을 완전히 종료했다가 다시 실행하면 적용돼요." : {
-
- },
- "값" : {
-
- },
- "건너뛰기" : {
-
- },
- "결제 기능은 App Store 배포 준비와 함께 제공될 예정이에요." : {
-
- },
- "그래프로 보여줄 행동과 기간을 선택하세요." : {
-
- },
- "기간" : {
-
- },
- "기간 진행률 %@" : {
-
- },
- "기기 간 동기화" : {
-
- },
- "기록" : {
-
- },
- "기록 (최신순)" : {
-
- },
- "기록 삭제" : {
-
- },
- "기록 삭제 (증가 취소)" : {
-
- },
- "기록 시 메모 창 표시" : {
-
- },
- "기록 시각" : {
-
- },
- "기록 직접 추가" : {
-
- },
- "기록 확인" : {
-
- },
- "기록이 없어요" : {
-
- },
- "기본 정보" : {
-
- },
- "꼬리표" : {
-
- },
- "꼬리표 (복수 선택 가능)" : {
-
- },
- "꼬리표 삭제" : {
-
- },
- "꼬리표 수정" : {
-
- },
- "꼬리표 순서" : {
-
- },
- "꼬리표 순서 변경" : {
-
- },
- "꼬리표 없음" : {
-
- },
- "꼬리표 이름 (예: 공부)" : {
-
- },
- "꼬리표 추가" : {
-
- },
- "꼬리표가 없어요" : {
-
- },
- "꼬리표를 누르면 소속 행동이 한 번에 선택·해제되고, 그 안에서 행동을 개별로 켜고 끌 수 있어요." : {
-
- },
- "끝" : {
-
- },
- "날짜" : {
-
- },
- "날짜 기준" : {
-
- },
- "날짜 선택" : {
-
- },
- "누적 기록" : {
-
- },
- "다이나믹 아일랜드 · 잠금화면" : {
-
- },
- "다짐" : {
-
- },
- "다짐 %lld개" : {
-
- },
- "다짐 1" : {
-
- },
- "다짐 2" : {
-
- },
- "다짐 3" : {
-
- },
- "다짐 4" : {
-
- },
- "다짐 수정" : {
-
- },
- "다짐 점 표시" : {
-
- },
- "다짐 진행률" : {
-
- },
- "다짐 진행률 가져오기" : {
-
- },
- "다짐 진행률 위젯" : {
-
- },
- "다짐 추가" : {
-
- },
- "다짐 현황" : {
-
- },
- "다짐 현황 위젯" : {
-
- },
- "다짐들의 진행률 링을 표시할 목표와 기간을 선택하세요." : {
-
- },
- "다짐을 찾을 수 없어요. 앱에서 삭제됐을 수 있어요." : {
-
- },
- "다짐의 진행률을 원형 링으로 보고, 눌러서 바로 실행해요. (프리미엄)" : {
-
- },
- "다짐의 하루/주간/월간 진행률(%)을 가져와요." : {
-
- },
- "다짐이 없는 목표예요. 달성했나요?" : {
-
- },
- "다짐이 없어요" : {
-
- },
- "다크" : {
-
- },
- "닫기" : {
-
- },
- "달성률 기간" : {
-
- },
- "달성하거나 종료한 목표가 여기에 모여요." : {
-
- },
- "달성하지 못했어요" : {
-
- },
- "달성했나요? 탭해서 선택" : {
-
- },
- "달성했어요" : {
-
- },
- "당신의 하루에 다녀가다" : {
- "comment" : "스플래시 브랜드 멘트",
- "localizations" : {
- "en" : {
- "stringUnit" : {
- "state" : "translated",
- "value" : "Stopping by your day"
+ "sourceLanguage": "ko",
+ "strings": {
+ "%@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@"
}
},
- "ja" : {
- "stringUnit" : {
- "state" : "translated",
- "value" : "あなたの一日に、立ち寄る"
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@"
}
}
}
},
- "대상 종류" : {
-
- },
- "대표 시간 기준" : {
-
- },
- "더보기" : {
-
- },
- "동기화" : {
-
- },
- "등록된 꼬리표가 없어요" : {
-
- },
- "등록된 행동이 없어요" : {
-
- },
- "라이트" : {
-
- },
- "메모" : {
-
- },
- "메모 남기기" : {
-
- },
- "몇째 주" : {
-
- },
- "모음" : {
-
- },
- "모음 탭 목표 진행 현황" : {
-
- },
- "목표" : {
-
- },
- "목표 1" : {
-
- },
- "목표 2" : {
-
- },
- "목표 2 (대형 전용)" : {
-
- },
- "목표 3" : {
-
- },
- "목표 4" : {
-
- },
- "목표 내용" : {
-
- },
- "목표 달성률 (잠금화면)" : {
-
- },
- "목표 삭제" : {
-
- },
- "목표 수동 종료" : {
-
- },
- "목표 수정" : {
-
- },
- "목표 없음" : {
-
- },
- "목표 진행 현황" : {
-
- },
- "목표 진행률" : {
-
- },
- "목표 진행률 가져오기" : {
-
- },
- "목표 진행률 위젯" : {
-
- },
- "목표 추가" : {
-
- },
- "목표 탭에서 목표를 만들면 여기서 선택할 수 있어요." : {
-
- },
- "목표 확인" : {
-
- },
- "목표 횟수" : {
-
- },
- "목표를 지금 종료할까요?" : {
-
- },
- "목표를 찾을 수 없어요. 앱에서 삭제됐을 수 있어요." : {
-
- },
- "목표에 속한 다짐들의 진행률을 원형 링으로 한눈에 봐요. (프리미엄)" : {
-
- },
- "목표의 하루·주간·월간 진행률을 진행바로 확인해요. (프리미엄)" : {
-
- },
- "목표의 하루/주간/월간 진행률(%)을 가져와요. 소속 다짐들의 진행률 평균이에요." : {
-
- },
- "무료 버전에서는 목표당 다짐을 최대 %lld개까지 만들 수 있어요." : {
-
- },
- "무료 버전에서는 목표를 최대 %lld개까지 만들 수 있어요. 프리미엄으로 업그레이드하면 무제한으로 사용할 수 있습니다." : {
-
- },
- "무료 버전에서는 행동을 최대 %lld개까지 만들 수 있어요. 프리미엄으로 업그레이드하면 무제한으로 사용할 수 있습니다." : {
-
- },
- "무료 사용 중" : {
-
- },
- "무료 사용 한도" : {
-
- },
- "무료: 행동 %lld개 · 목표 %lld개 · 목표당 다짐 %lld개까지" : {
- "localizations" : {
- "ko" : {
- "stringUnit" : {
- "state" : "new",
- "value" : "무료: 행동 %1$lld개 · 목표 %2$lld개 · 목표당 다짐 %3$lld개까지"
- }
- }
- }
- },
- "미리 보기" : {
-
- },
- "반복 주기" : {
-
- },
- "방향" : {
-
- },
- "배치 편집" : {
-
- },
- "버전" : {
-
- },
- "버튼을 길게 눌러 끌면 순서를 바꿀 수 있어요." : {
-
- },
- "범위" : {
-
- },
- "보기" : {
-
- },
- "분" : {
-
- },
- "사용 중" : {
-
- },
- "삭제" : {
-
- },
- "새 꼬리표 만들기" : {
-
- },
- "새 목표를 세우거나, 아래에서 완료된 목표를 확인해 보세요." : {
-
- },
- "색" : {
-
- },
- "선택" : {
-
- },
- "선택한 목표의 진행 현황이 모음 탭 상단에 표시돼요. 탭하면 목표 상세로 이동해요. 2개 이상 선택하면 카드를 옆으로 쓸어 넘겨 한 장씩 볼 수 있고, 표시 방식(다짐별로 각각 / 전체 다짐 합산)은 모든 카드에 똑같이 적용돼요." : {
-
- },
- "선택한 탭(최대 %lld개)이 하단 탭바에 바로 표시되고, 나머지 탭은 ‘더보기’에서 열 수 있어요." : {
-
- },
- "선택한 행동들의 통계 꺾은선 그래프를 확인해요. (프리미엄)" : {
-
- },
- "설정" : {
-
- },
- "설정한 시간보다 짧게 측정하고 종료한 기록은 저장하지 않아요. 버튼을 실수로 눌렀을 때 유용해요." : {
-
- },
- "수량" : {
-
- },
- "수정" : {
-
- },
- "순서" : {
-
- },
- "숫자만" : {
-
- },
- "시각" : {
-
- },
- "시간" : {
-
- },
- "시간 기록" : {
-
- },
- "시간 기록 수정" : {
-
- },
- "시간 기록 추가" : {
-
- },
- "시간 기록이 없어요" : {
-
- },
- "시간 측정 시작" : {
-
- },
- "시간 측정 종료" : {
-
- },
- "시간 측정 행동은 시작/종료를 전환하고, 횟수 기록 행동은 횟수를 1 추가해요." : {
-
- },
- "시간 측정 행동의 측정을 시작해요." : {
-
- },
- "시간(h)" : {
-
- },
- "시리 단축어는 프리미엄 기능이에요. 하루 다님 앱의 설정 → 프리미엄에서 잠금 해제해 주세요." : {
-
- },
- "시작" : {
-
- },
- "시작 시각" : {
-
- },
- "시작·종료 시각 수동 입력" : {
-
- },
- "시작일 (과거 가능)" : {
-
- },
- "심볼 이름 검색 (영문)" : {
-
- },
- "아이콘" : {
-
- },
- "아이콘 선택" : {
-
- },
- "아이콘과 색" : {
-
- },
- "아직 등록된 행동이 없어요" : {
-
- },
- "앱에서 행동을 만들고 기록하면 그래프가 표시돼요." : {
-
- },
- "앱에서 행동을 만들면 여기서 실행할 수 있어요." : {
-
- },
- "앱의 목표 탭에서 다짐을 만들면 진행률이 표시돼요." : {
-
- },
- "앱의 목표 탭에서 목표를 만들면 진행률이 표시돼요." : {
-
- },
- "앱의 목표 탭에서 목표와 다짐을 만들어 보세요." : {
-
- },
- "앱의 설정 → 프리미엄에서\n잠금 해제해 주세요" : {
-
- },
- "언어" : {
-
- },
- "여러 행동을 동시에 추적 중일 때 대표로 표시할 시간이에요. (Live Activity 지원은 추후 추가 예정)" : {
-
- },
- "예: 토익 700점 이상 받기" : {
-
- },
- "오늘" : {
-
- },
- "오른쪽 위 ‘순서’를 누르면 다짐 순서를 바꿀 수 있어요." : {
-
- },
- "오른쪽 위 + 버튼으로 꼬리표를 추가하세요." : {
-
- },
- "오른쪽 위 + 버튼으로 행동을 추가하세요." : {
-
- },
- "오른쪽 핸들을 끌어서 순서를 바꾼 뒤 ‘완료’를 누르세요. 순서는 저장되어 유지돼요." : {
-
- },
- "완료" : {
-
- },
- "완료된 목표" : {
-
- },
- "완료된 목표 보기" : {
-
- },
- "완료된 목표가 없어요" : {
-
- },
- "요일" : {
-
- },
- "원형 게이지" : {
-
- },
- "원형 진행률로 표시할 다짐과 기간을 선택하세요." : {
-
- },
- "이 기록에 대한 메모 (선택)" : {
-
- },
- "이 목표를 이루기 위한 다짐(행동/꼬리표 + 주기 + 목표량)을 추가하세요." : {
-
- },
- "이름" : {
-
- },
- "이번 기록에 대한 메모 (선택)" : {
-
- },
- "이번 달" : {
-
- },
- "이번 주" : {
-
- },
- "이번 측정에 대한 메모 (선택)" : {
-
- },
- "일주일" : {
-
- },
- "일주일 (하루 단위)" : {
-
- },
- "잠금화면 목표 위젯" : {
-
- },
- "잠금화면에 표시할 목표와 기간, 표시 방식을 선택하세요." : {
-
- },
- "잠금화면에서 목표 달성률과 다짐 현황을 확인해요. (프리미엄)" : {
-
- },
- "저장" : {
-
- },
- "적용일" : {
-
- },
- "전체 선택" : {
-
- },
- "종료" : {
-
- },
- "종료 시 하위 다짐들의 달성 여부에 따라 달성/미달성이 결정돼요." : {
-
- },
- "종료 시각" : {
-
- },
- "종료 시각을 끄면 진행 중 상태가 돼요." : {
-
- },
- "종료됨" : {
-
- },
- "종료일" : {
-
- },
- "종료일 지정" : {
-
- },
- "주 시작 요일" : {
-
- },
- "주 평균" : {
-
- },
- "주기마다 목표량 이상을 달성하는 것이 목표예요." : {
-
- },
- "주기마다 목표량을 넘지 않는 것이 목표예요." : {
-
- },
- "주차" : {
-
- },
- "즐겨찾기" : {
-
- },
- "즐겨찾기 해제" : {
-
- },
- "지금 시각" : {
-
- },
- "지정된 꼬리표 없음" : {
-
- },
- "직접 선택" : {
-
- },
- "진행 중" : {
-
- },
- "진행 중인 목표가 없어요" : {
-
- },
- "진행률 기간" : {
-
- },
- "짧은 기록 무시" : {
-
- },
- "추가" : {
-
- },
- "추가할 횟수" : {
-
- },
- "추적 방식" : {
-
- },
- "취소" : {
-
- },
- "측정" : {
-
- },
- "측정 기준" : {
-
- },
- "측정 시작" : {
-
- },
- "측정 종료" : {
-
- },
- "측정 중인 행동의 시간 측정을 종료해요." : {
-
- },
- "켜면 시간 측정을 종료할 때 메모 창이 떠요. 건너뛸 수 있어요." : {
-
- },
- "켜면 횟수를 추가할 때마다 메모 창이 떠요. 건너뛸 수 있어요." : {
-
- },
- "큰 목표를 세우고, 그 안에 다짐을 추가해 보세요." : {
-
- },
- "탭바 구성" : {
-
- },
- "테마" : {
-
- },
- "통계" : {
-
- },
- "통계 기간" : {
-
- },
- "통계 보기" : {
-
- },
- "통계 위젯" : {
-
- },
- "특정 시각 지정" : {
-
- },
- "표시 기간" : {
-
- },
- "표시 방식" : {
-
- },
- "표시 방식 (원형 크기)" : {
-
- },
- "표시할 기록이 없어요" : {
-
- },
- "표시할 행동과 누적 기간을 선택하세요." : {
-
- },
- "프리미엄" : {
-
- },
- "프리미엄 구매 (준비 중)" : {
-
- },
- "프리미엄 기능" : {
-
- },
- "프리미엄으로 할 수 있는 것" : {
-
- },
- "하루" : {
-
- },
- "하루 다님 · 목표 없음" : {
-
- },
- "하루 다님 · 프리미엄 기능" : {
-
- },
- "하루 시작 시간" : {
-
- },
- "하루 시작 시간을 걸치는 기록은 통계에서 자동으로 날짜별로 나누어 계산돼요." : {
-
- },
- "하루 평균" : {
-
- },
- "하루·주간·월간 진행률을 표시할 목표를 선택하세요." : {
-
- },
- "하루다님" : {
- "comment" : "앱 이름",
- "localizations" : {
- "en" : {
- "stringUnit" : {
- "state" : "translated",
- "value" : "Haru Danim"
+ "%@ %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ %@"
}
},
- "ja" : {
- "stringUnit" : {
- "state" : "translated",
- "value" : "Haru Danim"
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ %@"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ %2$@"
}
}
}
},
- "한 달 (주 단위)" : {
-
- },
- "한 달 (하루 단위, 중형 이상)" : {
-
- },
- "한 줄에 표시할 개수" : {
-
- },
- "합계" : {
-
- },
- "행동" : {
-
- },
- "행동 %lld/%lld개 표시 중" : {
- "localizations" : {
- "ko" : {
- "stringUnit" : {
- "state" : "new",
- "value" : "행동 %1$lld/%2$lld개 표시 중"
+ "%@ %@ 누적 시간은 %@이에요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Total time for %@ (%@) is %@."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@の%@の累計時間は%@です。"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ %2$@ 누적 시간은 %3$@이에요."
}
}
}
},
- "행동 %lld개" : {
-
+ "%@ %@ 누적 횟수는 %lld회예요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Total count for %@ (%@) is %lld."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@の%@の累計回数は%lld回です。"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ %2$@ 누적 횟수는 %3$lld회예요."
+ }
+ }
+ }
},
- "행동 1" : {
-
+ "%@ %lld회": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ %lld times"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ %lld回"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ %2$lld회"
+ }
+ }
+ }
},
- "행동 2" : {
-
+ "%@ %lld회 추가했어요. 오늘 총 %lld회예요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Added %lld to %@. Today's total is %lld."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@を%lld回追加しました。今日の合計は%lld回です。"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ %2$lld회 추가했어요. 오늘 총 %3$lld회예요."
+ }
+ }
+ }
},
- "행동 3" : {
-
+ "%@ ~ %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ – %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@〜%@"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ ~ %2$@"
+ }
+ }
+ }
},
- "행동 4" : {
-
+ "%@ · %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ · %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ · %@"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ · %2$@"
+ }
+ }
+ }
},
- "행동 누적값 가져오기" : {
-
+ "%@ · %@ %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ · %@ %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ · %@ %@"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ · %2$@ %3$@"
+ }
+ }
+ }
},
- "행동 버튼의 색은 지정한 꼬리표의 색을 따라요." : {
-
+ "%@ 기록": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ records"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@の記録"
+ }
+ }
+ }
},
- "행동 삭제" : {
-
+ "%@ 시작": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Started %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@開始"
+ }
+ }
+ }
},
- "행동 설정 수정" : {
-
+ "%@ 시작 · 종료일 없음": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Started %@ · No end date"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@開始・終了日なし"
+ }
+ }
+ }
},
- "행동 수정" : {
-
+ "%@ 측정 완료": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Finished tracking %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@の計測完了"
+ }
+ }
+ }
},
- "행동 실행" : {
-
+ "%@ 측정을 시작했어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Started tracking %@."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@の計測を開始しました。"
+ }
+ }
+ }
},
- "행동 실행 위젯" : {
-
+ "%@ 측정을 종료했어요. %@ 기록했어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stopped tracking %@. Recorded %@."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@の計測を終了しました。%@を記録しました。"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ 측정을 종료했어요. %2$@ 기록했어요."
+ }
+ }
+ }
},
- "행동 이름 (예: 독서)" : {
-
+ "%@ 측정을 종료했어요. 너무 짧은 기록이라 저장하지 않았어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stopped tracking %@. The session was too short to save."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@の計測を終了しました。短すぎる記録のため保存しませんでした。"
+ }
+ }
+ }
},
- "행동 추가" : {
-
+ "%@ 한도 지킴": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ within limit"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ 上限内"
+ }
+ }
+ }
},
- "행동 탭에서 추적할 행동을 추가해 보세요." : {
-
+ "%@ 한도 초과": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ over limit"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ 上限超過"
+ }
+ }
+ }
},
- "행동 통계" : {
-
+ "%@요일": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@曜日"
+ }
+ }
+ }
},
- "행동을 위젯에서 바로 실행하고 누적값을 확인해요. (프리미엄)" : {
-
+ "%@은(는) 이미 측정 중이에요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ is already being tracked."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@はすでに計測中です。"
+ }
+ }
+ }
},
- "행동을 찾을 수 없어요. 앱에서 삭제됐을 수 있어요." : {
-
+ "%@은(는) 측정 중이 아니에요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ is not being tracked."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@は計測中ではありません。"
+ }
+ }
+ }
},
- "행동의 하루/주간/월간 누적 시간(초) 또는 횟수를 가져와요." : {
-
+ "%lld": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld"
+ }
+ }
+ }
},
- "현재 진행 중" : {
-
+ "%lld%%": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld%%"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld%%"
+ }
+ }
+ }
},
- "화면" : {
-
+ "%lld/%lld": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld/%lld"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld/%lld"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$lld/%2$lld"
+ }
+ }
+ }
},
- "확인" : {
-
+ "%lld개": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld個"
+ }
+ }
+ }
},
- "회" : {
-
+ "%lld분": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lldm"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld分"
+ }
+ }
+ }
},
- "횟수" : {
-
+ "%lld시간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lldh"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld時間"
+ }
+ }
+ }
},
- "횟수 기록" : {
-
+ "%lld시간 %lld분": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lldh %lldm"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld時間%lld分"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$lld시간 %2$lld분"
+ }
+ }
+ }
},
- "횟수 기록 수정" : {
-
+ "%lld일": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld日"
+ }
+ }
+ }
},
- "횟수 기록 행동의 횟수를 바로 추가해요." : {
-
+ "%lld째 주": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Week %lld"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "第%lld週"
+ }
+ }
+ }
},
- "횟수 기록이 없어요" : {
-
+ "%lld초": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%llds"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld秒"
+ }
+ }
+ }
},
- "횟수 직접 입력·수정" : {
-
+ "%lld회": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld times"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld回"
+ }
+ }
+ }
},
- "횟수 직접 추가" : {
-
+ "'%@ · %@' %@ 진행률: %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "'%@ · %@' %@ progress: %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "「%@ · %@」の%@進捗率: %@"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "'%1$@ · %2$@' %3$@ 진행률: %4$@"
+ }
+ }
+ }
},
- "횟수 추가" : {
-
+ "'%@' %@ 진행률은 %lld%%예요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "'%@' %@ progress is %lld%%."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "「%@」の%@進捗率は%lld%%です。"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "'%1$@' %2$@ 진행률은 %3$lld%%예요."
+ }
+ }
+ }
+ },
+ "'%@' 목표에는 아직 다짐이 없어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "The goal '%@' has no quests yet."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標「%@」にはまだクエストがありません。"
+ }
+ }
+ }
+ },
+ "'%@'은(는) 시간 측정 행동이에요. 측정 시작/종료를 사용해 주세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "'%@' is a time-tracking action. Use start/stop tracking instead."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "「%@」は時間計測タイプです。計測の開始/終了を使ってください。"
+ }
+ }
+ }
+ },
+ "'%@'은(는) 횟수 기록 행동이에요. 횟수 추가를 사용해 주세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "'%@' is a count action. Use add count instead."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "「%@」は回数記録タイプです。回数の追加を使ってください。"
+ }
+ }
+ }
+ },
+ "+%lld": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "+%lld"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "+%lld"
+ }
+ }
+ }
+ },
+ "+%lld 기록 완료": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "+%lld recorded"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "+%lld記録しました"
+ }
+ }
+ }
+ },
+ "1.0": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1.0"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1.0"
+ }
+ }
+ }
+ },
+ "10초": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "10 sec"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "10秒"
+ }
+ }
+ }
+ },
+ "1분": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1 min"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1分"
+ }
+ }
+ }
+ },
+ "30초": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "30 sec"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "30秒"
+ }
+ }
+ }
+ },
+ "3초": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "3 sec"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "3秒"
+ }
+ }
+ }
+ },
+ "5초": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "5 sec"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "5秒"
+ }
+ }
+ }
+ },
+ "iCloud로 아이패드 등 다른 기기와 데이터가 동기화돼요. 변경 사항은 앱을 완전히 종료했다가 다시 실행하면 적용돼요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Sync your data with iPad and other devices via iCloud. Changes take effect after fully quitting and relaunching the app."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "iCloudでiPadなどの他のデバイスとデータを同期します。変更はアプリを完全に終了して再起動すると反映されます。"
+ }
+ }
+ }
+ },
+ "‘%@’ 꼬리표를 삭제할까요? 행동은 삭제되지 않아요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Delete the tag ‘%@’? Its actions won't be deleted."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "タグ「%@」を削除しますか?アクションは削除されません。"
+ }
+ }
+ }
+ },
+ "‘%@’ 목표를 달성했나요?": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Did you achieve the goal ‘%@’?"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標「%@」を達成しましたか?"
+ }
+ }
+ }
+ },
+ "‘%@’ 목표를 삭제할까요? 다짐도 함께 삭제됩니다.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Delete the goal ‘%@’? Its quests will also be deleted."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標「%@」を削除しますか?クエストも一緒に削除されます。"
+ }
+ }
+ }
+ },
+ "‘%@’ 행동을 삭제할까요? 기록도 함께 삭제됩니다.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Delete the action ‘%@’? Its records will also be deleted."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション「%@」を削除しますか?記録も一緒に削除されます。"
+ }
+ }
+ }
+ },
+ "① 대상 선택": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "① Choose a target"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "① 対象を選択"
+ }
+ }
+ }
+ },
+ "② 주기 선택": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "② Choose a cycle"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "② 周期を選択"
+ }
+ }
+ }
+ },
+ "③ 목표량과 방향": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "③ Amount & direction"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "③ 目標量と方向"
+ }
+ }
+ }
+ },
+ "가장 나중에 시작한 행동": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Most recently started action"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "最後に開始したアクション"
+ }
+ }
+ }
+ },
+ "가장 먼저 시작한 행동": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Earliest started action"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "最初に開始したアクション"
+ }
+ }
+ }
+ },
+ "값": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Value"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "値"
+ }
+ }
+ }
+ },
+ "개발용": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Developer"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "開発用"
+ }
+ }
+ }
+ },
+ "건강": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Health"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "健康"
+ }
+ }
+ }
+ },
+ "건너뛰기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Skip"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "スキップ"
+ }
+ }
+ }
+ },
+ "구독은 언제든 해지할 수 있고, 평생 이용권은 한 번 결제로 모든 기능을 계속 사용해요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Cancel your subscription anytime. The lifetime plan is a one-time purchase with permanent access to all features."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "サブスクリプションはいつでも解約できます。買い切りは1回の購入で全機能をずっと使えます。"
+ }
+ }
+ }
+ },
+ "구매 복원": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Restore Purchases"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "購入を復元"
+ }
+ }
+ }
+ },
+ "구매를 완료하지 못했어요. 잠시 후 다시 시도해 주세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "The purchase couldn't be completed. Please try again later."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "購入を完了できませんでした。しばらくしてからもう一度お試しください。"
+ }
+ }
+ }
+ },
+ "그래프로 보여줄 행동과 기간을 선택하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose actions and a period to chart."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "グラフに表示するアクションと期間を選んでください。"
+ }
+ }
+ }
+ },
+ "금": {
+ "comment": "요일 축약(금요일)",
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Fri"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "金"
+ }
+ }
+ }
+ },
+ "기간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Period"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "期間"
+ }
+ }
+ }
+ },
+ "기간 진행률 %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Period progress %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "期間進捗 %@"
+ }
+ }
+ }
+ },
+ "기기 간 동기화": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Sync Across Devices"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "デバイス間同期"
+ }
+ }
+ }
+ },
+ "기록": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "History"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "記録"
+ }
+ }
+ }
+ },
+ "기록 (최신순)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Records (newest first)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "記録(新しい順)"
+ }
+ }
+ }
+ },
+ "기록 삭제": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Delete Record"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "記録を削除"
+ }
+ }
+ }
+ },
+ "기록 삭제 (증가 취소)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Delete record (undo count)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "記録を削除(カウント取り消し)"
+ }
+ }
+ }
+ },
+ "기록 시 메모 창 표시": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Show note prompt when recording"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "記録時にメモ画面を表示"
+ }
+ }
+ }
+ },
+ "기록 시각": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Recorded at"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "記録時刻"
+ }
+ }
+ }
+ },
+ "기록 직접 추가": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Add record manually"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "記録を手動で追加"
+ }
+ }
+ }
+ },
+ "기록 확인": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "View history"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "記録を見る"
+ }
+ }
+ }
+ },
+ "기록이 없어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No records"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "記録がありません"
+ }
+ }
+ }
+ },
+ "기본 정보": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Basics"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "基本情報"
+ }
+ }
+ }
+ },
+ "기호": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Symbols"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "記号"
+ }
+ }
+ }
+ },
+ "꼬리표": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Tags"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "タグ"
+ }
+ }
+ }
+ },
+ "꼬리표 (복수 선택 가능)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Tags (select multiple)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "タグ(複数選択可)"
+ }
+ }
+ }
+ },
+ "꼬리표 삭제": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Delete Tag"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "タグを削除"
+ }
+ }
+ }
+ },
+ "꼬리표 수정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Edit Tag"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "タグを編集"
+ }
+ }
+ }
+ },
+ "꼬리표 순서": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Tag Order"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "タグの順序"
+ }
+ }
+ }
+ },
+ "꼬리표 순서 변경": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Reorder Tags"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "タグの並べ替え"
+ }
+ }
+ }
+ },
+ "꼬리표 없음": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No tag"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "タグなし"
+ }
+ }
+ }
+ },
+ "꼬리표 이름 (예: 공부)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Tag name (e.g. Study)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "タグ名(例: 勉強)"
+ }
+ }
+ }
+ },
+ "꼬리표 추가": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Add Tag"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "タグを追加"
+ }
+ }
+ }
+ },
+ "꼬리표가 없어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No tags"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "タグがありません"
+ }
+ }
+ }
+ },
+ "꼬리표를 누르면 소속 행동이 한 번에 선택·해제되고, 그 안에서 행동을 개별로 켜고 끌 수 있어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Tap a tag to select or deselect all of its actions at once, or toggle each action individually."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "タグをタップすると所属アクションを一括で選択・解除でき、その中で個別にオン/オフもできます。"
+ }
+ }
+ }
+ },
+ "끝": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "End"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "終了"
+ }
+ }
+ }
+ },
+ "날짜": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Date"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "日付"
+ }
+ }
+ }
+ },
+ "날짜 기준": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Date Rules"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "日付の基準"
+ }
+ }
+ }
+ },
+ "날짜 선택": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose dates"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "日付を選択"
+ }
+ }
+ }
+ },
+ "날짜 지정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Specific dates"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "日付指定"
+ }
+ }
+ }
+ },
+ "누적 기록": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Totals"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "累計記録"
+ }
+ }
+ }
+ },
+ "다시 시도": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Try Again"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "再試行"
+ }
+ }
+ }
+ },
+ "다이나믹 아일랜드 · 잠금화면": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Dynamic Island · Lock Screen"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Dynamic Island・ロック画面"
+ }
+ }
+ }
+ },
+ "다짐": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト"
+ }
+ }
+ }
+ },
+ "다짐 %lld개": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld quests"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト%lld個"
+ }
+ }
+ }
+ },
+ "다짐 1": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest 1"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト1"
+ }
+ }
+ }
+ },
+ "다짐 2": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest 2"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト2"
+ }
+ }
+ }
+ },
+ "다짐 3": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest 3"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト3"
+ }
+ }
+ }
+ },
+ "다짐 4": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest 4"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト4"
+ }
+ }
+ }
+ },
+ "다짐 수정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Edit Quest"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストを編集"
+ }
+ }
+ }
+ },
+ "다짐 점 표시": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest dots"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストをドット表示"
+ }
+ }
+ }
+ },
+ "다짐 진행률": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest Progress"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト進捗率"
+ }
+ }
+ }
+ },
+ "다짐 진행률 가져오기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Get Quest Progress"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストの進捗率を取得"
+ }
+ }
+ }
+ },
+ "다짐 진행률 위젯": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest Progress Widget"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト進捗ウィジェット"
+ }
+ }
+ }
+ },
+ "다짐 추가": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Add Quest"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストを追加"
+ }
+ }
+ }
+ },
+ "다짐 현황": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest Status"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト状況"
+ }
+ }
+ }
+ },
+ "다짐 현황 위젯": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest Status Widget"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト状況ウィジェット"
+ }
+ }
+ }
+ },
+ "다짐들의 진행률 링을 표시할 목표와 기간을 선택하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose a goal and period for the quest progress rings."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストの進捗リングを表示する目標と期間を選んでください。"
+ }
+ }
+ }
+ },
+ "다짐별로 각각": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Each quest separately"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストごとに表示"
+ }
+ }
+ }
+ },
+ "다짐을 찾을 수 없어요. 앱에서 삭제됐을 수 있어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest not found. It may have been deleted in the app."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストが見つかりません。アプリで削除された可能性があります。"
+ }
+ }
+ }
+ },
+ "다짐의 진행률을 원형 링으로 보고, 눌러서 바로 실행해요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "See quest progress as a ring and tap to run the action. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストの進捗をリングで確認し、タップで即実行。(プレミアム)"
+ }
+ }
+ }
+ },
+ "다짐의 하루/주간/월간 진행률(%)을 가져와요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Gets a quest's daily/weekly/monthly progress (%)."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストの日/週/月の進捗率(%)を取得します。"
+ }
+ }
+ }
+ },
+ "다짐이 없는 목표예요. 달성했나요?": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "This goal has no quests. Did you achieve it?"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストのない目標です。達成しましたか?"
+ }
+ }
+ }
+ },
+ "다짐이 없어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No quests"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストがありません"
+ }
+ }
+ }
+ },
+ "다크": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Dark"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ダーク"
+ }
+ }
+ }
+ },
+ "다크 고정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Always Dark"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ダーク固定"
+ }
+ }
+ }
+ },
+ "닫기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Close"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "閉じる"
+ }
+ }
+ }
+ },
+ "달성": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Achieved"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "達成"
+ }
+ }
+ }
+ },
+ "달성 완료": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Achieved"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "達成済み"
+ }
+ }
+ }
+ },
+ "달성률 기간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Progress period"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "達成率の期間"
+ }
+ }
+ }
+ },
+ "달성하거나 종료한 목표가 여기에 모여요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goals you've achieved or finished appear here."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "達成または終了した目標がここに表示されます。"
+ }
+ }
+ }
+ },
+ "달성하지 못했어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Not achieved"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "達成できませんでした"
+ }
+ }
+ }
+ },
+ "달성했나요? 탭해서 선택": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Did you achieve it? Tap to choose"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "達成しましたか?タップして選択"
+ }
+ }
+ }
+ },
+ "달성했어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Achieved"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "達成しました"
+ }
+ }
+ }
+ },
+ "당신의 하루에 다녀가다": {
+ "comment": "스플래시 브랜드 멘트",
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stopping by your day"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "あなたの一日に、立ち寄る"
+ }
+ }
+ }
+ },
+ "대상 없음": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No target"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "対象なし"
+ }
+ }
+ }
+ },
+ "대상 종류": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Target type"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "対象の種類"
+ }
+ }
+ }
+ },
+ "대표 시간 기준": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Primary timer"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "代表時間の基準"
+ }
+ }
+ }
+ },
+ "더보기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "More"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "その他"
+ }
+ }
+ }
+ },
+ "동기화": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Sync"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "同期"
+ }
+ }
+ }
+ },
+ "등록된 꼬리표가 없어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No tags yet"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "登録されたタグがありません"
+ }
+ }
+ }
+ },
+ "등록된 행동이 없어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No actions yet"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "登録されたアクションがありません"
+ }
+ }
+ }
+ },
+ "라이트": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Light"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ライト"
+ }
+ }
+ }
+ },
+ "라이트 고정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Always Light"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ライト固定"
+ }
+ }
+ }
+ },
+ "리퀴드 글라스": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Liquid Glass"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "リキッドグラス"
+ }
+ }
+ }
+ },
+ "매달": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Every month"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "毎月"
+ }
+ }
+ }
+ },
+ "매달 %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Every month on day %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "毎月%@"
+ }
+ }
+ }
+ },
+ "매달 %lld째 주 %@요일": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Every month, week %lld on %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "毎月第%lld%@曜日"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "매달 %1$lld째 주 %2$@요일"
+ }
+ }
+ }
+ },
+ "매일": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Every day"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "毎日"
+ }
+ }
+ }
+ },
+ "매주": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Every week"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "毎週"
+ }
+ }
+ }
+ },
+ "매주 %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Every week on %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "毎週%@"
+ }
+ }
+ }
+ },
+ "메모": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Note"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "メモ"
+ }
+ }
+ }
+ },
+ "메모 남기기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Leave a note"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "メモを残す"
+ }
+ }
+ }
+ },
+ "몇째 주": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Week of month"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "第何週"
+ }
+ }
+ }
+ },
+ "몇째 주 요일": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Nth weekday"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "第何週の曜日"
+ }
+ }
+ }
+ },
+ "모음": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Home"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ホーム"
+ }
+ }
+ }
+ },
+ "모음 탭 목표 진행 현황": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal progress on Home tab"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ホームタブの目標進捗"
+ }
+ }
+ }
+ },
+ "목": {
+ "comment": "요일 축약(목요일)",
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Thu"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "木"
+ }
+ }
+ }
+ },
+ "목록": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "List"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "リスト"
+ }
+ }
+ }
+ },
+ "목표": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goals"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標"
+ }
+ }
+ }
+ },
+ "목표 1": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal 1"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標1"
+ }
+ }
+ }
+ },
+ "목표 2": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal 2"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標2"
+ }
+ }
+ }
+ },
+ "목표 2 (대형 전용)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal 2 (large only)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標2(大サイズ専用)"
+ }
+ }
+ }
+ },
+ "목표 3": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal 3"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標3"
+ }
+ }
+ }
+ },
+ "목표 4": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal 4"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標4"
+ }
+ }
+ }
+ },
+ "목표 내용": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal description"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標の内容"
+ }
+ }
+ }
+ },
+ "목표 달성률 (잠금화면)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal Progress (Lock Screen)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標達成率(ロック画面)"
+ }
+ }
+ }
+ },
+ "목표 삭제": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Delete Goal"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標を削除"
+ }
+ }
+ }
+ },
+ "목표 수동 종료": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Finish Goal Manually"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標を手動で終了"
+ }
+ }
+ }
+ },
+ "목표 수정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Edit Goal"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標を編集"
+ }
+ }
+ }
+ },
+ "목표 없음": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No goal"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標なし"
+ }
+ }
+ }
+ },
+ "목표 진행 현황": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal Progress"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標の進捗状況"
+ }
+ }
+ }
+ },
+ "목표 진행률": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal Progress"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標進捗率"
+ }
+ }
+ }
+ },
+ "목표 진행률 가져오기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Get Goal Progress"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標の進捗率を取得"
+ }
+ }
+ }
+ },
+ "목표 진행률 위젯": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal Progress Widget"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標進捗ウィジェット"
+ }
+ }
+ }
+ },
+ "목표 추가": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Add Goal"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標を追加"
+ }
+ }
+ }
+ },
+ "목표 탭에서 목표를 만들면 여기서 선택할 수 있어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Create goals in the Goals tab to choose them here."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標タブで目標を作成するとここで選べます。"
+ }
+ }
+ }
+ },
+ "목표 확인": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Review Goal"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標を確認"
+ }
+ }
+ }
+ },
+ "목표 횟수": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Target count"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標回数"
+ }
+ }
+ }
+ },
+ "목표를 지금 종료할까요?": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Finish this goal now?"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "この目標を今終了しますか?"
+ }
+ }
+ }
+ },
+ "목표를 찾을 수 없어요. 앱에서 삭제됐을 수 있어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal not found. It may have been deleted in the app."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標が見つかりません。アプリで削除された可能性があります。"
+ }
+ }
+ }
+ },
+ "목표에 속한 다짐들의 진행률을 원형 링으로 한눈에 봐요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "See all of a goal's quest progress rings at a glance. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標のクエスト進捗をリングで一目で確認。(プレミアム)"
+ }
+ }
+ }
+ },
+ "목표의 하루/주간/월간 진행률(%)을 가져와요. 소속 다짐들의 진행률 평균이에요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Gets a goal's daily/weekly/monthly progress (%), averaged across its quests."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標の日/週/月の進捗率(%)を取得します。所属クエストの平均です。"
+ }
+ }
+ }
+ },
+ "목표의 하루·주간·월간 진행률을 진행바로 확인해요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Track a goal's daily, weekly, and monthly progress with bars. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標の日・週・月の進捗をバーで確認。(プレミアム)"
+ }
+ }
+ }
+ },
+ "무료 버전에서는 목표당 다짐을 최대 %lld개까지 만들 수 있어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "The free version allows up to %lld quests per goal."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "無料版では目標ごとにクエストを最大%lld個まで作成できます。"
+ }
+ }
+ }
+ },
+ "무료 버전에서는 목표를 최대 %lld개까지 만들 수 있어요. 프리미엄으로 업그레이드하면 무제한으로 사용할 수 있습니다.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "The free version allows up to %lld goals. Upgrade to Premium for unlimited use."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "無料版では目標を最大%lld個まで作成できます。プレミアムにアップグレードすると無制限で使えます。"
+ }
+ }
+ }
+ },
+ "무료 버전에서는 행동을 최대 %lld개까지 만들 수 있어요. 프리미엄으로 업그레이드하면 무제한으로 사용할 수 있습니다.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "The free version allows up to %lld actions. Upgrade to Premium for unlimited use."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "無料版ではアクションを最大%lld個まで作成できます。プレミアムにアップグレードすると無制限で使えます。"
+ }
+ }
+ }
+ },
+ "무료 사용 중": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Free plan"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "無料プラン利用中"
+ }
+ }
+ }
+ },
+ "무료 사용 한도": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Free Plan Limit"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "無料プランの上限"
+ }
+ }
+ }
+ },
+ "무료: 행동 %lld개 · 목표 %lld개 · 목표당 다짐 %lld개까지": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Free: up to %lld actions · %lld goals · %lld quests per goal"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "無料: アクション%lld個・目標%lld個・目標ごとにクエスト%lld個まで"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "무료: 행동 %1$lld개 · 목표 %2$lld개 · 목표당 다짐 %3$lld개까지"
+ }
+ }
+ }
+ },
+ "미달성": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Not achieved"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "未達成"
+ }
+ }
+ }
+ },
+ "미달성 종료": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Finished (not achieved)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "未達成で終了"
+ }
+ }
+ }
+ },
+ "미리 보기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Preview"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "プレビュー"
+ }
+ }
+ }
+ },
+ "반복 주기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Repeat cycle"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "繰り返し周期"
+ }
+ }
+ }
+ },
+ "방향": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Direction"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "方向"
+ }
+ }
+ }
+ },
+ "배치 편집": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Edit Layout"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "配置を編集"
+ }
+ }
+ }
+ },
+ "버전": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Version"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "バージョン"
+ }
+ }
+ }
+ },
+ "버튼을 길게 눌러 끌면 순서를 바꿀 수 있어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Press and hold a button, then drag to reorder."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ボタンを長押ししてドラッグすると並べ替えできます。"
+ }
+ }
+ }
+ },
+ "범위": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Range"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "範囲"
+ }
+ }
+ }
+ },
+ "보기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "View"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "表示"
+ }
+ }
+ }
+ },
+ "분": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "min"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "分"
+ }
+ }
+ }
+ },
+ "사용 안 함": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Off"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "使用しない"
+ }
+ }
+ }
+ },
+ "사용 중": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Active"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "利用中"
+ }
+ }
+ }
+ },
+ "삭제": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Delete"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "削除"
+ }
+ }
+ }
+ },
+ "상품 정보를 불러오는 중...": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Loading products..."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "商品情報を読み込み中..."
+ }
+ }
+ }
+ },
+ "상품 정보를 불러오지 못했어요. 네트워크를 확인해 주세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Couldn't load products. Please check your network."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "商品情報を読み込めませんでした。ネットワークを確認してください。"
+ }
+ }
+ }
+ },
+ "상품 정보를 불러올 수 없어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Products unavailable"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "商品情報を読み込めません"
+ }
+ }
+ }
+ },
+ "새 꼬리표 만들기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Create New Tag"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "新しいタグを作成"
+ }
+ }
+ }
+ },
+ "새 목표를 세우거나, 아래에서 완료된 목표를 확인해 보세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Set a new goal, or review finished goals below."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "新しい目標を立てるか、下で完了した目標を確認してください。"
+ }
+ }
+ }
+ },
+ "색": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Color"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "色"
+ }
+ }
+ }
+ },
+ "생활": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Life"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "生活"
+ }
+ }
+ }
+ },
+ "선택": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Select"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "選択"
+ }
+ }
+ }
+ },
+ "선택한 목표의 진행 현황이 모음 탭 상단에 표시돼요. 탭하면 목표 상세로 이동해요. 2개 이상 선택하면 카드를 옆으로 쓸어 넘겨 한 장씩 볼 수 있고, 표시 방식(다짐별로 각각 / 전체 다짐 합산)은 모든 카드에 똑같이 적용돼요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Selected goals appear at the top of the Home tab. Tap a card to open the goal. With two or more, swipe between cards; the display style (each quest / combined) applies to all cards."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "選択した目標の進捗がホームタブ上部に表示されます。タップで目標詳細へ移動します。2つ以上選ぶとカードを横にスワイプでき、表示方法(クエストごと/合算)はすべてのカードに適用されます。"
+ }
+ }
+ }
+ },
+ "선택한 탭(최대 %lld개)이 하단 탭바에 바로 표시되고, 나머지 탭은 ‘더보기’에서 열 수 있어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Selected tabs (up to %lld) appear in the tab bar; the rest are available under ‘More’."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "選択したタブ(最大%lld個)が下部タブバーに表示され、残りは「その他」から開けます。"
+ }
+ }
+ }
+ },
+ "선택한 행동들의 통계 꺾은선 그래프를 확인해요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "See line charts for your selected actions. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "選択したアクションの統計を折れ線グラフで確認。(プレミアム)"
+ }
+ }
+ }
+ },
+ "설정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Settings"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "設定"
+ }
+ }
+ }
+ },
+ "설정한 시간보다 짧게 측정하고 종료한 기록은 저장하지 않아요. 버튼을 실수로 눌렀을 때 유용해요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Sessions shorter than this won't be saved. Useful for accidental taps."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "設定した時間より短い計測は保存されません。誤タップ対策に便利です。"
+ }
+ }
+ }
+ },
+ "수": {
+ "comment": "요일 축약(수요일)",
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Wed"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "水"
+ }
+ }
+ }
+ },
+ "수량": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Amount"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "数量"
+ }
+ }
+ }
+ },
+ "수정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Edit"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "編集"
+ }
+ }
+ }
+ },
+ "순서": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Reorder"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "順序"
+ }
+ }
+ }
+ },
+ "숫자만": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Number only"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "数字のみ"
+ }
+ }
+ }
+ },
+ "시각": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Time"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "時刻"
+ }
+ }
+ }
+ },
+ "시간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Time"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "時間"
+ }
+ }
+ }
+ },
+ "시간 기록": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Time records"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "時間記録"
+ }
+ }
+ }
+ },
+ "시간 기록 수정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Edit Time Record"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "時間記録を編集"
+ }
+ }
+ }
+ },
+ "시간 기록 추가": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Add Time Record"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "時間記録を追加"
+ }
+ }
+ }
+ },
+ "시간 기록이 없어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No time records"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "時間記録がありません"
+ }
+ }
+ }
+ },
+ "시간 측정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Time tracking"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "時間計測"
+ }
+ }
+ }
+ },
+ "시간 측정 시작": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Start Timer"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "計測を開始"
+ }
+ }
+ }
+ },
+ "시간 측정 종료": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stop Timer"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "計測を終了"
+ }
+ }
+ }
+ },
+ "시간 측정 행동은 시작/종료를 전환하고, 횟수 기록 행동은 횟수를 1 추가해요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Time actions toggle start/stop; count actions add 1."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "時間計測タイプは開始/終了を切り替え、回数記録タイプは1回追加します。"
+ }
+ }
+ }
+ },
+ "시간 측정 행동의 측정을 시작해요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Starts tracking a time action."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "時間計測アクションの計測を開始します。"
+ }
+ }
+ }
+ },
+ "시간(h)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Time (h)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "時間(h)"
+ }
+ }
+ }
+ },
+ "시리 단축어는 프리미엄 기능이에요. 하루 다님 앱의 설정 → 프리미엄에서 잠금 해제해 주세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Siri Shortcuts are a premium feature. Unlock them in HaruDanim: Settings → Premium."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Siriショートカットはプレミアム機能です。アプリの設定→プレミアムでロックを解除してください。"
+ }
+ }
+ }
+ },
+ "시작": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Start"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "開始"
+ }
+ }
+ }
+ },
+ "시작 시각": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Start time"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "開始時刻"
+ }
+ }
+ }
+ },
+ "시작·종료 시각 수동 입력": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Enter start/end times manually"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "開始・終了時刻を手動入力"
+ }
+ }
+ }
+ },
+ "시작일 (과거 가능)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Start date (past allowed)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "開始日(過去も可)"
+ }
+ }
+ }
+ },
+ "심볼 이름 검색 (영문)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Search symbols (English)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "シンボル名を検索(英語)"
+ }
+ }
+ }
+ },
+ "아이콘": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Icon"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アイコン"
+ }
+ }
+ }
+ },
+ "아이콘 선택": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose Icon"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アイコンを選択"
+ }
+ }
+ }
+ },
+ "아이콘과 색": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Icon & color"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アイコンと色"
+ }
+ }
+ }
+ },
+ "아직 등록된 행동이 없어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No actions yet"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "まだアクションがありません"
+ }
+ }
+ }
+ },
+ "앱 테마와 일치": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Match App Theme"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アプリのテーマに合わせる"
+ }
+ }
+ }
+ },
+ "앱에서 행동을 만들고 기록하면 그래프가 표시돼요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Create and track actions in the app to see charts."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アプリでアクションを作成・記録するとグラフが表示されます。"
+ }
+ }
+ }
+ },
+ "앱에서 행동을 만들면 여기서 실행할 수 있어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Create actions in the app to run them here."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アプリでアクションを作成するとここで実行できます。"
+ }
+ }
+ }
+ },
+ "앱의 목표 탭에서 다짐을 만들면 진행률이 표시돼요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Create quests in the Goals tab to see progress."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アプリの目標タブでクエストを作成すると進捗が表示されます。"
+ }
+ }
+ }
+ },
+ "앱의 목표 탭에서 목표를 만들면 진행률이 표시돼요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Create goals in the Goals tab to see progress."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アプリの目標タブで目標を作成すると進捗が表示されます。"
+ }
+ }
+ }
+ },
+ "앱의 목표 탭에서 목표와 다짐을 만들어 보세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Create goals and quests in the app's Goals tab."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アプリの目標タブで目標とクエストを作ってみてください。"
+ }
+ }
+ }
+ },
+ "앱의 설정 → 프리미엄에서\n잠금 해제해 주세요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Unlock in the app:\nSettings → Premium"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アプリの設定→プレミアムで\nロックを解除してください"
+ }
+ }
+ }
+ },
+ "언어": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Language"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "言語"
+ }
+ }
+ }
+ },
+ "언어를 바꾸면 앱을 완전히 종료했다가 다시 실행했을 때 적용돼요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Language changes take effect after fully quitting and relaunching the app."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "言語の変更はアプリを完全に終了して再起動すると反映されます。"
+ }
+ }
+ }
+ },
+ "여러 행동을 동시에 추적 중일 때 대표로 표시할 시간이에요. (Live Activity 지원은 추후 추가 예정)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "The timer shown when multiple actions are tracked at once. (Live Activity support coming later)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "複数のアクションを同時計測中に代表として表示する時間です。(Live Activity対応は今後追加予定)"
+ }
+ }
+ }
+ },
+ "예: 토익 700점 이상 받기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "e.g. Score 700+ on TOEIC"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "例: TOEICで700点以上取る"
+ }
+ }
+ }
+ },
+ "오늘": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Today"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "今日"
+ }
+ }
+ }
+ },
+ "오늘 %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Today %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "今日 %@"
+ }
+ }
+ }
+ },
+ "오늘 0분": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Today 0m"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "今日0分"
+ }
+ }
+ }
+ },
+ "오른쪽 위 + 버튼으로 꼬리표를 추가하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Tap the + button in the top right to add a tag."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "右上の+ボタンでタグを追加してください。"
+ }
+ }
+ }
+ },
+ "오른쪽 위 + 버튼으로 행동을 추가하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Tap the + button in the top right to add an action."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "右上の+ボタンでアクションを追加してください。"
+ }
+ }
+ }
+ },
+ "오른쪽 위 ‘순서’를 누르면 다짐 순서를 바꿀 수 있어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Tap ‘Reorder’ in the top right to reorder quests."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "右上の「順序」からクエストを並べ替えられます。"
+ }
+ }
+ }
+ },
+ "오른쪽 핸들을 끌어서 순서를 바꾼 뒤 ‘완료’를 누르세요. 순서는 저장되어 유지돼요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Drag the handles to reorder, then tap ‘Done’. The order is saved."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "右のハンドルをドラッグして並べ替え、「完了」を押してください。順序は保存されます。"
+ }
+ }
+ }
+ },
+ "완료": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Done"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "完了"
+ }
+ }
+ }
+ },
+ "완료된 목표": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Finished Goals"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "完了した目標"
+ }
+ }
+ }
+ },
+ "완료된 목표 보기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "View Finished Goals"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "完了した目標を見る"
+ }
+ }
+ }
+ },
+ "완료된 목표가 없어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No finished goals"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "完了した目標がありません"
+ }
+ }
+ }
+ },
+ "요일": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Weekday"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "曜日"
+ }
+ }
+ }
+ },
+ "요일 지정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Specific weekdays"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "曜日指定"
+ }
+ }
+ }
+ },
+ "운동": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Fitness"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "運動"
+ }
+ }
+ }
+ },
+ "원형 게이지": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Circular gauge"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "円形ゲージ"
+ }
+ }
+ }
+ },
+ "원형 진행률로 표시할 다짐과 기간을 선택하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose a quest and period for the progress ring."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "リングで表示するクエストと期間を選んでください。"
+ }
+ }
+ }
+ },
+ "월": {
+ "comment": "요일 축약(월요일)",
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Mon"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "月"
+ }
+ }
+ }
+ },
+ "월간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Monthly"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "月間"
+ }
+ }
+ }
+ },
+ "위젯 테마": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Widget Theme"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ウィジェットテーマ"
+ }
+ }
+ }
+ },
+ "음식": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Food"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "食べ物"
+ }
+ }
+ }
+ },
+ "이 기록에 대한 메모 (선택)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Note for this record (optional)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "この記録のメモ(任意)"
+ }
+ }
+ }
+ },
+ "이 목표를 이루기 위한 다짐(행동/꼬리표 + 주기 + 목표량)을 추가하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Add quests (action/tag + cycle + amount) to achieve this goal."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "この目標を達成するためのクエスト(アクション/タグ+周期+目標量)を追加してください。"
+ }
+ }
+ }
+ },
+ "이동": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Transport"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "移動"
+ }
+ }
+ }
+ },
+ "이름": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Name"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "名前"
+ }
+ }
+ }
+ },
+ "이번 기록에 대한 메모 (선택)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Note for this record (optional)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "今回の記録のメモ(任意)"
+ }
+ }
+ }
+ },
+ "이번 달": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "This month"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "今月"
+ }
+ }
+ }
+ },
+ "이번 주": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "This week"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "今週"
+ }
+ }
+ }
+ },
+ "이번 측정에 대한 메모 (선택)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Note for this session (optional)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "今回の計測のメモ(任意)"
+ }
+ }
+ }
+ },
+ "이상 달성": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Reach at least"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "以上を達成"
+ }
+ }
+ }
+ },
+ "이하 유지": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stay under"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "以下を維持"
+ }
+ }
+ }
+ },
+ "인기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Popular"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "人気"
+ }
+ }
+ }
+ },
+ "일": {
+ "comment": "요일 축약(일요일)",
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Sun"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "日"
+ }
+ }
+ }
+ },
+ "일·업무": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Work"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "仕事"
+ }
+ }
+ }
+ },
+ "일주일": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Week"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1週間"
+ }
+ }
+ }
+ },
+ "일주일 (하루 단위)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Week (by day)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1週間(日別)"
+ }
+ }
+ }
+ },
+ "일주일 단위": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Weekly"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "週単位"
+ }
+ }
+ }
+ },
+ "일주일 통계": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Weekly stats"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "週間統計"
+ }
+ }
+ }
+ },
+ "자연": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Nature"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "自然"
+ }
+ }
+ }
+ },
+ "잠금화면 목표 위젯": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Lock Screen Goal Widget"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ロック画面の目標ウィジェット"
+ }
+ }
+ }
+ },
+ "잠금화면에 표시할 목표와 기간, 표시 방식을 선택하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose a goal, period, and style for the Lock Screen."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ロック画面に表示する目標・期間・スタイルを選んでください。"
+ }
+ }
+ }
+ },
+ "잠금화면에서 목표 달성률과 다짐 현황을 확인해요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Check goal progress and quest status on the Lock Screen. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ロック画面で目標達成率とクエスト状況を確認。(プレミアム)"
+ }
+ }
+ }
+ },
+ "저장": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Save"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "保存"
+ }
+ }
+ }
+ },
+ "적용일": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Applies on"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "適用日"
+ }
+ }
+ }
+ },
+ "전체 다짐 합산": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "All quests combined"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "全クエスト合算"
+ }
+ }
+ }
+ },
+ "전체 선택": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Select All"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "すべて選択"
+ }
+ }
+ }
+ },
+ "종료": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stop"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "終了"
+ }
+ }
+ }
+ },
+ "종료 시 하위 다짐들의 달성 여부에 따라 달성/미달성이 결정돼요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "When finished, achievement is decided by whether its quests were met."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "終了時に、クエストの達成状況によって達成/未達成が決まります。"
+ }
+ }
+ }
+ },
+ "종료 시각": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "End time"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "終了時刻"
+ }
+ }
+ }
+ },
+ "종료 시각을 끄면 진행 중 상태가 돼요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Turn off the end time to keep it in progress."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "終了時刻をオフにすると進行中の状態になります。"
+ }
+ }
+ }
+ },
+ "종료됨": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Finished"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "終了済み"
+ }
+ }
+ }
+ },
+ "종료일": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "End date"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "終了日"
+ }
+ }
+ }
+ },
+ "종료일 지정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Set end date"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "終了日を設定"
+ }
+ }
+ }
+ },
+ "주 시작 요일": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "First day of week"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "週の開始曜日"
+ }
+ }
+ }
+ },
+ "주 평균": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Weekly average"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "週平均"
+ }
+ }
+ }
+ },
+ "주간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Weekly"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "週間"
+ }
+ }
+ }
+ },
+ "주기마다 목표량 이상을 달성하는 것이 목표예요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "The goal is to reach at least the target amount each cycle."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "周期ごとに目標量以上を達成することが目標です。"
+ }
+ }
+ }
+ },
+ "주기마다 목표량을 넘지 않는 것이 목표예요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "The goal is to stay under the target amount each cycle."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "周期ごとに目標量を超えないことが目標です。"
+ }
+ }
+ }
+ },
+ "주차": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Week"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "週"
+ }
+ }
+ }
+ },
+ "즐겨찾기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Favorite"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "お気に入り"
+ }
+ }
+ }
+ },
+ "즐겨찾기 해제": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Unfavorite"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "お気に入り解除"
+ }
+ }
+ }
+ },
+ "지금 시각": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Now"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "現在時刻"
+ }
+ }
+ }
+ },
+ "지정된 꼬리표 없음": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No tags assigned"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "タグ未設定"
+ }
+ }
+ }
+ },
+ "직접 선택": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose manually"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "手動で選択"
+ }
+ }
+ }
+ },
+ "진행 중": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "In progress"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "進行中"
+ }
+ }
+ }
+ },
+ "진행 중인 목표가 없어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No goals in progress"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "進行中の目標がありません"
+ }
+ }
+ }
+ },
+ "진행률 기간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Progress period"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "進捗の期間"
+ }
+ }
+ }
+ },
+ "짧은 기록 무시": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Ignore short sessions"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "短い記録を無視"
+ }
+ }
+ }
+ },
+ "추가": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Add"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "追加"
+ }
+ }
+ }
+ },
+ "추가할 횟수": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Count to add"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "追加する回数"
+ }
+ }
+ }
+ },
+ "추적 방식": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Tracking type"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "計測方式"
+ }
+ }
+ }
+ },
+ "취미": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Hobbies"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "趣味"
+ }
+ }
+ }
+ },
+ "취소": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Cancel"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "キャンセル"
+ }
+ }
+ }
+ },
+ "측정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Tracking"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "計測"
+ }
+ }
+ }
+ },
+ "측정 기준": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Measure"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "計測基準"
+ }
+ }
+ }
+ },
+ "측정 시작": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Start"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "計測開始"
+ }
+ }
+ }
+ },
+ "측정 종료": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stop"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "計測終了"
+ }
+ }
+ }
+ },
+ "측정 중인 행동의 시간 측정을 종료해요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stops tracking a running time action."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "計測中のアクションの計測を終了します。"
+ }
+ }
+ }
+ },
+ "켜면 시간 측정을 종료할 때 메모 창이 떠요. 건너뛸 수 있어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "When on, a note prompt appears when you stop tracking. You can skip it."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "オンにすると計測終了時にメモ画面が表示されます。スキップもできます。"
+ }
+ }
+ }
+ },
+ "켜면 횟수를 추가할 때마다 메모 창이 떠요. 건너뛸 수 있어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "When on, a note prompt appears each time you add a count. You can skip it."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "オンにすると回数を追加するたびにメモ画面が表示されます。スキップもできます。"
+ }
+ }
+ }
+ },
+ "큰 목표를 세우고, 그 안에 다짐을 추가해 보세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Set a big goal, then add quests to it."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "大きな目標を立てて、その中にクエストを追加しましょう。"
+ }
+ }
+ }
+ },
+ "타임테이블": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Timetable"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "タイムテーブル"
+ }
+ }
+ }
+ },
+ "탭바 구성": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Tab Bar"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "タブバー構成"
+ }
+ }
+ }
+ },
+ "테마": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Theme"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "テーマ"
+ }
+ }
+ }
+ },
+ "토": {
+ "comment": "요일 축약(토요일)",
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Sat"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "土"
+ }
+ }
+ }
+ },
+ "통계": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stats"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "統計"
+ }
+ }
+ }
+ },
+ "통계 기간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stats period"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "統計期間"
+ }
+ }
+ }
+ },
+ "통계 보기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "View stats"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "統計を見る"
+ }
+ }
+ }
+ },
+ "통계 위젯": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stats Widget"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "統計ウィジェット"
+ }
+ }
+ }
+ },
+ "특정 기간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Custom period"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "特定期間"
+ }
+ }
+ }
+ },
+ "특정 시각 지정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Set specific time"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "特定の時刻を指定"
+ }
+ }
+ }
+ },
+ "표시 기간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Display period"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "表示期間"
+ }
+ }
+ }
+ },
+ "표시 방식": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Display style"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "表示方法"
+ }
+ }
+ }
+ },
+ "표시 방식 (원형 크기)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Display style (ring size)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "表示方法(リングサイズ)"
+ }
+ }
+ }
+ },
+ "표시할 기록이 없어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No records to show"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "表示する記録がありません"
+ }
+ }
+ }
+ },
+ "표시할 행동 없음": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No actions to show"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "表示するアクションなし"
+ }
+ }
+ }
+ },
+ "표시할 행동과 누적 기간을 선택하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose an action and period to display."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "表示するアクションと累計期間を選んでください。"
+ }
+ }
+ }
+ },
+ "프리미엄": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Premium"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "プレミアム"
+ }
+ }
+ }
+ },
+ "프리미엄 구매": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Buy Premium"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "プレミアムを購入"
+ }
+ }
+ }
+ },
+ "프리미엄 기능": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Premium Features"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "プレミアム機能"
+ }
+ }
+ }
+ },
+ "프리미엄 상태 (테스트)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Premium status (test)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "プレミアム状態(テスト)"
+ }
+ }
+ }
+ },
+ "프리미엄으로 할 수 있는 것": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "What Premium unlocks"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "プレミアムでできること"
+ }
+ }
+ }
+ },
+ "하루": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Daily"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1日"
+ }
+ }
+ }
+ },
+ "하루 다님 · 목표 없음": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "HaruDanim · No goal"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ハルダニム・目標なし"
+ }
+ }
+ }
+ },
+ "하루 다님 · 프리미엄 기능": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "HaruDanim · Premium feature"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ハルダニム・プレミアム機能"
+ }
+ }
+ }
+ },
+ "하루 단위": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Daily"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "日単位"
+ }
+ }
+ }
+ },
+ "하루 시작 시간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Day start time"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1日の開始時刻"
+ }
+ }
+ }
+ },
+ "하루 시작 시간을 걸치는 기록은 통계에서 자동으로 날짜별로 나누어 계산돼요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Sessions crossing the day start time are split by date in statistics automatically."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1日の開始時刻をまたぐ記録は、統計で自動的に日付ごとに分割されます。"
+ }
+ }
+ }
+ },
+ "하루 평균": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Daily average"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1日平均"
+ }
+ }
+ }
+ },
+ "하루·주간·월간 진행률을 표시할 목표를 선택하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose a goal to show daily, weekly, and monthly progress."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "日・週・月の進捗を表示する目標を選んでください。"
+ }
+ }
+ }
+ },
+ "하루다님": {
+ "comment": "앱 이름",
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Haru Danim"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Haru Danim"
+ }
+ }
+ }
+ },
+ "학습": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Study"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "学習"
+ }
+ }
+ }
+ },
+ "한 달 (주 단위)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Month (by week)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1か月(週別)"
+ }
+ }
+ }
+ },
+ "한 달 (하루 단위, 중형 이상)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Month (by day, medium+)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1か月(日別、中サイズ以上)"
+ }
+ }
+ }
+ },
+ "한 달 단위": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Monthly"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "月単位"
+ }
+ }
+ }
+ },
+ "한 달 통계 (일별)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Monthly stats (by day)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "月間統計(日別)"
+ }
+ }
+ }
+ },
+ "한 달 통계 (주별)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Monthly stats (by week)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "月間統計(週別)"
+ }
+ }
+ }
+ },
+ "한 줄에 표시할 개수": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Buttons per row"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1行に表示する数"
+ }
+ }
+ }
+ },
+ "한도 안에서 잘 지키고 있어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "You're staying within the limit"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "上限内でよく守れています"
+ }
+ }
+ }
+ },
+ "한도를 넘었어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "You went over the limit"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "上限を超えました"
+ }
+ }
+ }
+ },
+ "합계": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Total"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "合計"
+ }
+ }
+ }
+ },
+ "행동": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Actions"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション"
+ }
+ }
+ }
+ },
+ "행동 %lld/%lld개 표시 중": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Showing %lld of %lld actions"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション%lld/%lld件を表示中"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "행동 %1$lld/%2$lld개 표시 중"
+ }
+ }
+ }
+ },
+ "행동 %lld개": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld actions"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション%lld個"
+ }
+ }
+ }
+ },
+ "행동 1": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Action 1"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション1"
+ }
+ }
+ }
+ },
+ "행동 2": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Action 2"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション2"
+ }
+ }
+ }
+ },
+ "행동 3": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Action 3"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション3"
+ }
+ }
+ }
+ },
+ "행동 4": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Action 4"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション4"
+ }
+ }
+ }
+ },
+ "행동 누적값 가져오기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Get Action Total"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクションの累計値を取得"
+ }
+ }
+ }
+ },
+ "행동 버튼의 색은 지정한 꼬리표의 색을 따라요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Action buttons use the color of their assigned tag."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクションボタンの色は指定したタグの色に従います。"
+ }
+ }
+ }
+ },
+ "행동 삭제": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Delete Action"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクションを削除"
+ }
+ }
+ }
+ },
+ "행동 설정 수정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Edit action settings"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション設定を編集"
+ }
+ }
+ }
+ },
+ "행동 수정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Edit Action"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクションを編集"
+ }
+ }
+ }
+ },
+ "행동 실행": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Run Action"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション実行"
+ }
+ }
+ }
+ },
+ "행동 실행 위젯": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Action Run Widget"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション実行ウィジェット"
+ }
+ }
+ }
+ },
+ "행동 이름 (예: 독서)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Action name (e.g. Reading)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション名(例: 読書)"
+ }
+ }
+ }
+ },
+ "행동 추가": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Add Action"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクションを追加"
+ }
+ }
+ }
+ },
+ "행동 탭에서 추적할 행동을 추가해 보세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Add actions to track in the Actions tab."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクションタブで計測するアクションを追加してください。"
+ }
+ }
+ }
+ },
+ "행동 통계": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Action Stats"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション統計"
+ }
+ }
+ }
+ },
+ "행동을 위젯에서 바로 실행하고 누적값을 확인해요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Run actions right from the widget and see totals. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ウィジェットからアクションを即実行し、累計を確認。(プレミアム)"
+ }
+ }
+ }
+ },
+ "행동을 찾을 수 없어요. 앱에서 삭제됐을 수 있어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Action not found. It may have been deleted in the app."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクションが見つかりません。アプリで削除された可能性があります。"
+ }
+ }
+ }
+ },
+ "행동의 하루/주간/월간 누적 시간(초) 또는 횟수를 가져와요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Gets an action's daily/weekly/monthly total time (seconds) or count."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクションの日/週/月の累計時間(秒)または回数を取得します。"
+ }
+ }
+ }
+ },
+ "현재 진행 중": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Now Tracking"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "現在計測中"
+ }
+ }
+ }
+ },
+ "화": {
+ "comment": "요일 축약(화요일)",
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Tue"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "火"
+ }
+ }
+ }
+ },
+ "화면": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Display"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "画面"
+ }
+ }
+ }
+ },
+ "확인": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "OK"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "OK"
+ }
+ }
+ }
+ },
+ "확인 필요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Needs review"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "確認が必要"
+ }
+ }
+ }
+ },
+ "회": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "times"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "回"
+ }
+ }
+ }
+ },
+ "횟수": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Count"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "回数"
+ }
+ }
+ }
+ },
+ "횟수 기록": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Count tracking"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "回数記録"
+ }
+ }
+ }
+ },
+ "횟수 기록 수정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Edit Count Record"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "回数記録を編集"
+ }
+ }
+ }
+ },
+ "횟수 기록 행동의 횟수를 바로 추가해요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Adds a count to a count action right away."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "回数記録アクションの回数をすぐに追加します。"
+ }
+ }
+ }
+ },
+ "횟수 기록이 없어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No count records"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "回数記録がありません"
+ }
+ }
+ }
+ },
+ "횟수 직접 입력·수정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Enter/edit count manually"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "回数を手動で入力・編集"
+ }
+ }
+ }
+ },
+ "횟수 직접 추가": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Add count manually"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "回数を手動で追加"
+ }
+ }
+ }
+ },
+ "횟수 추가": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Add Count"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "回数を追加"
+ }
+ }
+ }
}
},
- "version" : "1.0"
-}
\ No newline at end of file
+ "version": "1.0"
+}
diff --git a/myApp/HaruDanim/IOS/Views/ActionViews.swift b/myApp/HaruDanim/IOS/Views/ActionViews.swift
index c6c20a3..3319bd1 100644
--- a/myApp/HaruDanim/IOS/Views/ActionViews.swift
+++ b/myApp/HaruDanim/IOS/Views/ActionViews.swift
@@ -121,7 +121,7 @@ struct ActionListView: View {
action.isFavorite.toggle()
} label: {
Label(
- action.isFavorite ? "즐겨찾기 해제" : "즐겨찾기",
+ action.isFavorite ? String(localized: "즐겨찾기 해제") : String(localized: "즐겨찾기"),
systemImage: action.isFavorite ? "star.slash" : "star.fill"
)
}
@@ -295,13 +295,13 @@ struct ActionDetailView: View {
let now = Date.now
switch action.trackingType {
case .time:
- statRow("오늘", Format.durationShort(agg.seconds(for: action, in: math.dayRange(containing: now))))
- statRow("이번 주", Format.durationShort(agg.seconds(for: action, in: math.weekRange(containing: now))))
- statRow("이번 달", Format.durationShort(agg.seconds(for: action, in: math.monthRange(containing: now))))
+ statRow(String(localized: "오늘"), Format.durationShort(agg.seconds(for: action, in: math.dayRange(containing: now))))
+ statRow(String(localized: "이번 주"), Format.durationShort(agg.seconds(for: action, in: math.weekRange(containing: now))))
+ statRow(String(localized: "이번 달"), Format.durationShort(agg.seconds(for: action, in: math.monthRange(containing: now))))
case .count:
- statRow("오늘", "\(agg.count(for: action, in: math.dayRange(containing: now)))회")
- statRow("이번 주", "\(agg.count(for: action, in: math.weekRange(containing: now)))회")
- statRow("이번 달", "\(agg.count(for: action, in: math.monthRange(containing: now)))회")
+ statRow(String(localized: "오늘"), String(localized: "\(agg.count(for: action, in: math.dayRange(containing: now)))회"))
+ statRow(String(localized: "이번 주"), String(localized: "\(agg.count(for: action, in: math.weekRange(containing: now)))회"))
+ statRow(String(localized: "이번 달"), String(localized: "\(agg.count(for: action, in: math.monthRange(containing: now)))회"))
}
}
@@ -408,11 +408,11 @@ struct ActionEditorView: View {
}
} footer: {
Text(trackingType == .time
- ? "켜면 시간 측정을 종료할 때 메모 창이 떠요. 건너뛸 수 있어요."
- : "켜면 횟수를 추가할 때마다 메모 창이 떠요. 건너뛸 수 있어요.")
+ ? String(localized: "켜면 시간 측정을 종료할 때 메모 창이 떠요. 건너뛸 수 있어요.")
+ : String(localized: "켜면 횟수를 추가할 때마다 메모 창이 떠요. 건너뛸 수 있어요."))
}
}
- .navigationTitle(action == nil ? "행동 추가" : "행동 수정")
+ .navigationTitle(action == nil ? String(localized: "행동 추가") : String(localized: "행동 수정"))
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .cancellationAction) {
diff --git a/myApp/HaruDanim/IOS/Views/GoalViews.swift b/myApp/HaruDanim/IOS/Views/GoalViews.swift
index 4e09324..4485470 100644
--- a/myApp/HaruDanim/IOS/Views/GoalViews.swift
+++ b/myApp/HaruDanim/IOS/Views/GoalViews.swift
@@ -108,7 +108,7 @@ struct GoalListView: View {
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
if activeGoals.count > 1 {
- Button(isReordering ? "완료" : "순서") {
+ Button(isReordering ? String(localized: "완료") : String(localized: "순서")) {
withAnimation {
isReordering.toggle()
editMode = isReordering ? .active : .inactive
@@ -260,17 +260,17 @@ struct GoalRow: View {
if let end = goal.endDate {
return "\(Format.shortDate(goal.startDate)) ~ \(Format.shortDate(end))"
}
- return "\(Format.shortDate(goal.startDate)) 시작 · 종료일 없음"
+ return String(localized: "\(Format.shortDate(goal.startDate)) 시작 · 종료일 없음")
}
@ViewBuilder
private var statusBadge: some View {
let (text, color): (String, Color) = {
- if goal.needsConfirmation() { return ("확인 필요", AppTheme.yellow) }
+ if goal.needsConfirmation() { return (String(localized: "확인 필요"), AppTheme.yellow) }
switch goal.status {
- case .inProgress: return ("진행 중", AppTheme.green)
- case .achieved: return ("달성", AppTheme.green)
- case .notAchieved: return ("미달성", Color.secondary)
+ case .inProgress: return (String(localized: "진행 중"), AppTheme.green)
+ case .achieved: return (String(localized: "달성"), AppTheme.green)
+ case .notAchieved: return (String(localized: "미달성"), Color.secondary)
}
}()
Text(text)
@@ -453,7 +453,7 @@ struct GoalDetailView: View {
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
if !goal.quests.isEmpty {
- Button(editMode == .active ? "완료" : "순서") {
+ Button(editMode == .active ? String(localized: "완료") : String(localized: "순서")) {
withAnimation {
editMode = editMode == .active ? .inactive : .active
}
@@ -566,7 +566,7 @@ struct GoalEditorView: View {
}
}
}
- .navigationTitle(goal == nil ? "목표 추가" : "목표 수정")
+ .navigationTitle(goal == nil ? String(localized: "목표 추가") : String(localized: "목표 수정"))
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .cancellationAction) {
diff --git a/myApp/HaruDanim/IOS/Views/HistoryView.swift b/myApp/HaruDanim/IOS/Views/HistoryView.swift
index 87a6a84..26348a3 100644
--- a/myApp/HaruDanim/IOS/Views/HistoryView.swift
+++ b/myApp/HaruDanim/IOS/Views/HistoryView.swift
@@ -15,8 +15,8 @@ enum HistoryMode: String, CaseIterable, Identifiable {
var label: String {
switch self {
- case .list: return "목록"
- case .timetable: return "타임테이블"
+ case .list: return String(localized: "목록")
+ case .timetable: return String(localized: "타임테이블")
}
}
}
@@ -174,7 +174,7 @@ struct HistoryView: View {
private var filterLabel: String {
let names = allActions.filter(passesFilter).map(\.name)
- if names.isEmpty { return "표시할 행동 없음" }
+ if names.isEmpty { return String(localized: "표시할 행동 없음") }
return names.count <= 2
? names.joined(separator: ", ")
: "행동 \(names.count)/\(allActions.count)개 표시 중"
diff --git a/myApp/HaruDanim/IOS/Views/MainView.swift b/myApp/HaruDanim/IOS/Views/MainView.swift
index 7321255..abecaa9 100644
--- a/myApp/HaruDanim/IOS/Views/MainView.swift
+++ b/myApp/HaruDanim/IOS/Views/MainView.swift
@@ -67,7 +67,7 @@ struct MainView: View {
.navigationTitle("모음")
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
- Button(isEditing ? "완료" : "배치 편집") {
+ Button(isEditing ? String(localized: "완료") : String(localized: "배치 편집")) {
withAnimation {
isEditing.toggle()
}
@@ -283,7 +283,7 @@ struct MainView: View {
recordsAction = action
} label: {
Label(
- action.trackingType == .time ? "시작·종료 시각 수동 입력" : "횟수 직접 입력·수정",
+ action.trackingType == .time ? String(localized: "시작·종료 시각 수동 입력") : String(localized: "횟수 직접 입력·수정"),
systemImage: "square.and.pencil"
)
}
@@ -801,6 +801,8 @@ struct ActionButtonCell: View {
.foregroundStyle(.white.opacity(0.85))
}
.lineLimit(1)
+ // 영어 등 긴 단위 문구("times")도 셀 안에 들어가도록 축소 허용
+ .minimumScaleFactor(0.6)
.animation(.snappy(duration: 0.3), value: todayCount)
}
}
@@ -808,7 +810,9 @@ struct ActionButtonCell: View {
private var todayLabel: String {
let agg = Aggregator()
let seconds = agg.seconds(for: action, in: agg.math.dayRange(containing: .now))
- return seconds > 0 ? "오늘 \(Format.durationShort(seconds))" : "오늘 0분"
+ return seconds > 0
+ ? String(localized: "오늘 \(Format.durationShort(seconds))")
+ : String(localized: "오늘 0분")
}
private var todayCount: Int {
diff --git a/myApp/HaruDanim/IOS/Views/QuestEditorView.swift b/myApp/HaruDanim/IOS/Views/QuestEditorView.swift
index d270864..084c4ed 100644
--- a/myApp/HaruDanim/IOS/Views/QuestEditorView.swift
+++ b/myApp/HaruDanim/IOS/Views/QuestEditorView.swift
@@ -21,7 +21,7 @@ struct QuestEditorView: View {
enum TargetKind: String, CaseIterable, Identifiable {
case action, tag
var id: String { rawValue }
- var label: String { self == .action ? "행동" : "꼬리표" }
+ var label: String { self == .action ? String(localized: "행동") : String(localized: "꼬리표") }
}
// ① 대상
@@ -53,7 +53,7 @@ struct QuestEditorView: View {
periodSection
amountSection
}
- .navigationTitle(quest == nil ? "다짐 추가" : "다짐 수정")
+ .navigationTitle(quest == nil ? String(localized: "다짐 추가") : String(localized: "다짐 수정"))
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .cancellationAction) {
diff --git a/myApp/HaruDanim/IOS/Views/RecordEditors.swift b/myApp/HaruDanim/IOS/Views/RecordEditors.swift
index cded609..4b80c7f 100644
--- a/myApp/HaruDanim/IOS/Views/RecordEditors.swift
+++ b/myApp/HaruDanim/IOS/Views/RecordEditors.swift
@@ -37,7 +37,7 @@ struct ActionRecordsSheet: View {
showingAdd = true
} label: {
Label(
- action.trackingType == .time ? "기록 직접 추가" : "횟수 직접 추가",
+ action.trackingType == .time ? String(localized: "기록 직접 추가") : String(localized: "횟수 직접 추가"),
systemImage: "plus.circle"
)
.foregroundStyle(AppTheme.green)
diff --git a/myApp/HaruDanim/IOS/Views/SettingsView.swift b/myApp/HaruDanim/IOS/Views/SettingsView.swift
index 53315a5..0789e5a 100644
--- a/myApp/HaruDanim/IOS/Views/SettingsView.swift
+++ b/myApp/HaruDanim/IOS/Views/SettingsView.swift
@@ -43,7 +43,7 @@ struct SettingsView: View {
var body: some View {
ScrollViewReader { proxy in
Form {
- Section("화면") {
+ Section {
Picker("테마", selection: $theme) {
Text("라이트").tag("light")
Text("다크").tag("dark")
@@ -53,6 +53,10 @@ struct SettingsView: View {
Text(lang.label).tag(lang.rawValue)
}
}
+ } header: {
+ Text("화면")
+ } footer: {
+ Text("언어를 바꾸면 앱을 완전히 종료했다가 다시 실행했을 때 적용돼요.")
}
Section {
ForEach(AppTab.allCases) { tab in
@@ -126,7 +130,7 @@ struct SettingsView: View {
Label("프리미엄 기능", systemImage: "crown.fill")
.foregroundStyle(AppTheme.yellow)
Spacer()
- Text(premium.isPremium ? "사용 중" : "무료 사용 중")
+ Text(premium.isPremium ? String(localized: "사용 중") : String(localized: "무료 사용 중"))
.font(.caption)
.foregroundStyle(.secondary)
}
@@ -148,6 +152,10 @@ struct SettingsView: View {
// '앱 테마와 일치' 옵션의 위젯이 바뀐 테마를 바로 반영하도록 갱신
WidgetCenter.shared.reloadAllTimelines()
}
+ .onChange(of: language) {
+ // 시스템의 앱별 언어 오버라이드 방식: 다음 실행부터 적용된다
+ UserDefaults.standard.set([language], forKey: "AppleLanguages")
+ }
#if DEBUG
// 검증용: -settingsScrollGoal YES → 모음 탭 목표 섹션, -settingsScrollPremium YES → 프리미엄 섹션까지 자동 스크롤
.onAppear {
diff --git a/myApp/HaruDanim/IOS/Views/StatsTabView.swift b/myApp/HaruDanim/IOS/Views/StatsTabView.swift
index 1082fb4..d70d868 100644
--- a/myApp/HaruDanim/IOS/Views/StatsTabView.swift
+++ b/myApp/HaruDanim/IOS/Views/StatsTabView.swift
@@ -184,9 +184,9 @@ struct StatsTabView: View {
private var currentPeriodLabel: String {
switch span {
- case .day: return "오늘"
- case .week: return "이번 주"
- case .month: return "이번 달"
+ case .day: return String(localized: "오늘")
+ case .week: return String(localized: "이번 주")
+ case .month: return String(localized: "이번 달")
}
}
@@ -310,7 +310,7 @@ struct StatsTabView: View {
var colors: [String: Color] = [:]
func tagNames(for action: Action) -> [(String, Color)] {
- if action.tags.isEmpty { return [("꼬리표 없음", Color.gray)] }
+ if action.tags.isEmpty { return [(String(localized: "꼬리표 없음"), Color.gray)] }
return action.sortedTags.map { ($0.name, $0.color) }
}
@@ -533,7 +533,7 @@ struct StatsTabView: View {
private func valueLabel(_ value: Double, type: TrackingType) -> String {
switch type {
case .time: return Format.durationShort(value)
- case .count: return "\(Int(value.rounded()))회"
+ case .count: return String(localized: "\(Int(value.rounded()))회")
}
}
@@ -551,7 +551,7 @@ struct StatsTabView: View {
Chart(dailyPoints(for: actions, type: type)) { point in
LineMark(
x: .value("날짜", point.dayKey, unit: .day),
- y: .value(type == .time ? "시간" : "횟수", point.value)
+ y: .value(type == .time ? String(localized: "시간") : String(localized: "횟수"), point.value)
)
.foregroundStyle(by: .value("행동", point.actionName))
.symbol(by: .value("행동", point.actionName))
@@ -575,7 +575,7 @@ struct StatsTabView: View {
}
}
}
- .chartYAxisLabel(type == .time ? "시간(h)" : "횟수")
+ .chartYAxisLabel(type == .time ? String(localized: "시간(h)") : String(localized: "횟수"))
.frame(height: 200)
}
}
@@ -593,14 +593,14 @@ struct StatsTabView: View {
Chart(weeklyPoints(for: actions, type: type)) { point in
LineMark(
x: .value("주차", point.weekLabel),
- y: .value(type == .time ? "시간" : "횟수", point.value)
+ y: .value(type == .time ? String(localized: "시간") : String(localized: "횟수"), point.value)
)
.foregroundStyle(by: .value("행동", point.actionName))
.symbol(by: .value("행동", point.actionName))
.interpolationMethod(.monotone)
}
.chartForegroundStyleScale(domain: names, range: colors)
- .chartYAxisLabel(type == .time ? "시간(h)" : "횟수")
+ .chartYAxisLabel(type == .time ? String(localized: "시간(h)") : String(localized: "횟수"))
.frame(height: 200)
}
}
@@ -617,7 +617,7 @@ struct StatsTabView: View {
} else {
Chart(items) { item in
BarMark(
- x: .value(type == .time ? "시간" : "횟수", type == .time ? item.value / 3600 : item.value),
+ x: .value(type == .time ? String(localized: "시간") : String(localized: "횟수"), type == .time ? item.value / 3600 : item.value),
y: .value("행동", item.name)
)
.foregroundStyle(item.color)
@@ -628,7 +628,7 @@ struct StatsTabView: View {
.foregroundStyle(.secondary)
}
}
- .chartXAxisLabel(type == .time ? "시간(h)" : "횟수")
+ .chartXAxisLabel(type == .time ? String(localized: "시간(h)") : String(localized: "횟수"))
.frame(height: CGFloat(items.count) * 40 + 30)
}
}
diff --git a/myApp/HaruDanim/IOS/Views/TagViews.swift b/myApp/HaruDanim/IOS/Views/TagViews.swift
index fc9098c..8cd6773 100644
--- a/myApp/HaruDanim/IOS/Views/TagViews.swift
+++ b/myApp/HaruDanim/IOS/Views/TagViews.swift
@@ -152,7 +152,7 @@ struct TagEditorView: View {
Text("미리 보기")
}
}
- .navigationTitle(tag == nil ? "꼬리표 추가" : "꼬리표 수정")
+ .navigationTitle(tag == nil ? String(localized: "꼬리표 추가") : String(localized: "꼬리표 수정"))
.navigationBarTitleDisplayMode(.inline)
.toolbar {
ToolbarItem(placement: .cancellationAction) {
diff --git a/myApp/HaruDanim/Shared/Formatters.swift b/myApp/HaruDanim/Shared/Formatters.swift
index 08afb46..cf55799 100644
--- a/myApp/HaruDanim/Shared/Formatters.swift
+++ b/myApp/HaruDanim/Shared/Formatters.swift
@@ -22,14 +22,24 @@ enum Format {
let h = total / 3600
let m = (total % 3600) / 60
if h > 0 {
- return m > 0 ? "\(h)시간 \(m)분" : "\(h)시간"
+ return m > 0
+ ? String(localized: "\(h)시간 \(m)분")
+ : String(localized: "\(h)시간")
}
- if m > 0 { return "\(m)분" }
- return "\(total)초"
+ if m > 0 { return String(localized: "\(m)분") }
+ return String(localized: "\(total)초")
}
static func weekdayShort(_ weekday: Int) -> String {
- let names = ["일", "월", "화", "수", "목", "금", "토"]
+ let names = [
+ String(localized: "일", comment: "요일 축약(일요일)"),
+ String(localized: "월", comment: "요일 축약(월요일)"),
+ String(localized: "화", comment: "요일 축약(화요일)"),
+ String(localized: "수", comment: "요일 축약(수요일)"),
+ String(localized: "목", comment: "요일 축약(목요일)"),
+ String(localized: "금", comment: "요일 축약(금요일)"),
+ String(localized: "토", comment: "요일 축약(토요일)"),
+ ]
let index = (weekday - 1) % 7
return names[max(0, index)]
}
diff --git a/myApp/HaruDanim/Shared/HaruDanimIntents.swift b/myApp/HaruDanim/Shared/HaruDanimIntents.swift
index a459fef..438b6ec 100644
--- a/myApp/HaruDanim/Shared/HaruDanimIntents.swift
+++ b/myApp/HaruDanim/Shared/HaruDanimIntents.swift
@@ -106,9 +106,9 @@ enum SpanOption: String, AppEnum {
var label: String {
switch self {
- case .day: return "오늘"
- case .week: return "이번 주"
- case .month: return "이번 달"
+ case .day: return String(localized: "오늘")
+ case .week: return String(localized: "이번 주")
+ case .month: return String(localized: "이번 달")
}
}
}
@@ -127,7 +127,9 @@ struct ActionEntity: AppEntity {
var displayRepresentation: DisplayRepresentation {
DisplayRepresentation(
title: "\(name)",
- subtitle: trackingTypeRaw == TrackingType.count.rawValue ? "횟수 기록" : "시간 측정"
+ subtitle: trackingTypeRaw == TrackingType.count.rawValue
+ ? LocalizedStringResource("횟수 기록")
+ : LocalizedStringResource("시간 측정")
)
}
@@ -477,7 +479,7 @@ struct QuestProgressIntent: AppIntent {
case .atLeast:
detail = "\(Int(percent))%"
case .atMost:
- detail = result.isAchieved ? "한도 안에서 잘 지키고 있어요" : "한도를 넘었어요"
+ detail = result.isAchieved ? String(localized: "한도 안에서 잘 지키고 있어요") : String(localized: "한도를 넘었어요")
}
return .result(
value: percent,
diff --git a/myApp/HaruDanim/Shared/Models.swift b/myApp/HaruDanim/Shared/Models.swift
index b5e28ed..a3bb4aa 100644
--- a/myApp/HaruDanim/Shared/Models.swift
+++ b/myApp/HaruDanim/Shared/Models.swift
@@ -19,8 +19,8 @@ enum TrackingType: String, CaseIterable, Identifiable {
var label: String {
switch self {
- case .time: return "시간 측정"
- case .count: return "횟수 기록"
+ case .time: return String(localized: "시간 측정")
+ case .count: return String(localized: "횟수 기록")
}
}
@@ -209,9 +209,9 @@ enum GoalStatus: String, CaseIterable {
var label: String {
switch self {
- case .inProgress: return "진행 중"
- case .achieved: return "달성 완료"
- case .notAchieved: return "미달성 종료"
+ case .inProgress: return String(localized: "진행 중")
+ case .achieved: return String(localized: "달성 완료")
+ case .notAchieved: return String(localized: "미달성 종료")
}
}
}
@@ -302,10 +302,10 @@ enum QuestPeriod: String, CaseIterable, Identifiable {
var label: String {
switch self {
- case .daily: return "하루 단위"
- case .weekly: return "일주일 단위"
- case .monthly: return "한 달 단위"
- case .custom: return "특정 기간"
+ case .daily: return String(localized: "하루 단위")
+ case .weekly: return String(localized: "일주일 단위")
+ case .monthly: return String(localized: "한 달 단위")
+ case .custom: return String(localized: "특정 기간")
}
}
}
@@ -321,10 +321,10 @@ enum QuestScheduleMode: String, CaseIterable, Identifiable {
var label: String {
switch self {
- case .everyDay: return "매일"
- case .weekdays: return "요일 지정"
- case .monthDays: return "날짜 지정"
- case .ordinalWeekday: return "몇째 주 요일"
+ case .everyDay: return String(localized: "매일")
+ case .weekdays: return String(localized: "요일 지정")
+ case .monthDays: return String(localized: "날짜 지정")
+ case .ordinalWeekday: return String(localized: "몇째 주 요일")
}
}
}
@@ -337,8 +337,8 @@ enum QuestDirection: String, CaseIterable, Identifiable {
var label: String {
switch self {
- case .atLeast: return "이상 달성"
- case .atMost: return "이하 유지"
+ case .atLeast: return String(localized: "이상 달성")
+ case .atMost: return String(localized: "이하 유지")
}
}
}
@@ -410,7 +410,7 @@ extension Quest {
var targetName: String {
if let targetAction { return targetAction.name }
if let targetTag { return "#\(targetTag.name)" }
- return "대상 없음"
+ return String(localized: "대상 없음")
}
var targetSymbol: String {
@@ -437,7 +437,7 @@ extension Quest {
}
var targetValueLabel: String {
- measure == .time ? Format.durationShort(targetSeconds) : "\(targetCount)회"
+ measure == .time ? Format.durationShort(targetSeconds) : String(localized: "\(targetCount)회")
}
/// 주기 요약 문구 (예: "매주 월·수·금")
@@ -446,22 +446,22 @@ extension Quest {
case .daily:
switch scheduleMode {
case .everyDay:
- return "매일"
+ return String(localized: "매일")
case .weekdays:
let names = weekdays.sorted().map { Format.weekdayShort($0) }
- return "매주 " + names.joined(separator: "·")
+ return String(localized: "매주 \(names.joined(separator: "·"))")
case .monthDays:
- let names = monthDays.sorted().map { "\($0)일" }
- return "매달 " + names.joined(separator: ", ")
+ let names = monthDays.sorted().map { String(localized: "\($0)일") }
+ return String(localized: "매달 \(names.joined(separator: ", "))")
case .ordinalWeekday:
- return "매달 \(ordinalWeek)째 주 \(Format.weekdayShort(ordinalWeekday))요일"
+ return String(localized: "매달 \(ordinalWeek)째 주 \(Format.weekdayShort(ordinalWeekday))요일")
}
case .weekly:
- return "매주"
+ return String(localized: "매주")
case .monthly:
- return "매달"
+ return String(localized: "매달")
case .custom:
- guard let customStart, let customEnd else { return "특정 기간" }
+ guard let customStart, let customEnd else { return String(localized: "특정 기간") }
return "\(Format.shortDate(customStart)) ~ \(Format.shortDate(customEnd))"
}
}
diff --git a/myApp/HaruDanim/Shared/QuestProgress.swift b/myApp/HaruDanim/Shared/QuestProgress.swift
index 05e8a73..49a1007 100644
--- a/myApp/HaruDanim/Shared/QuestProgress.swift
+++ b/myApp/HaruDanim/Shared/QuestProgress.swift
@@ -15,9 +15,9 @@ enum StatSpan: String, CaseIterable, Identifiable {
var label: String {
switch self {
- case .day: return "하루"
- case .week: return "주간"
- case .month: return "월간"
+ case .day: return String(localized: "하루")
+ case .week: return String(localized: "주간")
+ case .month: return String(localized: "월간")
}
}
}
diff --git a/myApp/HaruDanim/Shared/Settings.swift b/myApp/HaruDanim/Shared/Settings.swift
index 54a7ad6..db9bf10 100644
--- a/myApp/HaruDanim/Shared/Settings.swift
+++ b/myApp/HaruDanim/Shared/Settings.swift
@@ -40,8 +40,8 @@ enum GoalCardStyle: String, CaseIterable, Identifiable {
var label: String {
switch self {
- case .perQuest: return "다짐별로 각각"
- case .combined: return "전체 다짐 합산"
+ case .perQuest: return String(localized: "다짐별로 각각")
+ case .combined: return String(localized: "전체 다짐 합산")
}
}
}
@@ -56,12 +56,12 @@ enum TabBarConfig {
/// 짧은 기록 무시 옵션 선택지 (초)
enum MinSessionOption {
static let choices: [(seconds: Int, label: String)] = [
- (0, "사용 안 함"),
- (3, "3초"),
- (5, "5초"),
- (10, "10초"),
- (30, "30초"),
- (60, "1분"),
+ (0, String(localized: "사용 안 함")),
+ (3, String(localized: "3초")),
+ (5, String(localized: "5초")),
+ (10, String(localized: "10초")),
+ (30, String(localized: "30초")),
+ (60, String(localized: "1분")),
]
}
@@ -73,8 +73,8 @@ enum LiveActivityMode: String, CaseIterable, Identifiable {
var label: String {
switch self {
- case .latest: return "가장 나중에 시작한 행동"
- case .earliest: return "가장 먼저 시작한 행동"
+ case .latest: return String(localized: "가장 나중에 시작한 행동")
+ case .earliest: return String(localized: "가장 먼저 시작한 행동")
}
}
}
diff --git a/myApp/HaruDanim/Widgets/Localizable.xcstrings b/myApp/HaruDanim/Widgets/Localizable.xcstrings
new file mode 100644
index 0000000..42c951f
--- /dev/null
+++ b/myApp/HaruDanim/Widgets/Localizable.xcstrings
@@ -0,0 +1,2863 @@
+{
+ "sourceLanguage": "ko",
+ "strings": {
+ "%@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@"
+ }
+ }
+ }
+ },
+ "%@ %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ %@"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ %2$@"
+ }
+ }
+ }
+ },
+ "%@ %@ 누적 시간은 %@이에요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Total time for %@ (%@) is %@."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@の%@の累計時間は%@です。"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ %2$@ 누적 시간은 %3$@이에요."
+ }
+ }
+ }
+ },
+ "%@ %@ 누적 횟수는 %lld회예요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Total count for %@ (%@) is %lld."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@の%@の累計回数は%lld回です。"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ %2$@ 누적 횟수는 %3$lld회예요."
+ }
+ }
+ }
+ },
+ "%@ %lld회": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ %lld times"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ %lld回"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ %2$lld회"
+ }
+ }
+ }
+ },
+ "%@ %lld회 추가했어요. 오늘 총 %lld회예요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Added %lld to %@. Today's total is %lld."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@を%lld回追加しました。今日の合計は%lld回です。"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ %2$lld회 추가했어요. 오늘 총 %3$lld회예요."
+ }
+ }
+ }
+ },
+ "%@ · %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ · %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ · %@"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ · %2$@"
+ }
+ }
+ }
+ },
+ "%@ 측정을 시작했어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Started tracking %@."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@の計測を開始しました。"
+ }
+ }
+ }
+ },
+ "%@ 측정을 종료했어요. %@ 기록했어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stopped tracking %@. Recorded %@."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@の計測を終了しました。%@を記録しました。"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$@ 측정을 종료했어요. %2$@ 기록했어요."
+ }
+ }
+ }
+ },
+ "%@ 측정을 종료했어요. 너무 짧은 기록이라 저장하지 않았어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stopped tracking %@. The session was too short to save."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@の計測を終了しました。短すぎる記録のため保存しませんでした。"
+ }
+ }
+ }
+ },
+ "%@ 한도 지킴": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ within limit"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ 上限内"
+ }
+ }
+ }
+ },
+ "%@ 한도 초과": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ over limit"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ 上限超過"
+ }
+ }
+ }
+ },
+ "%@은(는) 이미 측정 중이에요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ is already being tracked."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@はすでに計測中です。"
+ }
+ }
+ }
+ },
+ "%@은(는) 측정 중이 아니에요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@ is not being tracked."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%@は計測中ではありません。"
+ }
+ }
+ }
+ },
+ "%lld": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld"
+ }
+ }
+ }
+ },
+ "%lld%%": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld%%"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld%%"
+ }
+ }
+ }
+ },
+ "%lld분": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lldm"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld分"
+ }
+ }
+ }
+ },
+ "%lld시간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lldh"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld時間"
+ }
+ }
+ }
+ },
+ "%lld시간 %lld분": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lldh %lldm"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld時間%lld分"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "%1$lld시간 %2$lld분"
+ }
+ }
+ }
+ },
+ "%lld일": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld日"
+ }
+ }
+ }
+ },
+ "%lld초": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%llds"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld秒"
+ }
+ }
+ }
+ },
+ "%lld회": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld times"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld回"
+ }
+ }
+ }
+ },
+ "'%@ · %@' %@ 진행률: %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "'%@ · %@' %@ progress: %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "「%@ · %@」の%@進捗率: %@"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "'%1$@ · %2$@' %3$@ 진행률: %4$@"
+ }
+ }
+ }
+ },
+ "'%@' %@ 진행률은 %lld%%예요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "'%@' %@ progress is %lld%%."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "「%@」の%@進捗率は%lld%%です。"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "'%1$@' %2$@ 진행률은 %3$lld%%예요."
+ }
+ }
+ }
+ },
+ "'%@' 목표에는 아직 다짐이 없어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "The goal '%@' has no quests yet."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標「%@」にはまだクエストがありません。"
+ }
+ }
+ }
+ },
+ "'%@'은(는) 시간 측정 행동이에요. 측정 시작/종료를 사용해 주세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "'%@' is a time-tracking action. Use start/stop tracking instead."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "「%@」は時間計測タイプです。計測の開始/終了を使ってください。"
+ }
+ }
+ }
+ },
+ "'%@'은(는) 횟수 기록 행동이에요. 횟수 추가를 사용해 주세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "'%@' is a count action. Use add count instead."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "「%@」は回数記録タイプです。回数の追加を使ってください。"
+ }
+ }
+ }
+ },
+ "+%lld": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "+%lld"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "+%lld"
+ }
+ }
+ }
+ },
+ "+%lld개 함께 추적 중": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "+%lld more tracking"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ほかに%lld件計測中"
+ }
+ }
+ }
+ },
+ "10초": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "10 sec"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "10秒"
+ }
+ }
+ }
+ },
+ "1분": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1 min"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1分"
+ }
+ }
+ }
+ },
+ "30초": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "30 sec"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "30秒"
+ }
+ }
+ }
+ },
+ "3초": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "3 sec"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "3秒"
+ }
+ }
+ }
+ },
+ "5초": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "5 sec"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "5秒"
+ }
+ }
+ }
+ },
+ "가장 나중에 시작한 행동": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Most recently started action"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "最後に開始したアクション"
+ }
+ }
+ }
+ },
+ "가장 먼저 시작한 행동": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Earliest started action"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "最初に開始したアクション"
+ }
+ }
+ }
+ },
+ "값": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Value"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "値"
+ }
+ }
+ }
+ },
+ "그래프로 보여줄 행동과 기간을 선택하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose actions and a period to chart."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "グラフに表示するアクションと期間を選んでください。"
+ }
+ }
+ }
+ },
+ "금": {
+ "comment": "요일 축약(금요일)",
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Fri"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "金"
+ }
+ }
+ }
+ },
+ "기간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Period"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "期間"
+ }
+ }
+ }
+ },
+ "날짜": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Date"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "日付"
+ }
+ }
+ }
+ },
+ "날짜 지정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Specific dates"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "日付指定"
+ }
+ }
+ }
+ },
+ "다른 행동 %lld개도 함께 추적 중": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "%lld other actions also tracking"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ほかに%lld件のアクションを計測中"
+ }
+ }
+ }
+ },
+ "다짐": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト"
+ }
+ }
+ }
+ },
+ "다짐 1": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest 1"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト1"
+ }
+ }
+ }
+ },
+ "다짐 2": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest 2"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト2"
+ }
+ }
+ }
+ },
+ "다짐 3": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest 3"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト3"
+ }
+ }
+ }
+ },
+ "다짐 4": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest 4"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト4"
+ }
+ }
+ }
+ },
+ "다짐 점 표시": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest dots"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストをドット表示"
+ }
+ }
+ }
+ },
+ "다짐 진행률": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest Progress"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト進捗率"
+ }
+ }
+ }
+ },
+ "다짐 진행률 가져오기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Get Quest Progress"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストの進捗率を取得"
+ }
+ }
+ }
+ },
+ "다짐 진행률 위젯": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest Progress Widget"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト進捗ウィジェット"
+ }
+ }
+ }
+ },
+ "다짐 현황": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest Status"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト状況"
+ }
+ }
+ }
+ },
+ "다짐 현황 위젯": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest Status Widget"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエスト状況ウィジェット"
+ }
+ }
+ }
+ },
+ "다짐들의 진행률 링을 표시할 목표와 기간을 선택하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose a goal and period for the quest progress rings."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストの進捗リングを表示する目標と期間を選んでください。"
+ }
+ }
+ }
+ },
+ "다짐별로 각각": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Each quest separately"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストごとに表示"
+ }
+ }
+ }
+ },
+ "다짐을 찾을 수 없어요. 앱에서 삭제됐을 수 있어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Quest not found. It may have been deleted in the app."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストが見つかりません。アプリで削除された可能性があります。"
+ }
+ }
+ }
+ },
+ "다짐의 진행률을 원형 링으로 보고, 눌러서 바로 실행해요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "See quest progress as a ring and tap to run the action. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストの進捗をリングで確認し、タップで即実行。(プレミアム)"
+ }
+ }
+ }
+ },
+ "다짐의 하루/주간/월간 진행률(%)을 가져와요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Gets a quest's daily/weekly/monthly progress (%)."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストの日/週/月の進捗率(%)を取得します。"
+ }
+ }
+ }
+ },
+ "다짐이 없어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No quests"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "クエストがありません"
+ }
+ }
+ }
+ },
+ "다크 고정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Always Dark"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ダーク固定"
+ }
+ }
+ }
+ },
+ "달성 완료": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Achieved"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "達成済み"
+ }
+ }
+ }
+ },
+ "달성률 기간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Progress period"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "達成率の期間"
+ }
+ }
+ }
+ },
+ "대상 없음": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No target"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "対象なし"
+ }
+ }
+ }
+ },
+ "라이트 고정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Always Light"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ライト固定"
+ }
+ }
+ }
+ },
+ "리퀴드 글라스": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Liquid Glass"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "リキッドグラス"
+ }
+ }
+ }
+ },
+ "매달": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Every month"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "毎月"
+ }
+ }
+ }
+ },
+ "매달 %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Every month on day %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "毎月%@"
+ }
+ }
+ }
+ },
+ "매달 %lld째 주 %@요일": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Every month, week %lld on %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "毎月第%lld%@曜日"
+ }
+ },
+ "ko": {
+ "stringUnit": {
+ "state": "new",
+ "value": "매달 %1$lld째 주 %2$@요일"
+ }
+ }
+ }
+ },
+ "매일": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Every day"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "毎日"
+ }
+ }
+ }
+ },
+ "매주": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Every week"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "毎週"
+ }
+ }
+ }
+ },
+ "매주 %@": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Every week on %@"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "毎週%@"
+ }
+ }
+ }
+ },
+ "몇째 주 요일": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Nth weekday"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "第何週の曜日"
+ }
+ }
+ }
+ },
+ "목": {
+ "comment": "요일 축약(목요일)",
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Thu"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "木"
+ }
+ }
+ }
+ },
+ "목표": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goals"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標"
+ }
+ }
+ }
+ },
+ "목표 1": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal 1"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標1"
+ }
+ }
+ }
+ },
+ "목표 2": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal 2"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標2"
+ }
+ }
+ }
+ },
+ "목표 2 (대형 전용)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal 2 (large only)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標2(大サイズ専用)"
+ }
+ }
+ }
+ },
+ "목표 3": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal 3"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標3"
+ }
+ }
+ }
+ },
+ "목표 4": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal 4"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標4"
+ }
+ }
+ }
+ },
+ "목표 달성률 (잠금화면)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal Progress (Lock Screen)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標達成率(ロック画面)"
+ }
+ }
+ }
+ },
+ "목표 없음": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "No goal"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標なし"
+ }
+ }
+ }
+ },
+ "목표 진행률": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal Progress"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標進捗率"
+ }
+ }
+ }
+ },
+ "목표 진행률 가져오기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Get Goal Progress"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標の進捗率を取得"
+ }
+ }
+ }
+ },
+ "목표 진행률 위젯": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal Progress Widget"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標進捗ウィジェット"
+ }
+ }
+ }
+ },
+ "목표를 찾을 수 없어요. 앱에서 삭제됐을 수 있어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Goal not found. It may have been deleted in the app."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標が見つかりません。アプリで削除された可能性があります。"
+ }
+ }
+ }
+ },
+ "목표에 속한 다짐들의 진행률을 원형 링으로 한눈에 봐요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "See all of a goal's quest progress rings at a glance. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標のクエスト進捗をリングで一目で確認。(プレミアム)"
+ }
+ }
+ }
+ },
+ "목표의 하루/주간/월간 진행률(%)을 가져와요. 소속 다짐들의 진행률 평균이에요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Gets a goal's daily/weekly/monthly progress (%), averaged across its quests."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標の日/週/月の進捗率(%)を取得します。所属クエストの平均です。"
+ }
+ }
+ }
+ },
+ "목표의 하루·주간·월간 진행률을 진행바로 확인해요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Track a goal's daily, weekly, and monthly progress with bars. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "目標の日・週・月の進捗をバーで確認。(プレミアム)"
+ }
+ }
+ }
+ },
+ "미달성 종료": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Finished (not achieved)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "未達成で終了"
+ }
+ }
+ }
+ },
+ "사용 안 함": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Off"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "使用しない"
+ }
+ }
+ }
+ },
+ "선택한 행동들의 통계 꺾은선 그래프를 확인해요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "See line charts for your selected actions. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "選択したアクションの統計を折れ線グラフで確認。(プレミアム)"
+ }
+ }
+ }
+ },
+ "수": {
+ "comment": "요일 축약(수요일)",
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Wed"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "水"
+ }
+ }
+ }
+ },
+ "숫자만": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Number only"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "数字のみ"
+ }
+ }
+ }
+ },
+ "시간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Time"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "時間"
+ }
+ }
+ }
+ },
+ "시간 측정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Time tracking"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "時間計測"
+ }
+ }
+ }
+ },
+ "시간 측정 시작": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Start Timer"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "計測を開始"
+ }
+ }
+ }
+ },
+ "시간 측정 종료": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stop Timer"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "計測を終了"
+ }
+ }
+ }
+ },
+ "시간 측정 행동은 시작/종료를 전환하고, 횟수 기록 행동은 횟수를 1 추가해요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Time actions toggle start/stop; count actions add 1."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "時間計測タイプは開始/終了を切り替え、回数記録タイプは1回追加します。"
+ }
+ }
+ }
+ },
+ "시간 측정 행동의 측정을 시작해요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Starts tracking a time action."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "時間計測アクションの計測を開始します。"
+ }
+ }
+ }
+ },
+ "시간(h)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Time (h)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "時間(h)"
+ }
+ }
+ }
+ },
+ "시리 단축어는 프리미엄 기능이에요. 하루 다님 앱의 설정 → 프리미엄에서 잠금 해제해 주세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Siri Shortcuts are a premium feature. Unlock them in HaruDanim: Settings → Premium."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Siriショートカットはプレミアム機能です。アプリの設定→プレミアムでロックを解除してください。"
+ }
+ }
+ }
+ },
+ "앱 테마와 일치": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Match App Theme"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アプリのテーマに合わせる"
+ }
+ }
+ }
+ },
+ "앱에서 행동을 만들고 기록하면 그래프가 표시돼요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Create and track actions in the app to see charts."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アプリでアクションを作成・記録するとグラフが表示されます。"
+ }
+ }
+ }
+ },
+ "앱에서 행동을 만들면 여기서 실행할 수 있어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Create actions in the app to run them here."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アプリでアクションを作成するとここで実行できます。"
+ }
+ }
+ }
+ },
+ "앱의 목표 탭에서 다짐을 만들면 진행률이 표시돼요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Create quests in the Goals tab to see progress."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アプリの目標タブでクエストを作成すると進捗が表示されます。"
+ }
+ }
+ }
+ },
+ "앱의 목표 탭에서 목표를 만들면 진행률이 표시돼요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Create goals in the Goals tab to see progress."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アプリの目標タブで目標を作成すると進捗が表示されます。"
+ }
+ }
+ }
+ },
+ "앱의 목표 탭에서 목표와 다짐을 만들어 보세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Create goals and quests in the app's Goals tab."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アプリの目標タブで目標とクエストを作ってみてください。"
+ }
+ }
+ }
+ },
+ "앱의 설정 → 프리미엄에서\n잠금 해제해 주세요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Unlock in the app:\nSettings → Premium"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アプリの設定→プレミアムで\nロックを解除してください"
+ }
+ }
+ }
+ },
+ "오늘": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Today"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "今日"
+ }
+ }
+ }
+ },
+ "요일 지정": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Specific weekdays"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "曜日指定"
+ }
+ }
+ }
+ },
+ "원형 게이지": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Circular gauge"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "円形ゲージ"
+ }
+ }
+ }
+ },
+ "원형 진행률로 표시할 다짐과 기간을 선택하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose a quest and period for the progress ring."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "リングで表示するクエストと期間を選んでください。"
+ }
+ }
+ }
+ },
+ "월": {
+ "comment": "요일 축약(월요일)",
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Mon"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "月"
+ }
+ }
+ }
+ },
+ "월간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Monthly"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "月間"
+ }
+ }
+ }
+ },
+ "위젯 테마": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Widget Theme"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ウィジェットテーマ"
+ }
+ }
+ }
+ },
+ "이번 달": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "This month"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "今月"
+ }
+ }
+ }
+ },
+ "이번 주": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "This week"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "今週"
+ }
+ }
+ }
+ },
+ "이상 달성": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Reach at least"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "以上を達成"
+ }
+ }
+ }
+ },
+ "이하 유지": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stay under"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "以下を維持"
+ }
+ }
+ }
+ },
+ "일": {
+ "comment": "요일 축약(일요일)",
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Sun"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "日"
+ }
+ }
+ }
+ },
+ "일주일 (하루 단위)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Week (by day)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1週間(日別)"
+ }
+ }
+ }
+ },
+ "일주일 단위": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Weekly"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "週単位"
+ }
+ }
+ }
+ },
+ "일주일 통계": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Weekly stats"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "週間統計"
+ }
+ }
+ }
+ },
+ "잠금화면 목표 위젯": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Lock Screen Goal Widget"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ロック画面の目標ウィジェット"
+ }
+ }
+ }
+ },
+ "잠금화면에 표시할 목표와 기간, 표시 방식을 선택하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose a goal, period, and style for the Lock Screen."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ロック画面に表示する目標・期間・スタイルを選んでください。"
+ }
+ }
+ }
+ },
+ "잠금화면에서 목표 달성률과 다짐 현황을 확인해요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Check goal progress and quest status on the Lock Screen. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ロック画面で目標達成率とクエスト状況を確認。(プレミアム)"
+ }
+ }
+ }
+ },
+ "전체 다짐 합산": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "All quests combined"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "全クエスト合算"
+ }
+ }
+ }
+ },
+ "주간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Weekly"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "週間"
+ }
+ }
+ }
+ },
+ "주차": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Week"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "週"
+ }
+ }
+ }
+ },
+ "진행 중": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "In progress"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "進行中"
+ }
+ }
+ }
+ },
+ "진행률 기간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Progress period"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "進捗の期間"
+ }
+ }
+ }
+ },
+ "추가할 횟수": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Count to add"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "追加する回数"
+ }
+ }
+ }
+ },
+ "측정 중": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Tracking"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "計測中"
+ }
+ }
+ }
+ },
+ "측정 중인 행동의 시간 측정을 종료해요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stops tracking a running time action."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "計測中のアクションの計測を終了します。"
+ }
+ }
+ }
+ },
+ "토": {
+ "comment": "요일 축약(토요일)",
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Sat"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "土"
+ }
+ }
+ }
+ },
+ "통계 기간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stats period"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "統計期間"
+ }
+ }
+ }
+ },
+ "통계 위젯": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Stats Widget"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "統計ウィジェット"
+ }
+ }
+ }
+ },
+ "특정 기간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Custom period"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "特定期間"
+ }
+ }
+ }
+ },
+ "표시 기간": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Display period"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "表示期間"
+ }
+ }
+ }
+ },
+ "표시 방식": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Display style"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "表示方法"
+ }
+ }
+ }
+ },
+ "표시 방식 (원형 크기)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Display style (ring size)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "表示方法(リングサイズ)"
+ }
+ }
+ }
+ },
+ "표시할 행동과 누적 기간을 선택하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose an action and period to display."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "表示するアクションと累計期間を選んでください。"
+ }
+ }
+ }
+ },
+ "프리미엄": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Premium"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "プレミアム"
+ }
+ }
+ }
+ },
+ "프리미엄 기능": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Premium Features"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "プレミアム機能"
+ }
+ }
+ }
+ },
+ "하루": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Daily"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1日"
+ }
+ }
+ }
+ },
+ "하루 다님 · 목표 없음": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "HaruDanim · No goal"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ハルダニム・目標なし"
+ }
+ }
+ }
+ },
+ "하루 다님 · 프리미엄 기능": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "HaruDanim · Premium feature"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ハルダニム・プレミアム機能"
+ }
+ }
+ }
+ },
+ "하루 단위": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Daily"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "日単位"
+ }
+ }
+ }
+ },
+ "하루·주간·월간 진행률을 표시할 목표를 선택하세요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Choose a goal to show daily, weekly, and monthly progress."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "日・週・月の進捗を表示する目標を選んでください。"
+ }
+ }
+ }
+ },
+ "한 달 (주 단위)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Month (by week)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1か月(週別)"
+ }
+ }
+ }
+ },
+ "한 달 (하루 단위, 중형 이상)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Month (by day, medium+)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "1か月(日別、中サイズ以上)"
+ }
+ }
+ }
+ },
+ "한 달 단위": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Monthly"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "月単位"
+ }
+ }
+ }
+ },
+ "한 달 통계 (일별)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Monthly stats (by day)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "月間統計(日別)"
+ }
+ }
+ }
+ },
+ "한 달 통계 (주별)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Monthly stats (by week)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "月間統計(週別)"
+ }
+ }
+ }
+ },
+ "한도 안에서 잘 지키고 있어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "You're staying within the limit"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "上限内でよく守れています"
+ }
+ }
+ }
+ },
+ "한도를 넘었어요": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "You went over the limit"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "上限を超えました"
+ }
+ }
+ }
+ },
+ "행동": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Actions"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション"
+ }
+ }
+ }
+ },
+ "행동 1": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Action 1"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション1"
+ }
+ }
+ }
+ },
+ "행동 2": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Action 2"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション2"
+ }
+ }
+ }
+ },
+ "행동 3": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Action 3"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション3"
+ }
+ }
+ }
+ },
+ "행동 4": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Action 4"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション4"
+ }
+ }
+ }
+ },
+ "행동 누적값 가져오기": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Get Action Total"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクションの累計値を取得"
+ }
+ }
+ }
+ },
+ "행동 실행": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Run Action"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション実行"
+ }
+ }
+ }
+ },
+ "행동 실행 위젯": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Action Run Widget"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション実行ウィジェット"
+ }
+ }
+ }
+ },
+ "행동 통계": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Action Stats"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクション統計"
+ }
+ }
+ }
+ },
+ "행동을 위젯에서 바로 실행하고 누적값을 확인해요. (프리미엄)": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Run actions right from the widget and see totals. (Premium)"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "ウィジェットからアクションを即実行し、累計を確認。(プレミアム)"
+ }
+ }
+ }
+ },
+ "행동을 찾을 수 없어요. 앱에서 삭제됐을 수 있어요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Action not found. It may have been deleted in the app."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクションが見つかりません。アプリで削除された可能性があります。"
+ }
+ }
+ }
+ },
+ "행동의 하루/주간/월간 누적 시간(초) 또는 횟수를 가져와요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Gets an action's daily/weekly/monthly total time (seconds) or count."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "アクションの日/週/月の累計時間(秒)または回数を取得します。"
+ }
+ }
+ }
+ },
+ "화": {
+ "comment": "요일 축약(화요일)",
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Tue"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "火"
+ }
+ }
+ }
+ },
+ "횟수": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Count"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "回数"
+ }
+ }
+ }
+ },
+ "횟수 기록": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Count tracking"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "回数記録"
+ }
+ }
+ }
+ },
+ "횟수 기록 행동의 횟수를 바로 추가해요.": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Adds a count to a count action right away."
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "回数記録アクションの回数をすぐに追加します。"
+ }
+ }
+ }
+ },
+ "횟수 추가": {
+ "localizations": {
+ "en": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "Add Count"
+ }
+ },
+ "ja": {
+ "stringUnit": {
+ "state": "translated",
+ "value": "回数を追加"
+ }
+ }
+ }
+ }
+ },
+ "version": "1.0"
+}
diff --git a/myApp/HaruDanim/Widgets/QuestRingWidget.swift b/myApp/HaruDanim/Widgets/QuestRingWidget.swift
index a088198..bc38a43 100644
--- a/myApp/HaruDanim/Widgets/QuestRingWidget.swift
+++ b/myApp/HaruDanim/Widgets/QuestRingWidget.swift
@@ -126,7 +126,9 @@ struct QuestRingActionCellView: View {
private var percentText: String {
if cell.isAtMost {
- return cell.isAchieved ? "\(spanLabel) 한도 지킴" : "\(spanLabel) 한도 초과"
+ return cell.isAchieved
+ ? String(localized: "\(spanLabel) 한도 지킴")
+ : String(localized: "\(spanLabel) 한도 초과")
}
return "\(spanLabel) \(Format.percent(cell.displayRatio))"
}
diff --git a/myApp/HaruDanim/Widgets/StatsChartWidget.swift b/myApp/HaruDanim/Widgets/StatsChartWidget.swift
index 336f350..fc7f000 100644
--- a/myApp/HaruDanim/Widgets/StatsChartWidget.swift
+++ b/myApp/HaruDanim/Widgets/StatsChartWidget.swift
@@ -27,9 +27,9 @@ enum StatsChartSpan: String, AppEnum {
var title: String {
switch self {
- case .week: return "일주일 통계"
- case .monthByDay: return "한 달 통계 (일별)"
- case .monthByWeek: return "한 달 통계 (주별)"
+ case .week: return String(localized: "일주일 통계")
+ case .monthByDay: return String(localized: "한 달 통계 (일별)")
+ case .monthByWeek: return String(localized: "한 달 통계 (주별)")
}
}
}
@@ -203,14 +203,14 @@ struct StatsChartWidgetView: View {
if let day = point.day {
LineMark(
x: .value("날짜", day, unit: .day),
- y: .value(entry.isTimeType ? "시간" : "값", point.value)
+ y: .value(entry.isTimeType ? String(localized: "시간") : String(localized: "값"), point.value)
)
.foregroundStyle(by: .value("행동", point.actionName))
.interpolationMethod(.monotone)
} else if let weekLabel = point.weekLabel {
LineMark(
x: .value("주차", weekLabel),
- y: .value(entry.isTimeType ? "시간" : "값", point.value)
+ y: .value(entry.isTimeType ? String(localized: "시간") : String(localized: "값"), point.value)
)
.foregroundStyle(by: .value("행동", point.actionName))
.interpolationMethod(.monotone)
@@ -218,7 +218,7 @@ struct StatsChartWidgetView: View {
}
.chartForegroundStyleScale(domain: entry.names, range: colors)
.chartLegend(family == .systemSmall ? .hidden : .visible)
- .chartYAxisLabel(family == .systemSmall ? "" : (entry.isTimeType ? "시간(h)" : "횟수"))
+ .chartYAxisLabel(family == .systemSmall ? "" : (entry.isTimeType ? String(localized: "시간(h)") : String(localized: "횟수")))
.chartXAxis {
if entry.isWeekAxis {
AxisMarks { _ in