diff --git a/core/smb4k.notifyrc b/core/smb4k.notifyrc index 0670e9d..713e48f 100644 --- a/core/smb4k.notifyrc +++ b/core/smb4k.notifyrc @@ -1,1739 +1,1791 @@ [Global] IconName=smb4k Name=Smb4K Name[ast]=Smb4K Name[bs]=Smb4K Name[ca]=Smb4K Name[ca@valencia]=Smb4K Name[cs]=Smb4K Name[da]=Smb4K Name[de]=Smb4K Name[el]=Smb4K Name[en_GB]=Smb4K Name[es]=Smb4K Name[et]=Smb4K Name[fi]=Smb4K Name[fr]=Smb4K Name[gl]=Smb4K Name[hu]=Smb4K Name[ia]=SMB4K Name[it]=Smb4K Name[ko]=Smb4K Name[lt]=Smb4K Name[nds]=Smb4K Name[nl]=Smb4K Name[pl]=Smb4K Name[pt]=Smb4K Name[pt_BR]=Smb4K Name[ro]=Smb4K Name[ru]=Smb4K Name[sk]=Smb4K Name[sv]=Smb4K Name[tr]=Smb4K Name[uk]=Smb4K Name[x-test]=xxSmb4Kxx Name[zh_CN]=Smb4K Name[zh_TW]=Smb4K Comment=Advanced Network Neighborhood Browser Comment[bs]=Napredni pregledač mrežnog susjedstva Comment[ca]=Explorador avançat del veïnatge de xarxa Comment[ca@valencia]=Explorador avançat del veïnatge de xarxa Comment[cs]=Pokročilý prohlížeč síťového okolí Comment[da]=Den avancerede browser til netværksnabolag Comment[de]=Erweiterter Browser für die Netzwerkumgebung Comment[el]= περιηγητής περιοχής δικτύου Comment[en_GB]=Advanced Network Neighbourhood Browser Comment[es]=Navegador de entorno de red avanzado Comment[et]=Täiustatud võrgunaabruse sirvija Comment[fi]=Kehittynyt verkkoympäristöselain Comment[fr]=Explorateur avancé de voisinage réseau Comment[gl]=Navegador avanzado da veciñanza de rede Comment[hu]=Speciális hálózati mappa böngésző Comment[it]=Navigatore avanzato delle risorse di rete Comment[ko]=고급 네트워크 환경 탐색기 Comment[nds]=Verwiedert Nettwarkümgeven-Kieker Comment[nl]=Geavanceerde browser voor de netwerkomgeving Comment[pl]=Przeglądarka otoczenia sieciowego Comment[pt]=Navegador Avançado da Vizinhança da Rede Comment[pt_BR]=Navegador avançado da vizinhança da rede Comment[ru]=Диспетчер сетевого окружения Comment[sk]=Pokročilý prehliadač sieťového okolia Comment[sv]=Avancerad bläddrare för nätverksgrannskapet Comment[tr]=Gelişmiş Ağ Komşuları Tarayıcı Comment[uk]=Переглядач мережевого оточення з додатковими можливостями Comment[x-test]=xxAdvanced Network Neighborhood Browserxx Comment[zh_CN]=高级网上邻居浏览器 Comment[zh_TW]=進階網路芳鄰瀏覽器 Version=1 [Context/Notification] Name=Notification Name[bs]=Obavještenje Name[ca]=Notificació Name[ca@valencia]=Notificació -Name[cs]=Hlášení +Name[cs]=Upozornění Name[da]=Bekendtgørelse Name[de]=Benachrichtigung Name[el]=Ειδοποίηση Name[en_GB]=Notification Name[es]=Notificación Name[et]=Märguanne Name[fi]=Ilmoitus Name[fr]=Notification Name[gl]=Notificación Name[hu]=Értesítés Name[ia]=Notification Name[it]=Notifica Name[ko]=알림 Name[lt]=Pranešimas Name[nds]=Bescheed Name[nl]=Melding Name[pl]=Powiadomienie Name[pt]=Notificação Name[pt_BR]=Notificação Name[ro]=Notificare Name[ru]=Уведомление Name[sk]=Pripomienka Name[sv]=Underrättelse Name[tr]=Bildirim Name[uk]=Сповіщення Name[x-test]=xxNotificationxx Name[zh_CN]=通知 Name[zh_TW]=通知 Comment=The user is notified about an action Comment[bs]=Korisnik je obavješten o akciji Comment[ca]=L'usuari ha estat notificat quant a una acció Comment[ca@valencia]=L'usuari ha estat notificat quant a una acció Comment[cs]=Uživatel je na činnost upozorněn Comment[da]=Brugeren får besked om en handling Comment[de]=Den Benutzer über eine Aktion benachrichtigen Comment[el]=Ο χρήστης ειδοποιείται για κάποια ενέργεια Comment[en_GB]=The user is notified about an action Comment[es]=Se notifica al usuario de una acción Comment[et]=Kasutajale antakse märku toimingust Comment[fi]=Käyttäjää tiedotetaan toiminnosta Comment[fr]=L'utilisateur est notifié d'une action Comment[gl]=O usuario recibe unha notificación sobre unha acción. Comment[hu]=A felhasználót értesítették egy műveletről Comment[it]=Un'azione viene notificata all'utente Comment[ko]=사용자가 동작 알림을 받음 Comment[nds]=De Bruker kriggt Bescheed över en Akschoon Comment[nl]=De gebruiker is op de hoogte gesteld van een actie Comment[pl]=Użytkownik jest powiadamiany od działaniu Comment[pt]=O utilizador foi notificado por uma dada acção Comment[pt_BR]=O usuário é informado sobre uma ação Comment[ru]=Пользователь уведомляется о действии Comment[sk]=Používateľ je upozornený na akciu Comment[sv]=Användaren blir underrättad om en åtgärd Comment[tr]=Kullanıcı bir işlemden dolayı bilgilendirildi Comment[uk]=Користувачеві повідомлено про дію Comment[x-test]=xxThe user is notified about an actionxx Comment[zh_CN]=通知用户有关操作 Comment[zh_TW]=使用者被通知某些動作 [Context/Warning] Name=Warning Name[bs]=Upozorenje Name[ca]=Avís Name[ca@valencia]=Avís Name[cs]=Varování Name[da]=Advarsel Name[de]=Warnung Name[el]=Προειδοποίηση Name[en_GB]=Warning Name[es]=Advertencia Name[et]=Hoiatus Name[fi]=Varoitus Name[fr]=Avertissement Name[gl]=Aviso Name[hu]=Figyelmeztetés Name[ia]=Aviso Name[it]=Avviso Name[ko]=경고 Name[lt]=Perspėjimas Name[nds]=Wohrschoen Name[nl]=Waarschuwing Name[pl]=Ostrzeżenie Name[pt]=Aviso Name[pt_BR]=Aviso Name[ro]=Avertizare Name[ru]=Предупреждение Name[sk]=Upozornenie Name[sv]=Varning Name[tr]=Uyarı Name[uk]=Попередження Name[x-test]=xxWarningxx Name[zh_CN]=警告 Name[zh_TW]=警告 Comment=A warning is shown to the user Comment[bs]=Prikazana je upozoravajuća poruka korisniku Comment[ca]=Es mostra un avís a l'usuari Comment[ca@valencia]=Es mostra un avís a l'usuari Comment[cs]=Uživateli je zobrazeno varování Comment[da]=En advarselsmeddelelse vises til brugeren Comment[de]=Dem Benutzer eine Warnung anzeigen Comment[el]=Μια προειδοποίηση εμφανίζεται στον χρήστη Comment[en_GB]=A warning is shown to the user Comment[es]=Se muestra una advertencia al usuario Comment[et]=Kasutajale näidatakse hoiatust Comment[fi]=Käyttäjälle näytetään varoitus Comment[fr]=Un avertissement est affiché à l'utilisateur Comment[gl]=O usuario recibe un aviso. Comment[hu]=Egy figyelmeztetést jelenítettek meg a felhasználónak Comment[it]=Un avviso viene mostrato all'utente Comment[ko]=사용자가 경고 메시지를 받음 Comment[nds]=Den Bruker warrt en Wohrschoen wiest Comment[nl]=Er is een waarschuwing getoond aan de gebruiker Comment[pl]=Użytkownikowi jest wyświetlane ostrzeżenie Comment[pt]=Foi apresentado um aviso ao utilizador Comment[pt_BR]=Um aviso é exibido ao usuário Comment[ro]=Este afișat un mesaj de avertizare Comment[ru]=Предупреждение для пользователя Comment[sk]=Používateľovi sa zobrazí upozornenie Comment[sv]=En varning visas för användaren Comment[tr]=Kullanıcıya bir uyarı gösterildi Comment[uk]=Користувачеві показано попередження Comment[x-test]=xxA warning is shown to the userxx Comment[zh_CN]=向用户显示警告 Comment[zh_TW]=警告已顯示給使用者 [Context/Error] Name=Error Name[bs]=Greška Name[ca]=Error Name[ca@valencia]=Error Name[cs]=Chyba Name[da]=Fejl Name[de]=Fehler Name[el]=Σφάλμα Name[en_GB]=Error Name[es]=Error Name[et]=Tõrge Name[fi]=Virhe Name[fr]=Erreur Name[gl]=Erro Name[hu]=Hiba Name[ia]=Error Name[it]=Errore Name[ko]=오류 Name[lt]=Klaida Name[nds]=Fehler Name[nl]=Fout Name[pl]=Błąd Name[pt]=Erro Name[pt_BR]=Erro Name[ro]=Eroare Name[ru]=Ошибка Name[sk]=Chyba Name[sv]=Fel Name[tr]=Hata Name[uk]=Помилка Name[x-test]=xxErrorxx Name[zh_CN]=误差 Name[zh_TW]=錯誤 Comment=An error message is shown to the user Comment[bs]=Poruka greške je prikazana korisniku Comment[ca]=Es mostra un missatge d'error a l'usuari Comment[ca@valencia]=Es mostra un missatge d'error a l'usuari Comment[da]=En fejlmeddelelse vises til brugeren Comment[de]=Dem Benutzer eine Fehlermeldung anzeigen Comment[el]=Ένα μήνυμα σφάλματος εμφανίζεται στον χρήστη Comment[en_GB]=An error message is shown to the user Comment[es]=Se muestra un mensaje de error al usuario Comment[et]=Kasutajale näidatakse tõrketeadet Comment[fi]=Käyttäjälle näytetään virheilmoitus Comment[fr]=Un message d'erreur est affiché à l'utilisateur Comment[gl]=O usuario recibe unha mensaxe de erro. Comment[hu]=Egy hibaüzenetet jelenítettek meg a felhasználónak Comment[it]=Un messaggio d'errore viene mostrato all'utente Comment[ko]=사용자가 오류 메시지를 받음 Comment[nds]=Den Bruker warrt en Fehlermellen wiest Comment[nl]=Er is een foutmelding getoond aan de gebruiker Comment[pl]=Użytkownikowi jest wyświetlana wiadomość błędu Comment[pt]=Foi apresentada uma mensagem de erro ao utilizador Comment[pt_BR]=Uma mensagem de erro é exibida ao usuário Comment[ro]=Este afișat un mesaj de eroare Comment[ru]=Сообщение об ошибке для пользователя Comment[sk]=Používateľovi sa zobrazí chybová správa Comment[sv]=Ett felmeddelande visas för användaren Comment[tr]=Kullanıcıya bir hata mesajı gösterildi Comment[uk]=Користувачеві показано повідомлення про помилку Comment[x-test]=xxAn error message is shown to the userxx Comment[zh_CN]=向用户显示一条错误消息 Comment[zh_TW]=錯誤訊息已顯示給使用者 [Event/shareMounted] Name=Share mounted Name[bs]=Dijeljeni disk je montiran Name[ca]=Compartició muntada Name[ca@valencia]=Compartició muntada Name[da]=Ressource monteret Name[de]=Freigabe eingehängt Name[el]=Ο κοινός πόρος προσαρτήθηκε Name[en_GB]=Share mounted Name[es]=Recurso compartido montado +Name[et]=Ressurss ühendatud Name[fi]=Jako liitetty Name[fr]=Partage monté Name[gl]=Montouse unha compartición Name[hu]=Megosztás csatolva Name[it]=Condivisione montata Name[ko]=마운트된 공유 Name[nds]=Freegaav inhangt Name[nl]=Share aangekoppeld Name[pl]=Podpięto udział Name[pt]=Partilha montada Name[pt_BR]=Compartilhamento montado Name[ro]=Partajare montată Name[ru]=Подключена общая папка Name[sk]=Zdieľanie pripojené Name[sv]=Delad resurs monterad Name[tr]=Paylaşım bağlandı Name[uk]=Змонтовано ресурс Name[x-test]=xxShare mountedxx Name[zh_CN]=共享已挂载 Name[zh_TW]=分享資料夾已掛載 Comment=A share has been mounted Comment[bs]=Dijeljeni disk je bio montiran Comment[ca]=S'ha muntat una compartició Comment[ca@valencia]=S'ha muntat una compartició Comment[da]=En ressource er blevet monteret Comment[de]=Es wurde eine Freigaben eingehängt Comment[el]=Ένα κοινός πόρος έχει προσαρτηθεί Comment[en_GB]=A share has been mounted Comment[es]=Se ha montado un recurso compartido +Comment[et]=Jagatud ressurss ühendati Comment[fi]=Jako on liitetty Comment[fr]=Un partage a été monté Comment[gl]=Montouse unha compartición. Comment[hu]=Egy megosztás csatolva lett Comment[it]=È stata montata una condivisione Comment[ko]=공유가 마운트되었습니다 Comment[nds]=En Freegaav wöör inhangt Comment[nl]=Een gedeelde map is aangekoppeld Comment[pl]=Udział został podpięty Comment[pt]=Uma partilha foi montada Comment[pt_BR]=Um compartilhamento foi montado Comment[ro]=O partajare a fost montată Comment[ru]=Была подключена общая папка Comment[sk]=Zdieľanie bolo pripojené Comment[sv]=En delad resurs har monterats Comment[tr]=Bir paylaşım bağlandı Comment[uk]=Спільний ресурс було змонтовано Comment[x-test]=xxA share has been mountedxx Comment[zh_CN]=共享已经被挂载了 Comment[zh_TW]=分享資料夾已掛載 Contexts=Notification Action=Popup [Event/shareUnmounted] Name=Share unmounted Name[bs]=Dijeljeni disk je demontiran Name[ca]=Compartició desmuntada Name[ca@valencia]=Compartició desmuntada Name[da]=Ressource afmonteret Name[de]=Freigabe ausgehängt Name[el]=Ο κοινός πόρος αποπροσαρτήθηκε Name[en_GB]=Share unmounted Name[es]=Recurso compartido desmontado +Name[et]=Ressurss lahutatud Name[fi]=Jako irrotettu Name[fr]=Partage libéré Name[gl]=Desmontouse unha compartición Name[hu]=Megosztás leválasztva Name[it]=Condivisione smontata Name[ko]=마운트 해제된 공유 Name[nds]=Freegaav afhangt Name[nl]=Share afgekoppeld Name[pl]=Odpięto udział Name[pt]=Partilha desmontada Name[pt_BR]=Compartilhamento desmontado Name[ro]=Partajare demontată Name[ru]=Отключена общая папка Name[sk]=Zdieľanie odpojené Name[sv]=Delad resurs avmonterad Name[tr]=Paylaşım ayrıldı Name[uk]=Демонтовано ресурс Name[x-test]=xxShare unmountedxx Name[zh_CN]=共享已卸载 Name[zh_TW]=分享資料夾已卸載 Comment=A share has been unmounted Comment[bs]=Dijeljeni disk je bio demontiran Comment[ca]=S'ha desmuntat una compartició Comment[ca@valencia]=S'ha desmuntat una compartició Comment[da]=En ressource er blevet afmonteret Comment[de]=Eine Freigabe ist ausgehängt worden Comment[el]=Ένας κοινός πόρος έχει αποπροσαρτηθεί Comment[en_GB]=A share has been unmounted Comment[es]=Se ha desmontado un recurso compartido +Comment[et]=Jagatud ressurss lahutati Comment[fi]=Jako on irrotettu Comment[fr]=Un partage a été libéré Comment[gl]=Desmontouse unha compartición. Comment[hu]=Egy megosztás le lett választva Comment[it]=È stata smontata una condivisione Comment[ko]=공유가 마운트 해제되었습니다 Comment[nds]=En Freegaav wöör afhangt Comment[nl]=Een gedeelde map is afgekoppeld Comment[pl]=Udział został odpięty Comment[pt]=Uma partilha foi desmontada Comment[pt_BR]=Um compartilhamento foi desmontado Comment[ro]=O partajare a fost demontată Comment[ru]=Была отключена общая папка Comment[sk]=Zdieľanie bolo odpojené Comment[sv]=En delad resurs har avmonterats Comment[tr]=Bir paylaşım ayrıldı Comment[uk]=Спільний ресурс було демонтовано Comment[x-test]=xxA share has been unmountedxx Comment[zh_CN]=共享已经被卸载了 Comment[zh_TW]=分享資料夾已卸載 Contexts=Notification Action=Popup [Event/sharesMounted] Name=Shares mounted Name[bs]=Dijeljeni disk je montiran Name[ca]=Comparticions muntades Name[ca@valencia]=Comparticions muntades Name[da]=Ressourcer monteret Name[de]=Freigaben eingehängt Name[el]=Οι κοινοί πόροι προσαρτήθηκαν Name[en_GB]=Shares mounted Name[es]=Recursos compartidos montados +Name[et]=Ressursid ühendatud Name[fi]=Jakoja on liitetty Name[fr]=Partages montés Name[gl]=Montáronse varias comparticións Name[hu]=Megosztások csatolva Name[it]=Condivisioni montate Name[ko]=마운트된 공유 Name[nds]=Freegaven inhangt Name[nl]=Shares aangekoppeld Name[pl]=Podpięto udziały Name[pt]=Partilhas montadas Name[pt_BR]=Compartilhamentos montados Name[ro]=Partajări montate Name[ru]=Подключены общие папки Name[sk]=Zdieľania pripojené Name[sv]=Delade resurser monterade Name[tr]=Paylaşımlar bağlandı Name[uk]=Змонтовано ресурси Name[x-test]=xxShares mountedxx Name[zh_CN]=共享已挂载 Name[zh_TW]=分享資料夾已掛載 Comment=Multiple shares have been mounted Comment[bs]=Višestruka dijeljenja diska su bila montirana Comment[ca]=S'han muntat múltiples comparticions Comment[ca@valencia]=S'han muntat múltiples comparticions Comment[da]=Flere ressourcer er blevet monteret Comment[de]=Mehrere Freigaben wurden eingehängt Comment[el]=Πολλοί κοινοί πόροι έχουν προσαρτηθεί Comment[en_GB]=Multiple shares have been mounted Comment[es]=Se han montado varios recursos compartidos +Comment[et]=Mitu jagatud ressurssi ühendati Comment[fi]=Useampi jako on liitetty Comment[fr]=Plusieurs partages ont été montés Comment[gl]=Montáronse varias comparticións. Comment[hu]=Több megosztás csatolva lett Comment[it]=Sono state montate condivisioni multiple Comment[ko]=여러 공유가 마운트되었습니다 Comment[nds]=Mehr as een Freegaav wöör inhangt Comment[nl]=Meerdere gedeelde mappen zijn aangekoppeld Comment[pl]=Podpięto wiele udziałów Comment[pt]=Diversas partilhas foram montadas Comment[pt_BR]=Vários compartilhamentos foram montados Comment[ro]=Mai multe partajări au fost montate Comment[ru]=Были подключены несколько общих папок Comment[sk]=Viacero zdieľaní bolo pripojených Comment[sv]=Flera delade resurser har monterats Comment[tr]=Çoklu paylaşımlar bağlandı Comment[uk]=Змонтовано декілька спільних ресурсів Comment[x-test]=xxMultiple shares have been mountedxx Comment[zh_CN]=多个共享已经被挂载了 Comment[zh_TW]=多個分享資料夾已掛載 Contexts=Notification Action=Popup [Event/sharesUnmounted] Name=Shares unmounted Name[bs]=Dijeljenja diska su demontirana Name[ca]=Comparticions desmuntades Name[ca@valencia]=Comparticions desmuntades Name[da]=Ressourcer afmonteret Name[de]=Freigaben ausgehängt Name[el]=Οι κοινοί πόροι αποπροσαρτήθηκαν Name[en_GB]=Shares unmounted Name[es]=Recursos compartidos desmontados +Name[et]=Ressursid lahutatud Name[fi]=Jakoja irrotettu Name[fr]=Partages libérés Name[gl]=Desmontáronse varias comparticións Name[hu]=Megosztások leválasztva Name[it]=Condivisioni smontate Name[ko]=마운트 해제된 공유 Name[nds]=Freegaven afhangt Name[nl]=Shares afgekoppeld Name[pl]=Odpięto udziały Name[pt]=Partilhas desmontadas Name[pt_BR]=Compartilhamentos desmontados Name[ro]=Partajări demontate Name[ru]=Отключены общие папки Name[sk]=Zdieľania odpojené Name[sv]=Delade resurser avmonterade Name[tr]=Paylaşımlar ayrıldı Name[uk]=Демонтовано ресурси Name[x-test]=xxShares unmountedxx Name[zh_CN]=共享已卸载 Name[zh_TW]=分享資料夾已卸載 Comment=Multiple shares have been unmounted Comment[bs]=Višestruka dijeljenja su bila demontirana Comment[ca]=S'han desmuntat múltiples comparticions Comment[ca@valencia]=S'han desmuntat múltiples comparticions Comment[da]=Flere ressourcer er blevet afmonteret Comment[de]=Mehrere Freigaben wurden ausgehängt Comment[el]=Πολλοί κοινοί πόροι έχουν αποπροσαρτηθεί Comment[en_GB]=Multiple shares have been unmounted Comment[es]=Se han desmontado varios recursos compartidos +Comment[et]=Mitu jagatud ressurssi lahutati Comment[fi]=Useampi jako on irrotettu Comment[fr]=Plusieurs partages ont été libérés Comment[gl]=Desmontáronse varias comparticións. Comment[hu]=Több megosztás le lett választva Comment[it]=Sono state smontate condivisioni multiple Comment[ko]=여러 공유가 마운트 해제되었습니다 Comment[nds]=Mehr as een Freegaav wöör afhangt Comment[nl]=Meerdere gedeelde mappen zijn afgekoppeld Comment[pl]=Odpięto wiele udziałów Comment[pt]=Diversas partilhas foram desmontadas Comment[pt_BR]=Vários compartilhamentos foram desmontados Comment[ro]=Mai multe partajări au fost demontate Comment[ru]=Были отключены несколько общих папок Comment[sk]=Viacero zdieľaní bolo odpojených Comment[sv]=Flera delade resurser har avmonterats Comment[tr]=Çoklu paylaşımlar ayrıldı Comment[uk]=Демонтовано декілька спільних ресурсів Comment[x-test]=xxMultiple shares have been unmountedxx Comment[zh_CN]=多个共享已经被卸载了 Comment[zh_TW]=多個分享資料夾已卸載 Contexts=Notification Action=Popup [Event/openingWalletFailed] Name=Opening wallet failed Name[bs]=Otvaranje novčanika s lozinkama neuspješno Name[ca]=Ha fallat l'obertura de la cartera Name[ca@valencia]=Ha fallat l'obertura de la cartera Name[da]=Åbning af tegnebogen mislykkedes Name[de]=Öffnen des Passwortspeichers fehlgeschlagen Name[el]=Αποτυχία ανοίγματος πορτοφολιού Name[en_GB]=Opening wallet failed Name[es]=Fallo de apertura de la cartera +Name[et]=Turvalaeka avamine nurjus Name[fi]=Lompakon avaaminen epäonnistui Name[fr]=Échec de l'ouverture du portefeuille Name[gl]=A apertura da carteira fallou Name[hu]=A jelszótároló megnyitása nem sikerült Name[it]=Apertura del portafoglio non riuscita Name[ko]=월렛 열기 실패 Name[nds]=Opmaken vun de Knipp fehlslaan Name[nl]=Openen van de portefeuille is mislukt Name[pl]=Nie udało się otworzyć portfela Name[pt]=Abertura da carteira mal-sucedida Name[pt_BR]=Falha ao abrir a carteira Name[ro]=Deschiderea portofelului a eșuat Name[ru]=Не удалось открыть бумажник Name[sk]=Otvorenie peňaženky zlyhalo Name[sv]=Misslyckades öppna plånboken Name[tr]=Cüzdan açılamadı Name[uk]=Спроба відкриття сховища паролів зазнала невдачі Name[x-test]=xxOpening wallet failedxx Name[zh_CN]=打开钱包失败 Name[zh_TW]=開啟錢包失敗 Comment=The network wallet could not be opened Comment[bs]=Mrežni novčanik s lozinkama nije se mogao otvoriti Comment[ca]=No s'ha pogut obrir la cartera de xarxa Comment[ca@valencia]=No s'ha pogut obrir la cartera de xarxa Comment[da]=Netværkstegnebogen kunne ikke åbnes Comment[de]=Der Netzwerk-Passwortspeicher kann nicht geöffnet werden Comment[el]=Αδυναμία ανοίγματος του δικτυακού πορτοφολιού Comment[en_GB]=The network wallet could not be opened Comment[es]=No se ha podido abrir la cartera de red +Comment[et]=Turvalaegast ei õnnestunud avada Comment[fi]=Verkkolompakkoa ei voi avata Comment[fr]=Impossible d'ouvrir le portefeuille réseau Comment[gl]=Non foi posíbel abrir a carteira da rede. Comment[hu]=A hálózati jelszótároló nem nyitható meg Comment[it]=Il portafoglio di rete non può essere aperto Comment[ko]=네트워크 월렛을 열 수 없습니다 Comment[nds]=De Nettwark-Knipp lett sik nich opmaken Comment[nl]=De netwerkportefeuille kon niet worden geopend Comment[pl]=Nie można otworzyć portfela sieciowego Comment[pt]=Não foi possível abrir a carteira da rede Comment[pt_BR]=Não foi possível abrir a carteira da rede Comment[ro]=Portofelul de rețea nu a putut fi deschis Comment[ru]=Не удалось открыть бумажник для браузера сетевого окружения Comment[sk]=Sieťovú peňaženku nie je možné otvoriť Comment[sv]=Nätverkets plånbok kunde inte öppnas Comment[tr]=Ağ cüzdanı açılamadı Comment[uk]=Не вдалося відкрити сховище паролів до мережі Comment[x-test]=xxThe network wallet could not be openedxx Comment[zh_CN]=无法打开网络钱包 Comment[zh_TW]=無法開啟網路錢包 Contexts=Warning Sound=Oxygen-Sys-Warning.ogg Action=Popup|Sound [Event/credentialsNotAccessible] Name=Credentials not accessible Name[bs]=Dokumenti nedostupni Name[ca]=Credencials no accessibles Name[ca@valencia]=Credencials no accessibles Name[da]=Akkreditiver ikke tilgængelige Name[de]=Anmeldedaten nicht verfügbar Name[el]=Τα στοιχεία εισόδου δεν είναι προσβάσιμα Name[en_GB]=Credentials not accessible Name[es]=Credenciales inaccesibles +Name[et]=Kasutajatunnuseid pole saada Name[fi]=Valtuutustiedot eivät ole käytettävissä Name[fr]=Identifiants inaccessibles Name[gl]=Non é posíbel acceder ás credenciais Name[hu]=A hitelesítési adatok nem hozzáférhetők Name[it]=Credenziali non accessibili Name[ko]=자격 증명에 액세스할 수 없음 Name[nds]=Togriep op Anmelldaten nich mööglich Name[nl]=Credentials zijn niet toegankelijk Name[pl]=Dane poufne są niedostępne Name[pt]=Credenciais inacessíveis Name[pt_BR]=Credenciais inacessíveis Name[ro]=Acreditările nu sunt accesibile Name[ru]=Сохранённый пароль недоступен Name[sk]=Prihlasovacie údaje neprístupné Name[sv]=Behörighetsinformation ej tillgänglig Name[tr]=Kimlik bilgilerine erişilemiyor Name[uk]=Немає реєстраційних даних Name[x-test]=xxCredentials not accessiblexx Name[zh_CN]=无法访问凭据 Name[zh_TW]=無法取得帳號密碼資訊 Comment=The credentials could not be read from the wallet Comment[bs]=Dokumenti se nisu mogli pročitati iz spremnika Comment[ca]=No s'han pogut llegir les credencials des de la cartera Comment[ca@valencia]=No s'han pogut llegir les credencials des de la cartera Comment[da]=Akkreditiverne kunne ikke læses fra tegnebogen Comment[de]=Die Anmeldedaten können nicht aus dem Passwortspeicher gelesen werden Comment[el]=Αδυναμία ανάγνωσης των στοιχείων εισόδου από το πορτοφόλι Comment[en_GB]=The credentials could not be read from the wallet Comment[es]=No se ha podido leer los credenciales de la cartera +Comment[et]=Turvalaekast ei õnnestunud lugeda kasutajatunnuseid Comment[fi]=Valtuutustietoja ei voitu lukea lompakosta Comment[fr]=Impossible de lire les identifiants dans le portefeuille Comment[gl]=Non foi posíbel ler as credenciais da carteira. Comment[hu]=A hitelesítési adatokat nem sikerült beolvasni a jelszótárolóból Comment[it]=Le credenziali non possono essere lette dal portafoglio Comment[ko]=월렛에서 자격 증명을 읽을 수 없습니다 Comment[nds]=De Anmelldaten laat sik nich ut de Knipp halen Comment[nl]=De credentials konden niet uit de portefeuille worden gelezen Comment[pl]=Nie można odczytać danych poufnych z portfela Comment[pt]=Não foi possível ler as credenciais da carteira Comment[pt_BR]=Não foi possível ler as credenciais a partir da carteira Comment[ro]=Acreditările nu au putut fi citite din portofel Comment[ru]=Не удалось прочитать имя пользователя и пароль из бумажника Comment[sk]=Prihlasovacie údaje nie je možné načítať z peňaženky Comment[sv]=Behörighetsinformationen kunde inte läsas från plånboken Comment[tr]=Kimlik bilgileri cüzdandan okunamadı Comment[uk]=Не вдалося прочитати реєстраційні дані зі сховища паролів Comment[x-test]=xxThe credentials could not be read from the walletxx Comment[zh_CN]=无法从钱包中读取凭据 Comment[zh_TW]=無法從錢包中讀取帳號密碼資訊 Contexts=Warning Sound=Oxygen-Sys-Warning.ogg Action=Popup|Sound [Event/mimetypeNotSupported] Name=Mimetype not supported Name[bs]=Mimetype nije podržan Name[ca]=Tipus MIME no admès Name[ca@valencia]=Tipus MIME no admés Name[da]=MIME-type ikke understøttet Name[de]=MIME-Typ wird nicht unterstützt Name[el]=Ο τύπος mime δεν υποστηρίζεται Name[en_GB]=Mimetype not supported Name[es]=Tipo MIME no soportado +Name[et]=MIME tüüp ei ole toetatud Name[fi]=MIME-tyyppiä ei tueta Name[fr]=Type MIME non pris en charge Name[gl]=O tipo MIME é incompatíbel Name[hu]=A MIME-típus nem támogatott Name[it]=Tipo MIME non supportato Name[ko]=지원되지 않는 MIME유형 Name[nds]=MIME-Typ warrt nich ünnerstütt Name[nl]=Mimetype wordt niet ondersteund Name[pl]=Typ mime nieobsługiwany Name[pt]=Tipo MIME não suportado Name[pt_BR]=Tipo MIME não suportado Name[ro]=Tipul MIME nu e susținut Name[ru]=Тип MIME не поддерживается Name[sk]=Mime typ nepodporovaný Name[sv]=Mime-typ stöds inte Name[tr]=Mime türü desteklenmiyor Name[uk]=Підтримки типу MIME не передбачено Name[x-test]=xxMimetype not supportedxx Name[zh_CN]=不支持 MIME 类型 Name[zh_TW]=MIME 型態不支援 Comment=The mimetype of the file that is to be printed is not supported Comment[bs]=Mimetype datoteke koji je trebao biti ispisan nije podržan Comment[ca]=El tipus MIME del fitxer a imprimir no està admès Comment[ca@valencia]=El tipus MIME del fitxer a imprimir no està admés Comment[da]=MIME-typen for den fil der skal udskrives, er ikke understøttet Comment[de]=Der MIME-Typ der zu druckenden Datei wird nicht unterstützt Comment[el]=Ο τύπος mime του αρχείου που πρόκειται να εκτυπωθεί δεν υποστηρίζεται Comment[en_GB]=The mimetype of the file that is to be printed is not supported Comment[es]=El tipo MIME del archivo a imprimir no está soportado +Comment[et]=Trükitava faili MIME tüüp ei ole toetatud Comment[fi]=Tulostettavan tiedoston MIME-tyyppiä ei tueta Comment[fr]=Le type MIME du fichier qui doit être imprimé n'est pas pris en charge Comment[gl]=O tipo MIME do ficheiro para imprimir non é compatíbel. Comment[hu]=A kinyomtatandó fájl MIME-típusa nem támogatott Comment[it]=Il tipo MIME del file da stampare non è supportato Comment[ko]=인쇄할 파일의 MIME유형이 지원되지 않습니다 Comment[nds]=De MIME-Typ vun de Datei, de Du drucken wullt, warrt nich ünnerstütt Comment[nl]=Het mimetype van het bestand dat afgedrukt moet worden wordt niet ondersteund Comment[pl]=Typ mime pliku, który masz zamiar wydrukować nie jest obsługiwany Comment[pt]=O tipo MIME do ficheiro a imprimir não é suportado Comment[pt_BR]=O tipo MIME do arquivo a imprimir não é suportado Comment[ru]=Не поддерживается тип MIME файла, который требуется напечатать на принтере Comment[sk]=Mime typ súboru na tlač nie je podporované Comment[sv]=Mime-typen för filen som ska skrivas ut stöds inte Comment[tr]=Bu mime türünde bir dosyanın yazdırılması desteklenmiyor Comment[uk]=Підтримки друку файлів з таким типом MIME не передбачено Comment[x-test]=xxThe mimetype of the file that is to be printed is not supportedxx Comment[zh_CN]=需打印文件的 MIME 类型不被支持 Comment[zh_TW]=要列印的檔案 MIME 型態未被支援 Contexts=Warning Sound=Oxygen-Sys-Warning.ogg Action=Popup|Sound [Event/bookmarkExists] Name=Bookmark exists Name[bs]=Zabilješka postoji Name[ca]=L'adreça d'interès ja existeix Name[ca@valencia]=L'adreça d'interés ja existeix Name[da]=Bogmærket findes Name[de]=Lesezeichen vorhanden Name[el]=Ο σελιδοδείκτης υπάρχει Name[en_GB]=Bookmark exists Name[es]=Marcador existente +Name[et]=Järjehoidja on olemas Name[fi]=Kirjanmerkki on jo olemassa Name[fr]=Signet existant Name[gl]=O marcador existe Name[hu]=A könyvjelző létezik Name[it]=Segnalibro esistente Name[ko]=책갈피가 있음 Name[nds]=Gifft Leesteken al Name[nl]=Bladwijzer bestaat al Name[pl]=Zakładka istnieje Name[pt]=O favorito existe Name[pt_BR]=Favorito já existe Name[ro]=Semn de carte existent Name[ru]=Закладка существует Name[sk]=Záložka existuje Name[sv]=Bokmärke finns Name[tr]=Yer imi mevcut Name[uk]=Така закладка вже існує Name[x-test]=xxBookmark existsxx Name[zh_CN]=书签存在 Name[zh_TW]=書籤已存在 Comment=The bookmark exists Comment[bs]=Zabilješka postoji Comment[ca]=L'adreça d'interès ja existeix Comment[ca@valencia]=L'adreça d'interés ja existeix Comment[da]=Bogmærket findes Comment[de]=Das Lesezeichen ist bereits vorhanden Comment[el]=Ο σελιδοδείκτης υπάρχει Comment[en_GB]=The bookmark exists Comment[es]=El marcador ya existe +Comment[et]=Järjehoidja on olemas Comment[fi]=Kirjanmerkki on jo olemassa Comment[fr]=Ce signet existe déjà Comment[gl]=O marcador xa existe. Comment[hu]=A könyvjelző létezik Comment[it]=Il segnalibro esiste Comment[ko]=책갈피가 존재합니다 Comment[nds]=Dat gifft dat Leesteken al Comment[nl]=De bladwijzer bestaat al Comment[pl]=Zakładka istnieje Comment[pt]=O favorito existe Comment[pt_BR]=O favorito já existe Comment[ro]=Semnul de carte există Comment[ru]=Такая закладка уже существует Comment[sk]=Záložka existuje Comment[sv]=Bokmärket finns Comment[tr]=Bu yer imi mevcut Comment[uk]=Закладка вже існує Comment[x-test]=xxThe bookmark existsxx Comment[zh_CN]=书签存在 Comment[zh_TW]=書籤已存在 Contexts=Warning Sound=Oxygen-Sys-Warning.ogg Action=Popup|Sound [Event/bookmarkLabelInUse] Name=Bookmark label in use Name[bs]=Oznaka zabilješke u upotrebi Name[ca]=L'etiqueta per a l'adreça d'interès s'està emprant Name[ca@valencia]=L'etiqueta per a l'adreça d'interés s'està emprant Name[da]=Bogmærke-etiketten er i brug Name[de]=Beschriftung des Lesezeichens wird bereits verwendet Name[el]=Ετικέτα σελιδοδείκτη σε χρήση Name[en_GB]=Bookmark label in use Name[es]=Etiqueta de marcador en uso +Name[et]=Järjehoidja nimi on kasutusel Name[fi]=Kirjanmerkin nimiö on jo käytössä Name[fr]=Étiquette de signet utilisé Name[gl]=A etiqueta de marcador xa existe Name[hu]=A könyvjelzőcímke használatban van Name[it]=L'etichetta del segnalibro è in uso Name[ko]=사용 중인 책갈피 레이블 Name[nds]=Leesteken-Beteker in Bruuk Name[nl]=Bladwijzerlabel is in gebruik Name[pl]=Etykieta zakładki w użyciu Name[pt]=Legenda do favorito existente Name[pt_BR]=Legenda do favorito em uso Name[ro]=Etichetă pentru semn de carte în uz Name[ru]=Название закладки уже используется Name[sk]=Názov záložky sa používa Name[sv]=Bokmärkesbeteckning används Name[tr]=Yer imi etiketi kullanımda Name[uk]=Мітку закладки вже використано Name[x-test]=xxBookmark label in usexx Name[zh_CN]=正在使用的书签标签 Name[zh_TW]=書籤標記已在使用中 Comment=The label for the bookmark already exists Comment[bs]=Oznaka za zabilješku već postoji Comment[ca]=L'etiqueta per a l'adreça d'interès ja existeix Comment[ca@valencia]=L'etiqueta per a l'adreça d'interés ja existeix Comment[da]=Etiketten for bogmærket findes allerede Comment[de]=Es existiert bereits ein Lesezeichen mit diesem Namen Comment[el]=Η ετικέτα για το σελιδοδείκτη ήδη υπάρχει Comment[en_GB]=The label for the bookmark already exists Comment[es]=La etiqueta del marcador ya existe +Comment[et]=Sellise nimega järjehoidja on juba olemas Comment[fi]=Kirjanmerkin nimiö on jo olemassa Comment[fr]=L'étiquette du signet existe déjà Comment[gl]=A etiqueta para o marcador xa existe. Comment[hu]=A könyvjelző címkéje már létezik Comment[it]=L'etichetta del segnalibro esiste già Comment[ko]=책갈피의 레이블이 이미 있습니다 Comment[nds]=Dat gifft den Beteker för't Leesteken al Comment[nl]=Het label voor de bladwijzer bestaat al Comment[pl]=Etykieta dla zakładki już istnieje Comment[pt]=Já existe a legenda para o favorito Comment[pt_BR]=Já existe a legenda para o favorito Comment[ro]=Eticheta pentru semnul de carte există deja Comment[ru]=Выбранное название для закладки уже существует Comment[sk]=Názov pre záložku už existuje Comment[sv]=Beteckningen för bokmärket finns redan Comment[tr]=Bu yer imi için etiket zaten kullanılıyor Comment[uk]=Мітка для закладки вже існує Comment[x-test]=xxThe label for the bookmark already existsxx Comment[zh_CN]=书签的标签已存在 Comment[zh_TW]=書籤的標記已存在 Contexts=Warning Sound=Oxygen-Sys-Warning.ogg Action=Popup|Sound [Event/sambaConfigFileMissing] Name=Configuration file for Samba missing Name[bs]=Konfiguracijska datoteka za Samba-u nedostaje Name[ca]=Falta el fitxer de configuració per a Samba Name[ca@valencia]=Falta el fitxer de configuració per a Samba Name[da]=Konfigurationsfil til Samba mangler Name[de]=Die Konfigurationsdatei für Samba fehlt Name[el]=Λείπει το αρχείο διαμόρφωσης για τη Samba Name[en_GB]=Configuration file for Samba missing Name[es]=Falta el archivo de configuración de Samba +Name[et]=Samba seadistusfail puudub Name[fi]=Samban asetustiedosto puuttuu Name[fr]=Fichier de configuration Samba manquant Name[gl]=Falta o ficheiro de configuración de Samba Name[hu]=A Samba beállítófájlja hiányzik Name[it]=File di configurazione per Samba mancante Name[ko]=Samba에 대한 환경설정 파일 누락 Name[nds]=Instellendatei för Samba fehlt Name[nl]=Configuratiebestand voor Samba ontbreekt Name[pl]=Brakuje pliku ustawień dla Samby Name[pt]=Falta o ficheiro de configuração do Samba Name[pt_BR]=Falta o arquivo de configuração do Samba Name[sk]=Konfiguračný súbor pre Sambu chyba Name[sv]=Inställningsfil för Samba saknas Name[tr]=Samba için yapılandırma dosyası eksik Name[uk]=Не вистачає файла налаштувань Samba Name[x-test]=xxConfiguration file for Samba missingxx Name[zh_CN]=缺少 Samba 的配置文件 Name[zh_TW]=Samba 設定檔遺失 Comment=The configuration file for the Samba suite is missing Comment[bs]=Konfiguracijska datoteka za Samba paket nedostaje Comment[ca]=Falta el fitxer de configuració per a la suite Samba Comment[ca@valencia]=Falta el fitxer de configuració per a la suite Samba Comment[da]=Konfigurationsfilen for Samba-suiten mangler Comment[de]=Die Konfigurationsdatei der Samba-Suite fehlt Comment[el]=Το αρχείο διαμόρφωσης για τη Samba λείπει Comment[en_GB]=The configuration file for the Samba suite is missing Comment[es]=Falta el archivo de configuración para la suite Samba +Comment[et]=Samba seadistusfail puudub Comment[fi]=Samba-ohjelmiston asetustiedosto puuttuu Comment[fr]=Le fichier de configuration pour la suite Samba est manquant Comment[gl]=Falta o ficheiro de configuración da colección de software Samba. Comment[hu]=A Samba alkalmazáscsomag beállítófájlja hiányzik Comment[it]=Il file di configurazione per la suite Samba è mancante Comment[ko]=Samba 제품군의 환경설정 파일이 누락되었습니다 Comment[nds]=De Instellendatei för de Samba-Programmsammeln fehlt Comment[nl]=Het configuratiebestand voor de Samba-suite ontbreekt Comment[pl]=Brakuje pliku ustawień dla pakietu Samby Comment[pt]=Falta o ficheiro de configuração do pacote Samba Comment[pt_BR]=Falta o arquivo de configuração do pacote Samba Comment[sk]=Konfiguračný súbor pre Sambu chýba Comment[sv]=Inställningsfilen för Samba-sviten saknas Comment[tr]=Samba paketi için yapılandırma dosyası eksik Comment[uk]=Не вистачає файла налаштувань для комплекту програм Samba Comment[x-test]=xxThe configuration file for the Samba suite is missingxx Comment[zh_CN]=缺少 Samba 套件的配置文件 Comment[zh_TW]=Smaba 套件的設定檔遺失 Contexts=Warning Sound=Oxygen-Sys-Warning.ogg Action=Popup|Sound [Event/mountingFailed] Name=Mounting failed Name[bs]=Montiranje neuspješno Name[ca]=Ha fallat el muntatge Name[ca@valencia]=Ha fallat el muntatge Name[cs]=Připojení selhalo Name[da]=Montering mislykkedes Name[de]=Einhängen fehlgeschlagen Name[el]=Αποτυχία προσάρτησης Name[en_GB]=Mounting failed Name[es]=Montaje fallido +Name[et]=Ühendamine nurjus Name[fi]=Liittäminen epäonnistui Name[fr]=Échec du montage Name[gl]=A montaxe fallou Name[hu]=A csatolás nem sikerült Name[it]=Montaggio non riuscito Name[ko]=마운트 실패 Name[nds]=Inhangen fehlslaan Name[nl]=Aankoppelen is mislukt Name[pl]=Nie udało się podpiąć Name[pt]=Montagem mal-sucedida Name[pt_BR]=Falha na montagem Name[ro]=Montarea a eșuat Name[ru]=Ошибка подключения Name[sk]=Pripojenie zlyhalo Name[sv]=Montering misslyckades Name[tr]=Bağlama başarısız oldu Name[uk]=Невдала спроба монтування Name[x-test]=xxMounting failedxx Name[zh_CN]=挂载失败 Name[zh_TW]=掛載失敗 Comment=Mounting a share failed Comment[bs]=Montiranje dijela neuspješno Comment[ca]=Ha fallat el muntatge d'una compartició Comment[ca@valencia]=Ha fallat el muntatge d'una compartició Comment[da]=Montering af en ressource mislykkedes Comment[de]=Das Einhängen einer Freigabe ist fehlgeschlagen Comment[el]=Αποτυχία προσάρτησης ενός κοινού πόρου Comment[en_GB]=Mounting a share failed Comment[es]=El montaje de un recurso compartido ha fallado +Comment[et]=Jagatud ressursi ühendamine nurjus Comment[fi]=Jaon liittäminen epäonnistui Comment[fr]=Le montage d'un partage a échoué Comment[gl]=A montaxe dunha compartición fallou. Comment[hu]=Egy megosztás csatolása nem sikerült Comment[it]=Montaggio di una condivisione non riuscito Comment[ko]=공유 마운트 실패 Comment[nds]=Dat Inhangen vun en Freegaav is fehlslaan Comment[nl]=Aankoppelen van een gedeelde map is mislukt Comment[pl]=Nie udało się podpiąć zasobu Comment[pt]=A montagem de uma partilha foi mal-sucedida Comment[pt_BR]=Falha na montagem de um compartilhamento Comment[ro]=Montarea unei partajări a eșuat Comment[ru]=Не удалось подключить общую папку Comment[sk]=Pripojenie zdieľania zlyhalo Comment[sv]=Montering av en delad katalog misslyckades Comment[tr]=Bir paylaşımın bağlanması başarısız oldu Comment[uk]=Спроба монтування спільного ресурсу зазнала невдачі Comment[x-test]=xxMounting a share failedxx Comment[zh_CN]=挂载共享失败 Comment[zh_TW]=掛載分享資料夾失敗 Contexts=Error Sound=Oxygen-Sys-App-Error.ogg Action=Popup|Sound [Event/unmountingFailed] Name=Unmounting failed Name[bs]=Demontiranje neuspješno Name[ca]=Ha fallat el desmuntatge Name[ca@valencia]=Ha fallat el desmuntatge Name[cs]=Odpojení neúspěšné Name[da]=Afmontering mislykkedes Name[de]=Aushängen fehlgeschlagen Name[el]=Αποτυχία αποπροσάρτησης Name[en_GB]=Unmounting failed Name[es]=Desmontaje fallido +Name[et]=Lahutamine nurjus Name[fi]=Irrottaminen epäonnistui Name[fr]=Échec de la libération Name[gl]=A desmontaxe fallou Name[hu]=A leválasztás nem sikerült Name[it]=Smontaggio non riuscito Name[ko]=마운트 해제 실패 Name[nds]=Afhangen fehlslaan Name[nl]=Afkoppelen is mislukt. Name[pl]=Nie udało się odpiąć Name[pt]=A desmontagem foi mal-sucedida Name[pt_BR]=Falha na desmontagem Name[ro]=Demontarea a eșuat Name[ru]=Ошибка отключения Name[sk]=Odpojenie zlyhalo Name[sv]=Avmontering misslyckades Name[tr]=Ayırma işlemi başarısız oldu Name[uk]=Помилка демонтування Name[x-test]=xxUnmounting failedxx Name[zh_CN]=卸载失败 Name[zh_TW]=卸載失敗 Comment=Unmounting a share failed Comment[bs]=Demontiranje dijela neuspješno Comment[ca]=Ha fallat el desmuntatge d'una compartició Comment[ca@valencia]=Ha fallat el desmuntatge d'una compartició Comment[da]=Afmontering af en ressource mislykkedes Comment[de]=Das Aushängen einer Freigabe ist fehlgeschlagen Comment[el]=Αποτυχία αποπροσάρτησης ενός κοινού πόρου Comment[en_GB]=Unmounting a share failed Comment[es]=El desmontaje de un recurso compartido ha fallado +Comment[et]=Jagatud ressursi lahutamine nurjus Comment[fi]=Jaon irrottaminen epäonnistui Comment[fr]=La libération d'un partage a échoué Comment[gl]=A desmontaxe dunha compartición fallou. Comment[hu]=Egy megosztás leválasztása nem sikerült Comment[it]=Smontaggio di una condivisione non riuscito Comment[ko]=공유 마운트 해제 실패 Comment[nds]=Dat Afhangen vun en Freegaav is fehlslaan Comment[nl]=Afkoppelen van een gedeelde map is mislukt Comment[pl]=Nie udało się odpiąć zasobu Comment[pt]=A desmontagem de uma partilha foi mal-sucedida Comment[pt_BR]=Falha na desmontagem de um compartilhamento Comment[ro]=Demontarea unei partajări a eșuat Comment[ru]=Не удалось отключить общую папку Comment[sk]=Odpojenie zdieľania zlyhalo Comment[sv]=Avmontering av en delad katalog misslyckades Comment[tr]=Bir paylaşımın ayrılması başarısız oldu Comment[uk]=Помилка демонтування ресурсу Comment[x-test]=xxUnmounting a share failedxx Comment[zh_CN]=卸载共享失败 Comment[zh_TW]=卸載分享資料夾失敗 Contexts=Error Sound=Oxygen-Sys-App-Error.ogg Action=Popup|Sound [Event/unmountingNotAllowed] Name=Unmounting not allowed Name[bs]=Demontiranje nije dozvoljeno Name[ca]=No s'ha permès el desmuntatge Name[ca@valencia]=No s'ha permés el desmuntatge Name[da]=Afmontering er ikke tilladt Name[de]=Aushängen nicht erlaubt Name[el]=Η αποπροσάρτηση δεν επιτρέπεται Name[en_GB]=Unmounting not allowed Name[es]=Desmontaje no permitido +Name[et]=Lahutamine ei ole lubatud Name[fi]=Irrottamista ei sallita Name[fr]=Libération non autorisée Name[gl]=Non ten permiso para desmontar Name[hu]=A leválasztás nem engedélyezett Name[it]=Smontaggio non permesso Name[ko]=마운트 해제 불가 Name[nds]=Afhangen nich tolaten Name[nl]=Afkoppelen niet toegestaan Name[pl]=Odpinanie niedozwolone Name[pt]=Desmontagem não permitida Name[pt_BR]=Desmontagem não permitida Name[ro]=Demontarea nu este permisă Name[ru]=Отключение не разрешено Name[sk]=Odpojenie nie je povolené Name[sv]=Avmontering tillåts inte Name[tr]=Ayırmaya izin verilmiyor Name[uk]=Демонтування заборонено Name[x-test]=xxUnmounting not allowedxx Name[zh_CN]=不允许卸载 Name[zh_TW]=不允許卸載 Comment=The unmounting of a certain share is not allowed Comment[bs]=Demontiranje određenog dijela nije dozvoljeno Comment[ca]=No s'ha permès el desmuntatge d'una compartició concreta Comment[ca@valencia]=No s'ha permés el desmuntatge d'una compartició concreta Comment[da]=Afmontering af en bestemt ressource er ikke tilladt Comment[de]=Das Aushängen einer bestimmten Freigabe ist nicht erlaubt Comment[el]=Η αποπροσάρτηση ενός ορισμένου κοινού πόρου δεν επιτρέπεται Comment[en_GB]=The unmounting of a certain share is not allowed Comment[es]=El desmontaje de un cierto recurso compartido no está permitido +Comment[et]=Jagatud ressursi lahutamine ei ole lubatud Comment[fi]=Määräjaon irrottamista ei sallita Comment[fr]=La libération d'un certain partage n'est pas autorisée Comment[gl]=Non ten permiso para desmontar unha das comparticións. Comment[hu]=Egy bizonyos megosztás leválasztása nem engedélyezett Comment[it]=Lo smontaggio di certe condivisioni non è permesso Comment[ko]=특정 공유의 마운트 해제는 허용 되지 않습니다 Comment[nds]=Du muttst en wiss Freegaav nich afhangen Comment[nl]=Het afkoppelen van een bepaalde gedeelde map is niet toegestaan Comment[pl]=Odpinanie niektórych udziałów jest niedozwolone Comment[pt]=A desmontagem de uma dada partilha não é permitida Comment[pt_BR]=A desmontagem de uma determinado compartilhamento não é permitida Comment[ro]=Demontarea unei anumite partajări nu este permisă Comment[ru]=Отключение определённой общей папки не разрешено Comment[sk]=Odpojenie určitého zdieľania je je povolené Comment[sv]=Avmontering av en viss delad resurs är inte tillåten Comment[tr]=Belirli bir paylaşımın ayrılmasına izin verilmiyor Comment[uk]=Демонтування певного ресурсу заборонено Comment[x-test]=xxThe unmounting of a certain share is not allowedxx Comment[zh_CN]=不允许卸载某个共享 Comment[zh_TW]=不允許卸載特定分享資料夾 Contexts=Error Sound=Oxygen-Sys-App-Error.ogg Action=Popup|Sound [Event/synchronizationFailed] Name=Synchronization failed Name[bs]=Sinhronizacija nije uspjela Name[ca]=Ha fallat la sincronització Name[ca@valencia]=Ha fallat la sincronització Name[cs]=Synchronizace selhala Name[da]=Synkronisering mislykkedes Name[de]=Abgleich fehlgeschlagen Name[el]=Αποτυχία συγχρονισμού Name[en_GB]=Synchronisation failed Name[es]=Sincronización fallida +Name[et]=Sünkroonimine nurjus Name[fi]=Synkronointi epäonnistui Name[fr]=Échec de la synchronisation Name[gl]=A sincronización fallou Name[hu]=A szinkronizálás nem sikerült Name[it]=Sincronizzazione non riuscita Name[ko]=동기화 실패 Name[nds]=Synkroniseren fehlslaan Name[nl]=Synchronisatie mislukt Name[pl]=Nie udało się zsynchronizować Name[pt]=Sincronização mal-sucedida Name[pt_BR]=Falha na sincronização Name[ru]=Ошибка синхронизации Name[sk]=Synchronizácia zlyhala Name[sv]=Synkronisering misslyckades Name[tr]=Eşleme başarısız oldu Name[uk]=Невдала спроба синхронізації Name[x-test]=xxSynchronization failedxx Name[zh_CN]=同步失败 Name[zh_TW]=同步失敗 Comment=The synchronization of a share and a local copy failed Comment[bs]=Sinhronizacija dijela i lokalne kopije nije uspjela Comment[ca]=Ha fallat la sincronització d'una compartició amb una còpia local Comment[ca@valencia]=Ha fallat la sincronització d'una compartició amb una còpia local Comment[da]=Synkronisering af en ressource og en lokal kopi mislykkedes Comment[de]=Der Abgleich zwischen einer Freigabe und der lokalen Kopie ist fehlgeschlagen Comment[el]=Αποτυχία συγχρονισμού ενός κοινού πόρου με ένα τοπικό αντίγραφο Comment[en_GB]=The synchronisation of a share and a local copy failed Comment[es]=La sincronización de un recurso compartido y una copia local ha fallado +Comment[et]=Jagatud ressursi ja kohaliku koopia sünkroonimine nurjus Comment[fi]=Jaon ja paikallisen kopion synkronointi epäonnistui Comment[fr]=La synchronisation d'un partage et d'une copie locale a échoué Comment[gl]=A sincronización dunha das comparticións cunha copia local fallou. Comment[hu]=Egy megosztás és egy helyi másolat szinkronizálása nem sikerült Comment[it]=La sincronizzazione tra una condivisione ed una copia locale non è riuscita Comment[ko]=공유 및 로컬 복사본의 동기화 실패 Comment[nds]=Dat Synkroniseren vun en Freegaav un en lokaal Kopie is fehlslaan Comment[nl]=De synchronisatie van een gedeelde map met een lokale kopie is mislukt Comment[pl]=Nie udało się zsynchronizować zasobu i kopii lokalnej Comment[pt]=A sincronização entre uma partilha e uma cópia local foi mal-sucedida Comment[pt_BR]=Falha na sincronização de um compartilhamento com uma cópia local Comment[ru]=Не удалось синхронизовать общую папку и её копию на этом компьютере Comment[sk]=Synchronizácia zdieľania a miestnej kópie zlyhala Comment[sv]=Synkronisering av en delad resurs och en lokal kopia misslyckades Comment[tr]=Bir paylaşım ile yerel kopyanın eşlenmesi başarısız oldu Comment[uk]=Спроба виконання синхронізації між спільним ресурсом і локальною копією зазнала невдачі Comment[x-test]=xxThe synchronization of a share and a local copy failedxx Comment[zh_CN]=共享和本地副本的同步失败 Comment[zh_TW]=將分享資源與本地端複本同步失敗 Contexts=Error Sound=Oxygen-Sys-App-Error.ogg Action=Popup|Sound [Event/commandNotFound] Name=Command not found Name[bs]=Naredba nije nađena Name[ca]=No s'ha trobat l'ordre Name[ca@valencia]=No s'ha trobat l'ordre Name[da]=Kommando ikke fundet Name[de]=Befehl nicht gefunden Name[el]=Η εντολή δεν βρέθηκε Name[en_GB]=Command not found Name[es]=Orden no encontrada +Name[et]=Käsku ei leitud Name[fi]=Komentoa ei löydy Name[fr]=Commande introuvable Name[gl]=Non se atopou unha orde Name[hu]=A parancs nem található Name[ia]=Commando non trovate Name[it]=Comando non trovato Name[ko]=명령을 찾을 수 없음 Name[nds]=Befehl nich funnen Name[nl]=Commando niet gevonden Name[pl]=Nie znaleziono polecenia Name[pt]=Comando não encontrado Name[pt_BR]=Comando não encontrado Name[ru]=Команда не найдена Name[sk]=Príkaz nenájdený Name[sv]=Kommandot hittades inte Name[tr]=Komut bulunamadı Name[uk]=Команду не знайдено Name[x-test]=xxCommand not foundxx Name[zh_CN]=找不到命令 Name[zh_TW]=找不到指令 Comment=A required command could not be found Comment[bs]=Tražena komanda nije pronađena Comment[ca]=No s'ha pogut trobar l'ordre requerida Comment[ca@valencia]=No s'ha pogut trobar l'ordre requerida Comment[da]=En påkrævet kommando kunne ikke findes Comment[de]=Ein erforderlicher Befehl wurde nicht gefunden Comment[el]=Η απαιτούμενη εντολή δεν βρέθηκε Comment[en_GB]=A required command could not be found Comment[es]=No se ha podido encontrar una orden necesaria +Comment[et]=Nõutavat käsku ei leitud Comment[fi]=Pyydettyä komentoa ei löydy Comment[fr]=Impossible de trouver une commande nécessaire Comment[gl]=Non se atopou unha orde necesaria. Comment[hu]=A szükséges parancs nem található Comment[it]=Un comando richiesto non è stato trovato Comment[ko]=필요한 명령을 찾을 수 없음 Comment[nds]=En Befehl, de noot deit, lett sik nich finnen Comment[nl]=Een vereist commando is niet gevonden Comment[pl]=Nie można znaleźć wymaganego polecenia Comment[pt]=Não foi possível encontrar um comando necessário Comment[pt_BR]=Não foi possível encontrar um comando necessário Comment[ru]=Необходимая команда не была найдена Comment[sk]=Požadovaný príkaz nie je možné nájsť Comment[sv]=Ett nödvändigt kommando kunde inte hittas Comment[tr]=Girilen komut bulunamadı Comment[uk]=Не вдалося знайти потрібної вам команди Comment[x-test]=xxA required command could not be foundxx Comment[zh_CN]=找不到所需的命令 Comment[zh_TW]=找不到需要的指令 Contexts=Error Sound=Oxygen-Sys-App-Error.ogg Action=Popup|Sound [Event/cannotBookmarkPrinter] Name=Cannot bookmark printer Name[bs]=Ne može zabilježiti printer Name[ca]=No s'ha pogut afegir una adreça d'interès per a la impressora Name[ca@valencia]=No s'ha pogut afegir una adreça d'interés per a la impressora Name[da]=Kan ikke sætte bogmærke ved printer Name[de]=Lesezeichen für Drucker kann nicht angelegt werden Name[el]=Αδυναμία εισαγωγής εκτυπωτή στους σελιδοδείκτες Name[en_GB]=Cannot bookmark printer Name[es]=No se puede añadir una impresora como marcador +Name[et]=Printerit ei saa järjehoidjatesse lisada Name[fi]=Tulostimesta ei voi tehdä kirjanmerkkiä Name[fr]=Impossible d'ajouter l'imprimante aux signets Name[gl]=Non é posíbel marcar unha impresora Name[hu]=Nem lehet könyvjelzőbe tenni a nyomtatót Name[it]=Non riesco ad aggiungere la stampante ai segnalibri Name[ko]=프린터를 책갈피할 수 없음 Name[nds]=Drucker lett sik Leestekens nich tofögen Name[nl]=Kan geen bladwijzer maken van een printer Name[pl]=Nie można utworzyć zakładki dla drukarki Name[pt]=Marcação de impressora como favorita impossível Name[pt_BR]=Não foi possível marcar a impressora como favorita Name[ru]=Невозможно добавить принтер в закладки Name[sk]=Nemôžem pridať tlačiareň medzi záložky Name[sv]=Kan inte lägga till bokmärke för skrivare Name[tr]=Yazıcı yer imlerine eklenemez Name[uk]=Не можна створювати закладки для принтерів Name[x-test]=xxCannot bookmark printerxx Name[zh_CN]=无法为打印机添加书签 Name[zh_TW]=無法將印表機加入書籤 Comment=A printer cannot be bookmarked Comment[bs]=Printer ne može biti zabilježen Comment[ca]=Una impressora no es pot afegir com a adreça d'interès Comment[ca@valencia]=Una impressora no es pot afegir com a adreça d'interés Comment[da]=Der kan ikke sættes bogmærke ved en printer Comment[de]=Ein Lesezeichen für einen Drucker kann nicht angelegt werden Comment[el]=Αδυναμία εισαγωγής εκτυπωτή στους σελιδοδείκτες Comment[en_GB]=A printer cannot be bookmarked Comment[es]=Una impresora no se puede añadir como marcador +Comment[et]=Printerit ei saa järjehoidjatesse lisada Comment[fi]=Tulostimesta ei voi tehdä kirjanmerkkiä Comment[fr]=Une imprimante n'a pas pu être ajoutée aux signets Comment[gl]=Non se pode marcar unha impresora Comment[hu]=Egy nyomtatót nem lehet könyvjelzőbe tenni Comment[it]=Una stampante non può essere aggiunta ai segnalibri Comment[ko]=프린터를 책갈피할 수 없음 Comment[nds]=En Drucker lett sik de Leestekens nich tofögen Comment[nl]=Een printer kan geen bladwijzer hebben Comment[pl]=Nie można utworzyć zakładki dla drukarki Comment[pt]=Não foi possível adicionar uma impressora aos favoritos Comment[pt_BR]=Não foi possível adicionar uma impressora aos favoritos Comment[ru]=Невозможно создать закладку для общего ресурса, потому что он является принтером. Comment[sk]=Tlačiareň nie je možné pridať do záložiek Comment[sv]=Ett bokmärke kan inte läggas till för en skrivare Comment[tr]=Bir yazıcı yer imlerine eklenemez Comment[uk]=Не можна створювати закладку на принтер Comment[x-test]=xxA printer cannot be bookmarkedxx Comment[zh_CN]=打印机无法添加书签 Comment[zh_TW]=無法將印表機加入書籤 Contexts=Error Sound=Oxygen-Sys-App-Error.ogg Action=Popup|Sound [Event/fileNotFound] Name=File not found Name[bs]=Datoteka nije pronađena. Name[ca]=No s'ha trobat el fitxer Name[ca@valencia]=No s'ha trobat el fitxer Name[cs]=Soubor nenalezen Name[da]=Fil ikke fundet Name[de]=Datei nicht gefunden Name[el]=Το αρχείο δεν βρέθηκε Name[en_GB]=File not found Name[es]=Archivo no encontrado +Name[et]=Faili ei leitud Name[fi]=Tiedostoa ei löydy Name[fr]=Fichier introuvable Name[gl]=Non se atopou un ficheiro Name[hu]=A fájl nem található Name[ia]=File non trovate Name[it]=File non trovato Name[ko]=파일을 찾을 수 없음 Name[nds]=Datei nich funnen Name[nl]=Bestand niet gevonden Name[pl]=Nie znaleziono pliku Name[pt]=Ficheiro não encontrado Name[pt_BR]=Arquivo não encontrado Name[ru]=Файл не найден Name[sk]=Súbor nenájdený Name[sv]=Filen hittades inte Name[tr]=Dosya bulunamadı Name[uk]=Файл не знайдено Name[x-test]=xxFile not foundxx Name[zh_CN]=未找到文件 Name[zh_TW]=找不到檔案 Comment=A file could not be found Comment[bs]=Datoteka niej pronađena Comment[ca]=No s'ha pogut trobar un fitxer Comment[ca@valencia]=No s'ha pogut trobar un fitxer Comment[da]=En fil kunne ikke findes Comment[de]=Eine Datei wurde nicht gefunden Comment[el]=Το αρχείο δεν βρέθηκε Comment[en_GB]=A file could not be found Comment[es]=No se ha podido encontrar un archivo +Comment[et]=Faili ei leitud Comment[fi]=Tiedostoa ei löydy Comment[fr]=Impossible de trouver un fichier Comment[gl]=Non foi posíbel atopar un ficheiro. Comment[hu]=Egy fájl nem található Comment[it]=Un file non è stato trovato Comment[ko]=파일을 찾을 수 없음 Comment[nds]=En Datei lett sik nich finnen Comment[nl]=Een bestand kon niet worden gevonden Comment[pl]=Nie można znaleźć pliku Comment[pt]=Não foi possível encontrar um ficheiro Comment[pt_BR]=Não foi possível encontrar um arquivo Comment[ru]=Не удалось найти файл Comment[sk]=Súbor nie je možné nájsť Comment[sv]=En fil kunde inte hittas Comment[tr]=Bir dosya bulunamadı Comment[uk]=Не вдалося знайти файл Comment[x-test]=xxA file could not be foundxx Comment[zh_CN]=找不到文件 Comment[zh_TW]=找不到檔案 Contexts=Error Sound=Oxygen-Sys-App-Error.ogg Action=Popup|Sound [Event/openingFileFailed] Name=Opening file failed Name[bs]=Otvaranje datoteke nije uspjelo Name[ca]=Ha fallat en obrir el fitxer Name[ca@valencia]=Ha fallat en obrir el fitxer Name[da]=Åbning af fil mislykkedes Name[de]=Öffnen der Datei fehlgeschlagen Name[el]=Αποτυχία ανοίγματος αρχείου Name[en_GB]=Opening file failed Name[es]=Apertura de archivo fallida +Name[et]=Faili avamine nurjus Name[fi]=Tiedoston avaaminen epäonnistui Name[fr]=Échec de l'ouverture d'un fichier Name[gl]=A apertura do ficheiro fallou Name[hu]=A fájl megnyitása nem sikerült Name[it]=Apertura del file non riuscita Name[ko]=파일 여는 중... Name[nds]=Opmaken vun Datei fehlslaan Name[nl]=Openen van bestand is mislukt Name[pl]=Nie udało się otworzyć pliku Name[pt]=Abertura do ficheiro mal sucedida Name[pt_BR]=Ocorreu uma falha ao abrir o arquivo Name[ru]=Ошибка открытия файла Name[sk]=Otvorenie súboru zlyhalo Name[sv]=Misslyckades öppna fil Name[tr]=Dosya açılamadı Name[uk]=Спроба відкриття файла зазнала невдачі Name[x-test]=xxOpening file failedxx Name[zh_CN]=打开文件失败 Name[zh_TW]=開啟檔案失敗 Comment=A file could not be opened Comment[bs]=Datoteka nije mogla biti otvorena Comment[ca]=No s'ha pogut obrir un fitxer Comment[ca@valencia]=No s'ha pogut obrir un fitxer Comment[da]=En fil kunne ikke åbnes Comment[de]=Eine Datei kann nicht geöffnet werden Comment[el]=Αποτυχία ανοίγματος αρχείου Comment[en_GB]=A file could not be opened Comment[es]=No se ha podido abrir un archivo +Comment[et]=Faili ei õnnestunud avada Comment[fi]=Tiedostoa ei voi avata Comment[fr]=Impossible d'ouvrir un fichier Comment[gl]=Non foi posíbel abrir un ficheiro. Comment[hu]=Egy fájlt nem lehetett megnyitni Comment[it]=Un file non può essere aperto Comment[ko]=파일을 열 수 없음 Comment[nds]=En Datei lett sik nich opmaken Comment[nl]=Een bestand kon niet worden geopend Comment[pl]=Nie można otworzyć pliku Comment[pt]=Não foi possível aceder a um dado ficheiro Comment[pt_BR]=O arquivo não pode ser aberto Comment[ru]=Не удалось открыть файл Comment[sk]=Súbor nie je možné otvoriť Comment[sv]=En fil kunde inte öppnas Comment[tr]=Bir dosya açılamadı Comment[uk]=Не вдалося відкрити файл Comment[x-test]=xxA file could not be openedxx Comment[zh_CN]=无法打开文件 Comment[zh_TW]=無法開啟檔案 Contexts=Error Sound=Oxygen-Sys-App-Error.ogg Action=Popup|Sound [Event/readingFileFailed] Name=Reading file failed Name[bs]=Čitanje datoteke nije uspjelo Name[ca]=Ha fallat en llegir el fitxer Name[ca@valencia]=Ha fallat en llegir el fitxer Name[da]=Læsning af fil mislykkedes Name[de]=Lesen der Datei fehlgeschlagen Name[el]=Αποτυχία ανάγνωσης αρχείου Name[en_GB]=Reading file failed Name[es]=Lectura de archivo fallida +Name[et]=Faili lugemine nurjus Name[fi]=Tiedoston lukeminen epäonnistui Name[fr]=Échec de la lecture d'un fichier Name[gl]=A lectura do ficheiro fallou Name[hu]=A fájl olvasása nem sikerült Name[it]=Lettura del file non riuscita Name[ko]=파일 읽기 실패 Name[nds]=Lesen vun Datei fehlslaan Name[nl]=Lezen van bestand is mislukt Name[pl]=Nie udało się odczytać z pliku Name[pt]=Leitura do ficheiro mal-sucedida Name[pt_BR]=Falha na leitura do arquivo Name[ru]=Ошибка чтения из файла Name[sk]=Čítanie súboru zlyhalo Name[sv]=Misslyckades läsa fil Name[tr]=Dosya okunamadı Name[uk]=Помилка читання файла Name[x-test]=xxReading file failedxx Name[zh_CN]=读取文件失败 Name[zh_TW]=讀取檔案失敗 Comment=A file could not be read Comment[bs]=Datoteka nije mogla biti pročitana Comment[ca]=No s'ha pogut llegir un fitxer Comment[ca@valencia]=No s'ha pogut llegir un fitxer Comment[da]=En fil kunne ikke læses Comment[de]=Eine Datei kann nicht gelesen werden Comment[el]=Αποτυχία ανάγνωσης αρχείου Comment[en_GB]=A file could not be read Comment[es]=No se ha podido leer un archivo +Comment[et]=Faili ei õnnestunud lugeda Comment[fi]=Tiedostoa ei voi lukea Comment[fr]=Impossible de lire un fichier Comment[gl]=Non foi posíbel ler un ficheiro. Comment[hu]=Egy fájlt nem lehetett olvasni Comment[it]=Un file non può essere letto Comment[ko]=파일을 읽을 수 없음 Comment[nds]=En Datei lett sik nich lesen Comment[nl]=Een bestand kon niet worden gelezen Comment[pl]=Nie można odczytać pliku Comment[pt]=Não foi possível ler um dado ficheiro Comment[pt_BR]=Não foi possível ler um arquivo Comment[ru]=Не удалось прочитать из файла Comment[sk]=Súbor nie je možné čítať Comment[sv]=En fil kunde inte läsas Comment[tr]=Bir dosya okunamadı Comment[uk]=Не вдалося прочитати файл Comment[x-test]=xxA file could not be readxx Comment[zh_CN]=无法读取文件 Comment[zh_TW]=無法讀取檔案 Contexts=Error Sound=Oxygen-Sys-App-Error.ogg Action=Popup|Sound [Event/mkdirFailed] Name=mkdir failed Name[bs]=mkdir nije uspio Name[ca]=Ha fallat el «mkdir» Name[ca@valencia]=Ha fallat el «mkdir» Name[da]=mkdir mislykkedes Name[de]=Befehl mkdir fehlgeschlagen Name[el]=Αποτυχία mkdir Name[en_GB]=mkdir failed Name[es]=mkdir falló +Name[et]=Kataloogi loomine nurjus Name[fi]=mkdir epäonnistui Name[fr]=Échec de la commande mkdir Name[gl]=A execución de mkdir fallou Name[hu]=mkdir sikertelen Name[it]=mkdir non riuscito Name[ko]=디렉토리 만들기 실패 Name[nds]=„mkdir“ fehlslaan Name[nl]=Commando mkdir is mislukt Name[pl]=Niepowodzenie mkdir Name[pt]=Erro na criação da pasta Name[pt_BR]=Erro na criação da pasta Name[ru]=Ошибка создания каталога Name[sk]=mkdir zlyhalo Name[sv]=Kommandot mkdir misslyckades Name[tr]=mkdir başarısız oldu Name[uk]=Помилка mkdir Name[x-test]=xxmkdir failedxx Name[zh_CN]=mkdir 失败 Name[zh_TW]=建立目錄失敗 Comment=A directory could not be created Comment[bs]=Direktorij nije mogao biti kreiran Comment[ca]=No s'ha pogut crear un directori Comment[ca@valencia]=No s'ha pogut crear un directori Comment[da]=En mappe kunne ikke oprettes Comment[de]=Ein Ordner kann nicht erstellt werden Comment[el]=Αποτυχία δημιουργίας καταλόγου Comment[en_GB]=A directory could not be created Comment[es]=No se ha podido crear un directorio +Comment[et]=Kataloogi ei õnnestunud luua Comment[fi]=Kansiota ei voi luoda Comment[fr]=Impossible de créer un dossier Comment[gl]=Non foi posíbel crear un directorio. Comment[hu]=Egy könyvtárat nem lehetett létrehozni Comment[it]=Una cartella non può essere creata Comment[ko]=디렉터리를 만들 수 없음 Comment[nds]=En Orner lett sik nich opstellen Comment[nl]=Een map kon niet worden aangemaakt Comment[pl]=Nie można utworzyć katalogu Comment[pt]=Não foi possível criar uma pasta Comment[pt_BR]=Não foi possível criar uma pasta Comment[ru]=Не удалось создать каталог Comment[sk]=Adresár nie je možné vytvoriť Comment[sv]=En katalog kunde inte skapas Comment[tr]=Bir dizin oluşturulamadı Comment[uk]=Не вдалося створити каталог Comment[x-test]=xxA directory could not be createdxx Comment[zh_CN]=无法创建目录 Comment[zh_TW]=無法建立目錄 Contexts=Error Sound=Oxygen-Sys-App-Error.ogg Action=Popup|Sound [Event/processError] Name=Process error Name[bs]=Greška u procesu Name[ca]=Error de procés Name[ca@valencia]=Error de procés Name[cs]=Chyba procesu Name[da]=Procesfejl Name[de]=Prozess-Fehler Name[el]=Σφάλμα διεργασίας Name[en_GB]=Process error Name[es]=Error de proceso +Name[et]=Protsessi tõrge Name[fi]=Käsittelyvirhe Name[fr]=Erreur du processus Name[gl]=Erro no proceso Name[hu]=Folyamathiba Name[ia]=Error de processo Name[it]=Errore del processo Name[ko]=프로세스 오류 Name[nds]=Perzessfehler Name[nl]=Procesfout Name[pl]=Błąd procesu Name[pt]=Erro no processo Name[pt_BR]=Erro no processo Name[ru]=Ошибка процесса Name[sk]=Chyba procesu Name[sv]=Processfel Name[tr]=Süreç hatası Name[uk]=Помилка процесу Name[x-test]=xxProcess errorxx Name[zh_CN]=处理错误 Name[zh_TW]=行程錯誤 Comment=A process error occurred Comment[bs]=Greška u procesu se pojavila Comment[ca]=Hi ha hagut un error de procés Comment[ca@valencia]=Hi ha hagut un error de procés Comment[da]=Der opstod en procesfejl Comment[de]=Es ist ein Prozess-Fehler aufgetreten Comment[el]=Εμφανίστηκε σφάλμα σε μια διεργασία Comment[en_GB]=A process error occurred Comment[es]=Ha ocurrido un error en un proceso +Comment[et]=Protsessis tekkis tõrge Comment[fi]=Sattui käsittelyvirhe Comment[fr]=Une erreur du processus est survenue Comment[gl]=Produciuse un erro no proceso. Comment[hu]=Egy folyamathiba történt Comment[it]=Si è verificato un errore nel processo Comment[ko]=프로세스 오류가 발생 했습니다 Comment[nds]=Dat geev en Perzessfehler Comment[nl]=Er deed zich een procesfout voor Comment[pl]=Wystąpił błąd procesu Comment[pt]=Ocorreu um erro no processo Comment[pt_BR]=Ocorreu um erro no processo Comment[ru]=В работе программного процесса произошла ошибка Comment[sk]=Nastala chyba procesu Comment[sv]=Ett processfel uppstod Comment[tr]=Bir süreç hatası oluştu Comment[uk]=Помилка під час роботи процесу Comment[x-test]=xxA process error occurredxx Comment[zh_CN]=发生进程错误 Comment[zh_TW]=行程發生錯誤 Contexts=Error Sound=Oxygen-Sys-App-Error.ogg Action=Popup|Sound [Event/actionFailed] Name=Action failed Name[bs]=Radnja nije uspjela Name[ca]=L'acció ha fallat Name[ca@valencia]=L'acció ha fallat Name[da]=Handling mislykkedes Name[de]=Aktion fehlgeschlagen Name[el]=Αποτυχία ενέργειας Name[en_GB]=Action failed Name[es]=Acción fallida +Name[et]=Toiming nurjus Name[fi]=Toiminto epäonnistui Name[fr]=Échec de l'action Name[gl]=Unha acción fallou Name[hu]=A művelet nem sikerült Name[ia]=Action falleva Name[it]=Azione non riuscita Name[ko]=작업 실패 Name[nds]=Akschoon fehlslaan Name[nl]=Actie is mislukt Name[pl]=Działanie nie udało się Name[pt]=Acção mal-sucedida Name[pt_BR]=Ação com falhas Name[ru]=Ошибка выполнения действия Name[sk]=Akcia zlyhala Name[sv]=Åtgärd misslyckades Name[tr]=Başarısız işlem Name[uk]=Спроба виконання дії зазнала невдачі Name[x-test]=xxAction failedxx Name[zh_CN]=操作失败 Name[zh_TW]=動作失敗 Comment=A KAuth action failed Comment[bs]=KAuth radnja nije uspjela Comment[ca]=Una acció del KAuth ha fallat Comment[ca@valencia]=Una acció del KAuth ha fallat Comment[da]=En KAuth-handling mislykkedes Comment[de]=Eine KAuth-Aktion ist fehlgeschlagen Comment[el]=Αποτυχία ενέργειας KAuth Comment[en_GB]=A KAuth action failed Comment[es]=Una acción de KAuth ha fallado +Comment[et]=KAuth'i toiming nurjus Comment[fi]=KAuth-toiminto epäonnistui Comment[fr]=Une action KAuth a échoué Comment[gl]=Unha acción de KAuth fallou. Comment[hu]=Egy KAuth művelet nem sikerült Comment[it]=Azione KAuth non riuscita Comment[ko]=KAuth 작업 실패 Comment[nds]=En KAuth-Akschonen is fehlslaan Comment[nl]=Een KAuth-actie is mislukt Comment[pl]=Niepowodzenie działania KAuth Comment[pt]=Uma acção do KAuth foi mal-sucedida Comment[pt_BR]=Ocorreu uma falha na ação do KAuth Comment[ru]=Не удалось выполнить действие с помощью KAuth Comment[sk]=Akcia KAuth zlyhala Comment[sv]=En KAuth behörighetskontrollåtgärd misslyckades Comment[tr]=Bir KAuth işlemi başarısız oldu Comment[uk]=Спроба виконання дії KAuth зазнала невдачі Comment[x-test]=xxA KAuth action failedxx Comment[zh_CN]=KAuth 操作失败 Comment[zh_TW]=KAuth 動作失敗 Contexts=Error Sound=Oxygen-Sys-App-Error.ogg Action=Popup|Sound [Event/invalidURL] Name=Invalid URL Name[bs]=Pogrešan URL Name[ca]=URL no vàlid Name[ca@valencia]=URL no vàlid Name[cs]=Neplatné URL Name[da]=Ugyldig URL Name[de]=Ungültige Adresse (URL) Name[el]=Μη έγκυρο URL Name[en_GB]=Invalid URL Name[es]=URL no válido +Name[et]=Vigane URL Name[fi]=Virheellinen verkko-osoite Name[fr]=URL mal formée Name[gl]=O URL é incorrecto Name[hu]=Érvénytelen URL Name[ia]=URL invalide Name[it]=URL non valido Name[ko]=잘못된 URL Name[nds]=Leeg URL Name[nl]=Ongeldig URL-adres Name[pl]=Nieprawidłowy adres URL Name[pt]=URL inválido Name[pt_BR]=URL inválida Name[ru]=Недопустимый адрес URL Name[sk]=Neplatné URL Name[sv]=Ogiltig webbadress Name[tr]=Geçersiz Adres Name[uk]=Некоректна адреса Name[x-test]=xxInvalid URLxx Name[zh_CN]=无效的 URL Name[zh_TW]=不合法的網址 Comment=An invalid URL was passed Comment[bs]=Pogrešan URL je premošten Comment[ca]=S'han passat un URL no vàlid Comment[ca@valencia]=S'han passat un URL no vàlid Comment[da]=En ugyldig URL blev modtaget Comment[de]=Es wurde eine ungültige Adresse (URL) übergeben Comment[el]=Πέρασε μη έγκυρο URL Comment[en_GB]=An invalid URL was passed Comment[es]=Se ha pasado un URL no válido +Comment[et]=Edastati vigane URL Comment[fi]=Annettiin virheellinen verkko-osoite Comment[fr]=Une URL mal formée a été transmise Comment[gl]=Forneceuse un URL incorrecto. Comment[hu]=Egy érvénytelen URL lett átadva Comment[it]=URL inserito non valido Comment[ko]=잘못된 URL이 전달됨 Comment[nds]=En leeg URL wöör övergeven Comment[nl]=Een ongeldige URL is doorgegeven Comment[pl]=Podano nieprawidłowy adres URL Comment[pt]=Foi passado um URL inválido Comment[pt_BR]=Foi passada uma URL inválida Comment[ru]=Передан недопустимый адрес URL Comment[sk]=Bolo zadané neplatné URL Comment[sv]=En ogiltig webbadress skickades Comment[tr]=Geçersiz bir adres geçildi Comment[uk]=Було передано некоректну адресу Comment[x-test]=xxAn invalid URL was passedxx Comment[zh_CN]=传递的 URL 无效 Comment[zh_TW]=傳遞了不合法的網址 Contexts=Error Sound=Oxygen-Sys-App-Error.ogg Action=Popup|Sound [Event/networkCommunicationFailed] Name=Network communication failed Name[ca]=La xarxa de comunicació ha fallat Name[ca@valencia]=La xarxa de comunicació ha fallat +Name[cs]=Síťová komunikace selhala Name[de]=Netzwerkkommunikation fehlgeschlagen Name[en_GB]=Network communication failed Name[es]=Ha fallado la comunicación de red +Name[et]=Võrguühendus nurjus Name[fi]=Verkkoviestintä epäonnistui Name[fr]=Échec de la communication réseau Name[gl]=A comunicación de rede fallou Name[it]=Comunicazione di rete non riuscita Name[ko]=네트워크 통신 실패 Name[nl]=Netwerkcommunicatie is mislukt Name[pl]=Nie udało się nawiązać połączenia sieciowego Name[pt]=A comunicação com a rede foi mal-sucedida Name[pt_BR]=Falha na comunicação de rede Name[sk]=Sieťová komunikácia zlyhala Name[sv]=Nätverkskommunikation misslyckades +Name[tr]=Ağ bağlantısı başarısız oldu Name[uk]=Невдала спроба обміну даними мережею Name[x-test]=xxNetwork communication failedxx Name[zh_TW]=網路通訊失敗 Comment=A network related action could not be performed or failed Comment[ca]=No s'ha pogut portar a terme una acció relativa a la xarxa o ha fallat Comment[ca@valencia]=No s'ha pogut portar a terme una acció relativa a la xarxa o ha fallat +Comment[cs]=Požadovanou síťovou operaci nelze provést nebo selhala Comment[de]=Eine netzwerkbezogene Aktion kann nicht durchgeführt werden oder schlug fehl Comment[en_GB]=A network related action could not be performed or failed Comment[es]=Una acción relacionada con la red no se ha podido ejecutar o ha fallado +Comment[et]=Võrgutoimingut ei saanud sooritada või see nurjus Comment[fi]=Verkkotoimintoa ei voitu suorittaa tai se epäonnistui Comment[fr]=Impossible d'effectuer une action réseau Comment[gl]=Unha acción relacionada coa rede non puido realizarse ou fallou Comment[it]=Un'azione correlata alla rete non può essere eseguita o non ha avuto successo Comment[ko]=네트워크 관련 작업을 수행할 수 없거나 실패했습니다 Comment[nl]=Een aan het netwerk gerelateerde actie kon niet worden uitgevoerd of is mislukt Comment[pl]=Nie można było wykonać działania związanego z siecią lub nie udało się ono Comment[pt]=Não foi possível executar uma acção relacionada com a rede Comment[pt_BR]=Uma ação relacionada à rede não pode ser executada ou falhou Comment[sk]=Sieťovú operáciu nie je možné vykonať alebo zlyhala Comment[sv]=En nätverksrelaterad åtgärd kunde inte utföras eller misslyckades +Comment[tr]=Ağ ilişkili bir işlem gerçekleştirilemedi veya başarısız oldu Comment[uk]=Не вдалося виконати пов'язану із мережею дію або спроба виконання дії зазнала невдачі Comment[x-test]=xxA network related action could not be performed or failedxx Comment[zh_TW]=網路相關動作無法執行或是執行失敗。 Contexts=Error Sound=Oxygen-Sys-App-Error.ogg Action=Popup|Sound diff --git a/core/smb4kclient_p.cpp b/core/smb4kclient_p.cpp index 75f733b..bb04313 100644 --- a/core/smb4kclient_p.cpp +++ b/core/smb4kclient_p.cpp @@ -1,2064 +1,2067 @@ /*************************************************************************** Private classes for the SMB client ------------------- begin : So Oct 21 2018 copyright : (C) 2018-2019 by Alexander Reinholdt email : alexander.reinholdt@kdemail.net ***************************************************************************/ /*************************************************************************** * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, but * * WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., 51 Franklin Street, Suite 500, Boston,* * MA 02110-1335, USA * ***************************************************************************/ #ifdef HAVE_CONFIG_H #include #endif // application specific includes #include "smb4kclient_p.h" #include "smb4ksettings.h" #include "smb4kwalletmanager.h" #include "smb4kcustomoptions.h" #include "smb4kcustomoptionsmanager.h" #include "smb4knotification.h" // System includes #include // #include #include // #include // Qt includes #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // KDE includes #include #include #include #include #include #include #include #include #define SMBC_DEBUG 0 using namespace Smb4KGlobal; // // Authentication function for libsmbclient // static void get_auth_data_with_context_fn(SMBCCTX *context, const char *server, const char *share, char *workgroup, int maxLenWorkgroup, char *username, int maxLenUsername, char *password, int maxLenPassword) { if (context != nullptr) { Smb4KClientJob *job = static_cast(smbc_getOptionUserData(context)); if (job) { job->get_auth_data_fn(server, share, workgroup, maxLenWorkgroup, username, maxLenUsername, password, maxLenPassword); } } } // // Client job // Smb4KClientJob::Smb4KClientJob(QObject* parent) : KJob(parent), m_process(Smb4KGlobal::NoProcess) { } Smb4KClientJob::~Smb4KClientJob() { // // Clear the list of workgroups // while (!m_workgroups.isEmpty()) { m_workgroups.takeFirst().clear(); } // // Clear the list of hosts // while (!m_hosts.isEmpty()) { m_hosts.takeFirst().clear(); } // // Clear the list of shares // while (!m_shares.isEmpty()) { m_shares.takeFirst().clear(); } // // Clear the list of files and directories // while (!m_files.isEmpty()) { m_files.takeFirst().clear(); } } void Smb4KClientJob::start() { QTimer::singleShot(50, this, SLOT(slotStartJob())); } void Smb4KClientJob::setNetworkItem(NetworkItemPtr item) { m_item = item; } NetworkItemPtr Smb4KClientJob::networkItem() const { return m_item; } void Smb4KClientJob::setProcess(Smb4KGlobal::Process process) { m_process = process; } Smb4KGlobal::Process Smb4KClientJob::process() const { return m_process; } void Smb4KClientJob::setPrintFileItem(const KFileItem& item) { m_fileItem = item; } KFileItem Smb4KClientJob::printFileItem() const { return m_fileItem; } void Smb4KClientJob::setPrintCopies(int copies) { m_copies = copies; } int Smb4KClientJob::printCopies() const { return m_copies; } void Smb4KClientJob::get_auth_data_fn(const char* server, const char* /*share*/, char* workgroup, int /*maxLenWorkgroup*/, char* username, int maxLenUsername, char* password, int maxLenPassword) { // // Authentication // switch (m_item->type()) { case Network: { // // No authentication needed // break; } case Workgroup: { // // Only request authentication data, if the master browsers require // authentication data. // if (Smb4KSettings::masterBrowsersRequireAuth()) { if (QString::fromUtf8(server).toUpper() != QString::fromUtf8(workgroup).toUpper()) { // // This is the master browser. Create a host object for it. // HostPtr h = HostPtr(new Smb4KHost()); h->setWorkgroupName(QString::fromUtf8(workgroup)); h->setHostName(QString::fromUtf8(server)); // // Get the authentication data // Smb4KWalletManager::self()->readAuthInfo(h); // // Copy the authentication data // qstrncpy(username, h->login().toUtf8().data(), maxLenUsername); qstrncpy(password, h->password().toUtf8().data(), maxLenPassword); } } break; } case Host: { // // The host object // HostPtr h = m_item.staticCast(); // // Get the authentication data // Smb4KWalletManager::self()->readAuthInfo(h); // // Copy the authentication data // qstrncpy(username, h->login().toUtf8().data(), maxLenUsername); qstrncpy(password, h->password().toUtf8().data(), maxLenPassword); break; } case Share: { // // The share object // SharePtr s = m_item.staticCast(); // // Get the authentication data // Smb4KWalletManager::self()->readAuthInfo(s); // // Copy the authentication data // qstrncpy(username, s->login().toUtf8().data(), maxLenUsername); qstrncpy(password, s->password().toUtf8().data(), maxLenPassword); break; } case Directory: { // // The file object // FilePtr f = m_item.staticCast(); // // Create a share object // SharePtr s = SharePtr(new Smb4KShare()); s->setWorkgroupName(f->workgroupName()); s->setHostName(f->hostName()); s->setShareName(f->shareName()); s->setLogin(f->login()); s->setPassword(f->password()); // // Get the authentication data // Smb4KWalletManager::self()->readAuthInfo(s); // // Copy the authentication data // qstrncpy(username, s->login().toUtf8().data(), maxLenUsername); qstrncpy(password, s->password().toUtf8().data(), maxLenPassword); break; } default: { break; } } } QList Smb4KClientJob::workgroups() { return m_workgroups; } QList Smb4KClientJob::hosts() { return m_hosts; } QList Smb4KClientJob::shares() { return m_shares; } QList Smb4KClientJob::files() { return m_files; } QString Smb4KClientJob::workgroup() { QString workgroup; switch (m_item->type()) { case Network: { break; } case Workgroup: { workgroup = m_item->url().host().toUpper(); break; } case Host: { workgroup = m_item.staticCast()->workgroupName(); break; } case Share: { workgroup = m_item.staticCast()->workgroupName(); break; } case Directory: case File: { workgroup = m_item.staticCast()->workgroupName(); break; } default: { break; } } return workgroup; } void Smb4KClientJob::doLookups() { // // Read the given URL // int dirfd; struct smbc_dirent *dirp = nullptr; dirfd = smbc_opendir(m_item->url().toString().toUtf8().data()); if (dirfd < 0) { int errorCode = errno; switch (errorCode) { case ENOMEM: { setError(OutOfMemoryError); setErrorText(i18n("Out of memory")); break; } case EACCES: { setError(AccessDeniedError); setErrorText(i18n("Permission denied")); break; } case EINVAL: { setError(InvalidUrlError); setErrorText(i18n("An invalid URL was passed")); break; } case ENOENT: { - setError(NonExistentUrlError); - setErrorText(i18n("The URL does not exist")); + if (!m_item->type() != Network) + { + setError(NonExistentUrlError); + setErrorText(i18n("The URL does not exist")); + } break; } case ENOTDIR: { setError(NoDirectoryError); setErrorText(i18n("Name is not a directory")); break; } case EPERM: { setError(NotPermittedError); // Is the error message correct? setErrorText(i18n("Operation not permitted")); break; } case ENODEV: { setError(NotFoundError); setErrorText(i18n("The workgroup or server could not be found")); break; } default: { setError(UnknownError); setErrorText(i18n("Unknown error")); } } emitResult(); return; } else { // // Get the entries of the "directory" // while ((dirp = smbc_readdir(dirfd)) != nullptr) { switch (dirp->smbc_type) { case SMBC_WORKGROUP: { // // Create a workgroup pointer // WorkgroupPtr workgroup = WorkgroupPtr(new Smb4KWorkgroup()); // // Set the workgroup name // QString workgroupName = QString::fromUtf8(dirp->name); workgroup->setWorkgroupName(workgroupName); // // Set the master browser // QString masterBrowserName = QString::fromUtf8(dirp->comment); workgroup->setMasterBrowserName(masterBrowserName); // // Lookup IP address // QHostAddress address = lookupIpAddress(masterBrowserName); // // Process the IP address. // If the address is null, the server most likely went offline. So, skip the // workgroup and delete the pointer. // if (!address.isNull()) { workgroup->setMasterBrowserIpAddress(address); m_workgroups << workgroup; } else { workgroup.clear(); } break; } case SMBC_SERVER: { // // Create a host pointer // HostPtr host = HostPtr(new Smb4KHost()); // // Set the workgroup name // host->setWorkgroupName(m_item->url().host()); // // Set the host name // QString hostName = QString::fromUtf8(dirp->name); host->setHostName(hostName); // // Set the comment // QString comment = QString::fromUtf8(dirp->comment); host->setComment(comment); // // Lookup IP address // QHostAddress address = lookupIpAddress(hostName); // // Process the IP address. // If the address is null, the server most likely went offline. So, skip it // and delete the pointer. // if (!address.isNull()) { host->setIpAddress(address); m_hosts << host; } else { host.clear(); } break; } case SMBC_FILE_SHARE: { // // Create a share pointer // SharePtr share = SharePtr(new Smb4KShare()); // // Set the workgroup name // share->setWorkgroupName(m_item.staticCast()->workgroupName()); // // Set the host name // share->setHostName(m_item->url().host()); // // Set the share name // share->setShareName(QString::fromUtf8(dirp->name)); // // Set the comment // share->setComment(QString::fromUtf8(dirp->comment)); // // Set share type // share->setShareType(FileShare); // // Set the authentication data // share->setLogin(m_item->url().userName()); share->setPassword(m_item->url().password()); // // Lookup IP address // QHostAddress address = lookupIpAddress(m_item->url().host()); // // Process the IP address. // If the address is null, the server most likely went offline. So, skip it // and delete the pointer. // if (!address.isNull()) { share->setHostIpAddress(address); m_shares << share; } else { share.clear(); } break; } case SMBC_PRINTER_SHARE: { // // Create a share pointer // SharePtr share = SharePtr(new Smb4KShare()); // // Set the workgroup name // share->setWorkgroupName(m_item.staticCast()->workgroupName()); // // Set the host name // share->setHostName(m_item->url().host()); // // Set the share name // share->setShareName(QString::fromUtf8(dirp->name)); // // Set the comment // share->setComment(QString::fromUtf8(dirp->comment)); // // Set share type // share->setShareType(PrinterShare); // // Set the authentication data // share->setLogin(m_item->url().userName()); share->setPassword(m_item->url().password()); // // Lookup IP address // QHostAddress address = lookupIpAddress(m_item->url().host()); // // Process the IP address. // If the address is null, the server most likely went offline. So, skip it // and delete the pointer. // if (!address.isNull()) { share->setHostIpAddress(address); m_shares << share; } else { share.clear(); } break; } case SMBC_IPC_SHARE: { // // Create a share pointer // SharePtr share = SharePtr(new Smb4KShare()); // // Set the workgroup name // share->setWorkgroupName(m_item.staticCast()->workgroupName()); // // Set the host name // share->setHostName(m_item->url().host()); // // Set the share name // share->setShareName(QString::fromUtf8(dirp->name)); // // Set the comment // share->setComment(QString::fromUtf8(dirp->comment)); // // Set share type // share->setShareType(IpcShare); // // Set the authentication data // share->setLogin(m_item->url().userName()); share->setPassword(m_item->url().password()); // // Lookup IP address // QHostAddress address = lookupIpAddress(m_item->url().host()); // // Process the IP address. // If the address is null, the server most likely went offline. So, skip it // and delete the pointer. // if (!address.isNull()) { share->setHostIpAddress(address); m_shares << share; } else { share.clear(); } break; } case SMBC_DIR: { // // Do not process '.' and '..' directories // QString name = QString::fromUtf8(dirp->name); if (name != "." && name != "..") { // // Create the URL for the discovered item // QUrl u = m_item->url(); u.setPath(m_item->url().path()+QDir::separator()+QString::fromUtf8(dirp->name)); // // We do not stat directories. Directly create the directory object // FilePtr dir = FilePtr(new Smb4KFile(u, Directory)); // // Set the workgroup name // dir->setWorkgroupName(m_item.staticCast()->workgroupName()); // // Set the authentication data // dir->setLogin(m_item->url().userName()); dir->setPassword(m_item->url().password()); // // Lookup IP address // QHostAddress address = lookupIpAddress(m_item->url().host()); // // Process the IP address. // If the address is null, the server most likely went offline. So, skip it // and delete the pointer. // if (!address.isNull()) { dir->setHostIpAddress(address); m_files << dir; } else { dir.clear(); } } break; } case SMBC_FILE: { // // Create the URL for the discovered item // QUrl u = m_item->url(); u.setPath(m_item->url().path()+QDir::separator()+QString::fromUtf8(dirp->name)); // // Create the directory object // FilePtr dir = FilePtr(new Smb4KFile(u, File)); // // Set the workgroup name // dir->setWorkgroupName(m_item.staticCast()->workgroupName()); // // Stat the file // // FIXME // // Set the authentication data // dir->setLogin(m_item->url().userName()); dir->setPassword(m_item->url().password()); // // Lookup IP address // QHostAddress address = lookupIpAddress(m_item->url().host()); // // Process the IP address. // If the address is null, the server most likely went offline. So, skip it // and delete the pointer. // if (!address.isNull()) { dir->setHostIpAddress(address); m_files << dir; } else { dir.clear(); } break; } case SMBC_LINK: { qDebug() << "Processing links is not implemented."; qDebug() << dirp->name; qDebug() << dirp->comment; break; } default: { qDebug() << "Need to process network item " << dirp->name; break; } } } smbc_closedir(dirfd); } } void Smb4KClientJob::doPrinting() { // // The URL that is to be printed // QUrl fileUrl; // // Set the temporary directory // QTemporaryDir tempDir; // // Check if we can directly print the file // if (m_fileItem.mimetype() == "application/postscript" || m_fileItem.mimetype() == "application/pdf" || m_fileItem.mimetype().startsWith(QLatin1String("image"))) { // // Set the URL to the incoming file // fileUrl = m_fileItem.url(); } else if (m_fileItem.mimetype() == "application/x-shellscript" || m_fileItem.mimetype().startsWith(QLatin1String("text")) || m_fileItem.mimetype().startsWith(QLatin1String("message"))) { // // Set a printer object // QPrinter printer(QPrinter::HighResolution); printer.setCreator("Smb4K"); printer.setOutputFormat(QPrinter::PdfFormat); printer.setOutputFileName(QString("%1/smb4k_print.pdf").arg(tempDir.path())); // // Open the file that is to be printed and read it // QStringList contents; QFile file(m_fileItem.url().path()); if (file.open(QFile::ReadOnly|QFile::Text)) { QTextStream ts(&file); while (!ts.atEnd()) { contents << ts.readLine(); } } else { return; } // // Convert the file to PDF // QTextDocument doc; if (m_fileItem.mimetype().endsWith(QLatin1String("html"))) { doc.setHtml(contents.join(" ")); } else { doc.setPlainText(contents.join("\n")); } doc.print(&printer); // // Set the URL to the converted file // fileUrl.setUrl(printer.outputFileName()); fileUrl.setScheme("file"); } else { Smb4KNotification::mimetypeNotSupported(m_fileItem.mimetype()); return; } // // Get the open function for the printer // smbc_open_print_job_fn openPrinter = smbc_getFunctionOpenPrintJob(m_context); if (!openPrinter) { setError(OpenPrintJobError); setErrorText(i18n("The print job could not be set up (step 1)")); emitResult(); return; } // // Open the printer for printing // SMBCFILE *printer = openPrinter(m_context, m_item->url().toString().toUtf8().data()); if (!printer) { int errorCode = errno; if (errorCode == EACCES) { setError(AccessDeniedError); setErrorText(i18n("Permission denied")); } else { setError(OpenPrintJobError); setErrorText(i18n("The print job could not be set up (step 2)")); } emitResult(); return; } // // Open the file // QFile file(fileUrl.path()); if (!file.open(QFile::ReadOnly)) { setError(FileAccessError); setErrorText(i18n("The file %1 could not be read", fileUrl.path())); emitResult(); return; } // // Write X copies of the file to the printer // char buffer[4096]; qint64 bytes = 0; int copy = 0; while (copy < m_copies) { while ((bytes = file.read(buffer, sizeof(buffer))) > 0) { smbc_write_fn writeFile = smbc_getFunctionWrite(m_context); if (writeFile(m_context, printer, buffer, bytes) < 0) { setError(PrintFileError); setErrorText(i18n("The file %1 could not be printed to %2", fileUrl.path(), m_item.staticCast()->displayString())); smbc_close_fn closePrinter = smbc_getFunctionClose(m_context); closePrinter(m_context, printer); } } copy++; } // // Close the printer // smbc_close_fn closePrinter = smbc_getFunctionClose(m_context); closePrinter(m_context, printer); } QHostAddress Smb4KClientJob::lookupIpAddress(const QString& name) { // // The IP address object // QHostAddress ipAddress; // If the IP address is not to be determined for the local machine, we can use QHostInfo to // determine it. Otherwise we need to use QNetworkInterface for it. if (name.toUpper() == QHostInfo::localHostName().toUpper() || name.toUpper() == globalSambaOptions()["netbios name"].toUpper() || name.toUpper() == Smb4KSettings::netBIOSName().toUpper()) { // FIXME: Do we need to honor 'interfaces' here? QList addresses = QNetworkInterface::allAddresses(); // Get the IP address for the host. For the time being, prefer the // IPv4 address over the IPv6 address. for (const QHostAddress &addr : addresses) { // We only use global addresses. #if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) if (addr.isGlobal()) #else if (!addr.isLoopback() && !addr.isMulticast()) #endif { if (addr.protocol() == QAbstractSocket::IPv4Protocol) { ipAddress = addr; break; } else if (addr.protocol() == QAbstractSocket::IPv6Protocol) { // FIXME: Use the right address here. ipAddress = addr; } } } } else { // Get the IP address QHostInfo hostInfo = QHostInfo::fromName(name); if (hostInfo.error() == QHostInfo::NoError) { // Get the IP address for the host. For the time being, prefer the // IPv4 address over the IPv6 address. for (const QHostAddress &addr : hostInfo.addresses()) { // We only use global addresses. #if QT_VERSION >= QT_VERSION_CHECK(5, 11, 0) if (addr.isGlobal()) #else if (!addr.isLoopback() && !addr.isMulticast()) #endif { if (addr.protocol() == QAbstractSocket::IPv4Protocol) { ipAddress = addr; break; } else if (addr.protocol() == QAbstractSocket::IPv6Protocol) { // FIXME: Use the right address here. ipAddress = addr; } } } } } return ipAddress; } void Smb4KClientJob::slotStartJob() { // // Allocate new context // m_context = smbc_new_context(); if (!m_context) { int errorCode = errno; switch (errorCode) { case ENOMEM: { setError(OutOfMemoryError); setErrorText(i18n("Out of memory")); break; } default: { setError(UnknownError); setErrorText(i18n("Unknown error")); break; } } emitResult(); return; } // // Get the custom options // OptionsPtr options = Smb4KCustomOptionsManager::self()->findOptions(m_item); // // Set debug level // smbc_setDebug(m_context, SMBC_DEBUG); // // Set the NetBIOS name and the workgroup to make connections // switch (m_item->type()) { case Network: { // // We do not know about the servers and the domains/workgroups // present. So, do not set anything and use the default. // break; } case Workgroup: { // // Set the NetBIOS name of the master browser and the workgroup to be queried // WorkgroupPtr workgroup = m_item.staticCast(); smbc_setNetbiosName(m_context, workgroup->masterBrowserName().toUtf8().data()); smbc_setWorkgroup(m_context, workgroup->workgroupName().toUtf8().data()); break; } case Host: { // // Set both the NetBIOS name of the server and the workgroup to be queried // HostPtr host = m_item.staticCast(); smbc_setNetbiosName(m_context, host->hostName().toUtf8().data()); smbc_setWorkgroup(m_context, host->workgroupName().toUtf8().data()); break; } case Share: { // // Set both the NetBIOS name of the server and the workgroup to be queried // SharePtr share = m_item.staticCast(); smbc_setNetbiosName(m_context, share->hostName().toUtf8().data()); smbc_setWorkgroup(m_context, share->workgroupName().toUtf8().data()); break; } case Directory: { // // Set both the NetBIOS name of the server and the workgroup to be queried // FilePtr file = m_item.staticCast(); smbc_setNetbiosName(m_context, file->hostName().toUtf8().data()); smbc_setWorkgroup(m_context, file->workgroupName().toUtf8().data()); break; } default: { break; } } // // Set the user for making the connection // if (!m_item->url().userName().isEmpty()) { smbc_setUser(m_context, m_item->url().userName().toUtf8().data()); } // // Set the port // if (options) { if (options->useSmbPort()) { smbc_setPort(m_context, options->smbPort()); } else { smbc_setPort(m_context, 0 /* use the default */); } } else { if (Smb4KSettings::useRemoteSmbPort()) { smbc_setPort(m_context, Smb4KSettings::remoteSmbPort()); } else { smbc_setPort(m_context, 0 /* use the default */); } } // // Set the user data (this class) // smbc_setOptionUserData(m_context, this); // // Set number of master browsers to be used // if (Smb4KSettings::largeNetworkNeighborhood()) { smbc_setOptionBrowseMaxLmbCount(m_context, 3); } else { smbc_setOptionBrowseMaxLmbCount(m_context, 0 /* all master browsers */); } // // Set the encryption level // if (Smb4KSettings::useEncryptionLevel()) { switch (Smb4KSettings::encryptionLevel()) { case Smb4KSettings::EnumEncryptionLevel::None: { smbc_setOptionSmbEncryptionLevel(m_context, SMBC_ENCRYPTLEVEL_NONE); break; } case Smb4KSettings::EnumEncryptionLevel::Request: { smbc_setOptionSmbEncryptionLevel(m_context, SMBC_ENCRYPTLEVEL_REQUEST); break; } case Smb4KSettings::EnumEncryptionLevel::Require: { smbc_setOptionSmbEncryptionLevel(m_context, SMBC_ENCRYPTLEVEL_REQUIRE); break; } default: { break; } } } // // Set the usage of anonymous login // smbc_setOptionNoAutoAnonymousLogin(m_context, false); // // Set the usage of the winbind ccache // smbc_setOptionUseCCache(m_context, Smb4KSettings::useWinbindCCache()); // // Set usage of Kerberos // if (options) { smbc_setOptionUseKerberos(m_context, options->useKerberos()); } else { smbc_setOptionUseKerberos(m_context, Smb4KSettings::useKerberos()); } smbc_setOptionFallbackAfterKerberos(m_context, 1); // // Set the channel for debug output // smbc_setOptionDebugToStderr(m_context, 1); // // Set auth callback function // smbc_setFunctionAuthDataWithContext(m_context, get_auth_data_with_context_fn); // // Initialize context with the previously defined options // if (!smbc_init_context(m_context)) { int errorCode = errno; switch (errorCode) { case ENOMEM: { setError(OutOfMemoryError); setErrorText(i18n("Out of memory")); break; } case EBADF: { setError(NullContextError); setErrorText(i18n("NULL context given")); break; } case ENOENT: { setError(SmbConfError); setErrorText(i18n("The smb.conf file would not load")); break; } default: { setError(UnknownError); setErrorText(i18n("Unknown error")); } } smbc_free_context(m_context, 0); emitResult(); return; } // // Set the new context // (void)smbc_set_context(m_context); // // Process the given URL according to the passed process // switch (m_process) { case LookupDomains: case LookupDomainMembers: case LookupShares: case LookupFiles: { doLookups(); break; } case PrintFile: { doPrinting(); break; } default: { break; } } // // Free the context // smbc_free_context(m_context, 0); // // Emit the result // emitResult(); } Smb4KPreviewDialog::Smb4KPreviewDialog(const SharePtr& share, QWidget* parent) : QDialog(parent), m_share(share) { // // Dialog title // setWindowTitle(i18n("Preview of %1", share->displayString())); // // Attributes // setAttribute(Qt::WA_DeleteOnClose, true); // // Layout // QVBoxLayout *layout = new QVBoxLayout(this); setLayout(layout); // // The list widget // QListWidget *listWidget = new QListWidget(this); listWidget->setSelectionMode(QAbstractItemView::SingleSelection); connect(listWidget, SIGNAL(itemActivated(QListWidgetItem*)), SLOT(slotItemActivated(QListWidgetItem*))); layout->addWidget(listWidget, 0); // // Toolbar // Use QToolBar here with the settings suggested by the note provided in the 'Detailed Description' // section of KToolBar (https://api.kde.org/frameworks/kxmlgui/html/classKToolBar.html) // QToolBar *toolBar = new QToolBar(this); toolBar->setToolButtonStyle(Qt::ToolButtonFollowStyle); toolBar->setProperty("otherToolbar", true); // // Reload / cancel action // KDualAction *reloadAction = new KDualAction(toolBar); reloadAction->setObjectName("reload_action"); reloadAction->setInactiveText(i18n("Reload")); reloadAction->setInactiveIcon(KDE::icon("view-refresh")); reloadAction->setActiveText(i18n("Abort")); reloadAction->setActiveIcon(KDE::icon("process-stop")); reloadAction->setActive(false); reloadAction->setAutoToggle(false); connect(reloadAction, SIGNAL(toggled(bool)), this, SLOT(slotReloadActionTriggered())); toolBar->addAction(reloadAction); // // Up action // QAction *upAction =toolBar->addAction(KDE::icon("go-up"), i18n("Up"), this, SLOT(slotUpActionTriggered())); upAction->setObjectName("up_action"); upAction->setEnabled(false); toolBar->addSeparator(); // // URL combo box // KUrlComboBox *urlCombo = new KUrlComboBox(KUrlComboBox::Directories, toolBar); urlCombo->setEditable(false); toolBar->addWidget(urlCombo); connect(urlCombo, SIGNAL(urlActivated(QUrl)), this, SLOT(slotUrlActivated(QUrl))); layout->addWidget(toolBar, 0); // // Dialog button box // QDialogButtonBox *buttonBox = new QDialogButtonBox(this); buttonBox->setOrientation(Qt::Horizontal); QPushButton *closeButton = buttonBox->addButton(QDialogButtonBox::Close); connect(closeButton, SIGNAL(clicked()), this, SLOT(slotClosingDialog())); layout->addWidget(buttonBox, 0); // // Set the minimum width // setMinimumWidth(sizeHint().width() > 350 ? sizeHint().width() : 350); // // Set the dialog size // create(); KConfigGroup group(Smb4KSettings::self()->config(), "PreviewDialog"); QSize dialogSize; if (group.exists()) { KWindowConfig::restoreWindowSize(windowHandle(), group); dialogSize = windowHandle()->size(); } else { dialogSize = sizeHint(); } resize(dialogSize); // workaround for QTBUG-40584 // // Start the preview // m_currentItem = m_share; QTimer::singleShot(0, this, SLOT(slotInitializePreview())); } Smb4KPreviewDialog::~Smb4KPreviewDialog() { // // Clear the share // m_share.clear(); // // Clear the current item // m_currentItem.clear(); // // Clear the listing // while (!m_listing.isEmpty()) { m_listing.takeFirst().clear(); } } SharePtr Smb4KPreviewDialog::share() const { return m_share; } void Smb4KPreviewDialog::slotClosingDialog() { // // Save the dialog size // KConfigGroup group(Smb4KSettings::self()->config(), "PreviewDialog"); KWindowConfig::saveWindowSize(windowHandle(), group); // // Emit the aboutToClose() signal // emit aboutToClose(this); // // Close the dialog // accept(); } void Smb4KPreviewDialog::slotReloadActionTriggered() { KDualAction *reloadAction = findChild(); if (reloadAction->isActive()) { emit requestAbort(); } else { emit requestPreview(m_currentItem); } } void Smb4KPreviewDialog::slotUpActionTriggered() { // // Get the new URL // QUrl u = KIO::upUrl(m_currentItem->url()); // // Create a new network item object, if necessary and set the new current // item. Also, disable the "Up" action, if necessary. // if (m_share->url().matches(u, QUrl::StripTrailingSlash)) { findChild("up_action")->setEnabled(false); m_currentItem = m_share; } else if (m_share->url().path().length() < u.path().length()) { FilePtr file = FilePtr(new Smb4KFile(u, Directory)); file->setWorkgroupName(m_share->workgroupName()); m_currentItem = file; } else { return; } // // Emit the requestPreview() signal // emit requestPreview(m_currentItem); } void Smb4KPreviewDialog::slotUrlActivated(const QUrl &url) { // // Get the full authentication information. This is needed, since the combo // box only returns sanitized URLs, i.e. without password, etc. // QUrl u = url; u.setUserName(m_share->login()); u.setPassword(m_share->password()); // // Create a new network item object, if necessary and set the new current // item. // if (m_share->url().matches(u, QUrl::StripTrailingSlash)) { m_currentItem = m_share; } else { FilePtr file = FilePtr(new Smb4KFile(u, Directory)); file->setWorkgroupName(m_share->workgroupName()); m_currentItem = file; } // // Emit the requestPreview() signal // emit requestPreview(m_currentItem); } void Smb4KPreviewDialog::slotItemActivated(QListWidgetItem *item) { // // Only process the item if it represents a directory // if (item && item->type() == Directory) { // // Find the file item, make it the current one and emit the requestPreview() // signal. // for (const FilePtr &f : m_listing) { if (item->data(Qt::UserRole).toUrl().matches(f->url(), QUrl::None)) { m_currentItem = f; emit requestPreview(m_currentItem); break; } } } } void Smb4KPreviewDialog::slotInitializePreview() { emit requestPreview(m_currentItem); } void Smb4KPreviewDialog::slotPreviewResults(const QList &list) { // // Only process data the belongs to this dialog // if (m_share->workgroupName() == list.first()->workgroupName() && m_share->hostName() == list.first()->hostName() && list.first()->url().path().startsWith(m_share->url().path())) { // // Clear the internal listing // while (!m_listing.isEmpty()) { m_listing.takeFirst().clear(); } // // Copy the list into the private variable // m_listing = list; // // Get the list widget // QListWidget *listWidget = findChild(); // // Clear the list widget // listWidget->clear(); // // Insert the new listing // if (listWidget) { for (const FilePtr &f : list) { QListWidgetItem *item = new QListWidgetItem(f->icon(), f->name(), listWidget, f->isDirectory() ? Directory : File); item->setData(Qt::UserRole, f->url()); } } // // Sort the list widget // listWidget->sortItems(); // // Add the URL to the combo box and show it. Omit duplicates. // KUrlComboBox *urlCombo = findChild(); QStringList urls = urlCombo->urls(); urls << m_currentItem->url().toString(); urlCombo->setUrls(urls); urlCombo->setUrl(m_currentItem->url()); // // Enable / disable the "Up" action // findChild("up_action")->setEnabled(!m_share->url().matches(m_currentItem->url(), QUrl::StripTrailingSlash)); } } void Smb4KPreviewDialog::slotAboutToStart(const NetworkItemPtr &item, int type) { if (type == LookupFiles) { switch (item->type()) { case Share: { SharePtr s = item.staticCast(); if (m_share->workgroupName() == s->workgroupName() && m_share->hostName() == s->hostName() && s->url().path().startsWith(m_share->url().path())) { KDualAction *reloadAction = findChild(); reloadAction->setActive(true); } break; } case Directory: { FilePtr f = item.staticCast(); if (m_share->workgroupName() == f->workgroupName() && m_share->hostName() == f->hostName() && f->url().path().startsWith(m_share->url().path())) { KDualAction *reloadAction = findChild(); reloadAction->setActive(true); } break; } default: { break; } } } } void Smb4KPreviewDialog::slotFinished(const NetworkItemPtr &item, int type) { if (type == LookupFiles) { switch (item->type()) { case Share: { SharePtr s = item.staticCast(); if (m_share->workgroupName() == s->workgroupName() && m_share->hostName() == s->hostName() && s->url().path().startsWith(m_share->url().path())) { KDualAction *reloadAction = findChild(); reloadAction->setActive(false); } break; } case Directory: { FilePtr f = item.staticCast(); if (m_share->workgroupName() == f->workgroupName() && m_share->hostName() == f->hostName() && f->url().path().startsWith(m_share->url().path())) { KDualAction *reloadAction = findChild(); reloadAction->setActive(false); } break; } default: { break; } } } } Smb4KPrintDialog::Smb4KPrintDialog(const SharePtr& share, QWidget* parent) : QDialog(parent), m_share(share) { // // Dialog title // setWindowTitle(i18n("Print File")); // // Attributes // setAttribute(Qt::WA_DeleteOnClose, true); // // Layout // QVBoxLayout *layout = new QVBoxLayout(this); setLayout(layout); // // Information group box // QGroupBox *informationBox = new QGroupBox(i18n("Information"), this); QGridLayout *informationBoxLayout = new QGridLayout(informationBox); // Printer name QLabel *printerNameLabel = new QLabel(i18n("Printer:"), informationBox); QLabel *printerName = new QLabel(share->displayString(), informationBox); informationBoxLayout->addWidget(printerNameLabel, 0, 0, 0); informationBoxLayout->addWidget(printerName, 0, 1, 0); // IP address QLabel *ipAddressLabel = new QLabel(i18n("IP Address:"), informationBox); QLabel *ipAddress = new QLabel(share->hostIpAddress(), informationBox); informationBoxLayout->addWidget(ipAddressLabel, 1, 0, 0); informationBoxLayout->addWidget(ipAddress, 1, 1, 0); // Workgroup QLabel *workgroupNameLabel = new QLabel(i18n("Domain:"), informationBox); QLabel *workgroupName = new QLabel(share->workgroupName(), informationBox); informationBoxLayout->addWidget(workgroupNameLabel, 2, 0, 0); informationBoxLayout->addWidget(workgroupName, 2, 1, 0); layout->addWidget(informationBox); // // File and settings group box // QGroupBox *fileBox = new QGroupBox(i18n("File and Settings"), this); QGridLayout *fileBoxLayout = new QGridLayout(fileBox); // File QLabel *fileLabel = new QLabel(i18n("File:"), fileBox); KUrlRequester *file = new KUrlRequester(fileBox); file->setMode(KFile::File|KFile::LocalOnly|KFile::ExistingOnly); file->setUrl(QUrl::fromLocalFile(QDir::homePath())); file->setWhatsThis(i18n("This is the file you want to print on the remote printer. " "Currently only a few mimetypes are supported such as PDF, Postscript, plain text, and " "images. If the file's mimetype is not supported, you need to convert it.")); connect(file, SIGNAL(textChanged(QString)), this, SLOT(slotUrlChanged())); fileBoxLayout->addWidget(fileLabel, 0, 0, 0); fileBoxLayout->addWidget(file, 0, 1, 0); // Copies QLabel *copiesLabel = new QLabel(i18n("Copies:"), fileBox); QSpinBox *copies = new QSpinBox(fileBox); copies->setValue(1); copies->setMinimum(1); copies->setWhatsThis(i18n("This is the number of copies you want to print.")); fileBoxLayout->addWidget(copiesLabel, 1, 0, 0); fileBoxLayout->addWidget(copies, 1, 1, 0); layout->addWidget(fileBox); // // Buttons // QDialogButtonBox *buttonBox = new QDialogButtonBox(this); QPushButton *printButton = buttonBox->addButton(i18n("Print"), QDialogButtonBox::ActionRole); printButton->setObjectName("print_button"); printButton->setShortcut(Qt::CTRL|Qt::Key_P); connect(printButton, SIGNAL(clicked(bool)), this, SLOT(slotPrintButtonClicked())); QPushButton *cancelButton = buttonBox->addButton(QDialogButtonBox::Cancel); cancelButton->setObjectName("cancel_button"); cancelButton->setShortcut(Qt::Key_Escape); cancelButton->setDefault(true); connect(cancelButton, SIGNAL(clicked(bool)), this, SLOT(slotCancelButtonClicked())); layout->addWidget(buttonBox); // // Set the minimum width // setMinimumWidth(sizeHint().width() > 350 ? sizeHint().width() : 350); // // Set the dialog size // create(); KConfigGroup group(Smb4KSettings::self()->config(), "PrintDialog"); QSize dialogSize; if (group.exists()) { KWindowConfig::restoreWindowSize(windowHandle(), group); dialogSize = windowHandle()->size(); } else { dialogSize = sizeHint(); } resize(dialogSize); // workaround for QTBUG-40584 // // Set the buttons // slotUrlChanged(); } Smb4KPrintDialog::~Smb4KPrintDialog() { } SharePtr Smb4KPrintDialog::share() const { return m_share; } KFileItem Smb4KPrintDialog::fileItem() const { return m_fileItem; } void Smb4KPrintDialog::slotUrlChanged() { // // Take the focus from the URL requester and give it to the dialog's // button box // QDialogButtonBox *buttonBox = findChild(); buttonBox->setFocus(); // // Get the URL from the URL requester // KUrlRequester *file = findChild(); KFileItem fileItem = KFileItem(file->url()); // // Apply the settings to the buttons of the dialog's button box // QPushButton *printButton = findChild("print_button"); printButton->setEnabled(fileItem.url().isValid() && fileItem.isFile()); printButton->setDefault(fileItem.url().isValid() && fileItem.isFile()); QPushButton *cancelButton = findChild("cancel_button"); cancelButton->setDefault(!fileItem.url().isValid() || !fileItem.isFile()); } void Smb4KPrintDialog::slotPrintButtonClicked() { // // Get the file item that is to be printed // KUrlRequester *file = findChild(); m_fileItem = KFileItem(file->url()); if (m_fileItem.url().isValid()) { // // Check if the mime type is supported or if the file can be // converted into a supported mimetype // if (m_fileItem.mimetype() != "application/postscript" && m_fileItem.mimetype() != "application/pdf" && m_fileItem.mimetype() != "application/x-shellscript" && !m_fileItem.mimetype().startsWith(QLatin1String("text")) && !m_fileItem.mimetype().startsWith(QLatin1String("message")) && !m_fileItem.mimetype().startsWith(QLatin1String("image"))) { Smb4KNotification::mimetypeNotSupported(m_fileItem.mimetype()); return; } // // Save the window size // KConfigGroup group(Smb4KSettings::self()->config(), "PrintDialog"); KWindowConfig::saveWindowSize(windowHandle(), group); // // Emit the printFile() signal // QSpinBox *copies = findChild(); emit printFile(m_share, m_fileItem, copies->value()); // // Emit the aboutToClose() signal // emit aboutToClose(this); // // Close the print dialog // accept(); } } void Smb4KPrintDialog::slotCancelButtonClicked() { // // Abort the printing // Smb4KClient::self()->abort(); // // Emit the aboutToClose() signal // emit aboutToClose(this); // // Reject the dialog // reject(); } diff --git a/helpers/smb4kmounthelper.cpp b/helpers/smb4kmounthelper.cpp index 2438a3f..4753844 100644 --- a/helpers/smb4kmounthelper.cpp +++ b/helpers/smb4kmounthelper.cpp @@ -1,267 +1,267 @@ /*************************************************************************** The helper that mounts and unmounts shares. ------------------- begin : Sa Okt 16 2010 - copyright : (C) 2010-2017 by Alexander Reinholdt + copyright : (C) 2010-2020 by Alexander Reinholdt email : alexander.reinholdt@kdemail.net ***************************************************************************/ /*************************************************************************** * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, but * * WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., 51 Franklin Street, Suite 500, Boston,* * MA 02110-1335, USA * ***************************************************************************/ #ifdef HAVE_CONFIG_H #include #endif // application specific includes #include "smb4kmounthelper.h" #include "../core/smb4kglobal.h" // Qt includes #include #include #include #include // KDE includes #include #include #include #include using namespace Smb4KGlobal; KAUTH_HELPER_MAIN("org.kde.smb4k.mounthelper", Smb4KMountHelper); KAuth::ActionReply Smb4KMountHelper::mount(const QVariantMap& args) { // // The action reply // ActionReply reply; // // Get the mount executable // const QString mount = findMountExecutable(); // // Check the mount executable // if (mount != args["mh_command"].toString()) { // Something weird is going on, bail out. reply.setType(ActionReply::HelperErrorType); return reply; } // // Mount command // QStringList command; #if defined(Q_OS_LINUX) command << mount; command << args["mh_url"].toUrl().toString(QUrl::RemoveScheme|QUrl::RemoveUserInfo|QUrl::RemovePort); command << args["mh_mountpoint"].toString(); command << args["mh_options"].toStringList(); #elif defined(Q_OS_FREEBSD) || defined(Q_OS_NETBSD) command << mount; command << args["mh_options"].toStringList(); command << args["mh_url"].toUrl().toString(QUrl::RemoveScheme|QUrl::RemoveUserInfo|QUrl::RemovePort); command << args["mh_mountpoint"].toString(); #endif // // The process // KProcess proc(this); proc.setOutputChannelMode(KProcess::SeparateChannels); proc.setProcessEnvironment(QProcessEnvironment::systemEnvironment()); #if defined(Q_OS_LINUX) - proc.setEnv("PASSWD", args["mh_url"].toUrl().password(), true); + proc.setEnv("PASSWD", args["mh_url"].toUrl().password().toUtf8().data(), true); #endif // We need this to avoid a translated password prompt. proc.setEnv("LANG", "C"); // If the location of a Kerberos ticket is passed, it needs to // be passed to the process environment here. if (args.contains("mh_krb5ticket")) { proc.setEnv("KRB5CCNAME", args["mh_krb5ticket"].toString()); } proc.setProgram(command); proc.start(); if (proc.waitForStarted(-1)) { bool userKill = false; while (!proc.waitForFinished(10)) { // Check if there is a password prompt. If there is one, pass // the password to it. QByteArray out = proc.readAllStandardError(); if (out.startsWith("Password")) { - proc.write(args["mh_url"].toUrl().password().toUtf8()); + proc.write(args["mh_url"].toUrl().password().toUtf8().data()); proc.write("\r"); } // We want to be able to terminate the process from outside. // Thus, we implement a loop that checks periodically, if we // need to kill the process. if (HelperSupport::isStopped()) { proc.kill(); userKill = true; } } if (proc.exitStatus() == KProcess::CrashExit) { if (!userKill) { reply.setType(ActionReply::HelperErrorType); reply.setErrorDescription(i18n("The mount process crashed.")); } } else { // Check if there is output on stderr. QString stdErr = QString::fromUtf8(proc.readAllStandardError()); reply.addData("mh_error_message", stdErr.trimmed()); } } else { reply.setType(ActionReply::HelperErrorType); reply.setErrorDescription(i18n("The mount process could not be started.")); } return reply; } KAuth::ActionReply Smb4KMountHelper::unmount(const QVariantMap& args) { ActionReply reply; // // Get the umount executable // const QString umount = findUmountExecutable(); // // Check the mount executable // if (umount != args["mh_command"].toString()) { // Something weird is going on, bail out. reply.setType(ActionReply::HelperErrorType); return reply; } // // Check if the mountpoint is valid and the filesystem is correct. // bool mountPointOk = false; KMountPoint::List mountPoints = KMountPoint::currentMountPoints(KMountPoint::BasicInfoNeeded|KMountPoint::NeedMountOptions); for (const QExplicitlySharedDataPointer &mountPoint : mountPoints) { #if defined(Q_OS_LINUX) if (QString::compare(args["mh_mountpoint"].toString(), mountPoint->mountPoint()) == 0 && QString::compare(mountPoint->mountType(), "cifs", Qt::CaseInsensitive) == 0) #else if (QString::compare(args["mh_mountpoint"].toString(), mountPoint->mountPoint()) == 0 && QString::compare(mountPoint->mountType(), "smbfs", Qt::CaseInsensitive) == 0) #endif { mountPointOk = true; break; } } // // Stop here if the mountpoint is not valid // if (!mountPointOk) { reply.setType(ActionReply::HelperErrorType); reply.setErrorDescription(i18n("The mountpoint %1 is invalid.", args["mh_mountpoint"].toString())); } // // The command // QStringList command; command << umount; command << args["mh_options"].toStringList(); command << args["mh_mountpoint"].toString(); // // The process // KProcess proc(this); proc.setOutputChannelMode(KProcess::SeparateChannels); proc.setProcessEnvironment(QProcessEnvironment::systemEnvironment()); proc.setProgram(command); proc.start(); if (proc.waitForStarted(-1)) { // We want to be able to terminate the process from outside. // Thus, we implement a loop that checks periodically, if we // need to kill the process. bool userKill = false; while (!proc.waitForFinished(10)) { if (HelperSupport::isStopped()) { proc.kill(); userKill = true; break; } } if (proc.exitStatus() == KProcess::CrashExit) { if (!userKill) { reply.setType(ActionReply::HelperErrorType); reply.setErrorDescription(i18n("The unmount process crashed.")); } } else { // Check if there is output on stderr. QString stdErr = QString::fromUtf8(proc.readAllStandardError()); reply.addData("mh_error_message", stdErr.trimmed()); } } else { reply.setType(ActionReply::HelperErrorType); reply.setErrorDescription(i18n("The unmount process could not be started.")); } return reply; } diff --git a/helpers/smb4kmounthelper.h b/helpers/smb4kmounthelper.h index cdd5ea0..862c544 100644 --- a/helpers/smb4kmounthelper.h +++ b/helpers/smb4kmounthelper.h @@ -1,53 +1,53 @@ /*************************************************************************** The helper that mounts and unmounts shares. ------------------- begin : Sa Okt 16 2010 - copyright : (C) 2010-2017 by Alexander Reinholdt + copyright : (C) 2010-2020 by Alexander Reinholdt email : alexander.reinholdt@kdemail.net ***************************************************************************/ /*************************************************************************** * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, but * * WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., 51 Franklin Street, Suite 500, Boston,* * MA 02110-1335, USA * ***************************************************************************/ #ifndef SMB4KMOUNTHELPER_H #define SMB4KMOUNTHELPER_H // Qt includes #include // KDE includes #include using namespace KAuth; class Smb4KMountHelper : public QObject { Q_OBJECT public slots: /** * Mounts a CIFS/SMBFS share. */ ActionReply mount(const QVariantMap &args); /** * Unmounts a CIFS/SMBFS share. */ ActionReply unmount(const QVariantMap &args); }; #endif diff --git a/smb4k/org.kde.smb4k.appdata.xml b/smb4k/org.kde.smb4k.appdata.xml index c9dcc5d..e2b6001 100644 --- a/smb4k/org.kde.smb4k.appdata.xml +++ b/smb4k/org.kde.smb4k.appdata.xml @@ -1,767 +1,769 @@ org.kde.smb4k.desktop CC0-1.0 GPL-2.0+ and GFDL-1.2 Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K Smb4K xxSmb4Kxx Smb4K Smb4K Advanced Network Neighborhood Browser and Samba Share Mounting Utility Napredni pretraživač mrežnih susjeda i Samba dijeljeni ugrađeni uslužni program Explorador avançat del veïnatge de xarxa i utilitat per a muntar les comparticions de Samba Explorador avançat del veïnatge de xarxa i utilitat per a muntar les comparticions de Samba Pokročilý prohlížeč síťového okolí a nástroj na připojování úložišť samba Den avancerede browser til netværksnabolag og værktøj til montering af Samba-ressourcer Erweiterter Browser für die Netzwerkumgebung und Dienstprogramm zum Einhängen von Samba-Freigaben Προηγμένος περιηγητής τοπικού δικτύου και εργαλείο προσάρτησης κοινών πόρων Samba Advanced Network Neighborhood Browser and Samba Share Mounting Utility Navegador avanzado del entorno de red y utilidad para montar recursos compartidos de Samba Edistynyt verkkoympäristöselain ja Samba-jakoliitostyökalu Navigateur avancé de voisinage réseau et utilitaire pour le montage des partages Samba Navegador avanzado da veciñanza de rede e ferramenta para montar comparticións de Samba Penelusur Jaringan Tetangga Terkemuka dan Utilitas Pengaitan Berbagi Samba Navigatore di risorse di rete avanzato e programma per montare le condivisioni Samba 고급 네트워크 환경 탐색 및 Samba 공유 마운트 유틸리티 Verwiedert Nettwarkümgeven-Kieker un Inhangwrktüüch för Samba-Freegaven Geavanceerde browser voor de netwerkomgeving en hulpmiddel voor aankoppelen van Samba shares Zaawansowana przeglądarka otoczenia sieciowego i narzędzie do podpinania udziałów Samby Navegador Avançado da Vizinhança na Rede e Utilitário de Montagem de Partilhas de Samba Navegador avançado da vizinhança da rede e utilitário de montagem de compartilhamentos Samba Диспетчер сетевого окружения и инструмент для подключения общих ресурсов с использованием протокола Samba Pokročilý prehliadač sieťového okolia a nástroj na pripojenie zdieľaní Samba Avancerad bläddrare för nätverksgrannskapet och verktyg för montering av delade Samba-resurser Переглядач мережевого оточення з додатковими можливостями та засіб для монтування спільних ресурсів Samba xxAdvanced Network Neighborhood Browser and Samba Share Mounting Utilityxx 高级网络邻居浏览器和 Samba 共享挂载工具 進階網路芳鄰瀏覽器與 Samba 分享掛載工具

Smb4K is an advanced network neighborhood browser and Samba share mounting utility. It is based on the KDE Frameworks 5 and Samba's client library (libsmbclient). It scans your network neighborhood for all available workgroups, servers and shares and can mount all desired shares to your local file system.

El Smb4K és un explorador avançat del veïnatge de xarxa i una utilitat per a muntar les comparticions de Samba. està basat ens els Frameworks 5 del KDE i la biblioteca client del Samba (libsmbclient). Explora el vostre veïnatge de xarxa per a tots els grups de treball disponibles, servidors i comparticions, i pot muntar totes les comparticions desitjades al vostre sistema de fitxers local.

El Smb4K és un explorador avançat del veïnatge de xarxa i una utilitat per a muntar les comparticions de Samba. està basat ens els Frameworks 5 del KDE i la biblioteca client del Samba (libsmbclient). Explora el vostre veïnatge de xarxa per a tots els grups de treball disponibles, servidors i comparticions, i pot muntar totes les comparticions desitjades al vostre sistema de fitxers local.

Smb4K ist ein erweiterter Browser für die Netzwerkumgebung und Dienstprogramm für das Einhängen von Samba-Freigaben. Es basiert auf den KDE Frameworks 5 und der Samba-Bibliothek libsmbclient.Es durchsucht Ihre Netzwerkumgebung nach allen verfügbaren Arbeitsgruppen, Server und Freigaben und kann alle gewünschten Freigaben in Ihr lokales Dateisystem einhängen.

Smb4K is an advanced network neighbourhood browser and Samba share mounting utility. It is based on the KDE Frameworks 5 and Samba's client library (libsmbclient). It scans your network neighbourhood for all available workgroups, servers and shares and can mount all desired shares to your local file system.

Smb4K es un navegador avanzado del entorno de red y una utilidad de montaje de recursos compartidos Samba. Se basa en la infraestructura de KDE 5 y la biblioteca de clientes de Samba (libsmbclient). Escanea su entorno de red en busca de los grupos de trabajo, servidores y recursos compartidos disponibles y puede montar todos los recursos compartidos deseados en su sistema de archivos local.

Smb4K on kehittynyt verkkoympäristöselain ja Samba-jakoliitostyökalu. Se pohjautuu KDE Frameworks 5:een ja Samban asiakaskirjastoon (libsmbclient). Se etsii verkkoympäristöstä työryhmiä, palvelimia ja jakoja ja osaa liittää halutut jaot paikalliseen tiedostojärjestelmään.

Smb4K est un navigateur de voisinage réseau avancé et un utilitaire de montage Samba. Il repose sur KDE Frameworks 5 et la librairie client de Samba (libsmbclient). Il balaye votre voisinage réseau à la recherche des groupes de travail, serveurs et partages disponibles et peut afficher tous les partages désirés sur votre système de fichiers local.

Smb4K é un navegador avanzado da veciñanza de rede e unha ferramenta para montar comparticións de Samba. Está baseada na versión 5 das infraestruturas de KDE e a biblioteca de cliente de Samba (libsmbclient). Examina a veciñanza de rede en busca de grupos de traballo, servidores e comparticións dispoñíbeis, e pode montar todas as comparticións que queira no seu sistema de ficheiros local.

Smb4K adalah sebuah penelusur pengaitan berbagi Samba. Ini berbasiskan pada KDE Frameworks 5 dan pustaka klien Samba (libsmbclient). Ini memindaikan jaringan tetanggamu untuk semua workgroup-workgroup, server-server, dan bebagi-bebagi yang tersedia dan bisa mengaitkan semua berbagi yang diinginkan ke sistem file lokalmu.

Smb4K è un navigatore di risorse di rete avanzato e un programma per montare le condivisioni Samba. È basato su KDE Frameworks 5 e sulla libreria client di Samba (libsmbclient). Analizza le risorse di rete per trovare tutti i gruppi di lavoro disponibili, i server e le condivisioni, e può montare tutte le condivisioni che desideri nel tuo file system locale.

Smb4K는 고급 네트워크 환경 탐색기 및 Samba 공유 마운트 도구입니다. KDE 프레임워크 5와 Samba 클라이언트 라이브러리(libsmbclient)를 사용합니다. 로컬 네트워크에 있는 작업 그룹, 서버, 공유 자원을 탐색할 수 있으며 로컬 파일 시스템에 공유를 마운트할 수 있습니다.

Smb4K is een geavanceerde browser voor de netwerkomgeving en hulpmiddel voor aankoppelen van Samba shares. Het is gebaseerd op de KDE Frameworks 5 en de clientbiblotheek van Samba (libsmbclient). Het scant uw netwerkomgeving voor alle beschikbare werkgroepen, servers en shares en kan alle gewenste shares aankoppelen aan uw lokale bestandssysteem.

Smb4K jest zaawansowaną przeglądarką otoczenia sieciowego i narzędziem do podpinania udziałów Samby. Jest oparta na Szkieletach KDE 5 i bibliotece klienckiej Samby (libsmbclient). Przegląda twoje otoczenie sieciowe w poszukiwaniu wszystkich dostępnych grup roboczych, serwerów i udziałów, żeby umożliwić podpięcie wszystkich tych udziałów w lokalnym systemie plików.

O Smb4K é um navegador avançado da vizinhança da rede e um utilitário de montagem de partilhas do Samba. Baseia-se nas Plataformas do KDE 5 e na biblioteca-cliente do Samba (libsmbclient). Ele sonda a sua vizinhança da rede à procura de todos os grupos de trabalho, servidores e partilhas disponíveis, podendo montar todas as partilhas desejadas no seu sistema de ficheiros local.

Smb4K é um navegador avançado da vizinhança da rede e um utilitário de montagem de compartilhamentos do Samba. Ele tem como base o KDE Frameworks 5 e a biblioteca-cliente do Samba (libsmbclient). Verifica a vizinhança da rede à procura de todos os grupos de trabalho, servidores e compartilhamentos disponíveis, podendo montar todos os compartilhamentos desejados no seu sistema de arquivos local.

Smb4K je pokročilý prehliadač siete a nástroj na pripájanie Samba zdieľaní pre softvérovú kompiláciu KDE. Prehľadá vašu sieť, nájde všetky dostupné pracovné skupiny, servery a zdieľania a môže pripojiť všetky želané zdieľania do vášho miestneho súborového systému.

Smb4K är en avancerad bläddrare för nätverksgrannskapet och verktyg för montering av delade Samba-kataloger. Den är baserad på KDE:s ramverk 5 och Sambas klientbibliotek (libsmbclient). Den söker igenom ditt nätverksgrannskap för att hitta alla tillgängliga arbetsgrupper, servrar och delade kataloger, och kan montera alla delade kataloger som önskas i det lokala filsystemet.

Smb4K програма з розширеними можливостями для перегляду мережевого середовища та монтування спільних ресурсів Samba. Програму засновано на KDE Frameworks 5 та клієнтській бібліотеці Samba (libsmbclient). Програма сканує мережеве оточення і шукає доступні робочі групи, сервери і спільні ресурси. Вона може монтувати усі бажані спільні ресурси у вашій локальній файловій системі.

xxSmb4K is an advanced network neighborhood browser and Samba share mounting utility. It is based on the KDE Frameworks 5 and Samba's client library (libsmbclient). It scans your network neighborhood for all available workgroups, servers and shares and can mount all desired shares to your local file system.xx

Smb4K 是一个高级的网络邻居浏览器和 Samba 共享挂载工具。它基于 KDE 框架 5 和 Samba 客户端库 (libsmbclient)。它会扫描您的网络邻居,发现所有可用的工作组,服务器和共享,并挂载所有想要共享的内容到您的文件系统。

Smb4K is based on Samba's client library. Its purpose is to provide a program that is easy to use and has as many features as possible.

El Smb4K està basat en la biblioteca client del Samba. El seu propòsit és proporcionar un programa de fàcil ús i contenir tantes característiques com sigui possible.

El Smb4K està basat en la biblioteca client del Samba. El seu propòsit és proporcionar un programa de fàcil ús i contindre tantes característiques com siga possible.

Smb4K benutzt die Samba-Bibliothek, um ein Programm mit leichter Handhabung und möglichst vielen Funktionen zur Verfügung zu stellen.

Smb4K is based on Samba's client library. Its purpose is to provide a program that is easy to use and has as many features as possible.

Smb4K se basa en la biblioteca de clientes de Samba. Su propósito es proporcionar un programa que sea fácil de usar y tenga tantas prestaciones como sea posible.

Smb4K perustuu Samban asiakaskirjastoon. Se pyrkii tarjoamaan ohjelman, joka on sekä helppokäyttöinen että mahdollisimman monipuolinen.

Smb4K utilise la librairie client de Samba. Son objectif est de fournir un programme facile à utiliser et fournissant le plus de fonctionnalités possibles.

Smb4K está baseado na biblioteca de cliente de Samba. O seu obxectivo é o de fornecer un programa fácil de usar que forneza tantas funcionalidades como sexa posíbel.

Smb4K adalah berbasiskan pada pustaka klien Samba. Tujuannya adalah untuk menyediakan sebuah program yang mudah digunakan dan memiliki fitur sebanyak mungkin.

Smb4K è basato sulla libreria client di Samba. Il suo scopo è quello di fornire un programma che sia facile da usare e che abbia più funzionalità possibili.

Smb4K는 Samba 클라이언트 라이브러리를 사용합니다. 사용하기 편하면서도 기능이 풍부한 프로그램을 목적으로 합니다.

Smb4K is gebaseerd op de clientbibliotheek van Samba. Het doel is een programma te bieden dat gemakkelijk is te gebruiken en zoveel mogelijk functies heeft.

Smb4K jest oparte na bibliotece klienta Samba. Jego zadaniem jest dostarczenie łatwego w użyciu programu jednocześnie posiadającego tak wiele możliwości jaka tylko jest możliwa.

O Smb4K baseia-se na biblioteca-cliente do Samba. O seu objectivo é oferecer um programa que seja simples de usar e tenha tantas funcionalidades quantas possíveis.

O Smb4K tem como base a biblioteca-cliente do Samba. Seu objetivo é oferecer um programa que seja simples de usar e tenha todas as funcionalidades possíveis.

Smb4K používa programy softvérového balíka Samba. Jeho cieľom je poskytnúť program, ktorý sa ľahko používa a obsahuje toľko funkcií, ako je len možné.

Smb4K är baserat på Sambas klientbibliotek. Dess syfte är att tillhandahålla ett program som är enkelt att använda och har så många funktioner som möjligt.

Smb4K засновано на клієнтській бібліотеці Samba. Її призначено для спрощення користування системою, вона має якомога ширший спектр можливостей.

xxSmb4K is based on Samba's client library. Its purpose is to provide a program that is easy to use and has as many features as possible.xx

Smb4K 基于 Samba 的客户端库。它的目标是易于使用且功能丰富。

Features:

Svojstva:

Característiques:

Característiques:

Vlastnosti:

Funktioner:

Funktionen:

Χαρακτηριστικά:

Features:

Características:

Ominaisuuksia:

Fonctionnalité :

Funcionalidades:

Fitur:

Funzionalità:

기능:

Markmalen:

Mogelijkheden:

Możliwości:

Funcionalidades:

Funcionalidades:

Возможности:

Funkcie:

Funktioner:

Можливості:

xxFeatures:xx

功能:

功能:

  • Scanning for (active) workgroups, hosts, and shares
  • Pretraživanje (aktivnih) radnih grupa, hostova i razmjena
  • Escaneig per a grups de treball (actius), servidors i comparticions
  • Escaneig per a grups de treball (actius), servidors i comparticions
  • Suche nach (aktiven) Arbeitsgruppen, Rechnern und Freigaben
  • Σαρώνει για (ενεργές) ομάδες εργασίας, υπολογιστές και κοινούς πόρους
  • Scanning for (active) workgroups, hosts, and shares
  • Escaneo de grupos de trabajo, servidores y recursos compartidos (activos)
  • (Aktiivisten) työryhmien, verkkokoneiden ja -jakojen etsintä
  • Balayage des groupes de travail (actifs), hôtes et partages
  • Buscando grupos de traballo (activos), servidores e comparticións
  • Pemindaian untuk workgroup, host, dan berbagi (yang aktif)
  • Ricerca di gruppi di lavoro, host e condivisioni (attivi)
  • (활성) 작업 그룹, 호스트, 공유 검색
  • Kieken na (aktiev) Arbeitkoppeln, Reekners un Freegaven
  • Scannen voor (actieve) werkgroepen, hosts en shares
  • Przeszukiwanie (aktywnych) grup roboczych, gospodarzy oraz udziałów
  • Pesquisar pelos grupos de trabalho, máquinas e partilhas - activos ou não
  • Pesquisar por grupos de trabalho, máquinas e compartilhamentos (ativos)
  • Prehľadávanie aktívnych pracovných skupín, hostiteľov a zdieľaní
  • Sökning efter (aktiva) arbetsgrupper, värddatorer och delade resurser
  • Виявлення (активних) робочих груп, вузлів та спільних ресурсів.
  • xxScanning for (active) workgroups, hosts, and sharesxx
  • 扫描(活动)工作组、主机和共享
  • 掃描(活躍的)工作群組、主機與分享
  • Support of the CIFS (Linux) and SMBFS (FreeBSD) file system
  • Podrška za CIFS (Linux) i SMBFS (FreeBSD) sistem datoteka
  • Implementació dels sistemes de fitxers CIFS (Linux) i SMBFS (FreeBSD)
  • Implementació dels sistemes de fitxers CIFS (Linux) i SMBFS (FreeBSD)
  • Unterstützung für CIFS-Dateisysteme unter Linux und SMBFS-Dateisysteme unter FreeBSD
  • Υποστηρίζει τα συστήματα αρχείων CIFS (Linux) και SMBFS (FreeBSD)
  • Support of the CIFS (Linux) and SMBFS (FreeBSD) file system
  • Admite los sistemas de archivo CIFS (Linux) y SMBFS (FreeBSD)
  • CIFS- (Linux) ja SMBFS-tiedostojärjestelmien (FreeBSD) tuki
  • Prise en charge des systèmes de fichiers CIFS (Linux) et SMBFS (FreeBSD)
  • É compatíbel cos sistemas de ficheiros CIFS (Linux) e SMBFS (FreeBSD).
  • Dukungan sistem file CIFS (Linux) dan SMBFS (FreeBSD)
  • Supporto dei file system CIFS (Linux) e SMBFS (FreeBSD)
  • CIFS(리눅스) 및 SMBFS(FreeBSD) 파일 시스템 지원
  • Ünnerstütt dat CIFS- (op Linux) un SMBFS-Dateisysteem (op FreeBSD)
  • Ondersteuning van het CIFS (Linux) en SMBFS (FreeBSD) bestandssysteem
  • Obsługa systemu plików CIFS (Linux) oraz SMBFS (FreeBSD)
  • Suporte para os sistemas de ficheiros CIFS (Linux) e SMBFS (FreeBSD)
  • Suporte para os sistemas de arquivos CIFS (Linux) e SMBFS (FreeBSD)
  • Podpora súborových systémov CIFS (Linux) a SMBFS (FreeBSD)
  • Stöd för filsystemen CIFS (Linux) och SMBFS (FreeBSD)
  • Підтримка файлових систем CIFS (Linux) та SMBFS (FreeBSD).
  • xxSupport of the CIFS (Linux) and SMBFS (FreeBSD) file systemxx
  • 支持 CIFS (Linux) 和 SMBFS (FreeBSD) 文件系统
  • 支援 CIFS (Linux) 與 SMBFS (FreeBSD) 檔案系統
  • Mounting and unmounting of shares
  • Namještanje i razmještanje razmjena
  • El muntatge i desmuntatge de les comparticions
  • El muntatge i desmuntatge de les comparticions
  • Ein- und Aushängen von Freigaben
  • Προσαρτά και απομακρύνει κοινούς πόρους
  • Mounting and unmounting of shares
  • Montaje y desmontaje de recursos compartidos
  • Jakojen liittäminen ja irrottaminen
  • Montage et démontage des partages
  • Permite montar e desmontar comparticións.
  • Pengaitan dan pelepaskaitan berbagi
  • Montaggio e smontaggio delle condivisioni
  • 공유 마운트 및 마운트 해제
  • Freegaven in- un uthangen
  • Aan- en afkoppelen van gedeelde mappen
  • Podpinanie i odpinanie udziałów
  • Montagem e desmontagem de partilhas
  • Montagem e desmontagem de compartilhamentos
  • Pripájanie a odpájanie zdieľaní
  • Montera och avmontera delade resurser
  • Монтування і демонтування спільних ресурсів.
  • xxMounting and unmounting of sharesxx
  • 挂载和卸载共享
  • 掛載與解除掛載分享
  • Access to the files of a mounted share using a file manager or terminal
  • Pristup datotekama namještene razmjene koristeći upravitelj datotekom ili terminal
  • Accés als fitxers d'una compartició muntada emprant un gestor de fitxers o terminal
  • Accés als fitxers d'una compartició muntada emprant un gestor de fitxers o terminal
  • Zugriff auf die Dateien einer eingehängten Freigabe mit einem Dateiverwaltungsprogramm oder einem Terminal
  • Παρέχει πρόσβαση στα αρχεία ενός προσαρτημένου κοινού πόρου με χρήση του διαχειριστή αρχείων ή του τερματικού
  • Access to the files of a mounted share using a file manager or terminal
  • Acceso a los archivos de un recurso compartido montado utilizando un gestor de archivos o un terminal
  • Pääsy liitetyn jaon tiedostoihin tiedostonhallinnasta tai päätteestä
  • Accès aux fichiers d'un partage à travers un gestionnaire de fichiers ou un terminal
  • Permite acceder aos ficheiros dunha compartición montada usando un xestor de ficheiros ou un terminal.
  • Akses ke file pada berbagi yang dikaitkan menggunakan pengelola file atau terminal
  • Accesso ai file di una condivisione montata usando un gestore dei file o un terminale
  • 파일 관리자나 터미널을 통해서 마운트된 공유 내 파일에 접근
  • Togriep op de Dateien binnen en inhangt Freegaav över Dateipleger oder Konsool
  • Toegang tot de bestanden van een aangekoppeld gedeelde map met gebruik van een bestandsbeheerder of terminal
  • Dostęp do plików podpiętego udziału przy użyciu programu do zarządzania plikami lub terminalu
  • Aceder aos ficheiros de uma partilha montada com um gestor de ficheiros ou terminal
  • Acessar aos arquivos de um compartilhamento montado com um gerenciador de arquivos ou terminal
  • Prístup k súborom pripojených zdieľaní pomocou správcu súborov alebo terminálu
  • Åtkomst av filer på en monterad delad resurs med en filhanterare eller terminal
  • Доступ до файлів змонтованого спільного ресурсу за допомогою програми для керування файлами або термінала.
  • xxAccess to the files of a mounted share using a file manager or terminalxx
  • 使用檔案管理員或終端機存取已掛載分享的檔案
  • Auto-detection of external mounts and unmounts
  • Auto-detekcija vanjskih namještanja i razmještanja
  • Detecció automàtica de muntatges i desmuntatges externs
  • Detecció automàtica de muntatges i desmuntatges externs
  • Automatische Erkennung externer Medien, die ein- oder ausgehängt werden
  • Αυτόματος εντοπισμός εξωτερικών προσαρτήσεων και απομακρύνσεων
  • Auto-detection of external mounts and unmounts
  • Detección automática de montajes y desmontajes externos
  • Ulkoisten liitosten ja irrotusten automaattinen havaitseminen
  • Auto-détection des montages et démontages externes
  • Pode detectar automaticamente montaxes e desmontaxes externos.
  • Auto deteksi kait dan lepaskait eksternal
  • Rilevazione automatica di montaggi o di smontaggi esterni
  • 외부 마운트 및 마운트 해제 자동 감지
  • Automaatsch Opdecken vun In- un Uthangen vun buten ut
  • Autodetectie van externe aan- en afkoppelingen
  • Samoczynne wykrywanie zewnętrznych działań podpinania i odpinania
  • Detectar automaticamente as montagens e desmontagens externas
  • Detectar automaticamente as montagens e desmontagens externas
  • Automatická detekcia externých pripojení a odpojení
  • Automatiskt detektion av externa monteringar och avmonteringar
  • Автоматичне виявлення зовнішніх дій з монтування або демонтування.
  • xxAuto-detection of external mounts and unmountsxx
  • 自動偵測外部掛載與解除掛載
  • Remounting of previously used shares on program start
  • Ponovno namještanje prethodno korištenih razmjena na početak programa
  • Tornar a muntar comparticions emprades anteriorment en iniciar el programa
  • Tornar a muntar comparticions emprades anteriorment en iniciar el programa
  • Erneutes Einhängen von vorher benutzten Freigaben beim Start des Programms
  • Αναπροσαρτά κοινούς πόρους προηγούμενης χρήσης στην εκκίνηση του προγράμματος
  • Remounting of previously used shares on program start
  • Vuelve a montar los recursos compartidos utilizados anteriormente al iniciar el programa
  • Aiemmin käytettyjen jakojen uudelleenliittäminen ohjelman käynnistyessä
  • Remontage de partages précédemment utilisés lors du démarrage du programme
  • Pode volver a montar comparticións usadas previamente ao iniciar o programa.
  • Mengaitkan-ulang berbagi-berbagi yang digunakan sebelumnya saat memulai program
  • Rimontaggio all'avvio del programma di una condivisione usata in precedenza
  • 프로그램을 시작할 때 이전에 사용한 공유 다시 마운트
  • Wedderinhangen vun al vördem bruukt Freegaven bi Programmstart
  • Recent gebruikte gedeelde mappen opnieuw tijdens het laden van het programma aankoppelen
  • Podpinanie poprzednio podpiętych udziałów przy starcie
  • Voltar a montar as partilhas usadas anteriormente ao iniciar o programa
  • Remontar os compartilhamentos usados anteriormente ao iniciar o programa
  • Znovupripojenie predtým použitých zdieľaní pri spustení programu
  • Montering av tidigare använda delade resurser igen vid programstart
  • Повторне монтування раніше використаних спільних ресурсів під час запуску програми.
  • xxRemounting of previously used shares on program startxx
  • 在程式啟動時重新掛載先前使用過的分享
  • Miscellaneous infos about remote network items and mounted shares
  • Raznovrsne informacije o udaljenim mrežnim stavkama i namještenim razmjenama
  • Informacions diverses sobre elements de xarxa remots i les comparticions muntades
  • Informacions diverses sobre elements de xarxa remots i les comparticions muntades
  • Verschiedene Informationen über Netzwerke auf anderen Rechnern und eingehängte Freigaben
  • Διάφορες πληροφορίες για απομακρυσμένα δικτυακά αντικείμενα και προσαρτημένους κοινούς πόρους
  • Miscellaneous information about remote network items and mounted shares
  • Información variada sobre los elementos remotos de la red y los recursos compartidos montados
  • Erilaiset tiedot etäverkkokohteista ja liitetyistä jaoista
  • Infos diverses sur les éléments réseau distants et les partages montés
  • Fornece información variada sobre elementos remotos da rede e comparticións montadas.
  • Beraneka info tentang item-item jaringan jarak jauh dan berbagi-berbagi yang dikaitkan
  • Informazioni varie sugli elementi di rete remoti e sulle condivisioni montate
  • 원격 네트워크 항목과 마운트된 공유에 대한 정보 제공
  • En Reeg verscheden Informatschonen över Indrääg binnen Nettwarken un inhangt Freegaven
  • Allerlei informatie over netwerk-items en aangekoppelde shares
  • Różne informacje o elementach w zdalnej sieci i podpiętych udziałach
  • Diversas informações acerca dos itens de rede remotos e das partilhas montadas
  • Diversas informações sobre os itens de rede remotos e dos compartilhamentos montados
  • Rôzne informácie o vzdialených sieťových položkách a pripojených zdieľaniach
  • Diverse information om fjärrobjekt i nätverket och monterade delade resurser
  • Показ різноманітних відомостей щодо віддалених елементів мережі та змонтованих спільних ресурсів.
  • xxMiscellaneous infos about remote network items and mounted sharesxx
  • 關於遠端網路項目與已掛載的分享的其他資訊
  • Network search
  • Pretraga mreže
  • Cerca a la xarxa
  • Cerca a la xarxa
  • Prohledání sítě
  • Netværkssøgning
  • Netzwerksuche
  • Αναζήτηση στο δίκτυο
  • Network search
  • Búsqueda en la red
  • Verkkohaku
  • Recherche sur le réseau
  • Permite realizar buscas na rede.
  • Pencarian jaringan
  • Ricerca in rete
  • 네트워크 검색
  • Nettwarksöök
  • Netwerk doorzoeken
  • Wyszukiwanie w sieci
  • Pesquisa na rede
  • Pesquisa na rede
  • Поиск по сети
  • Prehľadávanie siete
  • Nätverkssökning
  • Мережевий пошук.
  • xxNetwork searchxx
  • 网络搜索
  • 網路搜尋
  • Preview of the contents of a remote share
  • Vista prèvia del contingut d'una compartició remota
  • Vista prèvia del contingut d'una compartició remota
  • +
  • Náhled obsahu vzdáleného úložiště
  • Vorschau des Inhalts einer entfernten Freigabe
  • Preview of the contents of a remote share
  • Vista previa del contenido de un recurso compartido remoto
  • Etäjaon sisällön esikatselu
  • Aperçu des contenus d'un partage distant
  • Permite obter unha vista previa dos contidos dunha compartición remota
  • Pratinjaunya konten dari berbagi jarak jauh
  • Anteprima dei contenuti di una condivisione remota
  • 원격 공유 내용 미리 보기
  • Voorbeeldweergave van de inhoud van een share op afstand
  • Podgląd treści zdalnego udziału
  • Antevisão do conteúdo de uma partilha remota
  • Visualização do conteúdo de um compartilhamento remoto
  • Náhľad obsahu vzdialeného zdieľania
  • Förhandsgranskning av innehållet i en delad resurs
  • Попередній перегляд даних із віддаленого спільного ресурсу
  • xxPreview of the contents of a remote sharexx
  • 远程共享内容的预览
  • Default login
  • Početna prijava
  • Inici de sessió predeterminat
  • Inici de sessió predeterminat
  • Výchozí přihlášení
  • Standard-login
  • Standardanmeldung
  • Προκαθορισμένη σύνδεση
  • Default login
  • Inicio de sesión predeterminado
  • Oletuskirjautuminen
  • Identificateur de connexion par défaut
  • Permite configurar credenciais predeterminadas de acceso.
  • Login baku
  • Nome utente predefinito
  • 기본 로그인
  • Standardanmellen
  • Standaard aanmelden
  • Domyślny użytkownik
  • Conta por omissão
  • Conta padrão
  • Štandardné prihlásenie
  • Standardinloggning
  • Типова реєстрація.
  • xxDefault loginxx
  • 默认登录
  • 預設登入
  • Special handling of homes shares
  • Posebno korištenje početnih razmjena
  • Gestió especial per a les comparticions personals
  • Gestió especial per a les comparticions personals
  • Besondere Behandlung freigegebener persönlicher Ordner
  • Ειδικός χειρισμός πόρων περιοχών χρηστών
  • Special handling of homes shares
  • Manejo especial de los directorios personales compartidos
  • Kotikansiojakojen erityiskäsittely
  • Prise en charge spéciale des répertoires personnels partagés
  • Xestiona de forma especial as particións de cartafoles persoais.
  • Penanganan spesial pemberbagian beranda
  • Gestione speciale delle condivisioni delle home
  • 홈 공유 특수 처리
  • Besünner Hanteren vun Tohuus-Freegaven
  • Speciale behandeling van shares van hoofdmappen
  • Wyjątkowa obsługa udziałów w postaci katalogów domowych
  • Tratamento especial para as partilhas de áreas pessoais
  • Tratamento especial para os compartilhamentos de áreas pessoais
  • Špeciálne zaobchádzanie so zdieľaniami home
  • Särskild hantering av delade hemkataloger
  • Особливі інструменти роботи з домашніми спільними ресурсами.
  • xxSpecial handling of homes sharesxx
  • 家目錄分享的特別處理
  • Ability to bookmark favorite shares
  • Sposobnost bilježenja omiljenih razmjena
  • La possibilitat d'apuntar les comparticions a les adreces d'interès
  • La possibilitat d'apuntar les comparticions a les adreces d'interés
  • Lesezeichen für bevorzugte Freigaben
  • Δυνατότητα αποθήκευσης πόρων σε σελιδοδείκτες
  • Ability to bookmark favorite shares
  • Capacidad para poner como marcadores los recursos compartidos favoritos
  • Mahdollisuus tehdä suosikkijaoista kirjanmerkkejä
  • Possibilité d'avoir des partages favoris
  • Fornece un sistema de marcadores para gardar comparticións.
  • Kemampuan untuk memarkahi berbagi-berbagi favorit
  • Possibilità di aggiungere le condivisioni preferite nei segnalibri
  • 자주 찾는 공유 책갈피 추가
  • Leestekens för vörtrocken Freegaven
  • Vermogen om van favoriete shares een bladwijzer te maken
  • Możliwość nadania zakładki ulubionym udziałom
  • A capacidade de marcar as partilhas como favoritos
  • Capacidade de marcar os compartilhamentos como favoritos
  • Podpora záložiek zdieľaní
  • Möjlighet att lägga till bokmärken för favoritresurser
  • Можливість створення закладок для потрібних вам спільних ресурсів.
  • xxAbility to bookmark favorite sharesxx
  • 將最愛的分享加入書籤的能力
  • System tray widget
  • Kontrola za poslužavnik sistema
  • Un estri per a la safata del sistema
  • Un estri per a la safata del sistema
  • Symbol im Systemabschnitt der Kontrollleiste
  • Γραφικό συστατικό πλαισίου συστήματος
  • System tray widget
  • Elemento gráfico de la bandeja del sistema
  • Ilmoitusaluekuvake
  • Composant graphique dans la barre d'état
  • Fornece un trebello na área de notificación.
  • Widget system tray
  • Oggetto per il vassoio di sistema
  • 시스템 트레이 위젯
  • Systeemafsnitt-Lüttprogramm
  • Widget in systeemvak
  • Element interfejsu w tacce systemowej
  • Item gráfico da bandeja do sistema
  • Item da área de notificação
  • Widget v systémovej lište
  • Grafisk komponent i systembrickan
  • Віджет системного лотка.
  • xxSystem tray widgetxx
  • 系统托盘小部件
  • 系統匣小工具
  • Support of advanced mount options
  • Implementació per a les opcions avançades de muntatge
  • Implementació per a les opcions avançades de muntatge
  • +
  • Podpora pokročilých možností připojení
  • Unterstützung der erweiterten Einstellungen zum Einhängen
  • Support of advanced mount options
  • Apoyo para opciones avanzadas de montaje
  • Lisäliitosasetusten tuki
  • Prise en charge des options de montage avancées
  • Permite usar opcións avanzadas de montaxe
  • Dukungan opsi kait tingkat-lanjut
  • Supporto alle opzioni avanzate di montaggio
  • 고급 마운트 옵션 지원
  • Ondersteuning van geavanceerde opties voor aankoppelen
  • Obsługa zaawansowanych możliwości podpinania
  • Suporte para as opções avançadas de montagem
  • Suporte para opções de montagem avançadas
  • Podpora pokročilých volieb pripojenia
  • Stöd för avancerade monteringsalternativ
  • Підтримка додаткових параметрів монтування
  • xxSupport of advanced mount optionsxx
  • 支持高级挂载选项
  • Support of printer shares
  • Podrška za razmjene štampača
  • Implementació per a les impressores compartides
  • Implementació per a les impressores compartides
  • Unterstützung für Drucker-Freigaben
  • Υποστήριξη κοινών πόρων εκτυπωτών
  • Support of printer shares
  • Apoyo de impresoras compartidas
  • Tulostinjakojen tuki
  • Prise en charge des imprimantes partagées
  • Permite usar impresoras compartidas.
  • Dukungan berbagi pencetak
  • Supporto alla condivisione di stampanti
  • 프린터 공유 지원
  • Ünnerstütten vun Druckerfreegaven
  • Ondersteuning van gedeelde printers
  • Obsługa drukarek sieciowych
  • Suporte para as partilhas de impressoras
  • Suporte para os compartilhamentos de impressoras
  • Podpora zdieľania tlačiarní
  • Stöd för delade skrivare
  • Підтримка спільних принтерів.
  • xxSupport of printer sharesxx
  • 支持打印机共享
  • 印表機分享的支援
  • KWallet support
  • KWallet podrška
  • Implementació per al KWallet
  • Implementació per al KWallet
  • Podpora KWallet
  • Unterstützung für KWallet
  • Υποστήριξη KWallet
  • KWallet support
  • Apoyo para KWallet
  • KWallet-tuki
  • Prise en charge de KWallet
  • Compatibilidade con KWallet.
  • Dukungan KWallet
  • Supporto a KWallet
  • KWallet 지원
  • KWallet-Ünnerstütten
  • Ondersteuning van KWallet
  • Obsługa KPortfela
  • Suporte para a KWallet
  • Suporte para o KWallet
  • Podpora KWallet
  • Stöd för plånboken
  • Підтримка роботи з KWallet.
  • xxKWallet supportxx
  • KWallet 支持
  • 支援 KWallet
  • Synchronization of a remote share with a local copy and vice versa
  • Sinhronizacija udaljenih razmjena sa lokalnom kopijom i obrnuto
  • Sincronització d'una compartició remota amb una còpia local i viceversa
  • Sincronització d'una compartició remota amb una còpia local i viceversa
  • Abgleich einer entfernten Freigabe mit einer lokalen Kopie und umgekehrt
  • Συγχρονισμός απομακρυσμένου πόρου με τοπικό αντίγραφο και αντίστροφα
  • Synchronisation of a remote share with a local copy and vice versa
  • Sincronización de un recurso compartido remoto con una copia local y viceversa
  • Etäjakojen synkronointi paikallisen kopion kanssa ja päinvastoin
  • Synchronisation d'un partage distant avec une copie locale et vice-versa
  • Permite sincronizar comparticións remotas con copias locais en ambos sentidos.
  • Sinkronisasi berbagi jarak jauh dengan salinan lokal dan sebaliknya
  • Sincronizzazione di una condivisione remota con una copia locale e viceversa
  • 원격 공유와 로컬 사본 양방향 동기화
  • Synkroniseren vun en feern Freegaav mit en lokaal Kopie, un ok ümdreiht
  • Synchronisatie van een share op afstand met een lokale kopie en vice versa
  • Synchronizacja zdalnego udziału z lokalną kopią i na odwrót
  • Sincronização de uma partilha remota com uma cópia local e vice-versa
  • Sincronização de um compartilhamento remoto com uma cópia local e vice-versa
  • Synchronizácia vzdialených zdieľaní s miestnou kópiou a naopak
  • Synkronisering av delade fjärresurser med en lokal kopia och tvärtom
  • Синхронізація віддаленого спільного ресурсу з локальною копією і навпаки.
  • xxSynchronization of a remote share with a local copy and vice versaxx
  • 將遠端分享與本機複本同步的能力,反過來也可以
  • Ability to define custom options for individual servers and shares
  • Sposobnost definisanja prilagođenih opcija za individualne servere i razmjene
  • La capacitat per a definir opcions personalitzades individuals per a servidors i comparticions
  • La capacitat per a definir opcions personalitzades individuals per a servidors i comparticions
  • Fähigkeit zur Definition von benutzerdefinierten Einstellungen für einzelne Server und Freigaben.
  • Δυνατότητα καθορισμού προσαρμοσμένων επιλογών για ξεχωριστούς εξυπηρετητές και κοινούς πόρους
  • Ability to define custom options for individual servers and shares
  • Capacidad para definir opciones personalizadas para servidores y recursos compartidos individuales
  • Mahdollisuus mukauttaa määräpalvelinten ja -jakojen asetuksia
  • Possibilité de définir des options personnalisées pour des serveurs et des partages individuels
  • Permite definir configuracións personalizadas para servidores e comparticións concretas.
  • Kemampuan untuk menentukan opsi kustom untuk berbagi dan server individu
  • Capacità di definire opzioni personalizzate per server individuali e per le condivisioni
  • 서버 및 공유 자원별 설정
  • Lett Di Dien egen Optschonen för enkelte Servers un Freegaven fastleggen
  • Vermogen om eigen opties voor individuele servers en shares te definiëren
  • Możliwość określenia osobnych ustawień dla poszczególnych serwerów i udziałów
  • A capacidade de definir opções personalizadas para os servidores e partilhas individuais
  • Capacidade de definir opções personalizadas para os servidores e compartilhamentos individuais
  • Možnosť definovať vlastné voľby pre individuálne servery a zdieľania
  • Möjlighet att definiera egna alternativ för enskilda servrar och delade resurser
  • Можливість визначення нетипових параметрів для окремих серверів та спільних ресурсів.
  • xxAbility to define custom options for individual servers and sharesxx
  • 為每個伺服器與分享定義自訂選項的能力
  • Laptop support through the Solid hardware device framework
  • Laptop podrška preko čvrstog hardver uređajnog okruženja
  • Implementació per a portàtils a través del marc de treball Solid per a dispositius de maquinari
  • Implementació per a portàtils a través del marc de treball Solid per a dispositius de maquinari
  • Laptop-Unterstützung durch das Solid-Framework für Hardware-Geräte
  • Υποστήριξη φορητού υπολογιστή μέσω του πλαισίου Solid για συσκευές
  • Laptop support through the Solid hardware device framework
  • Apoyo para portátiles a través de la infraestructura de dispositivos hardware Solid
  • Kannettavan tietokoneen tuki Solid-laitteistokehyksen avulla
  • Prise en charge des ordinateurs portables avec le framework de gestion matérielle Solid
  • -
  • Compatíbel con portátiles mediante a infraestrutura de dispositivos de hardware Solid.
  • +
  • Compatíbel con portátiles mediante a infraestrutura de dispositivos de soporte físico Solid.
  • Dukungan laptop melalui kerangkakerja perangkat hardware Solid
  • Supporto ai computer portatili per mezzo dell'infrastruttura per i dispositivi hardware Solid
  • Solid 하드웨어 장치 프레임워크를 통한 노트북 지원
  • Klappreekner-Ünnerstütten över't Hardware-Rahmenwark Solid
  • Ondersteuning van laptop via het framework voor hardware apparaten Solid
  • Obsługa laptopa przez szkielet urządzenia sprzętowego Solid
  • Suporte para portáteis, através da plataforma de dispositivos de 'hardware' Solid
  • Suporte para notebooks através da plataforma de hardware Solid
  • Podpora laptopov cez framework hardvérových zariadení Solid
  • Stöd för bärbara datorer via Solid-ramverket för hårdvaruenheter
  • Підтримка ноутбуків за допомогою оболонки для роботи з пристроями Solid.
  • xxLaptop support through the Solid hardware device frameworkxx
  • 透過 Solid 硬體裝置框架支援筆記型電腦
  • Wake-On-LAN capabilities
  • Wake-On-LAN mogućnosti
  • Capacitats de l'activació per LAN (Wake-On-LAN)
  • Capacitats de l'activació per LAN (Wake-On-LAN)
  • „Wake-On-LAN“-Fähigkeiten
  • Δυνατότητες απομακρυσμένης αφύπνισης
  • Wake-On-LAN capabilities
  • Capacidades «Despertar en LAN»
  • Wake-On-LAN-ominaisuudet
  • Capacités de réveil par le réseau (Wake-on-LAN)
  • Ofrece funcionalidades de espertar na rede (Wake-On-LAN).
  • Kemampuan Wake-On-LAN
  • Funzionalità Wake-On-LAN
  • Wake-On-LAN 기능
  • Kann OpWaken-op-LAN (WOL)
  • Vermogen voor Wake-On-LAN
  • Możliwość Wake-On-LAN
  • Capacidades de activação pela LAN
  • Capacidades de ativação por LAN (Wake-On-LAN)
  • Schopnosti Wake-On-LAN
  • Funktioner för att väckas av lokalt nätverk
  • Можливості пробудження сигналом з локальної мережі.
  • xxWake-On-LAN capabilitiesxx
  • 局域网唤醒功能
  • LAN 喚醒的能力
  • Plasmoid for desktop integration
  • Plasmoid za integraciju radne površine
  • Plasmoide per a la integració amb l'escriptori
  • Plasmoide per a la integració amb l'escriptori
  • Plasmoid für die Integration in die Arbeitsfläche
  • Πλασμοειδές για ενοποίηση με το γραφικό περιβάλλον
  • Plasmoid for desktop integration
  • Plasmoide para integración en el escritorio
  • Sovelma työpöytäintegrointiin
  • Plasmoïde pour l'intégration sur le bureau
  • Ofrece integración co escritorio mediante un plasmoide.
  • Plasmoid untuk integrasi desktop
  • Plasmoide per l'integrazione desktop
  • Plasmoid를 통한 데스크톱 통합
  • Plasma-Lüttprogramm för't Integreren na den Schriefdisch
  • Plasmoid voor bureaubladintegratie
  • Plazmoid do integracji z pulpitem
  • Plasmóide de integração no ambiente de trabalho
  • Plasmoide de integração no ambiente de trabalho
  • Plazmoid pre integráciu s pracovnou plochou
  • Plasmoid för integrering med skrivbordssökning
  • Плазмоїд для інтеграції зі стільницею.
  • xxPlasmoid for desktop integrationxx
  • Plasma 桌面部件集成
  • 以 Plasmoid 提供桌面整合
  • Profiles for different network neighborhood setups
  • Perfils per a diferents configuracions del veïnatge de xarxa
  • Perfils per a diferents configuracions del veïnatge de xarxa
  • Profile für verschiedene Einstellungen der Netzwerkumgebung
  • Profiles for different network neighbourhood setups
  • Perfiles para diferentes configuraciones de entorno de red
  • Profiilit eri verkkoympäristömäärityksille
  • Profils pour les différentes configurations de voisinage réseau
  • Perfís para distintas configuracións de veciñanza de rede
  • Memprofilkan bagi persiapan jaringan tetangga yang berbeda
  • Profili per diverse impostazioni delle risorse di rete
  • 다른 네트워크 환경 설정 프로필
  • Profielen voor verschillende opzetten van netwerkomgevingen
  • Profile dla różnych ustawień otoczenia sieciowego
  • Perfis para diferentes configurações da vizinhança da rede
  • Perfis para diferentes configurações de vizinhança da rede
  • Profily pre rôzne nastavenia sieťového okolia
  • Profiler för olika inställningar av nätverksgrannskap
  • Профілі для різних наборів налаштувань мережевого оточення
  • xxProfiles for different network neighborhood setupsxx
  • 为不同网络邻居设置配备不同配置方案

If you are working in a Windows dominated network environment, you may want to install this application to be able to easily access the provided Windows shares.

Ako radite sa Windows dominiranim mrežnim okruženjem, možda ćete željeti instalirati aplikaciju kako biste lako pristupili omogućenim Windows razmjenama.

Si esteu treballant en un entorn de xarxa dominat per Windows, és possible que vulgueu instal·lar aquesta aplicació per a poder accedir amb facilitat a les comparticions proporcionades per Windows.

Si esteu treballant en un entorn de xarxa dominat per Windows, és possible que vulgueu instal·lar aquesta aplicació per a poder accedir amb facilitat a les comparticions proporcionades per Windows.

Wenn Sie in einer Windows-dominierten Netzwerkumgebung arbeiten, sollten Sie diese Anwendung installieren, um leicht auf die vorhandenen Windows-Freigaben zuzugreifen.

Αν εργάζεστε σε ένα περιβάλλον δικτύου υπό την κυριαρχία των Windows, θα θέλατε να εγκαταστήσετε την εφαρμογή αυτή για να μπορείτε να έχετε άνετηπρόσβαση στους κοινούς πόρους που παρέχουν τα Windows.

If you are working in a Windows dominated network environment, you may want to install this application to be able to easily access the provided Windows shares.

Si estás trabajando en un entorno de red dominado por Windows, es posible que desees instalar esta aplicación para poder acceder fácilmente a los recursos Windows compartidos.

Windowsin hallitsemassa verkkoympäristössä tämä sovellus helpottaa tarjolla olevien Windows-jakojen käyttöä.

Si vous travaillez dans un réseau contenant majoritairement des PC sous Windows, vous voudrez sans doute installer cette application pour accéder facilement aux partages Windows.

-

Se traballa nun ambiente de rede dominado por Windows, este aplicativo axudarao a acceder facilmente aos recursos compartidos desde Windows.

+

Se traballa nun ambiente de rede dominado por Windows, esta aplicación axudará a acceder facilmente aos recursos compartidos desde Windows.

Jika kamu bekerja dalam lingkungan jaringan yang didominasi Windows, kamu mungkin ingin menginstal aplikasi ini untuk dapat mengakses secara mudah berbagi-berbagi yang disediakan Windows

Se stai lavorando in una rete dominata da Windows potresti voler installare questa applicazione, per essere in grado di accedere facilmente alle condivisioni fornite da Windows.

Windows가 대다수인 네트워크 환경에서 Windows 공유에 빠르게 접근하려면 이 프로그램을 사용할 수 있습니다.

Arbeidst Du binnen en vun Windows präägt Nettwarkümgeven, kannst Du dit Programm installeren, wenn Du eenfach op de praatstahn Windows-Freegaven togriepen wullt.

Als u werkt in een door Windows gedomineerde netwerkomgeving, dan zou u deze toepassing willen installeren om in staat te zijn gemakkelijk toegang tot de geboden Windows shares te krijgen.

Jeśli pracujesz w otoczeniu sieciowym zdominowanym przez system Windows, to możesz wgrać program do łatwego uzyskiwania dostępu do udziałów Windowsa.

Se estiver a trabalhar num ambiente de rede dominado pelo Windows, poderá querer instalar esta aplicação para poder acede facilmente às partilhas de rede disponíveis.

Se estiver trabalhando em um ambiente de rede dominado pelo Windows, poderá querer instalar este aplicativo para acessar facilmente os compartilhamentos de rede disponíveis.

Ak pracujete vo Windows sieťovom prostredí, možno budete chcieť nainštalovať túto aplikáciu, aby ste mali možnosť jednoducho pristupovať ku zdieľaniam Windows.

Om du arbetar i en Windows-dominerad nätverksmiljö, kan du vilja installera detta program för att enkelt kunna komma åt de delade Windows-kataloger som tillhandahålls.

Якщо ви працюєте у середовищі з переважним використанням Windows, вам варто встановити цю програму для полегшення доступу до спільних ресурсів Windows.

xxIf you are working in a Windows dominated network environment, you may want to install this application to be able to easily access the provided Windows shares.xx

若您正在 Windows 主導的網路環境下工作,您可能會想要安裝這個應用程式來讓存取提供的 Windows 分享更簡單。

The main window Glavni prozor La finestra principal La finestra principal Hlavní okno Das Hauptfenster Το κύριο παράθυρο The main window La ventana principal Pääikkuna La fenêtre principale A xanela principal Window utama La finestra principale 주 창 Dat Hööftfinster Het hoofdvenster Główne okno A janela principal A janela principal Hlavné okno Huvudfönstret Головне вікно. xxThe main windowxx 主窗口 主視窗 https://cdn.kde.org/screenshots/smb4k/screenshot_smb4k_mainwindow_1.png The plasmoid Plazmoid El plasmoide El plasmoide Plasmoid Das Plasmoid Το πλασμοειδές The plasmoid El plasmoide Sovelma Le plasmoïde O plasmoide Plasmoid Il plasmoide Plasmoid Dat Plasma-Lüttprogramm De plasmoid Plazmoid O plasmóide O plasmoide Plazmoid Plasmoiden Плазмоїд. xxThe plasmoidxx Plasma 桌面部件 Plasmoid 元件 https://cdn.kde.org/screenshots/smb4k/screenshot_smb4k_plasmoid_1.png https://smb4k.sourceforge.io https://bugs.kde.org/enter_bug.cgi?format=guided&product=smb4k