mirror of
https://github.com/haiwen/seahub.git
synced 2025-04-27 19:05:16 +00:00
Optimized translate module (#4044)
* combine dtable translate * update cdoc html * optimized code
This commit is contained in:
parent
54b8044056
commit
64b7222bd2
1
.gitignore
vendored
1
.gitignore
vendored
@ -59,6 +59,7 @@ tags
|
||||
|
||||
frontend/webpack-stats.dev.json
|
||||
frontend/node_modules
|
||||
frontend/build
|
||||
frontend/package-lock.json
|
||||
|
||||
/.idea
|
||||
|
454
frontend/package-lock.json
generated
454
frontend/package-lock.json
generated
@ -184,9 +184,9 @@
|
||||
}
|
||||
},
|
||||
"@seafile/dtable": {
|
||||
"version": "0.0.140",
|
||||
"resolved": "https://registry.npmjs.org/@seafile/dtable/-/dtable-0.0.140.tgz",
|
||||
"integrity": "sha512-P3dhO+RXhIALLoJW3CccXal1GIt2P4eHiGafZrqROhceQhVT+jSjsYHRwkJUeHopFV6uUi4GQjm+DGCb3t1a9g==",
|
||||
"version": "0.0.145",
|
||||
"resolved": "https://registry.npmjs.org/@seafile/dtable/-/dtable-0.0.145.tgz",
|
||||
"integrity": "sha512-IVo+BUOdYtak/+2kLP+tD+zgHAjTRoqkLE2W2JYXsPmK1+zOgpNlo7QRcqTjP3gJ799cpip3KUMva1jxdsmR5g==",
|
||||
"requires": {
|
||||
"@babel/plugin-proposal-export-default-from": "^7.5.2",
|
||||
"@babel/plugin-proposal-export-namespace-from": "^7.5.2",
|
||||
@ -198,6 +198,9 @@
|
||||
"copy-to-clipboard": "^3.2.0",
|
||||
"deep-copy": "^1.4.2",
|
||||
"glamor": "^2.20.40",
|
||||
"i18next": "^17.0.13",
|
||||
"i18next-browser-languagedetector": "^3.0.3",
|
||||
"i18next-xhr-backend": "^3.1.2",
|
||||
"is-hotkey": "^0.1.4",
|
||||
"keymirror": "^0.1.1",
|
||||
"moment": "^2.24.0",
|
||||
@ -210,6 +213,7 @@
|
||||
"react-contextmenu": "^2.11.0",
|
||||
"react-dnd": "^2.6.0",
|
||||
"react-dnd-html5-backend": "^2.6.0",
|
||||
"react-i18next": "^10.12.2",
|
||||
"react-image-lightbox": "^5.1.0",
|
||||
"react-is-deprecated": "^0.1.2",
|
||||
"react-select": "^2.4.3",
|
||||
@ -238,351 +242,6 @@
|
||||
"react-lifecycles-compat": "^3.0.4"
|
||||
}
|
||||
},
|
||||
"@seafile/seafile-editor": {
|
||||
"version": "0.2.62",
|
||||
"resolved": "https://registry.npmjs.org/@seafile/seafile-editor/-/seafile-editor-0.2.62.tgz",
|
||||
"integrity": "sha512-DfcIrmmqGclXonJV0gJ3IT6COAEM42nwMVqAgsHgy5uZoZA5perWTs94lTzAlGjyYtJD83h6/VzFzb+cUQ6nOQ==",
|
||||
"requires": {
|
||||
"@seafile/seafile-calendar": "^0.0.6",
|
||||
"@seafile/slate-react": "^0.1.8",
|
||||
"autoprefixer": "7.1.6",
|
||||
"case-sensitive-paths-webpack-plugin": "2.1.1",
|
||||
"chalk": "1.1.3",
|
||||
"codemirror": "^5.37.0",
|
||||
"crypto-js": "^3.1.9-1",
|
||||
"css-loader": "0.28.7",
|
||||
"deep-equal": "^1.0.1",
|
||||
"deepmerge": "^2.1.0",
|
||||
"detect-indent": "^4.0.0",
|
||||
"detect-newline": "^2.1.0",
|
||||
"dotenv": "4.0.0",
|
||||
"dotenv-expand": "4.2.0",
|
||||
"ends-with": "^0.2.0",
|
||||
"extract-text-webpack-plugin": "3.0.2",
|
||||
"file-loader": "1.1.5",
|
||||
"fs-extra": "3.0.1",
|
||||
"glamor": "^2.20.40",
|
||||
"hast-util-sanitize": "^1.1.2",
|
||||
"html-webpack-plugin": "2.29.0",
|
||||
"i18next": "^11.3.2",
|
||||
"i18next-browser-languagedetector": "^2.2.0",
|
||||
"i18next-xhr-backend": "^1.5.1",
|
||||
"image-extensions": "^1.1.0",
|
||||
"immutable": "^3.8.2",
|
||||
"is-data-uri": "^0.1.0",
|
||||
"is-hotkey": "^0.1.3",
|
||||
"is-url": "^1.2.4",
|
||||
"jszip": "^3.2.1",
|
||||
"lodash": "^4.17.5",
|
||||
"mdast-util-definitions": "^1.2.2",
|
||||
"moment": "^2.22.2",
|
||||
"object-assign": "4.1.1",
|
||||
"package.json": "^2.0.1",
|
||||
"postcss-flexbugs-fixes": "3.2.0",
|
||||
"postcss-loader": "2.0.8",
|
||||
"prismjs": "^1.15.0",
|
||||
"promise": "8.0.1",
|
||||
"prop-types": "^15.6.1",
|
||||
"raf": "3.4.0",
|
||||
"react": "^16.2.0",
|
||||
"react-dev-utils": "^5.0.2",
|
||||
"react-dom": "^16.2.0",
|
||||
"react-i18next": "^7.6.1",
|
||||
"react-mentions": "^3.0.2",
|
||||
"react-s-alert": "^1.4.1",
|
||||
"react-select": "^2.4.2",
|
||||
"reactstrap": "^5.0.0-beta.3",
|
||||
"rehype-format": "^2.2.0",
|
||||
"rehype-raw": "^2.0.0",
|
||||
"rehype-stringify": "^3.0.0",
|
||||
"remark": "^9.0.0",
|
||||
"remark-breaks": "^1.0.0",
|
||||
"remark-parse": "^5.0.0",
|
||||
"remark-rehype": "^3.0.0",
|
||||
"remark-slug": "^5.0.0",
|
||||
"request": "^2.88.0",
|
||||
"seafile-js": "^0.2.97",
|
||||
"seafile-ui": "^0.1.10",
|
||||
"slate": "0.44.13",
|
||||
"slate-base64-serializer": "^0.2.72",
|
||||
"slate-hotkeys": "0.2.3",
|
||||
"slate-html-serializer": "0.7.2",
|
||||
"slate-schema-violations": "0.1.39",
|
||||
"socket.io-client": "^2.1.1",
|
||||
"style-loader": "0.19.0",
|
||||
"toggle-selection": "^1.0.6",
|
||||
"unified": "^6.1.6",
|
||||
"url-loader": "0.6.2",
|
||||
"url-parse": "^1.4.3",
|
||||
"valid-url": "^1.0.9",
|
||||
"xtend": "^4.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@seafile/seafile-calendar": {
|
||||
"version": "0.0.6",
|
||||
"resolved": "https://registry.npmjs.org/@seafile/seafile-calendar/-/seafile-calendar-0.0.6.tgz",
|
||||
"integrity": "sha512-lN/KwrmbQGtTdojdry12Z0ovcqqQwTHKBRrZrRuKaT8qEKX8i27y8R/wcV96dwUAOsXTKH2L3/kPgXL8N+G+eg==",
|
||||
"requires": {
|
||||
"babel-runtime": "6.x",
|
||||
"classnames": "2.x",
|
||||
"moment": "2.x",
|
||||
"prop-types": "^15.5.8",
|
||||
"rc-trigger": "^2.2.0",
|
||||
"rc-util": "^4.1.1",
|
||||
"react-lifecycles-compat": "^3.0.4"
|
||||
}
|
||||
},
|
||||
"ajv": {
|
||||
"version": "5.5.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
|
||||
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
|
||||
"requires": {
|
||||
"co": "^4.6.0",
|
||||
"fast-deep-equal": "^1.0.0",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.3.0"
|
||||
}
|
||||
},
|
||||
"autoprefixer": {
|
||||
"version": "7.1.6",
|
||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.1.6.tgz",
|
||||
"integrity": "sha512-C9yv/UF3X+eJTi/zvfxuyfxmLibYrntpF3qoJYrMeQwgUJOZrZvpJiMG2FMQ3qnhWtF/be4pYONBBw95ZGe3vA==",
|
||||
"requires": {
|
||||
"browserslist": "^2.5.1",
|
||||
"caniuse-lite": "^1.0.30000748",
|
||||
"normalize-range": "^0.1.2",
|
||||
"num2fraction": "^1.2.2",
|
||||
"postcss": "^6.0.13",
|
||||
"postcss-value-parser": "^3.2.3"
|
||||
}
|
||||
},
|
||||
"browserslist": {
|
||||
"version": "2.11.3",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.11.3.tgz",
|
||||
"integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==",
|
||||
"requires": {
|
||||
"caniuse-lite": "^1.0.30000792",
|
||||
"electron-to-chromium": "^1.3.30"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
||||
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
||||
"requires": {
|
||||
"ansi-styles": "^2.2.1",
|
||||
"escape-string-regexp": "^1.0.2",
|
||||
"has-ansi": "^2.0.0",
|
||||
"strip-ansi": "^3.0.0",
|
||||
"supports-color": "^2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
|
||||
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
|
||||
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
|
||||
}
|
||||
}
|
||||
},
|
||||
"cosmiconfig": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz",
|
||||
"integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==",
|
||||
"requires": {
|
||||
"is-directory": "^0.3.1",
|
||||
"js-yaml": "^3.4.3",
|
||||
"minimist": "^1.2.0",
|
||||
"object-assign": "^4.1.0",
|
||||
"os-homedir": "^1.0.1",
|
||||
"parse-json": "^2.2.0",
|
||||
"require-from-string": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"fast-deep-equal": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
|
||||
"integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
|
||||
},
|
||||
"i18next": {
|
||||
"version": "11.10.2",
|
||||
"resolved": "https://registry.npmjs.org/i18next/-/i18next-11.10.2.tgz",
|
||||
"integrity": "sha512-1rowdX8PqrvsdFhYb3v0A/LlIHLQL1HTa4ia29IzhvNAg2fesNV7R1jXibWLmLQdz3FfTB8RuqSqDEjIawXruA=="
|
||||
},
|
||||
"i18next-browser-languagedetector": {
|
||||
"version": "2.2.4",
|
||||
"resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-2.2.4.tgz",
|
||||
"integrity": "sha512-wPbtH18FdOuB245I8Bhma5/XSDdN/HpYlX+wga1eMy+slhaFQSnrWX6fp+aYSL2eEuj0RlfHeEVz6Fo/lxAj6A=="
|
||||
},
|
||||
"i18next-xhr-backend": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/i18next-xhr-backend/-/i18next-xhr-backend-1.5.1.tgz",
|
||||
"integrity": "sha512-9OLdC/9YxDvTFcgsH5t2BHCODHEotHCa6h7Ly0EUlUC7Y2GS09UeoHOGj3gWKQ3HCqXz8NlH4gOrK3NNc9vPuw=="
|
||||
},
|
||||
"json-schema-traverse": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
|
||||
"integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
|
||||
},
|
||||
"parse-json": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
|
||||
"integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
|
||||
"requires": {
|
||||
"error-ex": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"postcss": {
|
||||
"version": "6.0.23",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
|
||||
"integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
|
||||
"requires": {
|
||||
"chalk": "^2.4.1",
|
||||
"source-map": "^0.6.1",
|
||||
"supports-color": "^5.4.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"postcss-flexbugs-fixes": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.2.0.tgz",
|
||||
"integrity": "sha512-0AuD9HG1Ey3/3nqPWu9yqf7rL0KCPu5VgjDsjf5mzEcuo9H/z8nco/fljKgjsOUrZypa95MI0kS4xBZeBzz2lw==",
|
||||
"requires": {
|
||||
"postcss": "^6.0.1"
|
||||
}
|
||||
},
|
||||
"postcss-load-config": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz",
|
||||
"integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=",
|
||||
"requires": {
|
||||
"cosmiconfig": "^2.1.0",
|
||||
"object-assign": "^4.1.0",
|
||||
"postcss-load-options": "^1.2.0",
|
||||
"postcss-load-plugins": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"postcss-loader": {
|
||||
"version": "2.0.8",
|
||||
"resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.0.8.tgz",
|
||||
"integrity": "sha512-KtXBiQ/r/WYW8LxTSJK7h8wLqvCMSub/BqmRnud/Mu8RzwflW9cmXxwsMwbn15TNv287Hcufdb3ZSs7xHKnG8Q==",
|
||||
"requires": {
|
||||
"loader-utils": "^1.1.0",
|
||||
"postcss": "^6.0.0",
|
||||
"postcss-load-config": "^1.2.0",
|
||||
"schema-utils": "^0.3.0"
|
||||
}
|
||||
},
|
||||
"postcss-value-parser": {
|
||||
"version": "3.3.1",
|
||||
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
|
||||
"integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
|
||||
},
|
||||
"promise": {
|
||||
"version": "8.0.1",
|
||||
"resolved": "https://registry.npmjs.org/promise/-/promise-8.0.1.tgz",
|
||||
"integrity": "sha1-5F1osAoXZHttpxG/he1u1HII9FA=",
|
||||
"requires": {
|
||||
"asap": "~2.0.3"
|
||||
}
|
||||
},
|
||||
"react-i18next": {
|
||||
"version": "7.13.0",
|
||||
"resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-7.13.0.tgz",
|
||||
"integrity": "sha512-35M+MZFPqHwVIas7tXWQKFrf+ozCJukNplUTiGqL8mczSk+VRBsHxxXuuQKRkz/4CcWkONGWbp/AzxfM6wZncg==",
|
||||
"requires": {
|
||||
"hoist-non-react-statics": "^2.3.1",
|
||||
"html-parse-stringify2": "2.0.1",
|
||||
"prop-types": "^15.6.0"
|
||||
}
|
||||
},
|
||||
"react-popper": {
|
||||
"version": "0.8.3",
|
||||
"resolved": "https://registry.npmjs.org/react-popper/-/react-popper-0.8.3.tgz",
|
||||
"integrity": "sha1-D3MzMTfJ+wr27EB00tBYWgoEYeE=",
|
||||
"requires": {
|
||||
"popper.js": "^1.12.9",
|
||||
"prop-types": "^15.6.0"
|
||||
}
|
||||
},
|
||||
"reactstrap": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/reactstrap/-/reactstrap-5.0.0.tgz",
|
||||
"integrity": "sha512-y0eju/LAK7gbEaTFfq2iW92MF7/5Qh0tc1LgYr2mg92IX8NodGc03a+I+cp7bJ0VXHAiLy0bFL9UP89oSm4cBg==",
|
||||
"requires": {
|
||||
"classnames": "^2.2.3",
|
||||
"lodash.isfunction": "^3.0.9",
|
||||
"lodash.isobject": "^3.0.2",
|
||||
"lodash.tonumber": "^4.0.3",
|
||||
"prop-types": "^15.5.8",
|
||||
"react-popper": "^0.8.3",
|
||||
"react-transition-group": "^2.2.1"
|
||||
}
|
||||
},
|
||||
"schema-utils": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz",
|
||||
"integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=",
|
||||
"requires": {
|
||||
"ajv": "^5.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"@seafile/slate-react": {
|
||||
"version": "0.1.8",
|
||||
"resolved": "https://registry.npmjs.org/@seafile/slate-react/-/slate-react-0.1.8.tgz",
|
||||
"integrity": "sha512-IHHrEH0gTmZlZB4z6cB6eCsPkO6p558W6CG3ytQKwN8WOLkCJ/EQMtHcz5ZWPsAF+UvdpRUADqR48qfqD6bKJQ==",
|
||||
"requires": {
|
||||
"debug": "^3.1.0",
|
||||
"get-window": "^1.1.1",
|
||||
"is-window": "^1.0.2",
|
||||
"lodash": "^4.1.1",
|
||||
"memoize-one": "^4.0.0",
|
||||
"prop-types": "^15.5.8",
|
||||
"react-immutable-proptypes": "^2.1.0",
|
||||
"selection-is-backward": "^1.0.0",
|
||||
"slate-base64-serializer": "^0.2.95",
|
||||
"slate-dev-environment": "^0.2.1",
|
||||
"slate-hotkeys": "^0.2.8",
|
||||
"slate-plain-serializer": "^0.6.34",
|
||||
"slate-prop-types": "^0.5.25",
|
||||
"slate-react-placeholder": "^0.1.13",
|
||||
"tiny-invariant": "^1.0.1",
|
||||
"tiny-warning": "^0.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"memoize-one": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-4.0.3.tgz",
|
||||
"integrity": "sha512-QmpUu4KqDmX0plH4u+tf0riMc1KHE1+lw95cMrLlXQAFOx/xnBtwhZ52XJxd9X2O6kwKBqX32kmhbhlobD0cuw=="
|
||||
},
|
||||
"slate-hotkeys": {
|
||||
"version": "0.2.9",
|
||||
"resolved": "https://registry.npmjs.org/slate-hotkeys/-/slate-hotkeys-0.2.9.tgz",
|
||||
"integrity": "sha512-y+C/s5vJEmBxo8fIqHmUcdViGwALL/A6Qow3sNG1OHYD5SI11tC2gfYtGbPh+2q0H7O4lufffCmFsP5bMaDHqA==",
|
||||
"requires": {
|
||||
"is-hotkey": "0.1.4",
|
||||
"slate-dev-environment": "^0.2.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"ajv": {
|
||||
"version": "6.10.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
|
||||
@ -678,18 +337,10 @@
|
||||
"warning": "^4.0.3"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "3.2.6",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
|
||||
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
|
||||
"requires": {
|
||||
"ms": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"electron-to-chromium": {
|
||||
"version": "1.3.247",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.247.tgz",
|
||||
"integrity": "sha512-j/Rzx1FyVTwNifpG/DPQKEMz0mruRwoPpJ6Y1tTVmj6+/zAVzG8/YHZwBMLYCZgQH6seLOqaVxZ3RY3KMrT5IQ=="
|
||||
"version": "1.3.250",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.250.tgz",
|
||||
"integrity": "sha512-2OAU91iUw83QvzuWJPfT+FMj+O+DC1EyTx1QBFcc9WZzOQSfZEAWINpdLWElxkgfiqTvQRDOKg0DkMZd9QoNug=="
|
||||
},
|
||||
"esprima": {
|
||||
"version": "4.0.1",
|
||||
@ -725,21 +376,11 @@
|
||||
"resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz",
|
||||
"integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA=="
|
||||
},
|
||||
"minimist": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
|
||||
},
|
||||
"moment": {
|
||||
"version": "2.24.0",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
|
||||
"integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||
},
|
||||
"parse-json": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
|
||||
@ -860,26 +501,6 @@
|
||||
"ajv-keywords": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"slate": {
|
||||
"version": "0.44.13",
|
||||
"resolved": "https://registry.npmjs.org/slate/-/slate-0.44.13.tgz",
|
||||
"integrity": "sha512-GcDon/8iN6Mmonl7FucSDGs9KYDB7S9gs+fnnJDny5HFsHGGDTDwfBnRXMyKDC307sRZ+yhauqKSulHkoBdB9A==",
|
||||
"requires": {
|
||||
"debug": "^3.1.0",
|
||||
"direction": "^0.1.5",
|
||||
"esrever": "^0.2.0",
|
||||
"is-plain-object": "^2.0.4",
|
||||
"lodash": "^4.17.4",
|
||||
"tiny-invariant": "^1.0.1",
|
||||
"tiny-warning": "^0.0.3",
|
||||
"type-of": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"slate-prop-types": {
|
||||
"version": "0.5.41",
|
||||
"resolved": "https://registry.npmjs.org/slate-prop-types/-/slate-prop-types-0.5.41.tgz",
|
||||
"integrity": "sha512-fLcXlugO9btF5b/by+dA+n8fn2mET75VGWltqFNxGdl6ncyBtrGspWA7mLVRFSqQWOS/Ig4A3URCRumOBBCUfQ=="
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
@ -888,37 +509,6 @@
|
||||
"has-flag": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"unified": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/unified/-/unified-6.2.0.tgz",
|
||||
"integrity": "sha512-1k+KPhlVtqmG99RaTbAv/usu85fcSRu3wY8X+vnsEhIxNP5VbVIDiXnLqyKIG+UMdyTg0ZX9EI6k2AfjJkHPtA==",
|
||||
"requires": {
|
||||
"bail": "^1.0.0",
|
||||
"extend": "^3.0.0",
|
||||
"is-plain-obj": "^1.1.0",
|
||||
"trough": "^1.0.0",
|
||||
"vfile": "^2.0.0",
|
||||
"x-is-string": "^0.1.0"
|
||||
}
|
||||
},
|
||||
"vfile": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/vfile/-/vfile-2.3.0.tgz",
|
||||
"integrity": "sha512-ASt4mBUHcTpMKD/l5Q+WJXNtshlWxOogYyGYYrg4lt/vuRjC1EFQtlAofL5VmtVNIZJzWYFJjzGWZ0Gw8pzW1w==",
|
||||
"requires": {
|
||||
"is-buffer": "^1.1.4",
|
||||
"replace-ext": "1.0.0",
|
||||
"unist-util-stringify-position": "^1.0.0",
|
||||
"vfile-message": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"is-buffer": {
|
||||
"version": "1.1.6",
|
||||
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
|
||||
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"warning": {
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
|
||||
@ -954,9 +544,9 @@
|
||||
}
|
||||
},
|
||||
"@seafile/seafile-editor": {
|
||||
"version": "0.2.69",
|
||||
"resolved": "https://registry.npmjs.org/@seafile/seafile-editor/-/seafile-editor-0.2.69.tgz",
|
||||
"integrity": "sha512-RQOaoQIKo8CMLSa/V8vbjrIf+yyNf3lnHl4D4H+BmJtDjwCrgypa8n1wZI3wqa4PoK15RmCkfKIrcVh2JuejyQ==",
|
||||
"version": "0.2.72",
|
||||
"resolved": "https://registry.npmjs.org/@seafile/seafile-editor/-/seafile-editor-0.2.72.tgz",
|
||||
"integrity": "sha512-joCJtRfxRyxEMnIuLxv3Z2UaHOcaLqZ8zzhfKrpI0FCIFqdSvWxzHGLIGLKfD0q7kC+AG+Ut9ZJSLzTY0HAVcA==",
|
||||
"requires": {
|
||||
"@seafile/seafile-calendar": "^0.0.6",
|
||||
"@seafile/slate-react": "^0.1.8",
|
||||
@ -8417,9 +8007,9 @@
|
||||
}
|
||||
},
|
||||
"hoist-non-react-statics": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.0.tgz",
|
||||
"integrity": "sha512-6Bl6XsDT1ntE0lHbIhr4Kp2PGcleGZ66qu5Jqk8lc0Xc/IeG6gVLmwUGs/K0Us+L8VWoKgj0uWdPMataOsm31w=="
|
||||
"version": "2.5.5",
|
||||
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz",
|
||||
"integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw=="
|
||||
},
|
||||
"home-or-tmp": {
|
||||
"version": "2.0.0",
|
||||
@ -13797,9 +13387,9 @@
|
||||
}
|
||||
},
|
||||
"electron-to-chromium": {
|
||||
"version": "1.3.247",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.247.tgz",
|
||||
"integrity": "sha512-j/Rzx1FyVTwNifpG/DPQKEMz0mruRwoPpJ6Y1tTVmj6+/zAVzG8/YHZwBMLYCZgQH6seLOqaVxZ3RY3KMrT5IQ=="
|
||||
"version": "1.3.250",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.250.tgz",
|
||||
"integrity": "sha512-2OAU91iUw83QvzuWJPfT+FMj+O+DC1EyTx1QBFcc9WZzOQSfZEAWINpdLWElxkgfiqTvQRDOKg0DkMZd9QoNug=="
|
||||
},
|
||||
"postcss": {
|
||||
"version": "7.0.17",
|
||||
@ -14203,9 +13793,9 @@
|
||||
}
|
||||
},
|
||||
"electron-to-chromium": {
|
||||
"version": "1.3.247",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.247.tgz",
|
||||
"integrity": "sha512-j/Rzx1FyVTwNifpG/DPQKEMz0mruRwoPpJ6Y1tTVmj6+/zAVzG8/YHZwBMLYCZgQH6seLOqaVxZ3RY3KMrT5IQ=="
|
||||
"version": "1.3.250",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.250.tgz",
|
||||
"integrity": "sha512-2OAU91iUw83QvzuWJPfT+FMj+O+DC1EyTx1QBFcc9WZzOQSfZEAWINpdLWElxkgfiqTvQRDOKg0DkMZd9QoNug=="
|
||||
},
|
||||
"postcss": {
|
||||
"version": "7.0.17",
|
||||
|
@ -4,9 +4,9 @@
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@reach/router": "^1.2.0",
|
||||
"@seafile/dtable": "0.0.140",
|
||||
"@seafile/dtable": "0.0.145",
|
||||
"@seafile/resumablejs": "^1.1.13",
|
||||
"@seafile/seafile-editor": "^0.2.69",
|
||||
"@seafile/seafile-editor": "^0.2.72",
|
||||
"MD5": "^1.3.0",
|
||||
"autoprefixer": "7.1.6",
|
||||
"classnames": "^2.2.6",
|
||||
|
@ -35,7 +35,7 @@ const useYarn = fs.existsSync(paths.yarnLockFile);
|
||||
const WARN_AFTER_BUNDLE_GZIP_SIZE = 512 * 1024;
|
||||
const WARN_AFTER_CHUNK_GZIP_SIZE = 1024 * 1024;
|
||||
|
||||
const localesPath = paths.appNodeModules + '/@seafile/seafile-editor/public/locales';
|
||||
const localesPath = '../media/assets/frontend/locales';
|
||||
const localesBuildPath = paths.appBuild + '/locales';
|
||||
// Warn and crash if required files are missing
|
||||
if (!checkRequiredFiles([paths.appIndexJs])) {
|
||||
|
42
frontend/src/i18n-dtable.js
Normal file
42
frontend/src/i18n-dtable.js
Normal file
@ -0,0 +1,42 @@
|
||||
import i18n from 'i18next';
|
||||
import Backend from 'i18next-xhr-backend';
|
||||
import LanguageDetector from 'i18next-browser-languagedetector';
|
||||
import { initReactI18next } from 'react-i18next';
|
||||
|
||||
let mediaUrl = window.app.pageOptions.mediaUrl;
|
||||
const lang = window.app.pageOptions.lang;
|
||||
|
||||
i18n
|
||||
.use(Backend)
|
||||
.use(LanguageDetector)
|
||||
.use(initReactI18next)
|
||||
.init({
|
||||
lng: lang,
|
||||
fallbackLng: 'en',
|
||||
ns: ['dtable', 'translations'],
|
||||
defaultNS: 'dtable',
|
||||
|
||||
whitelist: ['en', 'zh-CN', 'fr', 'de', 'cs', 'es', 'es-AR', 'es-MX', 'ru'],
|
||||
|
||||
backend: {
|
||||
loadPath: mediaUrl + 'assets/frontend/locales/{{ lng }}/{{ ns }}.json',
|
||||
// loadPath: '/media/locales/{{lng}}/{{ns}}.json',
|
||||
// loadPath: function(lng, ns) {
|
||||
},
|
||||
|
||||
debug: true, // console log if debug: true
|
||||
|
||||
interpolation: {
|
||||
escapeValue: false, // not needed for react!!
|
||||
},
|
||||
contextSeparator: " ",
|
||||
|
||||
|
||||
load: 'currentOnly',
|
||||
|
||||
react: {
|
||||
wait: true,
|
||||
}
|
||||
});
|
||||
|
||||
export default i18n;
|
@ -3,7 +3,7 @@ import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import MarkdownEditor from './markdown-editor';
|
||||
import { I18nextProvider } from 'react-i18next';
|
||||
import i18n from './i18n';
|
||||
import i18n from './i18n-seafile-editor';
|
||||
import './assets/css/fa-solid.css';
|
||||
import './assets/css/fa-regular.css';
|
||||
import './assets/css/fontawesome.css';
|
||||
|
@ -1,7 +1,7 @@
|
||||
import React, { Suspense} from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import { I18nextProvider } from 'react-i18next';
|
||||
import i18n from './i18n';
|
||||
import i18n from './i18n-seafile-editor';
|
||||
import { seafileAPI } from './utils/seafile-api';
|
||||
import io from 'socket.io-client';
|
||||
import { gettext } from './utils/constants';
|
||||
|
@ -2,9 +2,11 @@ import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import { seafileAPI } from './utils/seafile-api';
|
||||
import ViewFileDtable from '@seafile/dtable/es';
|
||||
import { I18nextProvider } from 'react-i18next';
|
||||
import i18n from './i18n-dtable';
|
||||
import './css/view-file-dtable.css';
|
||||
|
||||
const { server, workspaceID, username, userNickName, contactEmail, fileName, filePath, dtableUuid, dtableServer, dtableSocket, mediaUrl } = window.app.pageOptions;
|
||||
const { server, workspaceID, username, userNickName, contactEmail, fileName, filePath, dtableUuid, dtableServer, dtableSocket, mediaUrl, lang } = window.app.pageOptions;
|
||||
window.dtable = {};
|
||||
window.dtable = {
|
||||
workspaceID: workspaceID,
|
||||
@ -18,7 +20,8 @@ window.dtable = {
|
||||
fileName: fileName,
|
||||
dtableUuid: dtableUuid,
|
||||
mediaUrl: mediaUrl,
|
||||
accessToken: ''
|
||||
accessToken: '',
|
||||
lang: lang
|
||||
};
|
||||
|
||||
window.seafileAPI = seafileAPI;
|
||||
@ -33,6 +36,8 @@ class ViewFileSDB extends React.Component {
|
||||
}
|
||||
|
||||
ReactDOM.render(
|
||||
<ViewFileSDB />,
|
||||
<I18nextProvider i18n={ i18n }>
|
||||
<ViewFileSDB />
|
||||
</I18nextProvider>,
|
||||
document.getElementById('wrapper')
|
||||
);
|
11
media/assets/frontend/locales/en/dtable.json
Normal file
11
media/assets/frontend/locales/en/dtable.json
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"Saving...": "Saving...",
|
||||
"All changes saved": "All changes saved",
|
||||
"Insert Row": "Insert Row",
|
||||
"Duplicate Row": "Duplicate Row",
|
||||
"Delete Row": "Delete Row",
|
||||
"Delete Rows": "Delete Rows",
|
||||
"Insert Row Above": "Insert Row Above",
|
||||
"Insert Row Below": "Insert Row Below",
|
||||
"Drag and drop images or click or paste here to add" : "Drag and drop images or click or paste here to add"
|
||||
}
|
11
media/assets/frontend/locales/zh-CN/dtable.json
Normal file
11
media/assets/frontend/locales/zh-CN/dtable.json
Normal file
@ -0,0 +1,11 @@
|
||||
{
|
||||
"Saving...": "保存...",
|
||||
"All changes saved": "保存所有更改",
|
||||
"Insert Row": "插入行",
|
||||
"Duplicate Row": "复制行",
|
||||
"Delete Row": "删除行",
|
||||
"Delete Rows": "删除多行",
|
||||
"Insert Row Above": "上方插入行",
|
||||
"Insert Row Below": "下方插入行",
|
||||
"Drag and drop images or click or paste here to add": "将图片拖拽或点击或粘贴到此处进行上传"
|
||||
}
|
@ -6,6 +6,10 @@
|
||||
{% render_bundle 'viewCdoc' 'css' %}
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_data %}
|
||||
lang: '{{ LANGUAGE_CODE }}'
|
||||
{% endblock %}
|
||||
|
||||
{% block render_bundle %}
|
||||
{% render_bundle 'viewCdoc' 'js' %}
|
||||
{% endblock %}
|
@ -41,7 +41,8 @@
|
||||
dtableUuid: '{{ dtable_uuid }}',
|
||||
mediaUrl: '{{ media_url }}',
|
||||
dtableServer: '{{ dtable_server }}',
|
||||
dtableSocket: '{{ dtable_socket }}'
|
||||
dtableSocket: '{{ dtable_socket }}',
|
||||
lang: '{{ LANGUAGE_CODE }}'
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
Loading…
Reference in New Issue
Block a user