From cf14ad2f7d1125c8c297f6db0b6ce99ed2783860 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Thu, 27 Sep 2012 04:10:19 +0200 Subject: RC 1 --- lib/util.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/util.php b/lib/util.php index 08412464254..1b4e45a4882 100755 --- a/lib/util.php +++ b/lib/util.php @@ -81,7 +81,7 @@ class OC_Util { */ public static function getVersion() { // hint: We only can count up. So the internal version number of ownCloud 4.5 will be 4,9,0. This is not visible to the user - return array(4,84,10); + return array(4,85,10); } /** @@ -89,7 +89,7 @@ class OC_Util { * @return string */ public static function getVersionString() { - return '4.5 beta 4'; + return '4.5 RC 1'; } /** -- cgit v1.2.3 From e8df2eeefc0bf9142ab765ec816d45c84858888d Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 27 Sep 2012 22:49:01 +0200 Subject: some more sane column sizes for appconfig and preferences --- db_structure.xml | 14 +++++++------- lib/util.php | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'lib') diff --git a/db_structure.xml b/db_structure.xml index b1e620f8499..99a30cb6137 100644 --- a/db_structure.xml +++ b/db_structure.xml @@ -18,7 +18,7 @@ text true - 255 + 32 @@ -26,7 +26,7 @@ text true - 255 + 64 @@ -310,7 +310,7 @@ text false - 200 + 64 @@ -379,7 +379,7 @@ text true - 255 + 64 @@ -387,7 +387,7 @@ text true - 255 + 32 @@ -395,7 +395,7 @@ text true - 255 + 64 @@ -435,7 +435,7 @@ text true - 200 + 64 diff --git a/lib/util.php b/lib/util.php index 1b4e45a4882..c89c4d8c7c1 100755 --- a/lib/util.php +++ b/lib/util.php @@ -81,7 +81,7 @@ class OC_Util { */ public static function getVersion() { // hint: We only can count up. So the internal version number of ownCloud 4.5 will be 4,9,0. This is not visible to the user - return array(4,85,10); + return array(4,85,11); } /** -- cgit v1.2.3 From 5144d26088b98685a37c73c776a9a47203efa68a Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Fri, 28 Sep 2012 02:06:03 +0200 Subject: [tx-robot] updated from transifex --- apps/files/l10n/de.php | 12 +++---- apps/files/l10n/ja_JP.php | 12 +++++++ apps/files/l10n/zh_CN.php | 12 +++++++ apps/files_sharing/l10n/zh_CN.php | 9 +++++ core/l10n/de.php | 14 ++++---- core/l10n/ja_JP.php | 1 + core/l10n/zh_CN.php | 25 ++++++++++++++ l10n/de/core.po | 20 +++++------ l10n/de/files.po | 19 +++++----- l10n/de/lib.po | 19 +++++----- l10n/de/settings.po | 51 +++++++++++++-------------- l10n/ja_JP/core.po | 8 ++--- l10n/ja_JP/files.po | 68 ++++++++++++++++++------------------ l10n/templates/core.pot | 2 +- l10n/templates/files.pot | 2 +- l10n/templates/files_encryption.pot | 2 +- l10n/templates/files_external.pot | 2 +- l10n/templates/files_sharing.pot | 2 +- l10n/templates/files_versions.pot | 2 +- l10n/templates/lib.pot | 2 +- l10n/templates/settings.pot | 2 +- l10n/templates/user_ldap.pot | 2 +- l10n/zh_CN/core.po | 57 +++++++++++++++--------------- l10n/zh_CN/files.po | 69 +++++++++++++++++++------------------ l10n/zh_CN/files_sharing.po | 21 +++++------ l10n/zh_CN/settings.po | 27 ++++++++------- lib/l10n/de.php | 4 +-- settings/l10n/de.php | 44 +++++++++++------------ settings/l10n/zh_CN.php | 18 +++++----- 29 files changed, 298 insertions(+), 230 deletions(-) create mode 100644 apps/files_sharing/l10n/zh_CN.php (limited to 'lib') diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php index ef2cd8b673a..fc07c9b911e 100644 --- a/apps/files/l10n/de.php +++ b/apps/files/l10n/de.php @@ -7,7 +7,7 @@ "Missing a temporary folder" => "Temporärer Ordner fehlt.", "Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte", "Files" => "Dateien", -"Unshare" => "Nicht mehr teilen", +"Unshare" => "Nicht mehr freigeben", "Delete" => "Löschen", "Rename" => "Umbenennen", "already exists" => "ist bereits vorhanden", @@ -17,15 +17,15 @@ "replaced" => "ersetzt", "undo" => "rückgängig machen", "with" => "mit", -"unshared" => "Nicht mehr teilen", +"unshared" => "Nicht mehr freigegeben", "deleted" => "gelöscht", "generating ZIP-file, it may take some time." => "Erstelle ZIP-Datei. Dies kann eine Weile dauern.", -"Unable to upload your file as it is a directory or has 0 bytes" => "Ihre Datei kann nicht hochgeladen werden, da sie entweder ein Verzeichnis ist oder 0 Bytes hat.", -"Upload Error" => "Fehler beim Hochladen", +"Unable to upload your file as it is a directory or has 0 bytes" => "Ihre Datei kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist.", +"Upload Error" => "Fehler beim Upload", "Pending" => "Ausstehend", "1 file uploading" => "Eine Datei wird hoch geladen", "files uploading" => "Dateien werden hoch geladen", -"Upload cancelled." => "Hochladen abgebrochen.", +"Upload cancelled." => "Upload abgebrochen.", "File upload is in progress. Leaving the page now will cancel the upload." => "Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen.", "Invalid name, '/' is not allowed." => "Ungültiger Name: \"/\" ist nicht erlaubt.", "files scanned" => "Dateien gescannt", @@ -58,7 +58,7 @@ "New" => "Neu", "Text file" => "Textdatei", "Folder" => "Ordner", -"From url" => "URL", +"From url" => "Von einer URL", "Upload" => "Hochladen", "Cancel upload" => "Upload abbrechen", "Nothing in here. Upload something!" => "Alles leer. Lade etwas hoch!", diff --git a/apps/files/l10n/ja_JP.php b/apps/files/l10n/ja_JP.php index f0d016ec9c4..7aa246f9644 100644 --- a/apps/files/l10n/ja_JP.php +++ b/apps/files/l10n/ja_JP.php @@ -23,6 +23,8 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "アップロード使用としているファイルがディレクトリ、もしくはサイズが0バイトのため、アップロードできません。", "Upload Error" => "アップロードエラー", "Pending" => "保留", +"1 file uploading" => "ファイルを1つアップロード中", +"files uploading" => "ファイルをアップロード中", "Upload cancelled." => "アップロードはキャンセルされました。", "File upload is in progress. Leaving the page now will cancel the upload." => "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。", "Invalid name, '/' is not allowed." => "無効な名前、'/' は使用できません。", @@ -35,6 +37,16 @@ "folders" => "フォルダ", "file" => "ファイル", "files" => "ファイル", +"seconds ago" => "秒前", +"minute ago" => "分前", +"minutes ago" => "分前", +"today" => "今日", +"yesterday" => "昨日", +"days ago" => "日前", +"last month" => "一月前", +"months ago" => "月前", +"last year" => "一年前", +"years ago" => "年前", "File handling" => "ファイル操作", "Maximum upload size" => "最大アップロードサイズ", "max. possible: " => "最大容量: ", diff --git a/apps/files/l10n/zh_CN.php b/apps/files/l10n/zh_CN.php index 60c40f6d485..f2ea43ae81e 100644 --- a/apps/files/l10n/zh_CN.php +++ b/apps/files/l10n/zh_CN.php @@ -23,6 +23,8 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "无法上传文件,因为它是一个目录或者大小为 0 字节", "Upload Error" => "上传错误", "Pending" => "操作等待中", +"1 file uploading" => "1个文件上传中", +"files uploading" => "文件上传中", "Upload cancelled." => "上传已取消", "File upload is in progress. Leaving the page now will cancel the upload." => "文件正在上传中。现在离开此页会导致上传动作被取消。", "Invalid name, '/' is not allowed." => "非法的名称,不允许使用‘/’。", @@ -35,6 +37,16 @@ "folders" => "文件夹", "file" => "文件", "files" => "文件", +"seconds ago" => "几秒前", +"minute ago" => "1分钟前", +"minutes ago" => "分钟前", +"today" => "今天", +"yesterday" => "昨天", +"days ago" => "%d 天前", +"last month" => "上月", +"months ago" => "月前", +"last year" => "上年", +"years ago" => "几年前", "File handling" => "文件处理", "Maximum upload size" => "最大上传大小", "max. possible: " => "最大可能: ", diff --git a/apps/files_sharing/l10n/zh_CN.php b/apps/files_sharing/l10n/zh_CN.php new file mode 100644 index 00000000000..64e7af3e0cd --- /dev/null +++ b/apps/files_sharing/l10n/zh_CN.php @@ -0,0 +1,9 @@ + "密码", +"Submit" => "提交", +"%s shared the folder %s with you" => "%s与您共享了%s文件夹", +"%s shared the file %s with you" => "%s与您共享了%s文件", +"Download" => "下载", +"No preview available for" => "没有预览", +"web services under your control" => "您控制的web服务" +); diff --git a/core/l10n/de.php b/core/l10n/de.php index d252700df16..fddb6859912 100644 --- a/core/l10n/de.php +++ b/core/l10n/de.php @@ -22,7 +22,7 @@ "Ok" => "OK", "No categories selected for deletion." => "Es wurde keine Kategorien zum Löschen ausgewählt.", "Error" => "Fehler", -"Error while sharing" => "Fehler beim Teilen", +"Error while sharing" => "Fehler beim Freigeben", "Error while unsharing" => "Fehler beim Aufheben der Freigabe", "Error while changing permissions" => "Fehler beim Ändern der Rechte", "Shared with you and the group %s by %s" => "%s hat dies für dich und die Gruppe %s freigegeben.", @@ -44,16 +44,16 @@ "update" => "aktualisieren", "delete" => "löschen", "share" => "teilen", -"Password protected" => "Passwort geschützt", +"Password protected" => "Durch ein Passwort geschützt", "Error unsetting expiration date" => "Fehler beim entfernen des Ablaufdatums", "Error setting expiration date" => "Fehler beim Setzen des Ablaufdatums", "ownCloud password reset" => "ownCloud-Passwort zurücksetzen", "Use the following link to reset your password: {link}" => "Nutzen Sie den nachfolgenden Link, um Ihr Passwort zurückzusetzen: {link}", -"You will receive a link to reset your password via Email." => "Sie erhalten einen Link, um Ihr Passwort per E-Mail zurückzusetzen.", +"You will receive a link to reset your password via Email." => "Du erhälst einen Link per E-Mail, um Dein Passwort zurückzusetzen.", "Requested" => "Angefragt", "Login failed!" => "Login fehlgeschlagen!", "Username" => "Benutzername", -"Request reset" => "Anfrage zurückgesetzt", +"Request reset" => "Beantrage Zurücksetzung", "Your password was reset" => "Ihr Passwort wurde zurückgesetzt.", "To login page" => "Zur Login-Seite", "New password" => "Neues Passwort", @@ -68,10 +68,10 @@ "Edit categories" => "Kategorien bearbeiten", "Add" => "Hinzufügen", "Create an admin account" => "Administrator-Konto anlegen", -"Advanced" => "Erweitert", +"Advanced" => "Fortgeschritten", "Data folder" => "Datenverzeichnis", "Configure the database" => "Datenbank einrichten", -"will be used" => "wird genutzt", +"will be used" => "wird verwendet", "Database user" => "Datenbank-Benutzer", "Database password" => "Datenbank-Passwort", "Database name" => "Datenbank-Name", @@ -83,7 +83,7 @@ "Lost your password?" => "Passwort vergessen?", "remember" => "merken", "Log in" => "Einloggen", -"You are logged out." => "Sie wurden abgemeldet.", +"You are logged out." => "Du wurdest abgemeldet.", "prev" => "Zurück", "next" => "Weiter" ); diff --git a/core/l10n/ja_JP.php b/core/l10n/ja_JP.php index e563c09cf15..bd442ef4116 100644 --- a/core/l10n/ja_JP.php +++ b/core/l10n/ja_JP.php @@ -45,6 +45,7 @@ "delete" => "削除", "share" => "共有", "Password protected" => "パスワード保護", +"Error unsetting expiration date" => "有効期限の未設定エラー", "Error setting expiration date" => "有効期限の設定でエラー発生", "ownCloud password reset" => "ownCloudのパスワードをリセットします", "Use the following link to reset your password: {link}" => "パスワードをリセットするには次のリンクをクリックして下さい: {link}", diff --git a/core/l10n/zh_CN.php b/core/l10n/zh_CN.php index b84519a5c06..47bda01ab54 100644 --- a/core/l10n/zh_CN.php +++ b/core/l10n/zh_CN.php @@ -15,13 +15,38 @@ "October" => "十月", "November" => "十一月", "December" => "十二月", +"Choose" => "选择(&C)...", "Cancel" => "取消", "No" => "否", "Yes" => "是", "Ok" => "好", "No categories selected for deletion." => "没有选择要删除的类别", "Error" => "错误", +"Error while sharing" => "共享时出错", +"Error while unsharing" => "取消共享时出错", +"Error while changing permissions" => "修改权限时出错", +"Shared with you and the group %s by %s" => "与你及%s组共享,共享人: %s", +"Shared with you by %s" => "共享人: %s", +"Share with" => "共享", +"Share with link" => "共享链接", +"Password protect" => "密码保护", "Password" => "密码", +"Set expiration date" => "设置过期日期", +"Expiration date" => "过期日期", +"Share via email: %s" => "发电子邮件分享: %s", +"No people found" => "未找到此人", +"Resharing is not allowed" => "不允许二次共享", +"Shared in %s with %s" => "在%s中与%s共享", +"Unshare" => "取消共享", +"can edit" => "可以修改", +"access control" => "访问控制", +"create" => "创建", +"update" => "更新", +"delete" => "删除", +"share" => "共享", +"Password protected" => "密码已受保护", +"Error unsetting expiration date" => "取消设置过期日期时出错", +"Error setting expiration date" => "设置过期日期时出错", "ownCloud password reset" => "重置 ownCloud 密码", "Use the following link to reset your password: {link}" => "使用以下链接重置您的密码:{link}", "You will receive a link to reset your password via Email." => "您将会收到包含可以重置密码链接的邮件。", diff --git a/l10n/de/core.po b/l10n/de/core.po index 7e0a3635c55..9305a60d07c 100644 --- a/l10n/de/core.po +++ b/l10n/de/core.po @@ -20,9 +20,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-27 02:01+0200\n" -"PO-Revision-Date: 2012-09-26 11:39+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-09-28 02:02+0200\n" +"PO-Revision-Date: 2012-09-27 22:12+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -125,7 +125,7 @@ msgstr "Fehler" #: js/share.js:103 msgid "Error while sharing" -msgstr "Fehler beim Teilen" +msgstr "Fehler beim Freigeben" #: js/share.js:114 msgid "Error while unsharing" @@ -217,7 +217,7 @@ msgstr "teilen" #: js/share.js:317 js/share.js:476 msgid "Password protected" -msgstr "Passwort geschützt" +msgstr "Durch ein Passwort geschützt" #: js/share.js:489 msgid "Error unsetting expiration date" @@ -237,7 +237,7 @@ msgstr "Nutzen Sie den nachfolgenden Link, um Ihr Passwort zurückzusetzen: {lin #: lostpassword/templates/lostpassword.php:3 msgid "You will receive a link to reset your password via Email." -msgstr "Sie erhalten einen Link, um Ihr Passwort per E-Mail zurückzusetzen." +msgstr "Du erhälst einen Link per E-Mail, um Dein Passwort zurückzusetzen." #: lostpassword/templates/lostpassword.php:5 msgid "Requested" @@ -254,7 +254,7 @@ msgstr "Benutzername" #: lostpassword/templates/lostpassword.php:15 msgid "Request reset" -msgstr "Anfrage zurückgesetzt" +msgstr "Beantrage Zurücksetzung" #: lostpassword/templates/resetpassword.php:4 msgid "Your password was reset" @@ -314,7 +314,7 @@ msgstr "Administrator-Konto anlegen" #: templates/installation.php:36 msgid "Advanced" -msgstr "Erweitert" +msgstr "Fortgeschritten" #: templates/installation.php:38 msgid "Data folder" @@ -327,7 +327,7 @@ msgstr "Datenbank einrichten" #: templates/installation.php:50 templates/installation.php:61 #: templates/installation.php:71 templates/installation.php:81 msgid "will be used" -msgstr "wird genutzt" +msgstr "wird verwendet" #: templates/installation.php:93 msgid "Database user" @@ -375,7 +375,7 @@ msgstr "Einloggen" #: templates/logout.php:1 msgid "You are logged out." -msgstr "Sie wurden abgemeldet." +msgstr "Du wurdest abgemeldet." #: templates/part.pagenavi.php:3 msgid "prev" diff --git a/l10n/de/files.po b/l10n/de/files.po index 111dacc2d9f..e2635a4a0b1 100644 --- a/l10n/de/files.po +++ b/l10n/de/files.po @@ -4,6 +4,7 @@ # # Translators: # , 2012. +# , 2012. # I Robot , 2012. # Jan-Christoph Borchardt , 2011. # Jan-Christoph Borchardt , 2011. @@ -21,9 +22,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-27 02:01+0200\n" -"PO-Revision-Date: 2012-09-26 11:49+0000\n" -"Last-Translator: JamFX \n" +"POT-Creation-Date: 2012-09-28 02:02+0200\n" +"PO-Revision-Date: 2012-09-27 22:31+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -67,7 +68,7 @@ msgstr "Dateien" #: js/fileactions.js:108 templates/index.php:62 msgid "Unshare" -msgstr "Nicht mehr teilen" +msgstr "Nicht mehr freigeben" #: js/fileactions.js:110 templates/index.php:64 msgid "Delete" @@ -107,7 +108,7 @@ msgstr "mit" #: js/filelist.js:273 msgid "unshared" -msgstr "Nicht mehr teilen" +msgstr "Nicht mehr freigegeben" #: js/filelist.js:275 msgid "deleted" @@ -119,11 +120,11 @@ msgstr "Erstelle ZIP-Datei. Dies kann eine Weile dauern." #: js/files.js:208 msgid "Unable to upload your file as it is a directory or has 0 bytes" -msgstr "Ihre Datei kann nicht hochgeladen werden, da sie entweder ein Verzeichnis ist oder 0 Bytes hat." +msgstr "Ihre Datei kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist." #: js/files.js:208 msgid "Upload Error" -msgstr "Fehler beim Hochladen" +msgstr "Fehler beim Upload" #: js/files.js:236 js/files.js:341 js/files.js:371 msgid "Pending" @@ -139,7 +140,7 @@ msgstr "Dateien werden hoch geladen" #: js/files.js:322 js/files.js:355 msgid "Upload cancelled." -msgstr "Hochladen abgebrochen." +msgstr "Upload abgebrochen." #: js/files.js:424 msgid "" @@ -272,7 +273,7 @@ msgstr "Ordner" #: templates/index.php:11 msgid "From url" -msgstr "URL" +msgstr "Von einer URL" #: templates/index.php:20 msgid "Upload" diff --git a/l10n/de/lib.po b/l10n/de/lib.po index e066695345d..d1d17eec25b 100644 --- a/l10n/de/lib.po +++ b/l10n/de/lib.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2012. # Phi Lieb <>, 2012. # , 2012. # , 2012. @@ -10,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-18 02:01+0200\n" -"PO-Revision-Date: 2012-09-17 21:03+0000\n" -"Last-Translator: traductor \n" +"POT-Creation-Date: 2012-09-28 02:03+0200\n" +"PO-Revision-Date: 2012-09-27 22:40+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -44,19 +45,19 @@ msgstr "Apps" msgid "Admin" msgstr "Administrator" -#: files.php:280 +#: files.php:327 msgid "ZIP download is turned off." msgstr "Der ZIP-Download ist deaktiviert." -#: files.php:281 +#: files.php:328 msgid "Files need to be downloaded one by one." msgstr "Die Dateien müssen einzeln heruntergeladen werden." -#: files.php:281 files.php:306 +#: files.php:328 files.php:353 msgid "Back to Files" msgstr "Zurück zu \"Dateien\"" -#: files.php:305 +#: files.php:352 msgid "Selected files too large to generate zip file." msgstr "Die gewählten Dateien sind zu groß, um eine ZIP-Datei zu erstellen." @@ -70,7 +71,7 @@ msgstr "Authentifizierungs-Fehler" #: json.php:51 msgid "Token expired. Please reload page." -msgstr "Token abgelaufen. Bitte laden Sie die Seite neu." +msgstr "Token abgelaufen. Bitte lade die Seite neu." #: template.php:87 msgid "seconds ago" @@ -83,7 +84,7 @@ msgstr "Vor einer Minute" #: template.php:89 #, php-format msgid "%d minutes ago" -msgstr "Vor %d Minute(n)" +msgstr "Vor %d Minuten" #: template.php:92 msgid "today" diff --git a/l10n/de/settings.po b/l10n/de/settings.po index b600de48c54..ca3901fa0c9 100644 --- a/l10n/de/settings.po +++ b/l10n/de/settings.po @@ -4,6 +4,7 @@ # # Translators: # , 2011, 2012. +# , 2012. # , 2012. # I Robot , 2012. # Jan-Christoph Borchardt , 2011. @@ -20,9 +21,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-24 02:02+0200\n" -"PO-Revision-Date: 2012-09-23 21:04+0000\n" -"Last-Translator: AnybodyElse \n" +"POT-Creation-Date: 2012-09-28 02:03+0200\n" +"PO-Revision-Date: 2012-09-27 22:24+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,12 +33,12 @@ msgstr "" #: ajax/apps/ocs.php:23 msgid "Unable to load list from App Store" -msgstr "Die Liste der Apps im Store konnte nicht geladen werden." +msgstr "Die Liste der Anwendungen im Store konnte nicht geladen werden." #: ajax/creategroup.php:9 ajax/removeuser.php:13 ajax/setquota.php:18 #: ajax/togglegroups.php:15 msgid "Authentication error" -msgstr "Anmeldungsfehler" +msgstr "Fehler bei der Anmeldung" #: ajax/creategroup.php:19 msgid "Group already exists" @@ -53,11 +54,11 @@ msgstr "App konnte nicht aktiviert werden." #: ajax/lostpassword.php:14 msgid "Email saved" -msgstr "E-Mail gespeichert" +msgstr "E-Mail Adresse gespeichert" #: ajax/lostpassword.php:16 msgid "Invalid email" -msgstr "Ungültige E-Mail" +msgstr "Ungültige E-Mail Adresse" #: ajax/openid.php:16 msgid "OpenID Changed" @@ -120,23 +121,23 @@ msgstr "Ihr Datenverzeichnis ist möglicher Weise aus dem Internet erreichbar. D #: templates/admin.php:31 msgid "Cron" -msgstr "Cron" +msgstr "Cron-Jobs" #: templates/admin.php:37 msgid "Execute one task with each page loaded" -msgstr "Führe eine Aufgabe pro geladener Seite aus." +msgstr "Führe eine Aufgabe bei jeder geladenen Seite aus." #: templates/admin.php:43 msgid "" "cron.php is registered at a webcron service. Call the cron.php page in the " "owncloud root once a minute over http." -msgstr "cron.php ist bei einem Webcron-Dienst registriert. Rufen Sie die Seite cron.php im ownCloud-Root minütlich per HTTP auf." +msgstr "cron.php ist bei einem Webcron-Dienst registriert. Ruf die Seite cron.php im ownCloud-Root minütlich per HTTP auf." #: templates/admin.php:49 msgid "" "Use systems cron service. Call the cron.php file in the owncloud folder via " "a system cronjob once a minute." -msgstr "Benutzen Sie den System-Crondienst. Rufen Sie die cron.php im ownCloud-Ordner über einen System-Cronjob minütlich auf." +msgstr "Benutze den System-Crondienst. Bitte ruf die cron.php im ownCloud-Ordner über einen System-Cronjob minütlich auf." #: templates/admin.php:56 msgid "Sharing" @@ -144,11 +145,11 @@ msgstr "Freigabe" #: templates/admin.php:61 msgid "Enable Share API" -msgstr "Teilungs-API aktivieren" +msgstr "Freigabe-API aktivieren" #: templates/admin.php:62 msgid "Allow apps to use the Share API" -msgstr "Erlaubt Nutzern, die Teilungs-API zu nutzen" +msgstr "Erlaubt Anwendungen, die Freigabe-API zu nutzen" #: templates/admin.php:67 msgid "Allow links" @@ -156,7 +157,7 @@ msgstr "Links erlauben" #: templates/admin.php:68 msgid "Allow users to share items to the public with links" -msgstr "Erlaube Nutzern, Dateien mithilfe von Links mit der Öffentlichkeit zu teilen" +msgstr "Erlaube Nutzern, Dateien mithilfe von Links öffentlich zu teilen" #: templates/admin.php:73 msgid "Allow resharing" @@ -168,11 +169,11 @@ msgstr "Erlaubt Nutzern, Dateien die mit ihnen geteilt wurden, erneut zu teilen" #: templates/admin.php:79 msgid "Allow users to share with anyone" -msgstr "Erlaube Nutzern mit jedem zu Teilen" +msgstr "Erlaubet Nutzern mit jedem zu Teilen" #: templates/admin.php:81 msgid "Allow users to only share with users in their groups" -msgstr "Erlaube Nutzern nur das Teilen in ihrer Gruppe" +msgstr "Erlaubet Nutzern nur das Teilen in ihrer Gruppe" #: templates/admin.php:88 msgid "Log" @@ -194,15 +195,15 @@ msgstr "Entwickelt von der -licensed by " @@ -218,7 +219,7 @@ msgstr "Große Dateien verwalten" #: templates/help.php:11 msgid "Ask a question" -msgstr "Stellen Sie eine Frage" +msgstr "Stelle eine Frage" #: templates/help.php:23 msgid "Problems connecting to help database." @@ -235,7 +236,7 @@ msgstr "Antwort" #: templates/personal.php:8 #, php-format msgid "You have used %s of the available %s" -msgstr "Sie verwenden %s der verfügbaren %s" +msgstr "Du verwendest %s der verfügbaren %s" #: templates/personal.php:12 msgid "Desktop and Mobile Syncing Clients" @@ -247,7 +248,7 @@ msgstr "Download" #: templates/personal.php:19 msgid "Your password was changed" -msgstr "Ihr Passwort wurde geändert." +msgstr "Dein Passwort wurde geändert." #: templates/personal.php:20 msgid "Unable to change your password" @@ -275,11 +276,11 @@ msgstr "E-Mail" #: templates/personal.php:31 msgid "Your email address" -msgstr "Ihre E-Mail-Adresse" +msgstr "Deine E-Mail-Adresse" #: templates/personal.php:32 msgid "Fill in an email address to enable password recovery" -msgstr "Tragen Sie eine E-Mail-Adresse ein, um die Passwort-Wiederherstellung zu aktivieren." +msgstr "Trage eine E-Mail-Adresse ein, um die Passwort-Wiederherstellung zu aktivieren." #: templates/personal.php:38 templates/personal.php:39 msgid "Language" @@ -287,7 +288,7 @@ msgstr "Sprache" #: templates/personal.php:44 msgid "Help translate" -msgstr "Helfen Sie bei der Übersetzung" +msgstr "Hilf bei der Übersetzung" #: templates/personal.php:51 msgid "use this address to connect to your ownCloud in your file manager" diff --git a/l10n/ja_JP/core.po b/l10n/ja_JP/core.po index 6c588ebd9e5..8a0aa16cedb 100644 --- a/l10n/ja_JP/core.po +++ b/l10n/ja_JP/core.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-26 13:19+0200\n" -"PO-Revision-Date: 2012-09-26 11:19+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-09-28 02:02+0200\n" +"PO-Revision-Date: 2012-09-27 00:52+0000\n" +"Last-Translator: Daisuke Deguchi \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -210,7 +210,7 @@ msgstr "パスワード保護" #: js/share.js:489 msgid "Error unsetting expiration date" -msgstr "" +msgstr "有効期限の未設定エラー" #: js/share.js:501 msgid "Error setting expiration date" diff --git a/l10n/ja_JP/files.po b/l10n/ja_JP/files.po index 906b8008947..786548648ce 100644 --- a/l10n/ja_JP/files.po +++ b/l10n/ja_JP/files.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-26 13:19+0200\n" -"PO-Revision-Date: 2012-09-26 11:20+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-09-28 02:02+0200\n" +"PO-Revision-Date: 2012-09-27 00:51+0000\n" +"Last-Translator: Daisuke Deguchi \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -119,11 +119,11 @@ msgstr "保留" #: js/files.js:256 msgid "1 file uploading" -msgstr "" +msgstr "ファイルを1つアップロード中" #: js/files.js:259 js/files.js:304 js/files.js:319 msgid "files uploading" -msgstr "" +msgstr "ファイルをアップロード中" #: js/files.js:322 js/files.js:355 msgid "Upload cancelled." @@ -138,81 +138,81 @@ msgstr "ファイル転送を実行中です。今このページから移動す msgid "Invalid name, '/' is not allowed." msgstr "無効な名前、'/' は使用できません。" -#: js/files.js:667 +#: js/files.js:668 msgid "files scanned" msgstr "ファイルをスキャンしました" -#: js/files.js:675 +#: js/files.js:676 msgid "error while scanning" msgstr "スキャン中のエラー" -#: js/files.js:748 templates/index.php:48 +#: js/files.js:749 templates/index.php:48 msgid "Name" msgstr "名前" -#: js/files.js:749 templates/index.php:56 +#: js/files.js:750 templates/index.php:56 msgid "Size" msgstr "サイズ" -#: js/files.js:750 templates/index.php:58 +#: js/files.js:751 templates/index.php:58 msgid "Modified" msgstr "更新日時" -#: js/files.js:777 +#: js/files.js:778 msgid "folder" msgstr "フォルダ" -#: js/files.js:779 +#: js/files.js:780 msgid "folders" msgstr "フォルダ" -#: js/files.js:787 +#: js/files.js:788 msgid "file" msgstr "ファイル" -#: js/files.js:789 +#: js/files.js:790 msgid "files" msgstr "ファイル" -#: js/files.js:833 +#: js/files.js:834 msgid "seconds ago" -msgstr "" +msgstr "秒前" -#: js/files.js:834 +#: js/files.js:835 msgid "minute ago" -msgstr "" +msgstr "分前" -#: js/files.js:835 +#: js/files.js:836 msgid "minutes ago" -msgstr "" +msgstr "分前" -#: js/files.js:838 +#: js/files.js:839 msgid "today" -msgstr "" +msgstr "今日" -#: js/files.js:839 +#: js/files.js:840 msgid "yesterday" -msgstr "" +msgstr "昨日" -#: js/files.js:840 +#: js/files.js:841 msgid "days ago" -msgstr "" +msgstr "日前" -#: js/files.js:841 +#: js/files.js:842 msgid "last month" -msgstr "" +msgstr "一月前" -#: js/files.js:843 +#: js/files.js:844 msgid "months ago" -msgstr "" +msgstr "月前" -#: js/files.js:844 +#: js/files.js:845 msgid "last year" -msgstr "" +msgstr "一年前" -#: js/files.js:845 +#: js/files.js:846 msgid "years ago" -msgstr "" +msgstr "年前" #: templates/admin.php:5 msgid "File handling" diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index 3dd88c79dbf..861fe878993 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-27 02:01+0200\n" +"POT-Creation-Date: 2012-09-28 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index c59c25fdcb3..80c1c196e3f 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-27 02:01+0200\n" +"POT-Creation-Date: 2012-09-28 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index 36387a9288c..00d37e9b4e7 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-27 02:01+0200\n" +"POT-Creation-Date: 2012-09-28 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index 286aaaaaa1c..fb569b41bf4 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-27 02:01+0200\n" +"POT-Creation-Date: 2012-09-28 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index 9b14cb91822..7e598348e25 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-27 02:01+0200\n" +"POT-Creation-Date: 2012-09-28 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index c844a192b32..0261cee06a9 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-27 02:01+0200\n" +"POT-Creation-Date: 2012-09-28 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index 1b312f927cd..91d014d024b 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-27 02:01+0200\n" +"POT-Creation-Date: 2012-09-28 02:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index 1ce4f67633e..67eb87cfcd7 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-27 02:01+0200\n" +"POT-Creation-Date: 2012-09-28 02:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index 805cd0c4df8..ed8c48f3cec 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-27 02:01+0200\n" +"POT-Creation-Date: 2012-09-28 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/zh_CN/core.po b/l10n/zh_CN/core.po index 50fafe5cc6f..e03aa1d5d4d 100644 --- a/l10n/zh_CN/core.po +++ b/l10n/zh_CN/core.po @@ -5,14 +5,15 @@ # Translators: # , 2012. # Phoenix Nemo <>, 2012. +# , 2012. # , 2011, 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-26 13:19+0200\n" -"PO-Revision-Date: 2012-09-26 11:19+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-09-28 02:02+0200\n" +"PO-Revision-Date: 2012-09-27 14:37+0000\n" +"Last-Translator: waterone \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -86,7 +87,7 @@ msgstr "十二月" #: js/oc-dialogs.js:123 msgid "Choose" -msgstr "" +msgstr "选择(&C)..." #: js/oc-dialogs.js:143 js/oc-dialogs.js:163 msgid "Cancel" @@ -115,37 +116,37 @@ msgstr "错误" #: js/share.js:103 msgid "Error while sharing" -msgstr "" +msgstr "共享时出错" #: js/share.js:114 msgid "Error while unsharing" -msgstr "" +msgstr "取消共享时出错" #: js/share.js:121 msgid "Error while changing permissions" -msgstr "" +msgstr "修改权限时出错" #: js/share.js:130 #, python-format msgid "Shared with you and the group %s by %s" -msgstr "" +msgstr "与你及%s组共享,共享人: %s" #: js/share.js:132 #, python-format msgid "Shared with you by %s" -msgstr "" +msgstr "共享人: %s" #: js/share.js:137 msgid "Share with" -msgstr "" +msgstr "共享" #: js/share.js:142 msgid "Share with link" -msgstr "" +msgstr "共享链接" #: js/share.js:143 msgid "Password protect" -msgstr "" +msgstr "密码保护" #: js/share.js:147 templates/installation.php:30 templates/login.php:13 msgid "Password" @@ -153,69 +154,69 @@ msgstr "密码" #: js/share.js:152 msgid "Set expiration date" -msgstr "" +msgstr "设置过期日期" #: js/share.js:153 msgid "Expiration date" -msgstr "" +msgstr "过期日期" #: js/share.js:185 #, python-format msgid "Share via email: %s" -msgstr "" +msgstr "发电子邮件分享: %s" #: js/share.js:187 msgid "No people found" -msgstr "" +msgstr "未找到此人" #: js/share.js:214 msgid "Resharing is not allowed" -msgstr "" +msgstr "不允许二次共享" #: js/share.js:250 #, python-format msgid "Shared in %s with %s" -msgstr "" +msgstr "在%s中与%s共享" #: js/share.js:271 msgid "Unshare" -msgstr "" +msgstr "取消共享" #: js/share.js:279 msgid "can edit" -msgstr "" +msgstr "可以修改" #: js/share.js:281 msgid "access control" -msgstr "" +msgstr "访问控制" #: js/share.js:284 msgid "create" -msgstr "" +msgstr "创建" #: js/share.js:287 msgid "update" -msgstr "" +msgstr "更新" #: js/share.js:290 msgid "delete" -msgstr "" +msgstr "删除" #: js/share.js:293 msgid "share" -msgstr "" +msgstr "共享" #: js/share.js:317 js/share.js:476 msgid "Password protected" -msgstr "" +msgstr "密码已受保护" #: js/share.js:489 msgid "Error unsetting expiration date" -msgstr "" +msgstr "取消设置过期日期时出错" #: js/share.js:501 msgid "Error setting expiration date" -msgstr "" +msgstr "设置过期日期时出错" #: lostpassword/index.php:26 msgid "ownCloud password reset" diff --git a/l10n/zh_CN/files.po b/l10n/zh_CN/files.po index 4eac1099c91..f6d9aa43f8e 100644 --- a/l10n/zh_CN/files.po +++ b/l10n/zh_CN/files.po @@ -5,14 +5,15 @@ # Translators: # , 2012. # , 2012. +# , 2012. # , 2011, 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-26 13:19+0200\n" -"PO-Revision-Date: 2012-09-26 11:20+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-09-28 02:02+0200\n" +"PO-Revision-Date: 2012-09-27 14:26+0000\n" +"Last-Translator: waterone \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -120,11 +121,11 @@ msgstr "操作等待中" #: js/files.js:256 msgid "1 file uploading" -msgstr "" +msgstr "1个文件上传中" #: js/files.js:259 js/files.js:304 js/files.js:319 msgid "files uploading" -msgstr "" +msgstr "文件上传中" #: js/files.js:322 js/files.js:355 msgid "Upload cancelled." @@ -139,81 +140,81 @@ msgstr "文件正在上传中。现在离开此页会导致上传动作被取消 msgid "Invalid name, '/' is not allowed." msgstr "非法的名称,不允许使用‘/’。" -#: js/files.js:667 +#: js/files.js:668 msgid "files scanned" msgstr "已扫描文件" -#: js/files.js:675 +#: js/files.js:676 msgid "error while scanning" msgstr "扫描时出错" -#: js/files.js:748 templates/index.php:48 +#: js/files.js:749 templates/index.php:48 msgid "Name" msgstr "名称" -#: js/files.js:749 templates/index.php:56 +#: js/files.js:750 templates/index.php:56 msgid "Size" msgstr "大小" -#: js/files.js:750 templates/index.php:58 +#: js/files.js:751 templates/index.php:58 msgid "Modified" msgstr "修改日期" -#: js/files.js:777 +#: js/files.js:778 msgid "folder" msgstr "文件夹" -#: js/files.js:779 +#: js/files.js:780 msgid "folders" msgstr "文件夹" -#: js/files.js:787 +#: js/files.js:788 msgid "file" msgstr "文件" -#: js/files.js:789 +#: js/files.js:790 msgid "files" msgstr "文件" -#: js/files.js:833 +#: js/files.js:834 msgid "seconds ago" -msgstr "" +msgstr "几秒前" -#: js/files.js:834 +#: js/files.js:835 msgid "minute ago" -msgstr "" +msgstr "1分钟前" -#: js/files.js:835 +#: js/files.js:836 msgid "minutes ago" -msgstr "" +msgstr "分钟前" -#: js/files.js:838 +#: js/files.js:839 msgid "today" -msgstr "" +msgstr "今天" -#: js/files.js:839 +#: js/files.js:840 msgid "yesterday" -msgstr "" +msgstr "昨天" -#: js/files.js:840 +#: js/files.js:841 msgid "days ago" -msgstr "" +msgstr "%d 天前" -#: js/files.js:841 +#: js/files.js:842 msgid "last month" -msgstr "" +msgstr "上月" -#: js/files.js:843 +#: js/files.js:844 msgid "months ago" -msgstr "" +msgstr "月前" -#: js/files.js:844 +#: js/files.js:845 msgid "last year" -msgstr "" +msgstr "上年" -#: js/files.js:845 +#: js/files.js:846 msgid "years ago" -msgstr "" +msgstr "几年前" #: templates/admin.php:5 msgid "File handling" diff --git a/l10n/zh_CN/files_sharing.po b/l10n/zh_CN/files_sharing.po index 0cf69de8ed6..149353d1100 100644 --- a/l10n/zh_CN/files_sharing.po +++ b/l10n/zh_CN/files_sharing.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-22 01:14+0200\n" -"PO-Revision-Date: 2012-09-21 23:15+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-09-28 02:02+0200\n" +"PO-Revision-Date: 2012-09-27 14:41+0000\n" +"Last-Translator: waterone \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,30 +20,30 @@ msgstr "" #: templates/authenticate.php:4 msgid "Password" -msgstr "" +msgstr "密码" #: templates/authenticate.php:6 msgid "Submit" -msgstr "" +msgstr "提交" #: templates/public.php:9 #, php-format msgid "%s shared the folder %s with you" -msgstr "" +msgstr "%s与您共享了%s文件夹" #: templates/public.php:11 #, php-format msgid "%s shared the file %s with you" -msgstr "" +msgstr "%s与您共享了%s文件" #: templates/public.php:14 templates/public.php:30 msgid "Download" -msgstr "" +msgstr "下载" #: templates/public.php:29 msgid "No preview available for" -msgstr "" +msgstr "没有预览" #: templates/public.php:37 msgid "web services under your control" -msgstr "" +msgstr "您控制的web服务" diff --git a/l10n/zh_CN/settings.po b/l10n/zh_CN/settings.po index defda5f688f..a0bc33f6106 100644 --- a/l10n/zh_CN/settings.po +++ b/l10n/zh_CN/settings.po @@ -6,14 +6,15 @@ # , 2012. # Phoenix Nemo <>, 2012. # , 2012. +# , 2012. # , 2011, 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-19 02:02+0200\n" -"PO-Revision-Date: 2012-09-19 00:03+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-09-28 02:03+0200\n" +"PO-Revision-Date: 2012-09-27 14:13+0000\n" +"Last-Translator: waterone \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,11 +33,11 @@ msgstr "认证错误" #: ajax/creategroup.php:19 msgid "Group already exists" -msgstr "已存在组" +msgstr "已存在该组" #: ajax/creategroup.php:28 msgid "Unable to add group" -msgstr "不能添加组" +msgstr "无法添加组" #: ajax/enableapp.php:14 msgid "Could not enable app. " @@ -60,11 +61,11 @@ msgstr "非法请求" #: ajax/removegroup.php:16 msgid "Unable to delete group" -msgstr "不能删除组" +msgstr "无法删除组" #: ajax/removeuser.php:22 msgid "Unable to delete user" -msgstr "不能删除用户" +msgstr "无法删除用户" #: ajax/setlanguage.php:18 msgid "Language changed" @@ -73,12 +74,12 @@ msgstr "语言已修改" #: ajax/togglegroups.php:25 #, php-format msgid "Unable to add user to group %s" -msgstr "不能把用户添加到组 %s" +msgstr "无法把用户添加到组 %s" #: ajax/togglegroups.php:31 #, php-format msgid "Unable to remove user from group %s" -msgstr "不能从组%s中移除用户" +msgstr "无法从组%s中移除用户" #: js/apps.js:27 js/apps.js:61 msgid "Disable" @@ -107,7 +108,7 @@ msgid "" "strongly suggest that you configure your webserver in a way that the data " "directory is no longer accessible or you move the data directory outside the" " webserver document root." -msgstr "您的数据文件夹和文件可由互联网访问。OwnCloud提供的.htaccess文件未生效。我们强烈建议您配置服务器,以使数据文件夹不可被访问,或者将数据文件夹移到web服务器以外。" +msgstr "您的数据文件夹和文件可由互联网访问。OwnCloud提供的.htaccess文件未生效。我们强烈建议您配置服务器,以使数据文件夹不可被访问,或者将数据文件夹移到web服务器根目录以外。" #: templates/admin.php:31 msgid "Cron" @@ -226,7 +227,7 @@ msgstr "回答" #: templates/personal.php:8 #, php-format msgid "You have used %s of the available %s" -msgstr "" +msgstr "您已使用空间: %s,总空间: %s" #: templates/personal.php:12 msgid "Desktop and Mobile Syncing Clients" @@ -238,7 +239,7 @@ msgstr "下载" #: templates/personal.php:19 msgid "Your password was changed" -msgstr "" +msgstr "密码已修改" #: templates/personal.php:20 msgid "Unable to change your password" @@ -282,7 +283,7 @@ msgstr "帮助翻译" #: templates/personal.php:51 msgid "use this address to connect to your ownCloud in your file manager" -msgstr "在文件管理器中使用这个地址来连接到您的 ownCloud" +msgstr "您可在文件管理器中使用该地址连接到ownCloud" #: templates/users.php:21 templates/users.php:76 msgid "Name" diff --git a/lib/l10n/de.php b/lib/l10n/de.php index aea631aba28..8c81be16582 100644 --- a/lib/l10n/de.php +++ b/lib/l10n/de.php @@ -11,10 +11,10 @@ "Selected files too large to generate zip file." => "Die gewählten Dateien sind zu groß, um eine ZIP-Datei zu erstellen.", "Application is not enabled" => "Die Anwendung ist nicht aktiviert", "Authentication error" => "Authentifizierungs-Fehler", -"Token expired. Please reload page." => "Token abgelaufen. Bitte laden Sie die Seite neu.", +"Token expired. Please reload page." => "Token abgelaufen. Bitte lade die Seite neu.", "seconds ago" => "Vor wenigen Sekunden", "1 minute ago" => "Vor einer Minute", -"%d minutes ago" => "Vor %d Minute(n)", +"%d minutes ago" => "Vor %d Minuten", "today" => "Heute", "yesterday" => "Gestern", "%d days ago" => "Vor %d Tag(en)", diff --git a/settings/l10n/de.php b/settings/l10n/de.php index 9c034fc2546..6b86a08ced5 100644 --- a/settings/l10n/de.php +++ b/settings/l10n/de.php @@ -1,11 +1,11 @@ "Die Liste der Apps im Store konnte nicht geladen werden.", -"Authentication error" => "Anmeldungsfehler", +"Unable to load list from App Store" => "Die Liste der Anwendungen im Store konnte nicht geladen werden.", +"Authentication error" => "Fehler bei der Anmeldung", "Group already exists" => "Gruppe existiert bereits", "Unable to add group" => "Gruppe konnte nicht angelegt werden", "Could not enable app. " => "App konnte nicht aktiviert werden.", -"Email saved" => "E-Mail gespeichert", -"Invalid email" => "Ungültige E-Mail", +"Email saved" => "E-Mail Adresse gespeichert", +"Invalid email" => "Ungültige E-Mail Adresse", "OpenID Changed" => "OpenID geändert", "Invalid request" => "Ungültige Anfrage", "Unable to delete group" => "Gruppe konnte nicht gelöscht werden", @@ -19,46 +19,46 @@ "__language_name__" => "Deutsch", "Security Warning" => "Sicherheitshinweis", "Your data directory and your files are probably accessible from the internet. The .htaccess file that ownCloud provides is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "Ihr Datenverzeichnis ist möglicher Weise aus dem Internet erreichbar. Die .htaccess-Datei von ownCloud funktioniert nicht. Wir raten Ihnen dringend, dass Sie Ihren Webserver dahingehend konfigurieren, dass Ihr Datenverzeichnis nicht länger aus dem Internet erreichbar ist, oder Sie verschieben das Datenverzeichnis außerhalb des Wurzelverzeichnisses des Webservers.", -"Cron" => "Cron", -"Execute one task with each page loaded" => "Führe eine Aufgabe pro geladener Seite aus.", -"cron.php is registered at a webcron service. Call the cron.php page in the owncloud root once a minute over http." => "cron.php ist bei einem Webcron-Dienst registriert. Rufen Sie die Seite cron.php im ownCloud-Root minütlich per HTTP auf.", -"Use systems cron service. Call the cron.php file in the owncloud folder via a system cronjob once a minute." => "Benutzen Sie den System-Crondienst. Rufen Sie die cron.php im ownCloud-Ordner über einen System-Cronjob minütlich auf.", +"Cron" => "Cron-Jobs", +"Execute one task with each page loaded" => "Führe eine Aufgabe bei jeder geladenen Seite aus.", +"cron.php is registered at a webcron service. Call the cron.php page in the owncloud root once a minute over http." => "cron.php ist bei einem Webcron-Dienst registriert. Ruf die Seite cron.php im ownCloud-Root minütlich per HTTP auf.", +"Use systems cron service. Call the cron.php file in the owncloud folder via a system cronjob once a minute." => "Benutze den System-Crondienst. Bitte ruf die cron.php im ownCloud-Ordner über einen System-Cronjob minütlich auf.", "Sharing" => "Freigabe", -"Enable Share API" => "Teilungs-API aktivieren", -"Allow apps to use the Share API" => "Erlaubt Nutzern, die Teilungs-API zu nutzen", +"Enable Share API" => "Freigabe-API aktivieren", +"Allow apps to use the Share API" => "Erlaubt Anwendungen, die Freigabe-API zu nutzen", "Allow links" => "Links erlauben", -"Allow users to share items to the public with links" => "Erlaube Nutzern, Dateien mithilfe von Links mit der Öffentlichkeit zu teilen", +"Allow users to share items to the public with links" => "Erlaube Nutzern, Dateien mithilfe von Links öffentlich zu teilen", "Allow resharing" => "Erneutes Teilen erlauben", "Allow users to share items shared with them again" => "Erlaubt Nutzern, Dateien die mit ihnen geteilt wurden, erneut zu teilen", -"Allow users to share with anyone" => "Erlaube Nutzern mit jedem zu Teilen", -"Allow users to only share with users in their groups" => "Erlaube Nutzern nur das Teilen in ihrer Gruppe", +"Allow users to share with anyone" => "Erlaubet Nutzern mit jedem zu Teilen", +"Allow users to only share with users in their groups" => "Erlaubet Nutzern nur das Teilen in ihrer Gruppe", "Log" => "Log", "More" => "Mehr", "Developed by the ownCloud community, the source code is licensed under the AGPL." => "Entwickelt von der ownCloud-Community, der Quellcode ist unter der AGPL lizenziert.", -"Add your App" => "Fügen Sie Ihre App hinzu", -"Select an App" => "Wählen Sie eine Anwendung aus", -"See application page at apps.owncloud.com" => "Weitere Anwendungen finden Sie auf apps.owncloud.com", +"Add your App" => "Füge Deine Anwendung hinzu", +"Select an App" => "Wähle eine Anwendung aus", +"See application page at apps.owncloud.com" => "Weitere Anwendungen findest Du auf apps.owncloud.com", "-licensed by " => "-lizenziert von ", "Documentation" => "Dokumentation", "Managing Big Files" => "Große Dateien verwalten", -"Ask a question" => "Stellen Sie eine Frage", +"Ask a question" => "Stelle eine Frage", "Problems connecting to help database." => "Probleme bei der Verbindung zur Hilfe-Datenbank.", "Go there manually." => "Datenbank direkt besuchen.", "Answer" => "Antwort", -"You have used %s of the available %s" => "Sie verwenden %s der verfügbaren %s", +"You have used %s of the available %s" => "Du verwendest %s der verfügbaren %s", "Desktop and Mobile Syncing Clients" => "Desktop- und mobile Clients für die Synchronisation", "Download" => "Download", -"Your password was changed" => "Ihr Passwort wurde geändert.", +"Your password was changed" => "Dein Passwort wurde geändert.", "Unable to change your password" => "Passwort konnte nicht geändert werden", "Current password" => "Aktuelles Passwort", "New password" => "Neues Passwort", "show" => "zeigen", "Change password" => "Passwort ändern", "Email" => "E-Mail", -"Your email address" => "Ihre E-Mail-Adresse", -"Fill in an email address to enable password recovery" => "Tragen Sie eine E-Mail-Adresse ein, um die Passwort-Wiederherstellung zu aktivieren.", +"Your email address" => "Deine E-Mail-Adresse", +"Fill in an email address to enable password recovery" => "Trage eine E-Mail-Adresse ein, um die Passwort-Wiederherstellung zu aktivieren.", "Language" => "Sprache", -"Help translate" => "Helfen Sie bei der Übersetzung", +"Help translate" => "Hilf bei der Übersetzung", "use this address to connect to your ownCloud in your file manager" => "Benutzen Sie diese Adresse, um Ihre ownCloud mit Ihrem Dateimanager zu verbinden.", "Name" => "Name", "Password" => "Passwort", diff --git a/settings/l10n/zh_CN.php b/settings/l10n/zh_CN.php index 41f22776885..31063d3a01b 100644 --- a/settings/l10n/zh_CN.php +++ b/settings/l10n/zh_CN.php @@ -1,24 +1,24 @@ "无法从应用商店载入列表", "Authentication error" => "认证错误", -"Group already exists" => "已存在组", -"Unable to add group" => "不能添加组", +"Group already exists" => "已存在该组", +"Unable to add group" => "无法添加组", "Could not enable app. " => "无法开启App", "Email saved" => "电子邮件已保存", "Invalid email" => "无效的电子邮件", "OpenID Changed" => "OpenID 已修改", "Invalid request" => "非法请求", -"Unable to delete group" => "不能删除组", -"Unable to delete user" => "不能删除用户", +"Unable to delete group" => "无法删除组", +"Unable to delete user" => "无法删除用户", "Language changed" => "语言已修改", -"Unable to add user to group %s" => "不能把用户添加到组 %s", -"Unable to remove user from group %s" => "不能从组%s中移除用户", +"Unable to add user to group %s" => "无法把用户添加到组 %s", +"Unable to remove user from group %s" => "无法从组%s中移除用户", "Disable" => "禁用", "Enable" => "启用", "Saving..." => "正在保存", "__language_name__" => "简体中文", "Security Warning" => "安全警告", -"Your data directory and your files are probably accessible from the internet. The .htaccess file that ownCloud provides is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "您的数据文件夹和文件可由互联网访问。OwnCloud提供的.htaccess文件未生效。我们强烈建议您配置服务器,以使数据文件夹不可被访问,或者将数据文件夹移到web服务器以外。", +"Your data directory and your files are probably accessible from the internet. The .htaccess file that ownCloud provides is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "您的数据文件夹和文件可由互联网访问。OwnCloud提供的.htaccess文件未生效。我们强烈建议您配置服务器,以使数据文件夹不可被访问,或者将数据文件夹移到web服务器根目录以外。", "Cron" => "计划任务", "Execute one task with each page loaded" => "每次页面加载完成后执行任务", "cron.php is registered at a webcron service. Call the cron.php page in the owncloud root once a minute over http." => "cron.php已被注册到网络定时任务服务。通过http每分钟调用owncloud根目录的cron.php网页。", @@ -45,8 +45,10 @@ "Problems connecting to help database." => "连接帮助数据库错误 ", "Go there manually." => "手动访问", "Answer" => "回答", +"You have used %s of the available %s" => "您已使用空间: %s,总空间: %s", "Desktop and Mobile Syncing Clients" => "桌面和移动设备同步程序", "Download" => "下载", +"Your password was changed" => "密码已修改", "Unable to change your password" => "无法修改密码", "Current password" => "当前密码", "New password" => "新密码", @@ -57,7 +59,7 @@ "Fill in an email address to enable password recovery" => "填写电子邮件地址以启用密码恢复", "Language" => "语言", "Help translate" => "帮助翻译", -"use this address to connect to your ownCloud in your file manager" => "在文件管理器中使用这个地址来连接到您的 ownCloud", +"use this address to connect to your ownCloud in your file manager" => "您可在文件管理器中使用该地址连接到ownCloud", "Name" => "名称", "Password" => "密码", "Groups" => "组", -- cgit v1.2.3 From 743826bbf34b82b92371cf7e9b0478897188c046 Mon Sep 17 00:00:00 2001 From: Christian Reiner Date: Fri, 28 Sep 2012 13:30:44 +0200 Subject: Reimplementation of CSRF protection including autorefresh --- core/ajax/requesttoken.php | 41 +++++++++++++++++++++++++++++++ core/js/eventsource.js | 2 +- core/js/requesttoken.js | 55 ++++++++++++++++++++++++++++++++++++++++++ core/templates/layout.user.php | 9 ++----- lib/base.php | 2 ++ lib/template.php | 6 ----- lib/util.php | 36 +++++++++++++++++++-------- 7 files changed, 127 insertions(+), 24 deletions(-) create mode 100644 core/ajax/requesttoken.php create mode 100644 core/js/requesttoken.js (limited to 'lib') diff --git a/core/ajax/requesttoken.php b/core/ajax/requesttoken.php new file mode 100644 index 00000000000..96d5402e621 --- /dev/null +++ b/core/ajax/requesttoken.php @@ -0,0 +1,41 @@ + +* +* This library is free software; you can redistribute it and/or +* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE +* License as published by the Free Software Foundation; either +* version 3 of the license, or any later version. +* +* This library 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 AFFERO GENERAL PUBLIC LICENSE for more details. +* +* You should have received a copy of the GNU Affero General Public +* License along with this library. +* If not, see . +* +*/ + +/** + * @file core/ajax/requesttoken.php + * @brief Ajax method to retrieve a fresh request protection token for ajax calls + * @return json: success/error state indicator including a fresh request token + * @author Christian Reiner + */ +require_once '../../lib/base.php'; + +// don't load apps or filesystem for this task +$RUNTIME_NOAPPS = TRUE; +$RUNTIME_NOSETUPFS = TRUE; + +// Sanity checks +// using OCP\JSON::callCheck() below protects the token refreshing itself. +//OCP\JSON::callCheck ( ); +OCP\JSON::checkLoggedIn ( ); +// hand out a fresh token +OCP\JSON::success ( array ( 'token' => OCP\Util::callRegister() ) ); +?> diff --git a/core/js/eventsource.js b/core/js/eventsource.js index e3ad7e3a671..45c63715a7e 100644 --- a/core/js/eventsource.js +++ b/core/js/eventsource.js @@ -40,7 +40,7 @@ OC.EventSource=function(src,data){ dataStr+=name+'='+encodeURIComponent(data[name])+'&'; } } - dataStr+='requesttoken='+OC.EventSource.requesttoken; + dataStr+='requesttoken='+OC.Request.Token; if(!this.useFallBack && typeof EventSource !='undefined'){ this.source=new EventSource(src+'?'+dataStr); this.source.onmessage=function(e){ diff --git a/core/js/requesttoken.js b/core/js/requesttoken.js new file mode 100644 index 00000000000..0d78cd7e93b --- /dev/null +++ b/core/js/requesttoken.js @@ -0,0 +1,55 @@ +/** + * ownCloud + * + * @file core/js/requesttoken.js + * @brief Routine to refresh the Request protection request token periodically + * @author Christian Reiner (arkascha) + * @copyright 2011-2012 Christian Reiner + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the license, or any later version. + * + * This library 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 AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. + * If not, see . + * + */ + +OC.Request = { + // the request token + Token: {}, + // the lifespan span (in secs) + Lifespan: {}, + // method to refresh the local request token periodically + Refresh: function(){ + // just a client side console log to preserve efficiency + console.log("refreshing request token (lifebeat)"); + var dfd=new $.Deferred(); + $.ajax({ + type: 'POST', + url: OC.filePath('core','ajax','requesttoken.php'), + cache: false, + data: { }, + dataType: 'json' + }).done(function(response){ + // store refreshed token inside this class + OC.Request.Token=response.token; + dfd.resolve(); + }).fail(dfd.reject); + return dfd; + } +} +// accept requesttoken and lifespan into the OC namespace +OC.Request.Token = oc_requesttoken; +OC.Request.Lifespan = oc_requestlifespan; +// refresh the request token periodically shortly before it becomes invalid on the server side +setInterval(OC.Request.Refresh,Math.floor(1000*OC.Request.Lifespan*0.93)), // 93% of lifespan value, close to when the token expires +// early bind token as additional ajax argument for every single request +$(document).bind('ajaxSend', function(elm, xhr, s){xhr.setRequestHeader('requesttoken', OC.Request.Token);}); diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index 679be2657d4..25af64c8d57 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -11,6 +11,8 @@ var oc_webroot = ''; var oc_appswebroots = ; var oc_current_user = ''; + var oc_requesttoken = ''; + var oc_requestlifespan = ''; @@ -24,13 +26,6 @@ echo '/>'; ?> - diff --git a/lib/base.php b/lib/base.php index f6afc8fe2fe..5a2decc6f63 100644 --- a/lib/base.php +++ b/lib/base.php @@ -240,6 +240,8 @@ class OC{ OC_Util::addScript( "jquery-tipsy" ); OC_Util::addScript( "oc-dialogs" ); OC_Util::addScript( "js" ); + // request protection token MUST be defined after the jquery library but before any $('document').ready() + OC_Util::addScript( "requesttoken" ); OC_Util::addScript( "eventsource" ); OC_Util::addScript( "config" ); //OC_Util::addScript( "multiselect" ); diff --git a/lib/template.php b/lib/template.php index 0987d6f0d88..0033683b66f 100644 --- a/lib/template.php +++ b/lib/template.php @@ -155,9 +155,6 @@ class OC_Template{ $this->renderas = $renderas; $this->application = $app; $this->vars = array(); - if($renderas == 'user') { - $this->vars['requesttoken'] = OC_Util::callRegister(); - } $parts = explode('/', $app); // fix translation when app is something like core/lostpassword $this->l10n = OC_L10N::get($parts[0]); header('X-Frame-Options: Sameorigin'); @@ -372,9 +369,6 @@ class OC_Template{ if( $this->renderas ) { $page = new OC_TemplateLayout($this->renderas); - if($this->renderas == 'user') { - $page->assign('requesttoken', $this->vars['requesttoken']); - } // Add custom headers $page->assign('headers',$this->headers, false); diff --git a/lib/util.php b/lib/util.php index 08412464254..b14664c9d1e 100755 --- a/lib/util.php +++ b/lib/util.php @@ -416,14 +416,29 @@ class OC_Util { } /** - * @brief Register an get/post call. This is important to prevent CSRF attacks - * Todo: Write howto + * @brief Static lifespan (in seconds) when a request token expires. + * @see OC_Util::callRegister() + * @see OC_Util::isCallRegistered() + * @description + * Also required for the client side to compute the piont in time when to + * request a fresh token. The client will do so when nearly 97% of the + * timespan coded here has expired. + */ + public static $callLifespan = 3600; // 3600 secs = 1 hour + + /** + * @brief Register an get/post call. Important to prevent CSRF attacks. + * @todo Write howto: CSRF protection guide * @return $token Generated token. + * @description + * Creates a 'request token' (random) and stores it inside the session. + * Ever subsequent (ajax) request must use such a valid token to succeed, + * otherwise the request will be denied as a protection against CSRF. + * The tokens expire after a fixed lifespan. + * @see OC_Util::$callLifespan + * @see OC_Util::isCallRegistered() */ public static function callRegister() { - //mamimum time before token exires - $maxtime=(60*60); // 1 hour - // generate a random token. $token=mt_rand(1000,9000).mt_rand(1000,9000).mt_rand(1000,9000); @@ -436,7 +451,8 @@ class OC_Util { foreach($_SESSION as $key=>$value) { // search all tokens in the session if(substr($key,0,12)=='requesttoken') { - if($value+$maxtime Date: Fri, 28 Sep 2012 17:44:46 +0200 Subject: move back to "lastmodified" property since "getlastmodified" is protected by webdav --- lib/connector/sabre/node.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/connector/sabre/node.php b/lib/connector/sabre/node.php index 55fa0dfde66..bdedc030c88 100644 --- a/lib/connector/sabre/node.php +++ b/lib/connector/sabre/node.php @@ -23,8 +23,7 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IProperties { const GETETAG_PROPERTYNAME = '{DAV:}getetag'; - const LASTMODIFIED_PROPERTYNAME_DEPRECIATED = '{DAV:}lastmodified'; // FIXME: keept for the transition period, can be removed for OC 4.5.1 if the sync client update too - const GETLASTMODIFIED_PROPERTYNAME = '{DAV:}getlastmodified'; + const LASTMODIFIED_PROPERTYNAME = '{DAV:}lastmodified'; /** * The path to the current node @@ -151,9 +150,8 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr $query->execute( array( OC_User::getUser(), $this->path, $propertyName )); } } - else { //FIXME: first part of if statement can be removed together with the LASTMODIFIED_PROPERTYNAME_DEPRECIATED const for oc4.5.1 if the sync client was updated too - if( strcmp( $propertyName, self::LASTMODIFIED_PROPERTYNAME_DEPRECIATED) === 0 || - strcmp( $propertyName, self::GETLASTMODIFIED_PROPERTYNAME) === 0 ) { + else { + if( strcmp( $propertyName, self::LASTMODIFIED_PROPERTYNAME) === 0 ) { $this->touch($propertyValue); } else { if(!array_key_exists( $propertyName, $existing )) { -- cgit v1.2.3 From 35357f3afb90dec1d0a9755ab0e0504a916c5e5a Mon Sep 17 00:00:00 2001 From: Björn Schießle Date: Fri, 28 Sep 2012 18:47:54 +0200 Subject: etag has to be removed after version rollback to enable the sync client to detect the changes (bug #1829) --- lib/filesystem.php | 9 ++++++++- lib/filesystemview.php | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/filesystem.php b/lib/filesystem.php index f5c10923b32..5516aae3976 100644 --- a/lib/filesystem.php +++ b/lib/filesystem.php @@ -521,12 +521,19 @@ class OC_Filesystem{ return self::$defaultInstance->hasUpdated($path,$time); } - static public function removeETagHook($params) { + static public function removeETagHook($params, $root = false) { if (isset($params['path'])) { $path=$params['path']; } else { $path=$params['oldpath']; } + + if (root) { // reduce path to the required part of it (no 'username/files') + $fakeRootView = new OC_FilesystemView($root); + $count = 1; + $path=str_replace(OC_App::getStorage("files")->getAbsolutePath(), "", $fakeRootView->getAbsolutePath($path), $count); + } + $path = self::normalizePath($path); OC_Connector_Sabre_Node::removeETagPropertyForPath($path); } diff --git a/lib/filesystemview.php b/lib/filesystemview.php index 02a0b521053..2950ced5f9e 100644 --- a/lib/filesystemview.php +++ b/lib/filesystemview.php @@ -451,8 +451,9 @@ class OC_FilesystemView { OC_Filesystem::signal_post_write, array( OC_Filesystem::signal_param_path => $path2) ); - } else { // no real copy, file comes from somewhere else, e.g. version rollback -> just update the file cache without all the other post_write actions + } else { // no real copy, file comes from somewhere else, e.g. version rollback -> just update the file cache and the webdav properties without all the other post_write actions OC_FileCache_Update::update($path2, $this->fakeRoot); + OC_Filesystem::removeETagHook(array("path" => $path2), $this->fakeRoot); } return $result; } -- cgit v1.2.3 From 71454b1bca0accd1ab5d7628169d4714bb682030 Mon Sep 17 00:00:00 2001 From: Christian Reiner Date: Fri, 28 Sep 2012 18:57:20 +0200 Subject: Fix to preserve backward compatibility for apps creating static links containing the request token (currently the contacts app and maybe some 3rd party implementations) --- core/templates/layout.user.php | 4 ++-- lib/template.php | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/core/templates/layout.user.php b/core/templates/layout.user.php index 25af64c8d57..b6d8a7604a2 100644 --- a/core/templates/layout.user.php +++ b/core/templates/layout.user.php @@ -11,8 +11,8 @@ var oc_webroot = ''; var oc_appswebroots = ; var oc_current_user = ''; - var oc_requesttoken = ''; - var oc_requestlifespan = ''; + var oc_requesttoken = ''; + var oc_requestlifespan = ''; diff --git a/lib/template.php b/lib/template.php index 0033683b66f..681b3f0b140 100644 --- a/lib/template.php +++ b/lib/template.php @@ -155,6 +155,10 @@ class OC_Template{ $this->renderas = $renderas; $this->application = $app; $this->vars = array(); + if($renderas == 'user') { + $this->vars['requesttoken'] = OC_Util::callRegister(); + $this->vars['requestlifespan'] = OC_Util::$callLifespan; + } $parts = explode('/', $app); // fix translation when app is something like core/lostpassword $this->l10n = OC_L10N::get($parts[0]); header('X-Frame-Options: Sameorigin'); @@ -369,6 +373,10 @@ class OC_Template{ if( $this->renderas ) { $page = new OC_TemplateLayout($this->renderas); + if($this->renderas == 'user') { + $page->assign('requesttoken', $this->vars['requesttoken']); + $page->assign('requestlifespan', $this->vars['requestlifespan']); + } // Add custom headers $page->assign('headers',$this->headers, false); -- cgit v1.2.3 From 366ae6661d1491a7f3db9396e05fd24034a1102f Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Fri, 28 Sep 2012 21:14:59 +0200 Subject: Simplify generating file search results --- lib/search/provider/file.php | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'lib') diff --git a/lib/search/provider/file.php b/lib/search/provider/file.php index 135e40667b1..e21278f3918 100644 --- a/lib/search/provider/file.php +++ b/lib/search/provider/file.php @@ -5,29 +5,35 @@ class OC_Search_Provider_File extends OC_Search_Provider{ $files=OC_FileCache::search($query,true); $results=array(); foreach($files as $fileData) { - $file=$fileData['path']; - $mime=$fileData['mimetype']; + $path = $fileData['path']; + $mime = $fileData['mimetype']; + + $name = basename($path); + $text = ''; if($mime=='httpd/unix-directory') { - $results[]=new OC_Search_Result(basename($file),'',OC_Helper::linkTo( 'files', 'index.php', array('dir' => $file)),'Files'); + $link = OC_Helper::linkTo( 'files', 'index.php', array('dir' => $path)); + $type = 'Files'; }else{ - $mimeBase=$fileData['mimepart']; + $link = OC_Helper::linkTo( 'files', 'download.php', array('file' => $path)); + $mimeBase = $fileData['mimepart']; switch($mimeBase) { case 'audio': break; case 'text': - $results[]=new OC_Search_Result(basename($file),'',OC_Helper::linkTo( 'files', 'download.php', array('file' => $file) ),'Text'); + $type = 'Text'; break; case 'image': - $results[]=new OC_Search_Result(basename($file),'',OC_Helper::linkTo( 'files', 'download.php', array('file' => $file) ),'Images'); + $type = 'Images'; break; default: if($mime=='application/xml') { - $results[]=new OC_Search_Result(basename($file),'',OC_Helper::linkTo( 'files', 'download.php', array('file' => $file) ),'Text'); + $type = 'Text'; }else{ - $results[]=new OC_Search_Result(basename($file),'',OC_Helper::linkTo( 'files', 'download.php', array('file' => $file) ),'Files'); + $type = 'Files'; } } } + $results[] = new OC_Search_Result($name, $text, $link, $type); } return $results; } -- cgit v1.2.3 From 24bb7d16b7f72b4438cb79ff55cdcd4a5e66062c Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Fri, 28 Sep 2012 21:15:48 +0200 Subject: urlencode filename in search result, fixes problems with & in name --- lib/search/provider/file.php | 1 + 1 file changed, 1 insertion(+) (limited to 'lib') diff --git a/lib/search/provider/file.php b/lib/search/provider/file.php index e21278f3918..21fae0c1ce5 100644 --- a/lib/search/provider/file.php +++ b/lib/search/provider/file.php @@ -10,6 +10,7 @@ class OC_Search_Provider_File extends OC_Search_Provider{ $name = basename($path); $text = ''; + $path = urlencode($path); if($mime=='httpd/unix-directory') { $link = OC_Helper::linkTo( 'files', 'index.php', array('dir' => $path)); $type = 'Files'; -- cgit v1.2.3 From fed34aecfa5b36c031ed754ed245549aa4a4194b Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Fri, 28 Sep 2012 21:30:06 +0200 Subject: Fix syntax error in removeETagHook --- lib/filesystem.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/filesystem.php b/lib/filesystem.php index 5516aae3976..c6da826a339 100644 --- a/lib/filesystem.php +++ b/lib/filesystem.php @@ -527,13 +527,13 @@ class OC_Filesystem{ } else { $path=$params['oldpath']; } - - if (root) { // reduce path to the required part of it (no 'username/files') - $fakeRootView = new OC_FilesystemView($root); - $count = 1; + + if ($root) { // reduce path to the required part of it (no 'username/files') + $fakeRootView = new OC_FilesystemView($root); + $count = 1; $path=str_replace(OC_App::getStorage("files")->getAbsolutePath(), "", $fakeRootView->getAbsolutePath($path), $count); } - + $path = self::normalizePath($path); OC_Connector_Sabre_Node::removeETagPropertyForPath($path); } -- cgit v1.2.3 From 22d22d19c079f54cf12a6b47981c22aa1432346d Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Fri, 28 Sep 2012 22:27:52 +0200 Subject: Do urlencoding in linkTo functions --- apps/files_versions/templates/history.php | 2 +- core/lostpassword/index.php | 2 +- lib/helper.php | 4 +++- lib/public/util.php | 2 ++ lib/search/provider/file.php | 1 - lib/util.php | 2 +- 6 files changed, 8 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/apps/files_versions/templates/history.php b/apps/files_versions/templates/history.php index 99bc153a816..854d032da62 100644 --- a/apps/files_versions/templates/history.php +++ b/apps/files_versions/templates/history.php @@ -22,7 +22,7 @@ if( isset( $_['message'] ) ) { foreach ( $_['versions'] as $v ) { echo ' '; echo OCP\Util::formatDate( doubleval($v['version']) ); - echo ' Revert

'; + echo ' Revert

'; if ( $v['cur'] ) { echo ' (Current)'; } echo '

'; } diff --git a/core/lostpassword/index.php b/core/lostpassword/index.php index 3f58b03c982..8da86d5a360 100644 --- a/core/lostpassword/index.php +++ b/core/lostpassword/index.php @@ -17,7 +17,7 @@ if (isset($_POST['user'])) { OC_Preferences::setValue($_POST['user'], 'owncloud', 'lostpassword', $token); $email = OC_Preferences::getValue($_POST['user'], 'settings', 'email', ''); if (!empty($email) and isset($_POST['sectoken']) and isset($_SESSION['sectoken']) and ($_POST['sectoken']==$_SESSION['sectoken']) ) { - $link = OC_Helper::linkToAbsolute('core/lostpassword', 'resetpassword.php', array('user' => urlencode($_POST['user']), 'token' => $token)); + $link = OC_Helper::linkToAbsolute('core/lostpassword', 'resetpassword.php', array('user' => $_POST['user'], 'token' => $token)); $tmpl = new OC_Template('core/lostpassword', 'email'); $tmpl->assign('link', $link, false); $msg = $tmpl->fetchPage(); diff --git a/lib/helper.php b/lib/helper.php index 3bb30620175..8e578735f4c 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -33,6 +33,7 @@ class OC_Helper { * @param string $app app * @param string $file file * @param array $args array with param=>value, will be appended to the returned url + * The value of $args will be urlencoded * @return string the url * * Returns a url to the given app and file. @@ -65,7 +66,7 @@ class OC_Helper { if (!empty($args)) { $urlLinkTo .= '?'; foreach($args as $k => $v) { - $urlLinkTo .= '&'.$k.'='.$v; + $urlLinkTo .= '&'.$k.'='.urlencode($v); } } @@ -77,6 +78,7 @@ class OC_Helper { * @param string $app app * @param string $file file * @param array $args array with param=>value, will be appended to the returned url + * The value of $args will be urlencoded * @return string the url * * Returns a absolute url to the given app and file. diff --git a/lib/public/util.php b/lib/public/util.php index 747448e62eb..38da7e82171 100644 --- a/lib/public/util.php +++ b/lib/public/util.php @@ -116,6 +116,7 @@ class Util { * @param $app app * @param $file file * @param $args array with param=>value, will be appended to the returned url + * The value of $args will be urlencoded * @returns the url * * Returns a absolute url to the given app and file. @@ -151,6 +152,7 @@ class Util { * @param $app app * @param $file file * @param $args array with param=>value, will be appended to the returned url + * The value of $args will be urlencoded * @returns the url * * Returns a url to the given app and file. diff --git a/lib/search/provider/file.php b/lib/search/provider/file.php index 21fae0c1ce5..e21278f3918 100644 --- a/lib/search/provider/file.php +++ b/lib/search/provider/file.php @@ -10,7 +10,6 @@ class OC_Search_Provider_File extends OC_Search_Provider{ $name = basename($path); $text = ''; - $path = urlencode($path); if($mime=='httpd/unix-directory') { $link = OC_Helper::linkTo( 'files', 'index.php', array('dir' => $path)); $type = 'Files'; diff --git a/lib/util.php b/lib/util.php index 777cb7a28fc..d1227f8379c 100755 --- a/lib/util.php +++ b/lib/util.php @@ -344,7 +344,7 @@ class OC_Util { public static function checkLoggedIn() { // Check if we are a user if( !OC_User::isLoggedIn()) { - header( 'Location: '.OC_Helper::linkToAbsolute( '', 'index.php', array('redirect_url' => urlencode($_SERVER["REQUEST_URI"])))); + header( 'Location: '.OC_Helper::linkToAbsolute( '', 'index.php', array('redirect_url' => $_SERVER["REQUEST_URI"]))); exit(); } } -- cgit v1.2.3 From dc66e94ee3c14e73f0a4f5f79722e0855add71e1 Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Sat, 29 Sep 2012 02:04:55 +0200 Subject: [tx-robot] updated from transifex --- core/l10n/de.php | 6 ++++ core/l10n/oc.php | 6 ++++ l10n/de/core.po | 16 +++++----- l10n/oc/core.po | 18 +++++------ l10n/oc/lib.po | 59 +++++++++++++++++++------------------ l10n/templates/core.pot | 2 +- l10n/templates/files.pot | 2 +- l10n/templates/files_encryption.pot | 2 +- l10n/templates/files_external.pot | 2 +- l10n/templates/files_sharing.pot | 2 +- l10n/templates/files_versions.pot | 2 +- l10n/templates/lib.pot | 2 +- l10n/templates/settings.pot | 2 +- l10n/templates/user_ldap.pot | 2 +- lib/l10n/oc.php | 24 +++++++++++++++ 15 files changed, 92 insertions(+), 55 deletions(-) create mode 100644 lib/l10n/oc.php (limited to 'lib') diff --git a/core/l10n/de.php b/core/l10n/de.php index b781c3055cd..8697967274f 100644 --- a/core/l10n/de.php +++ b/core/l10n/de.php @@ -25,14 +25,20 @@ "Error while sharing" => "Fehler beim Freigeben", "Error while unsharing" => "Fehler beim Aufheben der Freigabe", "Error while changing permissions" => "Fehler beim Ändern der Rechte", +"Shared with you and the group" => "Mit Dir und der Gruppe geteilt", +"by" => "mit", +"Shared with you by" => "Dies wurde mit dir geteilt von", "Share with" => "Freigeben für", "Share with link" => "Über einen Link freigeben", "Password protect" => "Passwortschutz", "Password" => "Passwort", "Set expiration date" => "Setze ein Ablaufdatum", "Expiration date" => "Ablaufdatum", +"Share via email:" => "Über eine E-Mail freigeben:", "No people found" => "Niemand gefunden", "Resharing is not allowed" => "Weiterverteilen ist nicht erlaubt", +"Shared in" => "Geteilt mit", +"with" => "mit", "Unshare" => "Freigabe aufheben", "can edit" => "kann bearbeiten", "access control" => "Zugriffskontrolle", diff --git a/core/l10n/oc.php b/core/l10n/oc.php index be743b9bc24..328cc0b60ba 100644 --- a/core/l10n/oc.php +++ b/core/l10n/oc.php @@ -25,14 +25,20 @@ "Error while sharing" => "Error al partejar", "Error while unsharing" => "Error al non partejar", "Error while changing permissions" => "Error al cambiar permissions", +"Shared with you and the group" => "Partejat amb tu e lo grop", +"by" => "per", +"Shared with you by" => "Partejat amb tu per", "Share with" => "Parteja amb", "Share with link" => "Parteja amb lo ligam", "Password protect" => "Parat per senhal", "Password" => "Senhal", "Set expiration date" => "Met la data d'expiracion", "Expiration date" => "Data d'expiracion", +"Share via email:" => "Parteja tras corrièl :", "No people found" => "Deguns trobat", "Resharing is not allowed" => "Tornar partejar es pas permis", +"Shared in" => "Partejat dins", +"with" => "amb", "Unshare" => "Non parteje", "can edit" => "pòt modificar", "access control" => "Contraròtle d'acces", diff --git a/l10n/de/core.po b/l10n/de/core.po index 56f595bdd47..66450ff6920 100644 --- a/l10n/de/core.po +++ b/l10n/de/core.po @@ -20,8 +20,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-28 23:34+0200\n" -"PO-Revision-Date: 2012-09-28 21:34+0000\n" +"POT-Creation-Date: 2012-09-29 02:02+0200\n" +"PO-Revision-Date: 2012-09-28 21:40+0000\n" "Last-Translator: I Robot \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" @@ -137,15 +137,15 @@ msgstr "Fehler beim Ändern der Rechte" #: js/share.js:130 msgid "Shared with you and the group" -msgstr "" +msgstr "Mit Dir und der Gruppe geteilt" #: js/share.js:130 msgid "by" -msgstr "" +msgstr "mit" #: js/share.js:132 msgid "Shared with you by" -msgstr "" +msgstr "Dies wurde mit dir geteilt von" #: js/share.js:137 msgid "Share with" @@ -173,7 +173,7 @@ msgstr "Ablaufdatum" #: js/share.js:185 msgid "Share via email:" -msgstr "" +msgstr "Über eine E-Mail freigeben:" #: js/share.js:187 msgid "No people found" @@ -185,11 +185,11 @@ msgstr "Weiterverteilen ist nicht erlaubt" #: js/share.js:250 msgid "Shared in" -msgstr "" +msgstr "Geteilt mit" #: js/share.js:250 msgid "with" -msgstr "" +msgstr "mit" #: js/share.js:271 msgid "Unshare" diff --git a/l10n/oc/core.po b/l10n/oc/core.po index ba10a2ee6d9..f2a698077ea 100644 --- a/l10n/oc/core.po +++ b/l10n/oc/core.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-28 23:34+0200\n" -"PO-Revision-Date: 2012-09-28 21:34+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-09-29 02:02+0200\n" +"PO-Revision-Date: 2012-09-28 22:00+0000\n" +"Last-Translator: tartafione \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -125,15 +125,15 @@ msgstr "Error al cambiar permissions" #: js/share.js:130 msgid "Shared with you and the group" -msgstr "" +msgstr "Partejat amb tu e lo grop" #: js/share.js:130 msgid "by" -msgstr "" +msgstr "per" #: js/share.js:132 msgid "Shared with you by" -msgstr "" +msgstr "Partejat amb tu per" #: js/share.js:137 msgid "Share with" @@ -161,7 +161,7 @@ msgstr "Data d'expiracion" #: js/share.js:185 msgid "Share via email:" -msgstr "" +msgstr "Parteja tras corrièl :" #: js/share.js:187 msgid "No people found" @@ -173,11 +173,11 @@ msgstr "Tornar partejar es pas permis" #: js/share.js:250 msgid "Shared in" -msgstr "" +msgstr "Partejat dins" #: js/share.js:250 msgid "with" -msgstr "" +msgstr "amb" #: js/share.js:271 msgid "Unshare" diff --git a/l10n/oc/lib.po b/l10n/oc/lib.po index 499df461d8e..e3081d2cff9 100644 --- a/l10n/oc/lib.po +++ b/l10n/oc/lib.po @@ -3,13 +3,14 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-08 02:02+0200\n" -"PO-Revision-Date: 2012-07-27 22:23+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-09-29 02:02+0200\n" +"PO-Revision-Date: 2012-09-28 22:27+0000\n" +"Last-Translator: tartafione \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,41 +20,41 @@ msgstr "" #: app.php:285 msgid "Help" -msgstr "" +msgstr "Ajuda" #: app.php:292 msgid "Personal" -msgstr "" +msgstr "Personal" #: app.php:297 msgid "Settings" -msgstr "" +msgstr "Configuracion" #: app.php:302 msgid "Users" -msgstr "" +msgstr "Usancièrs" #: app.php:309 msgid "Apps" -msgstr "" +msgstr "Apps" #: app.php:311 msgid "Admin" -msgstr "" +msgstr "Admin" -#: files.php:280 +#: files.php:327 msgid "ZIP download is turned off." -msgstr "" +msgstr "Avalcargar los ZIP es inactiu." -#: files.php:281 +#: files.php:328 msgid "Files need to be downloaded one by one." -msgstr "" +msgstr "Los fichièrs devan èsser avalcargats un per un." -#: files.php:281 files.php:306 +#: files.php:328 files.php:353 msgid "Back to Files" -msgstr "" +msgstr "Torna cap als fichièrs" -#: files.php:305 +#: files.php:352 msgid "Selected files too large to generate zip file." msgstr "" @@ -63,7 +64,7 @@ msgstr "" #: json.php:39 json.php:63 json.php:75 msgid "Authentication error" -msgstr "" +msgstr "Error d'autentificacion" #: json.php:51 msgid "Token expired. Please reload page." @@ -71,45 +72,45 @@ msgstr "" #: template.php:87 msgid "seconds ago" -msgstr "" +msgstr "segonda a" #: template.php:88 msgid "1 minute ago" -msgstr "" +msgstr "1 minuta a" #: template.php:89 #, php-format msgid "%d minutes ago" -msgstr "" +msgstr "%d minutas a" #: template.php:92 msgid "today" -msgstr "" +msgstr "uèi" #: template.php:93 msgid "yesterday" -msgstr "" +msgstr "ièr" #: template.php:94 #, php-format msgid "%d days ago" -msgstr "" +msgstr "%d jorns a" #: template.php:95 msgid "last month" -msgstr "" +msgstr "mes passat" #: template.php:96 msgid "months ago" -msgstr "" +msgstr "meses a" #: template.php:97 msgid "last year" -msgstr "" +msgstr "an passat" #: template.php:98 msgid "years ago" -msgstr "" +msgstr "ans a" #: updater.php:66 #, php-format @@ -118,8 +119,8 @@ msgstr "" #: updater.php:68 msgid "up to date" -msgstr "" +msgstr "a jorn" #: updater.php:71 msgid "updates check is disabled" -msgstr "" +msgstr "la verificacion de mesa a jorn es inactiva" diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index f15044cd26a..4cedff9db61 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-28 23:34+0200\n" +"POT-Creation-Date: 2012-09-29 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index 3478e30c028..da5985a6d14 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-28 23:34+0200\n" +"POT-Creation-Date: 2012-09-29 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index 82a1a4e13e0..9a41187b71d 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-28 23:34+0200\n" +"POT-Creation-Date: 2012-09-29 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index cf3ff5e7142..2638af8efce 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-28 23:34+0200\n" +"POT-Creation-Date: 2012-09-29 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index dd9c84e97bc..c1e994b1974 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-28 23:34+0200\n" +"POT-Creation-Date: 2012-09-29 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index 6b676a4ab9c..a4b7d0e753b 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-28 23:34+0200\n" +"POT-Creation-Date: 2012-09-29 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index fe3c84d18cc..870ec568fb3 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-28 23:34+0200\n" +"POT-Creation-Date: 2012-09-29 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index bc3373b8670..01e0d574f86 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-28 23:34+0200\n" +"POT-Creation-Date: 2012-09-29 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index 20119254824..aadc7f0a6b1 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-09-28 23:34+0200\n" +"POT-Creation-Date: 2012-09-29 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/lib/l10n/oc.php b/lib/l10n/oc.php new file mode 100644 index 00000000000..ffc0588becc --- /dev/null +++ b/lib/l10n/oc.php @@ -0,0 +1,24 @@ + "Ajuda", +"Personal" => "Personal", +"Settings" => "Configuracion", +"Users" => "Usancièrs", +"Apps" => "Apps", +"Admin" => "Admin", +"ZIP download is turned off." => "Avalcargar los ZIP es inactiu.", +"Files need to be downloaded one by one." => "Los fichièrs devan èsser avalcargats un per un.", +"Back to Files" => "Torna cap als fichièrs", +"Authentication error" => "Error d'autentificacion", +"seconds ago" => "segonda a", +"1 minute ago" => "1 minuta a", +"%d minutes ago" => "%d minutas a", +"today" => "uèi", +"yesterday" => "ièr", +"%d days ago" => "%d jorns a", +"last month" => "mes passat", +"months ago" => "meses a", +"last year" => "an passat", +"years ago" => "ans a", +"up to date" => "a jorn", +"updates check is disabled" => "la verificacion de mesa a jorn es inactiva" +); -- cgit v1.2.3 From bd804b74c46ed6779bf82a506711b48644a197f4 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Sat, 29 Sep 2012 15:03:09 +0200 Subject: mt_rand() is not secure from a security point of view and predictable. Let's use openssl_random_pseudo_bytes() instead. Before: 26 bits entropy After: 72 bits entropy --- lib/util.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/util.php b/lib/util.php index d1227f8379c..15e6f2824e5 100755 --- a/lib/util.php +++ b/lib/util.php @@ -440,7 +440,9 @@ class OC_Util { */ public static function callRegister() { // generate a random token. - $token=mt_rand(1000,9000).mt_rand(1000,9000).mt_rand(1000,9000); + $bytes = openssl_random_pseudo_bytes(10, $cstrong); + $hex = bin2hex($bytes); + $token = $hex; // store the token together with a timestamp in the session. $_SESSION['requesttoken-'.$token]=time(); -- cgit v1.2.3 From 578aa4e42546a81e572ecda2061e238d34a4f421 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Sat, 29 Sep 2012 15:18:38 +0200 Subject: Removed sectoken This token is completly useless since an attacker can easily extract it from the page. --- core/templates/login.php | 1 - lib/base.php | 6 +----- lib/util.php | 3 --- 3 files changed, 1 insertion(+), 9 deletions(-) (limited to 'lib') diff --git a/core/templates/login.php b/core/templates/login.php index 2c9b766aa4d..bedff4453b0 100644 --- a/core/templates/login.php +++ b/core/templates/login.php @@ -12,7 +12,6 @@

/> -

diff --git a/lib/base.php b/lib/base.php index 5a2decc6f63..b89859ab2dd 100644 --- a/lib/base.php +++ b/lib/base.php @@ -528,11 +528,7 @@ class OC{ } protected static function tryFormLogin() { - if(!isset($_POST["user"]) - || !isset($_POST['password']) - || !isset($_SESSION['sectoken']) - || !isset($_POST['sectoken']) - || ($_SESSION['sectoken']!=$_POST['sectoken']) ) { + if(!isset($_POST["user"]) || !isset($_POST['password'])) { return false; } diff --git a/lib/util.php b/lib/util.php index 15e6f2824e5..29ab2c34e96 100755 --- a/lib/util.php +++ b/lib/util.php @@ -314,9 +314,6 @@ class OC_Util { $parameters["username"] = ''; $parameters['user_autofocus'] = true; } - $sectoken=rand(1000000,9999999); - $_SESSION['sectoken']=$sectoken; - $parameters["sectoken"] = $sectoken; if (isset($_REQUEST['redirect_url'])) { $redirect_url = OC_Util::sanitizeHTML($_REQUEST['redirect_url']); } else { -- cgit v1.2.3 From 992c2c9d4bc20db1dc8170dcc60dc4438dc55eb0 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Sat, 29 Sep 2012 15:41:13 +0200 Subject: mt_rand() is not secure from a cryptographic point of view, let's use openssl_random_pseudo_bytes() here --- lib/setup.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/setup.php b/lib/setup.php index c21c8be3957..6d8430c1036 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -79,7 +79,8 @@ class OC_Setup { } //generate a random salt that is used to salt the local user passwords - $salt=mt_rand(1000,9000).mt_rand(1000,9000).mt_rand(1000,9000).mt_rand(1000,9000).mt_rand(1000,9000).mt_rand(1000,9000).mt_rand(1000,9000).mt_rand(1000,9000); + $random_bytes = openssl_random_pseudo_bytes(30, $cstrong); + $salt = bin2hex($random_bytes); OC_Config::setValue('passwordsalt', $salt); //write the config file -- cgit v1.2.3 From ef57e9294b52b838f65c9896c6d85c2f8663c90b Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Sat, 29 Sep 2012 16:44:02 +0200 Subject: Fallback for systems without openssl --- core/lostpassword/index.php | 2 +- lib/setup.php | 3 +-- lib/util.php | 32 ++++++++++++++++++++++++++++---- 3 files changed, 30 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/core/lostpassword/index.php b/core/lostpassword/index.php index 7c6d51d99b8..4cd8b9079fd 100644 --- a/core/lostpassword/index.php +++ b/core/lostpassword/index.php @@ -13,7 +13,7 @@ require_once '../../lib/base.php'; // Someone lost their password: if (isset($_POST['user'])) { if (OC_User::userExists($_POST['user'])) { - $token = hash("sha256", $_POST['user'].openssl_random_pseudo_bytes(10, $cstrong)); + $token = hash("sha256", $_POST['user'].OC_Util::generate_random_bytes(10)); OC_Preferences::setValue($_POST['user'], 'owncloud', 'lostpassword', $token); $email = OC_Preferences::getValue($_POST['user'], 'settings', 'email', ''); if (!empty($email)) { diff --git a/lib/setup.php b/lib/setup.php index 6d8430c1036..16b9ec68df6 100644 --- a/lib/setup.php +++ b/lib/setup.php @@ -79,8 +79,7 @@ class OC_Setup { } //generate a random salt that is used to salt the local user passwords - $random_bytes = openssl_random_pseudo_bytes(30, $cstrong); - $salt = bin2hex($random_bytes); + $salt = OC_Util::generate_random_bytes(30); OC_Config::setValue('passwordsalt', $salt); //write the config file diff --git a/lib/util.php b/lib/util.php index 29ab2c34e96..310ca6afec9 100755 --- a/lib/util.php +++ b/lib/util.php @@ -437,9 +437,7 @@ class OC_Util { */ public static function callRegister() { // generate a random token. - $bytes = openssl_random_pseudo_bytes(10, $cstrong); - $hex = bin2hex($bytes); - $token = $hex; + $token = self::generate_random_bytes(20); // store the token together with a timestamp in the session. $_SESSION['requesttoken-'.$token]=time(); @@ -550,4 +548,30 @@ class OC_Util { } } -} + /* + * @brief Generates random bytes with "openssl_random_pseudo_bytes" with a fallback for systems without openssl + * Inspired by gorgo on php.net + * @param Int with the length of the random + * @return String with the random bytes + */ + public static function generate_random_bytes($length = 30) { + if(function_exists('openssl_random_pseudo_bytes')) { + $pseudo_byte = bin2hex(openssl_random_pseudo_bytes($length, $strong)); + if($strong == TRUE) { + return substr($pseudo_byte, 0, $length); // Truncate it to match the length + } + } + + // fallback to mt_rand() + $characters = '0123456789'; + $characters .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; + $charactersLength = strlen($characters)-1; + $pseudo_byte = ""; + + // Select some random characters + for ($i = 0; $i < $length; $i++) { + $pseudo_byte .= $characters[mt_rand(0, $charactersLength)]; + } + return $pseudo_byte; + } +} \ No newline at end of file -- cgit v1.2.3 From e8afb3d31290ce70bd1c7b86331b2dcc7f1c2376 Mon Sep 17 00:00:00 2001 From: Lukas Reschke Date: Sun, 30 Sep 2012 00:08:20 +0300 Subject: Fix a typo --- lib/subadmin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/subadmin.php b/lib/subadmin.php index 363e4a97cad..9e83e6da430 100644 --- a/lib/subadmin.php +++ b/lib/subadmin.php @@ -172,7 +172,7 @@ class OC_SubAdmin{ } /** - * @brief delete all SubAdmins8 by gid + * @brief delete all SubAdmins by gid * @param $parameters * @return boolean */ -- cgit v1.2.3 From f8eebcbb011269a36fe4b10f21b73dec4b076bff Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 30 Sep 2012 03:47:37 +0200 Subject: reload the current url when login in instead of always redirecting to the default app (oc-1873) --- core/templates/login.php | 2 +- lib/base.php | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/core/templates/login.php b/core/templates/login.php index bedff4453b0..bb7a8337523 100644 --- a/core/templates/login.php +++ b/core/templates/login.php @@ -1,5 +1,5 @@ -
+
'; } ?> diff --git a/lib/base.php b/lib/base.php index b89859ab2dd..41ff1870059 100644 --- a/lib/base.php +++ b/lib/base.php @@ -549,7 +549,8 @@ class OC{ else { OC_User::unsetMagicInCookie(); } - OC_Util::redirectToDefaultPage(); + header( 'Location: '.$_SERVER['REQUEST_URI'] ); + exit(); } return true; } -- cgit v1.2.3 From 258782584e490b92ccfcf032921aa7062a28da9f Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 30 Sep 2012 03:58:58 +0200 Subject: fix mimetype detection using the 'file' command in some edge cases --- lib/helper.php | 1 + 1 file changed, 1 insertion(+) (limited to 'lib') diff --git a/lib/helper.php b/lib/helper.php index 8e578735f4c..908a61b5a2d 100644 --- a/lib/helper.php +++ b/lib/helper.php @@ -370,6 +370,7 @@ class OC_Helper { //trim the character set from the end of the response $mimeType=substr($reply,0,strrpos($reply,' ')); + $mimeType=substr($mimeType,0,strrpos($mimeType,"\n")); //trim ; if (strpos($mimeType, ';') !== false) { -- cgit v1.2.3 From 113c339c41663c692eae809ada23c4057f9e3ff0 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 30 Sep 2012 16:11:01 +0200 Subject: fix updating the filecache for when contents of a folder has changed --- lib/filecache/update.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/filecache/update.php b/lib/filecache/update.php index 2b64a2a90ff..1b81f70d77b 100644 --- a/lib/filecache/update.php +++ b/lib/filecache/update.php @@ -81,10 +81,13 @@ class OC_FileCache_Update{ $dh=$view->opendir($path.'/'); if($dh) {//check for changed/new files while (($filename = readdir($dh)) !== false) { - if($filename != '.' and $filename != '..') { + if($filename != '.' and $filename != '..' and $filename != '') { $file=$path.'/'.$filename; - if(self::hasUpdated($file, $root)) { - if($root===false) {//filesystem hooks are only valid for the default root + $isDir=$view->is_dir($file); + if(self::hasUpdated($file, $root, $isDir)) { + if($isDir){ + self::updateFolder($file, $root); + }elseif($root===false) {//filesystem hooks are only valid for the default root OC_Hook::emit('OC_Filesystem', 'post_write', array('path'=>$file)); }else{ self::update($file, $root); @@ -136,7 +139,7 @@ class OC_FileCache_Update{ } /** - * update the filecache according to changes to the fileysystem + * update the filecache according to changes to the filesystem * @param string path * @param string root (optional) */ @@ -211,4 +214,4 @@ class OC_FileCache_Update{ OC_FileCache::increaseSize(dirname($newPath), $oldSize, $root); OC_FileCache::move($oldPath, $newPath); } -} \ No newline at end of file +} -- cgit v1.2.3 From 91d12a2f3d860c25ae8daa0cfd838fd6deba5dec Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 30 Sep 2012 16:12:16 +0200 Subject: update the filecache by setting mtimes to 0 when the mount configuration has changed instead of clearing the cache --- lib/filecache.php | 14 ++++++++++++++ lib/filesystem.php | 4 ++-- lib/util.php | 4 ++-- 3 files changed, 18 insertions(+), 4 deletions(-) (limited to 'lib') diff --git a/lib/filecache.php b/lib/filecache.php index 07099bcccd5..305ba035fb5 100644 --- a/lib/filecache.php +++ b/lib/filecache.php @@ -488,6 +488,20 @@ class OC_FileCache{ $query->execute(); } } + + /** + * trigger an update for the cache by setting the mtimes to 0 + * @param string $user (optional) + */ + public static function triggerUpdate($user=''){ + if($user) { + $query=OC_DB::prepare('UPDATE `*PREFIX*fscache` SET `mtime`=0 WHERE `user`=? AND `mimetype`="httpd/unix-directory"'); + $query->execute(array($user)); + }else{ + $query=OC_DB::prepare('UPDATE `*PREFIX*fscache` SET `mtime`=0 AND `mimetype`="httpd/unix-directory"'); + $query->execute(); + } + } } //watch for changes and try to keep the cache up to date diff --git a/lib/filesystem.php b/lib/filesystem.php index c6da826a339..6dbfc6a9bf4 100644 --- a/lib/filesystem.php +++ b/lib/filesystem.php @@ -240,7 +240,7 @@ class OC_Filesystem{ $mtime=filemtime(OC::$SERVERROOT.'/config/mount.php'); $previousMTime=OC_Appconfig::getValue('files','mountconfigmtime',0); if($mtime>$previousMTime) {//mount config has changed, filecache needs to be updated - OC_FileCache::clear(); + OC_FileCache::triggerUpdate(); OC_Appconfig::setValue('files','mountconfigmtime',$mtime); } } @@ -531,7 +531,7 @@ class OC_Filesystem{ if ($root) { // reduce path to the required part of it (no 'username/files') $fakeRootView = new OC_FilesystemView($root); $count = 1; - $path=str_replace(OC_App::getStorage("files")->getAbsolutePath(), "", $fakeRootView->getAbsolutePath($path), $count); + $path=str_replace(OC_App::getStorage("files")->getAbsolutePath($path), "", $fakeRootView->getAbsolutePath($path), $count); } $path = self::normalizePath($path); diff --git a/lib/util.php b/lib/util.php index 310ca6afec9..db715a7a0f3 100755 --- a/lib/util.php +++ b/lib/util.php @@ -62,7 +62,7 @@ class OC_Util { $mtime=filemtime($user_root.'/mount.php'); $previousMTime=OC_Preferences::getValue($user,'files','mountconfigmtime',0); if($mtime>$previousMTime) {//mount config has changed, filecache needs to be updated - OC_FileCache::clear($user); + OC_FileCache::triggerUpdate($user); OC_Preferences::setValue($user,'files','mountconfigmtime',$mtime); } } @@ -574,4 +574,4 @@ class OC_Util { } return $pseudo_byte; } -} \ No newline at end of file +} -- cgit v1.2.3