Skip to content
Merged
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
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
### Removed
- Full Disk Access detection, guide alert, and settings UI
- `PermissionChecker.hasFullDiskAccess()` and related FDA methods
- Language picker in Settings (language is now fully auto-detected)
- Custom language detection logic (`AppLanguage` enum, `currentLanguage`, `localizedBundle`)

## [2.0.4] - 2026-07-05

Expand Down
8 changes: 8 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,14 @@ When working with files outside app sandbox:
- Category parameter should describe the subsystem
- Example: `@AppLog(category: "AppState") private var logger`

### Localization
- Default language is **English** (also the fallback)
- **Simplified Chinese** (`zh-Hans`) is the primary localization target
- **Japanese** (`ja`) is supported β€” activated when system language is Japanese
- All string keys in code use English, localized via `Localizable.xcstrings` (xcstrings format)
- Language detection is fully automatic via `Bundle.main.localizedString` β€” no manual language picker
- To add a new language: add entries to `Localizable.xcstrings` and register in Xcode project

### Data Persistence
- SwiftData models use `@Model` macro
- Shared container via app group: `.group` `UserDefaults`
Expand Down
16 changes: 8 additions & 8 deletions RClick.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -559,7 +559,7 @@
CODE_SIGN_ENTITLEMENTS = RClick/RClickDebug.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 20260705001;
CURRENT_PROJECT_VERSION = 20260712001;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 4L3563XCBN;
ENABLE_APP_SANDBOX = YES;
Expand All @@ -575,7 +575,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 15.6;
MARKETING_VERSION = 2.0.4;
MARKETING_VERSION = 2.1.0;
PRODUCT_BUNDLE_IDENTIFIER = cn.wflixu.RClick;
PRODUCT_NAME = "$(TARGET_NAME)";
REGISTER_APP_GROUPS = YES;
Expand All @@ -597,7 +597,7 @@
CODE_SIGN_ENTITLEMENTS = RClick/RClick.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 20260705001;
CURRENT_PROJECT_VERSION = 20260712001;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 4L3563XCBN;
ENABLE_APP_SANDBOX = YES;
Expand All @@ -613,7 +613,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 15.6;
MARKETING_VERSION = 2.0.4;
MARKETING_VERSION = 2.1.0;
PRODUCT_BUNDLE_IDENTIFIER = cn.wflixu.RClick;
PRODUCT_NAME = "$(TARGET_NAME)";
REGISTER_APP_GROUPS = YES;
Expand Down Expand Up @@ -676,7 +676,7 @@
CODE_SIGN_ENTITLEMENTS = FinderSyncExt/FinderSyncExt.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 20260705001;
CURRENT_PROJECT_VERSION = 20260712001;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 4L3563XCBN;
ENABLE_APP_SANDBOX = YES;
Expand All @@ -692,7 +692,7 @@
"@executable_path/../../../../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 15.6;
MARKETING_VERSION = 2.0.4;
MARKETING_VERSION = 2.1.0;
PRODUCT_BUNDLE_IDENTIFIER = cn.wflixu.RClick.FinderSyncExt;
PRODUCT_NAME = "$(TARGET_NAME)";
REGISTER_APP_GROUPS = YES;
Expand All @@ -711,7 +711,7 @@
CODE_SIGN_ENTITLEMENTS = FinderSyncExt/FinderSyncExt.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 20260705001;
CURRENT_PROJECT_VERSION = 20260712001;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 4L3563XCBN;
ENABLE_APP_SANDBOX = YES;
Expand All @@ -727,7 +727,7 @@
"@executable_path/../../../../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 15.6;
MARKETING_VERSION = 2.0.4;
MARKETING_VERSION = 2.1.0;
PRODUCT_BUNDLE_IDENTIFIER = cn.wflixu.RClick.FinderSyncExt;
PRODUCT_NAME = "$(TARGET_NAME)";
REGISTER_APP_GROUPS = YES;
Expand Down
21 changes: 16 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
[![License](https://img.shields.io/badge/License-GPLv3-blue.svg)](LICENSE)
[![GitHub release](https://img.shields.io/github/v/release/wflixu/RClick)](https://github.com/wflixu/RClick/releases)
[![GitHub downloads](https://img.shields.io/github/downloads/wflixu/RClick/total)](https://github.com/wflixu/RClick/releases)
[⭐ Star History](https://star-history.com/#wflixu/RClick&Date)

Enhance your macOS Finder context menu with custom actions. Built with Swift 6.2 and SwiftUI for macOS 15.6+. Full dark mode support with adaptive icons.

Expand Down Expand Up @@ -91,6 +90,22 @@ xcodebuild -project RClick.xcodeproj -scheme RClick -configuration Release
- **FinderSync** framework for Finder extension
- **DistributedNotificationCenter** for IPC

### 🌐 Localization

RClick supports three languages with the following priority:

| Language | Code | Notes |
|----------|------|-------|
| **English** | `en` | Default/base language |
| **Simplified Chinese** | `zh-Hans` | Primary localization target |
| **Japanese** | `ja` | Activated when system language is Japanese |

**Principles:**
- Default language is English (also the fallback for unsupported system languages)
- All string keys are in English in the code, localized via `Localizable.xcstrings`
- System language is auto-detected β€” no manual language picker in the app
- To add a new language, add an entry to `Localizable.xcstrings` and register it in the Xcode project

## πŸ‘₯ Contributors

Thanks to all the people who have contributed to RClick!
Expand All @@ -99,10 +114,6 @@ Thanks to all the people who have contributed to RClick!
<img src="https://contrib.rocks/image?repo=wflixu/RClick" />
</a>

## πŸ“ˆ Star History

[![Star History Chart](https://api.star-history.com/svg?repos=wflixu/RClick&type=Date)](https://star-history.com/#wflixu/RClick&Date)

## Similar Projects

- [SzContext](https://github.com/RoadToDream/SzContext)
Expand Down
Loading