diff --git a/www/admin/inner.js b/www/admin/inner.js
index a4762bf50..597f8a7f3 100644
--- a/www/admin/inner.js
+++ b/www/admin/inner.js
@@ -196,7 +196,7 @@ define([
waitFor.abort();
return void UI.warn(Messages.admin_archiveInval);
}
- }));
+ }), true);
}).nThen(function () {
sFrameChan.query('Q_ADMIN_RPC', {
cmd: archive ? 'ARCHIVE_DOCUMENT' : 'RESTORE_ARCHIVED_DOCUMENT',
diff --git a/www/common/drive-ui.js b/www/common/drive-ui.js
index 4918269a8..3cec98027 100644
--- a/www/common/drive-ui.js
+++ b/www/common/drive-ui.js
@@ -50,6 +50,7 @@ define([
isMac: navigator.platform === "MacIntel",
allowFolderUpload: File.prototype.hasOwnProperty("webkitRelativePath"),
};
+ var onConnectEvt = Util.mkEvent(true);
var stringify = function (obj) {
return JSONSortify(obj);
@@ -280,6 +281,7 @@ define([
}
state = APP.online && !APP.history && state;
APP.editable = !APP.readOnly && state;
+ if (APP.editable) { onConnectEvt.fire(); }
if (!state) {
APP.$content.addClass('cp-app-drive-readonly');
@@ -4857,22 +4859,24 @@ define([
onClose: cb
});
};
- var deprecated = files.sharedFoldersTemp;
- if (typeof (deprecated) === "object" && APP.editable && Object.keys(deprecated).length) {
- Object.keys(deprecated).forEach(function (fId) {
- var data = deprecated[fId];
- var sfId = manager.user.userObject.getSFIdFromHref(data.href);
- if (folders[fId] || sfId) { // This shared folder is already stored in the drive...
- return void manager.delete([['sharedFoldersTemp', fId]], function () { });
- }
- nt = nt(function (waitFor) {
- UI.openCustomModal(passwordModal(fId, data, waitFor()));
- }).nThen;
- });
- nt(function () {
- refresh();
- });
- }
+ onConnectEvt.reg(function () {
+ var deprecated = files.sharedFoldersTemp;
+ if (typeof (deprecated) === "object" && Object.keys(deprecated).length) {
+ Object.keys(deprecated).forEach(function (fId) {
+ var data = deprecated[fId];
+ var sfId = manager.user.userObject.getSFIdFromHref(data.href);
+ if (folders[fId] || sfId) { // This shared folder is already stored in the drive...
+ return void manager.delete([['sharedFoldersTemp', fId]], function () { });
+ }
+ nt = nt(function (waitFor) {
+ UI.openCustomModal(passwordModal(fId, data, waitFor()));
+ }).nThen;
+ });
+ nt(function () {
+ refresh();
+ });
+ }
+ });
return {
refresh: refresh,
diff --git a/www/common/inner/properties.js b/www/common/inner/properties.js
index da527c8e4..f5780d4c2 100644
--- a/www/common/inner/properties.js
+++ b/www/common/inner/properties.js
@@ -91,7 +91,7 @@ define([
console.error(e);
}
bytes += _bytes;
- }));
+ }), true);
});
if (!owned) { return; }
diff --git a/www/common/sframe-common.js b/www/common/sframe-common.js
index 34d95fad0..6fecd26f0 100644
--- a/www/common/sframe-common.js
+++ b/www/common/sframe-common.js
@@ -185,8 +185,9 @@ define([
});
};
- funcs.getFileSize = function (channelId, cb) {
+ funcs.getFileSize = function (channelId, cb, noCache) {
nThen(function (waitFor) {
+ if (channelId.length < 48 || noCache) { return; }
ctx.cache.getBlobCache(channelId, waitFor(function(err, blob) {
if (err) { return; }
waitFor.abort();
diff --git a/www/common/translations/messages.fr.json b/www/common/translations/messages.fr.json
index 6f7961daf..7ceefbaa6 100644
--- a/www/common/translations/messages.fr.json
+++ b/www/common/translations/messages.fr.json
@@ -1498,5 +1498,13 @@
"history_trimPrompt": "Ce document a accumulé {0} d'historique qui peut ralentir le temps de chargement. Envisagez de supprimer l'historique s'il n'est pas nécessaire.",
"contacts_confirmCancel": "Êtes-vous sûr de vouloir annuler votre demande de contact avec {0} ?",
"share_noContactsOffline": "Vous êtes déconnecté. Les contacts ne sont pas disponibles.",
- "access_offline": "Vous êtes déconnecté. La gestion de l'accès n'est pas disponible."
+ "access_offline": "Vous êtes déconnecté. La gestion de l'accès n'est pas disponible.",
+ "admin_support_last": "Mis à jour le : ",
+ "admin_support_collapse": "Réduire",
+ "admin_support_first": "Créé le : ",
+ "admin_support_open": "Montrer",
+ "admin_support_closed": "Tickets fermé :",
+ "admin_support_answered": "Tickets traité :",
+ "admin_support_normal": "Tickets sans réponse :",
+ "admin_support_premium": "Tickets prime :"
}
diff --git a/www/common/translations/messages.zh.json b/www/common/translations/messages.zh.json
index 8e51e44ef..16c97ceee 100644
--- a/www/common/translations/messages.zh.json
+++ b/www/common/translations/messages.zh.json
@@ -110,11 +110,11 @@
"cancel": "取消",
"cancelButton": "取消 (esc)",
"historyButton": "顯示文件歷史",
- "history_next": "到下一個版本",
- "history_prev": "到之前的版本",
+ "history_next": "下个版本",
+ "history_prev": "先前版本",
"history_closeTitle": "關閉歷史記錄",
"history_restoreTitle": "將此文件重建到所挑選的版本",
- "history_restorePrompt": "確定要將這個展現的版本來取代現有版本嗎?",
+ "history_restorePrompt": "您确定要用显示的版本替换文档的当前版本吗?",
"history_restoreDone": "文件已重建",
"history_version": "版本:",
"poll_title": "零知識日期挑選",
@@ -173,8 +173,8 @@
"fm_openParent": "顯示在目錄夾中",
"fm_noname": "無標題文件",
"fm_emptyTrashDialog": "確定要清理垃圾筒嗎?",
- "fm_removeSeveralPermanentlyDialog": "確定要將這些 {0} 東西永自垃圾筒移除嗎?",
- "fm_removePermanentlyDialog": "你確定要永久地移除這些項目嗎?",
+ "fm_removeSeveralPermanentlyDialog": "您确定要从您的驱动器中删除这些{0}项目吗? 它们将留在已存储它们的其他用户的驱动器中。",
+ "fm_removePermanentlyDialog": "您确定要从驱动器中删除此项目吗?它将保留在已存储它的其他用户的驱动器中。",
"fm_removeSeveralDialog": "確定要將這些 {0} 東西移至垃圾筒嗎?",
"fm_removeDialog": "確定要將移動 {0} 至垃圾筒嗎?",
"fm_restoreDialog": "確定要重置 {0} 到它之前的位置嗎?",
@@ -187,7 +187,7 @@
"fm_info_template": "包含所有工作檔案已存成模版,便於讓你在建立新工作檔案時套用。",
"fm_info_trash": "清空垃圾筒好讓 CryptDrive 多出一些空間",
"fm_info_allFiles": "包含在 \"根目錄\", \"未整理的\" 和 \"垃圾筒\" 裏的所有檔案。這裏你無法移動或移除檔案。",
- "fm_info_anonymous": "你尚未登入,因此這些工作檔案可能會被刪除。 (了解原因). 註冊或登入以便保留它們。",
+ "fm_info_anonymous": "您没有登录,所以您的文档将在{0}天后过期。清除你的浏览器历史记录可能会使它们消失。
注册 (无需个人信息) 或登录以无限期地把它们储存在你的硬盘里。 阅读更多关于注册帐户。",
"fm_alert_backupUrl": "這個雲端硬碟的備份連結
高度建議把自己的 IP 資訊保留成只有自己知道
萬一瀏覽器記憶被消除,你可以用它來接收所有的檔案。
任何知道此連結的人可以編輯或移除你檔案管理底下的所有檔案。
",
"fm_alert_anonymous": "嗨你好, 你目前正以匿名方式在使用 CryptPad , 這也沒問題,不過你的東西過一段時間沒動靜後,就會自動被刪除。 匿名的用戶我們也取消其進階功能,因為我們要明確地讓用戶知道,這裏 不是一個安全存放東西的地方。你可以 進一步了解 關於 為何我們這樣作,以及為何你最好能夠註冊 以及 登錄使用。",
"fm_backup_title": "備份連結",
@@ -199,7 +199,7 @@
"fc_open_ro": "打開 (唯讀)",
"fc_delete": "刪除",
"fc_restore": "重置",
- "fc_remove": "永久刪除",
+ "fc_remove": "刪除",
"fc_empty": "清理垃圾筒",
"fc_prop": "Properties",
"fc_sizeInKilobytes": "容量大小 (Kilobytes)",
@@ -263,14 +263,14 @@
"settings_pinningNotAvailable": "工作檔案置頂功能只開放給已註冊用戶",
"settings_pinningError": "有點不對勁",
"settings_usageAmount": "你置頂的工作檔案佔了 {0}MB",
- "settings_logoutEverywhereTitle": "自所有地點登出",
+ "settings_logoutEverywhereTitle": "关闭远程会话",
"settings_logoutEverywhere": "自所有其它的網頁期間登出",
"settings_logoutEverywhereConfirm": "你確定嗎?你將需要登入到所有用到設置。",
"upload_serverError": "伺服器出錯:本次無法上傳你的檔案",
"upload_uploadPending": "你欲上傳檔案正在傳輸中,要取消並上傳新檔案嗎?",
"upload_success": "你的檔案 ({0}) 已成功地上傳並放入到你的網路磁碟中。",
"upload_notEnoughSpace": "你的 CryptDrive 無足夠空間來存放這個檔案。",
- "upload_tooLarge": "此檔案超過了上傳單一檔案可允許的容量上限。",
+ "upload_tooLarge": "该文件超过了您的帐户允许的最大上传大小。",
"upload_choose": "選擇一個檔案",
"upload_pending": "待處理",
"upload_cancelled": "已取消的",
@@ -313,7 +313,7 @@
"header_logoTitle": "回到主頁",
"driveReadmeTitle": "什麼是 CryptPad?",
"readme_welcome": "歡迎來到 CryptPad !",
- "readme_p1": "歡迎來到 CryptPad, 這裏你可以獨自作個人筆記或是和別人共享協作。",
+ "readme_p1": "欢迎来到 CryptPad,在这里你可以单独或和联系人一起记录事情。",
"readme_p2": "這個工作檔案可以讓你快速地了解如何使用 CryptPad 作筆記,有效地整理管理文件工作檔案。",
"readme_cat1": "認識如何使用 CryptDrive",
"readme_cat1_l1": "建立一個工作檔案: 在 CryptDrive 底下, 點擊 {0} 然後 {1} 這樣就可以建立一個新的工作檔案。",
@@ -353,7 +353,7 @@
"exportButton": "导出",
"importButton": "导入",
"forgotten": "移到垃圾箱",
- "initializing": "初始化中",
+ "initializing": "初始化中…",
"typing": "编辑中",
"profile_editDescription": "编辑描述",
"profile_addDescription": "添加描述",