From 3b57b1315c478129d03610bbc6e461619aae7c21 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Wed, 03 Jun 2026 21:54:06 +0800
Subject: [PATCH] Localize macOS app display name

---
 privatevoice.src/scripts/build-appstore-macos.sh              |    2 ++
 privatevoice.src/scripts/build-release-macos.sh               |    2 ++
 privatevoice.src/scripts/build-appstore-developerid-macos.sh  |    2 ++
 privatevoice.src/build/darwin/zh-Hans.lproj/InfoPlist.strings |    3 +++
 privatevoice.src/scripts/build-local-macos.sh                 |    2 ++
 CHANGELOG.md                                                  |   14 ++++++++++++++
 privatevoice.src/build/darwin/Info.plist                      |    6 ++++--
 privatevoice.src/build/windows/wails.exe.manifest             |    2 +-
 privatevoice.src/build/darwin/en.lproj/InfoPlist.strings      |    3 +++
 privatevoice.src/frontend/package.json                        |    2 +-
 privatevoice.src/app.go                                       |    4 ++--
 privatevoice.src/build/config.yml                             |    2 +-
 privatevoice.src/frontend/package-lock.json                   |    4 ++--
 13 files changed, 39 insertions(+), 9 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9ba2132..b6a8111 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,19 @@
 # Changelog
 
+## v2.1.26 (2026-06-03)
+
+### 修复
+
+- **macOS App 名称按系统语言本地化**:中文系统显示 `私语输入法`,英文系统显示 `PrivateVoice Dictation`。
+- **麦克风权限提示本地化**:中文系统下麦克风授权文案改为中文。
+- **macOS 构建脚本复制本地化资源**:本地、正式、App Store POC 和 Developer ID sandbox 构建都会把 `*.lproj/InfoPlist.strings` 打入 `.app/Contents/Resources`。
+
+### 构建
+
+- build: `20260603.2151`
+
+---
+
 ## v2.1.25 (2026-06-03)
 
 ### QA 候选包
diff --git a/privatevoice.src/app.go b/privatevoice.src/app.go
index 6c41837..daa6fba 100755
--- a/privatevoice.src/app.go
+++ b/privatevoice.src/app.go
@@ -27,8 +27,8 @@
 )
 
 const (
-	appVersion        = "2.1.25"
-	appBuild          = "20260603.2102"
+	appVersion        = "2.1.26"
+	appBuild          = "20260603.2151"
 	appDisplayVersion = appVersion + " (build " + appBuild + ")"
 	appName           = "PrivateVoice Dictation"
 
diff --git a/privatevoice.src/build/config.yml b/privatevoice.src/build/config.yml
index 54e2db9..a791b0c 100755
--- a/privatevoice.src/build/config.yml
+++ b/privatevoice.src/build/config.yml
@@ -7,7 +7,7 @@
   description: "Private offline voice input tool"
   copyright: "(c) 2026, PrivateVoice"
   comments: "Private. Offline."
-  version: "2.1.25"
+  version: "2.1.26"
 
 dev_mode:
   root_path: .
diff --git a/privatevoice.src/build/darwin/Info.plist b/privatevoice.src/build/darwin/Info.plist
index 7941cd7..4910b5d 100755
--- a/privatevoice.src/build/darwin/Info.plist
+++ b/privatevoice.src/build/darwin/Info.plist
@@ -8,6 +8,8 @@
     <string>icon.icns</string>
     <key>CFBundleIdentifier</key>
     <string>com.privatevoice.input</string>
+    <key>CFBundleDevelopmentRegion</key>
+    <string>en</string>
     <key>CFBundleName</key>
     <string>PrivateVoice Dictation</string>
     <key>CFBundleDisplayName</key>
@@ -15,9 +17,9 @@
     <key>CFBundlePackageType</key>
     <string>APPL</string>
     <key>CFBundleShortVersionString</key>
-    <string>2.1.25</string>
+    <string>2.1.26</string>
     <key>CFBundleVersion</key>
-    <string>20260603.2102</string>
+    <string>20260603.2151</string>
     <key>LSMinimumSystemVersion</key>
     <string>11.0</string>
     <key>NSMicrophoneUsageDescription</key>
diff --git a/privatevoice.src/build/darwin/en.lproj/InfoPlist.strings b/privatevoice.src/build/darwin/en.lproj/InfoPlist.strings
new file mode 100644
index 0000000..21a4d70
--- /dev/null
+++ b/privatevoice.src/build/darwin/en.lproj/InfoPlist.strings
@@ -0,0 +1,3 @@
+"CFBundleDisplayName" = "PrivateVoice Dictation";
+"CFBundleName" = "PrivateVoice Dictation";
+"NSMicrophoneUsageDescription" = "PrivateVoice Dictation needs microphone access for voice-to-text input.";
diff --git a/privatevoice.src/build/darwin/zh-Hans.lproj/InfoPlist.strings b/privatevoice.src/build/darwin/zh-Hans.lproj/InfoPlist.strings
new file mode 100644
index 0000000..c50d880
--- /dev/null
+++ b/privatevoice.src/build/darwin/zh-Hans.lproj/InfoPlist.strings
@@ -0,0 +1,3 @@
+"CFBundleDisplayName" = "私语输入法";
+"CFBundleName" = "私语输入法";
+"NSMicrophoneUsageDescription" = "私语输入法需要访问麦克风,用于语音转文字输入。";
diff --git a/privatevoice.src/build/windows/wails.exe.manifest b/privatevoice.src/build/windows/wails.exe.manifest
index d6984e1..22eacb8 100755
--- a/privatevoice.src/build/windows/wails.exe.manifest
+++ b/privatevoice.src/build/windows/wails.exe.manifest
@@ -3,7 +3,7 @@
   <assemblyIdentity
     type="win32"
     name="PrivateVoice.Dictation"
-    version="2.1.25.0"
+    version="2.1.26.0"
     processorArchitecture="*"/>
   <dependency>
     <dependentAssembly>
diff --git a/privatevoice.src/frontend/package-lock.json b/privatevoice.src/frontend/package-lock.json
index 09617da..8fd1934 100755
--- a/privatevoice.src/frontend/package-lock.json
+++ b/privatevoice.src/frontend/package-lock.json
@@ -1,12 +1,12 @@
 {
   "name": "privatevoice-dictation-frontend",
-  "version": "2.1.25",
+  "version": "2.1.26",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "privatevoice-dictation-frontend",
-      "version": "2.1.25",
+      "version": "2.1.26",
       "dependencies": {
         "@wailsio/runtime": "latest"
       },
diff --git a/privatevoice.src/frontend/package.json b/privatevoice.src/frontend/package.json
index 08cd5f3..d2c93d0 100755
--- a/privatevoice.src/frontend/package.json
+++ b/privatevoice.src/frontend/package.json
@@ -1,7 +1,7 @@
 {
   "name": "privatevoice-dictation-frontend",
   "private": true,
-  "version": "2.1.25",
+  "version": "2.1.26",
   "type": "module",
   "scripts": {
     "dev": "vite dev",
diff --git a/privatevoice.src/scripts/build-appstore-developerid-macos.sh b/privatevoice.src/scripts/build-appstore-developerid-macos.sh
index b6615e2..7cc2d47 100755
--- a/privatevoice.src/scripts/build-appstore-developerid-macos.sh
+++ b/privatevoice.src/scripts/build-appstore-developerid-macos.sh
@@ -150,6 +150,8 @@
     "$APP_BUNDLE/Contents/Info.plist"
   cp "$BUILD_DIR/$APP_NAME" "$APP_BUNDLE/Contents/MacOS/$APP_NAME"
   cp "$PROJECT_DIR/build/darwin/icon.icns" "$APP_BUNDLE/Contents/Resources/icon.icns"
+  find "$PROJECT_DIR/build/darwin" -maxdepth 1 -type d -name "*.lproj" \
+    -exec cp -R {} "$APP_BUNDLE/Contents/Resources/" \;
   cp "$SHERPA_LIB_DIR/libsherpa-onnx-c-api.dylib" "$APP_BUNDLE/Contents/Frameworks/"
   cp "$ONNXRUNTIME_DYLIB" "$APP_BUNDLE/Contents/Frameworks/"
 
diff --git a/privatevoice.src/scripts/build-appstore-macos.sh b/privatevoice.src/scripts/build-appstore-macos.sh
index 3e2bc6d..b635ba2 100755
--- a/privatevoice.src/scripts/build-appstore-macos.sh
+++ b/privatevoice.src/scripts/build-appstore-macos.sh
@@ -123,6 +123,8 @@
   "$APP_BUNDLE/Contents/Info.plist"
 cp "$BUILD_DIR/$APP_NAME" "$APP_BUNDLE/Contents/MacOS/$APP_NAME"
 cp "$PROJECT_DIR/build/darwin/icon.icns" "$APP_BUNDLE/Contents/Resources/icon.icns"
+find "$PROJECT_DIR/build/darwin" -maxdepth 1 -type d -name "*.lproj" \
+  -exec cp -R {} "$APP_BUNDLE/Contents/Resources/" \;
 cp "$SHERPA_LIB_DIR/libsherpa-onnx-c-api.dylib" "$APP_BUNDLE/Contents/Frameworks/"
 cp "$ONNXRUNTIME_DYLIB" "$APP_BUNDLE/Contents/Frameworks/"
 
diff --git a/privatevoice.src/scripts/build-local-macos.sh b/privatevoice.src/scripts/build-local-macos.sh
index 500ded4..95b1e1b 100755
--- a/privatevoice.src/scripts/build-local-macos.sh
+++ b/privatevoice.src/scripts/build-local-macos.sh
@@ -214,6 +214,8 @@
 cp "$INFO_PLIST" "$APP_BUNDLE/Contents/Info.plist"
 cp "$BUILD_DIR/$APP_NAME" "$APP_BUNDLE/Contents/MacOS/$APP_NAME"
 cp "$PROJECT_DIR/build/darwin/icon.icns" "$APP_BUNDLE/Contents/Resources/icon.icns"
+find "$PROJECT_DIR/build/darwin" -maxdepth 1 -type d -name "*.lproj" \
+  -exec cp -R {} "$APP_BUNDLE/Contents/Resources/" \;
 cp "$SHERPA_LIB_DIR/libsherpa-onnx-c-api.dylib" "$APP_BUNDLE/Contents/Frameworks/"
 cp "$ONNXRUNTIME_DYLIB" "$APP_BUNDLE/Contents/Frameworks/"
 
diff --git a/privatevoice.src/scripts/build-release-macos.sh b/privatevoice.src/scripts/build-release-macos.sh
index 278100f..6968535 100755
--- a/privatevoice.src/scripts/build-release-macos.sh
+++ b/privatevoice.src/scripts/build-release-macos.sh
@@ -116,6 +116,8 @@
 cp "$BUILD_DIR/${APP_NAME}"              "$APP_BUNDLE/Contents/MacOS/${APP_NAME}"
 cp "$PROJECT_DIR/build/darwin/icon.icns" \
                                          "$APP_BUNDLE/Contents/Resources/icon.icns"
+find "$PROJECT_DIR/build/darwin" -maxdepth 1 -type d -name "*.lproj" \
+  -exec cp -R {} "$APP_BUNDLE/Contents/Resources/" \;
 
 # Copy dylibs
 cp "$SHERPA_LIB_DIR/libsherpa-onnx-c-api.dylib"   "$APP_BUNDLE/Contents/Frameworks/"

--
Gitblit v1.9.3