Prechádzať zdrojové kódy

Merge branch 'master' into develop

# Conflicts:
#	src/common/acknowledgements.ts
oldj 1 rok pred
rodič
commit
4f101773df

+ 4 - 3
alfred/info.plist

@@ -67,7 +67,7 @@
 				<key>argumenttrimmode</key>
 				<integer>0</integer>
 				<key>argumenttype</key>
-				<integer>2</integer>
+				<integer>1</integer>
 				<key>escaping</key>
 				<integer>68</integer>
 				<key>keyword</key>
@@ -105,6 +105,7 @@ function run(argv) {
   let result
   try {
     result = JSON.parse(requestString)
+    result.data = result.data.filter((item)=&gt;item.title.includes("{query}"))
   } catch (e) {
     console.log(e)
     return JSON.stringify({
@@ -132,7 +133,7 @@ function run(argv) {
   })
 }</string>
 				<key>scriptargtype</key>
-				<integer>1</integer>
+				<integer>0</integer>
 				<key>scriptfile</key>
 				<string></string>
 				<key>subtext</key>
@@ -142,7 +143,7 @@ function run(argv) {
 				<key>type</key>
 				<integer>7</integer>
 				<key>withspace</key>
-				<false/>
+				<true/>
 			</dict>
 			<key>type</key>
 			<string>alfred.workflow.input.scriptfilter</string>

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1664 - 2117
package-lock.json


+ 3 - 3
package.json

@@ -20,7 +20,7 @@
     "publish": "electron-builder --mac --win --linux -p always"
   },
   "dependencies": {
-    "axios": "1.3.5",
+    "axios": "1.6.0",
     "compare-versions": "5.0.3",
     "dayjs": "1.11.7",
     "electron-updater": "5.3.0",
@@ -58,7 +58,7 @@
     "concurrently": "8.0.1",
     "cross-env": "7.0.3",
     "dotenv": "16.0.3",
-    "electron": "24.1.2",
+    "electron": "24.8.5",
     "electron-builder": "23.6.0",
     "electron-notarize": "1.2.1",
     "espower-typescript": "10.0.1",
@@ -79,7 +79,7 @@
     "smooth-scroll-into-view-if-needed": "2.0.0",
     "ts-node": "10.9.1",
     "typescript": "5.0.4",
-    "vite": "4.2.1",
+    "vite": "4.5.2",
     "vite-plugin-static-copy": "0.13.1",
     "vite-plugin-svgr": "2.4.0",
     "vite-tsconfig-paths": "4.2.0"

+ 1 - 1
scripts/make.js

@@ -14,7 +14,7 @@ const path = require('path')
 const root_dir = path.normalize(path.join(__dirname, '..'))
 const dist_dir = path.normalize(path.join(__dirname, '..', 'dist'))
 
-const electronLanguages = ['en', 'fr', 'zh_CN', 'de', 'ja']
+const electronLanguages = ['en', 'fr', 'zh_CN', 'de', 'ja', 'tr']
 
 const TARGET_PLATFORMS_configs = {
   mac: {

+ 3 - 0
src/common/acknowledgements.ts

@@ -36,4 +36,7 @@ export default [
   { name: 'Xav83', link: 'https://github.com/Xav83' },
   { name: 'Mango Jelly Pudding', link: 'https://github.com/EvanHsieh0415' },
   { name: 'Alex Zappa', link: 'https://github.com/reatlat' },
+  { name: 'shenshen', link: 'https://github.com/imshenshen' },
+  { name: 'ChunRen Zhang', link: 'https://github.com/rayatn1011' },
+  { name: 'Barış Uzun', link: 'https://github.com/barisuzunn' },
 ]

+ 5 - 0
src/common/i18n/index.ts

@@ -6,9 +6,11 @@
 
 import en from './languages/en'
 import zh from './languages/zh'
+import zh_hant from './languages/zh-hant'
 import fr from './languages/fr'
 import de from './languages/de'
 import ja from './languages/ja'
+import tr from './languages/tr'
 import { LanguageDict, LanguageKey } from '@common/types'
 
 export const languages = {
@@ -16,9 +18,12 @@ export const languages = {
   zh,
   cn: zh,
   'zh-CN': zh,
+  zh_hant: zh_hant,
+  'zh-TW': zh_hant,
   fr,
   de,
   ja,
+  tr,
 }
 
 export type LocaleName = keyof typeof languages

+ 1 - 1
src/common/i18n/languages/en.ts

@@ -32,7 +32,7 @@ export default {
   commands: 'Commands',
   commands_help:
     'The following system commands will be executed when Hosts applied:',
-  commands_title: 'Command after a hosts be applied',
+  commands_title: 'Command after hosts are applied',
   comment_current_line: 'Comment current line',
   content: 'Content',
   copy: 'Copy',

+ 188 - 0
src/common/i18n/languages/tr.ts

@@ -0,0 +1,188 @@
+/**
+ * @author: baris
+ * @homepage: https://barisuzun.com.tr
+ */
+
+export default {
+  _app_name: 'SwitchHosts',
+  _key: 'tr',
+  _name: 'Türkçe',
+  about: 'Hakkında',
+  acknowledgement: 'Teşekkür',
+  advanced: 'Gelişmiş',
+  all: 'Tümü',
+  append: 'Ekle',
+  auto_refresh: 'Otomatik Yenile',
+  btn_cancel: 'İptal',
+  btn_ok: 'Tamam',
+  change: 'Değiştir',
+  check_update: 'Güncellemeleri Kontrol Et',
+  choice_mode: 'Seçim Modu',
+  choice_mode_default: 'Varsayılan',
+  choice_mode_desc: 'Sadece en üstteki öğe için geçerlidir, her klasör kendi seçim modunu ayarlayabilir.',
+  choice_mode_multiple: 'Çoklu',
+  choice_mode_single: 'Tekli',
+  choices: 'Seçenekler',
+  chosen: 'Seçildi',
+  clear_history: 'Geçmişi Temizle',
+  click_to_open: 'Açmak için tıkla',
+  close: 'Kapat',
+  colon: ': ',
+  commands: 'Komutlar',
+  commands_help: 'Hosts uygulandığında aşağıdaki sistem komutları çalıştırılacaktır:',
+  commands_title: 'Hosts uygulandıktan sonra komut',
+  comment_current_line: 'Mevcut satırı yorumla',
+  content: 'İçerik',
+  copy: 'Kopyala',
+  cut: 'Kes',
+  day: 'gün',
+  days: 'günler',
+  delete: 'Sil',
+  download: 'İndir',
+  edit: 'Düzenle',
+  export: 'Dışa Aktar',
+  export_done: 'Dışa aktarma tamamlandı.',
+  fail: 'Başarısız!',
+  feedback: 'Geri Bildirim',
+  file: 'Dosya',
+  find: 'Bul',
+  find_all: 'Hepsini Bul',
+  find_and_replace: 'Bul ve Değiştir',
+  find_history: 'Arama Geçmişi',
+  folder: 'Klasör',
+  front: 'Ön',
+  general: 'Genel',
+  group: 'Grup',
+  help: 'Yardım',
+  hide: 'Gizle',
+  hide_at_launch: 'Başlangıçta Gizle',
+  hide_dock_icon: 'Dock simgesini gizle',
+  hide_history: 'Geçmişi Gizle',
+  hide_others: 'Diğerlerini Gizle',
+  homepage: 'Anasayfa',
+  host: 'Host',
+  hosts_add: 'Yeni host ekle',
+  hosts_delete: 'Bu hostu sil',
+  hosts_delete_confirm: 'Mevcut hostu silmek istediğinizden emin misiniz?',
+  hosts_edit: 'Hostları düzenle',
+  hosts_title: 'Host Başlığı',
+  hosts_type: 'Host Türü',
+  hosts_updated: 'Host dosyası güncellendi.',
+  hour: 'saat',
+  hours: 'saatler',
+  http_api_on: 'HTTP API açık',
+  http_api_on_desc: '{0} portunda çalışır, Alfred gibi üçüncü parti yazılımlar tarafından hostları değiştirmek için kullanılabilir.',
+  http_api_only_local: 'HTTP API sadece 127.0.0.1’i dinler',
+  ignore_case: 'Büyük/Küçük Harf Duyarsız',
+  import: 'İçe Aktar',
+  import_done: 'İçe aktarma tamamlandı.',
+  import_fail: 'İçe aktarma başarısız!',
+  import_from_url: 'URL’den İçe Aktar',
+  is_latest_version_inform: 'Harika, en güncel sürümü kullanıyorsunuz!',
+  check_update_failed: 'Güncellemeleri kontrol etme başarısız!',
+  item_found: '{0} öğe bulundu.',
+  items: 'öğeler',
+  items_found: '{0} öğe bulundu.',
+  language: 'Dil',
+  last_refresh: 'Son yenileme: ',
+  latest_version_desc: 'En son sürüm: {0}',
+  line: 'satır',
+  lines: 'satırlar',
+  loading: 'Yükleniyor...',
+  local: 'Yerel',
+  match: 'Eşleşme',
+  migrate_confirm:
+    'SwitchHosts v4.0 yeni bir veri depolama formatı kullanıyor, eski verileri yeni formata taşımak ister misiniz?',
+  migrate_data: 'Veri Taşı',
+  minimize: 'Küçült',
+  minute: 'dakika',
+  minutes: 'dakikalar',
+  move_items_to_trashcan: 'Çöp kutusuna {0} öğe taşı',
+  move_to_trashcan: 'Çöp Kutusuna Taşı',
+  multi_chose_folder_switch_all: 'çoklu seçim klasörü, alt öğelerin kontrolünü sağlar',
+  need_to_relaunch: 'Yeniden başlatılması gerekiyor',
+  need_to_relaunch_after_setting_changed: 'Ayar değiştirildi ve uygulama yeniden başlatıldıktan sonra etkili olacak.',
+  never: 'Asla',
+  new: 'Yeni',
+  new_version_found: 'Yeni sürüm bulundu',
+  next: 'Sonraki',
+  no_access_to_hosts: 'Hosts dosyasına yazma izni yok.',
+  no_record: 'Kayıt yok',
+  overwrite: 'Üzerine Yaz',
+  password: 'Parola',
+  paste: 'Yapıştır',
+  port: 'Port',
+  preferences: 'Tercihler',
+  previous: 'Önceki',
+  protocol: 'Protokol',
+  proxy: 'Proxy',
+  quit: 'Çıkış',
+  read_only: 'Salt Okunur',
+  redo: 'Yinele',
+  refresh: 'Yenile',
+  regexp: 'Düzenli İfade',
+  reload: 'Yeniden Yükle',
+  remote: 'Uzak',
+  remove_duplicate_records: 'Yinelenen kayıtları kaldır',
+  remove_duplicate_records_desc:
+    'Bir alan birden fazla IP\'ye işaret ediyorsa, sadece ilk olanı etkili olacak ve sonrakiler yorum olarak dönüştürülecek.',
+  replace: 'Değiştir',
+  replace_all: 'Hepsini Değiştir',
+  replace_history: 'Geçmişi Değiştir',
+  reset: 'Sıfırla',
+  reset_data_dir_confirm: 'Veri klasörünü varsayılan adrese ({0}) geri yüklemek istediğinizden emin misiniz?',
+  reset_zoom: 'Yakınlaştırmayı Sıfırla',
+  search: 'Ara',
+  select_all: 'Hepsini Seç',
+  selected: 'Seçildi',
+  show_dock_icon: 'Dock simgesini göster',
+  show_history: 'Geçmişi Göster',
+  show_main_window: 'Ana pencereyi göster',
+  show_title_on_tray: 'Görev çubuğunda başlığı göster',
+  source_code: 'Kaynak Kod',
+  success: 'Başarılı!',
+  sudo_prompt_title: 'Sudo parolanızı girin',
+  system_hosts: 'Sistem Hostları',
+  system_hosts_history: 'Sistem Hostlarının geçmiş sürümleri',
+  system_hosts_history_delete_confirm: 'Bu öğeyi silmek istediğinizden emin misiniz?',
+  system_hosts_history_help: 'Toplam kayıt sayısı bu sınırları aşarsa, en eski kayıt silinecektir.',
+  system_hosts_history_limit: 'Maksimum kayıt sayısı: ',
+  test: 'Test',
+  theme: 'Tema',
+  theme_dark: 'Karanlık',
+  theme_light: 'Aydınlık',
+  title: 'Başlık',
+  to_show_source: 'Kaynak kodunu göstermek için çift tıklayın.',
+  toggle_developer_tools: 'Geliştirici Araçlarını Aç/Kapat',
+  toggle_dock_icon: 'Dock simgesini aç/kapat',
+  toggle_full_screen: 'Tam ekranı aç/kapat',
+  trashcan: 'Çöp Kutusu',
+  trashcan_clear: 'Çöp kutusunu boşalt',
+  trashcan_clear_confirm: 'Çöp kutusunu boşaltmak istediğinizden emin misiniz?',
+  trashcan_delete_confirm: 'Bu öğeyi tamamen silmek istiyor musunuz?',
+  trashcan_restore: 'Geri Yükle',
+  tray_mini_window: 'Görev çubuğu simgesi kısayolu',
+  undo: 'Geri Al',
+  unhide: 'Gizlemeyi Kaldır',
+  untitled: 'Başlıksız',
+  url_placeholder: 'http:// veya https:// veya file://',
+  usage_data_agree: 'Evet, anonimleştirilmiş kullanım verilerini gönder',
+  usage_data_help:
+    'Anonim kullanım verilerini periyodik olarak göndererek SwitchHosts\'u iyileştirmemize yardımcı olmak ister misiniz?',
+  usage_data_title: 'SwitchHosts\'u Daha İyi Yapın!',
+  use_proxy: 'Proxy Kullan',
+  use_system_window_frame: 'Sistem pencere çerçevesini kullanın, uygulamanın yeniden başlatılması gereklidir',
+  view: 'Görüntüle',
+  where_is_my_data: 'Verilerim nerede saklanıyor?',
+  where_is_my_hosts: 'Hosts dosyam nerede?',
+  window: 'Pencere',
+  write_mode: 'Yazma modu',
+  write_mode_append_help: 'Yeni kayıtları sistem hosts dosyasının sonuna ekleyin.',
+  write_mode_overwrite_help: 'Yeni kayıtlarla sistem hosts dosyasını üzerine yazın.',
+  write_mode_set: 'Yazma modunu ayarla',
+  your_data_is: 'Veri dosyalarınız şurada saklanıyor:',
+  your_hosts_file_is: 'Hosts dosyanız şu konumda bulunuyor:',
+  zoom: 'Yakınlaştır',
+  zoom_in: 'Yakınlaştır',
+  zoom_out: 'Uzaklaştır',
+}

+ 190 - 0
src/common/i18n/languages/zh-hant.ts

@@ -0,0 +1,190 @@
+/**
+ * @author: rayatn1011
+ * @homepage: https://github.com/rayatn1011
+ */
+
+import { LanguageDict } from '@common/types'
+
+const lang: LanguageDict = {
+  _app_name: 'SwitchHosts',
+  _key: 'zh-hant',
+  _name: '中文',
+  about: '關於',
+  acknowledgement: '特別感謝',
+  advanced: '進階',
+  all: '全部',
+  append: '附加',
+  auto_refresh: '自動更新',
+  btn_cancel: '取消',
+  btn_ok: '確定',
+  change: '修改',
+  check_update: '檢查更新',
+  choice_mode: '選擇模式',
+  choice_mode_default: '預設',
+  choice_mode_desc: '只對頂層項目有效,每個資料夾可設定自己的選擇模式。',
+  choice_mode_multiple: '多選',
+  choice_mode_single: '單選',
+  choices: '選項',
+  chosen: '已選',
+  clear_history: '清除歷史紀錄',
+  click_to_open: '點擊開啟',
+  close: '關閉',
+  colon: ':',
+  commands: '指令',
+  commands_help: '每次 Hosts 應用後將執行下面的系統指令:',
+  commands_title: 'Hosts 應用後指令',
+  comment_current_line: '註解當前行',
+  content: '內容',
+  copy: '複製',
+  cut: '剪下',
+  day: '天',
+  days: '天',
+  delete: '刪除',
+  download: '下載',
+  edit: '編輯',
+  export: '匯出',
+  export_done: '匯出已完成。',
+  fail: '操作失敗!',
+  feedback: '意見回饋',
+  file: '檔案',
+  find: '尋找',
+  find_all: '尋找所有',
+  find_and_replace: '尋找並替換',
+  find_history: '尋找歷史',
+  folder: '資料夾',
+  front: '前置',
+  general: '一般',
+  group: '群組',
+  help: 'Help',
+  hide: '隱藏',
+  hide_at_launch: '啟動時隱藏',
+  hide_dock_icon: '隱藏工作列圖示',
+  hide_history: '隱藏歷史紀錄',
+  hide_others: '隱藏其他',
+  homepage: '首頁',
+  host: '主機',
+  hosts_add: '新增 hosts',
+  hosts_delete: '刪除當前方案',
+  hosts_delete_confirm: '確定要刪除當前方案嗎?',
+  hosts_edit: '編輯 hosts',
+  hosts_title: 'Hosts 標題',
+  hosts_type: 'Hosts 類型',
+  hosts_updated: 'Hosts 檔案已更新。',
+  hour: '小時',
+  hours: '小時',
+  http_api_on: '開啟 HTTP API',
+  http_api_on_desc: '運行於 {0} 通訊埠,可用於 Alfred 等第三方應用切換 hosts。',
+  http_api_only_local: 'HTTP API 僅監聽 127.0.0.1',
+  ignore_case: '忽略大小寫',
+  import: '匯入',
+  import_done: '匯入已完成。',
+  import_fail: '匯入失敗!',
+  import_from_url: '從 URL 匯入',
+  is_latest_version_inform: '太棒了,你正在執行的是最新版本!',
+  check_update_failed: '檢查更新失敗!',
+  item_found: '{0} 項符合',
+  items: '項',
+  items_found: '{0} 項符合',
+  language: '語言',
+  last_refresh: '最後更新:',
+  latest_version_desc: '最新的版本為:{0}',
+  line: '行',
+  lines: '行',
+  loading: '載入中...',
+  local: '本地',
+  match: '符合',
+  migrate_confirm: 'SwitchHosts v4.0 使用了新的資料儲存格式,是否遷移舊資料到新格式?',
+  migrate_data: '遷移資料',
+  minimize: '最小化',
+  minute: '分鐘',
+  minutes: '分鐘',
+  move_items_to_trashcan: '移動 {0} 項到垃圾桶',
+  move_to_trashcan: '移到垃圾桶',
+  multi_chose_folder_switch_all: '多選資料夾開關控制子項目',
+  need_to_relaunch: '需要重啟',
+  need_to_relaunch_after_setting_changed: '設定已更改,應用重啟後生效。',
+  never: '永不',
+  new: '新建',
+  new_version_found: '發現新版本',
+  next: '下一個',
+  no_access_to_hosts: '沒有寫入 Hosts 檔案的權限。',
+  no_record: '沒有紀錄',
+  overwrite: '覆寫',
+  password: '密碼',
+  paste: '貼上',
+  port: '通訊埠',
+  preferences: '選項',
+  previous: '上一個',
+  protocol: '協議',
+  proxy: '代理',
+  quit: '退出',
+  read_only: '唯讀',
+  redo: '重做',
+  refresh: '更新',
+  regexp: '正規表達式',
+  reload: '重載',
+  remote: '遠端',
+  remove_duplicate_records: '移除重複的紀錄',
+  remove_duplicate_records_desc: '如果一個網域指向多個 IP,只有第一條會生效,剩下的將被轉為註解。',
+  replace: '替換',
+  replace_all: '替換全部',
+  replace_history: '替換歷史',
+  reset: '重設',
+  reset_data_dir_confirm: '確定要把資料夾重設為預設路徑嗎?({0})?',
+  reset_zoom: '重設縮放',
+  search: '搜尋',
+  select_all: '全選',
+  selected: '已選',
+  show_dock_icon: '顯示工作列圖示',
+  show_history: '顯示歷史紀錄',
+  show_main_window: '顯示主視窗',
+  show_title_on_tray: '在通知區域顯示標題',
+  source_code: '原始碼',
+  success: '操作成功!',
+  sudo_prompt_title: '請輸入你的登入密碼(sudo 密碼)',
+  system_hosts: '系統 Hosts',
+  system_hosts_history: '系統 Hosts 歷史版本',
+  system_hosts_history_delete_confirm: '確定要刪除該項紀錄嗎?',
+  system_hosts_history_help: '如果歷史紀錄的總數超過這個限制,最舊的紀錄將被刪除。',
+  system_hosts_history_limit: '最大紀錄數:',
+  test: '測試',
+  theme: '主題',
+  theme_dark: '深色',
+  theme_light: '亮色',
+  title: '標題',
+  to_show_source: '雙擊顯示原始碼。',
+  toggle_developer_tools: '切換開發者工具',
+  toggle_dock_icon: '顯示/隱藏任務列圖示',
+  toggle_full_screen: '切換全螢幕',
+  trashcan: '垃圾桶',
+  trashcan_clear: '清除垃圾桶',
+  trashcan_clear_confirm: '確定要清除垃圾桶嗎?',
+  trashcan_delete_confirm: '要完全清除本項嗎?',
+  trashcan_restore: '復原',
+  tray_mini_window: '任務列快捷視窗',
+  undo: '取消',
+  unhide: '取消隱藏',
+  untitled: '未命名',
+  url_placeholder: 'http:// 或 https:// 或 file://',
+  usage_data_agree: '好的,寄送匿名的使用資料',
+  usage_data_help:
+    '您願意寄送匿名的使用資料來幫助我們改善 SwitchHosts 嗎?資料中不會包含任何隱私資訊。',
+  usage_data_title: '幫助改善 SwitchHosts',
+  use_proxy: '使用代理',
+  use_system_window_frame: '使用系統視窗外框,需要重啟程式',
+  view: '視窗',
+  where_is_my_data: '我的資料儲存在哪裡?',
+  where_is_my_hosts: '我的 hosts 檔案在哪裡?',
+  window: 'Window',
+  write_mode: '寫入模式',
+  write_mode_append_help: '新紀錄將附加到現有系統 hosts 檔案後面。',
+  write_mode_overwrite_help: '新紀錄將覆寫現有系統 hosts 檔案。',
+  write_mode_set: '設定寫入模式',
+  your_data_is: '你的資料在:',
+  your_hosts_file_is: '你的 hosts 檔案在:',
+  zoom: '縮放',
+  zoom_in: '放大',
+  zoom_out: '縮小',
+}
+
+export default lang

+ 2 - 0
src/main/ui/checkSystemLocale.ts

@@ -27,6 +27,8 @@ export default async () => {
     locale = 'de'
   } else if (locale.startsWith('ja')) {
     locale = 'ja'
+  } else if (locale.startsWith('tr')) {
+    locale = 'tr'
   }
 
   if (!isLocaleName(locale)) {

+ 2 - 0
src/renderer/components/Pref/General.tsx

@@ -47,10 +47,12 @@ const General = (props: IProps) => {
             onChange={(e) => onChange({ locale: e.target.value as LocaleName })}
           >
             <option value="zh">简体中文</option>
+            <option value="zh_hant">繁體中文</option>
             <option value="en">English</option>
             <option value="fr">Français</option>
             <option value="de">Deutsch</option>
             <option value="ja">日本語</option>
+            <option value="tr">Türkçe</option>
           </Select>
         </HStack>
       </FormControl>

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov