mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-21 15:56:10 +01:00
🎨 Improve desktop auto-update https://github.com/siyuan-note/siyuan/issues/16461 (#16764)
This commit is contained in:
parent
bea194e89d
commit
7464a6f951
19 changed files with 102 additions and 124 deletions
|
|
@ -1373,6 +1373,7 @@
|
|||
"undo": "تراجع",
|
||||
"up": "أعلى",
|
||||
"update": "تحديث",
|
||||
"updateVersion": "⬆️ تحديث",
|
||||
"insertAsset": "إدراج صورة أو ملف",
|
||||
"uploadError": "خطأ في الرفع",
|
||||
"uploading": "يتم الرفع...",
|
||||
|
|
@ -1499,7 +1500,7 @@
|
|||
"58": "[%d/%d] جارٍ التحقق من الفهرس...",
|
||||
"59": "فشل في تعيين قائمة تجاهل المزامنة",
|
||||
"60": "فشل في الحصول على حزمة التحديث: %s",
|
||||
"61": "⬆️ حزمة تثبيت الإصدار الجديد جاهزة، هل تريد تثبيت الإصدار الجديد الآن؟",
|
||||
"61": "حزمة تثبيت الإصدار الجديد جاهزة، هل تريد تثبيت الإصدار الجديد الآن؟<br><br><span class='ft__on-surface'>يرجى ملاحظة أنه يجب الانتظار حتى يتم إغلاق SiYuan بالكامل قبل التثبيت</span>",
|
||||
"62": "⬆️ حزمة تثبيت الإصدار الجديد جاهزة. عند الخروج من التطبيق، سوف تُسأل ما إذا كنت تريد تثبيت الإصدار الجديد",
|
||||
"63": "جارٍ الاسترجاع, الرجاء الانتظار...",
|
||||
"64": "هناك [%d] ملفات في المجموع، سوف يستغرق الأمر بعض الوقت للفهرسة، الرجاء الانتظار...",
|
||||
|
|
@ -1541,7 +1542,7 @@
|
|||
"100": "جارٍ تنظيف البيانات...",
|
||||
"101": "تم إعداد تذكير [%s]",
|
||||
"102": "اكتملت المعالجة",
|
||||
"103": "تم تنزيل حزمة التحديث تلقائياً في الخلفية. عند الخروج، سوف تُسأل ما إذا كنت تريد تثبيت الإصدار الجديد",
|
||||
"103": "تم بدء تنزيل حزمة التحديث تلقائياً، سيتم عرض تقدم التنزيل في الشريط السفلي",
|
||||
"104": "فشل تنزيل حزمة التحديث، الرجاء التحقق من اتصال الشبكة",
|
||||
"105": "بدون عنوان",
|
||||
"106": "الحد الأقصى للطول هو 512 حرفاً",
|
||||
|
|
|
|||
|
|
@ -1373,6 +1373,7 @@
|
|||
"undo": "Rückgängig",
|
||||
"up": "Nach oben",
|
||||
"update": "Aktualisieren",
|
||||
"updateVersion": "⬆️ Aktualisieren",
|
||||
"insertAsset": "Bild oder Datei einfügen",
|
||||
"uploadError": "Upload-Fehler",
|
||||
"uploading": "Hochladen...",
|
||||
|
|
@ -1499,7 +1500,7 @@
|
|||
"58": "[%d/%d] Überprüfen des Index...",
|
||||
"59": "Fehler beim Festlegen der Ignorierliste für die Synchronisation",
|
||||
"60": "Fehler beim Abrufen des Update-Pakets: %s",
|
||||
"61": "⬆️ Das neue Versionsinstallationspaket ist bereit, möchten Sie die neue Version jetzt installieren?",
|
||||
"61": "Das neue Versionsinstallationspaket ist bereit, möchten Sie die neue Version jetzt installieren?<br><br><span class='ft__on-surface'>Bitte beachten Sie, dass Sie warten müssen, bis SiYuan vollständig beendet ist, bevor Sie die Installation durchführen</span>",
|
||||
"62": "⬆️ Das neue Versionsinstallationspaket ist bereit. Beim Beenden werden Sie gefragt, ob Sie die neue Version installieren möchten",
|
||||
"63": "Wiederherstellung, bitte warten...",
|
||||
"64": "Insgesamt [%d] Dateien, es dauert etwas Zeit, um zu indizieren, bitte warten...",
|
||||
|
|
@ -1541,7 +1542,7 @@
|
|||
"100": "Daten bereinigen...",
|
||||
"101": "Erinnerung [%s] eingestellt",
|
||||
"102": "Bearbeitung abgeschlossen",
|
||||
"103": "Das Update-Installationspaket wurde automatisch im Hintergrund heruntergeladen. Beim Beenden werden Sie gefragt, ob Sie die neue Version installieren möchten",
|
||||
"103": "Der Download des Update-Installationspakets wurde automatisch gestartet, der Download-Fortschritt wird in der unteren Leiste angezeigt",
|
||||
"104": "Das Update-Installationspaket konnte nicht heruntergeladen werden, bitte überprüfen Sie die Netzwerkverbindung",
|
||||
"105": "Ohne Titel",
|
||||
"106": "Maximale Länge ist auf 512 Zeichen begrenzt",
|
||||
|
|
|
|||
|
|
@ -1373,6 +1373,7 @@
|
|||
"undo": "Undo",
|
||||
"up": "Up",
|
||||
"update": "Update",
|
||||
"updateVersion": "⬆️ Update",
|
||||
"insertAsset": "Insert image or file",
|
||||
"uploadError": "upload error",
|
||||
"uploading": "Uploading...",
|
||||
|
|
@ -1499,7 +1500,7 @@
|
|||
"58": "[%d/%d] Verifying index...",
|
||||
"59": "Failed to set sync ignore list",
|
||||
"60": "Failed to get the update package: %s",
|
||||
"61": "⬆️ The new version installation package is ready, do you want to install the new version now?",
|
||||
"61": "The new version installation package is ready, do you want to install the new version now?<br><br><span class='ft__on-surface'>Please note that you need to wait for SiYuan to fully exit before installing</span>",
|
||||
"62": "⬆️ The new version installation package is ready. When exiting, you will be asked whether to install the new version",
|
||||
"63": "Recovering, please wait...",
|
||||
"64": "There are [%d] files in total, it will take some time to index, please wait...",
|
||||
|
|
@ -1541,7 +1542,7 @@
|
|||
"100": "Cleaning data...",
|
||||
"101": "Done setting reminder [%s]",
|
||||
"102": "Processing completed",
|
||||
"103": "The update installation package has been automatically downloaded in the background. When exiting, you will be asked whether to install the new version",
|
||||
"103": "The update installation package has been automatically started downloading, download progress will be displayed in the bottom bar",
|
||||
"104": "The update installation package failed to download, please check the network connection",
|
||||
"105": "Untitled",
|
||||
"106": "Maximum length is limited to 512 characters",
|
||||
|
|
|
|||
|
|
@ -1373,6 +1373,7 @@
|
|||
"undo": "Deshacer",
|
||||
"up": "Arriba",
|
||||
"update": "Actualización",
|
||||
"updateVersion": "⬆️ Actualizar",
|
||||
"insertAsset": "Insertar imagen o archivo",
|
||||
"uploadError": "error de subida",
|
||||
"uploading": "Subiendo...",
|
||||
|
|
@ -1499,7 +1500,7 @@
|
|||
"58": "[%d/%d] Verificando índice...",
|
||||
"59": " Falló la configuración de sincronización de la lista de ignorados",
|
||||
"60": "Fallo al obtener el paquete de actualización: %s",
|
||||
"61": "⬆️ El paquete de instalación de la nueva versión está listo, ¿quieres instalar la nueva versión ahora?",
|
||||
"61": "El paquete de instalación de la nueva versión está listo, ¿quieres instalar la nueva versión ahora?<br><br><span class='ft__on-surface'>Tenga en cuenta que debe esperar a que SiYuan se cierre completamente antes de instalar</span>",
|
||||
"62": "⬆️ El paquete de instalación de la nueva versión está listo. Al salir, se le preguntará si desea instalar la nueva versión",
|
||||
"63": "Recuperando, por favor espere...",
|
||||
"64": "Hay [%d] archivos en total, tardará un tiempo en indexarse, por favor espere...",
|
||||
|
|
@ -1541,7 +1542,7 @@
|
|||
"100": "Limpieza de datos...",
|
||||
"101": "El recordatorio de configuración [%s] se ha completado",
|
||||
"102": "Procesamiento completado",
|
||||
"103": "El paquete de instalación de la actualización se ha descargado automáticamente en segundo plano. Al salir, se le preguntará si desea instalar la nueva versión",
|
||||
"103": "La descarga del paquete de instalación de la actualización se ha iniciado automáticamente, el progreso de la descarga se mostrará en la barra inferior",
|
||||
"104": "El paquete de instalación de la actualización no se pudo descargar, verifique la conexión de red",
|
||||
"105": "Sin título",
|
||||
"106": "La longitud máxima está limitada a 512 caracteres",
|
||||
|
|
|
|||
|
|
@ -1373,6 +1373,7 @@
|
|||
"undo": "Retiré",
|
||||
"up": "en haut",
|
||||
"update": "Mises à jour",
|
||||
"updateVersion": "⬆️ Mettre à jour",
|
||||
"insertAsset": "Insérer une image ou un fichier",
|
||||
"uploadError": "erreur de transfert",
|
||||
"uploading": "Transfert en cours",
|
||||
|
|
@ -1499,7 +1500,7 @@
|
|||
"58": "[%d/%d] Vérification de l'index...",
|
||||
"59": "Échec de la définition de la liste des ignores de synchronisation",
|
||||
"60": "Échec de la récupération du paquet de mise à jour : %s",
|
||||
"61": "⬆️ Le package d'installation de la nouvelle version est prêt, voulez-vous installer la nouvelle version maintenant ?",
|
||||
"61": "Le package d'installation de la nouvelle version est prêt, voulez-vous installer la nouvelle version maintenant ?<br><br><span class='ft__on-surface'>Veuillez noter que vous devez attendre que SiYuan se ferme complètement avant d'installer</span>",
|
||||
"62": "⬆️ Le package d'installation de la nouvelle version est prêt. En quittant, il vous sera demandé si vous souhaitez installer la nouvelle version",
|
||||
"63": "Récupération, veuillez patienter...",
|
||||
"64": "Il y a [%d] fichiers au total, l'indexation prendra un certain temps, veuillez patienter...",
|
||||
|
|
@ -1541,7 +1542,7 @@
|
|||
"100": "Nettoyage des données...",
|
||||
"101": "Rappel de réglage terminé [%s]",
|
||||
"102": "Traitement terminé",
|
||||
"103": "Le package d'installation de la mise à jour a été automatiquement téléchargé en arrière-plan. En quittant, il vous sera demandé si vous souhaitez installer la nouvelle version",
|
||||
"103": "Le téléchargement du package d'installation de la mise à jour a été automatiquement démarré, la progression du téléchargement sera affichée dans la barre inférieure",
|
||||
"104": "Le package d'installation de la mise à jour n'a pas pu être téléchargé, veuillez vérifier la connexion réseau",
|
||||
"105": "Sans titre",
|
||||
"106": "La longueur maximale est limitée à 512 caractères",
|
||||
|
|
|
|||
|
|
@ -1373,6 +1373,7 @@
|
|||
"undo": "ביטול",
|
||||
"up": "למעלה",
|
||||
"update": "עדכן",
|
||||
"updateVersion": "⬆️ עדכן",
|
||||
"insertAsset": "הכנס תמונה או קובץ",
|
||||
"uploadError": "שגיאת העלאה",
|
||||
"uploading": "מעלה...",
|
||||
|
|
@ -1499,7 +1500,7 @@
|
|||
"58": "[%d/%d] בודק אינדקס...",
|
||||
"59": "נכשל בהגדרת רשימת ההזנחה בסנכרון",
|
||||
"60": "נכשל לקבל את חבילת העדכון: %s",
|
||||
"61": "⬆️ חבילת העדכון החדשה מוכנה, האם אתה רוצה להתקין את הגרסה החדשה עכשיו?",
|
||||
"61": "חבילת העדכון החדשה מוכנה, האם אתה רוצה להתקין את הגרסה החדשה עכשיו?<br><br><span class='ft__on-surface'>שימו לב: יש להמתין עד ש-SiYuan ייסגר לחלוטין לפני ההתקנה</span>",
|
||||
"62": "⬆️ חבילת העדכון החדשה מוכנה. בעת היציאה, תישאל אם להתקין את הגרסה החדשה",
|
||||
"63": "מוקם, אנא המתן...",
|
||||
"64": "יש בסך הכל [%d] קבצים, יידרש זמן מה לאינדיקציה, אנא המתן...",
|
||||
|
|
@ -1541,7 +1542,7 @@
|
|||
"100": "מנקה נתונים...",
|
||||
"101": "הושלמה הגדרת תזכורת [%s]",
|
||||
"102": "העיבוד הושלם",
|
||||
"103": "חבילת ההתקנה לעדכון הושלמה ברקע אוטומטית. בעת היציאה, תישאל אם להתקין את הגרסה החדשה",
|
||||
"103": "הורדת חבילת ההתקנה לעדכון החלה אוטומטית, התקדמות ההורדה תוצג בשורת התחתית",
|
||||
"104": "חבילת ההתקנה לעדכון נכשלת בהורדה, אנא בדוק את החיבור לרשת",
|
||||
"105": "ללא כותרת",
|
||||
"106": "אורך מרבי מוגבל ל-512 תווים",
|
||||
|
|
|
|||
|
|
@ -1373,6 +1373,7 @@
|
|||
"undo": "Annulla",
|
||||
"up": "Su",
|
||||
"update": "Aggiorna",
|
||||
"updateVersion": "⬆️ Aggiorna",
|
||||
"insertAsset": "Inserisci immagine o file",
|
||||
"uploadError": "Errore di caricamento",
|
||||
"uploading": "Caricamento in corso.",
|
||||
|
|
@ -1499,7 +1500,7 @@
|
|||
"58": "[%d/%d] Verifica dell'indice in corso...",
|
||||
"59": "Impossibile impostare la lista di ignoranza della sincronizzazione",
|
||||
"60": "Impossibile ottenere il pacchetto di aggiornamento: %s",
|
||||
"61": "⬆️ Il pacchetto di installazione della nuova versione è pronto, vuoi installarlo ora?",
|
||||
"61": "Il pacchetto di installazione della nuova versione è pronto, vuoi installarlo ora?<br><br><span class='ft__on-surface'>Si prega di notare che è necessario attendere che SiYuan si chiuda completamente prima di installare</span>",
|
||||
"62": "⬆️ Il pacchetto di installazione della nuova versione è pronto. Quando esci, ti verrà chiesto se installare la nuova versione",
|
||||
"63": "Recupero in corso, attendere prego...",
|
||||
"64": "Ci sono [%d] file in totale, ci vorrà del tempo per indicizzare, attendere prego...",
|
||||
|
|
@ -1541,7 +1542,7 @@
|
|||
"100": "Pulizia dei dati in corso...",
|
||||
"101": "Promemoria impostato [%s] completato",
|
||||
"102": "Elaborazione completata",
|
||||
"103": "Il pacchetto di installazione dell'aggiornamento è stato scaricato automaticamente in background. Uscendo, ti verrà chiesto se installare la nuova versione",
|
||||
"103": "Il download del pacchetto di installazione dell'aggiornamento è stato avviato automaticamente, il progresso del download verrà visualizzato nella barra inferiore",
|
||||
"104": "Il pacchetto di installazione dell'aggiornamento non è riuscito a scaricarsi, verifica la connessione di rete",
|
||||
"105": "Senza titolo",
|
||||
"106": "La lunghezza massima è limitata a 512 caratteri",
|
||||
|
|
|
|||
|
|
@ -1373,6 +1373,7 @@
|
|||
"undo": "元に戻す",
|
||||
"up": "上へ",
|
||||
"update": "更新",
|
||||
"updateVersion": "⬆️ 更新",
|
||||
"insertAsset": "画像またはファイルを挿入",
|
||||
"uploadError": "アップロードエラー",
|
||||
"uploading": "アップロード中...",
|
||||
|
|
@ -1499,7 +1500,7 @@
|
|||
"58": "[%d/%d] インデックスを検証しています...",
|
||||
"59": "同期除外リストの設定に失敗しました",
|
||||
"60": "更新パッケージの取得に失敗しました: %s",
|
||||
"61": "⬆️ 新しいバージョンをインストールする準備ができました。今すぐ新しいバージョンをインストールしますか?",
|
||||
"61": "新しいバージョンをインストールする準備ができました。今すぐ新しいバージョンをインストールしますか?<br><br><span class='ft__on-surface'>ご注意:思源ノートが完全に終了してからインストールしてください</span>",
|
||||
"62": "⬆️ 新しいバージョンをインストールする準備できました。終了するときに新しいバージョンをインストールするかどうかを確認します",
|
||||
"63": "復元中です。お待ちください...",
|
||||
"64": "合計 [%d] 個のファイルがあります。インデックスの作成には時間がかかりますので、しばらくお待ちください...",
|
||||
|
|
@ -1541,7 +1542,7 @@
|
|||
"100": "データをクリーニングしています...",
|
||||
"101": "リマインダーの設定が完了しました [%s]",
|
||||
"102": "処理が完了しました",
|
||||
"103": "更新インストールパッケージがバックグラウンドで自動的にダウンロードされました。終了時に新バージョンをインストールするかどうかを確認するメッセージが表示されます",
|
||||
"103": "更新インストールパッケージの自動ダウンロードが開始されました。ダウンロードの進捗は下部バーに表示されます",
|
||||
"104": "更新インストールパッケージのダウンロードに失敗しました。ネットワーク接続を確認してください",
|
||||
"105": "タイトルなし",
|
||||
"106": "最大長は 512 文字に制限されています",
|
||||
|
|
|
|||
|
|
@ -1373,6 +1373,7 @@
|
|||
"undo": "실행 취소",
|
||||
"up": "위",
|
||||
"update": "업데이트",
|
||||
"updateVersion": "⬆️ 업데이트",
|
||||
"insertAsset": "이미지 또는 파일 삽입",
|
||||
"uploadError": "업로드 오류",
|
||||
"uploading": "업로드 중...",
|
||||
|
|
@ -1499,7 +1500,7 @@
|
|||
"58": "[%d/%d] 인덱스 확인 중...",
|
||||
"59": "동기화 무시 목록 설정 실패",
|
||||
"60": "업데이트 패키지 가져오기 실패: %s",
|
||||
"61": "⬆️ 새 버전 설치 패키지가 준비되었습니다. 지금 새 버전을 설치하시겠습니까?",
|
||||
"61": "새 버전 설치 패키지가 준비되었습니다. 지금 새 버전을 설치하시겠습니까?<br><br><span class='ft__on-surface'>주의: 시유안이 완전히 종료될 때까지 기다린 후 설치해야 합니다</span>",
|
||||
"62": "⬆️ 새 버전 설치 패키지가 준비되었습니다. 종료할 때 새 버전 설치 여부를 묻습니다",
|
||||
"63": "복구 중, 잠시만 기다려 주세요...",
|
||||
"64": "총 [%d]개의 파일이 있으며 인덱싱하는 데 시간이 걸립니다. 잠시만 기다려 주세요...",
|
||||
|
|
@ -1541,7 +1542,7 @@
|
|||
"100": "데이터 정리 중...",
|
||||
"101": "알림 설정 완료 [%s]",
|
||||
"102": "처리 완료",
|
||||
"103": "업데이트 설치 패키지가 백그라운드에서 자동으로 다운로드되었습니다. 종료할 때 새 버전 설치 여부를 묻습니다",
|
||||
"103": "업데이트 설치 패키지 자동 다운로드가 시작되었습니다. 다운로드 진행률은 하단 바에 표시됩니다",
|
||||
"104": "업데이트 설치 패키지 다운로드 실패, 네트워크 연결을 확인하세요",
|
||||
"105": "제목 없음",
|
||||
"106": "최대 길이는 512자로 제한됩니다",
|
||||
|
|
|
|||
|
|
@ -1373,6 +1373,7 @@
|
|||
"undo": "Cofnij",
|
||||
"up": "W górę",
|
||||
"update": "Aktualizuj",
|
||||
"updateVersion": "⬆️ Aktualizuj",
|
||||
"insertAsset": "Wstaw obraz lub plik",
|
||||
"uploadError": "błąd przesyłania",
|
||||
"uploading": "Przesyłanie...",
|
||||
|
|
@ -1499,7 +1500,7 @@
|
|||
"58": "[%d/%d] Weryfikacja indeksu...",
|
||||
"59": "Nie udało się ustawić listy pomijania synchronizacji",
|
||||
"60": "Nie udało się uzyskać pakietu aktualizacji: %s",
|
||||
"61": "⬆️ Instalacja nowego pakietu wersji jest gotowa, czy chcesz teraz zainstalować nową wersję?",
|
||||
"61": "Instalacja nowego pakietu wersji jest gotowa, czy chcesz teraz zainstalować nową wersję?<br><br><span class='ft__on-surface'>Uwaga: należy poczekać, aż SiYuan całkowicie się zamknie przed instalacją</span>",
|
||||
"62": "⬆️ Instalacja nowego pakietu wersji jest gotowa. Przy wyjściu zapytasz, czy zainstalować nową wersję",
|
||||
"63": "Odzyskiwanie, proszę czekać...",
|
||||
"64": "Całkowita liczba plików wynosi [%d], zajmie trochę czasu na indeksowanie, proszę czekać...",
|
||||
|
|
@ -1541,7 +1542,7 @@
|
|||
"100": "Czyszczenie danych...",
|
||||
"101": "Zakończono ustawienie przypomnienia [%s]",
|
||||
"102": "Przetwarzanie zakończone",
|
||||
"103": "Pakiet instalacyjny aktualizacji został automatycznie pobrany w tle. Przy wyjściu zostanie zapytane, czy zainstalować nową wersję",
|
||||
"103": "Pobieranie pakietu instalacyjnego aktualizacji zostało automatycznie uruchomione, postęp pobierania będzie wyświetlany na dolnym pasku",
|
||||
"104": "Pobranie pakietu instalacyjnego nie powiodło się, proszę sprawdzić połączenie sieciowe",
|
||||
"105": "Bez tytułu",
|
||||
"106": "Maksymalna długość jest ograniczona do 512 znaków",
|
||||
|
|
|
|||
|
|
@ -1373,6 +1373,7 @@
|
|||
"undo": "Desfazer",
|
||||
"up": "Para cima",
|
||||
"update": "Atualizar",
|
||||
"updateVersion": "⬆️ Atualizar",
|
||||
"insertAsset": "Inserir imagem ou arquivo",
|
||||
"uploadError": "erro de upload",
|
||||
"uploading": "Enviando...",
|
||||
|
|
@ -1499,7 +1500,7 @@
|
|||
"58": "[%d/%d] Verificando índice...",
|
||||
"59": "Falha ao definir lista de ignorados de sincronização",
|
||||
"60": "Falha ao obter o pacote de atualização: %s",
|
||||
"61": "⬆️ O pacote de instalação da nova versão está pronto, deseja instalar a nova versão agora?",
|
||||
"61": "O pacote de instalação da nova versão está pronto, deseja instalar a nova versão agora?<br><br><span class='ft__on-surface'>Por favor, note que você precisa aguardar o SiYuan fechar completamente antes de instalar</span>",
|
||||
"62": "⬆️ O pacote de instalação da nova versão está pronto. Ao sair, você será perguntado se deseja instalar a nova versão",
|
||||
"63": "Recuperando, por favor aguarde...",
|
||||
"64": "Há [%d] arquivos no total, levará algum tempo para indexar, por favor aguarde...",
|
||||
|
|
@ -1541,7 +1542,7 @@
|
|||
"100": "Limpando dados...",
|
||||
"101": "Lembrete definido [%s]",
|
||||
"102": "Processamento concluído",
|
||||
"103": "O pacote de instalação da atualização foi baixado automaticamente em segundo plano. Ao sair, você será perguntado se deseja instalar a nova versão",
|
||||
"103": "O download do pacote de instalação da atualização foi iniciado automaticamente, o progresso do download será exibido na barra inferior",
|
||||
"104": "Falha ao baixar o pacote de instalação da atualização, por favor verifique a conexão de rede",
|
||||
"105": "Sem título",
|
||||
"106": "Comprimento máximo limitado a 512 caracteres",
|
||||
|
|
|
|||
|
|
@ -1373,6 +1373,7 @@
|
|||
"undo": "Отменить",
|
||||
"up": "Вверх",
|
||||
"update": "Обновить",
|
||||
"updateVersion": "⬆️ Обновить",
|
||||
"insertAsset": "Вставить изображение или файл",
|
||||
"uploadError": "Ошибка закачивания",
|
||||
"uploading": "Закачивание...",
|
||||
|
|
@ -1499,7 +1500,7 @@
|
|||
"58": "[%d/%d] Проверка индекса...",
|
||||
"59": "Не удалось установить список игнорирования синхронизации",
|
||||
"60": "Не удалось получить пакет обновления: %s",
|
||||
"61": "⬆️ Установочный пакет новой версии готов, вы хотите установить новую версию сейчас?",
|
||||
"61": "Установочный пакет новой версии готов, вы хотите установить новую версию сейчас?<br><br><span class='ft__on-surface'>Обратите внимание, что необходимо дождаться полного завершения работы SiYuan перед установкой</span>",
|
||||
"62": "⬆️ Установочный пакет новой версии готов. При выходе вас спросят, хотите ли вы установить новую версию",
|
||||
"63": "Восстановление, пожалуйста, подождите...",
|
||||
"64": "Всего [%d] файлов, потребуется некоторое время для индексации, пожалуйста, подождите...",
|
||||
|
|
@ -1541,7 +1542,7 @@
|
|||
"100": "Очистка данных...",
|
||||
"101": "Задание напоминания завершено [%s]",
|
||||
"102": "Обработка завершена",
|
||||
"103": "Установочный пакет обновления был загружен автоматически в фоновом режиме. При выходе вас спросят, хотите ли вы установить новую версию",
|
||||
"103": "Загрузка установочного пакета обновления была автоматически запущена, прогресс загрузки будет отображаться в нижней панели",
|
||||
"104": "Не удалось скачать установочный пакет обновления, пожалуйста, проверьте сетевое подключение",
|
||||
"105": "Без названия",
|
||||
"106": "Максимальная длина ограничена 512 символами",
|
||||
|
|
|
|||
|
|
@ -1373,6 +1373,7 @@
|
|||
"undo": "Geri al",
|
||||
"up": "Yukarı",
|
||||
"update": "Güncelle",
|
||||
"updateVersion": "⬆️ Güncelle",
|
||||
"insertAsset": "Görsel veya dosya ekle",
|
||||
"uploadError": "Yükleme hatası",
|
||||
"uploading": "Yükleniyor...",
|
||||
|
|
@ -1499,7 +1500,7 @@
|
|||
"58": "[%d/%d] Dizin doğrulanıyor...",
|
||||
"59": "Senkronizasyon yok sayma listesi ayarlanamadı",
|
||||
"60": "Güncelleme paketi alınamadı: %s",
|
||||
"61": "⬆️ Yeni sürüm paketi hazır, şimdi yüklemek ister misin?",
|
||||
"61": "Yeni sürüm paketi hazır, şimdi yüklemek ister misin?<br><br><span class='ft__on-surface'>Lütfen dikkat: Kurulumdan önce SiYuan'ın tamamen kapanmasını beklemeniz gerekir</span>",
|
||||
"62": "⬆️ Yeni sürüm paketi hazır, çıkarken yükleme seçeneği sunulacak",
|
||||
"63": "Kurtarılıyor, lütfen bekle...",
|
||||
"64": "Toplam [%d] dosya var, indeksleme biraz sürebilir, lütfen bekle...",
|
||||
|
|
@ -1541,7 +1542,7 @@
|
|||
"100": "Veri temizleniyor...",
|
||||
"101": "Hatırlatıcı ayarlandı [%s]",
|
||||
"102": "İşlem tamamlandı",
|
||||
"103": "Güncelleme paketi arka planda indirildi. Çıkarken yeni sürüm kurulumu sorulacak",
|
||||
"103": "Güncelleme paketi indirmesi otomatik olarak başlatıldı, indirme ilerlemesi alt çubukta gösterilecek",
|
||||
"104": "Güncelleme paketi indirilemedi, ağ bağlantısını kontrol et",
|
||||
"105": "Başlıksız",
|
||||
"106": "Maksimum uzunluk 512 karakter ile sınırlı",
|
||||
|
|
|
|||
|
|
@ -1373,6 +1373,7 @@
|
|||
"undo": "撤銷",
|
||||
"up": "上",
|
||||
"update": "更新",
|
||||
"updateVersion": "⬆️ 更新",
|
||||
"insertAsset": "插入圖片或檔",
|
||||
"uploadError": "上傳錯誤",
|
||||
"uploading": "上傳中...",
|
||||
|
|
@ -1499,7 +1500,7 @@
|
|||
"58": "[%d/%d] 正在校驗索引...",
|
||||
"59": "設置同步忽略列表失敗",
|
||||
"60": "獲取更新檔失敗:%s",
|
||||
"61": "⬆️ 新版本安裝檔已經準備就緒,是否現在安裝新版本?",
|
||||
"61": "新版本安裝檔已經準備就緒,是否現在安裝新版本?<br><br><span class='ft__on-surface'>請注意,需要先等待思源筆記完全退出再進行安裝</span>",
|
||||
"62": "⬆️ 新版本安裝檔已經準備就緒,退出時將詢問是否安裝新版本",
|
||||
"63": "正在恢復,請稍等...",
|
||||
"64": "共有檔 [%d] 個,需要一些時間進行索引,請稍等...",
|
||||
|
|
@ -1541,7 +1542,7 @@
|
|||
"100": "正在清理資料...",
|
||||
"101": "設置提醒完畢 [%s]",
|
||||
"102": "處理完畢",
|
||||
"103": "已經在後台開始自動下載更新安裝檔,退出時將詢問是否安裝新版本",
|
||||
"103": "已經自動開始下載更新安裝檔,下載進度將在底欄顯示",
|
||||
"104": "更新安裝檔下載失敗,請檢查網絡連接",
|
||||
"105": "未命名",
|
||||
"106": "最大長度限制為 512 字元",
|
||||
|
|
|
|||
|
|
@ -1373,6 +1373,7 @@
|
|||
"undo": "撤销",
|
||||
"up": "上",
|
||||
"update": "更新",
|
||||
"updateVersion": "⬆️ 更新",
|
||||
"insertAsset": "插入图片或文件",
|
||||
"uploadError": "上传错误",
|
||||
"uploading": "上传中...",
|
||||
|
|
@ -1499,7 +1500,7 @@
|
|||
"58": "[%d/%d] 正在校验索引...",
|
||||
"59": "设置同步忽略列表失败",
|
||||
"60": "获取更新包失败:%s",
|
||||
"61": "⬆️ 新版本安装包已经准备就绪,是否现在安装新版本?",
|
||||
"61": "新版本安装包已经准备就绪,是否现在安装新版本?<br><br><span class='ft__on-surface'>请注意,需要先等待思源笔记完全退出再进行安装</span>",
|
||||
"62": "⬆️ 新版本安装包已经准备就绪,退出时将询问是否安装新版本",
|
||||
"63": "正在恢复,请稍等...",
|
||||
"64": "共有文件 [%d] 个,需要一些时间进行索引,请稍等...",
|
||||
|
|
@ -1541,7 +1542,7 @@
|
|||
"100": "正在清理数据...",
|
||||
"101": "设置提醒完毕 [%s]",
|
||||
"102": "处理完毕",
|
||||
"103": "已经在后台开始自动下载更新安装包,退出时将询问是否安装新版本",
|
||||
"103": "已经自动开始下载更新安装包,下载进度将在底栏显示",
|
||||
"104": "更新安装包下载失败,请检查网络连接",
|
||||
"105": "未命名",
|
||||
"106": "最大长度限制为 512 字符",
|
||||
|
|
|
|||
|
|
@ -305,7 +305,6 @@ export const exitSiYuan = async (setCurrentWorkspace = true) => {
|
|||
window.webkit.messageHandlers.exit.postMessage("");
|
||||
return;
|
||||
}
|
||||
|
||||
if (isInHarmony()) {
|
||||
window.JSHarmony.exit();
|
||||
return;
|
||||
|
|
@ -321,7 +320,7 @@ export const exitSiYuan = async (setCurrentWorkspace = true) => {
|
|||
ipcRenderer.send(Constants.SIYUAN_SHOW_WINDOW);
|
||||
}
|
||||
|
||||
confirmDialog(window.siyuan.languages.tip, response.msg, () => {
|
||||
confirmDialog(window.siyuan.languages.updateVersion, response.msg, () => {
|
||||
fetchPost("/api/system/exit", {
|
||||
force: true,
|
||||
setCurrentWorkspace,
|
||||
|
|
|
|||
|
|
@ -272,9 +272,6 @@ func refreshCheckDownloadInstallPkg() {
|
|||
|
||||
time.Sleep(3 * time.Minute)
|
||||
checkDownloadInstallPkg()
|
||||
if "" != getNewVerInstallPkgPath() {
|
||||
util.PushMsg(Conf.Language(62), 15*1000)
|
||||
}
|
||||
}
|
||||
|
||||
func refreshAnnouncement() {
|
||||
|
|
|
|||
|
|
@ -711,6 +711,7 @@ func Close(force, setCurrentWorkspace bool, execInstallPkg int) (exitCode int) {
|
|||
|
||||
util.IsExiting.Store(true)
|
||||
waitSecondForExecInstallPkg := false
|
||||
newVerInstallPkgPath := getNewVerInstallPkgPath()
|
||||
if !skipNewVerInstallPkg() && "" != newVerInstallPkgPath {
|
||||
if 2 == execInstallPkg || (force && 0 == execInstallPkg) { // 执行新版本安装
|
||||
waitSecondForExecInstallPkg = true
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ import (
|
|||
"path"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strconv"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
|
@ -35,6 +34,7 @@ import (
|
|||
"github.com/imroc/req/v3"
|
||||
"github.com/siyuan-note/logging"
|
||||
"github.com/siyuan-note/siyuan/kernel/util"
|
||||
"golang.org/x/mod/semver"
|
||||
)
|
||||
|
||||
func execNewVerInstallPkg(newVerInstallPkgPath string) {
|
||||
|
|
@ -45,6 +45,9 @@ func execNewVerInstallPkg(newVerInstallPkgPath string) {
|
|||
} else if gulu.OS.IsDarwin() {
|
||||
exec.Command("chmod", "+x", newVerInstallPkgPath).CombinedOutput()
|
||||
cmd = exec.Command("open", newVerInstallPkgPath)
|
||||
} else {
|
||||
logging.LogErrorf("unsupported platform for auto-installing package")
|
||||
return
|
||||
}
|
||||
gulu.CmdAttr(cmd)
|
||||
cmdErr := cmd.Run()
|
||||
|
|
@ -54,28 +57,23 @@ func execNewVerInstallPkg(newVerInstallPkgPath string) {
|
|||
}
|
||||
}
|
||||
|
||||
var newVerInstallPkgPath string
|
||||
|
||||
func getNewVerInstallPkgPath() string {
|
||||
if skipNewVerInstallPkg() {
|
||||
newVerInstallPkgPath = ""
|
||||
return ""
|
||||
}
|
||||
|
||||
downloadPkgURLs, checksum, err := getUpdatePkg()
|
||||
if err != nil || 1 > len(downloadPkgURLs) || "" == checksum {
|
||||
newVerInstallPkgPath = ""
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
|
||||
pkg := path.Base(downloadPkgURLs[0])
|
||||
newVerInstallPkgPath = filepath.Join(util.TempDir, "install", pkg)
|
||||
localChecksum, _ := sha256Hash(newVerInstallPkgPath)
|
||||
pkgPath := filepath.Join(util.TempDir, "install", pkg)
|
||||
localChecksum, _ := sha256Hash(pkgPath)
|
||||
if checksum != localChecksum {
|
||||
newVerInstallPkgPath = ""
|
||||
return ""
|
||||
}
|
||||
return newVerInstallPkgPath
|
||||
return pkgPath
|
||||
}
|
||||
|
||||
var checkDownloadInstallPkgLock = sync.Mutex{}
|
||||
|
|
@ -93,22 +91,30 @@ func checkDownloadInstallPkg() {
|
|||
defer checkDownloadInstallPkgLock.Unlock()
|
||||
|
||||
downloadPkgURLs, checksum, err := getUpdatePkg()
|
||||
if err != nil || 1 > len(downloadPkgURLs) || "" == checksum {
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
msgId := util.PushMsg(Conf.Language(103), 1000*7)
|
||||
succ := false
|
||||
existingPkgPath := getNewVerInstallPkgPath()
|
||||
if "" != existingPkgPath {
|
||||
// 存在经过 sha256Hash 检查的安装包
|
||||
util.PushUpdateMsg("update-pkg-ready", Conf.Language(62), 15*1000)
|
||||
return
|
||||
}
|
||||
|
||||
util.PushUpdateMsg("update-pkg-downloading", Conf.Language(103), 1000*7)
|
||||
success := false
|
||||
for _, downloadPkgURL := range downloadPkgURLs {
|
||||
err = downloadInstallPkg(downloadPkgURL, checksum)
|
||||
if err == nil {
|
||||
succ = true
|
||||
success = true
|
||||
break
|
||||
|
||||
}
|
||||
}
|
||||
if !succ {
|
||||
util.PushUpdateMsg(msgId, Conf.Language(104), 7000)
|
||||
if success {
|
||||
util.PushUpdateMsg("update-pkg-ready", Conf.Language(62), 15*1000)
|
||||
} else {
|
||||
util.PushUpdateMsg("update-pkg-downloading", Conf.Language(104), 7000)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -121,6 +127,7 @@ func getUpdatePkg() (downloadPkgURLs []string, checksum string, err error) {
|
|||
|
||||
ver := result["ver"].(string)
|
||||
if isVersionUpToDate(ver) {
|
||||
err = fmt.Errorf("version is up to date")
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -158,6 +165,11 @@ func getUpdatePkg() (downloadPkgURLs []string, checksum string, err error) {
|
|||
|
||||
checksums := result["checksums"].(map[string]interface{})
|
||||
checksum = checksums[pkg].(string)
|
||||
|
||||
if "" == checksum {
|
||||
err = fmt.Errorf("checksum is empty")
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -277,88 +289,42 @@ func CheckUpdate(showMsg bool) {
|
|||
releaseLang = releaseLangArg.(string)
|
||||
}
|
||||
|
||||
var msg string
|
||||
var timeout int
|
||||
if isVersionUpToDate(ver) {
|
||||
msg = Conf.Language(10)
|
||||
timeout = 3000
|
||||
util.PushUpdateMsg("update-notify", Conf.Language(10), 3000)
|
||||
} else {
|
||||
msg = fmt.Sprintf(Conf.Language(9), "<a href=\""+releaseLang+"\">"+releaseLang+"</a>")
|
||||
showMsg = true
|
||||
timeout = 15000
|
||||
}
|
||||
if showMsg {
|
||||
util.PushMsg(msg, timeout)
|
||||
go func() {
|
||||
defer logging.Recover()
|
||||
checkDownloadInstallPkg()
|
||||
if "" != getNewVerInstallPkgPath() {
|
||||
util.PushMsg(Conf.Language(62), 15*1000)
|
||||
}
|
||||
}()
|
||||
util.PushUpdateMsg("update-notify", fmt.Sprintf(Conf.Language(9), "<a href=\""+releaseLang+"\">"+releaseLang+"</a>"), 15000)
|
||||
}
|
||||
go func() {
|
||||
defer logging.Recover()
|
||||
checkDownloadInstallPkg()
|
||||
}()
|
||||
}
|
||||
|
||||
func isVersionUpToDate(releaseVer string) bool {
|
||||
return ver2num(releaseVer) <= ver2num(util.Ver)
|
||||
return semver.Compare("v"+releaseVer, "v"+util.Ver) <= 0
|
||||
}
|
||||
|
||||
// skipInstallPkgPlatformCached 缓存平台相关判断,-1 未初始化,0 表示不跳过,1 表示跳过
|
||||
var skipInstallPkgPlatformCached = -1
|
||||
|
||||
func skipNewVerInstallPkg() bool {
|
||||
if !gulu.OS.IsWindows() && !gulu.OS.IsDarwin() {
|
||||
return true
|
||||
}
|
||||
if util.ISMicrosoftStore || util.ContainerStd != util.Container {
|
||||
return true
|
||||
}
|
||||
if !Conf.System.DownloadInstallPkg {
|
||||
return true
|
||||
}
|
||||
if gulu.OS.IsWindows() {
|
||||
plat := strings.ToLower(Conf.System.OSPlatform)
|
||||
// Windows 7, 8 and Server 2012 are no longer supported https://github.com/siyuan-note/siyuan/issues/7347
|
||||
if strings.Contains(plat, " 7 ") || strings.Contains(plat, " 8 ") || strings.Contains(plat, "2012") {
|
||||
return true
|
||||
if skipInstallPkgPlatformCached == -1 {
|
||||
skipInstallPkgPlatformCached = 0
|
||||
if !gulu.OS.IsWindows() && !gulu.OS.IsDarwin() {
|
||||
skipInstallPkgPlatformCached = 1
|
||||
} else if util.ISMicrosoftStore || util.ContainerStd != util.Container {
|
||||
skipInstallPkgPlatformCached = 1
|
||||
} else if gulu.OS.IsWindows() {
|
||||
plat := strings.ToLower(Conf.System.OSPlatform)
|
||||
// Windows 7, 8 and Server 2012 are no longer supported https://github.com/siyuan-note/siyuan/issues/7347
|
||||
if strings.Contains(plat, " 7 ") || strings.Contains(plat, " 8 ") || strings.Contains(plat, "2012") {
|
||||
skipInstallPkgPlatformCached = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if skipInstallPkgPlatformCached == 1 || !Conf.System.DownloadInstallPkg {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func ver2num(a string) int {
|
||||
var version string
|
||||
var suffixpos int
|
||||
var suffixStr string
|
||||
var suffix string
|
||||
a = strings.Trim(a, " ")
|
||||
if strings.Contains(a, "alpha") {
|
||||
suffixpos = strings.Index(a, "-alpha")
|
||||
version = a[0:suffixpos]
|
||||
suffixStr = a[suffixpos+6 : len(a)]
|
||||
suffix = "0" + fmt.Sprintf("%03s", suffixStr)
|
||||
} else if strings.Contains(a, "beta") {
|
||||
suffixpos = strings.Index(a, "-beta")
|
||||
version = a[0:suffixpos]
|
||||
suffixStr = a[suffixpos+5 : len(a)]
|
||||
suffix = "1" + fmt.Sprintf("%03s", suffixStr)
|
||||
} else {
|
||||
version = a
|
||||
suffix = "5000"
|
||||
}
|
||||
split := strings.Split(version, ".")
|
||||
var verArr []string
|
||||
|
||||
verArr = append(verArr, "1")
|
||||
var tmp string
|
||||
for i := 0; i < 3; i++ {
|
||||
if i < len(split) {
|
||||
tmp = split[i]
|
||||
} else {
|
||||
tmp = "0"
|
||||
}
|
||||
verArr = append(verArr, fmt.Sprintf("%04s", tmp))
|
||||
}
|
||||
verArr = append(verArr, suffix)
|
||||
|
||||
ver := strings.Join(verArr, "")
|
||||
verNum, _ := strconv.Atoi(ver)
|
||||
return verNum
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue