aboutsummaryrefslogtreecommitdiffstats
path: root/l10n/lv/files.po
blob: 02cd9f6e388b10fa9008abd23f43f93b41b3527f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# 
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2013-06-28 01:58+0200\n"
"PO-Revision-Date: 2013-06-27 23:15+0000\n"
"Last-Translator: I Robot <owncloud-bot@tmit.eu>\n"
"Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: lv\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"

#: ajax/move.php:17
#, php-format
msgid "Could not move %s - File with this name already exists"
msgstr "Nevarēja pārvietot %s — jau eksistē datne ar tādu nosaukumu"

#: ajax/move.php:27 ajax/move.php:30
#, php-format
msgid "Could not move %s"
msgstr "Nevarēja pārvietot %s"

#: ajax/upload.php:19
msgid "No file was uploaded. Unknown error"
msgstr "Netika augšupielādēta neviena datne. Nezināma kļūda"

#: ajax/upload.php:26
msgid "There is no error, the file uploaded with success"
msgstr "Viss kārtībā, datne augšupielādēta veiksmīga"

#: ajax/upload.php:27
msgid ""
"The uploaded file exceeds the upload_max_filesize directive in php.ini: "
msgstr "Augšupielādētā datne pārsniedz upload_max_filesize norādījumu php.ini datnē:"

#: ajax/upload.php:29
msgid ""
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
"the HTML form"
msgstr "Augšupielādētā datne pārsniedz MAX_FILE_SIZE norādi, kas ir norādīta HTML formā"

#: ajax/upload.php:30
msgid "The uploaded file was only partially uploaded"
msgstr "Augšupielādētā datne ir tikai daļēji augšupielādēta"

#: ajax/upload.php:31
msgid "No file was uploaded"
msgstr "Neviena datne netika augšupielādēta"

#: ajax/upload.php:32
msgid "Missing a temporary folder"
msgstr "Trūkst pagaidu mapes"

#: ajax/upload.php:33
msgid "Failed to write to disk"
msgstr "Neizdevās saglabāt diskā"

#: ajax/upload.php:51
msgid "Not enough storage available"
msgstr "Nav pietiekami daudz vietas"

#: ajax/upload.php:83
msgid "Invalid directory."
msgstr "Nederīga direktorija."

#: appinfo/app.php:12
msgid "Files"
msgstr "Datnes"

#: js/fileactions.js:116
msgid "Share"
msgstr "Dalīties"

#: js/fileactions.js:126
msgid "Delete permanently"
msgstr "Dzēst pavisam"

#: js/fileactions.js:128 templates/index.php:93 templates/index.php:94
msgid "Delete"
msgstr "Dzēst"

#: js/fileactions.js:194
msgid "Rename"
msgstr "Pārsaukt"

#: js/filelist.js:49 js/filelist.js:52 js/filelist.js:421
msgid "Pending"
msgstr "Gaida savu kārtu"

#: js/filelist.js:259 js/filelist.js:261
msgid "{new_name} already exists"
msgstr "{new_name} jau eksistē"

#: js/filelist.js:259 js/filelist.js:261
msgid "replace"
msgstr "aizvietot"

#: js/filelist.js:259
msgid "suggest name"
msgstr "ieteiktais nosaukums"

#: js/filelist.js:259 js/filelist.js:261
msgid "cancel"
msgstr "atcelt"

#: js/filelist.js:306
msgid "replaced {new_name} with {old_name}"
msgstr "aizvietoja {new_name} ar {old_name}"

#: js/filelist.js:306
msgid "undo"
msgstr "atsaukt"

#: js/filelist.js:331
msgid "perform delete operation"
msgstr "veikt dzēšanas darbību"

#: js/filelist.js:413
msgid "1 file uploading"
msgstr "Augšupielādē 1 datni"

#: js/filelist.js:416 js/filelist.js:470
msgid "files uploading"
msgstr ""

#: js/files.js:52
msgid "'.' is an invalid file name."
msgstr "'.' ir nederīgs datnes nosaukums."

#: js/files.js:56
msgid "File name cannot be empty."
msgstr "Datnes nosaukums nevar būt tukšs."

#: js/files.js:64
msgid ""
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not "
"allowed."
msgstr "Nederīgs nosaukums, nav atļauti '\\', '/', '<', '>', ':', '\"', '|', '?' un '*'."

#: js/files.js:78
msgid "Your storage is full, files can not be updated or synced anymore!"
msgstr "Jūsu krātuve ir pilna, datnes vairs nevar augšupielādēt vai sinhronizēt!"

#: js/files.js:82
msgid "Your storage is almost full ({usedSpacePercent}%)"
msgstr "Jūsu krātuve ir gandrīz pilna ({usedSpacePercent}%)"

#: js/files.js:231
msgid ""
"Your download is being prepared. This might take some time if the files are "
"big."
msgstr "Tiek sagatavota lejupielāde. Tas var aizņemt kādu laiciņu, ja datnes ir lielas."

#: js/files.js:264
msgid "Unable to upload your file as it is a directory or has 0 bytes"
msgstr "Nevar augšupielādēt jūsu datni, jo tā ir direktorija vai arī tā ir 0 baitu liela"

#: js/files.js:277
msgid "Not enough space available"
msgstr "Nepietiek brīvas vietas"

#: js/files.js:317
msgid "Upload cancelled."
msgstr "Augšupielāde ir atcelta."

#: js/files.js:413
msgid ""
"File upload is in progress. Leaving the page now will cancel the upload."
msgstr "Notiek augšupielāde. Pametot lapu tagad, tiks atcelta augšupielāde."

#: js/files.js:486
msgid "URL cannot be empty."
msgstr "URL nevar būt tukšs."

#: js/files.js:491
msgid "Invalid folder name. Usage of 'Shared' is reserved by Owncloud"
msgstr "Nederīgs mapes nosaukums. “Koplietots” izmantojums ir rezervēts ownCloud servisam."

#: js/files.js:520 js/files.js:536 js/files.js:840 js/files.js:878
msgid "Error"
msgstr "Kļūda"

#: js/files.js:891 templates/index.php:69
msgid "Name"
msgstr "Nosaukums"

#: js/files.js:892 templates/index.php:80
msgid "Size"
msgstr "Izmērs"

#: js/files.js:893 templates/index.php:82
msgid "Modified"
msgstr "Mainīts"

#: js/files.js:912
msgid "1 folder"
msgstr "1 mape"

#: js/files.js:914
msgid "{count} folders"
msgstr "{count} mapes"

#: js/files.js:922
msgid "1 file"
msgstr "1 datne"

#: js/files.js:924
msgid "{count} files"
msgstr "{count} datnes"

#: lib/app.php:53
msgid "Invalid folder name. Usage of 'Shared' is reserved by ownCloud"
msgstr ""

#: lib/app.php:73
msgid "Unable to rename file"
msgstr "Nevarēja pārsaukt datni"

#: lib/helper.php:11 templates/index.php:18
msgid "Upload"
msgstr "Augšupielādēt"

#: templates/admin.php:5
msgid "File handling"
msgstr "Datņu pārvaldība"

#: templates/admin.php:7
msgid "Maximum upload size"
msgstr "Maksimālais datņu augšupielādes apjoms"

#: templates/admin.php:10
msgid "max. possible: "
msgstr "maksimālais iespējamais:"

#: templates/admin.php:15
msgid "Needed for multi-file and folder downloads."
msgstr "Vajadzīgs vairāku datņu un mapju lejupielādēšanai."

#: templates/admin.php:17
msgid "Enable ZIP-download"
msgstr "Aktivēt ZIP lejupielādi"

#: templates/admin.php:20
msgid "0 is unlimited"
msgstr "0 ir neierobežots"

#: templates/admin.php:22
msgid "Maximum input size for ZIP files"
msgstr "Maksimālais ievades izmērs ZIP datnēm"

#: templates/admin.php:26
msgid "Save"
msgstr "Saglabāt"

#: templates/index.php:7
msgid "New"
msgstr "Jauna"

#: templates/index.php:10
msgid "Text file"
msgstr "Teksta datne"

#: templates/index.php:12
msgid "Folder"
msgstr "Mape"

#: templates/index.php:14
msgid "From link"
msgstr "No saites"

#: templates/index.php:42
msgid "Deleted files"
msgstr "Dzēstās datnes"

#: templates/index.php:48
msgid "Cancel upload"
msgstr "Atcelt augšupielādi"

#: templates/index.php:54
msgid "You don’t have write permissions here."
msgstr "Jums nav tiesību šeit rakstīt."

#: templates/index.php:61
msgid "Nothing in here. Upload something!"
msgstr "Te vēl nekas nav. Rīkojies, sāc augšupielādēt!"

#: templates/index.php:75
msgid "Download"
msgstr "Lejupielādēt"

#: templates/index.php:87 templates/index.php:88
msgid "Unshare"
msgstr "Pārtraukt dalīšanos"

#: templates/index.php:107
msgid "Upload too large"
msgstr "Datne ir par lielu, lai to augšupielādētu"

#: templates/index.php:109
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr "Augšupielādējamās datnes pārsniedz servera pieļaujamo datņu augšupielādes apjomu"

#: templates/index.php:114
msgid "Files are being scanned, please wait."
msgstr "Datnes šobrīd tiek caurskatītas, lūdzu, uzgaidiet."

#: templates/index.php:117
msgid "Current scanning"
msgstr "Šobrīd tiek caurskatīts"

#: templates/upgrade.php:2
msgid "Upgrading filesystem cache..."
msgstr "Uzlabo datņu sistēmas kešatmiņu..."
an>($file); } catch (ForbiddenException $e) { return null; } if ($data) { // pre-emit only if it was a file. By that we avoid counting/treating folders as files if ($data['mimetype'] !== 'httpd/unix-directory') { $this->emit('\OC\Files\Cache\Scanner', 'scanFile', array($file, $this->storageId)); \OC_Hook::emit('\OC\Files\Cache\Scanner', 'scan_file', array('path' => $file, 'storage' => $this->storageId)); } $parent = dirname($file); if ($parent === '.' or $parent === '/') { $parent = ''; } if ($parentId === -1) { $parentId = $this->cache->getParentId($file); } // scan the parent if it's not in the cache (id -1) and the current file is not the root folder if ($file and $parentId === -1) { $parentData = $this->scanFile($parent); if (!$parentData) { return null; } $parentId = $parentData['fileid']; } if ($parent) { $data['parent'] = $parentId; } if (is_null($cacheData)) { /** @var CacheEntry $cacheData */ $cacheData = $this->cache->get($file); } if ($cacheData and $reuseExisting and isset($cacheData['fileid'])) { // prevent empty etag if (empty($cacheData['etag'])) { $etag = $data['etag']; } else { $etag = $cacheData['etag']; } $fileId = $cacheData['fileid']; $data['fileid'] = $fileId; // only reuse data if the file hasn't explicitly changed if (isset($data['storage_mtime']) && isset($cacheData['storage_mtime']) && $data['storage_mtime'] === $cacheData['storage_mtime']) { $data['mtime'] = $cacheData['mtime']; if (($reuseExisting & self::REUSE_SIZE) && ($data['size'] === -1)) { $data['size'] = $cacheData['size']; } if ($reuseExisting & self::REUSE_ETAG) { $data['etag'] = $etag; } } // Only update metadata that has changed $newData = array_diff_assoc($data, $cacheData->getData()); } else { $newData = $data; $fileId = -1; } if (!empty($newData)) { // Reset the checksum if the data has changed $newData['checksum'] = ''; $data['fileid'] = $this->addToCache($file, $newData, $fileId); } if (isset($cacheData['size'])) { $data['oldSize'] = $cacheData['size']; } else { $data['oldSize'] = 0; } if (isset($cacheData['encrypted'])) { $data['encrypted'] = $cacheData['encrypted']; } // post-emit only if it was a file. By that we avoid counting/treating folders as files if ($data['mimetype'] !== 'httpd/unix-directory') { $this->emit('\OC\Files\Cache\Scanner', 'postScanFile', array($file, $this->storageId)); \OC_Hook::emit('\OC\Files\Cache\Scanner', 'post_scan_file', array('path' => $file, 'storage' => $this->storageId)); } } else { $this->removeFromCache($file); } //release the acquired lock if ($lock) { if ($this->storage->instanceOfStorage('\OCP\Files\Storage\ILockingStorage')) { $this->storage->releaseLock($file, ILockingProvider::LOCK_SHARED, $this->lockingProvider); } } if ($data && !isset($data['encrypted'])) { $data['encrypted'] = false; } return $data; } return null; } protected function removeFromCache($path) { \OC_Hook::emit('Scanner', 'removeFromCache', array('file' => $path)); $this->emit('\OC\Files\Cache\Scanner', 'removeFromCache', array($path)); if ($this->cacheActive) { $this->cache->remove($path); } } /** * @param string $path * @param array $data * @param int $fileId * @return int the id of the added file */ protected function addToCache($path, $data, $fileId = -1) { \OC_Hook::emit('Scanner', 'addToCache', array('file' => $path, 'data' => $data)); $this->emit('\OC\Files\Cache\Scanner', 'addToCache', array($path, $this->storageId, $data)); if ($this->cacheActive) { if ($fileId !== -1) { $this->cache->update($fileId, $data); return $fileId; } else { return $this->cache->put($path, $data); } } else { return -1; } } /** * @param string $path * @param array $data * @param int $fileId */ protected function updateCache($path, $data, $fileId = -1) { \OC_Hook::emit('Scanner', 'addToCache', array('file' => $path, 'data' => $data)); $this->emit('\OC\Files\Cache\Scanner', 'updateCache', array($path, $this->storageId, $data)); if ($this->cacheActive) { if ($fileId !== -1) { $this->cache->update($fileId, $data); } else { $this->cache->put($path, $data); } } } /** * scan a folder and all it's children * * @param string $path * @param bool $recursive * @param int $reuse * @param bool $lock set to false to disable getting an additional read lock during scanning * @return array an array of the meta data of the scanned file or folder */ public function scan($path, $recursive = self::SCAN_RECURSIVE, $reuse = -1, $lock = true) { if ($reuse === -1) { $reuse = ($recursive === self::SCAN_SHALLOW) ? self::REUSE_ETAG | self::REUSE_SIZE : self::REUSE_ETAG; } if ($lock) { if ($this->storage->instanceOfStorage('\OCP\Files\Storage\ILockingStorage')) { $this->storage->acquireLock('scanner::' . $path, ILockingProvider::LOCK_EXCLUSIVE, $this->lockingProvider); $this->storage->acquireLock($path, ILockingProvider::LOCK_SHARED, $this->lockingProvider); } } $data = $this->scanFile($path, $reuse, -1, null, $lock); if ($data and $data['mimetype'] === 'httpd/unix-directory') { $size = $this->scanChildren($path, $recursive, $reuse, $data['fileid'], $lock); $data['size'] = $size; } if ($lock) { if ($this->storage->instanceOfStorage('\OCP\Files\Storage\ILockingStorage')) { $this->storage->releaseLock($path, ILockingProvider::LOCK_SHARED, $this->lockingProvider); $this->storage->releaseLock('scanner::' . $path, ILockingProvider::LOCK_EXCLUSIVE, $this->lockingProvider); } } return $data; } /** * Get the children currently in the cache * * @param int $folderId * @return array[] */ protected function getExistingChildren($folderId) { $existingChildren = array(); $children = $this->cache->getFolderContentsById($folderId); foreach ($children as $child) { $existingChildren[$child['name']] = $child; } return $existingChildren; } /** * Get the children from the storage * * @param string $folder * @return string[] */ protected function getNewChildren($folder) { $children = array(); if ($dh = $this->storage->opendir($folder)) { if (is_resource($dh)) { while (($file = readdir($dh)) !== false) { if (!Filesystem::isIgnoredDir($file)) { $children[] = trim(\OC\Files\Filesystem::normalizePath($file), '/'); } } } } return $children; } /** * scan all the files and folders in a folder * * @param string $path * @param bool $recursive * @param int $reuse * @param int $folderId id for the folder to be scanned * @param bool $lock set to false to disable getting an additional read lock during scanning * @return int the size of the scanned folder or -1 if the size is unknown at this stage */ protected function scanChildren($path, $recursive = self::SCAN_RECURSIVE, $reuse = -1, $folderId = null, $lock = true) { if ($reuse === -1) { $reuse = ($recursive === self::SCAN_SHALLOW) ? self::REUSE_ETAG | self::REUSE_SIZE : self::REUSE_ETAG; } $this->emit('\OC\Files\Cache\Scanner', 'scanFolder', array($path, $this->storageId)); $size = 0; if (!is_null($folderId)) { $folderId = $this->cache->getId($path); } $childQueue = $this->handleChildren($path, $recursive, $reuse, $folderId, $lock, $size); foreach ($childQueue as $child => $childId) { $childSize = $this->scanChildren($child, $recursive, $reuse, $childId, $lock); if ($childSize === -1) { $size = -1; } else if ($size !== -1) { $size += $childSize; } } if ($this->cacheActive) { $this->cache->update($folderId, array('size' => $size)); } $this->emit('\OC\Files\Cache\Scanner', 'postScanFolder', array($path, $this->storageId)); return $size; } private function handleChildren($path, $recursive, $reuse, $folderId, $lock, &$size) { // we put this in it's own function so it cleans up the memory before we start recursing $existingChildren = $this->getExistingChildren($folderId); $newChildren = $this->getNewChildren($path); if ($this->useTransactions) { \OC::$server->getDatabaseConnection()->beginTransaction(); } $exceptionOccurred = false; $childQueue = []; foreach ($newChildren as $file) { $child = ($path) ? $path . '/' . $file : $file; try { $existingData = isset($existingChildren[$file]) ? $existingChildren[$file] : null; $data = $this->scanFile($child, $reuse, $folderId, $existingData, $lock); if ($data) { if ($data['mimetype'] === 'httpd/unix-directory' and $recursive === self::SCAN_RECURSIVE) { $childQueue[$child] = $data['fileid']; } else if ($data['mimetype'] === 'httpd/unix-directory' and $recursive === self::SCAN_RECURSIVE_INCOMPLETE and $data['size'] === -1) { // only recurse into folders which aren't fully scanned $childQueue[$child] = $data['fileid']; } else if ($data['size'] === -1) { $size = -1; } else if ($size !== -1) { $size += $data['size']; } } } catch (\Doctrine\DBAL\DBALException $ex) { // might happen if inserting duplicate while a scanning // process is running in parallel // log and ignore \OCP\Util::writeLog('core', 'Exception while scanning file "' . $child . '": ' . $ex->getMessage(), \OCP\Util::DEBUG); $exceptionOccurred = true; } catch (\OCP\Lock\LockedException $e) { if ($this->useTransactions) { \OC::$server->getDatabaseConnection()->rollback(); } throw $e; } } $removedChildren = \array_diff(array_keys($existingChildren), $newChildren); foreach ($removedChildren as $childName) { $child = ($path) ? $path . '/' . $childName : $childName; $this->removeFromCache($child); } if ($this->useTransactions) { \OC::$server->getDatabaseConnection()->commit(); } if ($exceptionOccurred) { // It might happen that the parallel scan process has already // inserted mimetypes but those weren't available yet inside the transaction // To make sure to have the updated mime types in such cases, // we reload them here \OC::$server->getMimeTypeLoader()->reset(); } return $childQueue; } /** * check if the file should be ignored when scanning * NOTE: files with a '.part' extension are ignored as well! * prevents unfinished put requests to be scanned * * @param string $file * @return boolean */ public static function isPartialFile($file) { if (pathinfo($file, PATHINFO_EXTENSION) === 'part') { return true; } if (strpos($file, '.part/') !== false) { return true; } return false; } /** * walk over any folders that are not fully scanned yet and scan them */ public function backgroundScan() { if (!$this->cache->inCache('')) { $this->runBackgroundScanJob(function () { $this->scan('', self::SCAN_RECURSIVE, self::REUSE_ETAG); }, ''); } else { $lastPath = null; while (($path = $this->cache->getIncomplete()) !== false && $path !== $lastPath) { $this->runBackgroundScanJob(function () use ($path) { $this->scan($path, self::SCAN_RECURSIVE_INCOMPLETE, self::REUSE_ETAG | self::REUSE_SIZE); }, $path); // FIXME: this won't proceed with the next item, needs revamping of getIncomplete() // to make this possible $lastPath = $path; } } } private function runBackgroundScanJob(callable $callback, $path) { try { $callback(); \OC_Hook::emit('Scanner', 'correctFolderSize', array('path' => $path)); if ($this->cacheActive && $this->cache instanceof Cache) { $this->cache->correctFolderSize($path); } } catch (\OCP\Files\StorageInvalidException $e) { // skip unavailable storages } catch (\OCP\Files\StorageNotAvailableException $e) { // skip unavailable storages } catch (\OCP\Files\ForbiddenException $e) { // skip forbidden storages } catch (\OCP\Lock\LockedException $e) { // skip unavailable storages } } /** * Set whether the cache is affected by scan operations * * @param boolean $active The active state of the cache */ public function setCacheActive($active) { $this->cacheActive = $active; } }