enchancements to install from url
This commit is contained in:
@@ -113,7 +113,7 @@ STR_DOWNLOAD_INSTALL_MSG=تثبيت الحزمة عن بعد غير ممكن. ه
|
|||||||
STR_CHECKING_REMOTE_SERVER_MSG=التحقق من الخادم البعيد لتثبيت الحزمة عن بعد.
|
STR_CHECKING_REMOTE_SERVER_MSG=التحقق من الخادم البعيد لتثبيت الحزمة عن بعد.
|
||||||
STR_ENABLE_RPI=RPI
|
STR_ENABLE_RPI=RPI
|
||||||
STR_ENABLE_RPI_FTP_SMB_MSG=يتيح هذا الخيار تثبيت الحزمة عن بُعد عبر خادم الويب المضمن.
|
STR_ENABLE_RPI_FTP_SMB_MSG=يتيح هذا الخيار تثبيت الحزمة عن بُعد عبر خادم الويب المضمن.
|
||||||
STR_ENABLE_RPI_WEBDAV_MSG==يتيح هذا الخيار تثبيت الحزمة عن بُعد عبر خادم الويب المضمن.
|
STR_ENABLE_RPI_WEBDAV_MSG=يتيح هذا الخيار تثبيت الحزمة عن بُعد عبر خادم الويب المضمن.
|
||||||
STR_FILES=الملفات
|
STR_FILES=الملفات
|
||||||
STR_EDITOR=المحرر
|
STR_EDITOR=المحرر
|
||||||
STR_SAVE=حفظ
|
STR_SAVE=حفظ
|
||||||
|
|||||||
@@ -112,8 +112,8 @@ STR_CANNOT_CONNECT_REMOTE_MSG=Remote HTTP Server not reachable.
|
|||||||
STR_DOWNLOAD_INSTALL_MSG=Remote Package Install not possible. Would you like to download package and install instead?
|
STR_DOWNLOAD_INSTALL_MSG=Remote Package Install not possible. Would you like to download package and install instead?
|
||||||
STR_CHECKING_REMOTE_SERVER_MSG=Checking remote server for Remote Package Install.
|
STR_CHECKING_REMOTE_SERVER_MSG=Checking remote server for Remote Package Install.
|
||||||
STR_ENABLE_RPI=RPI
|
STR_ENABLE_RPI=RPI
|
||||||
STR_ENABLE_RPI_FTP_SMB_MSG=This option enables Remote Package Installation via embedded Web Server.
|
STR_ENABLE_RPI_FTP_SMB_MSG=This option enables Remote Package Installation via embedded Web Server proxy.
|
||||||
STR_ENABLE_RPI_WEBDAV_MSG==This option enables Remote Package Installation via embedded Web Server.
|
STR_ENABLE_RPI_WEBDAV_MSG=This option enables Remote Package Installation via embedded Web Server proxy.
|
||||||
STR_FILES=Files
|
STR_FILES=Files
|
||||||
STR_EDITOR=Editor
|
STR_EDITOR=Editor
|
||||||
STR_SAVE=Save
|
STR_SAVE=Save
|
||||||
@@ -160,4 +160,7 @@ STR_LANGUAGE=Language
|
|||||||
STR_TEMP_DIRECTORY=Temp Directory
|
STR_TEMP_DIRECTORY=Temp Directory
|
||||||
STR_REALDEBRID=Real-Debrid
|
STR_REALDEBRID=Real-Debrid
|
||||||
STR_BACKGROUND_INSTALL_INPROGRESS=Package install is running in the background. Don't close the app while install is in progress
|
STR_BACKGROUND_INSTALL_INPROGRESS=Package install is running in the background. Don't close the app while install is in progress
|
||||||
STR_ENABLE_DISC_CACHE_MSG=Enable disk caching. Can improve package install speed in cases where connection to remote is slow
|
STR_ENABLE_DISC_CACHE_MSG=Enable disk caching. Can improve Remote Package Install speed in cases where connection to remote is slow, but breaks resuming of install
|
||||||
|
STR_ENABLE_ALLDEBRID_MSG=Install Via AllDebrid
|
||||||
|
STR_ENABLE_REALDEBRID_MSG=Install Via RealDebrid
|
||||||
|
STR_ENABLE_DISKCACHE_DESC=Enable Disk Cache
|
||||||
@@ -25,7 +25,7 @@ STR_FILE=파일
|
|||||||
STR_TYPE=종류
|
STR_TYPE=종류
|
||||||
STR_NAME=이름
|
STR_NAME=이름
|
||||||
STR_SIZE=크기
|
STR_SIZE=크기
|
||||||
STR_DATE=일시
|
STR_DATE=날짜
|
||||||
STR_NEW_FOLDER=새 폴더
|
STR_NEW_FOLDER=새 폴더
|
||||||
STR_RENAME=이름 변경
|
STR_RENAME=이름 변경
|
||||||
STR_DELETE=삭제
|
STR_DELETE=삭제
|
||||||
@@ -39,7 +39,7 @@ STR_OVERWRITE=덮어쓰기
|
|||||||
STR_DONT_OVERWRITE=덮어쓰기 금지
|
STR_DONT_OVERWRITE=덮어쓰기 금지
|
||||||
STR_ASK_FOR_CONFIRM=수락여부를 질문
|
STR_ASK_FOR_CONFIRM=수락여부를 질문
|
||||||
STR_DONT_ASK_CONFIRM=수락여부를 묻지 않음
|
STR_DONT_ASK_CONFIRM=수락여부를 묻지 않음
|
||||||
STR_ALLWAYS_USE_OPTION=두번다시 묻지 않고 항상 이 설정을 사용
|
STR_ALLWAYS_USE_OPTION=두 번 다시 묻지 않고 항상 이 설정을 사용
|
||||||
STR_ACTIONS=실행
|
STR_ACTIONS=실행
|
||||||
STR_CONFIRM=확인
|
STR_CONFIRM=확인
|
||||||
STR_OVERWRITE_OPTIONS=덮어쓰기 옵션
|
STR_OVERWRITE_OPTIONS=덮어쓰기 옵션
|
||||||
@@ -59,3 +59,75 @@ STR_FAIL_DEL_DIR_MSG=디렉토리 삭제에 실패하였습니다.
|
|||||||
STR_DELETING=삭제 중
|
STR_DELETING=삭제 중
|
||||||
STR_FAIL_DEL_FILE_MSG=파일 삭제에 실패하였습니다.
|
STR_FAIL_DEL_FILE_MSG=파일 삭제에 실패하였습니다.
|
||||||
STR_DELETED=삭제됨
|
STR_DELETED=삭제됨
|
||||||
|
STR_LINK=링크
|
||||||
|
STR_SHARE=공유
|
||||||
|
STR_FAILED=310 실패함
|
||||||
|
STR_FAIL_CREATE_LOCAL_FILE_MSG=310 로컬에서 파일을 만들기 실패함
|
||||||
|
STR_INSTALL=설치
|
||||||
|
STR_INSTALLING=설치 중
|
||||||
|
STR_INSTALL_SUCCESS=성공
|
||||||
|
STR_INSTALL_FAILED=실패함
|
||||||
|
STR_INSTALL_SKIPPED=건너뜀
|
||||||
|
STR_CHECK_HTTP_MSG=원격 HTTP 서버에 대한 연결 확인
|
||||||
|
STR_FAILED_HTTP_CHECK=HTTP 서버에 연결에 실패함
|
||||||
|
STR_REMOTE_NOT_HTTP=원격이 HTTP 서버가 아님
|
||||||
|
STR_INSTALL_FROM_DATA_MSG=패키지가 /data 또는 /mnt/usbX 폴더에 없음
|
||||||
|
STR_ALREADY_INSTALLED_MSG=패키지가 이미 설치되었음
|
||||||
|
STR_INSTALL_FROM_URL=URL에서 설치
|
||||||
|
STR_CANNOT_READ_PKG_HDR_MSG=패키지 헤더 정보를 읽을 수 없음
|
||||||
|
STR_FAVORITE_URLS=즐겨찾기 URL
|
||||||
|
STR_SLOT=슬롯
|
||||||
|
STR_EDIT=편집
|
||||||
|
STR_ONETIME_URL=한 번만 Url
|
||||||
|
STR_NOT_A_VALID_PACKAGE=유효하지 않은 패키지
|
||||||
|
STR_WAIT_FOR_INSTALL_MSG=패키지 설치가 완료되기를 기다리는 중
|
||||||
|
STR_FAIL_INSTALL_TMP_PKG_MSG=pkg 파일을 설치하지 못했습니다. tmp pkg를 수동으로 삭제하세요.
|
||||||
|
STR_AUTO_DELETE_TMP_PKG=설치 후 임시로 다운로드한 pkg 파일을 자동으로 삭제
|
||||||
|
STR_PROTOCOL_NOT_SUPPORTED=지원되지 않는 프로토콜
|
||||||
|
STR_COULD_NOT_RESOLVE_HOST=호스트 이름을 확인할 수 없음
|
||||||
|
STR_EXTRACT=압축 해제
|
||||||
|
STR_EXTRACTING=압축 해제 중
|
||||||
|
STR_FAILED_TO_EXTRACT=압축 해제 실패함
|
||||||
|
STR_EXTRACT_LOCATION=압축 해제 위치
|
||||||
|
STR_COMPRESS=압축
|
||||||
|
STR_ZIP_FILE_PATH=Zip 파일 이름
|
||||||
|
STR_COMPRESSING=압축 중
|
||||||
|
STR_ERROR_CREATE_ZIP=zip 파일을 만드는 동안 오류 발생
|
||||||
|
STR_UNSUPPORTED_FILE_FORMAT=지원되지 않는 압축 파일 형식
|
||||||
|
STR_CUT=잘라내기
|
||||||
|
STR_COPY=복사
|
||||||
|
STR_PASTE=붙여넣기
|
||||||
|
STR_MOVING=이동 중
|
||||||
|
STR_COPYING=복사 중
|
||||||
|
STR_FAIL_MOVE_MSG=파일 이동 실패함
|
||||||
|
STR_FAIL_COPY_MSG=파일 복사 실패함
|
||||||
|
STR_CANT_MOVE_TO_SUBDIR_MSG=상위 디렉토리를 하위 디렉토리로 이동할 수 없음
|
||||||
|
STR_CANT_COPY_TO_SUBDIR_MSG=상위 디렉토리를 하위 디렉토리로 복사할 수 없음
|
||||||
|
STR_UNSUPPORTED_OPERATION_MSG=지원되지 않는 작업
|
||||||
|
STR_HTTP_PORT=Http 포트
|
||||||
|
STR_REINSTALL_CONFIRM_MSG=콘텐츠가 이미 설치되었습니다. 설치를 계속할까요?
|
||||||
|
STR_REMOTE_NOT_SUPPORT_MSG=보호된 서버에서는 원격 패키지 설치가 지원되지 않습니다.
|
||||||
|
STR_CANNOT_CONNECT_REMOTE_MSG=원격 HTTP 서버에 연결할 수 없습니다.
|
||||||
|
STR_DOWNLOAD_INSTALL_MSG=원격 패키지 설치가 불가능합니다. 패키지를 다운로드하여 설치할까요?
|
||||||
|
STR_CHECKING_REMOTE_SERVER_MSG=원격 패키지 설치를 위해 원격 서버를 확인하고 있습니다.
|
||||||
|
STR_FILES=파일
|
||||||
|
STR_EDITOR=편집기
|
||||||
|
STR_SAVE=저장
|
||||||
|
STR_MAX_EDIT_FILE_SIZE_MSG=다음보다 큰 파일을 편집할 수 없음
|
||||||
|
STR_DELETE_LINE=선택한 줄 삭제
|
||||||
|
STR_INSERT_LINE=선택한 줄 아래에 삽입
|
||||||
|
STR_MODIFIED=수정됨
|
||||||
|
STR_FAIL_GET_TOKEN_MSG=다음에서 접속 토큰을 얻는데 실패함
|
||||||
|
STR_GET_TOKEN_SUCCESS_MSG=로그인에 성공했습니다. 브라우저를 닫고 애플리케이션으로 돌아갈 수 있음
|
||||||
|
STR_NEW_FILE=새 파일
|
||||||
|
STR_SETTINGS=설정
|
||||||
|
STR_GLOBAL=글로벌
|
||||||
|
STR_COPY_LINE=선택한 줄 복사
|
||||||
|
STR_PASTE_LINE=선택한 줄에 붙여넣기
|
||||||
|
STR_SHOW_HIDDEN_FILES=숨겨진 파일 표시
|
||||||
|
STR_SET_DEFAULT_DIRECTORY=기본 폴더 설정
|
||||||
|
STR_SET_DEFAULT_DIRECTORY_MSG=기본 디렉터리로 설정됨
|
||||||
|
STR_NFS_EXP_PATH_MISSING_MSG=URL에 NFS 내보내기 경로 없음
|
||||||
|
STR_FAIL_INIT_NFS_CONTEXT=NFS 컨텍스트를 초기화 실패함
|
||||||
|
STR_FAIL_MOUNT_NFS_MSG=NFS 공유를 마운트 실패함
|
||||||
|
STR_VIEW_IMAGE=이미지 보기
|
||||||
|
|||||||
@@ -1,75 +1,133 @@
|
|||||||
STR_CONNECTION_SETTINGS=Bağlantı Ayarları
|
STR_CONNECTION_SETTINGS=Bağlantı Ayarları
|
||||||
STR_SITE=Site
|
STR_SITE=Site
|
||||||
STR_LOCAL=Yerel
|
STR_LOCAL=Yerel
|
||||||
STR_REMOTE=Uzaktan
|
STR_REMOTE=Uzak
|
||||||
STR_MESSAGES=Mesajlar
|
STR_MESSAGES=Mesajlar
|
||||||
STR_UPDATE_SOFTWARE=Yazılımı Güncelle
|
STR_UPDATE_SOFTWARE=Yazılımı Güncelle
|
||||||
STR_CONNECT=Bağlan
|
STR_CONNECT=Bağlan
|
||||||
STR_DISCONNECT=Bağlantıyı kes
|
STR_DISCONNECT=Bağlantıyı Kes
|
||||||
STR_SEARCH=Ara
|
STR_SEARCH=Arama
|
||||||
STR_REFRESH=Yenile
|
STR_REFRESH=Yenile
|
||||||
STR_SERVER=Sunucu
|
STR_SERVER=Sunucu
|
||||||
STR_USERNAME=Kullanıcı Adı
|
STR_USERNAME=Kullanıcı Adı
|
||||||
STR_PASSWORD=Şifre
|
STR_PASSWORD=Parola
|
||||||
STR_PORT=Port
|
STR_PORT=Port
|
||||||
STR_PASV=Pasv
|
STR_PASV=Pasif
|
||||||
STR_DIRECTORY=Dizin
|
STR_DIRECTORY=Dizin
|
||||||
STR_FILTER=Filtre
|
STR_FILTER=Filtre
|
||||||
STR_YES=Evet
|
STR_YES=Evet
|
||||||
STR_NO=Hayır
|
STR_NO=Hayır
|
||||||
STR_CANCEL=İptal
|
STR_CANCEL=İptal
|
||||||
STR_CONTINUE=Devam
|
STR_CONTINUE=Devam Et
|
||||||
STR_CLOSE=Kapat
|
STR_CLOSE=Kapat
|
||||||
STR_FOLDER=Klasör
|
STR_FOLDER=Klasör
|
||||||
STR_FILE=Dosya
|
STR_FILE=Dosya
|
||||||
STR_TYPE=Tip
|
STR_TYPE=Tür
|
||||||
STR_NAME=Ad
|
STR_NAME=Ad
|
||||||
STR_SIZE=Boyut
|
STR_SIZE=Boyut
|
||||||
STR_DATE=Tarih
|
STR_DATE=Tarih
|
||||||
STR_NEW_FOLDER=Yeni Klasör
|
STR_NEW_FOLDER=Yeni Klasör
|
||||||
STR_RENAME=Yeniden Adlandır
|
STR_RENAME=Yeniden Adlandır
|
||||||
STR_DELETE=Sil
|
STR_DELETE=Sil
|
||||||
STR_UPLOAD=Karşıya Yükle
|
STR_UPLOAD=Yükle
|
||||||
STR_DOWNLOAD=İndir
|
STR_DOWNLOAD=İndir
|
||||||
STR_SELECT_ALL=Tümünü Seç
|
STR_SELECT_ALL=Hepsini Seç
|
||||||
STR_CLEAR_ALL=Tümünü Temizle
|
STR_CLEAR_ALL=Hepsini Temizle
|
||||||
STR_UPLOADING=Karşıya Yükleniyor
|
STR_UPLOADING=Yükleniyor
|
||||||
STR_DOWNLOADING=İndiriliyor
|
STR_DOWNLOADING=İndiriliyor
|
||||||
STR_OVERWRITE=Üzerine yaz
|
STR_OVERWRITE=Üzerine Yaz
|
||||||
STR_DONT_OVERWRITE=Üzerine yazma
|
STR_DONT_OVERWRITE=Üzerine Yazma
|
||||||
STR_ASK_FOR_CONFIRM=Onaylamak için sor
|
STR_ASK_FOR_CONFIRM=Onay İste
|
||||||
STR_DONT_ASK_CONFIRM=Onaylamak için sorma
|
STR_DONT_ASK_CONFIRM=Onay İsteme
|
||||||
STR_ALLWAYS_USE_OPTION=Daima bu seçeneği kullan ve bir daha sorma
|
STR_ALLWAYS_USE_OPTION=Bu seçeneği her zaman kullan ve bir daha sorma
|
||||||
STR_ACTIONS=Eylemler
|
STR_ACTIONS=İşlemler
|
||||||
STR_CONFIRM=Onayla
|
STR_CONFIRM=Onayla
|
||||||
STR_OVERWRITE_OPTIONS=Ayarların üzerine yaz
|
STR_OVERWRITE_OPTIONS=Üzerine Yazma Seçenekleri
|
||||||
STR_PROPERTIES=Özellikler
|
STR_PROPERTIES=Özellikler
|
||||||
STR_PROGRESS=Durum
|
STR_PROGRESS=İlerleme
|
||||||
STR_UPDATES=Güncellemeler
|
STR_UPDATES=Güncellemeler
|
||||||
STR_DEL_CONFIRM_MSG=Bu dosya(ları)/klasör(leri) silmek istediğinizden emin misiniz?
|
STR_DEL_CONFIRM_MSG=Bu dosya(ları)/klasör(leri) silmek istediğinizden emin misiniz?
|
||||||
STR_CANCEL_ACTION_MSG=İptal ediliyor. Son işlemin tamamlanması bekleniyor
|
STR_CANCEL_ACTION_MSG=İptal ediliyor. Son eylemin tamamlanması bekleniyor
|
||||||
STR_FAIL_UPLOAD_MSG=Dosya karşıya yükleme başarısız
|
STR_FAIL_UPLOAD_MSG=Dosya yüklenemedi
|
||||||
STR_FAIL_DOWNLOAD_MSG=Dosya indirme başarısız
|
STR_FAIL_DOWNLOAD_MSG=Dosya indirilemedi
|
||||||
STR_FAIL_READ_LOCAL_DIR_MSG=Dizindeki içerikler okunamadı ya da öyle bir klasör yok
|
STR_FAIL_READ_LOCAL_DIR_MSG=Yerel dizinin içeriği okunamadı veya klasör mevcut değil.
|
||||||
STR_CONNECTION_CLOSE_ERR_MSG=426 Bağlantı kesildi.
|
STR_CONNECTION_CLOSE_ERR_MSG=426 Bağlantı kapatıldı.
|
||||||
STR_REMOTE_TERM_CONN_MSG=426 Uzaktan Sunucu bağlantıyı kesti.
|
STR_REMOTE_TERM_CONN_MSG=426 Uzak Sunucu bağlantıyı sonlandırdı.
|
||||||
STR_FAIL_LOGIN_MSG=300 Giriş başarısız. Lütfen kullanıcı adınızı ve şifrenizi kontrol edin.
|
STR_FAIL_LOGIN_MSG=300 Giriş Başarısız. Lütfen kullanıcı adınızı veya şifrenizi kontrol edin.
|
||||||
STR_FAIL_TIMEOUT_MSG=426 Başarısız. Bağlantı zaman aşımına uğradı.
|
STR_FAIL_TIMEOUT_MSG=426 Başarısız. Bağlantı zaman aşımına uğradı.
|
||||||
STR_FAIL_DEL_DIR_MSG=Dizin silme başarısız
|
STR_FAIL_DEL_DIR_MSG=Dizin silinemedi
|
||||||
STR_DELETING=Siliniyor
|
STR_DELETING=Siliniyor
|
||||||
STR_FAIL_DEL_FILE_MSG=Dosya silme başarısız
|
STR_FAIL_DEL_FILE_MSG=Dosya silinemedi
|
||||||
STR_DELETED=Silindi
|
STR_DELETED=Silindi
|
||||||
STR_LINK=Link
|
STR_LINK=Bağlantı
|
||||||
STR_SHARE=Paylaş
|
STR_SHARE=Paylaş
|
||||||
STR_FAILED=310 Başarısız
|
STR_FAILED=310 Başarısız
|
||||||
STR_FAIL_CREATE_LOCAL_FILE_MSG=310 Yerelde dosya oluşturulumu başarısız
|
STR_FAIL_CREATE_LOCAL_FILE_MSG=310 Yerelde dosya oluşturulamadı
|
||||||
STR_INSTALL=Yükle
|
STR_INSTALL=Kur
|
||||||
STR_INSTALLING=Yükleniyor
|
STR_INSTALLING=Kuruluyor
|
||||||
STR_INSTALL_SUCCESS=Başarılı
|
STR_INSTALL_SUCCESS=Başarılı
|
||||||
STR_INSTALL_FAILED=Başarısız
|
STR_INSTALL_FAILED=Başarısız
|
||||||
STR_INSTALL_SKIPPED=Atlandı
|
STR_INSTALL_SKIPPED=Atlandı
|
||||||
STR_CHECK_HTTP_MSG=Uzaktan HTTP Sunucusu bağlantısı kontrol ediliyor
|
STR_CHECK_HTTP_MSG=Uzak HTTP Sunucusuna bağlantı kontrol ediliyor
|
||||||
STR_FAILED_HTTP_CHECK=HTTP Sunucusuna bağlantı başarısız
|
STR_FAILED_HTTP_CHECK=HTTP Sunucusuna bağlanılamadı
|
||||||
STR_REMOTE_NOT_HTTP=Uzaktaki HTTP Sunucusu değil
|
STR_REMOTE_NOT_HTTP=Uzak bir HTTP Sunucusu değil
|
||||||
STR_INSTALL_FROM_DATA_MSG=Paket /data ya da /mnt/usbX dizininde değil
|
STR_INSTALL_FROM_DATA_MSG=Paket /data veya /mnt/usbX klasöründe değil
|
||||||
STR_ALREADY_INSTALLED_MSG=Paket zaten kurulu
|
STR_ALREADY_INSTALLED_MSG=Paket zaten kurulu
|
||||||
|
STR_INSTALL_FROM_URL=URL'den Kur
|
||||||
|
STR_CANNOT_READ_PKG_HDR_MSG=Paket başlık bilgisi okunamadı
|
||||||
|
STR_FAVORITE_URLS=Favori URL'ler
|
||||||
|
STR_SLOT=Yuva
|
||||||
|
STR_EDIT=Düzenle
|
||||||
|
STR_ONETIME_URL=Tek Seferlik URL
|
||||||
|
STR_NOT_A_VALID_PACKAGE=Geçerli bir Paket değil
|
||||||
|
STR_WAIT_FOR_INSTALL_MSG=Paketin kurulmasının tamamlanması bekleniyor
|
||||||
|
STR_FAIL_INSTALL_TMP_PKG_MSG=Geçici paketin kurulumu başarısız. Lütfen geçici paketi manuel olarak silin
|
||||||
|
STR_AUTO_DELETE_TMP_PKG=Kurulumdan sonra geçici indirilen paketi otomatik olarak sil
|
||||||
|
STR_PROTOCOL_NOT_SUPPORTED=Protokol desteklenmiyor
|
||||||
|
STR_COULD_NOT_RESOLVE_HOST=Ana bilgisayar adı çözülemedi
|
||||||
|
STR_EXTRACT=Çıkart
|
||||||
|
STR_EXTRACTING=Çıkartılıyor
|
||||||
|
STR_FAILED_TO_EXTRACT=Çıkartma başarısız oldu
|
||||||
|
STR_EXTRACT_LOCATION=Çıkartılacak Konum
|
||||||
|
STR_COMPRESS=Sıkıştır
|
||||||
|
STR_ZIP_FILE_PATH=Zip Dosya Adı
|
||||||
|
STR_COMPRESSING=Sıkıştırılıyor
|
||||||
|
STR_ERROR_CREATE_ZIP=Zip oluşturulurken hata oluştu
|
||||||
|
STR_UNSUPPORTED_FILE_FORMAT=Desteklenmeyen sıkıştırılmış dosya formatı
|
||||||
|
STR_CUT=Kes
|
||||||
|
STR_COPY=Kopyala
|
||||||
|
STR_PASTE=Yapıştır
|
||||||
|
STR_MOVING=Taşınıyor
|
||||||
|
STR_COPYING=Kopyalanıyor
|
||||||
|
STR_FAIL_MOVE_MSG=Dosya taşınamadı
|
||||||
|
STR_FAIL_COPY_MSG=Dosya kopyalanamadı
|
||||||
|
STR_CANT_MOVE_TO_SUBDIR_MSG=Ana dizin alt dizinine taşınamaz
|
||||||
|
STR_CANT_COPY_TO_SUBDIR_MSG=Ana dizin alt dizinine kopyalanamaz
|
||||||
|
STR_UNSUPPORTED_OPERATION_MSG=Desteklenmeyen işlem
|
||||||
|
STR_HTTP_PORT=Http Portu
|
||||||
|
STR_REINSTALL_CONFIRM_MSG=İçerik zaten kurulu. Kuruluma devam etmek istiyor musunuz?
|
||||||
|
STR_REMOTE_NOT_SUPPORT_MSG=Korunan sunucular için uzak paket kurulumu desteklenmiyor.
|
||||||
|
STR_CANNOT_CONNECT_REMOTE_MSG=Uzak HTTP Sunucusuna bağlanılamıyor.
|
||||||
|
STR_DOWNLOAD_INSTALL_MSG=Uzak Paket Kurulumu mümkün değil. Paketi indirip kurmak ister misiniz?
|
||||||
|
STR_CHECKING_REMOTE_SERVER_MSG=Uzak Paket Kurulumu için uzak sunucu kontrol ediliyor.
|
||||||
|
STR_FILES=Dosyalar
|
||||||
|
STR_EDITOR=Düzenleyici
|
||||||
|
STR_SAVE=Kaydet
|
||||||
|
STR_MAX_EDIT_FILE_SIZE_MSG=Boyutu şu büyüklükten büyük dosyalar düzenlenemez
|
||||||
|
STR_DELETE_LINE=Seçili Satırı Sil
|
||||||
|
STR_INSERT_LINE=Seçili Satırın Altına Ekle
|
||||||
|
STR_MODIFIED=Değiştirildi
|
||||||
|
STR_FAIL_GET_TOKEN_MSG=Erişim token'ı alınamadı
|
||||||
|
STR_GET_TOKEN_SUCCESS_MSG=Giriş Başarılı. Tarayıcıyı kapatıp uygulamaya dönebilirsiniz
|
||||||
|
STR_NEW_FILE=Yeni Dosya
|
||||||
|
STR_SETTINGS=Ayarlar
|
||||||
|
STR_GLOBAL=Genel
|
||||||
|
STR_COPY_LINE=Seçili satırı kopyala
|
||||||
|
STR_PASTE_LINE=Seçili satıra yapıştır
|
||||||
|
STR_SHOW_HIDDEN_FILES=Gizli dosyaları göster
|
||||||
|
STR_SET_DEFAULT_DIRECTORY=Varsayılan Klasörü Ayarla
|
||||||
|
STR_SET_DEFAULT_DIRECTORY_MSG=varsayılan dizin olarak ayarlandı
|
||||||
|
STR_NFS_EXP_PATH_MISSING_MSG=URL'de NFS dışa aktarma yolu eksik
|
||||||
|
STR_FAIL_INIT_NFS_CONTEXT=NFS bağlamı başlatılamadı
|
||||||
|
STR_FAIL_MOUNT_NFS_MSG=NFS paylaşımı bağlanamadı
|
||||||
|
STR_VIEW_IMAGE=Görüntüyü Görüntüle
|
||||||
|
|||||||
@@ -0,0 +1,133 @@
|
|||||||
|
STR_CONNECTION_SETTINGS=Cài đặt kết nối
|
||||||
|
STR_SITE=Vị trí
|
||||||
|
STR_LOCAL=Thiết bị
|
||||||
|
STR_REMOTE=Máy đích
|
||||||
|
STR_MESSAGES=Tin nhắn
|
||||||
|
STR_UPDATE_SOFTWARE=Cập nhật phần mềm
|
||||||
|
STR_CONNECT=Kết nối
|
||||||
|
STR_DISCONNECT=Ngắt kết nối
|
||||||
|
STR_SEARCH=Tìm kiếm
|
||||||
|
STR_REFRESH=Làm mới
|
||||||
|
STR_SERVER=Máy chủ
|
||||||
|
STR_USERNAME=Tên đăng nhập
|
||||||
|
STR_PASSWORD=Mật khẩu
|
||||||
|
STR_PORT=Cổng
|
||||||
|
STR_PASV=Pasv
|
||||||
|
STR_DIRECTORY=Thư mục
|
||||||
|
STR_FILTER=Bộ lọc
|
||||||
|
STR_YES=Đồng ý
|
||||||
|
STR_NO=Không
|
||||||
|
STR_CANCEL=Hủy bỏ
|
||||||
|
STR_CONTINUE=Tiếp tục
|
||||||
|
STR_CLOSE=Đóng
|
||||||
|
STR_FOLDER=Thư mục
|
||||||
|
STR_FILE=Tập tin
|
||||||
|
STR_TYPE=Loại
|
||||||
|
STR_NAME=Tên
|
||||||
|
STR_SIZE=Kích thước
|
||||||
|
STR_DATE=Ngày tháng
|
||||||
|
STR_NEW_FOLDER=Thư mục mới
|
||||||
|
STR_RENAME=Đổi tên
|
||||||
|
STR_DELETE=Xóa
|
||||||
|
STR_UPLOAD=Tải lên
|
||||||
|
STR_DOWNLOAD=Tải xuống
|
||||||
|
STR_SELECT_ALL=Chọn tất cả
|
||||||
|
STR_CLEAR_ALL=Bỏ chọn tất cả
|
||||||
|
STR_UPLOADING=Đang tải lên
|
||||||
|
STR_DOWNLOADING=Đang tải xuống
|
||||||
|
STR_OVERWRITE=Ghi đè
|
||||||
|
STR_DONT_OVERWRITE=Không ghi đè
|
||||||
|
STR_ASK_FOR_CONFIRM=Hỏi xác nhận
|
||||||
|
STR_DONT_ASK_CONFIRM=Không hỏi xác nhận
|
||||||
|
STR_ALLWAYS_USE_OPTION=Luôn dùng tùy chọn này và không hỏi lại
|
||||||
|
STR_ACTIONS=Hành động
|
||||||
|
STR_CONFIRM=Xác nhận
|
||||||
|
STR_OVERWRITE_OPTIONS=Tùy chọn ghi đè
|
||||||
|
STR_PROPERTIES=Thuộc tính
|
||||||
|
STR_PROGRESS=Tiến trình
|
||||||
|
STR_UPDATES=Cập nhật
|
||||||
|
STR_DEL_CONFIRM_MSG=Bạn có chắc chắn muốn xóa (những) tập tin / thư mục này không?
|
||||||
|
STR_CANCEL_ACTION_MSG=Hủy bỏ. Chờ hành động cuối cùng hoàn tất.Canceling.
|
||||||
|
STR_FAIL_UPLOAD_MSG=Không thể tải file lên
|
||||||
|
STR_FAIL_DOWNLOAD_MSG=Không thể tải file
|
||||||
|
STR_FAIL_READ_LOCAL_DIR_MSG=Không đọc được nội dung của thư mục hoặc thư mục không tồn tại.
|
||||||
|
STR_CONNECTION_CLOSE_ERR_MSG=426 Kết nối đã đóng.
|
||||||
|
STR_REMOTE_TERM_CONN_MSG=426 Máy chủ đã ngắt kết nối.
|
||||||
|
STR_FAIL_LOGIN_MSG=300 Đăng nhập thất bại. Vui lòng kiểm tra lại tên đăng nhập hoặc mật khẩu.
|
||||||
|
STR_FAIL_TIMEOUT_MSG=426 Thất bại. Quá thời gian kết nối.
|
||||||
|
STR_FAIL_DEL_DIR_MSG=Không thể xóa thư mục
|
||||||
|
STR_DELETING=Đang xóa
|
||||||
|
STR_FAIL_DEL_FILE_MSG=Không thể xóa tập tin
|
||||||
|
STR_DELETED=Đã xóa
|
||||||
|
STR_LINK=Liên kết
|
||||||
|
STR_SHARE=Chia sẻ
|
||||||
|
STR_FAILED=310 Lỗi
|
||||||
|
STR_FAIL_CREATE_LOCAL_FILE_MSG=310 Không thể tạo file trên máy này
|
||||||
|
STR_INSTALL=Cài đặt
|
||||||
|
STR_INSTALLING=Đang cài đặt
|
||||||
|
STR_INSTALL_SUCCESS=Thành công
|
||||||
|
STR_INSTALL_FAILED=Thất bại
|
||||||
|
STR_INSTALL_SKIPPED=Bỏ qua
|
||||||
|
STR_CHECK_HTTP_MSG=Đang kiểm tra kết nối tới máy chủ HTTP
|
||||||
|
STR_FAILED_HTTP_CHECK=Không thể kết nối tới máy chủ HTTP
|
||||||
|
STR_REMOTE_NOT_HTTP=Máy đích không phải máy chủ HTTP
|
||||||
|
STR_INSTALL_FROM_DATA_MSG=Package không có trong thư mục /data hoặc /mnt/usbX
|
||||||
|
STR_ALREADY_INSTALLED_MSG=Package đã được cài đặt
|
||||||
|
STR_INSTALL_FROM_URL=Cài từ địa chỉ URL
|
||||||
|
STR_CANNOT_READ_PKG_HDR_MSG=Không thể đọc được thông tin header của package
|
||||||
|
STR_FAVORITE_URLS=URLs yêu thích
|
||||||
|
STR_SLOT=Vị trí
|
||||||
|
STR_EDIT=Sửa
|
||||||
|
STR_ONETIME_URL=Url một lần
|
||||||
|
STR_NOT_A_VALID_PACKAGE=Package không đúng
|
||||||
|
STR_WAIT_FOR_INSTALL_MSG=Đợi Package kết thúc cài đặt
|
||||||
|
STR_FAIL_INSTALL_TMP_PKG_MSG=Không thể cài file pkg. Vui lòng xóa tmp pkg thủ công
|
||||||
|
STR_AUTO_DELETE_TMP_PKG=Tự động xóa file pkg được tải về tạm thời sau khi cài xong
|
||||||
|
STR_PROTOCOL_NOT_SUPPORTED=Protocol không được hỗ trợ
|
||||||
|
STR_COULD_NOT_RESOLVE_HOST=Không thể phân giải tên máy chủ
|
||||||
|
STR_EXTRACT=Giải nén
|
||||||
|
STR_EXTRACTING=Đang giải nén
|
||||||
|
STR_FAILED_TO_EXTRACT=Giải nén thất bại
|
||||||
|
STR_EXTRACT_LOCATION=Vị trí giải nén
|
||||||
|
STR_COMPRESS=Nén
|
||||||
|
STR_ZIP_FILE_PATH=Tên file Zip
|
||||||
|
STR_COMPRESSING=Đang nén
|
||||||
|
STR_ERROR_CREATE_ZIP=Lỗi khi tạo file zip
|
||||||
|
STR_UNSUPPORTED_FILE_FORMAT=Phần mở rộng file không được hỗ trợ
|
||||||
|
STR_CUT=Cắt
|
||||||
|
STR_COPY=Sao chép
|
||||||
|
STR_PASTE=Dán
|
||||||
|
STR_MOVING=Đang di chuyển
|
||||||
|
STR_COPYING=Đang copy
|
||||||
|
STR_FAIL_MOVE_MSG=Không thể di chuyển file
|
||||||
|
STR_FAIL_COPY_MSG=Không thể sao chép file
|
||||||
|
STR_CANT_MOVE_TO_SUBDIR_MSG=Không thể di chuyển thư mục cha vào bên trong thư mục con
|
||||||
|
STR_CANT_COPY_TO_SUBDIR_MSG=Không thể sao chép thư mục cha vào bên trong thư mục con
|
||||||
|
STR_UNSUPPORTED_OPERATION_MSG=Hành động không được hỗ trợ
|
||||||
|
STR_HTTP_PORT=Cổng Http
|
||||||
|
STR_REINSTALL_CONFIRM_MSG=Nội dung đã được cài đặt. Bạn có muốn tiếp tục cài đặt không?
|
||||||
|
STR_REMOTE_NOT_SUPPORT_MSG=Cài đặt gói từ xa không được hỗ trợ cho các máy chủ được bảo vệ.
|
||||||
|
STR_CANNOT_CONNECT_REMOTE_MSG=Máy chủ HTTP đích không thể truy cập được.
|
||||||
|
STR_DOWNLOAD_INSTALL_MSG=Không thể cài đặt package từ xa. Bạn có muốn tải package xuống và cài đặt không?
|
||||||
|
STR_CHECKING_REMOTE_SERVER_MSG=Đang kiểm tra máy chủ đích để cài đặt package từ xa.
|
||||||
|
STR_FILES=Tập tin
|
||||||
|
STR_EDITOR=Trình soạn thảo
|
||||||
|
STR_SAVE=Lưu
|
||||||
|
STR_MAX_EDIT_FILE_SIZE_MSG=Không thể chỉnh sửa các tập tin lớn hơn
|
||||||
|
STR_DELETE_LINE=Xóa dòng đã chọn
|
||||||
|
STR_INSERT_LINE=Chèn bên dưới dòng đã chọn
|
||||||
|
STR_MODIFIED=Đã sửa đổi
|
||||||
|
STR_FAIL_GET_TOKEN_MSG=Không thể lấy được access token từ
|
||||||
|
STR_GET_TOKEN_SUCCESS_MSG=Đăng nhập thành công. Bạn có thể đóng trình duyệt và quay lại ứng dụng
|
||||||
|
STR_NEW_FILE=Tập tin mới
|
||||||
|
STR_SETTINGS=Cài đặt
|
||||||
|
STR_GLOBAL=Toàn cục
|
||||||
|
STR_COPY_LINE=Sao chép dòng đã chọn
|
||||||
|
STR_PASTE_LINE=Dán vào dòng đã chọn
|
||||||
|
STR_SHOW_HIDDEN_FILES=Hiển thị các tập tin ẩn
|
||||||
|
STR_SET_DEFAULT_DIRECTORY=Đặt thư mục mặc định
|
||||||
|
STR_SET_DEFAULT_DIRECTORY_MSG=đã được thiết lập làm thư mục mặc định
|
||||||
|
STR_NFS_EXP_PATH_MISSING_MSG=Đường dẫn NFS bị thiếu trong URL
|
||||||
|
STR_FAIL_INIT_NFS_CONTEXT=Không khởi tạo được ngữ cảnh NFS
|
||||||
|
STR_FAIL_MOUNT_NFS_MSG=Không thể mount NFS share
|
||||||
|
STR_PROMOTING=Promoting
|
||||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 165 KiB |
+69
-7
@@ -1,6 +1,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
|
#include <json-c/json.h>
|
||||||
#include <lexbor/html/parser.h>
|
#include <lexbor/html/parser.h>
|
||||||
#include <lexbor/dom/interfaces/element.h>
|
#include <lexbor/dom/interfaces/element.h>
|
||||||
#include <minizip/unzip.h>
|
#include <minizip/unzip.h>
|
||||||
@@ -19,6 +20,7 @@
|
|||||||
#include "clients/rclone.h"
|
#include "clients/rclone.h"
|
||||||
#include "clients/sftpclient.h"
|
#include "clients/sftpclient.h"
|
||||||
#include "filehost/filehost.h"
|
#include "filehost/filehost.h"
|
||||||
|
#include "server/http_server.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "fs.h"
|
#include "fs.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
@@ -1108,7 +1110,7 @@ namespace Actions
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void *InstallUrlPkgThread(void *argp)
|
void *InstallLocalUrlPkgThread(void *argp)
|
||||||
{
|
{
|
||||||
bytes_transfered = 0;
|
bytes_transfered = 0;
|
||||||
sceRtcGetCurrentTick(&prev_tick);
|
sceRtcGetCurrentTick(&prev_tick);
|
||||||
@@ -1119,10 +1121,10 @@ namespace Actions
|
|||||||
OrbisTick tick;
|
OrbisTick tick;
|
||||||
sceRtcGetCurrentClockLocalTime(&now);
|
sceRtcGetCurrentClockLocalTime(&now);
|
||||||
sceRtcGetTick(&now, &tick);
|
sceRtcGetTick(&now, &tick);
|
||||||
sprintf(filename, "%s/%lu.pkg", DATA_PATH, tick.mytick);
|
sprintf(filename, "%s/%lu.pkg", TMP_FOLDER_PATH, tick.mytick);
|
||||||
|
|
||||||
std::string full_url = std::string(install_pkg_url.url);
|
std::string full_url = std::string(install_pkg_url.url);
|
||||||
FileHost *filehost = FileHost::getFileHost(full_url);
|
FileHost *filehost = FileHost::getFileHost(full_url, install_pkg_url.enable_alldebrid, install_pkg_url.enable_realdebrid);
|
||||||
if (!filehost->IsValidUrl())
|
if (!filehost->IsValidUrl())
|
||||||
{
|
{
|
||||||
sprintf(status_message, "%s", lang_strings[STR_FAIL_TO_OBTAIN_GG_DL_MSG]);
|
sprintf(status_message, "%s", lang_strings[STR_FAIL_TO_OBTAIN_GG_DL_MSG]);
|
||||||
@@ -1145,7 +1147,7 @@ namespace Actions
|
|||||||
std::string host = full_url.substr(0, path_pos);
|
std::string host = full_url.substr(0, path_pos);
|
||||||
std::string path = full_url.substr(path_pos);
|
std::string path = full_url.substr(path_pos);
|
||||||
|
|
||||||
WebDAVClient tmp_client;
|
BaseClient tmp_client;
|
||||||
tmp_client.Connect(host.c_str(), install_pkg_url.username, install_pkg_url.password);
|
tmp_client.Connect(host.c_str(), install_pkg_url.username, install_pkg_url.password);
|
||||||
|
|
||||||
sprintf(activity_message, "%s URL to %s", lang_strings[STR_DOWNLOADING], filename);
|
sprintf(activity_message, "%s URL to %s", lang_strings[STR_DOWNLOADING], filename);
|
||||||
@@ -1153,7 +1155,7 @@ namespace Actions
|
|||||||
memset(&header, 0, s);
|
memset(&header, 0, s);
|
||||||
|
|
||||||
int ret = tmp_client.Size(path, &bytes_to_download);
|
int ret = tmp_client.Size(path, &bytes_to_download);
|
||||||
if (!ret)
|
if (ret == 0)
|
||||||
{
|
{
|
||||||
sprintf(status_message, "%s - %s", lang_strings[STR_FAILED], lang_strings[STR_CANNOT_READ_PKG_HDR_MSG]);
|
sprintf(status_message, "%s - %s", lang_strings[STR_FAILED], lang_strings[STR_CANNOT_READ_PKG_HDR_MSG]);
|
||||||
tmp_client.Quit();
|
tmp_client.Quit();
|
||||||
@@ -1163,7 +1165,7 @@ namespace Actions
|
|||||||
}
|
}
|
||||||
|
|
||||||
file_transfering = 1;
|
file_transfering = 1;
|
||||||
int is_performed = tmp_client.Get(path, filename);
|
int is_performed = tmp_client.Get(filename, path);
|
||||||
|
|
||||||
if (is_performed == 0)
|
if (is_performed == 0)
|
||||||
{
|
{
|
||||||
@@ -1216,10 +1218,70 @@ namespace Actions
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void *InstallRpiUrlPkgThread(void *argp)
|
||||||
|
{
|
||||||
|
json_object *params = json_object_new_object();
|
||||||
|
json_object_object_add(params, "url", json_object_new_string(install_pkg_url.url));
|
||||||
|
json_object_object_add(params, "use_alldebrid", json_object_new_boolean(install_pkg_url.enable_alldebrid));
|
||||||
|
json_object_object_add(params, "use_realdebrid", json_object_new_boolean(install_pkg_url.enable_realdebrid));
|
||||||
|
json_object_object_add(params, "use_disk_cache", json_object_new_boolean(install_pkg_url.enable_disk_cache));
|
||||||
|
|
||||||
|
const char *params_str = json_object_to_json_string(params);
|
||||||
|
|
||||||
|
char host[128];
|
||||||
|
sprintf(host, "http://127.0.0.1:%d", http_server_port);
|
||||||
|
|
||||||
|
httplib::Client tmp_client(host);
|
||||||
|
tmp_client.set_keep_alive(true);
|
||||||
|
tmp_client.set_follow_location(true);
|
||||||
|
tmp_client.set_connection_timeout(30);
|
||||||
|
tmp_client.set_read_timeout(30);
|
||||||
|
tmp_client.enable_server_certificate_verification(false);
|
||||||
|
|
||||||
|
auto res = tmp_client.Post("/__local__/install_url", params_str, strlen(params_str), "application/json");
|
||||||
|
if (res != nullptr && HTTP_SUCCESS(res->status))
|
||||||
|
{
|
||||||
|
json_object *jobj = json_tokener_parse(res->body.c_str());
|
||||||
|
if (jobj != nullptr)
|
||||||
|
{
|
||||||
|
json_object *result = json_object_object_get(jobj, "result");
|
||||||
|
if (result != nullptr)
|
||||||
|
{
|
||||||
|
bool success = json_object_get_boolean(json_object_object_get(result, "success"));
|
||||||
|
if (!success)
|
||||||
|
{
|
||||||
|
const char* error_message = json_object_get_string(json_object_object_get(result, "error"));
|
||||||
|
sprintf(status_message, "%s", error_message);
|
||||||
|
activity_inprogess = false;
|
||||||
|
Windows::SetModalMode(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
activity_inprogess = false;
|
||||||
|
Windows::SetModalMode(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
activity_inprogess = false;
|
||||||
|
Windows::SetModalMode(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
void InstallUrlPkg()
|
void InstallUrlPkg()
|
||||||
{
|
{
|
||||||
|
int res;
|
||||||
sprintf(status_message, "%s", "");
|
sprintf(status_message, "%s", "");
|
||||||
int res = pthread_create(&bk_activity_thid, NULL, InstallUrlPkgThread, NULL);
|
|
||||||
|
if (!install_pkg_url.enable_rpi)
|
||||||
|
res = pthread_create(&bk_activity_thid, NULL, InstallLocalUrlPkgThread, NULL);
|
||||||
|
else
|
||||||
|
res = pthread_create(&bk_activity_thid, NULL, InstallRpiUrlPkgThread, NULL);
|
||||||
|
|
||||||
if (res != 0)
|
if (res != 0)
|
||||||
{
|
{
|
||||||
activity_inprogess = false;
|
activity_inprogess = false;
|
||||||
|
|||||||
+2
-1
@@ -99,7 +99,8 @@ namespace Actions
|
|||||||
void InstallRemotePkgs();
|
void InstallRemotePkgs();
|
||||||
void *InstallLocalPkgsThread(void *argp);
|
void *InstallLocalPkgsThread(void *argp);
|
||||||
void InstallLocalPkgs();
|
void InstallLocalPkgs();
|
||||||
void *InstallUrlPkgThread(void *argp);
|
void *InstallLocalUrlPkgThread(void *argp);
|
||||||
|
void *InstallRpiUrlPkgThread(void *argp);
|
||||||
void InstallUrlPkg();
|
void InstallUrlPkg();
|
||||||
void *KeepAliveThread(void *argp);
|
void *KeepAliveThread(void *argp);
|
||||||
void *ExtractZipThread(void *argp);
|
void *ExtractZipThread(void *argp);
|
||||||
|
|||||||
+4
-1
@@ -152,12 +152,15 @@ namespace CONFIG
|
|||||||
FS::MkDirs(DATA_PATH);
|
FS::MkDirs(DATA_PATH);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memset(&install_pkg_url, 0, sizeof(install_pkg_url));
|
||||||
|
install_pkg_url.enable_rpi = true;
|
||||||
|
|
||||||
sites = {"Site 1", "Site 2", "Site 3", "Site 4", "Site 5", "Site 6", "Site 7", "Site 8", "Site 9", "Site 10",
|
sites = {"Site 1", "Site 2", "Site 3", "Site 4", "Site 5", "Site 6", "Site 7", "Site 8", "Site 9", "Site 10",
|
||||||
"Site 11", "Site 12", "Site 13", "Site 14", "Site 15", "Site 16", "Site 17", "Site 18", "Site 19", "Site 20"};
|
"Site 11", "Site 12", "Site 13", "Site 14", "Site 15", "Site 16", "Site 17", "Site 18", "Site 19", "Site 20"};
|
||||||
|
|
||||||
langs = { "Default", "Arabic", "Catalan", "Croatian", "Dutch", "English", "Euskera", "French", "Galego", "German", "Greek",
|
langs = { "Default", "Arabic", "Catalan", "Croatian", "Dutch", "English", "Euskera", "French", "Galego", "German", "Greek",
|
||||||
"Hungarian", "Indonesian", "Italiano", "Japanese", "Korean", "Polish", "Portuguese_BR", "Russian", "Romanian", "Ryukyuan", "Spanish", "Turkish",
|
"Hungarian", "Indonesian", "Italiano", "Japanese", "Korean", "Polish", "Portuguese_BR", "Russian", "Romanian", "Ryukyuan", "Spanish", "Turkish",
|
||||||
"Simplified Chinese", "Traditional Chinese", "Thai", "Ukrainian"};
|
"Simplified Chinese", "Traditional Chinese", "Thai", "Ukrainian", "Vietnamese"};
|
||||||
|
|
||||||
http_servers = {HTTP_SERVER_APACHE, HTTP_SERVER_MS_IIS, HTTP_SERVER_NGINX, HTTP_SERVER_NPX_SERVE, HTTP_SERVER_RCLONE, HTTP_SERVER_ARCHIVEORG, HTTP_SERVER_MYRIENT};
|
http_servers = {HTTP_SERVER_APACHE, HTTP_SERVER_MS_IIS, HTTP_SERVER_NGINX, HTTP_SERVER_NPX_SERVE, HTTP_SERVER_RCLONE, HTTP_SERVER_ARCHIVEORG, HTTP_SERVER_MYRIENT};
|
||||||
text_file_extensions = { ".txt", ".ini", ".log", ".json", ".xml", ".html", ".xhtml", ".conf", ".config" };
|
text_file_extensions = { ".txt", ".ini", ".log", ".json", ".xml", ".html", ".xhtml", ".conf", ".config" };
|
||||||
|
|||||||
@@ -121,6 +121,10 @@ struct PackageUrlInfo
|
|||||||
char url[512];
|
char url[512];
|
||||||
char username[33];
|
char username[33];
|
||||||
char password[25];
|
char password[25];
|
||||||
|
bool enable_alldebrid;
|
||||||
|
bool enable_realdebrid;
|
||||||
|
bool enable_disk_cache;
|
||||||
|
bool enable_rpi;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern std::vector<std::string> sites;
|
extern std::vector<std::string> sites;
|
||||||
|
|||||||
+4
-1
@@ -172,8 +172,11 @@ char lang_strings[LANG_STRINGS_NUM][LANG_STR_SIZE] = {
|
|||||||
"Temp Directory", // STR_TEMP_DIRECTORY
|
"Temp Directory", // STR_TEMP_DIRECTORY
|
||||||
"Real-Debrid", // STR_REALDEBRID
|
"Real-Debrid", // STR_REALDEBRID
|
||||||
"Package install is running in the background. Don't close the app while install is in progress", // STR_BACKGROUND_INSTALL_INPROGRESS
|
"Package install is running in the background. Don't close the app while install is in progress", // STR_BACKGROUND_INSTALL_INPROGRESS
|
||||||
"Enable disk caching. Can improve package install speed in cases where connection to remote is slow", // STR_ENABLE_DISC_CACHE_MSG
|
"Enable disk caching. Can improve package install speed in cases where connection to remote is slow, but breaks resuming of install", // STR_ENABLE_DISC_CACHE_MSG
|
||||||
"DC", // STR_ENABLE_DISK_CACHE
|
"DC", // STR_ENABLE_DISK_CACHE
|
||||||
|
"Install Via AllDebrid", // STR_ENABLE_ALLDEBRID_MSG
|
||||||
|
"Install Via RealDebrid", // STR_ENABLE_REALDEBRID_MSG
|
||||||
|
"Enable Disk Cache", // STR_ENABLE_DISKCACHE_DESC
|
||||||
};
|
};
|
||||||
|
|
||||||
bool needs_extended_font = false;
|
bool needs_extended_font = false;
|
||||||
|
|||||||
+5
-2
@@ -167,7 +167,10 @@
|
|||||||
FUNC(STR_REALDEBRID) \
|
FUNC(STR_REALDEBRID) \
|
||||||
FUNC(STR_BACKGROUND_INSTALL_INPROGRESS) \
|
FUNC(STR_BACKGROUND_INSTALL_INPROGRESS) \
|
||||||
FUNC(STR_ENABLE_DISC_CACHE_MSG) \
|
FUNC(STR_ENABLE_DISC_CACHE_MSG) \
|
||||||
FUNC(STR_ENABLE_DISK_CACHE)
|
FUNC(STR_ENABLE_DISK_CACHE) \
|
||||||
|
FUNC(STR_ENABLE_ALLDEBRID_MSG) \
|
||||||
|
FUNC(STR_ENABLE_REALDEBRID_MSG) \
|
||||||
|
FUNC(STR_ENABLE_DISKCACHE_DESC)
|
||||||
|
|
||||||
#define GET_VALUE(x) x,
|
#define GET_VALUE(x) x,
|
||||||
#define GET_STRING(x) #x,
|
#define GET_STRING(x) #x,
|
||||||
@@ -177,7 +180,7 @@ enum
|
|||||||
FOREACH_STR(GET_VALUE)
|
FOREACH_STR(GET_VALUE)
|
||||||
};
|
};
|
||||||
|
|
||||||
#define LANG_STRINGS_NUM 164
|
#define LANG_STRINGS_NUM 167
|
||||||
#define LANG_ID_SIZE 64
|
#define LANG_ID_SIZE 64
|
||||||
#define LANG_STR_SIZE 384
|
#define LANG_STR_SIZE 384
|
||||||
extern char lang_identifiers[LANG_STRINGS_NUM][LANG_ID_SIZE];
|
extern char lang_identifiers[LANG_STRINGS_NUM][LANG_ID_SIZE];
|
||||||
|
|||||||
+10
-8
@@ -139,41 +139,43 @@ void InitImgui()
|
|||||||
sceSystemServiceParamGetInt( ORBIS_SYSTEM_SERVICE_PARAM_ID_LANG, &lang_idx );
|
sceSystemServiceParamGetInt( ORBIS_SYSTEM_SERVICE_PARAM_ID_LANG, &lang_idx );
|
||||||
|
|
||||||
lang = Util::Trim(lang, " ");
|
lang = Util::Trim(lang, " ");
|
||||||
if (lang.compare("Korean") == 0 || (lang.empty() && lang_idx == ORBIS_SYSTEM_PARAM_LANG_KOREAN))
|
bool use_system_lang = lang.empty() || lang.compare("Default") == 0;
|
||||||
|
|
||||||
|
if (lang.compare("Korean") == 0 || (use_system_lang && lang_idx == ORBIS_SYSTEM_PARAM_LANG_KOREAN))
|
||||||
{
|
{
|
||||||
io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/Roboto_ext.ttf", 26.0f, NULL, io.Fonts->GetGlyphRangesKorean());
|
io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/Roboto_ext.ttf", 26.0f, NULL, io.Fonts->GetGlyphRangesKorean());
|
||||||
}
|
}
|
||||||
else if (lang.compare("Simplified Chinese") == 0 || (lang.empty() && lang_idx == ORBIS_SYSTEM_PARAM_LANG_CHINESE_S))
|
else if (lang.compare("Simplified Chinese") == 0 || (use_system_lang && lang_idx == ORBIS_SYSTEM_PARAM_LANG_CHINESE_S))
|
||||||
{
|
{
|
||||||
ImFontConfig config;
|
ImFontConfig config;
|
||||||
config.OversampleH = 1;
|
config.OversampleH = 1;
|
||||||
config.OversampleV = 1;
|
config.OversampleV = 1;
|
||||||
io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/Roboto_ext.ttf", 26.0f, &config, io.Fonts->GetGlyphRangesChineseFull());
|
io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/Roboto_ext.ttf", 26.0f, &config, io.Fonts->GetGlyphRangesChineseFull());
|
||||||
}
|
}
|
||||||
else if (lang.compare("Traditional Chinese") == 0 || (lang.empty() && lang_idx == ORBIS_SYSTEM_PARAM_LANG_CHINESE_T))
|
else if (lang.compare("Traditional Chinese") == 0 || (use_system_lang && lang_idx == ORBIS_SYSTEM_PARAM_LANG_CHINESE_T))
|
||||||
{
|
{
|
||||||
ImFontConfig config;
|
ImFontConfig config;
|
||||||
config.OversampleH = 1;
|
config.OversampleH = 1;
|
||||||
config.OversampleV = 1;
|
config.OversampleV = 1;
|
||||||
io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/Roboto_ext.ttf", 26.0f, &config, io.Fonts->GetGlyphRangesChineseFull());
|
io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/Roboto_ext.ttf", 26.0f, &config, io.Fonts->GetGlyphRangesChineseFull());
|
||||||
}
|
}
|
||||||
else if (lang.compare("Japanese") == 0 || lang.compare("Ryukyuan") == 0 || (lang.empty() && lang_idx == ORBIS_SYSTEM_PARAM_LANG_JAPANESE))
|
else if (lang.compare("Japanese") == 0 || lang.compare("Ryukyuan") == 0 || (use_system_lang && lang_idx == ORBIS_SYSTEM_PARAM_LANG_JAPANESE))
|
||||||
{
|
{
|
||||||
io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/Roboto_ext.ttf", 26.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
|
io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/Roboto_ext.ttf", 26.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
|
||||||
}
|
}
|
||||||
else if (lang.compare("Thai") == 0 || (lang.empty() && lang_idx == ORBIS_SYSTEM_PARAM_LANG_THAI))
|
else if (lang.compare("Thai") == 0 || (use_system_lang && lang_idx == ORBIS_SYSTEM_PARAM_LANG_THAI))
|
||||||
{
|
{
|
||||||
io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/Roboto_ext.ttf", 26.0f, NULL, io.Fonts->GetGlyphRangesThai());
|
io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/Roboto_ext.ttf", 26.0f, NULL, io.Fonts->GetGlyphRangesThai());
|
||||||
}
|
}
|
||||||
else if (lang.compare("Vietnamese") == 0 || (lang.empty() && lang_idx == ORBIS_SYSTEM_PARAM_LANG_VIETNAMESE))
|
else if (lang.compare("Vietnamese") == 0 || (use_system_lang && lang_idx == ORBIS_SYSTEM_PARAM_LANG_VIETNAMESE))
|
||||||
{
|
{
|
||||||
io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/Roboto_ext.ttf", 26.0f, NULL, io.Fonts->GetGlyphRangesVietnamese());
|
io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/Roboto_ext.ttf", 26.0f, NULL, io.Fonts->GetGlyphRangesVietnamese());
|
||||||
}
|
}
|
||||||
else if (lang.compare("Greek") == 0 || (lang.empty() && lang_idx == ORBIS_SYSTEM_PARAM_LANG_GREEK))
|
else if (lang.compare("Greek") == 0 || (use_system_lang && lang_idx == ORBIS_SYSTEM_PARAM_LANG_GREEK))
|
||||||
{
|
{
|
||||||
io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/Roboto_ext.ttf", 26.0f, NULL, io.Fonts->GetGlyphRangesGreek());
|
io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/Roboto_ext.ttf", 26.0f, NULL, io.Fonts->GetGlyphRangesGreek());
|
||||||
}
|
}
|
||||||
else if (lang.compare("Arabic") == 0 || (lang.empty() && lang_idx == ORBIS_SYSTEM_PARAM_LANG_ARABIC))
|
else if (lang.compare("Arabic") == 0 || (use_system_lang && lang_idx == ORBIS_SYSTEM_PARAM_LANG_ARABIC))
|
||||||
{
|
{
|
||||||
io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/Roboto_ext.ttf", 26.0f, NULL, arabic);
|
io.Fonts->AddFontFromFileTTF("/app0/assets/fonts/Roboto_ext.ttf", 26.0f, NULL, arabic);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1177,6 +1177,12 @@ namespace HttpServer
|
|||||||
|
|
||||||
SplitPkgInstallData *pkg_data = INSTALLER::GetSplitPkgInstallData(hash);
|
SplitPkgInstallData *pkg_data = INSTALLER::GetSplitPkgInstallData(hash);
|
||||||
|
|
||||||
|
if (pkg_data == nullptr)
|
||||||
|
{
|
||||||
|
failed(res, 500, "Cannot resume split_inst");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (req.method == "HEAD")
|
if (req.method == "HEAD")
|
||||||
{
|
{
|
||||||
res.status = 204;
|
res.status = 204;
|
||||||
|
|||||||
+55
-11
@@ -450,7 +450,7 @@ namespace Windows
|
|||||||
}
|
}
|
||||||
if (ImGui::IsItemHovered())
|
if (ImGui::IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui::SetNextWindowSize(ImVec2(450, 70));
|
ImGui::SetNextWindowSize(ImVec2(450, 110));
|
||||||
ImGui::BeginTooltip();
|
ImGui::BeginTooltip();
|
||||||
ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + 440);
|
ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + 440);
|
||||||
ImGui::Text("%s", lang_strings[STR_ENABLE_RPI_FTP_SMB_MSG]);
|
ImGui::Text("%s", lang_strings[STR_ENABLE_RPI_FTP_SMB_MSG]);
|
||||||
@@ -469,7 +469,7 @@ namespace Windows
|
|||||||
}
|
}
|
||||||
if (ImGui::IsItemHovered())
|
if (ImGui::IsItemHovered())
|
||||||
{
|
{
|
||||||
ImGui::SetNextWindowSize(ImVec2(550, 85));
|
ImGui::SetNextWindowSize(ImVec2(550, 110));
|
||||||
ImGui::BeginTooltip();
|
ImGui::BeginTooltip();
|
||||||
ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + 540);
|
ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + 540);
|
||||||
ImGui::Text("%s", lang_strings[STR_ENABLE_DISC_CACHE_MSG]);
|
ImGui::Text("%s", lang_strings[STR_ENABLE_DISC_CACHE_MSG]);
|
||||||
@@ -1498,7 +1498,52 @@ namespace Windows
|
|||||||
{
|
{
|
||||||
ImVec2 cur_pos = ImGui::GetCursorPos();
|
ImVec2 cur_pos = ImGui::GetCursorPos();
|
||||||
char id[128];
|
char id[128];
|
||||||
if (ImGui::Button(lang_strings[STR_ONETIME_URL], ImVec2(535, 0)))
|
|
||||||
|
ImGui::Checkbox("##enable_alldebrid_install_uril", &install_pkg_url.enable_alldebrid);
|
||||||
|
ImGui::SameLine();
|
||||||
|
ImGui::Text("%s", lang_strings[STR_ENABLE_ALLDEBRID_MSG]);
|
||||||
|
|
||||||
|
ImGui::SameLine();
|
||||||
|
ImGui::SetCursorPosX(ImGui::GetCursorPosX()+40);
|
||||||
|
ImGui::Checkbox("##enable_realdebrid_install_uril", &install_pkg_url.enable_realdebrid);
|
||||||
|
ImGui::SameLine();
|
||||||
|
ImGui::Text("%s", lang_strings[STR_ENABLE_REALDEBRID_MSG]);
|
||||||
|
|
||||||
|
ImGui::SameLine();
|
||||||
|
ImGui::SetCursorPosX(ImGui::GetCursorPosX()+40);
|
||||||
|
ImGui::Checkbox("##enable_rpi_install_url", &install_pkg_url.enable_rpi);
|
||||||
|
if (ImGui::IsItemHovered())
|
||||||
|
{
|
||||||
|
ImGui::SetNextWindowSize(ImVec2(550, 110));
|
||||||
|
ImGui::BeginTooltip();
|
||||||
|
ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + 540);
|
||||||
|
ImGui::Text("%s", lang_strings[STR_ENABLE_RPI_WEBDAV_MSG]);
|
||||||
|
ImGui::PopTextWrapPos();
|
||||||
|
ImGui::EndTooltip();
|
||||||
|
}
|
||||||
|
ImGui::SameLine();
|
||||||
|
ImGui::Text("%s", lang_strings[STR_ENABLE_RPI]);
|
||||||
|
|
||||||
|
if (install_pkg_url.enable_rpi)
|
||||||
|
{
|
||||||
|
ImGui::SameLine();
|
||||||
|
ImGui::SetCursorPosX(ImGui::GetCursorPosX()+40);
|
||||||
|
ImGui::Checkbox("##enable_diskcache_install_uril", &install_pkg_url.enable_disk_cache);
|
||||||
|
if (ImGui::IsItemHovered())
|
||||||
|
{
|
||||||
|
ImGui::SetNextWindowSize(ImVec2(550, 110));
|
||||||
|
ImGui::BeginTooltip();
|
||||||
|
ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + 540);
|
||||||
|
ImGui::Text("%s", lang_strings[STR_ENABLE_DISC_CACHE_MSG]);
|
||||||
|
ImGui::PopTextWrapPos();
|
||||||
|
ImGui::EndTooltip();
|
||||||
|
}
|
||||||
|
ImGui::SameLine();
|
||||||
|
ImGui::Text("%s", lang_strings[STR_ENABLE_DISKCACHE_DESC]);
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
if (ImGui::Button(lang_strings[STR_ONETIME_URL], ImVec2(1070, 0)))
|
||||||
{
|
{
|
||||||
ResetImeCallbacks();
|
ResetImeCallbacks();
|
||||||
sprintf(install_pkg_url.url, "%s", "");
|
sprintf(install_pkg_url.url, "%s", "");
|
||||||
@@ -1512,14 +1557,6 @@ namespace Windows
|
|||||||
SetModalMode(false);
|
SetModalMode(false);
|
||||||
ImGui::CloseCurrentPopup();
|
ImGui::CloseCurrentPopup();
|
||||||
}
|
}
|
||||||
ImGui::SameLine();
|
|
||||||
sprintf(id, "%s##favoriteurl", lang_strings[STR_CANCEL]);
|
|
||||||
if (ImGui::Button(id, ImVec2(535, 0)))
|
|
||||||
{
|
|
||||||
select_url_inprogress = false;
|
|
||||||
SetModalMode(false);
|
|
||||||
ImGui::CloseCurrentPopup();
|
|
||||||
}
|
|
||||||
|
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
for (int j = 0; j < MAX_FAVORITE_URLS; j++)
|
for (int j = 0; j < MAX_FAVORITE_URLS; j++)
|
||||||
@@ -1567,6 +1604,13 @@ namespace Windows
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ImGui::IsKeyPressed(ImGuiKey_GamepadFaceRight, false))
|
||||||
|
{
|
||||||
|
select_url_inprogress = false;
|
||||||
|
SetModalMode(false);
|
||||||
|
ImGui::CloseCurrentPopup();
|
||||||
|
}
|
||||||
|
|
||||||
ImGui::EndPopup();
|
ImGui::EndPopup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user