Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion SimpleLoader/Languages/Base.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,9 @@
"close" = "关闭";
"rights_reserved" = "保留所有权利";
"contributor1" = "laobamac - 开发者";
"contributor2" = "perez987 - 提供英语翻译";
"contributor2" = "perez987 - 部分西班牙语和英语翻译";
"contributor3" = "Anto65 - 部分意大利语翻译";
"contributor4" = "lshbluesky - 部分韩语翻译";
"auto_detect" = "自动检测";
"language_settings" = "语言设置";
"language" = "语言";
Expand Down
3 changes: 2 additions & 1 deletion SimpleLoader/Languages/LanguageManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class LanguageManager: ObservableObject {
}

func availableLanguages() -> [String] {
return ["en", "zh-Hans", "zh-Hant", "es", "it"] // 支持的语言列表
return ["en", "zh-Hans", "zh-Hant", "es", "it", "ko"] // 支持的语言列表
}

func displayName(for language: String) -> String {
Expand All @@ -43,6 +43,7 @@ class LanguageManager: ObservableObject {
case "zh-Hant": return "繁体中文"
case "es": return "Español"
case "it": return "Italian"
case "ko": return "Korean"
default: return language
}
}
Expand Down
114 changes: 65 additions & 49 deletions SimpleLoader/Languages/en.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -10,48 +10,49 @@
SimpleLoader
*/

"app_title" = "SimpleLoader System Extension Installer";
"app_title" = "SimpleLoader System Extension Installation Tool";
"app_subtitle" = "Automatically merge KDK and install Kext/Bundle to /System/Library/Extensions";
"installation_options" = "Installation Options";
"show_advanced" = "Show Advanced Options";
"hide_advanced" = "Hide Advanced Options";
"force_overwrite" = "Force overwrite existing files";
"force_overwrite" = "Force overwrite duplicate files";
"backup_existing" = "Backup existing Kext/Framework";
"advanced_options" = "Advanced Options";
"install_to_le" = "Install to /Library/Extensions";
"install_to_private" = "Allow installing Framework to /System/Library/PrivateFrameworks";
"private_warning" = "Warning: Installing to PrivateFrameworks may cause system crash";
"full_kdk_merge" = "Merge complete KDK (including Kernel)";
"kdk_warning" = "Not recommended: Merging complete KDK will occupy extra space and bring security risks";
"install_to_private" = "Allow installation of frameworks to /System/Library/PrivateFrameworks";
"private_warning" = "Warning: Installing to PrivateFrameworks may cause system crashes";
"full_kdk_merge" = "Merge complete KDK (including kernel)";
"kdk_warning" = "Not recommended: Merging complete KDKs takes up extra space and poses security risks";
"status" = "Status";
"ready" = "Ready";
"installing_kext" = "Installing Kext to /System/Library/Extensions";
"installing_kext" = "Installing kext to /System/Library/Extensions";
"merging_kdk" = "Merging KDK files";
"starting_merge_and_install" = "Starting KDK merge and Kext installation...";
"starting_install_kext" = "Starting Kext file installation...";
"select_kext" = "Select Kext/Framework file";
"drop_files" = "Drag and drop Kext/Framework files here";
"starting_merge_and_install" = "Starting merging KDK and installing kext...";
"starting_install_kext" = "Starting installing kext files...";
"select_kext" = "Select kext/framework files";
"drop_files" = "Drag and drop kext/framework files here";
"select_files" = "Click to select files...";
"operation_log" = "Operation Log";
"operation_log" = "Operation log";
"waiting" = "Waiting for operation...";
"open_kdk" = "Open KDK Directory";
"merge_kdk" = "Merge KDK Only";
"start_install" = "Start Installation";
"open_kdk" = "Open KDK directory";
"merge_kdk" = "Merge KDK only";
"start_install" = "Start installation";
"cancel" = "Cancel";
"about" = "About";
"rebuild_cache" = "Rebuild Cache";
"create_snapshot" = "Create Snapshot";
"restore_snapshot" = "Restore Snapshot";
"rebuild_cache" = "Rebuild cache";
"create_snapshot" = "Create snapshot";
"restore_snapshot" = "Restore snapshot";
"version" = "Version";
"author" = "Author";
"copyright" = "Copyright";
"contributors" = "Contributors";
"visit_github" = "Visit GitHub Repository";
"visit_github" = "Visit GitHub repository";
"close" = "Close";
"rights_reserved" = "All Rights Reserved";
"rights_reserved" = "All rights reserved";
"contributor1" = "laobamac - Developer";
"contributor2" = "perez987 - Partial English translation";
"contributor3" = "Anto65 - Partial Italian translations";
"contributor2" = "perez987 - Partial Spanish and English translation";
"contributor3" = "Anto65 - Partial Italian translation";
"contributor4" = "lshbluesky - Partial Korean translation";
"auto_detect" = "Auto Detect";
"language_settings" = "Language Settings";
"language" = "Language";
Expand All @@ -60,65 +61,80 @@
"installing" = "Installing...";
"merging" = "Merging KDK...";
"found" = "Found";
"warning_no_kdk" = "Warning: No KDK found, please install KDK first";
"warning_no_kdk" = "Warning: KDK not found, please install KDK first";
"warning" = "Warning";
"error" = "Error";
"none_out" = "No output";
"unkn_error" = "Unknown error";
"error_cant_read_kdk_dir" = "Error: Cannot read KDK directory";
"error_cant_read_kdk_dir" = "Error: Unable to read KDK directory";
"error_not_selected_kdk" = "Error: No KDK selected";
"error_merged_kdk_failed" = "Error: KDK merge failed";
"error_not_selected_bundle" = "Error: No Kext file selected";
"error_merged_kdk_failed" = "Error: Merging KDK failed";
"error_not_selected_bundle" = "Error: No kext selected";
"error_installed_failed" = "Error: Installation failed";
"not_selected_kdk" = "No KDK selected";
"starting_merging" = "Starting KDK merge";
"locating_root_vol" = "Locating root volume...";
"starting_merging_to_root_vol" = "Starting KDK merge to root volume";
"starting_merging" = "Starting merging KDK";
"locating_root_vol" = "Locate root volume";
"starting_merging_to_root_vol" = "Starting merging KDK to root volume";
"slow_step" = "This step is slow, do not force stop!";
"merged_completed_umounted" = "Merge completed, root volume unmounted";
"merged_successfully" = "Merge successful";
"merged_completed_umounted" = "Merging completed, root volume unmounted";
"merged_successfully" = "Merging successfully";
"merged_failed" = "Merge failed";
"kdk_merged_successfully" = "KDK merged successfully";
"whether_select_kdk" = "Whether to select KDK";
"whether_select_kdk" = "Whether to select a KDK";
"info_not_selected_kdk" = "Info: No KDK selected";
"options" = "Options";
"force" = "Force Overwrite";
"force" = "Force overwrite";
"backup" = "Backup";
"rebuild" = "Rebuild Cache";
"rebuild" = "Rebuild cache";
"about" = "About";
"install_completed" = "Installation completed";
"op_successfully" = "Operation successful";
"op_failed" = "Operation failed";
"kext_has_been_installed" = "The specified kernel extension has been installed";
"op_canceled" = "Operation canceled";
"open_kdk_dir" = "Open KDK Directory";
"open_kdk_dir" = "Open KDK directory";
"opened_kdk_dir" = "KDK directory opened";
"kdk_dir_exists" = "KDK directory exists";
"warning_kdk_dir_doesnt_exist" = "KDK directory doesn't exists";
"error_cant_gr_as" = "Cannot create AppleScript object";
"starting_rebuild" = "Starting kernel cache rebuild...";
"rebuild_successfully" = "Kernel cache rebuilt successfully";
"warning_kdk_dir_doesnt_exist" = "KDK directory does not exist";
"error_cant_gr_as" = "Unable to create AppleScript object";
"starting_rebuild" = "Starting to rebuild kernel cache...";
"rebuild_successfully" = "Kernel cache rebuild successful";
"rebuild_failed" = "Kernel cache rebuild failed";
"starting_snapshot" = "Starting system snapshot creation...";
"starting_snapshot" = "Starting to create system snapshot...";
"snapshot_successfully" = "System snapshot created successfully";
"snapshot_failed" = "System snapshot creation failed";
"snapshot_failed" = "System snapshot created failed";
"last_sealed_snapshot" = "Starting to restore last snapshot...";
"revert_successfully" = "Snapshot restored successfully";
"revert_failed" = "Snapshot restore failed";
"selected_kdk" = "KDK selected";
"cancel" = "Cancel";
"only_merge_kdk" = "Merge KDK Only";
"creat_snapshot" = "Create Snapshot";
"restore_snapshot" = "Restore Snapshot";
"only_merge_kdk" = "Merge only KDK";
"create_snapshot" = "Create snapshot";
"restore_snapshot" = "Restore snapshot";
"select_kdk" = "Select KDK";
"select_installed_kdk" = "Select installed KDK";
"not_selected" = "Not selected";
"refresh" = "Refresh";
"effective_kdk" = "Valid KDK selected";
"choose_bundle" = "Select Kext/Framework file";
"drag_here" = "Drag and drop Kext/Framework files here";
"drag_here" = "Drag and drop Kext/Framework file here";
"or" = "Or";
"click_to_choose" = "Click to select files...";
"rebuilding_cache" = "Rebuilding kernel cache.";
"creating_snapshot" = "Creating system snapshot.";
"restore_snapshot" = "Restoring snapshot.";
"click_to_choose" = "Click to choose file...";
"operation_success_title" = "Operation Successful";
"operation_success_restart_message" = "The operation completed successfully. We recommend restarting your computer immediately for the changes to take effect.";
"restart_now" = "Restart Now";
"restart_later" = "Restart Later";
"operation_canceled_title" = "Operation Cancelled";
"operation_canceled_message" = "The current operation was aborted. To ensure system integrity, we recommend restoring the snapshot and rebuilding the cache.";
"presets" = "Presets";
"select_preset_instruction" = "Select a preset to automatically configure installation options";
"author" = "Author";
"requires_kdk" = "Requires KDK";
"rebuilds_cache" = "Rebuild Cache";
"error_preset_files_dir_not_found" = "Error: Preset files directory not found";
"error_preset_requires_kdk" = "Error: This preset requires a KDK to be selected";
"warning_file_not_found" = "Warning: File not found";
"error_no_system_version_selected" = "Error: No system version selected";
"warning_version_not_found" = "Warning: No system version found";
"confirm_install_preset" = "Confirm Install Preset";
"install" = "Install";
1 change: 1 addition & 0 deletions SimpleLoader/Languages/es.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
"contributor1" = "laobamac - Desarrollador";
"contributor2" = "perez987 - Traducción parcial al inglés";
"contributor3" = "Anto65 - proporciona algunas traducciones al italiano";
"contributor4" = "lshbluesky - Traducción parcial al coreano";
"auto_detect" = "Detección automática";
"language_settings" = "Configuración de idioma";
"language" = "Idioma";
Expand Down
5 changes: 3 additions & 2 deletions SimpleLoader/Languages/it.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,9 @@
"close" = "Chiudere";
"rights_reserved" = "Tutti i diritti riservati";
"contributor1" = "laobamac - Sviluppatore";
"contributor2" = "perez987 - Traduzione parziale in inglese";
"contributor3" = "Anto65 - con traduzione parziale in italiano disponibile";
"contributor2" = "perez987 - Traduzione parziale in inglese i spagnolo";
"contributor3" = "Anto65 - Traduzione parziale in italiano";
"contributor4" = "lshbluesky - Traduzione parziale in coreano";
"auto_detect" = "Rilevamento automatico";
"language_settings" = "Configurazione della lingua";
"language" = "Lingua";
Expand Down
140 changes: 140 additions & 0 deletions SimpleLoader/Languages/ko.lproj/Localizable.strings
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
//
// Localizable.strings
// SimpleLoader
//
// Created by laobamac on 2025/7/28.
//

/*
Localizable.strings (Korean)
SimpleLoader
*/

"app_title" = "SimpleLoader 시스템 확장 설치 프로그램";
"app_subtitle" = "KDK를 자동으로 병합하고, /System/Library/Extensions 경로에 Kext/Bundle 파일을 설치합니다.";
"installation_options" = "설치 옵션";
"show_advanced" = "고급 설정 표시";
"hide_advanced" = "고급 설정 숨기기";
"force_overwrite" = "기존 파일을 강제로 덮어쓰기";
"backup_existing" = "기존 Kext/Framework 백업";
"advanced_options" = "고급 옵션";
"install_to_le" = "/Library/Extensions 경로에 설치";
"install_to_private" = "/System/Library/PrivateFrameworks 경로에 프레임워크 설치 허용";
"private_warning" = "경고: PrivateFrameworks에 설치할 경우 시스템 오류가 발생할 수 있습니다.";
"full_kdk_merge" = "(커널을 포함하여) 완전한 KDK 병합";
"kdk_warning" = "권장하지 않음: 완전한 KDK를 병합하면 추가적인 공간을 차지하고 보안 위험을 초래할 수 있습니다.";
"status" = "상태";
"ready" = "준비";
"installing_kext" = "/System/Library/Extensions 경로에 Kext 설치";
"merging_kdk" = "KDK 파일 병합";
"starting_merge_and_install" = "KDK 병합 및 Kext 설치 시작...";
"starting_install_kext" = "Kext 설치 시작...";
"select_kext" = "Kext/Framework 파일 선택";
"drop_files" = "Kext/Framework 파일을 여기에 드래그 앤 드롭하십시오.";
"select_files" = "클릭하여 파일 선택...";
"operation_log" = "작업 로드";
"waiting" = "작업을 위해 대기 중...";
"open_kdk" = "KDK 디렉터리 열기";
"merge_kdk" = "KDK만 병합";
"start_install" = "설치 시작";
"cancel" = "취소";
"about" = "이에 관하여";
"rebuild_cache" = "캐시 재생성";
"create_snapshot" = "스냅샷 생성";
"restore_snapshot" = "스냅샷 복원";
"version" = "버전";
"author" = "저자";
"copyright" = "저작권";
"contributors" = "기여자";
"visit_github" = "GitHub 저장소 방문";
"close" = "닫기";
"rights_reserved" = "모든 권리 보유";
"contributor1" = "laobamac - 개발자";
"contributor2" = "perez987 - 일부 스페인어 및 영어 번역";
"contributor3" = "Anto65 - 일부 이탈리아어 번역";
"contributor4" = "lshbluesky - 일부 한국어 번역";
"auto_detect" = "자동으로 감지";
"language_settings" = "언어 설정";
"language" = "언어";
"change_language" = "언어 변경";
"opLogs" = "작업 로그";
"installing" = "설치 중...";
"merging" = "KDK 병합 중...";
"found" = "발견됨";
"warning_no_kdk" = "경고: KDK를 찾을 수 없습니다. KDK를 먼저 설치해 주시기 바랍니다.";
"warning" = "경고";
"error" = "오류";
"none_out" = "출력 없음";
"unkn_error" = "알 수 없는 오류";
"error_cant_read_kdk_dir" = "오류: KDK 디렉터리를 읽을 수 없습니다.";
"error_not_selected_kdk" = "오류: KDK를 선택하지 않았습니다.";
"error_merged_kdk_failed" = "오류: KDK를 병합하는 도중에 오류가 발생하였습니다.";
"error_not_selected_bundle" = "오류: Kext 파일을 선택하지 않았습니다.";
"error_installed_failed" = "오류: 설치하는 도중에 오류가 발생하였습니다.";
"not_selected_kdk" = "KDK를 선택하지 않았습니다.";
"starting_merging" = "KDK 병합을 시작합니다.";
"locating_root_vol" = "루트 볼륨을 탐색하는 중...";
"starting_merging_to_root_vol" = "루트 볼륨에 KDK 병합 시작";
"slow_step" = "이 작업은 시간이 다소 걸리므로, 강제로 종료하지 마십시오!";
"merged_completed_umounted" = "병합이 완료되었으며, 루트 볼륨이 마운트 해제되었습니다.";
"merged_successfully" = "성공적으로 병합되었습니다.";
"merged_failed" = "병합하는 도중에 오류가 발생하였습니다.";
"kdk_merged_successfully" = "KDK가 성공적으로 병합되었습니다.";
"whether_select_kdk" = "KDK 선택 여부";
"info_not_selected_kdk" = "알림: KDK를 선택하지 않았습니다.";
"options" = "옵션";
"force" = "강제로 덮어쓰기";
"backup" = "백업";
"rebuild" = "캐시 재생성";
"about" = "이에 관하여";
"install_completed" = "설치가 완료되었습니다.";
"op_successfully" = "작업이 완료되었습니다.";
"op_failed" = "작업하는 도중에 오류가 발생하였습니다.";
"kext_has_been_installed" = "지정된 커널 확장이 설치되었습니다.";
"op_canceled" = "작업이 취소되었습니다.";
"open_kdk_dir" = "KDK 디렉터리 열기";
"opened_kdk_dir" = "KDK 디렉터리를 열었습니다.";
"kdk_dir_exists" = "KDK 디렉터리가 존재합니다.";
"warning_kdk_dir_doesnt_exist" = "KDK 디렉터리가 존재하지 않습니다.";
"error_cant_gr_as" = "AppleScript 개체를 생성할 수 없습니다.";
"starting_rebuild" = "커널 캐시를 재생성하는 중...";
"rebuild_successfully" = "커널 캐시가 성공적으로 재구성되었습니다.";
"rebuild_failed" = "커널 캐시를 재생성하는 도중에 오류가 발생하였습니다.";
"starting_snapshot" = "시스템 스냅샷을 생성하는 중...";
"snapshot_successfully" = "시스템 스냅샷이 성공적으로 생성되었습니다.";
"snapshot_failed" = "시스템 스냅샷을 생성하는 도중에 오류가 발생하였습니다.";
"last_sealed_snapshot" = "마지막 스냅샷을 복원하는 중...";
"revert_successfully" = "스냅샷이 성공적으로 복원되었습니다.";
"revert_failed" = "스냅샷을 복원하는 도중에 오류가 발생하였습니다.";
"selected_kdk" = "KDK가 선택되었습니다.";
"cancel" = "취소";
"only_merge_kdk" = "KDK만 병합";
"creat_snapshot" = "스냅샷 생성";
"restore_snapshot" = "스냅샷 복원";
"select_kdk" = "KDK 선택";
"select_installed_kdk" = "설치된 KDK 선택";
"not_selected" = "선택되지 않음";
"refresh" = "새로 고침";
"effective_kdk" = "올바른 KDK가 선택되었습니다.";
"choose_bundle" = "Kext/Framework 파일 선택";
"drag_here" = "Kext/Framework 파일을 여기에 드래그 앤 드롭하십시오.";
"or" = "또는";
"click_to_choose" = "클릭하여 파일 선택...";
"operation_success_title" = "작업 성공";
"operation_success_restart_message" = "작업이 성공적으로 완료되었습니다. 변경 사항을 적용하려면 컴퓨터를 재시동해야 합니다.";
"restart_now" = "지금 재시동하기";
"restart_later" = "나중에 재시동하기";
"operation_canceled_title" = "작업 취소";
"operation_canceled_message" = "작업이 취소되었습니다. 시스템의 안정성을 위해 스냅샷을 복원한 후 캐시를 재생성하는 것을 권장합니다.";
"presets" = "프리셋 패치";
"select_preset_instruction" = "프리셋 패치를 선택하여 설치 옵션을 자동으로 구성하십시오.";
"author" = "저자";
"requires_kdk" = "KDK 필요";
"rebuilds_cache" = "캐시 재생성";
"error_preset_files_dir_not_found" = "오류: 프리셋 파일의 디렉터리를 찾을 수 없습니다.";
"error_preset_requires_kdk" = "오류: 이 프리셋은 KDK를 먼저 선택해야 합니다.";
"warning_file_not_found" = "경고: 파일을 찾을 수 없습니다.";
"error_no_system_version_selected" = "오류: 시스템 버전이 선택되지 않았습니다.";
"warning_version_not_found" = "경고: 시스템 버전을 찾을 수 없습니다.";
"confirm_install_preset" = "프리셋 설치 확인";
"install" = "설치";
5 changes: 3 additions & 2 deletions SimpleLoader/Languages/zh-Hans.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,9 @@
"close" = "关闭";
"rights_reserved" = "保留所有权利";
"contributor1" = "laobamac - 开发者";
"contributor2" = "perez987 - 提供部分英语翻译";
"contributor3" = "Anto65 - 提供部分意大利语翻译";
"contributor2" = "perez987 - 部分西班牙语和英语翻译";
"contributor3" = "Anto65 - 部分意大利语翻译";
"contributor4" = "lshbluesky - 部分韩语翻译";
"auto_detect" = "自动检测";
"language_settings" = "语言设置";
"language" = "语言";
Expand Down
5 changes: 3 additions & 2 deletions SimpleLoader/Languages/zh-Hant.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,9 @@
"close" = "關閉";
"rights_reserved" = "保留所有權利";
"contributor1" = "laobamac - 開發者";
"contributor2" = "perez987 - 提供部分英文翻譯";
"contributor3" = "Anto65 - 提供部分意大利語翻譯";
"contributor2" = "perez987 - 部分西班牙文和英文翻譯";
"contributor3" = "Anto65 - 部分義大利文翻譯";
"contributor4" = "lshbluesky - 部分韓文翻譯";
"auto_detect" = "自動偵測";
"language_settings" = "語言設定";
"language" = "語言";
Expand Down
Loading