From 22ae65cd57cdd8a9f26852f8f2a0e20f5754a5d7 Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Wed, 22 Jul 2026 17:47:56 -0700 Subject: [PATCH] fix(macos): localize app data purpose string --- config/electron-builder.config.cjs | 5 +++++ config/scripts/electron-builder-config.test.mjs | 17 +++++++++++++++++ .../es.lproj/InfoPlist.strings | 1 + .../es_419.lproj/InfoPlist.strings | 1 + .../ja.lproj/InfoPlist.strings | 1 + .../ko.lproj/InfoPlist.strings | 1 + .../zh_CN.lproj/InfoPlist.strings | 1 + .../zh_TW.lproj/InfoPlist.strings | 1 + 8 files changed, 28 insertions(+) create mode 100644 resources/darwin/info-plist-localizations/es.lproj/InfoPlist.strings create mode 100644 resources/darwin/info-plist-localizations/es_419.lproj/InfoPlist.strings create mode 100644 resources/darwin/info-plist-localizations/ja.lproj/InfoPlist.strings create mode 100644 resources/darwin/info-plist-localizations/ko.lproj/InfoPlist.strings create mode 100644 resources/darwin/info-plist-localizations/zh_CN.lproj/InfoPlist.strings create mode 100644 resources/darwin/info-plist-localizations/zh_TW.lproj/InfoPlist.strings diff --git a/config/electron-builder.config.cjs b/config/electron-builder.config.cjs index f8549852eea..c21f828c911 100644 --- a/config/electron-builder.config.cjs +++ b/config/electron-builder.config.cjs @@ -44,6 +44,10 @@ const linuxSpeechNativeResource = { from: 'node_modules/sherpa-onnx-linux-${arch}', to: 'node_modules/sherpa-onnx-linux-${arch}' } +const macInfoPlistLocalizationResource = { + from: 'resources/darwin/info-plist-localizations', + to: '.' +} const winSpeechNativeResource = { from: 'node_modules/sherpa-onnx-win-x64', to: 'node_modules/sherpa-onnx-win-x64' @@ -261,6 +265,7 @@ module.exports = { ...commonExtraResources, ...createPackagedRuntimeNodeModuleResources('darwin'), macSpeechNativeResource, + macInfoPlistLocalizationResource, { from: 'resources/darwin/bin/orca', to: 'bin/orca' diff --git a/config/scripts/electron-builder-config.test.mjs b/config/scripts/electron-builder-config.test.mjs index a5d4f24a3c3..8110e91e2ff 100644 --- a/config/scripts/electron-builder-config.test.mjs +++ b/config/scripts/electron-builder-config.test.mjs @@ -99,6 +99,23 @@ describe('electron-builder config', () => { ) }) + it('ships localized app-data purpose strings for supported macOS locales', async () => { + expect(electronBuilderConfig.mac.extraResources).toContainEqual({ + from: 'resources/darwin/info-plist-localizations', + to: '.' + }) + for (const locale of ['es', 'es_419', 'ja', 'ko', 'zh_CN', 'zh_TW']) { + const contents = await readFile( + new URL( + `../../resources/darwin/info-plist-localizations/${locale}.lproj/InfoPlist.strings`, + import.meta.url + ), + 'utf8' + ) + expect(contents).toMatch(/^"NSAppDataUsageDescription" = ".+";\n$/) + } + }) + it('unpacks the compiled CommonJS boundary with CLI runtime files', () => { expect(electronBuilderConfig.asarUnpack).toEqual( expect.arrayContaining(['out/package.json', 'out/cli/**', 'out/shared/**']) diff --git a/resources/darwin/info-plist-localizations/es.lproj/InfoPlist.strings b/resources/darwin/info-plist-localizations/es.lproj/InfoPlist.strings new file mode 100644 index 00000000000..4ef7ae89496 --- /dev/null +++ b/resources/darwin/info-plist-localizations/es.lproj/InfoPlist.strings @@ -0,0 +1 @@ +"NSAppDataUsageDescription" = "Orca accede a los datos de otras apps para las herramientas de terminal, la importación de cookies del navegador y los archivos que elijas abrir."; diff --git a/resources/darwin/info-plist-localizations/es_419.lproj/InfoPlist.strings b/resources/darwin/info-plist-localizations/es_419.lproj/InfoPlist.strings new file mode 100644 index 00000000000..4ef7ae89496 --- /dev/null +++ b/resources/darwin/info-plist-localizations/es_419.lproj/InfoPlist.strings @@ -0,0 +1 @@ +"NSAppDataUsageDescription" = "Orca accede a los datos de otras apps para las herramientas de terminal, la importación de cookies del navegador y los archivos que elijas abrir."; diff --git a/resources/darwin/info-plist-localizations/ja.lproj/InfoPlist.strings b/resources/darwin/info-plist-localizations/ja.lproj/InfoPlist.strings new file mode 100644 index 00000000000..e2e1877168b --- /dev/null +++ b/resources/darwin/info-plist-localizations/ja.lproj/InfoPlist.strings @@ -0,0 +1 @@ +"NSAppDataUsageDescription" = "Orca は、ターミナルツールの使用、ブラウザ Cookie のインポート、または選択したファイルを開くために、ほかのアプリのデータにアクセスします。"; diff --git a/resources/darwin/info-plist-localizations/ko.lproj/InfoPlist.strings b/resources/darwin/info-plist-localizations/ko.lproj/InfoPlist.strings new file mode 100644 index 00000000000..e1484531fca --- /dev/null +++ b/resources/darwin/info-plist-localizations/ko.lproj/InfoPlist.strings @@ -0,0 +1 @@ +"NSAppDataUsageDescription" = "Orca는 터미널 도구 사용, 브라우저 쿠키 가져오기 또는 선택한 파일 열기를 위해 다른 앱의 데이터에 접근합니다."; diff --git a/resources/darwin/info-plist-localizations/zh_CN.lproj/InfoPlist.strings b/resources/darwin/info-plist-localizations/zh_CN.lproj/InfoPlist.strings new file mode 100644 index 00000000000..8a77c707801 --- /dev/null +++ b/resources/darwin/info-plist-localizations/zh_CN.lproj/InfoPlist.strings @@ -0,0 +1 @@ +"NSAppDataUsageDescription" = "Orca 会访问其他 App 的数据,用于终端工具、浏览器 Cookie 导入以及您选择打开的文件。"; diff --git a/resources/darwin/info-plist-localizations/zh_TW.lproj/InfoPlist.strings b/resources/darwin/info-plist-localizations/zh_TW.lproj/InfoPlist.strings new file mode 100644 index 00000000000..5707e181eea --- /dev/null +++ b/resources/darwin/info-plist-localizations/zh_TW.lproj/InfoPlist.strings @@ -0,0 +1 @@ +"NSAppDataUsageDescription" = "Orca 會存取其他 App 的資料,用於終端機工具、瀏覽器 Cookie 匯入,以及您選擇開啟的檔案。";