Comparar commits
16 Commits
| Autor | SHA1 | Data | |
|---|---|---|---|
| 49a678a26f | |||
| 9290ed6b32 | |||
| 7b0231bfce | |||
| edc58c045f | |||
| 035058934f | |||
| 9b1f46e560 | |||
| 9e7a8e619b | |||
| 9c0cd2b13e | |||
| 58ad781bd4 | |||
| 9d6701ecbe | |||
| d659c54798 | |||
| 0e9170cb36 | |||
| 8820bc1c17 | |||
| 74f67c97a9 | |||
| fd96b482c5 | |||
| 727e73d640 |
+23
@@ -1,5 +1,28 @@
|
||||
ChangeLog
|
||||
=========
|
||||
version 2.2.0 (release 2016-05-12)
|
||||
* Overlay icons: Refactoring - mainly for performance improvements
|
||||
* Improved error handling with Sync Journal on USB storages (#4632)
|
||||
* Sharing Completion: Improved UI of completion in sharing from desktop. (#3737)
|
||||
* Show server notifications on the client (#3733)
|
||||
* Improved Speed with small files by dynamic parallel request count (#4529)
|
||||
* LockWatcher: Make sure to sync files after apps released exclusive locks on Windows.
|
||||
* Improved handling of Win32 file locks and network files
|
||||
* Workaround Ubuntu 16.04 tray icon bug (#4693)
|
||||
* Removed the Alias field from the folder definition (#4695)
|
||||
* Improved netrc parser (#4691)
|
||||
* Improved user notifications about ignored files and conflicts (#4761, #3222)
|
||||
* Add warnings for old server versions (#4523)
|
||||
* Enable tranportation checksums if the server supports based on server capabilities (#3735)
|
||||
|
||||
* Default Chunk-size changed to 10MB (#4354)
|
||||
* Documentation Improvements, ie. about overlay icons
|
||||
* Translation fixes
|
||||
* Countless other bugfixes
|
||||
* Sqlite Update to recent version
|
||||
* Update of QtKeyChain to support Windows credential store
|
||||
* Packaging of dolphin overlay icon module for bleeding edge distros
|
||||
|
||||
version 2.1.1 (release 2016-02-10)
|
||||
* UI improvements for HiDPI screens, error messages, RTL languages
|
||||
* Fix occurences of "Connection Closed" when a new unauthenticated TCP socket is used
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ set( MIRALL_VERSION_YEAR 2016 )
|
||||
set( MIRALL_SOVERSION 0 )
|
||||
|
||||
if ( NOT DEFINED MIRALL_VERSION_SUFFIX )
|
||||
set( MIRALL_VERSION_SUFFIX "git") #e.g. beta1, beta2, rc1
|
||||
set( MIRALL_VERSION_SUFFIX "") #e.g. beta1, beta2, rc1
|
||||
endif( NOT DEFINED MIRALL_VERSION_SUFFIX )
|
||||
|
||||
if( NOT DEFINED MIRALL_VERSION_BUILD )
|
||||
|
||||
+1
-1
Submodule binary updated: a56480559d...d27d472817
Arquivo binário não exibido.
|
Depois Largura: | Altura: | Tamanho: 82 KiB |
@@ -207,6 +207,30 @@ such as files not synced.
|
||||
.. figure:: images/client-8.png
|
||||
:alt: Activity windows logs all server and client activities.
|
||||
|
||||
Server Notifications
|
||||
--------------------
|
||||
|
||||
Starting with version 2.2.0 the client will display notifications which origin
|
||||
from the server. Notifications require a kind of manual interaction from the
|
||||
user and they are triggered by certain events happening on the server. One
|
||||
example is that somebody created a share from a remote ownCloud for the user
|
||||
which has to approved. The notification will be something like "Do you want
|
||||
to accept the share from user Joe on host owncloud.joesdomain.com", and the
|
||||
user of the client can either click an Accept- or Decline-button.
|
||||
|
||||
The desktop client checks for avialable notifications automatically on a regular
|
||||
base.
|
||||
|
||||
If a notification is due for the user, it is displayed integrated in the
|
||||
activity tab, and the user receives a tray notification to draw attention.
|
||||
|
||||
.. figure:: images/client12.png
|
||||
:alt: Activity window with notification.
|
||||
|
||||
There is also the Announcement App that allows administrators to create
|
||||
notifications for users. This is a convenient way to send information to
|
||||
all users.
|
||||
|
||||
General Window
|
||||
--------------
|
||||
|
||||
|
||||
@@ -36,8 +36,7 @@ using namespace std;
|
||||
|
||||
OCClientInterface::ContextMenuInfo OCClientInterface::FetchInfo()
|
||||
{
|
||||
auto pipename = std::wstring(L"\\\\.\\pipe\\");
|
||||
pipename += L"ownCloud";
|
||||
auto pipename = CommunicationSocket::DefaultPipePath();
|
||||
|
||||
CommunicationSocket socket;
|
||||
if (!WaitNamedPipe(pipename.data(), PIPE_TIMEOUT)) {
|
||||
@@ -72,8 +71,7 @@ OCClientInterface::ContextMenuInfo OCClientInterface::FetchInfo()
|
||||
|
||||
void OCClientInterface::ShareObject(const std::wstring &path)
|
||||
{
|
||||
auto pipename = std::wstring(L"\\\\.\\pipe\\");
|
||||
pipename += L"ownCloud";
|
||||
auto pipename = CommunicationSocket::DefaultPipePath();
|
||||
|
||||
CommunicationSocket socket;
|
||||
if (!WaitNamedPipe(pipename.data(), PIPE_TIMEOUT)) {
|
||||
|
||||
@@ -24,11 +24,31 @@
|
||||
|
||||
#include <fstream>
|
||||
|
||||
#define BUFSIZE 1024
|
||||
#define DEFAULT_BUFLEN 4096
|
||||
|
||||
using namespace std;
|
||||
|
||||
#define DEFAULT_BUFLEN 4096
|
||||
namespace {
|
||||
|
||||
std::wstring getUserName() {
|
||||
DWORD len = DEFAULT_BUFLEN;
|
||||
TCHAR buf[DEFAULT_BUFLEN];
|
||||
if (GetUserName(buf, &len)) {
|
||||
return std::wstring(&buf[0], len);
|
||||
} else {
|
||||
return std::wstring();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
std::wstring CommunicationSocket::DefaultPipePath()
|
||||
{
|
||||
auto pipename = std::wstring(L"\\\\.\\pipe\\");
|
||||
pipename += L"ownCloud\\";
|
||||
pipename += getUserName();
|
||||
return pipename;
|
||||
}
|
||||
|
||||
CommunicationSocket::CommunicationSocket()
|
||||
: _pipe(INVALID_HANDLE_VALUE)
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
class __declspec(dllexport) CommunicationSocket
|
||||
{
|
||||
public:
|
||||
static std::wstring DefaultPipePath();
|
||||
|
||||
CommunicationSocket();
|
||||
~CommunicationSocket();
|
||||
|
||||
@@ -43,4 +45,4 @@ private:
|
||||
bool _connected;
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -31,25 +31,10 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
#define BUFSIZE 512
|
||||
|
||||
std::wstring getUserName() {
|
||||
DWORD len = BUFSIZE;
|
||||
TCHAR buf[BUFSIZE];
|
||||
if (GetUserName(buf, &len)) {
|
||||
return std::wstring(&buf[0], len);
|
||||
} else {
|
||||
return std::wstring();
|
||||
}
|
||||
}
|
||||
|
||||
// This code is run in a thread
|
||||
void RemotePathChecker::workerThreadLoop()
|
||||
{
|
||||
auto pipename = std::wstring(L"\\\\.\\pipe\\");
|
||||
pipename += L"ownCloud\\";
|
||||
pipename += getUserName();
|
||||
|
||||
auto pipename = CommunicationSocket::DefaultPipePath();
|
||||
bool connected = false;
|
||||
CommunicationSocket socket;
|
||||
std::unordered_set<std::wstring> asked;
|
||||
|
||||
+19
-7
@@ -56,6 +56,13 @@
|
||||
// The second number should be changed when there are new features.
|
||||
#define MIRALL_SOCKET_API_VERSION "1.0"
|
||||
|
||||
static inline QString removeTrailingSlash(QString path)
|
||||
{
|
||||
Q_ASSERT(path.endsWith(QLatin1Char('/')));
|
||||
path.truncate(path.length()-1);
|
||||
return path;
|
||||
}
|
||||
|
||||
namespace OCC {
|
||||
|
||||
#define DEBUG qDebug() << "SocketApi: "
|
||||
@@ -142,7 +149,7 @@ void SocketApi::slotNewConnection()
|
||||
|
||||
foreach( Folder *f, FolderMan::instance()->map() ) {
|
||||
if (f->canSync()) {
|
||||
QString message = buildRegisterPathMessage(f->path());
|
||||
QString message = buildRegisterPathMessage(removeTrailingSlash(f->path()));
|
||||
sendMessage(socket, message);
|
||||
}
|
||||
}
|
||||
@@ -189,7 +196,7 @@ void SocketApi::slotRegisterPath( const QString& alias )
|
||||
|
||||
Folder *f = FolderMan::instance()->folder(alias);
|
||||
if (f) {
|
||||
QString message = buildRegisterPathMessage(f->path());
|
||||
QString message = buildRegisterPathMessage(removeTrailingSlash(f->path()));
|
||||
foreach(QIODevice *socket, _listeners) {
|
||||
sendMessage(socket, message);
|
||||
}
|
||||
@@ -205,7 +212,7 @@ void SocketApi::slotUnregisterPath( const QString& alias )
|
||||
|
||||
Folder *f = FolderMan::instance()->folder(alias);
|
||||
if (f)
|
||||
broadcastMessage(QLatin1String("UNREGISTER_PATH"), f->path(), QString::null, true );
|
||||
broadcastMessage(QLatin1String("UNREGISTER_PATH"), removeTrailingSlash(f->path()), QString::null, true );
|
||||
|
||||
_registeredAliases.remove(alias);
|
||||
}
|
||||
@@ -225,10 +232,11 @@ void SocketApi::slotUpdateFolderView(Folder *f)
|
||||
f->syncResult().status() == SyncResult::Error ||
|
||||
f->syncResult().status() == SyncResult::SetupError ) {
|
||||
|
||||
broadcastMessage(QLatin1String("STATUS"), f->path() ,
|
||||
QString rootPath = removeTrailingSlash(f->path());
|
||||
broadcastMessage(QLatin1String("STATUS"), rootPath,
|
||||
f->syncEngine().syncFileStatusTracker().fileStatus("").toSocketAPIString());
|
||||
|
||||
broadcastMessage(QLatin1String("UPDATE_VIEW"), f->path() );
|
||||
broadcastMessage(QLatin1String("UPDATE_VIEW"), rootPath);
|
||||
} else {
|
||||
qDebug() << "Not sending UPDATE_VIEW for" << f->alias() << "because status() is" << f->syncResult().status();
|
||||
}
|
||||
@@ -302,8 +310,12 @@ void SocketApi::command_RETRIEVE_FILE_STATUS(const QString& argument, QIODevice*
|
||||
// this can happen in offline mode e.g.: nothing to worry about
|
||||
statusString = QLatin1String("NOP");
|
||||
} else {
|
||||
const QString file = QDir::cleanPath(argument).mid(syncFolder->cleanPath().length()+1);
|
||||
SyncFileStatus fileStatus = syncFolder->syncEngine().syncFileStatusTracker().fileStatus(file);
|
||||
QString relativePath = QDir::cleanPath(argument).mid(syncFolder->cleanPath().length()+1);
|
||||
if( relativePath.endsWith(QLatin1Char('/')) ) {
|
||||
relativePath.truncate(relativePath.length()-1);
|
||||
qWarning() << "Removed trailing slash for directory: " << relativePath << "Status pushes won't have one.";
|
||||
}
|
||||
SyncFileStatus fileStatus = syncFolder->syncEngine().syncFileStatusTracker().fileStatus(relativePath);
|
||||
|
||||
statusString = fileStatus.toSocketAPIString();
|
||||
}
|
||||
|
||||
@@ -92,15 +92,11 @@ SyncFileItem SyncFileStatusTracker::rootSyncFileItem()
|
||||
return fakeRootItem;
|
||||
}
|
||||
|
||||
SyncFileStatus SyncFileStatusTracker::fileStatus(const QString& systemFileName)
|
||||
SyncFileStatus SyncFileStatusTracker::fileStatus(const QString& relativePath)
|
||||
{
|
||||
QString fileName = systemFileName.normalized(QString::NormalizationForm_C);
|
||||
if( fileName.endsWith(QLatin1Char('/')) ) {
|
||||
fileName.truncate(fileName.length()-1);
|
||||
qDebug() << "Removed trailing slash: " << fileName;
|
||||
}
|
||||
Q_ASSERT(!relativePath.endsWith(QLatin1Char('/')));
|
||||
|
||||
if( fileName.isEmpty() ) {
|
||||
if (relativePath.isEmpty()) {
|
||||
// This is the root sync folder, it doesn't have an entry in the database and won't be walked by csync, so create one manually.
|
||||
return syncFileItemStatus(rootSyncFileItem());
|
||||
}
|
||||
@@ -111,22 +107,22 @@ SyncFileStatus SyncFileStatusTracker::fileStatus(const QString& systemFileName)
|
||||
// update the exclude list at runtime and doing it statically here removes
|
||||
// our ability to notify changes through the fileStatusChanged signal,
|
||||
// it's an acceptable compromize to treat all exclude types the same.
|
||||
if( _syncEngine->excludedFiles().isExcluded(_syncEngine->localPath() + fileName,
|
||||
if( _syncEngine->excludedFiles().isExcluded(_syncEngine->localPath() + relativePath,
|
||||
_syncEngine->localPath(),
|
||||
_syncEngine->ignoreHiddenFiles()) ) {
|
||||
return SyncFileStatus(SyncFileStatus::StatusWarning);
|
||||
}
|
||||
|
||||
if ( _dirtyPaths.contains(fileName) )
|
||||
if ( _dirtyPaths.contains(relativePath) )
|
||||
return SyncFileStatus::StatusSync;
|
||||
|
||||
SyncFileItem* item = _syncEngine->findSyncItem(fileName);
|
||||
SyncFileItem* item = _syncEngine->findSyncItem(relativePath);
|
||||
if (item) {
|
||||
return syncFileItemStatus(*item);
|
||||
}
|
||||
|
||||
// If we're not currently syncing that file, look it up in the database to know if it's shared
|
||||
SyncJournalFileRecord rec = _syncEngine->journal()->getFileRecord(fileName);
|
||||
SyncJournalFileRecord rec = _syncEngine->journal()->getFileRecord(relativePath);
|
||||
if (rec.isValid()) {
|
||||
return syncFileItemStatus(rec.toSyncFileItem());
|
||||
}
|
||||
@@ -158,7 +154,7 @@ void SyncFileStatusTracker::slotAboutToPropagate(SyncFileItemVector& items)
|
||||
} else if (showWarningInSocketApi(*item)) {
|
||||
_syncProblems[item->_file] = SyncFileStatus::StatusWarning;
|
||||
}
|
||||
emit fileStatusChanged(getSystemDestination(*item), syncFileItemStatus(*item));
|
||||
emit fileStatusChanged(getSystemDestination(item->destination()), syncFileItemStatus(*item));
|
||||
}
|
||||
|
||||
// Make sure to push any status that might have been resolved indirectly since the last sync
|
||||
@@ -170,7 +166,7 @@ void SyncFileStatusTracker::slotAboutToPropagate(SyncFileItemVector& items)
|
||||
SyncFileStatus::SyncFileStatusTag severity = it->second;
|
||||
if (severity == SyncFileStatus::StatusError)
|
||||
invalidateParentPaths(path);
|
||||
emit fileStatusChanged(_syncEngine->localPath() + path, fileStatus(path));
|
||||
emit fileStatusChanged(getSystemDestination(path), fileStatus(path));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -184,11 +180,10 @@ void SyncFileStatusTracker::slotItemCompleted(const SyncFileItem &item)
|
||||
} else if (showWarningInSocketApi(item)) {
|
||||
_syncProblems[item._file] = SyncFileStatus::StatusWarning;
|
||||
} else {
|
||||
// There is currently no situation where an error status set during discovery/update is fixed by propagation.
|
||||
Q_ASSERT(_syncProblems.find(item._file) == _syncProblems.end());
|
||||
_syncProblems.erase(item._file);
|
||||
}
|
||||
|
||||
emit fileStatusChanged(getSystemDestination(item), syncFileItemStatus(item));
|
||||
emit fileStatusChanged(getSystemDestination(item.destination()), syncFileItemStatus(item));
|
||||
}
|
||||
|
||||
void SyncFileStatusTracker::slotSyncEngineRunningChanged()
|
||||
@@ -236,20 +231,19 @@ void SyncFileStatusTracker::invalidateParentPaths(const QString& path)
|
||||
QStringList splitPath = path.split('/', QString::SkipEmptyParts);
|
||||
for (int i = 0; i < splitPath.size(); ++i) {
|
||||
QString parentPath = QStringList(splitPath.mid(0, i)).join(QLatin1String("/"));
|
||||
emit fileStatusChanged(_syncEngine->localPath() + parentPath, fileStatus(parentPath));
|
||||
emit fileStatusChanged(getSystemDestination(parentPath), fileStatus(parentPath));
|
||||
}
|
||||
}
|
||||
|
||||
QString SyncFileStatusTracker::getSystemDestination(const SyncFileItem& item)
|
||||
QString SyncFileStatusTracker::getSystemDestination(const QString& relativePath)
|
||||
{
|
||||
QString systemFileName = _syncEngine->localPath() + item.destination();
|
||||
// the trailing slash for directories must be appended as the filenames coming in
|
||||
// from the plugins have that too. Otherwise the matching entry item is not found
|
||||
// in the plugin.
|
||||
if( item._type == SyncFileItem::Type::Directory ) {
|
||||
systemFileName += QLatin1Char('/');
|
||||
QString systemPath = _syncEngine->localPath() + relativePath;
|
||||
// SyncEngine::localPath() has a trailing slash, make sure to remove it if the
|
||||
// destination is empty.
|
||||
if( systemPath.endsWith(QLatin1Char('/')) ) {
|
||||
systemPath.truncate(systemPath.length()-1);
|
||||
}
|
||||
return systemFileName;
|
||||
return systemPath;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ class OWNCLOUDSYNC_EXPORT SyncFileStatusTracker : public QObject
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit SyncFileStatusTracker(SyncEngine* syncEngine);
|
||||
SyncFileStatus fileStatus(const QString& systemFileName);
|
||||
SyncFileStatus fileStatus(const QString& relativePath);
|
||||
|
||||
public slots:
|
||||
void slotPathTouched(const QString& fileName);
|
||||
@@ -54,7 +54,7 @@ private:
|
||||
SyncFileItem rootSyncFileItem();
|
||||
|
||||
void invalidateParentPaths(const QString& path);
|
||||
QString getSystemDestination(const SyncFileItem& syncEnginePath);
|
||||
QString getSystemDestination(const QString& relativePath);
|
||||
|
||||
SyncEngine* _syncEngine;
|
||||
|
||||
|
||||
@@ -26,22 +26,23 @@ private slots:
|
||||
bool excludeHidden = true;
|
||||
bool keepHidden = false;
|
||||
|
||||
QVERIFY(!excluded.isExcluded("/a/b", "b", keepHidden));
|
||||
QVERIFY(!excluded.isExcluded("/a/b~", "b~", keepHidden));
|
||||
QVERIFY(!excluded.isExcluded("/a/.b", ".b", keepHidden));
|
||||
QVERIFY(excluded.isExcluded("/a/.b", ".b", excludeHidden));
|
||||
bool x = excluded.isExcluded("/a/b", "/a", keepHidden);
|
||||
QVERIFY(!excluded.isExcluded("/a/b", "/a", keepHidden));
|
||||
QVERIFY(!excluded.isExcluded("/a/b~", "/a", keepHidden));
|
||||
QVERIFY(!excluded.isExcluded("/a/.b", "/a", keepHidden));
|
||||
QVERIFY(excluded.isExcluded("/a/.b", "/a", excludeHidden));
|
||||
|
||||
QString path(BIN_PATH);
|
||||
path.append("/sync-exclude.lst");
|
||||
excluded.addExcludeFilePath(path);
|
||||
excluded.reloadExcludes();
|
||||
|
||||
QVERIFY(!excluded.isExcluded("/a/b", "b", keepHidden));
|
||||
QVERIFY(excluded.isExcluded("/a/b~", "b~", keepHidden));
|
||||
QVERIFY(!excluded.isExcluded("/a/.b", ".b", keepHidden));
|
||||
QVERIFY(excluded.isExcluded("/a/.Trashes", ".Trashes", keepHidden));
|
||||
QVERIFY(excluded.isExcluded("/a/foo_conflict-bar", "foo_conflict-bar", keepHidden));
|
||||
QVERIFY(excluded.isExcluded("/a/.b", ".b", excludeHidden));
|
||||
QVERIFY(!excluded.isExcluded("/a/b", "/a", keepHidden));
|
||||
QVERIFY(excluded.isExcluded("/a/b~", "/a", keepHidden));
|
||||
QVERIFY(!excluded.isExcluded("/a/.b", "/a", keepHidden));
|
||||
QVERIFY(excluded.isExcluded("/a/.Trashes", "/a", keepHidden));
|
||||
QVERIFY(excluded.isExcluded("/a/foo_conflict-bar", "/a", keepHidden));
|
||||
QVERIFY(excluded.isExcluded("/a/.b", "/a", excludeHidden));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
+8
-13
@@ -121,7 +121,9 @@ private slots:
|
||||
// Current requires an X-Server
|
||||
return;
|
||||
}
|
||||
QString ver = versionOfInstalledBinary(BIN_PATH);
|
||||
// pass the binary name owncloud to the next call. This brakes branding,
|
||||
// but branding is not supposed to work with this.
|
||||
QString ver = versionOfInstalledBinary(BIN_PATH+QLatin1String("/owncloud"));
|
||||
qDebug() << "Version of installed ownCloud Binary: " << ver;
|
||||
QVERIFY( !ver.isEmpty());
|
||||
|
||||
@@ -134,34 +136,27 @@ private slots:
|
||||
|
||||
void testTimeAgo()
|
||||
{
|
||||
// Both times in local time
|
||||
// Both times in same timezone
|
||||
QDateTime d1 = QDateTime::fromString("2015-01-24T09:20:30+01:00", Qt::ISODate);
|
||||
QDateTime d2 = QDateTime::fromString("2015-01-23T09:20:30+01:00", Qt::ISODate);
|
||||
QString s = timeAgoInWords(d2, d1);
|
||||
QCOMPARE(s, QLatin1String("1 day(s) ago"));
|
||||
|
||||
//
|
||||
// Different timezones
|
||||
QDateTime earlyTS = QDateTime::fromString("2015-01-24T09:20:30+01:00", Qt::ISODate);
|
||||
earlyTS.setTimeSpec(Qt::UTC);
|
||||
QDateTime laterTS = earlyTS.toOffsetFromUtc(3600);
|
||||
laterTS.setTimeSpec(Qt::UTC);
|
||||
QDateTime laterTS = QDateTime::fromString("2015-01-24T09:20:30-01:00", Qt::ISODate);
|
||||
s = timeAgoInWords(earlyTS, laterTS);
|
||||
QCOMPARE(s, QLatin1String("1 hour(s) ago"));
|
||||
QCOMPARE(s, QLatin1String("2 hour(s) ago"));
|
||||
|
||||
// 'Now' in whatever timezone
|
||||
earlyTS = QDateTime::currentDateTime();
|
||||
|
||||
laterTS.setTimeSpec(Qt::LocalTime);
|
||||
laterTS.setTimeZone( QTimeZone("Pacific/Easter") );
|
||||
laterTS = earlyTS;
|
||||
|
||||
s = timeAgoInWords(earlyTS, laterTS );
|
||||
QCOMPARE(s, QLatin1String("now"));
|
||||
|
||||
earlyTS = earlyTS.addSecs(-6);
|
||||
s = timeAgoInWords(earlyTS, laterTS );
|
||||
QCOMPARE(s, QLatin1String("Less than a minute ago"));
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -2559,7 +2559,7 @@ No és aconsellada usar-la.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Comparteix amb %1</translation>
|
||||
|
||||
@@ -2563,7 +2563,7 @@ Nedoporučuje se jí používat.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Sdílet s %1</translation>
|
||||
|
||||
@@ -2561,7 +2561,7 @@ Es ist nicht ratsam, diese zu benutzen.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Via %1 teilen</translation>
|
||||
|
||||
@@ -2561,7 +2561,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Διαμοιρασμός με %1</translation>
|
||||
|
||||
@@ -2582,7 +2582,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation type="unfinished"></translation>
|
||||
|
||||
@@ -440,17 +440,17 @@
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/activitywidget.cpp" line="351"/>
|
||||
<source>You received %n new notification(s) from %2.</source>
|
||||
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
|
||||
<translation><numerusform>Ha recibido %n nueva notificación de %2.</numerusform><numerusform>Ha recibido %n nueva notificacióne(s) de %2.</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/activitywidget.cpp" line="359"/>
|
||||
<source>You received %n new notification(s) from %1 and %2.</source>
|
||||
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
|
||||
<translation><numerusform>Ha recibido %n nueva notificación de %1 y de %2.</numerusform><numerusform>Ha recibido %n nuevas notificacióne(s) de %1 y de %2.</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/activitywidget.cpp" line="361"/>
|
||||
<source>You received new notifications from %1, %2 and other accounts.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ha recibido nuevas notificaciónes de %1, %2 y otras cuentas.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/activitywidget.cpp" line="365"/>
|
||||
@@ -1684,7 +1684,7 @@ for additional privileges during the process.</source>
|
||||
<message>
|
||||
<location filename="../src/gui/wizard/owncloudhttpcredspage.cpp" line="51"/>
|
||||
<source>&Email</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Email</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/wizard/owncloudhttpcredspage.cpp" line="61"/>
|
||||
@@ -1952,7 +1952,7 @@ No se recomienda usarla.</translation>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="552"/>
|
||||
<source>The downloaded file is empty despite the server announced it should have been %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>El archivo descargado está vacio aunque el servidor dice que deberia haber sido %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="694"/>
|
||||
@@ -2384,7 +2384,7 @@ No se recomienda usarla.</translation>
|
||||
<message>
|
||||
<location filename="../src/gui/sharedialog.cpp" line="113"/>
|
||||
<source>Retrieving maximum possible sharing permissions from server...</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Descargando el maximo número de permisos compartidos del servidor...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharedialog.cpp" line="169"/>
|
||||
@@ -2562,7 +2562,7 @@ No se recomienda usarla.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Compartir con %1</translation>
|
||||
|
||||
@@ -2550,7 +2550,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation type="unfinished"/>
|
||||
|
||||
@@ -2551,7 +2551,7 @@ Selle kasutamine pole soovitatav.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Jagatud kasutajaga %1</translation>
|
||||
|
||||
@@ -2557,7 +2557,7 @@ Ez da gomendagarria erabltzea.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation type="unfinished"/>
|
||||
|
||||
@@ -2550,7 +2550,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>اشتراکگذاری با %1</translation>
|
||||
|
||||
@@ -2558,7 +2558,7 @@ Osoitteen käyttäminen ei ole suositeltavaa.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation type="unfinished"/>
|
||||
|
||||
@@ -2563,7 +2563,7 @@ Il est déconseillé de l'utiliser.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Partager avec %1</translation>
|
||||
|
||||
@@ -2557,7 +2557,7 @@ Recomendámoslle que non o use.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Compartir con %1</translation>
|
||||
|
||||
@@ -2554,7 +2554,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Megosztás vele: %1</translation>
|
||||
|
||||
@@ -2562,7 +2562,7 @@ Non è consigliabile utilizzarlo.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Condividi con %1</translation>
|
||||
|
||||
@@ -2561,7 +2561,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>%1 と共有</translation>
|
||||
|
||||
@@ -2563,7 +2563,7 @@ Det er ikke tilrådelig å bruke den.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Del med %1</translation>
|
||||
|
||||
+12
-12
@@ -631,42 +631,42 @@
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folder.cpp" line="494"/>
|
||||
<source>%1 and %n other file(s) have been removed.</source>
|
||||
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
|
||||
<translation><numerusform>%1 en %n ander bestand(en) zijn verwijderd.</numerusform><numerusform>%1 en %n andere bestand(en) zijn verwijderd.</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folder.cpp" line="501"/>
|
||||
<source>%1 and %n other file(s) have been downloaded.</source>
|
||||
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
|
||||
<translation><numerusform>%1 en %n ander bestand(en) zijn gedownload.</numerusform><numerusform>%1 en %n andere bestand(en) zijn gedownload.</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folder.cpp" line="508"/>
|
||||
<source>%1 and %n other file(s) have been updated.</source>
|
||||
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
|
||||
<translation><numerusform>%1 en %n ander bestand(en) zijn bijgewerkt.</numerusform><numerusform>%1 en %n andere bestand(en) zijn bijgewerkt.</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folder.cpp" line="515"/>
|
||||
<source>%1 has been renamed to %2 and %n other file(s) have been renamed.</source>
|
||||
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
|
||||
<translation><numerusform>%1 is hernoemd naar %2 en %n ander bestand(en) is hernoemd.</numerusform><numerusform>%1 is hernoemd naar %2 en %n andere bestand(en) zijn hernoemd.</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folder.cpp" line="522"/>
|
||||
<source>%1 has been moved to %2 and %n other file(s) have been moved.</source>
|
||||
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
|
||||
<translation><numerusform>%1 is verplaatst naar %2 en %n ander bestand(en) is verplaatst.</numerusform><numerusform>%1 is verplaatst naar %2 en %n andere bestand(en) zijn verplaatst.</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folder.cpp" line="529"/>
|
||||
<source>%1 has and %n other file(s) have sync conflicts.</source>
|
||||
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
|
||||
<translation><numerusform>%1 en %n ander bestand(en) hebben een sync conflict.</numerusform><numerusform>%1 en %n andere bestand(en) hebben sync conflicten.</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="531"/>
|
||||
<source>%1 has a sync conflict. Please check the conflict file!</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 heeft een sync conflict. Controleer het conflict bestand!</translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/gui/folder.cpp" line="536"/>
|
||||
<source>%1 and %n other file(s) could not be synced due to errors. See the log for details.</source>
|
||||
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
|
||||
<translation><numerusform>%1 en %n ander bestand(en) konden niet worden gesynchroniseerd wegens fouten. Bekijk het log voor details.</numerusform><numerusform>%1 en %n andere bestand(en) konden niet worden gesynchroniseerd wegens fouten. Bekijk het log voor details.</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/folder.cpp" line="538"/>
|
||||
@@ -1954,7 +1954,7 @@ We adviseren deze site niet te gebruiken.</translation>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="552"/>
|
||||
<source>The downloaded file is empty despite the server announced it should have been %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Het gedownloade bestand is leeg, hoewel de server meldde dat het %1 zou moeten zijn.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="694"/>
|
||||
@@ -2386,7 +2386,7 @@ We adviseren deze site niet te gebruiken.</translation>
|
||||
<message>
|
||||
<location filename="../src/gui/sharedialog.cpp" line="113"/>
|
||||
<source>Retrieving maximum possible sharing permissions from server...</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Maximum aantal mogelijke permissies van de server ophalen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/gui/sharedialog.cpp" line="169"/>
|
||||
@@ -2564,7 +2564,7 @@ We adviseren deze site niet te gebruiken.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Delen met %1</translation>
|
||||
@@ -3639,7 +3639,7 @@ We adviseren deze site niet te gebruiken.</translation>
|
||||
<message>
|
||||
<location filename="../src/libsync/progressdispatcher.cpp" line="37"/>
|
||||
<source>Server version downloaded, copied changed local file into conflict file</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Serverversie gedownload, gewijzigde lokale bestand gekopieerd in conflictbestand</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/progressdispatcher.cpp" line="39"/>
|
||||
|
||||
+13
-13
@@ -455,7 +455,7 @@
|
||||
<message>
|
||||
<location filename="../src/gui/activitywidget.cpp" line="365"/>
|
||||
<source>%1 Notifications - Action Required</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 Powiadomień - Wymagana akcja</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -524,7 +524,7 @@
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="772"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Błąd podczas zapisu metadanych do bazy</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -1920,7 +1920,7 @@ Niezalecane jest jego użycie.</translation>
|
||||
<message>
|
||||
<location filename="../src/libsync/owncloudpropagator.cpp" line="712"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Błąd podczas zapisu metadanych do bazy</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -1938,17 +1938,17 @@ Niezalecane jest jego użycie.</translation>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="381"/>
|
||||
<source>Free space on disk is less than %1</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Wolne miejsce na dysku jest mniejsze niż %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="496"/>
|
||||
<source>File was deleted from server</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Plik został usunięty z serwera</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="545"/>
|
||||
<source>The file could not be downloaded completely.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ten plik nie mógł być całkowicie pobrany.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="552"/>
|
||||
@@ -1968,7 +1968,7 @@ Niezalecane jest jego użycie.</translation>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatedownload.cpp" line="792"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Błąd podczas zapisu metadanych do bazy</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2009,7 +2009,7 @@ Niezalecane jest jego użycie.</translation>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatorjobs.cpp" line="181"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Błąd podczas zapisu metadanych do bazy</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2040,7 +2040,7 @@ Niezalecane jest jego użycie.</translation>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagatorjobs.cpp" line="245"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Błąd podczas zapisu metadanych do bazy</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2066,7 +2066,7 @@ Niezalecane jest jego użycie.</translation>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemkdir.cpp" line="148"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Błąd podczas zapisu metadanych do bazy</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2094,7 +2094,7 @@ Niezalecane jest jego użycie.</translation>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateremotemove.cpp" line="175"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Błąd podczas zapisu metadanych do bazy</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2143,7 +2143,7 @@ Niezalecane jest jego użycie.</translation>
|
||||
<message>
|
||||
<location filename="../src/libsync/propagateupload.cpp" line="782"/>
|
||||
<source>Error writing metadata to the database</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Błąd podczas zapisu metadanych do bazy</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2563,7 +2563,7 @@ Niezalecane jest jego użycie.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Współdzielone z %1</translation>
|
||||
|
||||
@@ -2562,7 +2562,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Partilhar com %1</translation>
|
||||
|
||||
@@ -2563,7 +2563,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Compartilhar com %1</translation>
|
||||
|
||||
@@ -2562,7 +2562,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Поделиться с %1</translation>
|
||||
|
||||
@@ -2555,7 +2555,7 @@ Nie je vhodné ju používať.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Zdieľať s %1</translation>
|
||||
|
||||
@@ -2560,7 +2560,7 @@ Uporaba ni priporočljiva.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Omogoči souporabo z %1</translation>
|
||||
|
||||
@@ -2556,7 +2556,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Подели са %1</translation>
|
||||
|
||||
@@ -2563,7 +2563,7 @@ Det är inte lämpligt använda den.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Dela med %1</translation>
|
||||
|
||||
@@ -2561,7 +2561,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>แชร์กับ %1</translation>
|
||||
|
||||
@@ -2561,7 +2561,7 @@ Kullanmanız önerilmez.</translation>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>%1 ile paylaş</translation>
|
||||
|
||||
@@ -2551,7 +2551,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>Поділитися з %1</translation>
|
||||
|
||||
@@ -2560,7 +2560,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>共享给 %1</translation>
|
||||
|
||||
@@ -2561,7 +2561,7 @@ It is not advisable to use it.</source>
|
||||
<context>
|
||||
<name>OCC::SocketApi</name>
|
||||
<message>
|
||||
<location filename="../src/gui/socketapi.cpp" line="441"/>
|
||||
<location filename="../src/gui/socketapi.cpp" line="453"/>
|
||||
<source>Share with %1</source>
|
||||
<comment>parameter is ownCloud</comment>
|
||||
<translation>與 %1 分享</translation>
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário