diff --git a/MyQrCode/Resources/privacy_policy.html b/MyQrCode/Resources/privacy_policy.html index c295546..7147610 100644 --- a/MyQrCode/Resources/privacy_policy.html +++ b/MyQrCode/Resources/privacy_policy.html @@ -16,24 +16,27 @@ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; line-height: 1.6; color: #333; - background-color: #f8f9fa; - padding: 20px; + background-color: transparent; + padding: 0; + margin: 0; } .container { - max-width: 700px; - margin: 0 auto; - background: white; - border-radius: 8px; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); + max-width: 100%; + margin: 0; + background: transparent; + border-radius: 0; + box-shadow: none; overflow: hidden; } .header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; - padding: 40px 30px; + padding: 20px 16px; text-align: center; + margin-bottom: 16px; + border-radius: 12px; } .header h1 { @@ -48,15 +51,15 @@ } .content { - padding: 40px 30px; + padding: 0 16px 16px 16px; } h2 { color: #2c3e50; - font-size: 1.4em; + font-size: 1.3em; font-weight: 600; - margin: 30px 0 15px 0; - padding-bottom: 8px; + margin: 20px 0 12px 0; + padding-bottom: 6px; border-bottom: 2px solid #ecf0f1; } @@ -65,18 +68,18 @@ } p { - margin-bottom: 15px; + margin-bottom: 12px; color: #555; font-size: 0.95em; } ul { - margin: 15px 0; - padding-left: 20px; + margin: 12px 0; + padding-left: 16px; } li { - margin-bottom: 8px; + margin-bottom: 6px; color: #555; font-size: 0.95em; } @@ -84,9 +87,9 @@ .highlight { background-color: #f8f9fa; border-left: 4px solid #667eea; - padding: 20px; - margin: 20px 0; - border-radius: 4px; + padding: 16px; + margin: 16px 0; + border-radius: 8px; } .highlight p { @@ -98,9 +101,9 @@ .contact-box { background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); color: white; - padding: 25px; - border-radius: 8px; - margin: 30px 0; + padding: 20px; + border-radius: 12px; + margin: 20px 0; } .contact-box h3 { @@ -136,7 +139,7 @@ @media (max-width: 768px) { body { - padding: 10px; + padding: 0; } .container { @@ -145,15 +148,16 @@ } .header { - padding: 30px 20px; + padding: 16px 12px; + margin-bottom: 12px; } .content { - padding: 30px 20px; + padding: 0 12px 12px 12px; } .header h1 { - font-size: 1.8em; + font-size: 1.6em; } } diff --git a/MyQrCode/Views/Settings/AppPermissionsView.swift b/MyQrCode/Views/Settings/AppPermissionsView.swift index e60061a..190083e 100644 --- a/MyQrCode/Views/Settings/AppPermissionsView.swift +++ b/MyQrCode/Views/Settings/AppPermissionsView.swift @@ -8,158 +8,151 @@ struct AppPermissionsView: View { @State private var photoPermissionStatus: PHAuthorizationStatus = .notDetermined var body: some View { - NavigationView { - ZStack { - // 背景渐变 - LinearGradient( - gradient: Gradient(colors: [ - Color(.systemBackground), - Color(.systemGray6).opacity(0.2) - ]), - startPoint: .top, - endPoint: .bottom - ) - .ignoresSafeArea() - - ScrollView { - VStack(spacing: 24) { - // 顶部图标 - VStack(spacing: 16) { - ZStack { - Circle() - .fill( - LinearGradient( - gradient: Gradient(colors: [ - Color.blue.opacity(0.1), - Color.blue.opacity(0.05) - ]), - startPoint: .topLeading, - endPoint: .bottomTrailing - ) + ZStack { + // 背景渐变 + LinearGradient( + gradient: Gradient(colors: [ + Color(.systemBackground), + Color(.systemGray6).opacity(0.2) + ]), + startPoint: .top, + endPoint: .bottom + ) + .ignoresSafeArea() + + ScrollView { + VStack(spacing: 24) { + // 顶部图标 + VStack(spacing: 16) { + ZStack { + Circle() + .fill( + LinearGradient( + gradient: Gradient(colors: [ + Color.blue.opacity(0.1), + Color.blue.opacity(0.05) + ]), + startPoint: .topLeading, + endPoint: .bottomTrailing ) - .frame(width: 80, height: 80) - - Image(systemName: "lock.shield") - .font(.system(size: 36, weight: .light)) - .foregroundColor(.blue) - } + ) + .frame(width: 80, height: 80) - Text("app_permissions".localized) - .font(.system(size: 28, weight: .bold, design: .rounded)) - .foregroundColor(.primary) - .id(languageManager.refreshTrigger) + Image(systemName: "lock.shield") + .font(.system(size: 36, weight: .light)) + .foregroundColor(.blue) } - .padding(.top, 20) - - // 权限说明卡片 - VStack(alignment: .leading, spacing: 16) { - HStack { - Image(systemName: "info.circle") - .font(.system(size: 20, weight: .medium)) - .foregroundColor(.blue) - .frame(width: 32) - - Text("permissions_info".localized) - .font(.system(size: 18, weight: .semibold)) - - Spacer() - } + } + .padding(.top, 20) + + // 权限说明卡片 + VStack(alignment: .leading, spacing: 16) { + HStack { + Image(systemName: "info.circle") + .font(.system(size: 20, weight: .medium)) + .foregroundColor(.blue) + .frame(width: 32) + + Text("permissions_info".localized) + .font(.system(size: 18, weight: .semibold)) - Text("permissions_description".localized) - .font(.system(size: 14)) - .foregroundColor(.secondary) - .lineLimit(nil) + Spacer() } - .padding(20) - .background( - RoundedRectangle(cornerRadius: 16) - .fill(Color(.systemBackground)) - .shadow(color: .black.opacity(0.05), radius: 8, x: 0, y: 2) - ) - .padding(.horizontal, 20) - // 相机权限卡片 - PermissionCard( - icon: "camera.fill", - iconColor: .blue, - title: "camera_permission".localized, - description: "camera_permission_description".localized, - status: cameraPermissionStatus.displayText, - statusColor: cameraPermissionStatus.statusColor, - action: { - requestCameraPermission() - }, - actionTitle: cameraPermissionStatus.actionTitle - ) + Text("permissions_description".localized) + .font(.system(size: 14)) + .foregroundColor(.secondary) + .lineLimit(nil) + } + .padding(20) + .background( + RoundedRectangle(cornerRadius: 16) + .fill(Color(.systemBackground)) + .shadow(color: .black.opacity(0.05), radius: 8, x: 0, y: 2) + ) + .padding(.horizontal, 20) + + // 相机权限卡片 + PermissionCard( + icon: "camera.fill", + iconColor: .blue, + title: "camera_permission".localized, + description: "camera_permission_description".localized, + status: cameraPermissionStatus.displayText, + statusColor: cameraPermissionStatus.statusColor, + action: { + requestCameraPermission() + }, + actionTitle: cameraPermissionStatus.actionTitle + ) + + // 相册权限卡片 + PermissionCard( + icon: "photo.fill", + iconColor: .green, + title: "photo_permission".localized, + description: "photo_permission_description".localized, + status: photoPermissionStatus.displayText, + statusColor: photoPermissionStatus.statusColor, + action: { + requestPhotoPermission() + }, + actionTitle: photoPermissionStatus.actionTitle + ) + + // 系统设置卡片 + VStack(alignment: .leading, spacing: 16) { + HStack { + Image(systemName: "gearshape.fill") + .font(.system(size: 20, weight: .medium)) + .foregroundColor(.orange) + .frame(width: 32) + + Text("system_settings".localized) + .font(.system(size: 18, weight: .semibold)) + + Spacer() + } - // 相册权限卡片 - PermissionCard( - icon: "photo.fill", - iconColor: .green, - title: "photo_permission".localized, - description: "photo_permission_description".localized, - status: photoPermissionStatus.displayText, - statusColor: photoPermissionStatus.statusColor, - action: { - requestPhotoPermission() - }, - actionTitle: photoPermissionStatus.actionTitle - ) + Text("system_settings_description".localized) + .font(.system(size: 14)) + .foregroundColor(.secondary) + .lineLimit(nil) - // 系统设置卡片 - VStack(alignment: .leading, spacing: 16) { + Button(action: { + openSystemSettings() + }) { HStack { - Image(systemName: "gearshape.fill") - .font(.system(size: 20, weight: .medium)) - .foregroundColor(.orange) - .frame(width: 32) - - Text("system_settings".localized) - .font(.system(size: 18, weight: .semibold)) - - Spacer() - } - - Text("system_settings_description".localized) - .font(.system(size: 14)) - .foregroundColor(.secondary) - .lineLimit(nil) - - Button(action: { - openSystemSettings() - }) { - HStack { - Image(systemName: "arrow.up.right.square") - .font(.system(size: 16, weight: .medium)) - Text("open_system_settings".localized) - .font(.system(size: 16, weight: .medium)) - } - .foregroundColor(.white) - .padding(.horizontal, 20) - .padding(.vertical, 12) - .background( - RoundedRectangle(cornerRadius: 8) - .fill(Color.blue) - ) + Image(systemName: "arrow.up.right.square") + .font(.system(size: 16, weight: .medium)) + Text("open_system_settings".localized) + .font(.system(size: 16, weight: .medium)) } + .foregroundColor(.white) + .padding(.horizontal, 20) + .padding(.vertical, 12) + .background( + RoundedRectangle(cornerRadius: 8) + .fill(Color.blue) + ) } - .padding(20) - .background( - RoundedRectangle(cornerRadius: 16) - .fill(Color(.systemBackground)) - .shadow(color: .black.opacity(0.05), radius: 8, x: 0, y: 2) - ) - .padding(.horizontal, 20) - - Spacer(minLength: 30) } + .padding(20) + .background( + RoundedRectangle(cornerRadius: 16) + .fill(Color(.systemBackground)) + .shadow(color: .black.opacity(0.05), radius: 8, x: 0, y: 2) + ) + .padding(.horizontal, 20) + + Spacer(minLength: 30) } } - .navigationTitle("App Permissions") - .navigationBarTitleDisplayMode(.inline) - .onAppear { - checkPermissions() - } + } + .navigationTitle("app_permissions".localized) + .navigationBarTitleDisplayMode(.inline) + .onAppear { + checkPermissions() } } @@ -345,6 +338,8 @@ extension PHAuthorizationStatus { } #Preview { - AppPermissionsView() - .environmentObject(LanguageManager.shared) + NavigationView { + AppPermissionsView() + .environmentObject(LanguageManager.shared) + } } diff --git a/MyQrCode/Views/Settings/PrivacyPolicyView.swift b/MyQrCode/Views/Settings/PrivacyPolicyView.swift index 823dffc..e12e79c 100644 --- a/MyQrCode/Views/Settings/PrivacyPolicyView.swift +++ b/MyQrCode/Views/Settings/PrivacyPolicyView.swift @@ -5,26 +5,25 @@ struct PrivacyPolicyView: View { @EnvironmentObject private var languageManager: LanguageManager var body: some View { - NavigationView { - ZStack { - // 背景渐变 - LinearGradient( - gradient: Gradient(colors: [ - Color(.systemBackground), - Color(.systemGray6).opacity(0.2) - ]), - startPoint: .top, - endPoint: .bottom - ) - .ignoresSafeArea() - - // WebView显示HTML隐私政策 - WebView(url: Bundle.main.url(forResource: "privacy_policy", withExtension: "html")!) - .ignoresSafeArea(.container, edges: .bottom) - } - .navigationTitle("Privacy Policy") - .navigationBarTitleDisplayMode(.inline) + ZStack { + // 背景渐变 + LinearGradient( + gradient: Gradient(colors: [ + Color(.systemBackground), + Color(.systemGray6).opacity(0.2) + ]), + startPoint: .top, + endPoint: .bottom + ) + .ignoresSafeArea() + + // WebView显示HTML隐私政策 + WebView(url: Bundle.main.url(forResource: "privacy_policy", withExtension: "html")!) + .ignoresSafeArea(.container, edges: .bottom) } + .navigationTitle("privacy_policy".localized) + .navigationBarTitleDisplayMode(.inline) + .navigationBarBackButtonHidden(false) } } @@ -35,6 +34,9 @@ struct WebView: UIViewRepresentable { func makeUIView(context: Context) -> WKWebView { let webView = WKWebView() webView.loadFileURL(url, allowingReadAccessTo: url.deletingLastPathComponent()) + webView.scrollView.contentInsetAdjustmentBehavior = .never + webView.scrollView.showsVerticalScrollIndicator = true + webView.scrollView.showsHorizontalScrollIndicator = false return webView } @@ -44,6 +46,8 @@ struct WebView: UIViewRepresentable { } #Preview { - PrivacyPolicyView() - .environmentObject(LanguageManager.shared) + NavigationView { + PrivacyPolicyView() + .environmentObject(LanguageManager.shared) + } } diff --git a/MyQrCode/en.lproj/Localizable.strings b/MyQrCode/en.lproj/Localizable.strings index d6c60c3..be43721 100644 --- a/MyQrCode/en.lproj/Localizable.strings +++ b/MyQrCode/en.lproj/Localizable.strings @@ -17,9 +17,11 @@ "style_minimal" = "Minimalist"; "style_retro" = "Retro Style"; // Content View +"main_title" = "Barcode Scanner"; "app_description" = "Scan QR codes and barcodes with ease"; "start_scanning" = "Start Scanning"; "scan_result" = "Scan Result:"; +"language" = "Language"; // Error Messages "scan_error_title" = "Scan Error"; "scan_error_message" = "Your device does not support scanning QR codes. Please use a device with a camera."; @@ -338,6 +340,7 @@ "manually_created" = "Manually Created"; "barcode" = "Barcode"; "qr_code" = "QR Code"; +"qrcode" = "QR Code"; "foreground_color" = "Foreground Color"; "background_color" = "Background Color"; "dot_type" = "Dot Type"; @@ -696,89 +699,114 @@ "olive" = "Olive"; "silver" = "Silver"; -// Missing keys (using reference as fallback) -"app_name" = "app_name"; -"back" = "back"; -"barcode_detail_content" = "barcode_detail_content"; -"barcode_detail_copy" = "barcode_detail_copy"; -"barcode_detail_share" = "barcode_detail_share"; -"barcode_detail_title" = "barcode_detail_title"; -"barcode_detail_type" = "barcode_detail_type"; -"barcode_preview_save" = "barcode_preview_save"; -"barcode_preview_share" = "barcode_preview_share"; -"barcode_preview_title" = "barcode_preview_title"; -"code_type_calendar" = "code_type_calendar"; -"code_type_contact" = "code_type_contact"; -"code_type_email" = "code_type_email"; -"code_type_location" = "code_type_location"; -"code_type_phone" = "code_type_phone"; -"code_type_selection_title" = "code_type_selection_title"; -"code_type_sms" = "code_type_sms"; -"code_type_social" = "code_type_social"; -"code_type_text" = "code_type_text"; -"code_type_url" = "code_type_url"; -"code_type_wifi" = "code_type_wifi"; -"create_code_content" = "create_code_content"; -"create_code_generate" = "create_code_generate"; -"create_code_title" = "create_code_title"; -"create_code_type" = "create_code_type"; -"create_qrcode_content" = "create_qrcode_content"; -"create_qrcode_generate" = "create_qrcode_generate"; -"create_qrcode_title" = "create_qrcode_title"; -"create_qrcode_type" = "create_qrcode_type"; -"edit" = "edit"; -"history" = "history"; -"history_copy" = "history_copy"; -"history_delete" = "history_delete"; -"history_empty" = "history_empty"; -"history_favorite" = "history_favorite"; -"history_share" = "history_share"; -"history_title" = "history_title"; -"history_unfavorite" = "history_unfavorite"; -"input_calendar_content" = "input_calendar_content"; -"input_contact_content" = "input_contact_content"; -"input_field_content" = "input_field_content"; -"input_field_placeholder" = "input_field_placeholder"; -"input_field_title" = "input_field_title"; -"input_hint_content" = "input_hint_content"; -"input_hint_title" = "input_hint_title"; -"input_location_content" = "input_location_content"; -"input_phone_content" = "input_phone_content"; -"input_social_content" = "input_social_content"; -"input_title_text" = "input_title_text"; -"input_url_content" = "input_url_content"; -"input_wifi_content" = "input_wifi_content"; -"keyboard_toolbar_cancel" = "keyboard_toolbar_cancel"; -"keyboard_toolbar_done" = "keyboard_toolbar_done"; -"language" = "language"; -"list_view_empty" = "list_view_empty"; -"list_view_title" = "list_view_title"; -"main_title" = "main_title"; -"no" = "no"; -"no_more_data" = "no_more_data"; -"ok" = "ok"; -"permission_authorized" = "permission_authorized"; -"permission_denied" = "permission_denied"; -"permission_limited" = "permission_limited"; -"permission_not_determined" = "permission_not_determined"; -"permission_restricted" = "permission_restricted"; -"photo_library_permission" = "photo_library_permission"; -"picker_view_cancel" = "picker_view_cancel"; -"picker_view_done" = "picker_view_done"; -"picker_view_title" = "picker_view_title"; -"privacy_policy" = "privacy_policy"; -"qrcode" = "qrcode"; -"qrcode_detail_content" = "qrcode_detail_content"; -"qrcode_detail_copy" = "qrcode_detail_copy"; -"qrcode_detail_share" = "qrcode_detail_share"; -"qrcode_detail_title" = "qrcode_detail_title"; -"qrcode_detail_type" = "qrcode_detail_type"; -"qrcode_preview_save" = "qrcode_preview_save"; -"qrcode_preview_share" = "qrcode_preview_share"; -"qrcode_preview_title" = "qrcode_preview_title"; -"scan" = "scan"; -"utility_error" = "utility_error"; -"utility_info" = "utility_info"; -"utility_success" = "utility_success"; -"utility_warning" = "utility_warning"; -"yes" = "yes"; +// App Name +"app_name" = "MyQrCode"; + +// Navigation +"back" = "Back"; +"edit" = "Edit"; +"history" = "History"; +"scan" = "Scan"; + +// Barcode Details +"barcode_detail_content" = "Barcode Content"; +"barcode_detail_copy" = "Copy Barcode"; +"barcode_detail_share" = "Share Barcode"; +"barcode_detail_title" = "Barcode Detail"; +"barcode_detail_type" = "Barcode Type"; +"barcode_preview_save" = "Save Barcode"; +"barcode_preview_share" = "Share Barcode"; +"barcode_preview_title" = "Barcode Preview"; + +// Code Types +"code_type_calendar" = "Calendar"; +"code_type_contact" = "Contact"; +"code_type_email" = "Email"; +"code_type_location" = "Location"; +"code_type_phone" = "Phone"; +"code_type_selection_title" = "Select Code Type"; +"code_type_sms" = "SMS"; +"code_type_social" = "Social"; +"code_type_text" = "Text"; +"code_type_url" = "URL"; +"code_type_wifi" = "WiFi"; + +// Create Code +"create_code_content" = "Create Code Content"; +"create_code_generate" = "Generate Code"; +"create_code_title" = "Create Code"; +"create_code_type" = "Create Code Type"; +"create_qrcode_content" = "Create QR Code Content"; +"create_qrcode_generate" = "Generate QR Code"; +"create_qrcode_title" = "Create QR Code"; +"create_qrcode_type" = "Create QR Code Type"; + +// History +"history_copy" = "Copy History"; +"history_delete" = "Delete History"; +"history_empty" = "History Empty"; +"history_favorite" = "Favorite History"; +"history_share" = "Share History"; +"history_title" = "History"; +"history_unfavorite" = "Unfavorite History"; + +// Input Components +"input_calendar_content" = "Input Calendar Content"; +"input_contact_content" = "Input Contact Content"; +"input_field_content" = "Input Field Content"; +"input_field_placeholder" = "Input Field Placeholder"; +"input_field_title" = "Input Field Title"; +"input_hint_content" = "Input Hint Content"; +"input_hint_title" = "Input Hint Title"; +"input_location_content" = "Input Location Content"; +"input_phone_content" = "Input Phone Content"; +"input_social_content" = "Input Social Content"; +"input_title_text" = "Input Title Text"; +"input_url_content" = "Input URL Content"; +"input_wifi_content" = "Input WiFi Content"; + +// Keyboard Toolbar +"keyboard_toolbar_cancel" = "Cancel"; +"keyboard_toolbar_done" = "Done"; + +// List View +"list_view_empty" = "List Empty"; +"list_view_title" = "List Title"; + +// Common +"no" = "No"; +"no_more_data" = "No More Data"; +"ok" = "OK"; +"yes" = "Yes"; + +// Permission States +"permission_authorized" = "Authorized"; +"permission_denied" = "Denied"; +"permission_limited" = "Limited"; +"permission_not_determined" = "Not Determined"; +"permission_restricted" = "Restricted"; +"photo_library_permission" = "Photo Library Permission"; + +// Picker View +"picker_view_cancel" = "Cancel Selection"; +"picker_view_done" = "Done Selection"; +"picker_view_title" = "Picker Title"; + +// Privacy Policy +"privacy_policy" = "Privacy Policy"; + +// QR Code Details +"qrcode_detail_content" = "QR Code Content"; +"qrcode_detail_copy" = "Copy QR Code"; +"qrcode_detail_share" = "Share QR Code"; +"qrcode_detail_title" = "QR Code Detail"; +"qrcode_detail_type" = "QR Code Type"; +"qrcode_preview_save" = "Save QR Code"; +"qrcode_preview_share" = "Share QR Code"; +"qrcode_preview_title" = "QR Code Preview"; + +// Utility Messages +"utility_error" = "Error"; +"utility_info" = "Info"; +"utility_success" = "Success"; +"utility_warning" = "Warning"; diff --git a/MyQrCode/th.lproj/Localizable.strings b/MyQrCode/th.lproj/Localizable.strings index 4f5635c..13bee67 100644 --- a/MyQrCode/th.lproj/Localizable.strings +++ b/MyQrCode/th.lproj/Localizable.strings @@ -695,89 +695,117 @@ "olive" = "สีเขียวเข้ม"; "silver" = "สีเงิน"; -// Missing keys (using English as fallback) -"manage_app_permissions" = "Manage camera and photo library permissions for this app."; +// การจัดการสิทธิ์แอป +"manage_app_permissions" = "จัดการสิทธิ์กล้องและไลบรารีรูปภาพสำหรับแอปนี้"; -// Missing keys (using reference as fallback) -"app_name" = "app_name"; -"back" = "back"; -"barcode_detail_content" = "barcode_detail_content"; -"barcode_detail_copy" = "barcode_detail_copy"; -"barcode_detail_share" = "barcode_detail_share"; -"barcode_detail_title" = "barcode_detail_title"; -"barcode_detail_type" = "barcode_detail_type"; -"barcode_preview_save" = "barcode_preview_save"; -"barcode_preview_share" = "barcode_preview_share"; -"barcode_preview_title" = "barcode_preview_title"; -"code_type_calendar" = "code_type_calendar"; -"code_type_contact" = "code_type_contact"; -"code_type_email" = "code_type_email"; -"code_type_location" = "code_type_location"; -"code_type_phone" = "code_type_phone"; -"code_type_selection_title" = "code_type_selection_title"; -"code_type_sms" = "code_type_sms"; -"code_type_social" = "code_type_social"; -"code_type_text" = "code_type_text"; -"code_type_url" = "code_type_url"; -"code_type_wifi" = "code_type_wifi"; -"create_code_content" = "create_code_content"; -"create_code_generate" = "create_code_generate"; -"create_code_title" = "create_code_title"; -"create_code_type" = "create_code_type"; -"create_qrcode_content" = "create_qrcode_content"; -"create_qrcode_generate" = "create_qrcode_generate"; -"create_qrcode_title" = "create_qrcode_title"; -"create_qrcode_type" = "create_qrcode_type"; -"edit" = "edit"; -"history" = "history"; -"history_copy" = "history_copy"; -"history_delete" = "history_delete"; -"history_empty" = "history_empty"; -"history_favorite" = "history_favorite"; -"history_share" = "history_share"; -"history_title" = "history_title"; -"history_unfavorite" = "history_unfavorite"; -"input_calendar_content" = "input_calendar_content"; -"input_contact_content" = "input_contact_content"; -"input_field_content" = "input_field_content"; -"input_field_placeholder" = "input_field_placeholder"; -"input_field_title" = "input_field_title"; -"input_hint_content" = "input_hint_content"; -"input_hint_title" = "input_hint_title"; -"input_location_content" = "input_location_content"; -"input_phone_content" = "input_phone_content"; -"input_social_content" = "input_social_content"; -"input_title_text" = "input_title_text"; -"input_url_content" = "input_url_content"; -"input_wifi_content" = "input_wifi_content"; -"keyboard_toolbar_cancel" = "keyboard_toolbar_cancel"; -"keyboard_toolbar_done" = "keyboard_toolbar_done"; -"list_view_empty" = "list_view_empty"; -"list_view_title" = "list_view_title"; -"no" = "no"; -"no_more_data" = "no_more_data"; -"ok" = "ok"; -"permission_authorized" = "permission_authorized"; -"permission_denied" = "permission_denied"; -"permission_limited" = "permission_limited"; -"permission_not_determined" = "permission_not_determined"; -"permission_restricted" = "permission_restricted"; -"photo_library_permission" = "photo_library_permission"; -"picker_view_cancel" = "picker_view_cancel"; -"picker_view_done" = "picker_view_done"; -"picker_view_title" = "picker_view_title"; -"privacy_policy" = "privacy_policy"; -"qrcode_detail_content" = "qrcode_detail_content"; -"qrcode_detail_copy" = "qrcode_detail_copy"; -"qrcode_detail_share" = "qrcode_detail_share"; -"qrcode_detail_title" = "qrcode_detail_title"; -"qrcode_detail_type" = "qrcode_detail_type"; -"qrcode_preview_save" = "qrcode_preview_save"; -"qrcode_preview_share" = "qrcode_preview_share"; -"qrcode_preview_title" = "qrcode_preview_title"; -"scan" = "scan"; -"utility_error" = "utility_error"; -"utility_info" = "utility_info"; -"utility_success" = "utility_success"; -"utility_warning" = "utility_warning"; -"yes" = "yes"; +// ชื่อแอป +"app_name" = "MyQrCode"; + +// การนำทาง +"back" = "กลับ"; +"edit" = "แก้ไข"; +"history" = "ประวัติ"; +"scan" = "สแกน"; + +// รายละเอียดบาร์โค้ด +"barcode_detail_content" = "เนื้อหาบาร์โค้ด"; +"barcode_detail_copy" = "คัดลอกบาร์โค้ด"; +"barcode_detail_share" = "แชร์บาร์โค้ด"; +"barcode_detail_title" = "รายละเอียดบาร์โค้ด"; +"barcode_detail_type" = "ประเภทบาร์โค้ด"; +"barcode_preview_save" = "บันทึกบาร์โค้ด"; +"barcode_preview_share" = "แชร์บาร์โค้ด"; +"barcode_preview_title" = "ตัวอย่างบาร์โค้ด"; + +// ประเภทโค้ด +"code_type_calendar" = "ปฏิทิน"; +"code_type_contact" = "รายชื่อติดต่อ"; +"code_type_email" = "อีเมล"; +"code_type_location" = "ตำแหน่ง"; +"code_type_phone" = "โทรศัพท์"; +"code_type_selection_title" = "เลือกประเภทโค้ด"; +"code_type_sms" = "ข้อความ"; +"code_type_social" = "โซเชียล"; +"code_type_text" = "ข้อความ"; +"code_type_url" = "URL"; +"code_type_wifi" = "WiFi"; + +// สร้างโค้ด +"create_code_content" = "สร้างเนื้อหาโค้ด"; +"create_code_generate" = "สร้างโค้ด"; +"create_code_title" = "สร้างโค้ด"; +"create_code_type" = "สร้างประเภทโค้ด"; +"create_qrcode_content" = "สร้างเนื้อหา QR Code"; +"create_qrcode_generate" = "สร้าง QR Code"; +"create_qrcode_title" = "สร้าง QR Code"; +"create_qrcode_type" = "สร้างประเภท QR Code"; + +// ประวัติ +"history_copy" = "คัดลอกประวัติ"; +"history_delete" = "ลบประวัติ"; +"history_empty" = "ประวัติว่างเปล่า"; +"history_favorite" = "เพิ่มในรายการโปรด"; +"history_share" = "แชร์ประวัติ"; +"history_title" = "ประวัติ"; +"history_unfavorite" = "ลบออกจากรายการโปรด"; + +// องค์ประกอบการป้อนข้อมูล +"input_calendar_content" = "ป้อนเนื้อหาปฏิทิน"; +"input_contact_content" = "ป้อนเนื้อหารายชื่อติดต่อ"; +"input_field_content" = "ป้อนเนื้อหาฟิลด์"; +"input_field_placeholder" = "ตัวยึดตำแหน่งฟิลด์"; +"input_field_title" = "ชื่อฟิลด์"; +"input_hint_content" = "เนื้อหาคำแนะนำ"; +"input_hint_title" = "ชื่อคำแนะนำ"; +"input_location_content" = "ป้อนเนื้อหาตำแหน่ง"; +"input_phone_content" = "ป้อนเนื้อหาโทรศัพท์"; +"input_social_content" = "ป้อนเนื้อหาโซเชียล"; +"input_title_text" = "ข้อความชื่อ"; +"input_url_content" = "ป้อนเนื้อหา URL"; +"input_wifi_content" = "ป้อนเนื้อหา WiFi"; + +// แถบเครื่องมือคีย์บอร์ด +"keyboard_toolbar_cancel" = "ยกเลิก"; +"keyboard_toolbar_done" = "เสร็จสิ้น"; + +// มุมมองรายการ +"list_view_empty" = "รายการว่างเปล่า"; +"list_view_title" = "ชื่อรายการ"; + +// ทั่วไป +"no" = "ไม่"; +"no_more_data" = "ไม่มีข้อมูลเพิ่มเติม"; +"ok" = "ตกลง"; +"yes" = "ใช่"; + +// สถานะสิทธิ์ +"permission_authorized" = "ได้รับอนุญาต"; +"permission_denied" = "ถูกปฏิเสธ"; +"permission_limited" = "จำกัด"; +"permission_not_determined" = "ยังไม่ได้กำหนด"; +"permission_restricted" = "ถูกจำกัด"; +"photo_library_permission" = "สิทธิ์ไลบรารีรูปภาพ"; + +// มุมมองตัวเลือก +"picker_view_cancel" = "ยกเลิกการเลือก"; +"picker_view_done" = "เสร็จสิ้นการเลือก"; +"picker_view_title" = "ชื่อตัวเลือก"; + +// นโยบายความเป็นส่วนตัว +"privacy_policy" = "นโยบายความเป็นส่วนตัว"; + +// รายละเอียด QR Code +"qrcode_detail_content" = "เนื้อหา QR Code"; +"qrcode_detail_copy" = "คัดลอก QR Code"; +"qrcode_detail_share" = "แชร์ QR Code"; +"qrcode_detail_title" = "รายละเอียด QR Code"; +"qrcode_detail_type" = "ประเภท QR Code"; +"qrcode_preview_save" = "บันทึก QR Code"; +"qrcode_preview_share" = "แชร์ QR Code"; +"qrcode_preview_title" = "ตัวอย่าง QR Code"; + +// ข้อความเครื่องมือ +"utility_error" = "ข้อผิดพลาด"; +"utility_info" = "ข้อมูล"; +"utility_success" = "สำเร็จ"; +"utility_warning" = "คำเตือน"; diff --git a/MyQrCode/zh-Hans.lproj/Localizable.strings b/MyQrCode/zh-Hans.lproj/Localizable.strings index ddbfffe..96fd837 100644 --- a/MyQrCode/zh-Hans.lproj/Localizable.strings +++ b/MyQrCode/zh-Hans.lproj/Localizable.strings @@ -698,89 +698,117 @@ "olive" = "橄榄色"; "silver" = "银色"; -// Missing keys (using English as fallback) -"manage_app_permissions" = "Manage camera and photo library permissions for this app."; +// 应用权限管理 +"manage_app_permissions" = "管理此应用的相机和相册权限。"; -// Missing keys (using reference as fallback) -"app_name" = "app_name"; -"back" = "back"; -"barcode_detail_content" = "barcode_detail_content"; -"barcode_detail_copy" = "barcode_detail_copy"; -"barcode_detail_share" = "barcode_detail_share"; -"barcode_detail_title" = "barcode_detail_title"; -"barcode_detail_type" = "barcode_detail_type"; -"barcode_preview_save" = "barcode_preview_save"; -"barcode_preview_share" = "barcode_preview_share"; -"barcode_preview_title" = "barcode_preview_title"; -"code_type_calendar" = "code_type_calendar"; -"code_type_contact" = "code_type_contact"; -"code_type_email" = "code_type_email"; -"code_type_location" = "code_type_location"; -"code_type_phone" = "code_type_phone"; -"code_type_selection_title" = "code_type_selection_title"; -"code_type_sms" = "code_type_sms"; -"code_type_social" = "code_type_social"; -"code_type_text" = "code_type_text"; -"code_type_url" = "code_type_url"; -"code_type_wifi" = "code_type_wifi"; -"create_code_content" = "create_code_content"; -"create_code_generate" = "create_code_generate"; -"create_code_title" = "create_code_title"; -"create_code_type" = "create_code_type"; -"create_qrcode_content" = "create_qrcode_content"; -"create_qrcode_generate" = "create_qrcode_generate"; -"create_qrcode_title" = "create_qrcode_title"; -"create_qrcode_type" = "create_qrcode_type"; -"edit" = "edit"; -"history" = "history"; -"history_copy" = "history_copy"; -"history_delete" = "history_delete"; -"history_empty" = "history_empty"; -"history_favorite" = "history_favorite"; -"history_share" = "history_share"; -"history_title" = "history_title"; -"history_unfavorite" = "history_unfavorite"; -"input_calendar_content" = "input_calendar_content"; -"input_contact_content" = "input_contact_content"; -"input_field_content" = "input_field_content"; -"input_field_placeholder" = "input_field_placeholder"; -"input_field_title" = "input_field_title"; -"input_hint_content" = "input_hint_content"; -"input_hint_title" = "input_hint_title"; -"input_location_content" = "input_location_content"; -"input_phone_content" = "input_phone_content"; -"input_social_content" = "input_social_content"; -"input_title_text" = "input_title_text"; -"input_url_content" = "input_url_content"; -"input_wifi_content" = "input_wifi_content"; -"keyboard_toolbar_cancel" = "keyboard_toolbar_cancel"; -"keyboard_toolbar_done" = "keyboard_toolbar_done"; -"list_view_empty" = "list_view_empty"; -"list_view_title" = "list_view_title"; -"no" = "no"; -"no_more_data" = "no_more_data"; -"ok" = "ok"; -"permission_authorized" = "permission_authorized"; -"permission_denied" = "permission_denied"; -"permission_limited" = "permission_limited"; -"permission_not_determined" = "permission_not_determined"; -"permission_restricted" = "permission_restricted"; -"photo_library_permission" = "photo_library_permission"; -"picker_view_cancel" = "picker_view_cancel"; -"picker_view_done" = "picker_view_done"; -"picker_view_title" = "picker_view_title"; -"privacy_policy" = "privacy_policy"; -"qrcode_detail_content" = "qrcode_detail_content"; -"qrcode_detail_copy" = "qrcode_detail_copy"; -"qrcode_detail_share" = "qrcode_detail_share"; -"qrcode_detail_title" = "qrcode_detail_title"; -"qrcode_detail_type" = "qrcode_detail_type"; -"qrcode_preview_save" = "qrcode_preview_save"; -"qrcode_preview_share" = "qrcode_preview_share"; -"qrcode_preview_title" = "qrcode_preview_title"; -"scan" = "scan"; -"utility_error" = "utility_error"; -"utility_info" = "utility_info"; -"utility_success" = "utility_success"; -"utility_warning" = "utility_warning"; -"yes" = "yes"; +// 应用名称 +"app_name" = "MyQrCode"; + +// 导航 +"back" = "返回"; +"edit" = "编辑"; +"history" = "历史记录"; +"scan" = "扫描"; + +// 条形码详情 +"barcode_detail_content" = "条形码内容"; +"barcode_detail_copy" = "复制条形码"; +"barcode_detail_share" = "分享条形码"; +"barcode_detail_title" = "条形码详情"; +"barcode_detail_type" = "条形码类型"; +"barcode_preview_save" = "保存条形码"; +"barcode_preview_share" = "分享条形码"; +"barcode_preview_title" = "条形码预览"; + +// 代码类型 +"code_type_calendar" = "日历"; +"code_type_contact" = "联系人"; +"code_type_email" = "邮箱"; +"code_type_location" = "位置"; +"code_type_phone" = "电话"; +"code_type_selection_title" = "选择代码类型"; +"code_type_sms" = "短信"; +"code_type_social" = "社交"; +"code_type_text" = "文本"; +"code_type_url" = "网址"; +"code_type_wifi" = "WiFi"; + +// 创建代码 +"create_code_content" = "创建代码内容"; +"create_code_generate" = "生成代码"; +"create_code_title" = "创建代码"; +"create_code_type" = "创建代码类型"; +"create_qrcode_content" = "创建二维码内容"; +"create_qrcode_generate" = "生成二维码"; +"create_qrcode_title" = "创建二维码"; +"create_qrcode_type" = "创建二维码类型"; + +// 历史记录 +"history_copy" = "复制历史记录"; +"history_delete" = "删除历史记录"; +"history_empty" = "历史记录为空"; +"history_favorite" = "收藏历史记录"; +"history_share" = "分享历史记录"; +"history_title" = "历史记录"; +"history_unfavorite" = "取消收藏历史记录"; + +// 输入组件 +"input_calendar_content" = "输入日历内容"; +"input_contact_content" = "输入联系人内容"; +"input_field_content" = "输入字段内容"; +"input_field_placeholder" = "输入字段占位符"; +"input_field_title" = "输入字段标题"; +"input_hint_content" = "输入提示内容"; +"input_hint_title" = "输入提示标题"; +"input_location_content" = "输入位置内容"; +"input_phone_content" = "输入电话内容"; +"input_social_content" = "输入社交内容"; +"input_title_text" = "输入标题文本"; +"input_url_content" = "输入网址内容"; +"input_wifi_content" = "输入WiFi内容"; + +// 键盘工具栏 +"keyboard_toolbar_cancel" = "取消"; +"keyboard_toolbar_done" = "完成"; + +// 列表视图 +"list_view_empty" = "列表为空"; +"list_view_title" = "列表标题"; + +// 通用 +"no" = "否"; +"no_more_data" = "没有更多数据"; +"ok" = "确定"; +"yes" = "是"; + +// 权限状态 +"permission_authorized" = "已授权"; +"permission_denied" = "已拒绝"; +"permission_limited" = "有限"; +"permission_not_determined" = "未确定"; +"permission_restricted" = "受限制"; +"photo_library_permission" = "相册权限"; + +// 选择器视图 +"picker_view_cancel" = "取消选择"; +"picker_view_done" = "完成选择"; +"picker_view_title" = "选择器标题"; + +// 隐私政策 +"privacy_policy" = "隐私政策"; + +// 二维码详情 +"qrcode_detail_content" = "二维码内容"; +"qrcode_detail_copy" = "复制二维码"; +"qrcode_detail_share" = "分享二维码"; +"qrcode_detail_title" = "二维码详情"; +"qrcode_detail_type" = "二维码类型"; +"qrcode_preview_save" = "保存二维码"; +"qrcode_preview_share" = "分享二维码"; +"qrcode_preview_title" = "二维码预览"; + +// 工具提示 +"utility_error" = "错误"; +"utility_info" = "信息"; +"utility_success" = "成功"; +"utility_warning" = "警告";