Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -3,3 +3,4 @@
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
ko_fi: mawoka
|
||||
liberapay: Mawoka
|
||||
github: mawoka-myblock
|
||||
|
||||
@@ -14,11 +14,11 @@ repos:
|
||||
# - id: check-added-large-files
|
||||
|
||||
- repo: https://github.com/psf/black
|
||||
rev: 23.7.0
|
||||
rev: 23.9.1
|
||||
hooks:
|
||||
- id: black
|
||||
- repo: https://github.com/pre-commit/mirrors-prettier
|
||||
rev: 'v3.0.1' # Use the sha / tag you want to point at
|
||||
rev: 'v3.0.3' # Use the sha / tag you want to point at
|
||||
hooks:
|
||||
- id: prettier
|
||||
files: "^frontend/"
|
||||
|
||||
Generated
+254
-182
@@ -135,11 +135,11 @@
|
||||
},
|
||||
"anyio": {
|
||||
"hashes": [
|
||||
"sha256:44a3c9aba0f5defa43261a8b3efb97891f2bd7d804e0e1f56419befa1adfc780",
|
||||
"sha256:91dee416e570e92c64041bd18b900d1d6fa78dff7048769ce5ac5ddad004fbb5"
|
||||
"sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f",
|
||||
"sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==3.7.1"
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==4.0.0"
|
||||
},
|
||||
"argon2-cffi": {
|
||||
"hashes": [
|
||||
@@ -193,11 +193,11 @@
|
||||
},
|
||||
"async-timeout": {
|
||||
"hashes": [
|
||||
"sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15",
|
||||
"sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"
|
||||
"sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f",
|
||||
"sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==4.0.2"
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==4.0.3"
|
||||
},
|
||||
"asyncpg": {
|
||||
"hashes": [
|
||||
@@ -280,7 +280,7 @@
|
||||
"sha256:3b3d076e824ae979b271b4d497c90514c2b218811f76b0c368fb69da2556fe07",
|
||||
"sha256:88e5d91be5b2dff9c0748ba515774c3421088922d9e77c39f8742eb41cb7db88"
|
||||
],
|
||||
"markers": "python_version >= '3.8' and python_version < '4'",
|
||||
"markers": "python_version >= '3.8' and python_version < '4.0'",
|
||||
"version": "==3.0.2"
|
||||
},
|
||||
"cbor2": {
|
||||
@@ -485,11 +485,11 @@
|
||||
},
|
||||
"click": {
|
||||
"hashes": [
|
||||
"sha256:48ee849951919527a045bfe3bf7baa8a959c423134e1a5b98c05c20ba75a1cbd",
|
||||
"sha256:fa244bb30b3b5ee2cae3da8f55c9e5e0c0e86093306301fb418eb9dc40fbded5"
|
||||
"sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28",
|
||||
"sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==8.1.6"
|
||||
"version": "==8.1.7"
|
||||
},
|
||||
"colorama": {
|
||||
"hashes": [
|
||||
@@ -507,32 +507,32 @@
|
||||
},
|
||||
"cryptography": {
|
||||
"hashes": [
|
||||
"sha256:0d09fb5356f975974dbcb595ad2d178305e5050656affb7890a1583f5e02a306",
|
||||
"sha256:23c2d778cf829f7d0ae180600b17e9fceea3c2ef8b31a99e3c694cbbf3a24b84",
|
||||
"sha256:3fb248989b6363906827284cd20cca63bb1a757e0a2864d4c1682a985e3dca47",
|
||||
"sha256:41d7aa7cdfded09b3d73a47f429c298e80796c8e825ddfadc84c8a7f12df212d",
|
||||
"sha256:42cb413e01a5d36da9929baa9d70ca90d90b969269e5a12d39c1e0d475010116",
|
||||
"sha256:4c2f0d35703d61002a2bbdcf15548ebb701cfdd83cdc12471d2bae80878a4207",
|
||||
"sha256:4fd871184321100fb400d759ad0cddddf284c4b696568204d281c902fc7b0d81",
|
||||
"sha256:5259cb659aa43005eb55a0e4ff2c825ca111a0da1814202c64d28a985d33b087",
|
||||
"sha256:57a51b89f954f216a81c9d057bf1a24e2f36e764a1ca9a501a6964eb4a6800dd",
|
||||
"sha256:652627a055cb52a84f8c448185922241dd5217443ca194d5739b44612c5e6507",
|
||||
"sha256:67e120e9a577c64fe1f611e53b30b3e69744e5910ff3b6e97e935aeb96005858",
|
||||
"sha256:6af1c6387c531cd364b72c28daa29232162010d952ceb7e5ca8e2827526aceae",
|
||||
"sha256:6d192741113ef5e30d89dcb5b956ef4e1578f304708701b8b73d38e3e1461f34",
|
||||
"sha256:7efe8041897fe7a50863e51b77789b657a133c75c3b094e51b5e4b5cec7bf906",
|
||||
"sha256:84537453d57f55a50a5b6835622ee405816999a7113267739a1b4581f83535bd",
|
||||
"sha256:8f09daa483aedea50d249ef98ed500569841d6498aa9c9f4b0531b9964658922",
|
||||
"sha256:95dd7f261bb76948b52a5330ba5202b91a26fbac13ad0e9fc8a3ac04752058c7",
|
||||
"sha256:a74fbcdb2a0d46fe00504f571a2a540532f4c188e6ccf26f1f178480117b33c4",
|
||||
"sha256:a983e441a00a9d57a4d7c91b3116a37ae602907a7618b882c8013b5762e80574",
|
||||
"sha256:ab8de0d091acbf778f74286f4989cf3d1528336af1b59f3e5d2ebca8b5fe49e1",
|
||||
"sha256:aeb57c421b34af8f9fe830e1955bf493a86a7996cc1338fe41b30047d16e962c",
|
||||
"sha256:ce785cf81a7bdade534297ef9e490ddff800d956625020ab2ec2780a556c313e",
|
||||
"sha256:d0d651aa754ef58d75cec6edfbd21259d93810b73f6ec246436a21b7841908de"
|
||||
"sha256:004b6ccc95943f6a9ad3142cfabcc769d7ee38a3f60fb0dddbfb431f818c3a67",
|
||||
"sha256:047c4603aeb4bbd8db2756e38f5b8bd7e94318c047cfe4efeb5d715e08b49311",
|
||||
"sha256:0d9409894f495d465fe6fda92cb70e8323e9648af912d5b9141d616df40a87b8",
|
||||
"sha256:23a25c09dfd0d9f28da2352503b23e086f8e78096b9fd585d1d14eca01613e13",
|
||||
"sha256:2ed09183922d66c4ec5fdaa59b4d14e105c084dd0febd27452de8f6f74704143",
|
||||
"sha256:35c00f637cd0b9d5b6c6bd11b6c3359194a8eba9c46d4e875a3660e3b400005f",
|
||||
"sha256:37480760ae08065437e6573d14be973112c9e6dcaf5f11d00147ee74f37a3829",
|
||||
"sha256:3b224890962a2d7b57cf5eeb16ccaafba6083f7b811829f00476309bce2fe0fd",
|
||||
"sha256:5a0f09cefded00e648a127048119f77bc2b2ec61e736660b5789e638f43cc397",
|
||||
"sha256:5b72205a360f3b6176485a333256b9bcd48700fc755fef51c8e7e67c4b63e3ac",
|
||||
"sha256:7e53db173370dea832190870e975a1e09c86a879b613948f09eb49324218c14d",
|
||||
"sha256:7febc3094125fc126a7f6fb1f420d0da639f3f32cb15c8ff0dc3997c4549f51a",
|
||||
"sha256:80907d3faa55dc5434a16579952ac6da800935cd98d14dbd62f6f042c7f5e839",
|
||||
"sha256:86defa8d248c3fa029da68ce61fe735432b047e32179883bdb1e79ed9bb8195e",
|
||||
"sha256:8ac4f9ead4bbd0bc8ab2d318f97d85147167a488be0e08814a37eb2f439d5cf6",
|
||||
"sha256:93530900d14c37a46ce3d6c9e6fd35dbe5f5601bf6b3a5c325c7bffc030344d9",
|
||||
"sha256:9eeb77214afae972a00dee47382d2591abe77bdae166bda672fb1e24702a3860",
|
||||
"sha256:b5f4dfe950ff0479f1f00eda09c18798d4f49b98f4e2006d644b3301682ebdca",
|
||||
"sha256:c3391bd8e6de35f6f1140e50aaeb3e2b3d6a9012536ca23ab0d9c35ec18c8a91",
|
||||
"sha256:c880eba5175f4307129784eca96f4e70b88e57aa3f680aeba3bab0e980b0f37d",
|
||||
"sha256:cecfefa17042941f94ab54f769c8ce0fe14beff2694e9ac684176a2535bf9714",
|
||||
"sha256:e40211b4923ba5a6dc9769eab704bdb3fbb58d56c5b336d30996c24fcf12aadb",
|
||||
"sha256:efc8ad4e6fc4f1752ebfb58aefece8b4e3c4cae940b0994d43649bdfce8d0d4f"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==41.0.3"
|
||||
"version": "==41.0.4"
|
||||
},
|
||||
"databases": {
|
||||
"hashes": [
|
||||
@@ -544,11 +544,11 @@
|
||||
},
|
||||
"dnspython": {
|
||||
"hashes": [
|
||||
"sha256:5b7488477388b8c0b70a8ce93b227c5603bc7b77f1565afe8e729c36c51447d7",
|
||||
"sha256:c33971c79af5be968bb897e95c2448e11a645ee84d93b265ce0b7aabe5dfdca8"
|
||||
"sha256:57c6fbaaeaaf39c891292012060beb141791735dbb4004798328fc2c467402d8",
|
||||
"sha256:8dcfae8c7460a2f84b4072e26f1c9f4101ca20c071649cb7c34e8b6a93d58984"
|
||||
],
|
||||
"markers": "python_version >= '3.8' and python_version < '4'",
|
||||
"version": "==2.4.1"
|
||||
"markers": "python_version >= '3.8' and python_version < '4.0'",
|
||||
"version": "==2.4.2"
|
||||
},
|
||||
"ecdsa": {
|
||||
"hashes": [
|
||||
@@ -653,6 +653,7 @@
|
||||
"hashes": [
|
||||
"sha256:03a8f4f3430c3b3ff8d10a2a86028c660355ab637cee9333d63d66b56f09d52a",
|
||||
"sha256:0bf60faf0bc2468089bdc5edd10555bab6e85152191df713e2ab1fcc86382b5a",
|
||||
"sha256:1087300cf9700bbf455b1b97e24db18f2f77b55302a68272c56209d5587c12d1",
|
||||
"sha256:18a7f18b82b52ee85322d7a7874e676f34ab319b9f8cce5de06067384aa8ff43",
|
||||
"sha256:18e98fb3de7dba1c0a852731c3070cf022d14f0d68b4c87a19cc1016f3bb8b33",
|
||||
"sha256:1a819eef4b0e0b96bb0d98d797bef17dc1b4a10e8d7446be32d1da33e095dbb8",
|
||||
@@ -678,6 +679,7 @@
|
||||
"sha256:76ae285c8104046b3a7f06b42f29c7b73f77683df18c49ab5af7983994c2dd91",
|
||||
"sha256:7cafd1208fdbe93b67c7086876f061f660cfddc44f404279c1585bbf3cdc64c5",
|
||||
"sha256:7efde645ca1cc441d6dc4b48c0f7101e8d86b54c8530141b09fd31cef5149ec9",
|
||||
"sha256:8512a0c38cfd4e66a858ddd1b17705587900dd760c6003998e9472b77b56d417",
|
||||
"sha256:88d9ab96491d38a5ab7c56dd7a3cc37d83336ecc564e4e8816dbed12e5aaefc8",
|
||||
"sha256:8eab883b3b2a38cc1e050819ef06a7e6344d4a990d24d45bc6f2cf959045a45b",
|
||||
"sha256:910841381caba4f744a44bf81bfd573c94e10b3045ee00de0cbf436fe50673a6",
|
||||
@@ -701,8 +703,10 @@
|
||||
"sha256:c9c59a2120b55788e800d82dfa99b9e156ff8f2227f07c5e3012a45a399620b7",
|
||||
"sha256:cd021c754b162c0fb55ad5d6b9d960db667faad0fa2ff25bb6e1301b0b6e6a75",
|
||||
"sha256:d27ec7509b9c18b6d73f2f5ede2622441de812e7b1a80bbd446cb0633bd3d5ae",
|
||||
"sha256:d4606a527e30548153be1a9f155f4e283d109ffba663a15856089fb55f933e47",
|
||||
"sha256:d5508f0b173e6aa47273bdc0a0b5ba055b59662ba7c7ee5119528f466585526b",
|
||||
"sha256:d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470",
|
||||
"sha256:d967650d3f56af314b72df7089d96cda1083a7fc2da05b375d2bc48c82ab3f3c",
|
||||
"sha256:db1a39669102a1d8d12b57de2bb7e2ec9066a6f2b3da35ae511ff93b01b5d564",
|
||||
"sha256:dbfcfc0218093a19c252ca8eb9aee3d29cfdcb586df21049b9d777fd32c14fd9",
|
||||
"sha256:e0f72c9ddb8cd28532185f54cc1453f2c16fb417a08b53a855c4e6a418edd099",
|
||||
@@ -919,8 +923,11 @@
|
||||
"sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e",
|
||||
"sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431",
|
||||
"sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686",
|
||||
"sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c",
|
||||
"sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559",
|
||||
"sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc",
|
||||
"sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb",
|
||||
"sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939",
|
||||
"sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c",
|
||||
"sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0",
|
||||
"sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4",
|
||||
@@ -928,6 +935,7 @@
|
||||
"sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575",
|
||||
"sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba",
|
||||
"sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d",
|
||||
"sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd",
|
||||
"sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3",
|
||||
"sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00",
|
||||
"sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155",
|
||||
@@ -936,6 +944,7 @@
|
||||
"sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f",
|
||||
"sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8",
|
||||
"sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b",
|
||||
"sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007",
|
||||
"sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24",
|
||||
"sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea",
|
||||
"sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198",
|
||||
@@ -943,9 +952,12 @@
|
||||
"sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee",
|
||||
"sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be",
|
||||
"sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2",
|
||||
"sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1",
|
||||
"sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707",
|
||||
"sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6",
|
||||
"sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c",
|
||||
"sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58",
|
||||
"sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823",
|
||||
"sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779",
|
||||
"sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636",
|
||||
"sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c",
|
||||
@@ -964,7 +976,9 @@
|
||||
"sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9",
|
||||
"sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57",
|
||||
"sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc",
|
||||
"sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2"
|
||||
"sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc",
|
||||
"sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2",
|
||||
"sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==2.1.3"
|
||||
@@ -1166,70 +1180,68 @@
|
||||
},
|
||||
"psycopg2-binary": {
|
||||
"hashes": [
|
||||
"sha256:02c0f3757a4300cf379eb49f543fb7ac527fb00144d39246ee40e1df684ab514",
|
||||
"sha256:02c6e3cf3439e213e4ee930308dc122d6fb4d4bea9aef4a12535fbd605d1a2fe",
|
||||
"sha256:0645376d399bfd64da57148694d78e1f431b1e1ee1054872a5713125681cf1be",
|
||||
"sha256:0892ef645c2fabb0c75ec32d79f4252542d0caec1d5d949630e7d242ca4681a3",
|
||||
"sha256:0d236c2825fa656a2d98bbb0e52370a2e852e5a0ec45fc4f402977313329174d",
|
||||
"sha256:0e0f754d27fddcfd74006455b6e04e6705d6c31a612ec69ddc040a5468e44b4e",
|
||||
"sha256:15e2ee79e7cf29582ef770de7dab3d286431b01c3bb598f8e05e09601b890081",
|
||||
"sha256:1876843d8e31c89c399e31b97d4b9725a3575bb9c2af92038464231ec40f9edb",
|
||||
"sha256:1f64dcfb8f6e0c014c7f55e51c9759f024f70ea572fbdef123f85318c297947c",
|
||||
"sha256:2ab652e729ff4ad76d400df2624d223d6e265ef81bb8aa17fbd63607878ecbee",
|
||||
"sha256:30637a20623e2a2eacc420059be11527f4458ef54352d870b8181a4c3020ae6b",
|
||||
"sha256:34b9ccdf210cbbb1303c7c4db2905fa0319391bd5904d32689e6dd5c963d2ea8",
|
||||
"sha256:38601cbbfe600362c43714482f43b7c110b20cb0f8172422c616b09b85a750c5",
|
||||
"sha256:441cc2f8869a4f0f4bb408475e5ae0ee1f3b55b33f350406150277f7f35384fc",
|
||||
"sha256:498807b927ca2510baea1b05cc91d7da4718a0f53cb766c154c417a39f1820a0",
|
||||
"sha256:4ac30da8b4f57187dbf449294d23b808f8f53cad6b1fc3623fa8a6c11d176dd0",
|
||||
"sha256:4c727b597c6444a16e9119386b59388f8a424223302d0c06c676ec8b4bc1f963",
|
||||
"sha256:4d67fbdaf177da06374473ef6f7ed8cc0a9dc640b01abfe9e8a2ccb1b1402c1f",
|
||||
"sha256:4dfb4be774c4436a4526d0c554af0cc2e02082c38303852a36f6456ece7b3503",
|
||||
"sha256:4ea29fc3ad9d91162c52b578f211ff1c931d8a38e1f58e684c45aa470adf19e2",
|
||||
"sha256:51537e3d299be0db9137b321dfb6a5022caaab275775680e0c3d281feefaca6b",
|
||||
"sha256:61b047a0537bbc3afae10f134dc6393823882eb263088c271331602b672e52e9",
|
||||
"sha256:6460c7a99fc939b849431f1e73e013d54aa54293f30f1109019c56a0b2b2ec2f",
|
||||
"sha256:65bee1e49fa6f9cf327ce0e01c4c10f39165ee76d35c846ade7cb0ec6683e303",
|
||||
"sha256:65c07febd1936d63bfde78948b76cd4c2a411572a44ac50719ead41947d0f26b",
|
||||
"sha256:71f14375d6f73b62800530b581aed3ada394039877818b2d5f7fc77e3bb6894d",
|
||||
"sha256:7a40c00dbe17c0af5bdd55aafd6ff6679f94a9be9513a4c7e071baf3d7d22a70",
|
||||
"sha256:7e13a5a2c01151f1208d5207e42f33ba86d561b7a89fca67c700b9486a06d0e2",
|
||||
"sha256:7f0438fa20fb6c7e202863e0d5ab02c246d35efb1d164e052f2f3bfe2b152bd0",
|
||||
"sha256:8122cfc7cae0da9a3077216528b8bb3629c43b25053284cc868744bfe71eb141",
|
||||
"sha256:8338a271cb71d8da40b023a35d9c1e919eba6cbd8fa20a54b748a332c355d896",
|
||||
"sha256:84d2222e61f313c4848ff05353653bf5f5cf6ce34df540e4274516880d9c3763",
|
||||
"sha256:8a6979cf527e2603d349a91060f428bcb135aea2be3201dff794813256c274f1",
|
||||
"sha256:8a76e027f87753f9bd1ab5f7c9cb8c7628d1077ef927f5e2446477153a602f2c",
|
||||
"sha256:964b4dfb7c1c1965ac4c1978b0f755cc4bd698e8aa2b7667c575fb5f04ebe06b",
|
||||
"sha256:9972aad21f965599ed0106f65334230ce826e5ae69fda7cbd688d24fa922415e",
|
||||
"sha256:a8c28fd40a4226b4a84bdf2d2b5b37d2c7bd49486b5adcc200e8c7ec991dfa7e",
|
||||
"sha256:ae102a98c547ee2288637af07393dd33f440c25e5cd79556b04e3fca13325e5f",
|
||||
"sha256:af335bac6b666cc6aea16f11d486c3b794029d9df029967f9938a4bed59b6a19",
|
||||
"sha256:afe64e9b8ea66866a771996f6ff14447e8082ea26e675a295ad3bdbffdd72afb",
|
||||
"sha256:b4b24f75d16a89cc6b4cdff0eb6a910a966ecd476d1e73f7ce5985ff1328e9a6",
|
||||
"sha256:b6c8288bb8a84b47e07013bb4850f50538aa913d487579e1921724631d02ea1b",
|
||||
"sha256:b83456c2d4979e08ff56180a76429263ea254c3f6552cd14ada95cff1dec9bb8",
|
||||
"sha256:bfb13af3c5dd3a9588000910178de17010ebcccd37b4f9794b00595e3a8ddad3",
|
||||
"sha256:c3dba7dab16709a33a847e5cd756767271697041fbe3fe97c215b1fc1f5c9848",
|
||||
"sha256:c48d8f2db17f27d41fb0e2ecd703ea41984ee19362cbce52c097963b3a1b4365",
|
||||
"sha256:c7e62ab8b332147a7593a385d4f368874d5fe4ad4e341770d4983442d89603e3",
|
||||
"sha256:c83a74b68270028dc8ee74d38ecfaf9c90eed23c8959fca95bd703d25b82c88e",
|
||||
"sha256:cacbdc5839bdff804dfebc058fe25684cae322987f7a38b0168bc1b2df703fb1",
|
||||
"sha256:cf4499e0a83b7b7edcb8dabecbd8501d0d3a5ef66457200f77bde3d210d5debb",
|
||||
"sha256:cfec476887aa231b8548ece2e06d28edc87c1397ebd83922299af2e051cf2827",
|
||||
"sha256:d26e0342183c762de3276cca7a530d574d4e25121ca7d6e4a98e4f05cb8e4df7",
|
||||
"sha256:d4e6036decf4b72d6425d5b29bbd3e8f0ff1059cda7ac7b96d6ac5ed34ffbacd",
|
||||
"sha256:d57c3fd55d9058645d26ae37d76e61156a27722097229d32a9e73ed54819982a",
|
||||
"sha256:dfa74c903a3c1f0d9b1c7e7b53ed2d929a4910e272add6700c38f365a6002820",
|
||||
"sha256:e3ed340d2b858d6e6fb5083f87c09996506af483227735de6964a6100b4e6a54",
|
||||
"sha256:e78e6e2a00c223e164c417628572a90093c031ed724492c763721c2e0bc2a8df",
|
||||
"sha256:e9182eb20f41417ea1dd8e8f7888c4d7c6e805f8a7c98c1081778a3da2bee3e4",
|
||||
"sha256:e99e34c82309dd78959ba3c1590975b5d3c862d6f279f843d47d26ff89d7d7e1",
|
||||
"sha256:f6a88f384335bb27812293fdb11ac6aee2ca3f51d3c7820fe03de0a304ab6249",
|
||||
"sha256:f81e65376e52f03422e1fb475c9514185669943798ed019ac50410fb4c4df232",
|
||||
"sha256:ffe9dc0a884a8848075e576c1de0290d85a533a9f6e9c4e564f19adf8f6e54a7"
|
||||
"sha256:00d8db270afb76f48a499f7bb8fa70297e66da67288471ca873db88382850bf4",
|
||||
"sha256:024eaeb2a08c9a65cd5f94b31ace1ee3bb3f978cd4d079406aef85169ba01f08",
|
||||
"sha256:094af2e77a1976efd4956a031028774b827029729725e136514aae3cdf49b87b",
|
||||
"sha256:1011eeb0c51e5b9ea1016f0f45fa23aca63966a4c0afcf0340ccabe85a9f65bd",
|
||||
"sha256:11abdbfc6f7f7dea4a524b5f4117369b0d757725798f1593796be6ece20266cb",
|
||||
"sha256:122641b7fab18ef76b18860dd0c772290566b6fb30cc08e923ad73d17461dc63",
|
||||
"sha256:17cc17a70dfb295a240db7f65b6d8153c3d81efb145d76da1e4a096e9c5c0e63",
|
||||
"sha256:18f12632ab516c47c1ac4841a78fddea6508a8284c7cf0f292cb1a523f2e2379",
|
||||
"sha256:1b918f64a51ffe19cd2e230b3240ba481330ce1d4b7875ae67305bd1d37b041c",
|
||||
"sha256:1c31c2606ac500dbd26381145684d87730a2fac9a62ebcfbaa2b119f8d6c19f4",
|
||||
"sha256:26484e913d472ecb6b45937ea55ce29c57c662066d222fb0fbdc1fab457f18c5",
|
||||
"sha256:2993ccb2b7e80844d534e55e0f12534c2871952f78e0da33c35e648bf002bbff",
|
||||
"sha256:2b04da24cbde33292ad34a40db9832a80ad12de26486ffeda883413c9e1b1d5e",
|
||||
"sha256:2dec5a75a3a5d42b120e88e6ed3e3b37b46459202bb8e36cd67591b6e5feebc1",
|
||||
"sha256:2df562bb2e4e00ee064779902d721223cfa9f8f58e7e52318c97d139cf7f012d",
|
||||
"sha256:3fbb1184c7e9d28d67671992970718c05af5f77fc88e26fd7136613c4ece1f89",
|
||||
"sha256:42a62ef0e5abb55bf6ffb050eb2b0fcd767261fa3faf943a4267539168807522",
|
||||
"sha256:4ecc15666f16f97709106d87284c136cdc82647e1c3f8392a672616aed3c7151",
|
||||
"sha256:4eec5d36dbcfc076caab61a2114c12094c0b7027d57e9e4387b634e8ab36fd44",
|
||||
"sha256:4fe13712357d802080cfccbf8c6266a3121dc0e27e2144819029095ccf708372",
|
||||
"sha256:51d1b42d44f4ffb93188f9b39e6d1c82aa758fdb8d9de65e1ddfe7a7d250d7ad",
|
||||
"sha256:59f7e9109a59dfa31efa022e94a244736ae401526682de504e87bd11ce870c22",
|
||||
"sha256:62cb6de84d7767164a87ca97e22e5e0a134856ebcb08f21b621c6125baf61f16",
|
||||
"sha256:642df77484b2dcaf87d4237792246d8068653f9e0f5c025e2c692fc56b0dda70",
|
||||
"sha256:6822c9c63308d650db201ba22fe6648bd6786ca6d14fdaf273b17e15608d0852",
|
||||
"sha256:692df8763b71d42eb8343f54091368f6f6c9cfc56dc391858cdb3c3ef1e3e584",
|
||||
"sha256:6d92e139ca388ccfe8c04aacc163756e55ba4c623c6ba13d5d1595ed97523e4b",
|
||||
"sha256:7952807f95c8eba6a8ccb14e00bf170bb700cafcec3924d565235dffc7dc4ae8",
|
||||
"sha256:7db7b9b701974c96a88997d458b38ccb110eba8f805d4b4f74944aac48639b42",
|
||||
"sha256:81d5dd2dd9ab78d31a451e357315f201d976c131ca7d43870a0e8063b6b7a1ec",
|
||||
"sha256:8a136c8aaf6615653450817a7abe0fc01e4ea720ae41dfb2823eccae4b9062a3",
|
||||
"sha256:8a7968fd20bd550431837656872c19575b687f3f6f98120046228e451e4064df",
|
||||
"sha256:8c721ee464e45ecf609ff8c0a555018764974114f671815a0a7152aedb9f3343",
|
||||
"sha256:8f309b77a7c716e6ed9891b9b42953c3ff7d533dc548c1e33fddc73d2f5e21f9",
|
||||
"sha256:8f94cb12150d57ea433e3e02aabd072205648e86f1d5a0a692d60242f7809b15",
|
||||
"sha256:95a7a747bdc3b010bb6a980f053233e7610276d55f3ca506afff4ad7749ab58a",
|
||||
"sha256:9b0c2b466b2f4d89ccc33784c4ebb1627989bd84a39b79092e560e937a11d4ac",
|
||||
"sha256:9dcfd5d37e027ec393a303cc0a216be564b96c80ba532f3d1e0d2b5e5e4b1e6e",
|
||||
"sha256:a5ee89587696d808c9a00876065d725d4ae606f5f7853b961cdbc348b0f7c9a1",
|
||||
"sha256:a6a8b575ac45af1eaccbbcdcf710ab984fd50af048fe130672377f78aaff6fc1",
|
||||
"sha256:ac83ab05e25354dad798401babaa6daa9577462136ba215694865394840e31f8",
|
||||
"sha256:ad26d4eeaa0d722b25814cce97335ecf1b707630258f14ac4d2ed3d1d8415265",
|
||||
"sha256:ad5ec10b53cbb57e9a2e77b67e4e4368df56b54d6b00cc86398578f1c635f329",
|
||||
"sha256:c82986635a16fb1fa15cd5436035c88bc65c3d5ced1cfaac7f357ee9e9deddd4",
|
||||
"sha256:ced63c054bdaf0298f62681d5dcae3afe60cbae332390bfb1acf0e23dcd25fc8",
|
||||
"sha256:d0b16e5bb0ab78583f0ed7ab16378a0f8a89a27256bb5560402749dbe8a164d7",
|
||||
"sha256:dbbc3c5d15ed76b0d9db7753c0db40899136ecfe97d50cbde918f630c5eb857a",
|
||||
"sha256:ded8e15f7550db9e75c60b3d9fcbc7737fea258a0f10032cdb7edc26c2a671fd",
|
||||
"sha256:e02bc4f2966475a7393bd0f098e1165d470d3fa816264054359ed4f10f6914ea",
|
||||
"sha256:e5666632ba2b0d9757b38fc17337d84bdf932d38563c5234f5f8c54fd01349c9",
|
||||
"sha256:ea5f8ee87f1eddc818fc04649d952c526db4426d26bab16efbe5a0c52b27d6ab",
|
||||
"sha256:eb1c0e682138f9067a58fc3c9a9bf1c83d8e08cfbee380d858e63196466d5c86",
|
||||
"sha256:eb3b8d55924a6058a26db69fb1d3e7e32695ff8b491835ba9f479537e14dcf9f",
|
||||
"sha256:ee919b676da28f78f91b464fb3e12238bd7474483352a59c8a16c39dfc59f0c5",
|
||||
"sha256:f02f4a72cc3ab2565c6d9720f0343cb840fb2dc01a2e9ecb8bc58ccf95dc5c06",
|
||||
"sha256:f4f37bbc6588d402980ffbd1f3338c871368fb4b1cfa091debe13c68bb3852b3",
|
||||
"sha256:f8651cf1f144f9ee0fa7d1a1df61a9184ab72962531ca99f077bbdcba3947c58",
|
||||
"sha256:f955aa50d7d5220fcb6e38f69ea126eafecd812d96aeed5d5f3597f33fad43bb",
|
||||
"sha256:fc10da7e7df3380426521e8c1ed975d22df678639da2ed0ec3244c3dc2ab54c8",
|
||||
"sha256:fdca0511458d26cf39b827a663d7d87db6f32b93efc22442a742035728603d5f"
|
||||
],
|
||||
"version": "==2.9.6"
|
||||
"version": "==2.9.7"
|
||||
},
|
||||
"py-avataaars-no-png": {
|
||||
"hashes": [
|
||||
@@ -1298,11 +1310,11 @@
|
||||
},
|
||||
"pygments": {
|
||||
"hashes": [
|
||||
"sha256:8ace4d3c1dd481894b2005f560ead0f9f19ee64fe983366be1a21e171d12775c",
|
||||
"sha256:db2db3deb4b4179f399a09054b023b6a586b76499d36965813c71aa8ed7b5fd1"
|
||||
"sha256:13fc09fa63bc8d8671a6d247e1eb303c4b343eaee81d861f3404db2935653692",
|
||||
"sha256:1daff0494820c69bc8941e407aa20f577374ee88364ee10a98fdbe0aece96e29"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==2.15.1"
|
||||
"version": "==2.16.1"
|
||||
},
|
||||
"pyopenssl": {
|
||||
"hashes": [
|
||||
@@ -1336,11 +1348,11 @@
|
||||
},
|
||||
"python-engineio": {
|
||||
"hashes": [
|
||||
"sha256:67a675569f3e9bb274a8077f3c2068a8fe79cbfcb111cf31ca27b968484fe6c7",
|
||||
"sha256:b167a1b208fcdce5dbe96a61a6ca22391cfa6715d796c22de93e3adf9c07ae0c"
|
||||
"sha256:52499e8ab94fea1a6525ffe872fe7028d04b575799c5fa8e2cf7880e032de42e",
|
||||
"sha256:a8422e345cd9a21451303380b160742ff02197975b1c3a02cef115febe2b1b20"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==4.5.1"
|
||||
"version": "==4.7.1"
|
||||
},
|
||||
"python-jose": {
|
||||
"hashes": [
|
||||
@@ -1376,7 +1388,9 @@
|
||||
},
|
||||
"pyyaml": {
|
||||
"hashes": [
|
||||
"sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5",
|
||||
"sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc",
|
||||
"sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df",
|
||||
"sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741",
|
||||
"sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206",
|
||||
"sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27",
|
||||
@@ -1384,7 +1398,10 @@
|
||||
"sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62",
|
||||
"sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98",
|
||||
"sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696",
|
||||
"sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290",
|
||||
"sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9",
|
||||
"sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d",
|
||||
"sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6",
|
||||
"sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867",
|
||||
"sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47",
|
||||
"sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486",
|
||||
@@ -1392,9 +1409,12 @@
|
||||
"sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3",
|
||||
"sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007",
|
||||
"sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938",
|
||||
"sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0",
|
||||
"sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c",
|
||||
"sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735",
|
||||
"sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d",
|
||||
"sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28",
|
||||
"sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4",
|
||||
"sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba",
|
||||
"sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8",
|
||||
"sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5",
|
||||
@@ -1409,7 +1429,9 @@
|
||||
"sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43",
|
||||
"sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859",
|
||||
"sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673",
|
||||
"sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54",
|
||||
"sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a",
|
||||
"sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b",
|
||||
"sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab",
|
||||
"sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa",
|
||||
"sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c",
|
||||
@@ -1455,7 +1477,7 @@
|
||||
"sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7",
|
||||
"sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"
|
||||
],
|
||||
"markers": "python_version >= '3.6' and python_version < '4'",
|
||||
"markers": "python_version >= '3.6' and python_version < '4.0'",
|
||||
"version": "==4.9"
|
||||
},
|
||||
"sentry-sdk": {
|
||||
@@ -1468,18 +1490,26 @@
|
||||
},
|
||||
"setuptools": {
|
||||
"hashes": [
|
||||
"sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f",
|
||||
"sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235"
|
||||
"sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87",
|
||||
"sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==68.0.0"
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==68.2.2"
|
||||
},
|
||||
"shellingham": {
|
||||
"hashes": [
|
||||
"sha256:368bf8c00754fd4f55afb7bbb86e272df77e4dc76ac29dbcbb81a59e9fc15744",
|
||||
"sha256:823bc5fb5c34d60f285b624e7264f4dda254bc803a3774a147bf99c0e3004a28"
|
||||
"sha256:419c6a164770c9c7cfcaeddfacb3d31ac7a8db0b0f3e9c1287679359734107e9",
|
||||
"sha256:cb4a6fec583535bc6da17b647dd2330cf7ef30239e05d547d99ae3705fd0f7f8"
|
||||
],
|
||||
"version": "==1.5.0.post1"
|
||||
"version": "==1.5.3"
|
||||
},
|
||||
"simple-websocket": {
|
||||
"hashes": [
|
||||
"sha256:0ab46c8ffa51a46dc95eed94608b3b722841c0bf849def71d465c5c356679c82",
|
||||
"sha256:62c36bacfd75cc867927bb39d91951342a7234bdfe20f41dd969a3b8bb1413b7"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==0.10.1"
|
||||
},
|
||||
"six": {
|
||||
"hashes": [
|
||||
@@ -1573,19 +1603,19 @@
|
||||
},
|
||||
"typing-extensions": {
|
||||
"hashes": [
|
||||
"sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36",
|
||||
"sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"
|
||||
"sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0",
|
||||
"sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==4.7.1"
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==4.8.0"
|
||||
},
|
||||
"urllib3": {
|
||||
"hashes": [
|
||||
"sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11",
|
||||
"sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4"
|
||||
"sha256:13abf37382ea2ce6fb744d4dad67838eec857c9f4f57009891805e0b5e123594",
|
||||
"sha256:ef16afa8ba34a1f989db38e1dbbe0c302e4289a47856990d0682e374563ce35e"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==2.0.4"
|
||||
"version": "==2.0.5"
|
||||
},
|
||||
"uvicorn": {
|
||||
"extras": [
|
||||
@@ -1635,30 +1665,30 @@
|
||||
},
|
||||
"watchfiles": {
|
||||
"hashes": [
|
||||
"sha256:0089c6dc24d436b373c3c57657bf4f9a453b13767150d17284fc6162b2791911",
|
||||
"sha256:09ea3397aecbc81c19ed7f025e051a7387feefdb789cf768ff994c1228182fda",
|
||||
"sha256:176a9a7641ec2c97b24455135d58012a5be5c6217fc4d5fef0b2b9f75dbf5154",
|
||||
"sha256:18b28f6ad871b82df9542ff958d0c86bb0d8310bb09eb8e87d97318a3b5273af",
|
||||
"sha256:20b44221764955b1e703f012c74015306fb7e79a00c15370785f309b1ed9aa8d",
|
||||
"sha256:3d7d267d27aceeeaa3de0dd161a0d64f0a282264d592e335fff7958cc0cbae7c",
|
||||
"sha256:5471582658ea56fca122c0f0d0116a36807c63fefd6fdc92c71ca9a4491b6b48",
|
||||
"sha256:5569fc7f967429d4bc87e355cdfdcee6aabe4b620801e2cf5805ea245c06097c",
|
||||
"sha256:68dce92b29575dda0f8d30c11742a8e2b9b8ec768ae414b54f7453f27bdf9545",
|
||||
"sha256:79c533ff593db861ae23436541f481ec896ee3da4e5db8962429b441bbaae16e",
|
||||
"sha256:7f3920b1285a7d3ce898e303d84791b7bf40d57b7695ad549dc04e6a44c9f120",
|
||||
"sha256:91633e64712df3051ca454ca7d1b976baf842d7a3640b87622b323c55f3345e7",
|
||||
"sha256:945be0baa3e2440151eb3718fd8846751e8b51d8de7b884c90b17d271d34cae8",
|
||||
"sha256:9afd0d69429172c796164fd7fe8e821ade9be983f51c659a38da3faaaaac44dc",
|
||||
"sha256:9c75eff897786ee262c9f17a48886f4e98e6cfd335e011c591c305e5d083c056",
|
||||
"sha256:b538014a87f94d92f98f34d3e6d2635478e6be6423a9ea53e4dd96210065e193",
|
||||
"sha256:b6577b8c6c8701ba8642ea9335a129836347894b666dd1ec2226830e263909d3",
|
||||
"sha256:c0376deac92377817e4fb8f347bf559b7d44ff556d9bc6f6208dd3f79f104aaf",
|
||||
"sha256:cae3dde0b4b2078f31527acff6f486e23abed307ba4d3932466ba7cdd5ecec79",
|
||||
"sha256:cb5d45c4143c1dd60f98a16187fd123eda7248f84ef22244818c18d531a249d1",
|
||||
"sha256:d9b073073e048081e502b6c6b0b88714c026a1a4c890569238d04aca5f9ca74b",
|
||||
"sha256:fac19dc9cbc34052394dbe81e149411a62e71999c0a19e1e09ce537867f95ae0"
|
||||
"sha256:007dcc4a401093010b389c044e81172c8a2520dba257c88f8828b3d460c6bb38",
|
||||
"sha256:08dc702529bb06a2b23859110c214db245455532da5eaea602921687cfcd23db",
|
||||
"sha256:0d82dbc1832da83e441d112069833eedd4cf583d983fb8dd666fbefbea9d99c0",
|
||||
"sha256:13f995d5152a8ba4ed7c2bbbaeee4e11a5944defc7cacd0ccb4dcbdcfd78029a",
|
||||
"sha256:3796312bd3587e14926013612b23066912cf45a14af71cf2b20db1c12dadf4e9",
|
||||
"sha256:5392dd327a05f538c56edb1c6ebba6af91afc81b40822452342f6da54907bbdf",
|
||||
"sha256:570848706440373b4cd8017f3e850ae17f76dbdf1e9045fc79023b11e1afe490",
|
||||
"sha256:608cd94a8767f49521901aff9ae0c92cc8f5a24d528db7d6b0295290f9d41193",
|
||||
"sha256:728575b6b94c90dd531514677201e8851708e6e4b5fe7028ac506a200b622019",
|
||||
"sha256:7d4e66a857621584869cfbad87039e65dadd7119f0d9bb9dbc957e089e32c164",
|
||||
"sha256:835df2da7a5df5464c4a23b2d963e1a9d35afa422c83bf4ff4380b3114603644",
|
||||
"sha256:87d9e1f75c4f86c93d73b5bd1ebe667558357548f11b4f8af4e0e272f79413ce",
|
||||
"sha256:89d1de8218874925bce7bb2ae9657efc504411528930d7a83f98b1749864f2ef",
|
||||
"sha256:99f4c65fd2fce61a571b2a6fcf747d6868db0bef8a934e8ca235cc8533944d95",
|
||||
"sha256:9a0351d20d03c6f7ad6b2e8a226a5efafb924c7755ee1e34f04c77c3682417fa",
|
||||
"sha256:9b5c8d3be7b502f8c43a33c63166ada8828dbb0c6d49c8f9ce990a96de2f5a49",
|
||||
"sha256:a03d1e6feb7966b417f43c3e3783188167fd69c2063e86bad31e62c4ea794cc5",
|
||||
"sha256:b17d4176c49d207865630da5b59a91779468dd3e08692fe943064da260de2c7c",
|
||||
"sha256:d0002d81c89a662b595645fb684a371b98ff90a9c7d8f8630c82f0fde8310458",
|
||||
"sha256:d97db179f7566dcf145c5179ddb2ae2a4450e3a634eb864b09ea04e68c252e8e",
|
||||
"sha256:e43af4464daa08723c04b43cf978ab86cc55c684c16172622bdac64b34e36af0",
|
||||
"sha256:eccc8942bcdc7d638a01435d915b913255bbd66f018f1af051cd8afddb339ea3"
|
||||
],
|
||||
"version": "==0.19.0"
|
||||
"version": "==0.20.0"
|
||||
},
|
||||
"webauthn": {
|
||||
"hashes": [
|
||||
@@ -1750,6 +1780,14 @@
|
||||
],
|
||||
"version": "==11.0.3"
|
||||
},
|
||||
"wsproto": {
|
||||
"hashes": [
|
||||
"sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065",
|
||||
"sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==1.2.0"
|
||||
},
|
||||
"xlsxwriter": {
|
||||
"hashes": [
|
||||
"sha256:331508ff39d610ecdaf979e458840bc1eab6e6a02cfd5d08f044f0f73636236f",
|
||||
@@ -1993,11 +2031,11 @@
|
||||
},
|
||||
"cfgv": {
|
||||
"hashes": [
|
||||
"sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426",
|
||||
"sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"
|
||||
"sha256:b7265b1f29fd3316bfcd2b330d63d024f2bfd8bcb8b0272f8e19a504856c48f9",
|
||||
"sha256:e52591d4c5f5dead8e0f673fb16db7949d2cfb3f7da4582893288f0ded8fe560"
|
||||
],
|
||||
"markers": "python_full_version >= '3.6.1'",
|
||||
"version": "==3.3.1"
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==3.4.0"
|
||||
},
|
||||
"charset-normalizer": {
|
||||
"hashes": [
|
||||
@@ -2082,11 +2120,11 @@
|
||||
},
|
||||
"click": {
|
||||
"hashes": [
|
||||
"sha256:48ee849951919527a045bfe3bf7baa8a959c423134e1a5b98c05c20ba75a1cbd",
|
||||
"sha256:fa244bb30b3b5ee2cae3da8f55c9e5e0c0e86093306301fb418eb9dc40fbded5"
|
||||
"sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28",
|
||||
"sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==8.1.6"
|
||||
"version": "==8.1.7"
|
||||
},
|
||||
"coverage": {
|
||||
"hashes": [
|
||||
@@ -2163,11 +2201,11 @@
|
||||
},
|
||||
"filelock": {
|
||||
"hashes": [
|
||||
"sha256:002740518d8aa59a26b0c76e10fb8c6e15eae825d34b6fdf670333fd7b938d81",
|
||||
"sha256:cbb791cdea2a72f23da6ac5b5269ab0a0d161e9ef0100e653b69049a7706d1ec"
|
||||
"sha256:08c21d87ded6e2b9da6728c3dff51baf1dcecf973b768ef35bcbc3447edb9ad4",
|
||||
"sha256:2e6f249f1f3654291606e046b09f1fd5eac39b360664c27f5aad072012f8bcbd"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==3.12.2"
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==3.12.4"
|
||||
},
|
||||
"flake8": {
|
||||
"hashes": [
|
||||
@@ -2177,13 +2215,21 @@
|
||||
"index": "pypi",
|
||||
"version": "==6.0.0"
|
||||
},
|
||||
"h11": {
|
||||
"hashes": [
|
||||
"sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d",
|
||||
"sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==0.14.0"
|
||||
},
|
||||
"identify": {
|
||||
"hashes": [
|
||||
"sha256:7243800bce2f58404ed41b7c002e53d4d22bcf3ae1b7900c2d7aefd95394bf7f",
|
||||
"sha256:c22a8ead0d4ca11f1edd6c9418c3220669b3b7533ada0a0ffa6cc0ef85cf9b54"
|
||||
"sha256:24437fbf6f4d3fe6efd0eb9d67e24dd9106db99af5ceb27996a5f7895f24bf1b",
|
||||
"sha256:d43d52b86b15918c137e3a74fff5224f60385cd0e9c38e99d07c257f02f151a5"
|
||||
],
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==2.5.26"
|
||||
"version": "==2.5.29"
|
||||
},
|
||||
"idna": {
|
||||
"hashes": [
|
||||
@@ -2251,11 +2297,11 @@
|
||||
},
|
||||
"pluggy": {
|
||||
"hashes": [
|
||||
"sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849",
|
||||
"sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3"
|
||||
"sha256:cf61ae8f126ac6f7c451172cf30e3e43d3ca77615509771b3a984a0730651e12",
|
||||
"sha256:d89c696a773f8bd377d18e5ecda92b7a3793cbe66c87060a6fb58c7b6e1061f7"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==1.2.0"
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==1.3.0"
|
||||
},
|
||||
"pre-commit": {
|
||||
"hashes": [
|
||||
@@ -2314,11 +2360,11 @@
|
||||
},
|
||||
"python-engineio": {
|
||||
"hashes": [
|
||||
"sha256:67a675569f3e9bb274a8077f3c2068a8fe79cbfcb111cf31ca27b968484fe6c7",
|
||||
"sha256:b167a1b208fcdce5dbe96a61a6ca22391cfa6715d796c22de93e3adf9c07ae0c"
|
||||
"sha256:52499e8ab94fea1a6525ffe872fe7028d04b575799c5fa8e2cf7880e032de42e",
|
||||
"sha256:a8422e345cd9a21451303380b160742ff02197975b1c3a02cef115febe2b1b20"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==4.5.1"
|
||||
"version": "==4.7.1"
|
||||
},
|
||||
"python-socketio": {
|
||||
"hashes": [
|
||||
@@ -2330,7 +2376,9 @@
|
||||
},
|
||||
"pyyaml": {
|
||||
"hashes": [
|
||||
"sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5",
|
||||
"sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc",
|
||||
"sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df",
|
||||
"sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741",
|
||||
"sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206",
|
||||
"sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27",
|
||||
@@ -2338,7 +2386,10 @@
|
||||
"sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62",
|
||||
"sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98",
|
||||
"sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696",
|
||||
"sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290",
|
||||
"sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9",
|
||||
"sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d",
|
||||
"sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6",
|
||||
"sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867",
|
||||
"sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47",
|
||||
"sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486",
|
||||
@@ -2346,9 +2397,12 @@
|
||||
"sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3",
|
||||
"sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007",
|
||||
"sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938",
|
||||
"sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0",
|
||||
"sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c",
|
||||
"sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735",
|
||||
"sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d",
|
||||
"sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28",
|
||||
"sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4",
|
||||
"sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba",
|
||||
"sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8",
|
||||
"sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5",
|
||||
@@ -2363,7 +2417,9 @@
|
||||
"sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43",
|
||||
"sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859",
|
||||
"sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673",
|
||||
"sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54",
|
||||
"sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a",
|
||||
"sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b",
|
||||
"sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab",
|
||||
"sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa",
|
||||
"sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c",
|
||||
@@ -2383,34 +2439,50 @@
|
||||
},
|
||||
"setuptools": {
|
||||
"hashes": [
|
||||
"sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f",
|
||||
"sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235"
|
||||
"sha256:4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87",
|
||||
"sha256:b454a35605876da60632df1a60f736524eb73cc47bbc9f3f1ef1b644de74fd2a"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==68.0.0"
|
||||
"markers": "python_version >= '3.8'",
|
||||
"version": "==68.2.2"
|
||||
},
|
||||
"simple-websocket": {
|
||||
"hashes": [
|
||||
"sha256:0ab46c8ffa51a46dc95eed94608b3b722841c0bf849def71d465c5c356679c82",
|
||||
"sha256:62c36bacfd75cc867927bb39d91951342a7234bdfe20f41dd969a3b8bb1413b7"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==0.10.1"
|
||||
},
|
||||
"urllib3": {
|
||||
"hashes": [
|
||||
"sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11",
|
||||
"sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4"
|
||||
"sha256:13abf37382ea2ce6fb744d4dad67838eec857c9f4f57009891805e0b5e123594",
|
||||
"sha256:ef16afa8ba34a1f989db38e1dbbe0c302e4289a47856990d0682e374563ce35e"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==2.0.4"
|
||||
"version": "==2.0.5"
|
||||
},
|
||||
"virtualenv": {
|
||||
"hashes": [
|
||||
"sha256:43a3052be36080548bdee0b42919c88072037d50d56c28bd3f853cbe92b953ff",
|
||||
"sha256:fd8a78f46f6b99a67b7ec5cf73f92357891a7b3a40fd97637c27f854aae3b9e0"
|
||||
"sha256:b80039f280f4919c77b30f1c23294ae357c4c8701042086e3fc005963e4e537b",
|
||||
"sha256:e8361967f6da6fbdf1426483bfe9fca8287c242ac0bc30429905721cefbff752"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==20.24.2"
|
||||
"version": "==20.24.5"
|
||||
},
|
||||
"websocket-client": {
|
||||
"hashes": [
|
||||
"sha256:c951af98631d24f8df89ab1019fc365f2227c0892f12fd150e935607c79dd0dd",
|
||||
"sha256:f1f9f2ad5291f0225a49efad77abf9e700b6fef553900623060dad6e26503b9d"
|
||||
"sha256:3aad25d31284266bcfcfd1fd8a743f63282305a364b8d0948a43bd606acc652f",
|
||||
"sha256:6cfc30d051ebabb73a5fa246efdcc14c8fbebbd0330f8984ac3bb6d9edd2ad03"
|
||||
],
|
||||
"version": "==1.6.1"
|
||||
"version": "==1.6.3"
|
||||
},
|
||||
"wsproto": {
|
||||
"hashes": [
|
||||
"sha256:ad565f26ecb92588a3e43bc3d96164de84cd9902482b130d0ddbaa9664a85065",
|
||||
"sha256:b9acddd652b585d75b20477888c56642fdade28bdfd3579aa24a4d2c037dd736"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==1.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,6 +54,7 @@ class Settings(BaseSettings):
|
||||
free_storage_limit: int = 1074000000
|
||||
pixabay_api_key: str | None = None
|
||||
mods: list[str] = []
|
||||
registration_disabled: bool = False
|
||||
|
||||
# storage_backend
|
||||
storage_backend: str | None = "local"
|
||||
|
||||
@@ -139,19 +139,19 @@ class QuizQuestion(BaseModel):
|
||||
|
||||
@validator("answers")
|
||||
def answers_not_none_if_abcd_type(cls, v, values):
|
||||
if values["type"] == QuizQuestionType.ABCD and type(v[0]) != ABCDQuizAnswer:
|
||||
if values["type"] == QuizQuestionType.ABCD and not isinstance(v[0], ABCDQuizAnswer):
|
||||
raise ValueError("Answers can't be none if type is ABCD")
|
||||
if values["type"] == QuizQuestionType.RANGE and type(v) != RangeQuizAnswer:
|
||||
if values["type"] == QuizQuestionType.RANGE and not isinstance(v, RangeQuizAnswer):
|
||||
raise ValueError("Answer must be from type RangeQuizAnswer if type is RANGE")
|
||||
if values["type"] == QuizQuestionType.VOTING and type(v[0]) != VotingQuizAnswer:
|
||||
if values["type"] == QuizQuestionType.VOTING and not isinstance(v[0], VotingQuizAnswer):
|
||||
raise ValueError("Answer must be from type VotingQuizAnswer if type is VOTING")
|
||||
if values["type"] == QuizQuestionType.TEXT and type(v[0]) != TextQuizAnswer:
|
||||
if values["type"] == QuizQuestionType.TEXT and not isinstance(v[0], TextQuizAnswer):
|
||||
raise ValueError("Answer must be from type TextQuizAnswer if type is TEXT")
|
||||
if values["type"] == QuizQuestionType.ORDER and type(v[0]) != VotingQuizAnswer:
|
||||
if values["type"] == QuizQuestionType.ORDER and not isinstance(v[0], VotingQuizAnswer):
|
||||
raise ValueError("Answer must be from type VotingQuizAnswer if type is ORDER")
|
||||
if values["type"] == QuizQuestionType.SLIDE and type(v[0]) != str:
|
||||
if values["type"] == QuizQuestionType.SLIDE and not isinstance(v, str):
|
||||
raise ValueError("Answer must be from type SlideElement if type is SLIDE")
|
||||
if values["type"] == QuizQuestionType.CHECK and type(v[0]) != ABCDQuizAnswer:
|
||||
if values["type"] == QuizQuestionType.CHECK and not isinstance(v[0], ABCDQuizAnswer):
|
||||
raise ValueError("Answers can't be none if type is CHECK")
|
||||
return v
|
||||
|
||||
|
||||
@@ -28,11 +28,14 @@ async def submit_answer_fn(data_answer: int, game_pin: str, player_id: str, now:
|
||||
game = PlayGame.parse_raw(redis_res_game)
|
||||
if not game.question_show:
|
||||
return
|
||||
|
||||
question = game.questions[game.current_question]
|
||||
question_time = datetime.fromisoformat(await redis.get(f"game:{game_pin}:current_time"))
|
||||
try:
|
||||
selected_answer = question.answers[data_answer].answer
|
||||
except KeyError:
|
||||
except (KeyError, IndexError):
|
||||
return
|
||||
if await redis.get(f"answer_given:{player_id}:{game.current_question}") is not None:
|
||||
return
|
||||
answer_right = False
|
||||
if question.type == QuizQuestionType.ABCD:
|
||||
@@ -48,6 +51,7 @@ async def submit_answer_fn(data_answer: int, game_pin: str, player_id: str, now:
|
||||
score = 0
|
||||
if answer_right:
|
||||
score = calculate_score(abs(diff), int(float(question.time)))
|
||||
await redis.set(f"answer_given:{player_id}:{game.current_question}", "True", ex=600)
|
||||
await redis.hincrby(f"game_session:{game_pin}:player_scores", username, score)
|
||||
answer_data = AnswerData(
|
||||
username=username,
|
||||
@@ -121,7 +125,6 @@ async def websocket_endpoint(ws: WebSocket, game_id: str):
|
||||
await ws.send_text(WebSocketRequest(type=WebSocketTypes.Error, data="InvalidButton").json())
|
||||
continue
|
||||
await submit_answer_fn(answer_index, game_pin, player_id, now)
|
||||
print(f"Data from client {game_id}: {data}")
|
||||
|
||||
except WebSocketDisconnect as ex:
|
||||
print(f"Client {game_id} is disconnected: {ex}")
|
||||
|
||||
@@ -65,6 +65,8 @@ router.include_router(oauth.router, tags=["users", "oauth"], prefix="/oauth")
|
||||
response_model_include={"id": ..., "verified": ..., "email": ...},
|
||||
)
|
||||
async def create_user(user: RouteUser, background_task: BackgroundTasks) -> User | JSONResponse:
|
||||
if settings.registration_disabled:
|
||||
raise HTTPException(status_code=423)
|
||||
user = User(**user.dict(), id=uuid.uuid4(), avatar=gzipped_user_avatar(), created_at=datetime.now())
|
||||
try:
|
||||
validate_email(user.email)
|
||||
|
||||
@@ -80,6 +80,53 @@ class _JoinGameData(BaseModel):
|
||||
custom_field: str | None
|
||||
|
||||
|
||||
class _RejoinGameData(BaseModel):
|
||||
old_sid: str
|
||||
game_pin: str
|
||||
username: str
|
||||
|
||||
|
||||
@sio.event
|
||||
async def rejoin_game(sid: str, data: dict):
|
||||
redis_res = await redis.get(f"game:{data['game_pin']}")
|
||||
if redis_res is None:
|
||||
await sio.emit("game_not_found", room=sid)
|
||||
return
|
||||
try:
|
||||
data = _RejoinGameData(**data)
|
||||
except ValidationError as e:
|
||||
await sio.emit("error", room=sid)
|
||||
print(e)
|
||||
redis_sid_key = f"game_session:{data.game_pin}:players:{data.username}"
|
||||
old_sid = await redis.get(redis_sid_key)
|
||||
if old_sid != data.old_sid:
|
||||
return
|
||||
encrypted_datetime = fernet.encrypt(datetime.now().isoformat().encode("utf-8")).decode("utf-8")
|
||||
await sio.emit("time_sync", encrypted_datetime, room=sid)
|
||||
await redis.set(redis_sid_key, sid)
|
||||
await redis.srem(
|
||||
f"game_session:{data.game_pin}:players", GamePlayer(username=data.username, sid=data.old_sid).json()
|
||||
)
|
||||
await redis.sadd(f"game_session:{data.game_pin}:players", GamePlayer(username=data.username, sid=sid).json())
|
||||
game_data = PlayGame.parse_raw(redis_res)
|
||||
session = {
|
||||
"game_pin": data.game_pin,
|
||||
"username": data.username,
|
||||
"sid_custom": sid,
|
||||
"admin": False,
|
||||
}
|
||||
await sio.save_session(sid, session)
|
||||
sio.enter_room(sid, data.game_pin)
|
||||
await sio.emit(
|
||||
"rejoined_game",
|
||||
{
|
||||
**json.loads(game_data.json(exclude={"quiz_id", "questions", "user_id"})),
|
||||
"question_count": len(game_data.questions),
|
||||
},
|
||||
room=sid,
|
||||
)
|
||||
|
||||
|
||||
@sio.event
|
||||
async def join_game(sid: str, data: dict):
|
||||
redis_res = await redis.get(f"game:{data['game_pin']}")
|
||||
@@ -177,12 +224,13 @@ async def join_game(sid: str, data: dict):
|
||||
@sio.event
|
||||
async def start_game(sid: str, _data: dict):
|
||||
session = await sio.get_session(sid)
|
||||
if session["admin"]:
|
||||
game_data = PlayGame.parse_raw(await redis.get(f"game:{session['game_pin']}"))
|
||||
game_data.started = True
|
||||
await redis.set(f"game:{session['game_pin']}", game_data.json(), ex=7200)
|
||||
await redis.delete(f"game_in_lobby:{game_data.user_id.hex}")
|
||||
await sio.emit("start_game", room=session["game_pin"])
|
||||
if not session["admin"]:
|
||||
return
|
||||
game_data = PlayGame.parse_raw(await redis.get(f"game:{session['game_pin']}"))
|
||||
game_data.started = True
|
||||
await redis.set(f"game:{session['game_pin']}", game_data.json(), ex=7200)
|
||||
await redis.delete(f"game_in_lobby:{game_data.user_id.hex}")
|
||||
await sio.emit("start_game", room=session["game_pin"])
|
||||
|
||||
|
||||
class _RegisterAsAdminData(BaseModel):
|
||||
@@ -225,15 +273,20 @@ async def register_as_admin(sid: str, data: dict):
|
||||
@sio.event
|
||||
async def get_question_results(sid: str, data: dict):
|
||||
session = await sio.get_session(sid)
|
||||
if session["admin"]:
|
||||
redis_res = AnswerDataList.parse_raw(
|
||||
await redis.get(f"game_session:{session['game_pin']}:{data['question_number']}")
|
||||
)
|
||||
game_data = PlayGame.parse_raw(await redis.get(f"game:{session['game_pin']}"))
|
||||
game_data.question_show = False
|
||||
await redis.set(f"game:{session['game_pin']}", game_data.json())
|
||||
game_pin = session["game_pin"]
|
||||
await sio.emit("question_results", redis_res.dict()["__root__"], room=game_pin)
|
||||
if not session["admin"]:
|
||||
return
|
||||
|
||||
redis_res = await redis.get(f"game_session:{session['game_pin']}:{data['question_number']}")
|
||||
if redis_res is None:
|
||||
redis_res = []
|
||||
else:
|
||||
redis_res = AnswerDataList.parse_raw(redis_res).dict()["__root__"]
|
||||
game_data = PlayGame.parse_raw(await redis.get(f"game:{session['game_pin']}"))
|
||||
game_data.question_show = False
|
||||
await redis.set(f"game:{session['game_pin']}", game_data.json())
|
||||
game_pin = session["game_pin"]
|
||||
|
||||
await sio.emit("question_results", redis_res, room=game_pin)
|
||||
|
||||
|
||||
class ABCDQuizAnswerWithoutSolution(BaseModel):
|
||||
@@ -252,12 +305,12 @@ class ReturnQuestion(QuizQuestion):
|
||||
|
||||
@validator("answers")
|
||||
def answers_not_none_if_abcd_type(cls, v, values):
|
||||
if values["type"] == QuizQuestionType.ABCD and type(v[0]) != ABCDQuizAnswerWithoutSolution:
|
||||
if values["type"] == QuizQuestionType.ABCD and type(v[0]) is not ABCDQuizAnswerWithoutSolution:
|
||||
raise ValueError("Answers can't be none if type is ABCD")
|
||||
if values["type"] == QuizQuestionType.RANGE and type(v) != RangeQuizAnswerWithoutSolution:
|
||||
if values["type"] == QuizQuestionType.RANGE and type(v) is not RangeQuizAnswerWithoutSolution:
|
||||
raise ValueError("Answer must be from type RangeQuizAnswer if type is RANGE")
|
||||
# skipcq: PTC-W0047
|
||||
if values["type"] == QuizQuestionType.VOTING and type(v[0]) != VotingQuizAnswer:
|
||||
if values["type"] == QuizQuestionType.VOTING and type(v[0]) is not VotingQuizAnswer:
|
||||
pass
|
||||
return v
|
||||
|
||||
@@ -266,37 +319,38 @@ class ReturnQuestion(QuizQuestion):
|
||||
async def set_question_number(sid, data: str):
|
||||
# data is just a number (as a str) of the question
|
||||
session = await sio.get_session(sid)
|
||||
if session["admin"]:
|
||||
game_pin = session["game_pin"]
|
||||
game_data = PlayGame.parse_raw(await redis.get(f"game:{session['game_pin']}"))
|
||||
game_data.current_question = int(float(data))
|
||||
game_data.question_show = True
|
||||
await redis.set(f"game:{session['game_pin']}", game_data.json(), ex=7200)
|
||||
await redis.set(f"game:{session['game_pin']}:current_time", datetime.now().isoformat(), ex=7200)
|
||||
temp_return = game_data.dict(include={"questions"})["questions"][int(float(data))]
|
||||
if game_data.questions[int(float(data))].type == QuizQuestionType.SLIDE:
|
||||
await sio.emit(
|
||||
"set_question_number",
|
||||
{
|
||||
"question_index": int(float(data)),
|
||||
},
|
||||
room=sid,
|
||||
)
|
||||
return
|
||||
if game_data.questions[int(float(data))].type == QuizQuestionType.VOTING:
|
||||
for i in range(len(temp_return["answers"])):
|
||||
temp_return["answers"][i] = VotingQuizAnswer(**temp_return["answers"][i])
|
||||
temp_return["type"] = game_data.questions[int(float(data))].type
|
||||
if temp_return["type"] == QuizQuestionType.ORDER:
|
||||
random.shuffle(temp_return["answers"])
|
||||
if not session["admin"]:
|
||||
return
|
||||
game_pin = session["game_pin"]
|
||||
game_data = PlayGame.parse_raw(await redis.get(f"game:{session['game_pin']}"))
|
||||
game_data.current_question = int(float(data))
|
||||
game_data.question_show = True
|
||||
await redis.set(f"game:{session['game_pin']}", game_data.json(), ex=7200)
|
||||
await redis.set(f"game:{session['game_pin']}:current_time", datetime.now().isoformat(), ex=7200)
|
||||
temp_return = game_data.dict(include={"questions"})["questions"][int(float(data))]
|
||||
if game_data.questions[int(float(data))].type == QuizQuestionType.SLIDE:
|
||||
await sio.emit(
|
||||
"set_question_number",
|
||||
{
|
||||
"question_index": int(float(data)),
|
||||
"question": ReturnQuestion(**temp_return).dict(),
|
||||
},
|
||||
room=game_pin,
|
||||
room=sid,
|
||||
)
|
||||
return
|
||||
if game_data.questions[int(float(data))].type == QuizQuestionType.VOTING:
|
||||
for i in range(len(temp_return["answers"])):
|
||||
temp_return["answers"][i] = VotingQuizAnswer(**temp_return["answers"][i])
|
||||
temp_return["type"] = game_data.questions[int(float(data))].type
|
||||
if temp_return["type"] == QuizQuestionType.ORDER:
|
||||
random.shuffle(temp_return["answers"])
|
||||
await sio.emit(
|
||||
"set_question_number",
|
||||
{
|
||||
"question_index": int(float(data)),
|
||||
"question": ReturnQuestion(**temp_return).dict(),
|
||||
},
|
||||
room=game_pin,
|
||||
)
|
||||
|
||||
|
||||
class _SubmitAnswerDataOrderType(BaseModel):
|
||||
@@ -379,6 +433,8 @@ async def submit_answer(sid: str, data: dict):
|
||||
score = calculate_score(
|
||||
abs(diff) - latency, int(float(game_data.questions[int(float(data.question_index))].time))
|
||||
)
|
||||
if score > 1000:
|
||||
score = 1000
|
||||
await redis.hincrby(f"game_session:{session['game_pin']}:player_scores", session["username"], score)
|
||||
answer_data = AnswerData(
|
||||
username=session["username"],
|
||||
|
||||
@@ -16,6 +16,7 @@ ENV VITE_HCAPTCHA=ee81b2a1-acf3-4d20-b2a4-a7ea94c7eba5
|
||||
ENV VITE_GOOGLE_AUTH_ENABLED=true
|
||||
ENV VITE_GITHUB_AUTH_ENABLED=true
|
||||
ENV VITE_CAPTCHA_ENABLED=true
|
||||
ENV VITE_REGISTRATION_DISABLED=True
|
||||
#ENV VITE_PLAUSIBLE_DATA_URL=
|
||||
# change working directory
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
Vendored
+14
@@ -0,0 +1,14 @@
|
||||
// SPDX-FileCopyrightText: 2023 Marlon W (Mawoka)
|
||||
//
|
||||
// SPDX-License-Identifier: MPL-2.0
|
||||
|
||||
/// <reference types="vite/client" />
|
||||
|
||||
interface ImportMetaEnv {
|
||||
readonly VITE_APP_TITLE: string;
|
||||
// more env variables...
|
||||
}
|
||||
|
||||
interface ImportMeta {
|
||||
readonly env: ImportMetaEnv;
|
||||
}
|
||||
+19
-177
@@ -11,16 +11,14 @@ SPDX-License-Identifier: MPL-2.0
|
||||
import type { PlayerAnswer } from '$lib/admin.ts';
|
||||
import { socket } from './socket';
|
||||
import { QuizQuestionType } from '$lib/quiz_types';
|
||||
import { kahoot_icons } from './play/kahoot_mode_assets/kahoot_icons';
|
||||
import CircularTimer from '$lib/play/circular_progress.svelte';
|
||||
import Spinner from '$lib/Spinner.svelte';
|
||||
import { get_foreground_color } from '$lib/helpers';
|
||||
import MediaComponent from '$lib/editor/MediaComponent.svelte';
|
||||
import Controls from '$lib/play/admin/controls.svelte';
|
||||
import Question from '$lib/play/admin/question.svelte';
|
||||
|
||||
export let game_token: string;
|
||||
export let quiz_data: QuizData;
|
||||
export let game_mode;
|
||||
export let bg_color;
|
||||
export let game_mode: string;
|
||||
export let bg_color: string;
|
||||
|
||||
const { t } = getLocalization();
|
||||
const default_colors = ['#D6EDC9', '#B07156', '#7F7057', '#4E6E58'];
|
||||
@@ -37,10 +35,6 @@ SPDX-License-Identifier: MPL-2.0
|
||||
|
||||
export let player_scores;
|
||||
|
||||
const set_question_number = (q_number: number) => {
|
||||
socket.emit('set_question_number', q_number.toString());
|
||||
};
|
||||
|
||||
socket.on('get_question_results', () => {
|
||||
console.log('get_question_results');
|
||||
});
|
||||
@@ -54,20 +48,6 @@ SPDX-License-Identifier: MPL-2.0
|
||||
answer_count = 0;
|
||||
timer(timer_res);
|
||||
});
|
||||
const get_question_results = () => {
|
||||
socket.emit('get_question_results', {
|
||||
game_id: game_token,
|
||||
question_number: shown_question_now
|
||||
});
|
||||
};
|
||||
const show_solutions = () => {
|
||||
socket.emit('show_solutions', {});
|
||||
timer_res = '0';
|
||||
};
|
||||
|
||||
const get_final_results = () => {
|
||||
socket.emit('get_final_results', {});
|
||||
};
|
||||
|
||||
socket.on('solutions', (_) => {
|
||||
timer_res = '0';
|
||||
@@ -109,97 +89,33 @@ SPDX-License-Identifier: MPL-2.0
|
||||
timer_res = seconds.toString();
|
||||
}, 1000);
|
||||
};
|
||||
let circular_progress = 0;
|
||||
$: {
|
||||
try {
|
||||
circular_progress =
|
||||
1 -
|
||||
((100 / quiz_data.questions[selected_question].time) * parseInt(timer_res)) / 100;
|
||||
} catch {
|
||||
circular_progress = 0;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
{#if control_visible}
|
||||
<div
|
||||
class="fixed top-0 w-full h-10 z-20 grid grid-cols-2"
|
||||
style="background: {bg_color ? bg_color : 'transparent'}"
|
||||
class:text-black={bg_color}
|
||||
>
|
||||
<p class="mr-auto ml-0 col-start-1 col-end-1">
|
||||
{selected_question === -1 ? '0' : selected_question + 1}
|
||||
/{quiz_data.questions.length}
|
||||
</p>
|
||||
<div class="justify-self-end ml-auto mr-0 col-start-3 col-end-3">
|
||||
{#if selected_question + 1 === quiz_data.questions.length && ((timer_res === '0' && question_results !== null) || quiz_data?.questions?.[selected_question]?.type === QuizQuestionType.SLIDE)}
|
||||
{#if JSON.stringify(final_results) === JSON.stringify([null])}
|
||||
<button on:click={get_final_results} class="admin-button"
|
||||
>{$t('admin_page.get_final_results')}
|
||||
</button>
|
||||
{/if}
|
||||
{:else if timer_res === '0' || selected_question === -1}
|
||||
{#if (selected_question + 1 !== quiz_data.questions.length && question_results !== null) || selected_question === -1}
|
||||
<button
|
||||
on:click={() => {
|
||||
set_question_number(selected_question + 1);
|
||||
}}
|
||||
class="admin-button"
|
||||
>{$t('admin_page.next_question', { question: selected_question + 2 })}
|
||||
</button>
|
||||
{/if}
|
||||
{#if question_results === null && selected_question !== -1}
|
||||
{#if quiz_data.questions[selected_question].type === QuizQuestionType.SLIDE}
|
||||
<button
|
||||
on:click={() => {
|
||||
set_question_number(selected_question + 1);
|
||||
}}
|
||||
class="admin-button"
|
||||
>{$t('admin_page.next_question', { question: selected_question + 2 })}
|
||||
</button>
|
||||
{:else}
|
||||
<button on:click={get_question_results} class="admin-button"
|
||||
>{$t('admin_page.show_results')}
|
||||
</button>
|
||||
{/if}
|
||||
{/if}
|
||||
{:else if selected_question !== -1}
|
||||
{#if quiz_data.questions[selected_question].type === QuizQuestionType.SLIDE}
|
||||
<button
|
||||
on:click={() => {
|
||||
set_question_number(selected_question + 1);
|
||||
}}
|
||||
class="admin-button"
|
||||
>{$t('admin_page.next_question', { question: selected_question + 2 })}
|
||||
</button>
|
||||
{:else}
|
||||
<button on:click={show_solutions} class="admin-button"
|
||||
>{$t('admin_page.stop_time_and_solutions')}
|
||||
</button>
|
||||
{/if}
|
||||
{:else}
|
||||
<!-- <button
|
||||
on:click={() => {
|
||||
set_question_number(selected_question + 1);
|
||||
}}
|
||||
class='admin-button'
|
||||
>Next Question ({selected_question + 2}
|
||||
)
|
||||
</button>-->
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
<Controls
|
||||
{bg_color}
|
||||
{selected_question}
|
||||
{quiz_data}
|
||||
bind:timer_res
|
||||
{final_results}
|
||||
{socket}
|
||||
{question_results}
|
||||
{game_token}
|
||||
{shown_question_now}
|
||||
/>
|
||||
{/if}
|
||||
{#if timer_res !== '0' && selected_question >= 0}
|
||||
<span
|
||||
class="fixed top-0 bg-red-500 h-8 transition-all"
|
||||
class:mt-10={control_visible}
|
||||
style="width: {(100 / quiz_data.questions[selected_question].time) * parseInt(timer_res)}vw"
|
||||
style="width: {(100 / parseInt(quiz_data.questions[selected_question].time)) *
|
||||
parseInt(timer_res)}vw"
|
||||
/>
|
||||
{/if}
|
||||
|
||||
<div class="w-full h-full" class:pt-28={control_visible} class:pt-12={!control_visible}>
|
||||
{#if timer_res !== undefined && !final_results_clicked && !question_results}
|
||||
<!-- Question is shown -->
|
||||
{#if quiz_data.questions[selected_question].type === QuizQuestionType.SLIDE}
|
||||
{#await import('$lib/play/admin/slide.svelte')}
|
||||
<Spinner my_20={false} />
|
||||
@@ -210,81 +126,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
/>
|
||||
{/await}
|
||||
{:else}
|
||||
<div class="flex flex-col justify-center w-screen h-1/6">
|
||||
<h1 class="text-6xl text-center">
|
||||
{@html quiz_data.questions[selected_question].question}
|
||||
</h1>
|
||||
<!-- <span class='text-center py-2 text-lg'>{$t('admin_page.time_left')}: {timer_res}</span>-->
|
||||
<div class="grid grid-cols-3 my-2">
|
||||
<span />
|
||||
<div class="m-auto">
|
||||
<CircularTimer
|
||||
bind:text={timer_res}
|
||||
bind:progress={circular_progress}
|
||||
color="#ef4444"
|
||||
/>
|
||||
</div>
|
||||
<p class="m-auto text-3xl">
|
||||
{$t('admin_page.answers_submitted', { answer_count: answer_count })}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{#if quiz_data.questions[selected_question].image !== null}
|
||||
<div class="flex w-full">
|
||||
<MediaComponent
|
||||
src={quiz_data.questions[selected_question].image}
|
||||
muted={false}
|
||||
css_classes="max-h-[20vh] object-cover mx-auto mb-8 w-auto"
|
||||
/>
|
||||
</div>
|
||||
{/if}
|
||||
{#if quiz_data.questions[selected_question].type === QuizQuestionType.ABCD || quiz_data.questions[selected_question].type === QuizQuestionType.VOTING || quiz_data.questions[selected_question].type === QuizQuestionType.CHECK}
|
||||
<div class="grid grid-rows-2 grid-flow-col auto-cols-auto gap-2 w-full p-4">
|
||||
{#each quiz_data.questions[selected_question].answers as answer, i}
|
||||
<div
|
||||
class="rounded-lg h-fit flex border-2 border-black"
|
||||
style="background-color: {answer.color ?? default_colors[i]};"
|
||||
class:opacity-50={!answer.right &&
|
||||
timer_res === '0' &&
|
||||
quiz_data.questions[selected_question].type ===
|
||||
QuizQuestionType.ABCD}
|
||||
>
|
||||
<img
|
||||
class="w-14 inline-block pl-4"
|
||||
alt="icon"
|
||||
style="color: {get_foreground_color(
|
||||
answer.color ?? default_colors[i]
|
||||
)}"
|
||||
src={kahoot_icons[i]}
|
||||
/>
|
||||
<span
|
||||
class="text-center text-2xl px-2 py-4 w-full"
|
||||
style="color: {get_foreground_color(
|
||||
answer.color ?? default_colors[i]
|
||||
)}">{answer.answer}</span
|
||||
>
|
||||
<span class="pl-4 w-10" />
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
{:else if quiz_data.questions[selected_question].type === QuizQuestionType.TEXT}
|
||||
{#if timer_res === '0'}
|
||||
<div class="grid grid-cols-2 gap-2 w-full p-4">
|
||||
{#each quiz_data.questions[selected_question].answers as answer, i}
|
||||
<div class="rounded-lg h-fit flex bg-[#B07156]">
|
||||
<span class="text-center text-2xl px-2 py-4 w-full text-black"
|
||||
>{answer.answer}</span
|
||||
>
|
||||
<span class="pl-4 w-10" />
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
{:else}
|
||||
<div class="flex justify-center">
|
||||
<p class="text-2xl">{$t('admin_page.enter_answer_into_field')}</p>
|
||||
</div>
|
||||
{/if}
|
||||
{/if}
|
||||
<Question {quiz_data} {selected_question} {timer_res} {answer_count} {default_colors} />
|
||||
{/if}
|
||||
{/if}
|
||||
<br />
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Marlon W (Mawoka)
|
||||
|
||||
SPDX-License-Identifier: MPL-2.0
|
||||
-->
|
||||
|
||||
<script lang="ts">
|
||||
import Smalltop from './smalltop.svelte';
|
||||
import { PopoverTypes } from '$lib/components/popover/smalltop';
|
||||
import Cookies from 'js-cookie';
|
||||
import { onMount } from 'svelte';
|
||||
import { getLocalization } from '$lib/i18n';
|
||||
|
||||
const { t } = getLocalization();
|
||||
|
||||
let open = false;
|
||||
onMount(() => {
|
||||
if (Cookies.get('commandpalette_notice')) {
|
||||
return;
|
||||
}
|
||||
open = true;
|
||||
Cookies.set('commandpalette_notice', 'shown', {
|
||||
expires: new Date().setDate(new Date().getDate() + 30)
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<Smalltop bind:open type={PopoverTypes.Generic} data={$t('dashboard.commandpalette_notice')} />
|
||||
@@ -7,13 +7,19 @@ SPDX-License-Identifier: MPL-2.0
|
||||
<script lang="ts">
|
||||
import { fly } from 'svelte/transition';
|
||||
import { getLocalization } from '$lib/i18n';
|
||||
import { createEventDispatcher } from 'svelte';
|
||||
import { PopoverTypes } from './smalltop';
|
||||
|
||||
const { t } = getLocalization();
|
||||
|
||||
const dispatch = createEventDispatcher();
|
||||
|
||||
export let open = false;
|
||||
export let type: PopoverTypes;
|
||||
export let data: undefined | { game_pin: number | string; game_id: string } = undefined;
|
||||
export let data: undefined | { game_pin: number | string; game_id: string } | string =
|
||||
undefined;
|
||||
|
||||
$: dispatch('open', open);
|
||||
</script>
|
||||
|
||||
{#if open}
|
||||
@@ -29,6 +35,8 @@ SPDX-License-Identifier: MPL-2.0
|
||||
class="underline"
|
||||
href="/remote?game_pin={data.game_pin}&game_id={data.game_id}">here</a
|
||||
> to join as a remote.
|
||||
{:else if type === PopoverTypes.Generic}
|
||||
{@html data}
|
||||
{:else}
|
||||
<p>Error!!!</p>
|
||||
{/if}
|
||||
|
||||
@@ -5,5 +5,6 @@
|
||||
/* eslint-disable no-unused-vars */
|
||||
export enum PopoverTypes {
|
||||
Copy,
|
||||
GameInLobby
|
||||
GameInLobby,
|
||||
Generic
|
||||
}
|
||||
|
||||
@@ -76,11 +76,27 @@ SPDX-License-Identifier: MPL-2.0
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
const on_parent_click = (e: Event) => {
|
||||
if (e.target !== e.currentTarget) {
|
||||
return;
|
||||
}
|
||||
quiz_id = null;
|
||||
};
|
||||
const close_start_game_if_esc_is_pressed = (key: KeyboardEvent) => {
|
||||
if (key.code === 'Escape') {
|
||||
quiz_id = null;
|
||||
}
|
||||
};
|
||||
onMount(() => {
|
||||
document.body.addEventListener('keydown', close_start_game_if_esc_is_pressed);
|
||||
});
|
||||
</script>
|
||||
|
||||
<div
|
||||
class="fixed top-0 left-0 flex justify-center w-screen h-screen bg-black bg-opacity-60 z-50 text-black"
|
||||
transition:fade={{ duration: 100 }}
|
||||
on:click={on_parent_click}
|
||||
>
|
||||
<div
|
||||
class="w-5/6 h-5/6 bg-black m-auto rounded-lg shadow-lg p-4 flex flex-col"
|
||||
|
||||
@@ -97,11 +97,11 @@ SPDX-License-Identifier: MPL-2.0
|
||||
<input
|
||||
bind:value={answer.answer}
|
||||
type="text"
|
||||
class="border-b-2 border-dotted w-5/6 text-center rounded-lg bg-transparent"
|
||||
class="border-b-2 border-dotted w-5/6 text-center rounded-lg bg-transparent outline-none focus:shadow-2xl transition-all"
|
||||
style="background-color: {answer.color}; color: {get_foreground_color(
|
||||
answer.color
|
||||
)}"
|
||||
placeholder={$t('editor.empty')}
|
||||
placeholder={$t('editor.enter_answer')}
|
||||
/>
|
||||
<button
|
||||
type="button"
|
||||
|
||||
@@ -96,7 +96,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
on:click={on_parent_click}
|
||||
transition:fade|local={{ duration: 100 }}
|
||||
>
|
||||
<div class="m-auto w-2/3 h-5/6 rounded shadow-2xl bg-white dark:bg-gray-600 p-6">
|
||||
<div class="m-auto w-2/3 h-5/6 rounded shadow-2xl bg-white dark:bg-gray-600 p-6 flex flex-col">
|
||||
<h1 class="text-center text-3xl mb-6">{$t('quiztivity.editor.select_page_type')}</h1>
|
||||
<div class="grid grid-cols-4 gap-4 overflow-y-scroll">
|
||||
{#each question_types as qt, i}
|
||||
@@ -111,5 +111,17 @@ SPDX-License-Identifier: MPL-2.0
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
|
||||
<div class="mt-auto flex justify-center">
|
||||
<p>
|
||||
{$t('editor.need_more_help')}
|
||||
<a
|
||||
href="/docs/quiz/question-types"
|
||||
target="_blank"
|
||||
class="text-sm font-bold underline text-blue-500 dark:text-blue-400"
|
||||
>{$t('editor.visit_docs')}</a
|
||||
>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -7,14 +7,17 @@ SPDX-License-Identifier: MPL-2.0
|
||||
<script lang="ts">
|
||||
import { browser } from '$app/environment';
|
||||
import { fade } from 'svelte/transition';
|
||||
import { thumbHashToDataURL } from 'thumbhash';
|
||||
|
||||
export let src: string;
|
||||
export let css_classes = 'max-h-64 h-auto w-auto';
|
||||
export let added_thumbhash_classes = 'h-full';
|
||||
export let muted = true;
|
||||
export let allow_fullscreen = true;
|
||||
let type: 'img' | 'video' | undefined = undefined;
|
||||
|
||||
let img_data;
|
||||
let thumbhash_data: string;
|
||||
|
||||
function base64ToBytes(base64: string): Uint8Array {
|
||||
const binString = atob(base64);
|
||||
@@ -31,11 +34,13 @@ SPDX-License-Identifier: MPL-2.0
|
||||
type = 'video';
|
||||
} else {
|
||||
type = 'img';
|
||||
thumbhash_data = thumbHashToDataURL(base64ToBytes(res.headers.get('x-thumbhash')));
|
||||
const data = await fetch(`/api/v1/storage/download/${src}`);
|
||||
img_data = {
|
||||
data: URL.createObjectURL(await data.blob()),
|
||||
alt_text: new TextDecoder().decode(base64ToBytes(res.headers.get('X-Alt-Text')))
|
||||
};
|
||||
thumbhash_data = undefined;
|
||||
}
|
||||
};
|
||||
const update_url = () => {
|
||||
@@ -58,10 +63,11 @@ SPDX-License-Identifier: MPL-2.0
|
||||
</script>
|
||||
|
||||
{#await media}
|
||||
<p>Placeholder</p>
|
||||
<img src={thumbhash_data} class={`${css_classes} ${added_thumbhash_classes}`} />
|
||||
{:then data}
|
||||
{#if type === 'img'}
|
||||
<img
|
||||
in:fade={{ duration: 300 }}
|
||||
src={img_data.data}
|
||||
alt={img_data.alt_text ?? 'Not available'}
|
||||
class={css_classes}
|
||||
|
||||
@@ -9,6 +9,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
import type { EditorData, OrderQuizAnswer } from '$lib/quiz_types';
|
||||
import { fade } from 'svelte/transition';
|
||||
import { flip } from 'svelte/animate';
|
||||
import { get_foreground_color } from '$lib/helpers.ts';
|
||||
|
||||
const { t } = getLocalization();
|
||||
|
||||
@@ -51,6 +52,19 @@ SPDX-License-Identifier: MPL-2.0
|
||||
id: [i]
|
||||
};
|
||||
}
|
||||
const default_colors = ['#D6EDC9', '#B07156', '#7F7057', '#4E6E58'];
|
||||
const set_colors_if_unset = () => {
|
||||
for (let i = 0; i < data.questions[selected_question].answers.length; i++) {
|
||||
if (!data.questions[selected_question].answers[i].color) {
|
||||
data.questions[selected_question].answers[i].color = default_colors[i];
|
||||
}
|
||||
}
|
||||
};
|
||||
$: {
|
||||
set_colors_if_unset();
|
||||
data;
|
||||
selected_question;
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="w-full">
|
||||
@@ -140,8 +154,10 @@ SPDX-License-Identifier: MPL-2.0
|
||||
<input
|
||||
bind:value={answer.answer}
|
||||
type="text"
|
||||
class="border-b-2 border-dotted w-5/6 text-center rounded-lg bg-transparent"
|
||||
style="background-color: {answer.color ?? 'transparent'}"
|
||||
class="border-b-2 border-dotted w-5/6 text-center rounded-lg bg-transparent outline-none"
|
||||
style="background-color: {answer.color}; color: {get_foreground_color(
|
||||
answer.color
|
||||
)}"
|
||||
placeholder={$t('editor.empty')}
|
||||
/>
|
||||
<input
|
||||
|
||||
@@ -10,6 +10,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
import { getLocalization } from '$lib/i18n';
|
||||
import { reach } from 'yup';
|
||||
import { TextQuestionSchema } from '$lib/yupSchemas';
|
||||
import { createTippy } from 'svelte-tippy';
|
||||
|
||||
export let selected_question: number;
|
||||
export let data: EditorData;
|
||||
@@ -27,6 +28,11 @@ SPDX-License-Identifier: MPL-2.0
|
||||
};
|
||||
}
|
||||
|
||||
const tippy = createTippy({
|
||||
arrow: true,
|
||||
animation: 'perspective-subtle'
|
||||
});
|
||||
|
||||
const get_empty_answer = (): TextQuizAnswer => {
|
||||
return {
|
||||
answer: '',
|
||||
@@ -74,14 +80,15 @@ SPDX-License-Identifier: MPL-2.0
|
||||
<input
|
||||
bind:value={answer.answer}
|
||||
type="text"
|
||||
class="border-b-2 border-dotted w-5/6 text-center rounded-lg bg-transparent"
|
||||
placeholder={$t('editor.empty')}
|
||||
class="border-b-2 border-dotted w-5/6 text-center rounded-lg bg-transparent outline-none"
|
||||
placeholder={$t('editor.enter_answer')}
|
||||
/>
|
||||
<button
|
||||
type="button"
|
||||
on:click={() => {
|
||||
answer.case_sensitive = !answer.case_sensitive;
|
||||
}}
|
||||
use:tippy={{ content: 'Case sensitive?', placement: 'top' }}
|
||||
>
|
||||
{#if answer.case_sensitive}
|
||||
<svg
|
||||
|
||||
@@ -13,6 +13,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
import Spinner from '../Spinner.svelte';
|
||||
// import { createTippy } from 'svelte-tippy';
|
||||
import { getLocalization } from '$lib/i18n';
|
||||
import MediaComponent from '$lib/editor/MediaComponent.svelte';
|
||||
// import MediaComponent from "$lib/editor/MediaComponent.svelte";
|
||||
|
||||
const { t } = getLocalization();
|
||||
@@ -79,7 +80,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
*/
|
||||
</script>
|
||||
|
||||
<div class="w-full max-h-full pb-20 px-20 h-full">
|
||||
<div class="w-full max-h-full pb-10 px-10 h-full">
|
||||
<div class="rounded-lg bg-white w-full h-full border-gray-500 dark:bg-gray-700 shadow-2xl">
|
||||
<div class="h-12 bg-gray-300 rounded-t-lg dark:bg-gray-500">
|
||||
<div class="flex align-middle p-4 gap-3">
|
||||
@@ -123,9 +124,9 @@ SPDX-License-Identifier: MPL-2.0
|
||||
{/await}
|
||||
{/key}
|
||||
</div>
|
||||
{#if data.questions[selected_question].image != undefined && data.questions[selected_question].image !== ''}
|
||||
<div class="flex justify-center pt-10 w-full max-h-72">
|
||||
<div class="max-h-72 h-auto relative">
|
||||
{#if data.questions[selected_question].image}
|
||||
<div class="flex justify-center pt-10 w-full h-72">
|
||||
<div class="h-72 relative">
|
||||
<button
|
||||
class="rounded-full absolute -top-2 -right-2 opacity-70 hover:opacity-100 transition"
|
||||
type="button"
|
||||
@@ -148,9 +149,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
/>
|
||||
</svg>
|
||||
</button>
|
||||
{#await import('$lib/editor/MediaComponent.svelte') then c}
|
||||
<svelte:component this={c.default} bind:src={image_url} />
|
||||
{/await}
|
||||
<MediaComponent bind:src={image_url} />
|
||||
</div>
|
||||
</div>
|
||||
{:else}
|
||||
@@ -187,15 +186,16 @@ SPDX-License-Identifier: MPL-2.0
|
||||
type="number"
|
||||
max="999"
|
||||
min="1"
|
||||
class="w-20 bg-transparent rounded-lg text-lg border-2 border-gray-500 p-1"
|
||||
class="w-20 bg-transparent rounded-lg text-lg border-2 border-gray-500 p-1 outline-none focus:shadow-2xl"
|
||||
bind:value={data.questions[selected_question].time}
|
||||
/>
|
||||
<p class="inline-block">s</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex justify-center pt-10">
|
||||
<div class="flex justify-center py-5">
|
||||
<p>{type_to_name[String(data.questions[selected_question].type)]}</p>
|
||||
</div>
|
||||
<div class="flex justify-center py-10 w-full">
|
||||
<div class="flex justify-center w-full">
|
||||
{#if type === QuizQuestionType.ABCD || type === QuizQuestionType.CHECK}
|
||||
{#await import('$lib/editor/ABCDEditorPart.svelte')}
|
||||
<Spinner my_20={false} />
|
||||
@@ -208,7 +208,6 @@ SPDX-License-Identifier: MPL-2.0
|
||||
/>
|
||||
{/await}
|
||||
{:else if type === QuizQuestionType.RANGE}
|
||||
<p>Range</p>
|
||||
<RangeEditor bind:selected_question bind:data />
|
||||
{:else if type === QuizQuestionType.VOTING}
|
||||
{#await import('$lib/editor/VotingEditorPart.svelte')}
|
||||
|
||||
@@ -8,6 +8,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
import type { EditorData } from '$lib/quiz_types';
|
||||
import { getLocalization } from '$lib/i18n';
|
||||
import Spinner from '$lib/Spinner.svelte';
|
||||
import { createTippy } from 'svelte-tippy';
|
||||
|
||||
const { t } = getLocalization();
|
||||
|
||||
@@ -18,6 +19,10 @@ SPDX-License-Identifier: MPL-2.0
|
||||
export let data: EditorData;
|
||||
|
||||
let custom_bg_color = Boolean(data.background_color);
|
||||
const tippy = createTippy({
|
||||
arrow: true,
|
||||
animation: 'perspective-subtle'
|
||||
});
|
||||
|
||||
$: data.background_color = custom_bg_color ? data.background_color : undefined;
|
||||
</script>
|
||||
@@ -45,10 +50,10 @@ SPDX-License-Identifier: MPL-2.0
|
||||
>
|
||||
<div class="flex justify-center pt-10 w-full">
|
||||
<!--<input
|
||||
type="text"
|
||||
bind:value={data.title}
|
||||
class="p-3 rounded-lg border-gray-500 border text-center w-1/3 text-lg font-semibold dark:bg-gray-500"
|
||||
/>-->
|
||||
type="text"
|
||||
bind:value={data.title}
|
||||
class="p-3 rounded-lg border-gray-500 border text-center w-1/3 text-lg font-semibold dark:bg-gray-500"
|
||||
/>-->
|
||||
{#await import('$lib/inline-editor.svelte')}
|
||||
<Spinner my_20={false} />
|
||||
{:then c}
|
||||
@@ -58,8 +63,9 @@ SPDX-License-Identifier: MPL-2.0
|
||||
<div class="flex justify-center pt-10 w-full max-h-32">
|
||||
<textarea
|
||||
type="text"
|
||||
placeholder="Description"
|
||||
bind:value={data.description}
|
||||
class="p-3 rounded-lg border-gray-500 border text-center w-1/3 h-20 resize-none dark:bg-gray-500"
|
||||
class="p-3 rounded-lg border-gray-500 border text-center w-1/3 h-20 resize-none dark:bg-gray-500 outline-none focus:shadow-2xl transition-all"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -134,12 +140,15 @@ SPDX-License-Identifier: MPL-2.0
|
||||
<div class="grid grid-cols-3 w-fit h-fit gap-4">
|
||||
<div
|
||||
class="max-w-full transition-all"
|
||||
class:pointer-events-none={custom_bg_color}
|
||||
class:opacity-50={custom_bg_color}
|
||||
use:tippy={{ content: 'use the standard background', placement: 'left' }}
|
||||
>
|
||||
<div class="bg-gray-200 rounded-lg w-full h-full p-1">
|
||||
<div
|
||||
class="bg-gray-200 rounded-lg w-full h-full p-1"
|
||||
class:pointer-events-none={custom_bg_color}
|
||||
>
|
||||
<span
|
||||
class="inline-block w-full h-full bg-gradient-to-r from-[#009444] via-[#39b54a] to-[#8dc63f] dark:bg-[#0f2702] dark:from-[#0f2702] dark:via-[#0f2702] dark:to[#0f2702]"
|
||||
class="inline-block w-full h-full bg-[#d6edc9] dark:bg-[#4e6e58]"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -160,11 +169,12 @@ SPDX-License-Identifier: MPL-2.0
|
||||
</label>
|
||||
</div>
|
||||
<div
|
||||
class:pointer-events-none={!custom_bg_color}
|
||||
class:opacity-50={!custom_bg_color}
|
||||
class="transition-all"
|
||||
use:tippy={{ content: 'Use your own background color', placement: 'right' }}
|
||||
>
|
||||
<input
|
||||
class:pointer-events-none={!custom_bg_color}
|
||||
type="color"
|
||||
class="rounded-lg p-1 min-h-full hover:cursor-pointer border-black border"
|
||||
bind:value={data.background_color}
|
||||
@@ -182,8 +192,8 @@ SPDX-License-Identifier: MPL-2.0
|
||||
data.background_image = undefined;
|
||||
}}
|
||||
class="mt-10 bg-red-500 p-2 rounded-lg border-2 border-black transition hover:bg-red-400"
|
||||
>Remove Background-Image</button
|
||||
>
|
||||
>Remove Background-Image
|
||||
</button>
|
||||
{:else}
|
||||
{#await import('$lib/editor/uploader.svelte')}
|
||||
<div class="pt-10">
|
||||
|
||||
@@ -0,0 +1,466 @@
|
||||
{
|
||||
"index_page": {
|
||||
"select_answer": "اختر الإجابة",
|
||||
"no_tracking": "لا تَتَبُّع",
|
||||
"multilingual": "متعدد اللغات",
|
||||
"view_results": "اعرض النتائج",
|
||||
"choose_answer_wisely": "اختر إجابتك بحكمة",
|
||||
"list_winners": "قائمة الفائزون",
|
||||
"students_site": "موقع الطالِب",
|
||||
"self_hostable": "مُستضاف ذاتيا",
|
||||
"see_what_true_and_false": "رؤية ما هو صحيح أو خطأ",
|
||||
"german_server": "خادم ألماني",
|
||||
"teachers_site": "موقع المُعَلِّم",
|
||||
"create_or_import": "إنشاء أو استيراد",
|
||||
"dark_mode": "الوضع المظلم",
|
||||
"why_classquiz": "لماذا ClassQuiz؟",
|
||||
"quiz_results_downloadable": "",
|
||||
"slogan": "",
|
||||
"completely_free": "",
|
||||
"how_does_classquiz_work": "",
|
||||
"user_friendly": "",
|
||||
"find_or_explore": "",
|
||||
"completely_free_content": "",
|
||||
"stats": "",
|
||||
"see_how_many_true_and_false": "",
|
||||
"download_quizzes": "",
|
||||
"dark_mode_content": "",
|
||||
"community_driven_content": "",
|
||||
"get_a_quiz": "",
|
||||
"quiz_results_downloadable_content": "",
|
||||
"self_hostable_content": "",
|
||||
"german_server_content": "",
|
||||
"get_ranking_and_winners": "",
|
||||
"meta": {
|
||||
"description": "",
|
||||
"title": ""
|
||||
},
|
||||
"create_a_quiz_from_scratch": "",
|
||||
"check_if_chosen_wisely": "",
|
||||
"user_friendly_content": "",
|
||||
"no_tracking_content": "",
|
||||
"multilingual_content": "",
|
||||
"community_driven": "",
|
||||
"play_quiz": "",
|
||||
"see_all_quizzes": "",
|
||||
"download_quizzes_content": ""
|
||||
},
|
||||
"result_page": {
|
||||
"correct_answer_plural": "",
|
||||
"player_score": "",
|
||||
"correct_answer": "",
|
||||
"time_taken": "",
|
||||
"player_name": "",
|
||||
"average_score": "",
|
||||
"custom_field": ""
|
||||
},
|
||||
"register_page": {
|
||||
"create_account": "",
|
||||
"greeting": "",
|
||||
"forgot_password?": "",
|
||||
"already_have_account?": ""
|
||||
},
|
||||
"words": {
|
||||
"delete": "",
|
||||
"import": "",
|
||||
"public": "",
|
||||
"upload": "",
|
||||
"player_plural": "",
|
||||
"next": "",
|
||||
"totp": "",
|
||||
"score": "",
|
||||
"analytics": "",
|
||||
"no": "",
|
||||
"speed": "",
|
||||
"play": "",
|
||||
"email": "",
|
||||
"backup_code": "",
|
||||
"question": "",
|
||||
"files_library": "",
|
||||
"check_choice": "",
|
||||
"start": "",
|
||||
"voting": "",
|
||||
"pin": "",
|
||||
"point": "",
|
||||
"docs": "",
|
||||
"description": "",
|
||||
"settings": "",
|
||||
"features": "",
|
||||
"other": "",
|
||||
"title": "",
|
||||
"text": "",
|
||||
"register": "",
|
||||
"username": "",
|
||||
"practice": "",
|
||||
"find": "",
|
||||
"private": "",
|
||||
"answer_plural": "",
|
||||
"version": "",
|
||||
"update": "",
|
||||
"download": "",
|
||||
"slide": "",
|
||||
"repeat_password": "",
|
||||
"kick": "",
|
||||
"url": "",
|
||||
"explore": "",
|
||||
"close": "",
|
||||
"error": "",
|
||||
"play_plural": "",
|
||||
"rating": "",
|
||||
"video": "",
|
||||
"browser": "",
|
||||
"stats": "",
|
||||
"password": "",
|
||||
"donating": "",
|
||||
"save": "",
|
||||
"note": "",
|
||||
"order": "",
|
||||
"dislike_plural": "",
|
||||
"multiple_choice": "",
|
||||
"info": "",
|
||||
"question_plural": "",
|
||||
"results": "",
|
||||
"view_plural": "",
|
||||
"yes": "",
|
||||
"point_plural": "",
|
||||
"continue": "",
|
||||
"game_pin": "",
|
||||
"like": "",
|
||||
"dislike": "",
|
||||
"search": "",
|
||||
"progress": "",
|
||||
"select": "",
|
||||
"screenshot": "",
|
||||
"correct": "",
|
||||
"like_plural": "",
|
||||
"screenshot_plural": "",
|
||||
"view": "",
|
||||
"name": "",
|
||||
"answer": "",
|
||||
"other_plural": "",
|
||||
"count": "",
|
||||
"login": "",
|
||||
"create": "",
|
||||
"report": "",
|
||||
"quiztivity": "",
|
||||
"library": "",
|
||||
"finish": "",
|
||||
"normal": "",
|
||||
"selected": "",
|
||||
"result": "",
|
||||
"unknown": "",
|
||||
"dashboard": "",
|
||||
"back": "",
|
||||
"edit": "",
|
||||
"overview": "",
|
||||
"image": "",
|
||||
"result_plural": "",
|
||||
"submit": "",
|
||||
"never": "",
|
||||
"connect": "",
|
||||
"quiz": "",
|
||||
"range": "",
|
||||
"logout": ""
|
||||
},
|
||||
"edit_page": {
|
||||
"success_update_body": "",
|
||||
"success_update_title": ""
|
||||
},
|
||||
"admin_page": {
|
||||
"stop_time_and_solutions": "",
|
||||
"already_registered_as_admin": "",
|
||||
"no_answers": "",
|
||||
"start_by_showing_first_question": "",
|
||||
"request_export_results": "",
|
||||
"time_left": "",
|
||||
"show_next_question": "",
|
||||
"stop_time": "",
|
||||
"show_results": "",
|
||||
"save_results": "",
|
||||
"enter_answer_into_field": "",
|
||||
"get_results_and_stop_time": "",
|
||||
"start_game": "",
|
||||
"answers_submitted": "",
|
||||
"download_export_results": "",
|
||||
"next_question": "",
|
||||
"get_results": "",
|
||||
"get_final_results": ""
|
||||
},
|
||||
"play_page": {
|
||||
"2nd_place": "",
|
||||
"join_description": "",
|
||||
"1st_place": "",
|
||||
"points_added": "",
|
||||
"final_result_rank": "",
|
||||
"your_score": "",
|
||||
"end_sentence": "",
|
||||
"with_out_of": "",
|
||||
"3rd place": "",
|
||||
"join_by_entering_code": ""
|
||||
},
|
||||
"file_dashboard": {
|
||||
"unset": "",
|
||||
"filename_word": "",
|
||||
"imported": "",
|
||||
"filename": "",
|
||||
"missing": "",
|
||||
"delete_image": "",
|
||||
"size": "",
|
||||
"storage_usage": "",
|
||||
"alt_text": "",
|
||||
"edit_details": "",
|
||||
"uploaded": "",
|
||||
"not_available": "",
|
||||
"caption": "",
|
||||
"edit_the_image": ""
|
||||
},
|
||||
"avatar_settings": {
|
||||
"accessories_type": "",
|
||||
"go_back": "",
|
||||
"hair_color": "",
|
||||
"clothe_graphic_type": "",
|
||||
"facial_hair_type": "",
|
||||
"facial_hair_color": "",
|
||||
"skin_color": "",
|
||||
"clothe_color": "",
|
||||
"thats_you": "",
|
||||
"start_over": "",
|
||||
"clothe_type": "",
|
||||
"mouth_type": "",
|
||||
"top_type": "",
|
||||
"eyebrow_type": "",
|
||||
"hat_color": ""
|
||||
},
|
||||
"overview_page": {
|
||||
"question_count": "",
|
||||
"created_at": "",
|
||||
"no_quizzes": ""
|
||||
},
|
||||
"settings_page": {
|
||||
"change_avatar": "",
|
||||
"change_password_submit": "",
|
||||
"security_settings": "",
|
||||
"delete_this_session": "",
|
||||
"old_password": "",
|
||||
"check_location": "",
|
||||
"last_seen": "",
|
||||
"this_session?": "",
|
||||
"repeat_password": "",
|
||||
"new_password": "",
|
||||
"add_api_key": ""
|
||||
},
|
||||
"footer": {
|
||||
"donate": "",
|
||||
"more_details_here": "",
|
||||
"self_ads": ""
|
||||
},
|
||||
"quiztivity": {
|
||||
"editor": {
|
||||
"add_new": "",
|
||||
"move_left": "",
|
||||
"shares": {
|
||||
"never_expires": "",
|
||||
"expires_on": "",
|
||||
"add_new_share": ""
|
||||
},
|
||||
"title_placeholder": "",
|
||||
"delete": "",
|
||||
"open_shares_menu": "",
|
||||
"select_page_type": "",
|
||||
"move_right": ""
|
||||
},
|
||||
"share_expired": "",
|
||||
"play": {
|
||||
"memory": {
|
||||
"try_count": ""
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"editor": {
|
||||
"add_card": "",
|
||||
"add_pair": "",
|
||||
"upload_image": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"results_page": {
|
||||
"no_results_so_far": "",
|
||||
"quiz_title": "",
|
||||
"player_count": "",
|
||||
"date_played": "",
|
||||
"general_overview": {
|
||||
"sentence": ""
|
||||
}
|
||||
},
|
||||
"security_settings": {
|
||||
"get_backup_code": "",
|
||||
"enable_totp": "",
|
||||
"disable_totp": "",
|
||||
"totp_setup": {
|
||||
"enter_as_secret_if_no_see_code": "",
|
||||
"scan_to_set_up": "",
|
||||
"totp_setup": "",
|
||||
"do_not_forget_backup_code": ""
|
||||
},
|
||||
"backup_code": "",
|
||||
"2fa_deactivated": "",
|
||||
"backup_codes": {
|
||||
"download_code": "",
|
||||
"your_backup_code": "",
|
||||
"save_somewhere_save": ""
|
||||
},
|
||||
"totp": "",
|
||||
"totp_unavailable": "",
|
||||
"2fa_activated": "",
|
||||
"webauthn": "",
|
||||
"add_security_key": "",
|
||||
"activate_2fa": "",
|
||||
"webauthn_unavailable": "",
|
||||
"totp_available": "",
|
||||
"webauthn_available": ""
|
||||
},
|
||||
"editor": {
|
||||
"delete_answer": "",
|
||||
"check_choice_description": "",
|
||||
"text_description": "",
|
||||
"order_description": "",
|
||||
"add_new_answer": "",
|
||||
"slide": {
|
||||
"headline": "",
|
||||
"headline_description": "",
|
||||
"rectangle": "",
|
||||
"rectangle_description": "",
|
||||
"text": "",
|
||||
"text_description": ""
|
||||
},
|
||||
"voting_description": "",
|
||||
"not_all_links_imgur_links": "",
|
||||
"delete_question": "",
|
||||
"range_description": "",
|
||||
"empty": "",
|
||||
"right_or_true?": "",
|
||||
"abcd_description": "",
|
||||
"time_in_seconds": "",
|
||||
"add_new_question": "",
|
||||
"bg_image": "",
|
||||
"no_title": ""
|
||||
},
|
||||
"controllers": {
|
||||
"last_seen": "",
|
||||
"cancel_update": "",
|
||||
"add_new_controller": "",
|
||||
"player_name": "",
|
||||
"controller_name": "",
|
||||
"already_latest_version": "",
|
||||
"update_from_to": "",
|
||||
"first_seen": "",
|
||||
"version_overview": ""
|
||||
},
|
||||
"view_quiz_page": {
|
||||
"made_by": "",
|
||||
"view_on_kahoot": ""
|
||||
},
|
||||
"import_page": {
|
||||
"this_side_classquiz_excel": "",
|
||||
"visit_docs": "",
|
||||
"download_template_here": "",
|
||||
"classquiz_quiz": "",
|
||||
"this_side_classquiz": "",
|
||||
"a_kahoot_quiz": "",
|
||||
"side_import_kahoot": "",
|
||||
"url_should_look_like_this": "",
|
||||
"need_help": "",
|
||||
"upload_file_ending": ""
|
||||
},
|
||||
"start_game": {
|
||||
"old_school_mode_description": "",
|
||||
"old_school_mode": "",
|
||||
"start_game": "",
|
||||
"captcha_message": "",
|
||||
"normal_mode_description": ""
|
||||
},
|
||||
"login_page": {
|
||||
"use_backup_code": "",
|
||||
"email_or_username": "",
|
||||
"already_have_account": "",
|
||||
"modal": {
|
||||
"error": {
|
||||
"description": {
|
||||
"unexpected": "",
|
||||
"wrong_creds": ""
|
||||
},
|
||||
"wrong_creds": "",
|
||||
"unexpected": ""
|
||||
},
|
||||
"success": {
|
||||
"success": "",
|
||||
"description": {
|
||||
"success": "",
|
||||
"success_check_mail": ""
|
||||
},
|
||||
"success_check_mail": ""
|
||||
}
|
||||
},
|
||||
"login_or_create_account": "",
|
||||
"welcome_back": ""
|
||||
},
|
||||
"password_reset_page": {
|
||||
"reset_password": ""
|
||||
},
|
||||
"video_uploader": {
|
||||
"time_remaining": "",
|
||||
"time_elapsed": ""
|
||||
},
|
||||
"explore_page": {
|
||||
"imported_by": "",
|
||||
"made_by": ""
|
||||
},
|
||||
"create_page": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"body": ""
|
||||
}
|
||||
},
|
||||
"error_page": {
|
||||
"unknown_error_text": "",
|
||||
"404_text": ""
|
||||
},
|
||||
"uploader": {
|
||||
"images_by_pixabay": "",
|
||||
"upload_video_popup_notice": "",
|
||||
"add_image": "",
|
||||
"select_upload_type": "",
|
||||
"upload_a_video": "",
|
||||
"next_page": "",
|
||||
"visit_pixabay": "",
|
||||
"previous_page": "",
|
||||
"search_english_only": "",
|
||||
"upload_video": ""
|
||||
},
|
||||
"search_page": {
|
||||
"nothing_here": "",
|
||||
"at_least_3_characters": ""
|
||||
},
|
||||
"dashboard": {
|
||||
"commandpalette_notice": "",
|
||||
"views_n_plays": "",
|
||||
"search_for_own_quizzes": "",
|
||||
"info_analytics": ""
|
||||
},
|
||||
"navbar": {
|
||||
"donate": ""
|
||||
},
|
||||
"editor_page": {
|
||||
"add_an_answer": "",
|
||||
"right_click_to_delete": ""
|
||||
},
|
||||
"public_user_page": {
|
||||
"no_original_quizzes": "",
|
||||
"joined_on": ""
|
||||
},
|
||||
"components": {
|
||||
"popover": {
|
||||
"copied_to_clipboard": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
SPDX-FileCopyrightText: 2023 Marlon W (Mawoka)
|
||||
|
||||
SPDX-License-Identifier: MPL-2.0
|
||||
@@ -37,7 +37,69 @@
|
||||
"view": "Visualització",
|
||||
"overview": "Resum",
|
||||
"play": "Joc",
|
||||
"repeat_password": "Repetiu la contrasenya"
|
||||
"repeat_password": "Repetiu la contrasenya",
|
||||
"upload": "",
|
||||
"player_plural": "",
|
||||
"next": "",
|
||||
"totp": "",
|
||||
"score": "",
|
||||
"analytics": "",
|
||||
"no": "",
|
||||
"speed": "",
|
||||
"backup_code": "",
|
||||
"files_library": "",
|
||||
"check_choice": "",
|
||||
"voting": "",
|
||||
"point": "",
|
||||
"other": "",
|
||||
"text": "",
|
||||
"practice": "",
|
||||
"find": "",
|
||||
"private": "",
|
||||
"answer_plural": "",
|
||||
"version": "",
|
||||
"update": "",
|
||||
"download": "",
|
||||
"slide": "",
|
||||
"error": "",
|
||||
"play_plural": "",
|
||||
"rating": "",
|
||||
"video": "",
|
||||
"donating": "",
|
||||
"note": "",
|
||||
"order": "",
|
||||
"dislike_plural": "",
|
||||
"multiple_choice": "",
|
||||
"info": "",
|
||||
"question_plural": "",
|
||||
"results": "",
|
||||
"view_plural": "",
|
||||
"yes": "",
|
||||
"point_plural": "",
|
||||
"continue": "",
|
||||
"like": "",
|
||||
"dislike": "",
|
||||
"progress": "",
|
||||
"select": "",
|
||||
"correct": "",
|
||||
"like_plural": "",
|
||||
"name": "",
|
||||
"other_plural": "",
|
||||
"count": "",
|
||||
"quiztivity": "",
|
||||
"library": "",
|
||||
"finish": "",
|
||||
"normal": "",
|
||||
"selected": "",
|
||||
"result": "",
|
||||
"unknown": "",
|
||||
"dashboard": "",
|
||||
"back": "",
|
||||
"result_plural": "",
|
||||
"never": "",
|
||||
"quiz": "",
|
||||
"range": "",
|
||||
"game_pin": ""
|
||||
},
|
||||
"login_page": {
|
||||
"already_have_account": "No teniu cap compte?",
|
||||
@@ -60,7 +122,9 @@
|
||||
"unexpected": "Error no esperat!"
|
||||
}
|
||||
},
|
||||
"login_or_create_account": "Inicia sessió o crea un compte"
|
||||
"login_or_create_account": "Inicia sessió o crea un compte",
|
||||
"use_backup_code": "",
|
||||
"email_or_username": ""
|
||||
},
|
||||
"admin_page": {
|
||||
"get_results_and_stop_time": "Obtén els resultats i atura el temps",
|
||||
@@ -69,7 +133,19 @@
|
||||
"export_results": "Exporta els resultats",
|
||||
"already_registered_as_admin": "Ja hi ha un administrador registrat per a aquest joc.",
|
||||
"get_results": "Obtén els resultats",
|
||||
"get_final_results": "Obtén els resultats finals"
|
||||
"get_final_results": "Obtén els resultats finals",
|
||||
"stop_time_and_solutions": "",
|
||||
"no_answers": "",
|
||||
"request_export_results": "",
|
||||
"show_next_question": "",
|
||||
"stop_time": "",
|
||||
"show_results": "",
|
||||
"save_results": "",
|
||||
"enter_answer_into_field": "",
|
||||
"answers_submitted": "",
|
||||
"download_export_results": "",
|
||||
"next_question": "",
|
||||
"start_by_showing_first_question": ""
|
||||
},
|
||||
"index_page": {
|
||||
"meta": {
|
||||
@@ -81,11 +157,50 @@
|
||||
"2": "La principal característica és una funció d'importació de KAHOOT! que us permet d'importar qüestionaris de KAHOOT!"
|
||||
},
|
||||
"stats": "Ja hi ha {{user_count}} usuaris i {{quiz_count}} qüestionaris a ClassQuiz.",
|
||||
"slogan": "La plataforma de preguntes i respostes de codi obert!"
|
||||
"slogan": "La plataforma de preguntes i respostes de codi obert!",
|
||||
"quiz_results_downloadable": "",
|
||||
"how_does_classquiz_work": "",
|
||||
"select_answer": "",
|
||||
"user_friendly": "",
|
||||
"no_tracking": "",
|
||||
"find_or_explore": "",
|
||||
"see_how_many_true_and_false": "",
|
||||
"download_quizzes": "",
|
||||
"dark_mode_content": "",
|
||||
"multilingual": "",
|
||||
"community_driven_content": "",
|
||||
"get_a_quiz": "",
|
||||
"quiz_results_downloadable_content": "",
|
||||
"view_results": "",
|
||||
"choose_answer_wisely": "",
|
||||
"self_hostable_content": "",
|
||||
"german_server_content": "",
|
||||
"get_ranking_and_winners": "",
|
||||
"list_winners": "",
|
||||
"students_site": "",
|
||||
"self_hostable": "",
|
||||
"see_what_true_and_false": "",
|
||||
"german_server": "",
|
||||
"create_a_quiz_from_scratch": "",
|
||||
"teachers_site": "",
|
||||
"check_if_chosen_wisely": "",
|
||||
"create_or_import": "",
|
||||
"dark_mode": "",
|
||||
"why_classquiz": "",
|
||||
"community_driven": "",
|
||||
"play_quiz": "",
|
||||
"see_all_quizzes": "",
|
||||
"completely_free": "",
|
||||
"completely_free_content": "",
|
||||
"user_friendly_content": "",
|
||||
"no_tracking_content": "",
|
||||
"multilingual_content": "",
|
||||
"download_quizzes_content": ""
|
||||
},
|
||||
"overview_page": {
|
||||
"question_count": "Nombre de preguntes",
|
||||
"created_at": "Creat el"
|
||||
"created_at": "Creat el",
|
||||
"no_quizzes": ""
|
||||
},
|
||||
"register_page": {
|
||||
"create_account": "Crea un compte",
|
||||
@@ -100,11 +215,36 @@
|
||||
"delete_question": "Esborra la qüestió",
|
||||
"right_or_true?": "Correcte?",
|
||||
"not_all_links_imgur_links": "No tots els enllaços són enllaços a Imgur!",
|
||||
"delete_answer": "Esborra la resposta"
|
||||
"delete_answer": "Esborra la resposta",
|
||||
"check_choice_description": "",
|
||||
"text_description": "",
|
||||
"order_description": "",
|
||||
"slide": {
|
||||
"headline": "",
|
||||
"headline_description": "",
|
||||
"rectangle": "",
|
||||
"rectangle_description": "",
|
||||
"text": "",
|
||||
"text_description": ""
|
||||
},
|
||||
"voting_description": "",
|
||||
"range_description": "",
|
||||
"empty": "",
|
||||
"abcd_description": "",
|
||||
"bg_image": "",
|
||||
"no_title": ""
|
||||
},
|
||||
"import_page": {
|
||||
"need_help": "Us cal ajuda?",
|
||||
"visit_docs": "Visiteu la documentació"
|
||||
"visit_docs": "Visiteu la documentació",
|
||||
"this_side_classquiz_excel": "",
|
||||
"download_template_here": "",
|
||||
"classquiz_quiz": "",
|
||||
"this_side_classquiz": "",
|
||||
"a_kahoot_quiz": "",
|
||||
"side_import_kahoot": "",
|
||||
"url_should_look_like_this": "",
|
||||
"upload_file_ending": ""
|
||||
},
|
||||
"edit_page": {
|
||||
"success_update_title": "El qüestionari s'ha actualitzat correctament!",
|
||||
@@ -127,12 +267,205 @@
|
||||
"delete_this_session": "Esborra aquesta sessió",
|
||||
"this_session?": "Aquesta sessió?",
|
||||
"check_location": "Verifica la ubicació",
|
||||
"last_seen": "Última consulta"
|
||||
"last_seen": "Última consulta",
|
||||
"change_avatar": "",
|
||||
"security_settings": "",
|
||||
"add_api_key": ""
|
||||
},
|
||||
"explore_page": {
|
||||
"made_by": "Fet per"
|
||||
"made_by": "Fet per",
|
||||
"imported_by": ""
|
||||
},
|
||||
"search_page": {
|
||||
"at_least_3_characters": "Introduïu almenys 3 caràcters..."
|
||||
"at_least_3_characters": "Introduïu almenys 3 caràcters...",
|
||||
"nothing_here": ""
|
||||
},
|
||||
"result_page": {
|
||||
"correct_answer_plural": "",
|
||||
"player_score": "",
|
||||
"correct_answer": "",
|
||||
"time_taken": "",
|
||||
"player_name": "",
|
||||
"average_score": "",
|
||||
"custom_field": ""
|
||||
},
|
||||
"play_page": {
|
||||
"2nd_place": "",
|
||||
"join_description": "",
|
||||
"1st_place": "",
|
||||
"points_added": "",
|
||||
"final_result_rank": "",
|
||||
"your_score": "",
|
||||
"end_sentence": "",
|
||||
"with_out_of": "",
|
||||
"3rd place": "",
|
||||
"join_by_entering_code": ""
|
||||
},
|
||||
"file_dashboard": {
|
||||
"unset": "",
|
||||
"filename_word": "",
|
||||
"imported": "",
|
||||
"filename": "",
|
||||
"missing": "",
|
||||
"delete_image": "",
|
||||
"size": "",
|
||||
"storage_usage": "",
|
||||
"alt_text": "",
|
||||
"edit_details": "",
|
||||
"uploaded": "",
|
||||
"not_available": "",
|
||||
"caption": "",
|
||||
"edit_the_image": ""
|
||||
},
|
||||
"avatar_settings": {
|
||||
"accessories_type": "",
|
||||
"go_back": "",
|
||||
"hair_color": "",
|
||||
"clothe_graphic_type": "",
|
||||
"facial_hair_type": "",
|
||||
"facial_hair_color": "",
|
||||
"skin_color": "",
|
||||
"clothe_color": "",
|
||||
"thats_you": "",
|
||||
"start_over": "",
|
||||
"clothe_type": "",
|
||||
"mouth_type": "",
|
||||
"top_type": "",
|
||||
"eyebrow_type": "",
|
||||
"hat_color": ""
|
||||
},
|
||||
"footer": {
|
||||
"donate": "",
|
||||
"self_ads": "",
|
||||
"more_details_here": ""
|
||||
},
|
||||
"quiztivity": {
|
||||
"editor": {
|
||||
"add_new": "",
|
||||
"move_left": "",
|
||||
"shares": {
|
||||
"never_expires": "",
|
||||
"expires_on": "",
|
||||
"add_new_share": ""
|
||||
},
|
||||
"title_placeholder": "",
|
||||
"delete": "",
|
||||
"open_shares_menu": "",
|
||||
"select_page_type": "",
|
||||
"move_right": ""
|
||||
},
|
||||
"share_expired": "",
|
||||
"play": {
|
||||
"memory": {
|
||||
"try_count": ""
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"editor": {
|
||||
"add_card": "",
|
||||
"add_pair": "",
|
||||
"upload_image": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"results_page": {
|
||||
"no_results_so_far": "",
|
||||
"quiz_title": "",
|
||||
"player_count": "",
|
||||
"date_played": "",
|
||||
"general_overview": {
|
||||
"sentence": ""
|
||||
}
|
||||
},
|
||||
"security_settings": {
|
||||
"get_backup_code": "",
|
||||
"enable_totp": "",
|
||||
"disable_totp": "",
|
||||
"totp_setup": {
|
||||
"enter_as_secret_if_no_see_code": "",
|
||||
"scan_to_set_up": "",
|
||||
"totp_setup": "",
|
||||
"do_not_forget_backup_code": ""
|
||||
},
|
||||
"backup_code": "",
|
||||
"2fa_deactivated": "",
|
||||
"backup_codes": {
|
||||
"download_code": "",
|
||||
"your_backup_code": "",
|
||||
"save_somewhere_save": ""
|
||||
},
|
||||
"totp": "",
|
||||
"totp_unavailable": "",
|
||||
"2fa_activated": "",
|
||||
"webauthn": "",
|
||||
"add_security_key": "",
|
||||
"activate_2fa": "",
|
||||
"webauthn_unavailable": "",
|
||||
"totp_available": "",
|
||||
"webauthn_available": ""
|
||||
},
|
||||
"controllers": {
|
||||
"last_seen": "",
|
||||
"cancel_update": "",
|
||||
"add_new_controller": "",
|
||||
"player_name": "",
|
||||
"controller_name": "",
|
||||
"already_latest_version": "",
|
||||
"update_from_to": "",
|
||||
"first_seen": "",
|
||||
"version_overview": ""
|
||||
},
|
||||
"view_quiz_page": {
|
||||
"made_by": "",
|
||||
"view_on_kahoot": ""
|
||||
},
|
||||
"start_game": {
|
||||
"old_school_mode_description": "",
|
||||
"old_school_mode": "",
|
||||
"start_game": "",
|
||||
"captcha_message": "",
|
||||
"normal_mode_description": ""
|
||||
},
|
||||
"video_uploader": {
|
||||
"time_remaining": "",
|
||||
"time_elapsed": ""
|
||||
},
|
||||
"error_page": {
|
||||
"unknown_error_text": "",
|
||||
"404_text": ""
|
||||
},
|
||||
"uploader": {
|
||||
"images_by_pixabay": "",
|
||||
"upload_video_popup_notice": "",
|
||||
"add_image": "",
|
||||
"select_upload_type": "",
|
||||
"upload_a_video": "",
|
||||
"next_page": "",
|
||||
"visit_pixabay": "",
|
||||
"previous_page": "",
|
||||
"search_english_only": "",
|
||||
"upload_video": ""
|
||||
},
|
||||
"dashboard": {
|
||||
"commandpalette_notice": "",
|
||||
"views_n_plays": "",
|
||||
"search_for_own_quizzes": "",
|
||||
"info_analytics": ""
|
||||
},
|
||||
"navbar": {
|
||||
"donate": ""
|
||||
},
|
||||
"editor_page": {
|
||||
"add_an_answer": "",
|
||||
"right_click_to_delete": ""
|
||||
},
|
||||
"public_user_page": {
|
||||
"no_original_quizzes": "",
|
||||
"joined_on": ""
|
||||
},
|
||||
"components": {
|
||||
"popover": {
|
||||
"copied_to_clipboard": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1 +1,466 @@
|
||||
{}
|
||||
{
|
||||
"result_page": {
|
||||
"correct_answer_plural": "",
|
||||
"player_score": "",
|
||||
"correct_answer": "",
|
||||
"time_taken": "",
|
||||
"player_name": "",
|
||||
"average_score": "",
|
||||
"custom_field": ""
|
||||
},
|
||||
"register_page": {
|
||||
"create_account": "",
|
||||
"greeting": "",
|
||||
"forgot_password?": "",
|
||||
"already_have_account?": ""
|
||||
},
|
||||
"words": {
|
||||
"delete": "",
|
||||
"import": "",
|
||||
"public": "",
|
||||
"upload": "",
|
||||
"player_plural": "",
|
||||
"next": "",
|
||||
"totp": "",
|
||||
"score": "",
|
||||
"analytics": "",
|
||||
"no": "",
|
||||
"speed": "",
|
||||
"play": "",
|
||||
"email": "",
|
||||
"backup_code": "",
|
||||
"question": "",
|
||||
"files_library": "",
|
||||
"check_choice": "",
|
||||
"start": "",
|
||||
"voting": "",
|
||||
"pin": "",
|
||||
"point": "",
|
||||
"docs": "",
|
||||
"description": "",
|
||||
"settings": "",
|
||||
"features": "",
|
||||
"other": "",
|
||||
"title": "",
|
||||
"text": "",
|
||||
"register": "",
|
||||
"username": "",
|
||||
"practice": "",
|
||||
"find": "",
|
||||
"private": "",
|
||||
"answer_plural": "",
|
||||
"version": "",
|
||||
"update": "",
|
||||
"download": "",
|
||||
"slide": "",
|
||||
"repeat_password": "",
|
||||
"kick": "",
|
||||
"url": "",
|
||||
"explore": "",
|
||||
"close": "",
|
||||
"error": "",
|
||||
"play_plural": "",
|
||||
"rating": "",
|
||||
"video": "",
|
||||
"browser": "",
|
||||
"stats": "",
|
||||
"password": "",
|
||||
"donating": "",
|
||||
"save": "",
|
||||
"note": "",
|
||||
"order": "",
|
||||
"dislike_plural": "",
|
||||
"multiple_choice": "",
|
||||
"info": "",
|
||||
"question_plural": "",
|
||||
"results": "",
|
||||
"view_plural": "",
|
||||
"yes": "",
|
||||
"point_plural": "",
|
||||
"continue": "",
|
||||
"game_pin": "",
|
||||
"like": "",
|
||||
"dislike": "",
|
||||
"search": "",
|
||||
"progress": "",
|
||||
"select": "",
|
||||
"screenshot": "",
|
||||
"correct": "",
|
||||
"like_plural": "",
|
||||
"screenshot_plural": "",
|
||||
"view": "",
|
||||
"name": "",
|
||||
"answer": "",
|
||||
"other_plural": "",
|
||||
"count": "",
|
||||
"login": "",
|
||||
"create": "",
|
||||
"report": "",
|
||||
"quiztivity": "",
|
||||
"library": "",
|
||||
"finish": "",
|
||||
"normal": "",
|
||||
"selected": "",
|
||||
"result": "",
|
||||
"unknown": "",
|
||||
"dashboard": "",
|
||||
"back": "",
|
||||
"edit": "",
|
||||
"overview": "",
|
||||
"image": "",
|
||||
"result_plural": "",
|
||||
"submit": "",
|
||||
"never": "",
|
||||
"connect": "",
|
||||
"quiz": "",
|
||||
"range": "",
|
||||
"logout": ""
|
||||
},
|
||||
"edit_page": {
|
||||
"success_update_body": "",
|
||||
"success_update_title": ""
|
||||
},
|
||||
"index_page": {
|
||||
"quiz_results_downloadable": "",
|
||||
"slogan": "",
|
||||
"completely_free": "",
|
||||
"how_does_classquiz_work": "",
|
||||
"select_answer": "",
|
||||
"user_friendly": "",
|
||||
"no_tracking": "",
|
||||
"find_or_explore": "",
|
||||
"completely_free_content": "",
|
||||
"stats": "",
|
||||
"see_how_many_true_and_false": "",
|
||||
"download_quizzes": "",
|
||||
"dark_mode_content": "",
|
||||
"multilingual": "",
|
||||
"community_driven_content": "",
|
||||
"get_a_quiz": "",
|
||||
"quiz_results_downloadable_content": "",
|
||||
"view_results": "",
|
||||
"choose_answer_wisely": "",
|
||||
"self_hostable_content": "",
|
||||
"german_server_content": "",
|
||||
"get_ranking_and_winners": "",
|
||||
"meta": {
|
||||
"description": "",
|
||||
"title": ""
|
||||
},
|
||||
"list_winners": "",
|
||||
"students_site": "",
|
||||
"self_hostable": "",
|
||||
"see_what_true_and_false": "",
|
||||
"german_server": "",
|
||||
"create_a_quiz_from_scratch": "",
|
||||
"teachers_site": "",
|
||||
"check_if_chosen_wisely": "",
|
||||
"user_friendly_content": "",
|
||||
"create_or_import": "",
|
||||
"no_tracking_content": "",
|
||||
"multilingual_content": "",
|
||||
"dark_mode": "",
|
||||
"why_classquiz": "",
|
||||
"community_driven": "",
|
||||
"play_quiz": "",
|
||||
"see_all_quizzes": "",
|
||||
"download_quizzes_content": ""
|
||||
},
|
||||
"admin_page": {
|
||||
"stop_time_and_solutions": "",
|
||||
"already_registered_as_admin": "",
|
||||
"no_answers": "",
|
||||
"start_by_showing_first_question": "",
|
||||
"request_export_results": "",
|
||||
"time_left": "",
|
||||
"show_next_question": "",
|
||||
"stop_time": "",
|
||||
"show_results": "",
|
||||
"save_results": "",
|
||||
"enter_answer_into_field": "",
|
||||
"get_results_and_stop_time": "",
|
||||
"start_game": "",
|
||||
"answers_submitted": "",
|
||||
"download_export_results": "",
|
||||
"next_question": "",
|
||||
"get_results": "",
|
||||
"get_final_results": ""
|
||||
},
|
||||
"play_page": {
|
||||
"2nd_place": "",
|
||||
"join_description": "",
|
||||
"1st_place": "",
|
||||
"points_added": "",
|
||||
"final_result_rank": "",
|
||||
"your_score": "",
|
||||
"end_sentence": "",
|
||||
"with_out_of": "",
|
||||
"3rd place": "",
|
||||
"join_by_entering_code": ""
|
||||
},
|
||||
"file_dashboard": {
|
||||
"unset": "",
|
||||
"filename_word": "",
|
||||
"imported": "",
|
||||
"filename": "",
|
||||
"missing": "",
|
||||
"delete_image": "",
|
||||
"size": "",
|
||||
"storage_usage": "",
|
||||
"alt_text": "",
|
||||
"edit_details": "",
|
||||
"uploaded": "",
|
||||
"not_available": "",
|
||||
"caption": "",
|
||||
"edit_the_image": ""
|
||||
},
|
||||
"avatar_settings": {
|
||||
"accessories_type": "",
|
||||
"go_back": "",
|
||||
"hair_color": "",
|
||||
"clothe_graphic_type": "",
|
||||
"facial_hair_type": "",
|
||||
"facial_hair_color": "",
|
||||
"skin_color": "",
|
||||
"clothe_color": "",
|
||||
"thats_you": "",
|
||||
"start_over": "",
|
||||
"clothe_type": "",
|
||||
"mouth_type": "",
|
||||
"top_type": "",
|
||||
"eyebrow_type": "",
|
||||
"hat_color": ""
|
||||
},
|
||||
"overview_page": {
|
||||
"question_count": "",
|
||||
"created_at": "",
|
||||
"no_quizzes": ""
|
||||
},
|
||||
"settings_page": {
|
||||
"change_avatar": "",
|
||||
"change_password_submit": "",
|
||||
"security_settings": "",
|
||||
"delete_this_session": "",
|
||||
"old_password": "",
|
||||
"check_location": "",
|
||||
"last_seen": "",
|
||||
"this_session?": "",
|
||||
"repeat_password": "",
|
||||
"new_password": "",
|
||||
"add_api_key": ""
|
||||
},
|
||||
"footer": {
|
||||
"donate": "",
|
||||
"more_details_here": "",
|
||||
"self_ads": ""
|
||||
},
|
||||
"quiztivity": {
|
||||
"editor": {
|
||||
"add_new": "",
|
||||
"move_left": "",
|
||||
"shares": {
|
||||
"never_expires": "",
|
||||
"expires_on": "",
|
||||
"add_new_share": ""
|
||||
},
|
||||
"title_placeholder": "",
|
||||
"delete": "",
|
||||
"open_shares_menu": "",
|
||||
"select_page_type": "",
|
||||
"move_right": ""
|
||||
},
|
||||
"share_expired": "",
|
||||
"play": {
|
||||
"memory": {
|
||||
"try_count": ""
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"editor": {
|
||||
"add_card": "",
|
||||
"add_pair": "",
|
||||
"upload_image": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"results_page": {
|
||||
"no_results_so_far": "",
|
||||
"quiz_title": "",
|
||||
"player_count": "",
|
||||
"date_played": "",
|
||||
"general_overview": {
|
||||
"sentence": ""
|
||||
}
|
||||
},
|
||||
"security_settings": {
|
||||
"get_backup_code": "",
|
||||
"enable_totp": "",
|
||||
"disable_totp": "",
|
||||
"totp_setup": {
|
||||
"enter_as_secret_if_no_see_code": "",
|
||||
"scan_to_set_up": "",
|
||||
"totp_setup": "",
|
||||
"do_not_forget_backup_code": ""
|
||||
},
|
||||
"backup_code": "",
|
||||
"2fa_deactivated": "",
|
||||
"backup_codes": {
|
||||
"download_code": "",
|
||||
"your_backup_code": "",
|
||||
"save_somewhere_save": ""
|
||||
},
|
||||
"totp": "",
|
||||
"totp_unavailable": "",
|
||||
"2fa_activated": "",
|
||||
"webauthn": "",
|
||||
"add_security_key": "",
|
||||
"activate_2fa": "",
|
||||
"webauthn_unavailable": "",
|
||||
"totp_available": "",
|
||||
"webauthn_available": ""
|
||||
},
|
||||
"editor": {
|
||||
"delete_answer": "",
|
||||
"check_choice_description": "",
|
||||
"text_description": "",
|
||||
"order_description": "",
|
||||
"add_new_answer": "",
|
||||
"slide": {
|
||||
"headline": "",
|
||||
"headline_description": "",
|
||||
"rectangle": "",
|
||||
"rectangle_description": "",
|
||||
"text": "",
|
||||
"text_description": ""
|
||||
},
|
||||
"voting_description": "",
|
||||
"not_all_links_imgur_links": "",
|
||||
"delete_question": "",
|
||||
"range_description": "",
|
||||
"empty": "",
|
||||
"right_or_true?": "",
|
||||
"abcd_description": "",
|
||||
"time_in_seconds": "",
|
||||
"add_new_question": "",
|
||||
"bg_image": "",
|
||||
"no_title": ""
|
||||
},
|
||||
"controllers": {
|
||||
"last_seen": "",
|
||||
"cancel_update": "",
|
||||
"add_new_controller": "",
|
||||
"player_name": "",
|
||||
"controller_name": "",
|
||||
"already_latest_version": "",
|
||||
"update_from_to": "",
|
||||
"first_seen": "",
|
||||
"version_overview": ""
|
||||
},
|
||||
"view_quiz_page": {
|
||||
"made_by": "",
|
||||
"view_on_kahoot": ""
|
||||
},
|
||||
"import_page": {
|
||||
"this_side_classquiz_excel": "",
|
||||
"visit_docs": "",
|
||||
"download_template_here": "",
|
||||
"classquiz_quiz": "",
|
||||
"this_side_classquiz": "",
|
||||
"a_kahoot_quiz": "",
|
||||
"side_import_kahoot": "",
|
||||
"url_should_look_like_this": "",
|
||||
"need_help": "",
|
||||
"upload_file_ending": ""
|
||||
},
|
||||
"start_game": {
|
||||
"old_school_mode_description": "",
|
||||
"old_school_mode": "",
|
||||
"start_game": "",
|
||||
"captcha_message": "",
|
||||
"normal_mode_description": ""
|
||||
},
|
||||
"login_page": {
|
||||
"use_backup_code": "",
|
||||
"email_or_username": "",
|
||||
"already_have_account": "",
|
||||
"modal": {
|
||||
"error": {
|
||||
"description": {
|
||||
"unexpected": "",
|
||||
"wrong_creds": ""
|
||||
},
|
||||
"wrong_creds": "",
|
||||
"unexpected": ""
|
||||
},
|
||||
"success": {
|
||||
"success": "",
|
||||
"description": {
|
||||
"success": "",
|
||||
"success_check_mail": ""
|
||||
},
|
||||
"success_check_mail": ""
|
||||
}
|
||||
},
|
||||
"login_or_create_account": "",
|
||||
"welcome_back": ""
|
||||
},
|
||||
"password_reset_page": {
|
||||
"reset_password": ""
|
||||
},
|
||||
"video_uploader": {
|
||||
"time_remaining": "",
|
||||
"time_elapsed": ""
|
||||
},
|
||||
"explore_page": {
|
||||
"imported_by": "",
|
||||
"made_by": ""
|
||||
},
|
||||
"create_page": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"body": ""
|
||||
}
|
||||
},
|
||||
"error_page": {
|
||||
"unknown_error_text": "",
|
||||
"404_text": ""
|
||||
},
|
||||
"uploader": {
|
||||
"images_by_pixabay": "",
|
||||
"upload_video_popup_notice": "",
|
||||
"add_image": "",
|
||||
"select_upload_type": "",
|
||||
"upload_a_video": "",
|
||||
"next_page": "",
|
||||
"visit_pixabay": "",
|
||||
"previous_page": "",
|
||||
"search_english_only": "",
|
||||
"upload_video": ""
|
||||
},
|
||||
"search_page": {
|
||||
"nothing_here": "",
|
||||
"at_least_3_characters": ""
|
||||
},
|
||||
"dashboard": {
|
||||
"commandpalette_notice": "",
|
||||
"views_n_plays": "",
|
||||
"search_for_own_quizzes": "",
|
||||
"info_analytics": ""
|
||||
},
|
||||
"navbar": {
|
||||
"donate": ""
|
||||
},
|
||||
"editor_page": {
|
||||
"add_an_answer": "",
|
||||
"right_click_to_delete": ""
|
||||
},
|
||||
"public_user_page": {
|
||||
"no_original_quizzes": "",
|
||||
"joined_on": ""
|
||||
},
|
||||
"components": {
|
||||
"popover": {
|
||||
"copied_to_clipboard": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -308,7 +308,8 @@
|
||||
"dashboard": {
|
||||
"search_for_own_quizzes": "Suche nach eigenen Quiz",
|
||||
"views_n_plays": "Aufrufe und Startversuche",
|
||||
"info_analytics": "Die \"Startversuche\" zeigen nur wie oft das Quiz gestartet wurde (auch von dir), wobei die \"Aufrufe\" zählen, wie oft das Quiz aufgerufen wurde (Bots werden auch gezählt)."
|
||||
"info_analytics": "Die \"Startversuche\" zeigen nur wie oft das Quiz gestartet wurde (auch von dir), wobei die \"Aufrufe\" zählen, wie oft das Quiz aufgerufen wurde (Bots werden auch gezählt).",
|
||||
"commandpalette_notice": "Drücke <kbd>Ctr</kbd>+<kbd>k</kbd> oder <kbd>Meta</kbd>+<kbd>k</kbd> um die Befehlspalette zu öffnen"
|
||||
},
|
||||
"footer": {
|
||||
"more_details_here": "Mehr Details hier",
|
||||
|
||||
@@ -43,7 +43,9 @@
|
||||
"download_quizzes_content": "Quizzes can be downloaded as one file and imported at any time. This also lets you move your quizzes to other ClassQuiz instances.",
|
||||
"community_driven": "Community-driven",
|
||||
"community_driven_content": "ClassQuiz depends on its community for funding, testing ideas, feature requests, translations and more! You can also be a part of the ClassQuiz-community!",
|
||||
"how_does_classquiz_work": "How does ClassQuiz even work?"
|
||||
"how_does_classquiz_work": "How does ClassQuiz even work?",
|
||||
"no_player_limit": "No player limit",
|
||||
"no_player_limit_content": "ClassQuiz doesn't have an artificial player limit. In theory, 1000+ players could play the same quiz, but it's tested with up to 300 players per quiz."
|
||||
},
|
||||
"overview_page": {
|
||||
"created_at": "Created at",
|
||||
@@ -217,7 +219,10 @@
|
||||
"check_choice_description": "All correct answers have to be chosen to score points",
|
||||
"order_description": "Answers can be brought into the correct order",
|
||||
"text_description": "Players can enter text",
|
||||
"range_description": "A number-range can be selected with a slider"
|
||||
"range_description": "A number-range can be selected with a slider",
|
||||
"need_more_help": "Need more help?",
|
||||
"visit_docs": "Visit the docs.",
|
||||
"enter_answer": "Enter an answer"
|
||||
},
|
||||
"import_page": {
|
||||
"need_help": "Need help?",
|
||||
@@ -294,7 +299,8 @@
|
||||
"dashboard": {
|
||||
"search_for_own_quizzes": "Search for your own quizzes",
|
||||
"views_n_plays": "Views & Plays",
|
||||
"info_analytics": "The \"Plays\" only show how often the quiz was started (you included), whereas the \"Views\" count how often the \"View\"-page was visited, so it also counts bots (sorry for that)."
|
||||
"info_analytics": "The \"Plays\" only show how often the quiz was started (you included), whereas the \"Views\" count how often the \"View\"-page was visited, so it also counts bots (sorry for that).",
|
||||
"commandpalette_notice": "Press <kbd>Ctr</kbd>+<kbd>k</kbd> or <kbd>Meta</kbd>+<kbd>k</kbd> to open the command palette"
|
||||
},
|
||||
"footer": {
|
||||
"self_ads": "Made with ❤️ by {{mawoka_link}} and with the help of {{others_link}}.",
|
||||
|
||||
@@ -310,7 +310,8 @@
|
||||
"dashboard": {
|
||||
"search_for_own_quizzes": "Busca tus propios quizzes",
|
||||
"views_n_plays": "Vistas y reproducciones",
|
||||
"info_analytics": "Las \"Reproducciones\" sólo muestran la frecuencia con la que se ha iniciado el cuestionario (tú incluido), mientras que las \"Vistas\" cuentan la frecuencia con la que se ha visitado la página \"Vista\", por lo que también cuenta los bots (lo siento)."
|
||||
"info_analytics": "Las \"Reproducciones\" sólo muestran la frecuencia con la que se ha iniciado el cuestionario (tú incluido), mientras que las \"Vistas\" cuentan la frecuencia con la que se ha visitado la página \"Vista\", por lo que también cuenta los bots (lo siento).",
|
||||
"commandpalette_notice": "Pulsa <kbd>Ctr</kbd>+<kbd>k</kbd> o <kbd>Meta</kbd>+<kbd>k</kbd> para abrir la paleta de los comandos"
|
||||
},
|
||||
"uploader": {
|
||||
"add_image": "Añadir medios",
|
||||
|
||||
@@ -111,12 +111,25 @@
|
||||
"library": "Bibliothèque",
|
||||
"speed": "Vitesse",
|
||||
"upload": "Charger",
|
||||
"files_library": "Bibliothèque de fichiers"
|
||||
"files_library": "Bibliothèque de fichiers",
|
||||
"unknown": " ",
|
||||
"view_plural": "Vues",
|
||||
"version": "Version",
|
||||
"update": "Mettre à jour",
|
||||
"never": "Jamais",
|
||||
"analytics": "",
|
||||
"play_plural": "",
|
||||
"rating": "",
|
||||
"dislike_plural": "",
|
||||
"info": "",
|
||||
"like": "",
|
||||
"dislike": "",
|
||||
"like_plural": ""
|
||||
},
|
||||
"index_page": {
|
||||
"slogan": "La plateforme de quiz open-source !",
|
||||
"meta": {
|
||||
"description": "ClassQuiz est une application de quiz comme Kahoot! pour les étudiants, libre et open-source",
|
||||
"description": "ClassQuiz est une application de quiz permettant d'apprendre de manière interactive pour les étudiants, libre et open-source",
|
||||
"title": "Accueil"
|
||||
},
|
||||
"features_description": {
|
||||
@@ -149,7 +162,7 @@
|
||||
"list_winners": "Lister les gagnants",
|
||||
"get_ranking_and_winners": "Avoir le classement et voir les gagnants",
|
||||
"why_classquiz": "Pourquoi ClassQuiz ?",
|
||||
"no_tracking_content": "Kahoot! vous trace et envoie vos données à des services tiers, mais pas Classquiz.",
|
||||
"no_tracking_content": "Kahoot! vous suit et envoie ces informations à des tiers, mais pas ClassQuiz.",
|
||||
"self_hostable_content": "ClassQuiz est facilement auto-hébergeable, vos données sont sous contrôle !",
|
||||
"user_friendly_content": "ClassQuiz se veut simple d'utilisation, de manière à être utilisable par le plus grand nombre.",
|
||||
"import_quiz_from_kahoot_and_edit": "Importer un quiz depuis Kahoot! et l'éditer sur ClassQuiz",
|
||||
@@ -168,7 +181,7 @@
|
||||
"overview_page": {
|
||||
"created_at": "Crée le",
|
||||
"question_count": "Nombre de question",
|
||||
"no_quizzes": "Cliquez sur le bouton \"Créer\", ou importer un quiz depuis Kahoot! pour commencer."
|
||||
"no_quizzes": "Cliquez sur le bouton \"Créer\" ou importez un quiz pour commencer."
|
||||
},
|
||||
"edit_page": {
|
||||
"success_update_title": "Quiz mis à jour.",
|
||||
@@ -220,7 +233,9 @@
|
||||
"classquiz_quiz": "Un quiz ClassQuiz",
|
||||
"upload_file_ending": "Téléchargez le fichier se terminant par .cqa",
|
||||
"url_should_look_like_this": "L'URL devrait ressembler à ceci : https://create.kahoot.it/details/...",
|
||||
"this_side_classquiz": "De ce côté, vous pouvez importer des quiz, qui ont été exportés de ClassQuiz."
|
||||
"this_side_classquiz": "De ce côté, vous pouvez importer des quiz, qui ont été exportés de ClassQuiz.",
|
||||
"this_side_classquiz_excel": "",
|
||||
"download_template_here": ""
|
||||
},
|
||||
"admin_page": {
|
||||
"already_registered_as_admin": "Il y a déjà un administrateur enregistré pour ce jeu.",
|
||||
@@ -277,14 +292,17 @@
|
||||
"join_by_entering_code": "Participez en entrant le code suivant",
|
||||
"points_added": "Points ajoutés",
|
||||
"your_score": "Votre score : {{score}}",
|
||||
"final_result_rank": "{{place}} : {{nom d'utilisateur}} avec {{points}} points"
|
||||
"final_result_rank": "{{place}} : {{username}} avec {{points}} points"
|
||||
},
|
||||
"editor_page": {
|
||||
"add_an_answer": "Ajouter une réponse",
|
||||
"right_click_to_delete": "Faites un clic droit sur une réponse pour la supprimer !"
|
||||
},
|
||||
"dashboard": {
|
||||
"search_for_own_quizzes": "Cherchez dans vos quiz"
|
||||
"search_for_own_quizzes": "Cherchez dans vos quiz",
|
||||
"commandpalette_notice": "",
|
||||
"views_n_plays": "",
|
||||
"info_analytics": ""
|
||||
},
|
||||
"footer": {
|
||||
"more_details_here": "Plus de détails ici",
|
||||
@@ -300,7 +318,12 @@
|
||||
"select_upload_type": "Sélectionnez le type de téléchargement",
|
||||
"upload_a_video": "Télécharger une vidéo",
|
||||
"upload_video": "Télécharger la vidéo",
|
||||
"upload_video_popup_notice": "La fenêtre contextuelle est ouverte ; jetez-y un coup d'œil pour obtenir de plus amples informations."
|
||||
"upload_video_popup_notice": "La fenêtre contextuelle est ouverte ; jetez-y un coup d'œil pour obtenir de plus amples informations.",
|
||||
"images_by_pixabay": "",
|
||||
"next_page": "",
|
||||
"visit_pixabay": "",
|
||||
"previous_page": "",
|
||||
"search_english_only": ""
|
||||
},
|
||||
"quiztivity": {
|
||||
"editor": {
|
||||
@@ -435,5 +458,16 @@
|
||||
},
|
||||
"navbar": {
|
||||
"donate": "Faire un don"
|
||||
},
|
||||
"controllers": {
|
||||
"last_seen": "",
|
||||
"cancel_update": "",
|
||||
"add_new_controller": "",
|
||||
"player_name": "",
|
||||
"controller_name": "",
|
||||
"already_latest_version": "",
|
||||
"update_from_to": "",
|
||||
"first_seen": "",
|
||||
"version_overview": ""
|
||||
}
|
||||
}
|
||||
|
||||
@@ -294,7 +294,8 @@
|
||||
"dashboard": {
|
||||
"search_for_own_quizzes": "Keresés a saját kvízek között",
|
||||
"views_n_plays": "Megtekintések és játékok",
|
||||
"info_analytics": "A \"Játékok\" csak azt mutatja, hogy milyen gyakran indult el a kvíz (beleértve), míg a \"Megtekintések\" azt számolja, hogy milyen gyakran látogatták meg a \"megtekintések\"-oldalt, tehát a botokat is számolja (elnézést érte)."
|
||||
"info_analytics": "A \"Játékok\" csak azt mutatja, hogy milyen gyakran indult el a kvíz (beleértve), míg a \"Megtekintések\" azt számolja, hogy milyen gyakran látogatták meg a \"megtekintések\"-oldalt, tehát a botokat is számolja (elnézést érte).",
|
||||
"commandpalette_notice": ""
|
||||
},
|
||||
"footer": {
|
||||
"self_ads": "Készítette: ❤️, {{mawoka_link}} segítői {{others_link}}.",
|
||||
|
||||
@@ -26,10 +26,34 @@
|
||||
"quiz_results_downloadable": "Hasil kuis dapat diunduh",
|
||||
"multilingual": "Multibahasa",
|
||||
"dark_mode": "Mode gelap",
|
||||
"get_a_quiz": "1. Dapatkan kuis"
|
||||
"get_a_quiz": "1. Dapatkan kuis",
|
||||
"how_does_classquiz_work": "",
|
||||
"select_answer": "",
|
||||
"find_or_explore": "",
|
||||
"download_quizzes": "",
|
||||
"dark_mode_content": "",
|
||||
"community_driven_content": "",
|
||||
"quiz_results_downloadable_content": "",
|
||||
"view_results": "",
|
||||
"choose_answer_wisely": "",
|
||||
"self_hostable_content": "",
|
||||
"german_server_content": "",
|
||||
"get_ranking_and_winners": "",
|
||||
"list_winners": "",
|
||||
"check_if_chosen_wisely": "",
|
||||
"why_classquiz": "",
|
||||
"community_driven": "",
|
||||
"play_quiz": "",
|
||||
"completely_free_content": "",
|
||||
"user_friendly_content": "",
|
||||
"no_tracking_content": "",
|
||||
"multilingual_content": "",
|
||||
"download_quizzes_content": ""
|
||||
},
|
||||
"overview_page": {
|
||||
"question_count": "Jumlah pertanyaan"
|
||||
"question_count": "Jumlah pertanyaan",
|
||||
"created_at": "",
|
||||
"no_quizzes": ""
|
||||
},
|
||||
"edit_page": {
|
||||
"success_update_title": "Berhasil memperbarui kuis!",
|
||||
@@ -54,18 +78,23 @@
|
||||
"success": {
|
||||
"success": "Berhasil Masuk!",
|
||||
"description": {
|
||||
"success": "Berhasil masuk!"
|
||||
}
|
||||
"success": "Berhasil masuk!",
|
||||
"success_check_mail": ""
|
||||
},
|
||||
"success_check_mail": ""
|
||||
},
|
||||
"error": {
|
||||
"wrong_creds": "Surel atau kata sandi tidak tepat!",
|
||||
"unexpected": "Kesalahan tak terduga!",
|
||||
"description": {
|
||||
"wrong_creds": "Harap pastikan kata sandimu dan surelmu benar!"
|
||||
"wrong_creds": "Harap pastikan kata sandimu dan surelmu benar!",
|
||||
"unexpected": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"login_or_create_account": "Masuk atau buat akun"
|
||||
"login_or_create_account": "Masuk atau buat akun",
|
||||
"use_backup_code": "",
|
||||
"email_or_username": ""
|
||||
},
|
||||
"words": {
|
||||
"question": "Pertanyaan",
|
||||
@@ -96,7 +125,78 @@
|
||||
"save": "Simpan",
|
||||
"docs": "Dokumentasi",
|
||||
"close": "Tutup",
|
||||
"description": "Keterangan"
|
||||
"description": "Keterangan",
|
||||
"upload": "",
|
||||
"player_plural": "",
|
||||
"next": "",
|
||||
"totp": "",
|
||||
"score": "",
|
||||
"analytics": "",
|
||||
"no": "",
|
||||
"speed": "",
|
||||
"play": "",
|
||||
"backup_code": "",
|
||||
"files_library": "",
|
||||
"check_choice": "",
|
||||
"voting": "",
|
||||
"point": "",
|
||||
"features": "",
|
||||
"other": "",
|
||||
"text": "",
|
||||
"practice": "",
|
||||
"find": "",
|
||||
"private": "",
|
||||
"answer_plural": "",
|
||||
"version": "",
|
||||
"update": "",
|
||||
"download": "",
|
||||
"slide": "",
|
||||
"error": "",
|
||||
"play_plural": "",
|
||||
"rating": "",
|
||||
"video": "",
|
||||
"stats": "",
|
||||
"donating": "",
|
||||
"note": "",
|
||||
"order": "",
|
||||
"dislike_plural": "",
|
||||
"multiple_choice": "",
|
||||
"info": "",
|
||||
"question_plural": "",
|
||||
"results": "",
|
||||
"view_plural": "",
|
||||
"yes": "",
|
||||
"point_plural": "",
|
||||
"continue": "",
|
||||
"like": "",
|
||||
"dislike": "",
|
||||
"progress": "",
|
||||
"select": "",
|
||||
"screenshot": "",
|
||||
"correct": "",
|
||||
"like_plural": "",
|
||||
"screenshot_plural": "",
|
||||
"name": "",
|
||||
"other_plural": "",
|
||||
"count": "",
|
||||
"report": "",
|
||||
"quiztivity": "",
|
||||
"library": "",
|
||||
"finish": "",
|
||||
"normal": "",
|
||||
"selected": "",
|
||||
"result": "",
|
||||
"unknown": "",
|
||||
"dashboard": "",
|
||||
"back": "",
|
||||
"overview": "",
|
||||
"result_plural": "",
|
||||
"submit": "",
|
||||
"never": "",
|
||||
"connect": "",
|
||||
"quiz": "",
|
||||
"range": "",
|
||||
"game_pin": ""
|
||||
},
|
||||
"editor": {
|
||||
"right_or_true?": "Benar?",
|
||||
@@ -104,11 +204,37 @@
|
||||
"add_new_question": "Tambahkan pertanyaan",
|
||||
"delete_question": "Hapus pertanyaan",
|
||||
"delete_answer": "Hapus jawaban",
|
||||
"time_in_seconds": "Waktu dalam detik"
|
||||
"time_in_seconds": "Waktu dalam detik",
|
||||
"check_choice_description": "",
|
||||
"text_description": "",
|
||||
"order_description": "",
|
||||
"slide": {
|
||||
"headline": "",
|
||||
"headline_description": "",
|
||||
"rectangle": "",
|
||||
"rectangle_description": "",
|
||||
"text": "",
|
||||
"text_description": ""
|
||||
},
|
||||
"voting_description": "",
|
||||
"not_all_links_imgur_links": "",
|
||||
"range_description": "",
|
||||
"empty": "",
|
||||
"abcd_description": "",
|
||||
"bg_image": "",
|
||||
"no_title": ""
|
||||
},
|
||||
"import_page": {
|
||||
"need_help": "Butuh bantuan?",
|
||||
"visit_docs": "Lihat dokumentasi"
|
||||
"visit_docs": "Lihat dokumentasi",
|
||||
"this_side_classquiz_excel": "",
|
||||
"download_template_here": "",
|
||||
"classquiz_quiz": "",
|
||||
"this_side_classquiz": "",
|
||||
"a_kahoot_quiz": "",
|
||||
"side_import_kahoot": "",
|
||||
"url_should_look_like_this": "",
|
||||
"upload_file_ending": ""
|
||||
},
|
||||
"admin_page": {
|
||||
"start_game": "Mulai permainan",
|
||||
@@ -116,13 +242,231 @@
|
||||
"get_results_and_stop_time": "Terima hasil dan hentikan waktu",
|
||||
"get_final_results": "Terima hasil akhir",
|
||||
"export_results": "Ekspor hasil",
|
||||
"time_left": "Waktu tersisa"
|
||||
"time_left": "Waktu tersisa",
|
||||
"stop_time_and_solutions": "",
|
||||
"already_registered_as_admin": "",
|
||||
"no_answers": "",
|
||||
"request_export_results": "",
|
||||
"show_next_question": "",
|
||||
"stop_time": "",
|
||||
"show_results": "",
|
||||
"save_results": "",
|
||||
"enter_answer_into_field": "",
|
||||
"answers_submitted": "",
|
||||
"download_export_results": "",
|
||||
"next_question": "",
|
||||
"start_by_showing_first_question": ""
|
||||
},
|
||||
"settings_page": {
|
||||
"old_password": "Kata sandi lama",
|
||||
"new_password": "Kata sandi baru",
|
||||
"change_password_submit": "Ubah kata sandi!",
|
||||
"last_seen": "Terakhir terlihat",
|
||||
"repeat_password": "Ulangi kata sandi"
|
||||
"repeat_password": "Ulangi kata sandi",
|
||||
"change_avatar": "",
|
||||
"security_settings": "",
|
||||
"delete_this_session": "",
|
||||
"check_location": "",
|
||||
"this_session?": "",
|
||||
"add_api_key": ""
|
||||
},
|
||||
"result_page": {
|
||||
"correct_answer_plural": "",
|
||||
"player_score": "",
|
||||
"correct_answer": "",
|
||||
"time_taken": "",
|
||||
"player_name": "",
|
||||
"average_score": "",
|
||||
"custom_field": ""
|
||||
},
|
||||
"play_page": {
|
||||
"2nd_place": "",
|
||||
"join_description": "",
|
||||
"1st_place": "",
|
||||
"points_added": "",
|
||||
"final_result_rank": "",
|
||||
"your_score": "",
|
||||
"end_sentence": "",
|
||||
"with_out_of": "",
|
||||
"3rd place": "",
|
||||
"join_by_entering_code": ""
|
||||
},
|
||||
"file_dashboard": {
|
||||
"unset": "",
|
||||
"filename_word": "",
|
||||
"imported": "",
|
||||
"filename": "",
|
||||
"missing": "",
|
||||
"delete_image": "",
|
||||
"size": "",
|
||||
"storage_usage": "",
|
||||
"alt_text": "",
|
||||
"edit_details": "",
|
||||
"uploaded": "",
|
||||
"not_available": "",
|
||||
"caption": "",
|
||||
"edit_the_image": ""
|
||||
},
|
||||
"avatar_settings": {
|
||||
"accessories_type": "",
|
||||
"go_back": "",
|
||||
"hair_color": "",
|
||||
"clothe_graphic_type": "",
|
||||
"facial_hair_type": "",
|
||||
"facial_hair_color": "",
|
||||
"skin_color": "",
|
||||
"clothe_color": "",
|
||||
"thats_you": "",
|
||||
"start_over": "",
|
||||
"clothe_type": "",
|
||||
"mouth_type": "",
|
||||
"top_type": "",
|
||||
"eyebrow_type": "",
|
||||
"hat_color": ""
|
||||
},
|
||||
"footer": {
|
||||
"donate": "",
|
||||
"self_ads": "",
|
||||
"more_details_here": ""
|
||||
},
|
||||
"quiztivity": {
|
||||
"editor": {
|
||||
"add_new": "",
|
||||
"move_left": "",
|
||||
"shares": {
|
||||
"never_expires": "",
|
||||
"expires_on": "",
|
||||
"add_new_share": ""
|
||||
},
|
||||
"title_placeholder": "",
|
||||
"delete": "",
|
||||
"open_shares_menu": "",
|
||||
"select_page_type": "",
|
||||
"move_right": ""
|
||||
},
|
||||
"share_expired": "",
|
||||
"play": {
|
||||
"memory": {
|
||||
"try_count": ""
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"editor": {
|
||||
"add_card": "",
|
||||
"add_pair": "",
|
||||
"upload_image": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"results_page": {
|
||||
"no_results_so_far": "",
|
||||
"quiz_title": "",
|
||||
"player_count": "",
|
||||
"date_played": "",
|
||||
"general_overview": {
|
||||
"sentence": ""
|
||||
}
|
||||
},
|
||||
"security_settings": {
|
||||
"get_backup_code": "",
|
||||
"enable_totp": "",
|
||||
"disable_totp": "",
|
||||
"totp_setup": {
|
||||
"enter_as_secret_if_no_see_code": "",
|
||||
"scan_to_set_up": "",
|
||||
"totp_setup": "",
|
||||
"do_not_forget_backup_code": ""
|
||||
},
|
||||
"backup_code": "",
|
||||
"2fa_deactivated": "",
|
||||
"backup_codes": {
|
||||
"download_code": "",
|
||||
"your_backup_code": "",
|
||||
"save_somewhere_save": ""
|
||||
},
|
||||
"totp": "",
|
||||
"totp_unavailable": "",
|
||||
"2fa_activated": "",
|
||||
"webauthn": "",
|
||||
"add_security_key": "",
|
||||
"activate_2fa": "",
|
||||
"webauthn_unavailable": "",
|
||||
"totp_available": "",
|
||||
"webauthn_available": ""
|
||||
},
|
||||
"controllers": {
|
||||
"last_seen": "",
|
||||
"cancel_update": "",
|
||||
"add_new_controller": "",
|
||||
"player_name": "",
|
||||
"controller_name": "",
|
||||
"already_latest_version": "",
|
||||
"update_from_to": "",
|
||||
"first_seen": "",
|
||||
"version_overview": ""
|
||||
},
|
||||
"view_quiz_page": {
|
||||
"made_by": "",
|
||||
"view_on_kahoot": ""
|
||||
},
|
||||
"start_game": {
|
||||
"old_school_mode_description": "",
|
||||
"old_school_mode": "",
|
||||
"start_game": "",
|
||||
"captcha_message": "",
|
||||
"normal_mode_description": ""
|
||||
},
|
||||
"password_reset_page": {
|
||||
"reset_password": ""
|
||||
},
|
||||
"video_uploader": {
|
||||
"time_remaining": "",
|
||||
"time_elapsed": ""
|
||||
},
|
||||
"explore_page": {
|
||||
"imported_by": "",
|
||||
"made_by": ""
|
||||
},
|
||||
"error_page": {
|
||||
"unknown_error_text": "",
|
||||
"404_text": ""
|
||||
},
|
||||
"uploader": {
|
||||
"images_by_pixabay": "",
|
||||
"upload_video_popup_notice": "",
|
||||
"add_image": "",
|
||||
"select_upload_type": "",
|
||||
"upload_a_video": "",
|
||||
"next_page": "",
|
||||
"visit_pixabay": "",
|
||||
"previous_page": "",
|
||||
"search_english_only": "",
|
||||
"upload_video": ""
|
||||
},
|
||||
"search_page": {
|
||||
"nothing_here": "",
|
||||
"at_least_3_characters": ""
|
||||
},
|
||||
"dashboard": {
|
||||
"commandpalette_notice": "",
|
||||
"views_n_plays": "",
|
||||
"search_for_own_quizzes": "",
|
||||
"info_analytics": ""
|
||||
},
|
||||
"navbar": {
|
||||
"donate": ""
|
||||
},
|
||||
"editor_page": {
|
||||
"add_an_answer": "",
|
||||
"right_click_to_delete": ""
|
||||
},
|
||||
"public_user_page": {
|
||||
"no_original_quizzes": "",
|
||||
"joined_on": ""
|
||||
},
|
||||
"components": {
|
||||
"popover": {
|
||||
"copied_to_clipboard": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"index_page": {
|
||||
"meta": {
|
||||
"title": "Home",
|
||||
"description": "ClassQuiz è un'app di quiz per gli studenti come Kahoot!, open source e gratuita"
|
||||
"description": "ClassQuiz è un'app di quiz per imparare in modo interattivi per gli studenti, open source e gratuita"
|
||||
},
|
||||
"features_description": {
|
||||
"1": "ClassQuiz è una webapp per creare e gestire quiz.",
|
||||
@@ -20,8 +20,8 @@
|
||||
"dark_mode": "Modalità Notte",
|
||||
"quiz_results_downloadable_content": "I risultati dei quiz possono essere facilmente esportati in un foglio Excel. (Non sapevo che altri non potessero farlo)",
|
||||
"multilingual_content": "ClassQuiz è già disponibile in inglese, francese, tedesco, italiano, norvegese, turco, e parzialmente in indonesiano e in catalano.",
|
||||
"no_tracking_content": "Kahoot! ti traccia e invia le tue informazioni a terza parti, ma ClassQuiz, no.",
|
||||
"no_tracking": "Senza tracking",
|
||||
"no_tracking_content": "Altri ti tracciano e inviano le tue informazioni a terze parti, ma ClassQuiz non lo fa.",
|
||||
"no_tracking": "Senza tracciamento",
|
||||
"self_hostable": "È possibile fare hosting autonomo",
|
||||
"german_server": "Server tedesco",
|
||||
"user_friendly": "Facile da usare",
|
||||
@@ -38,9 +38,9 @@
|
||||
"view_results": "Visualizza i risultati",
|
||||
"check_if_chosen_wisely": "Controlla se hai scelto correttamente",
|
||||
"list_winners": "Elenco vincitori",
|
||||
"get_ranking_and_winners": "Vedi la classifica e chi ha vinto",
|
||||
"get_ranking_and_winners": "Vedi la classifica e guarda chi ha vinto",
|
||||
"why_classquiz": "Perché ClassQuiz?",
|
||||
"self_hostable_content": "Con ClassQuiz si può fare facilmente hosting autonomo, così i dati sono in tuo controllo!",
|
||||
"self_hostable_content": "Con ClassQuiz si può fare facilmente un hosting autonomo, così i dati sono in tuo controllo!",
|
||||
"user_friendly_content": "ClassQuiz cerca di essere semplice, così può essere usato da tutti.",
|
||||
"dark_mode_content": "Una delle caratteristiche più importanti che un sito web possa avere!",
|
||||
"german_server_content": "I server di ClassQuiz si trovano in Germania e sono ospitati da netcup.",
|
||||
@@ -48,12 +48,13 @@
|
||||
"download_quizzes": "Scarica i quiz",
|
||||
"community_driven": "Guidati dalla comunità",
|
||||
"community_driven_content": "ClassQuiz dipende dalla sua comunità per finanziamenti, idee di test, richieste di funzionalità, traduzioni e altro! Anche tu puoi far parte della comunità di ClassQuiz!",
|
||||
"completely_free_content": "ClassQuiz è completamente gratuito (per l'utente), senza piani a pagamento o fastidiose richieste di aggiornamento. Le donazioni sono molto apprezzate."
|
||||
"completely_free_content": "ClassQuiz è completamente gratuito (per l'utente), senza piani a pagamento o fastidiose richieste di aggiornamento. Le donazioni sono molto apprezzate.",
|
||||
"how_does_classquiz_work": "Come funziona ClassQuiz?"
|
||||
},
|
||||
"overview_page": {
|
||||
"created_at": "Creato il",
|
||||
"question_count": "Numero domande",
|
||||
"no_quizzes": "Clicca sul pulsante \"Crea\", o importa un quiz da Kahoot! per iniziare."
|
||||
"no_quizzes": "Clicca sul pulsante \"Crea\", o importa un quiz per iniziare."
|
||||
},
|
||||
"edit_page": {
|
||||
"success_update_title": "Quiz aggiornato.",
|
||||
@@ -76,7 +77,7 @@
|
||||
"already_have_account": "Non hai un account?",
|
||||
"modal": {
|
||||
"success": {
|
||||
"success_check_mail": "Accesso effettuato. Controlla la mail.",
|
||||
"success_check_mail": "Accesso effettuato. Controlla la tua mail.",
|
||||
"success": "Accesso effettuato.",
|
||||
"description": {
|
||||
"success": "Accesso effettuato.",
|
||||
@@ -87,7 +88,7 @@
|
||||
"wrong_creds": "Indirizzo e-mail o password errati.",
|
||||
"unexpected": "Errore imprevisto!",
|
||||
"description": {
|
||||
"unexpected": "È accaduto il buon vecco errore inatteso!",
|
||||
"unexpected": "È accaduto il buon vecchio errore inatteso!",
|
||||
"wrong_creds": "Per favore, assicurati che la tua password e l'indirizzo e-mail siano corretti."
|
||||
}
|
||||
}
|
||||
@@ -105,10 +106,10 @@
|
||||
"email": "Indirizzo e-mail",
|
||||
"username": "Nome utente",
|
||||
"password": "Password",
|
||||
"play": "Avvia",
|
||||
"play": "Gioca",
|
||||
"delete": "Elimina",
|
||||
"public": "Pubblica",
|
||||
"start": "Avvia",
|
||||
"start": "Inizia",
|
||||
"create": "Crea",
|
||||
"import": "Importa",
|
||||
"logout": "Esci dall'account",
|
||||
@@ -117,7 +118,7 @@
|
||||
"submit": "Invia",
|
||||
"connect": "Connetti",
|
||||
"pin": "PIN",
|
||||
"kick": "Avvia",
|
||||
"kick": "Espelli",
|
||||
"docs": "Documentazione",
|
||||
"close": "Chiudi",
|
||||
"save": "Salva",
|
||||
@@ -153,7 +154,7 @@
|
||||
"voting": "Votazione",
|
||||
"download": "Scarica",
|
||||
"text": "Testo",
|
||||
"order": "ordine",
|
||||
"order": "Ordine",
|
||||
"totp": "Password momentanea",
|
||||
"continue": "Continua",
|
||||
"backup_code": "Codice di backup",
|
||||
@@ -161,7 +162,42 @@
|
||||
"note": "Nota",
|
||||
"player_plural": "Giocatori",
|
||||
"score": "Punteggio",
|
||||
"find": "Trova"
|
||||
"find": "Trova",
|
||||
"next": "Successivo",
|
||||
"point": "Punto",
|
||||
"version": "Versione",
|
||||
"update": "Aggiorna",
|
||||
"slide": "Diapositiva",
|
||||
"view_plural": "Viste",
|
||||
"point_plural": "Punti",
|
||||
"select": "Seleziona",
|
||||
"name": "Nome",
|
||||
"quiztivity": "Quiztivity",
|
||||
"finish": "Termina",
|
||||
"normal": "Normale",
|
||||
"selected": "Selezionato",
|
||||
"unknown": "Sconosciuto",
|
||||
"back": "Indietro",
|
||||
"never": "Mai",
|
||||
"quiz": "Quiz",
|
||||
"upload": "Carica",
|
||||
"no": "no",
|
||||
"speed": "Velocità",
|
||||
"files_library": "Biblioteca dei file",
|
||||
"answer_plural": "Risposte",
|
||||
"rating": "Valutazione",
|
||||
"video": "Video",
|
||||
"info": "Info",
|
||||
"yes": "Sì",
|
||||
"like": "Mi piace",
|
||||
"progress": "Progressi",
|
||||
"library": "Biblioteca",
|
||||
"analytics": "Statistiche",
|
||||
"play_plural": "Giochi",
|
||||
"dislike_plural": "Non mi piace",
|
||||
"dislike": "Non mi piace",
|
||||
"like_plural": "Mi piace",
|
||||
"check_choice": ""
|
||||
},
|
||||
"editor": {
|
||||
"right_or_true?": "Corretto?",
|
||||
@@ -170,7 +206,24 @@
|
||||
"delete_question": "Elimina domanda",
|
||||
"delete_answer": "Elimina risposta",
|
||||
"time_in_seconds": "Tempo in secondi",
|
||||
"not_all_links_imgur_links": "Non tutti i link sono Imgur-links!"
|
||||
"not_all_links_imgur_links": "Non tutti i link sono Imgur-links!",
|
||||
"check_choice_description": "Per assegnare i punti bisogna selezionare tutte le risposte corrette",
|
||||
"text_description": "I giocatori possono inserire il testo",
|
||||
"order_description": "Le risposte devono essere inserite nell'ordine corretto",
|
||||
"slide": {
|
||||
"headline": "Intestazione",
|
||||
"headline_description": "Un testo in grassetto per le intestazioni",
|
||||
"rectangle": "Rettangolo",
|
||||
"rectangle_description": "Solo un rettangolo",
|
||||
"text": "Testo",
|
||||
"text_description": "Testo più piccolo e più lungo"
|
||||
},
|
||||
"voting_description": "Le risposte non aggiungono nessun punto",
|
||||
"range_description": "Un intervallo di numeri può essere selezionato con il cursore",
|
||||
"empty": "Vuoto...",
|
||||
"abcd_description": "Si può scegliere solo una risposta",
|
||||
"bg_image": "Immagine di sfondo",
|
||||
"no_title": "Nessun titolo..."
|
||||
},
|
||||
"import_page": {
|
||||
"need_help": "Hai bisogno di aiuto?",
|
||||
@@ -180,13 +233,15 @@
|
||||
"side_import_kahoot": "Da questa parte è possibile importare i quiz di Kahoot!.",
|
||||
"a_kahoot_quiz": "Un quiz di Kahoot",
|
||||
"classquiz_quiz": "Un quiz di ClassQuiz",
|
||||
"upload_file_ending": "Carica il file che termina con .cqa"
|
||||
"upload_file_ending": "Carica il file che termina con .cqa o .xlsx",
|
||||
"this_side_classquiz_excel": "Puoi anche caricare un file excel se hai compilato il seguente modello.",
|
||||
"download_template_here": "Scarica il modello"
|
||||
},
|
||||
"admin_page": {
|
||||
"already_registered_as_admin": "C'è già un amministratore registrato per questo quiz.",
|
||||
"start_game": "Avvia quiz",
|
||||
"time_left": "Tempo rimasto",
|
||||
"get_results": "Risultati",
|
||||
"get_results": "Ottieni i risultati",
|
||||
"export_results": "Esporta i risultati",
|
||||
"show_next_question": "Mostra la prossima domanda",
|
||||
"no_answers": "Nessuna risposta!",
|
||||
@@ -194,7 +249,14 @@
|
||||
"start_by_showing_first_question": "Avvia mostrando la prima domanda.",
|
||||
"get_results_and_stop_time": "Raccogli i risultati e ferma il tempo",
|
||||
"stop_time": "Ferma il cronometro",
|
||||
"save_results": "Salva i risultati"
|
||||
"save_results": "Salva i risultati",
|
||||
"stop_time_and_solutions": "Ferma il tempo e mostra le soluzioni",
|
||||
"request_export_results": "Richiedi il download del risultato",
|
||||
"show_results": "Mostra i risultati",
|
||||
"enter_answer_into_field": "Inserisci la tua risposta nel campo inserimento!",
|
||||
"answers_submitted": "{{answer_count}} Risposte inviate",
|
||||
"download_export_results": "Scarica i risultati",
|
||||
"next_question": "Prossima domanda ({{question}})"
|
||||
},
|
||||
"password_reset_page": {
|
||||
"reset_password": "Resetta la password"
|
||||
@@ -207,7 +269,10 @@
|
||||
"check_location": "Verifica il luogo",
|
||||
"this_session?": "Questa sessione?",
|
||||
"last_seen": "Visto l'ultima volta",
|
||||
"delete_this_session": "Elimina questa sessione"
|
||||
"delete_this_session": "Elimina questa sessione",
|
||||
"change_avatar": "Cambia l'avatar",
|
||||
"security_settings": "Impostazioni della sicurezza",
|
||||
"add_api_key": "Aggiungi una chiave API"
|
||||
},
|
||||
"explore_page": {
|
||||
"made_by": "Creato da",
|
||||
@@ -218,7 +283,12 @@
|
||||
"1st_place": "1° posto",
|
||||
"2nd_place": "2° posto",
|
||||
"3rd place": "3° posto",
|
||||
"with_out_of": "con {{correct_questions}} su {{total_question_count}}"
|
||||
"with_out_of": "con {{correct_questions}} su {{total_question_count}}",
|
||||
"join_description": "Vai a {{url}} e inserisci {{pin}}.",
|
||||
"points_added": "Punti aggiunti",
|
||||
"final_result_rank": "{{place}}: {{username}} con {{points}} punti",
|
||||
"your_score": "Il tuo punteggio: {{score}}",
|
||||
"join_by_entering_code": "Entra inserendo il seguente codice"
|
||||
},
|
||||
"editor_page": {
|
||||
"add_an_answer": "Aggiungi una risposta",
|
||||
@@ -229,7 +299,10 @@
|
||||
"nothing_here": "Non c'è nulla qua..."
|
||||
},
|
||||
"dashboard": {
|
||||
"search_for_own_quizzes": "Cerca fra i tuoi quiz"
|
||||
"search_for_own_quizzes": "Cerca fra i tuoi quiz",
|
||||
"commandpalette_notice": "Premi <kbd>Ctrl</kbd>+<kbd>k</kbd> o <kbd>Meta</kbd>+<kbd>k</kbd> per aprire la scheda dei comandi",
|
||||
"views_n_plays": "Visti e Giocati",
|
||||
"info_analytics": "I \"Giocati\" mostrano solo la frequenza con cui il quiz è stato avviato (voi compresi), mentre le \"Visti\" contano la frequenza con cui la pagina \"Vista\" è stata visitata, quindi contano anche i bot (scusate)."
|
||||
},
|
||||
"footer": {
|
||||
"self_ads": "Realizzato con ❤️ da {{mawoka_link}} e con l'aiuto di {{others_link}}.",
|
||||
@@ -250,16 +323,29 @@
|
||||
"facial_hair_color": "Colore dei peli del viso",
|
||||
"mouth_type": "Bocca",
|
||||
"clothe_color": "Colore dei vestiti",
|
||||
"start_over": "Ricomincia da capo"
|
||||
"start_over": "Ricomincia da capo",
|
||||
"go_back": "Torna indietro"
|
||||
},
|
||||
"uploader": {
|
||||
"add_image": "Aggiungi immagine"
|
||||
"add_image": "Aggiungi media",
|
||||
"images_by_pixabay": "Immagini fornite da Pixabay",
|
||||
"upload_video_popup_notice": "La finestra popup è aperta; dalle un'occhiata per altre informazioni",
|
||||
"select_upload_type": "Seleziona il tipo di caricamento (upload)",
|
||||
"upload_a_video": "Carica un video",
|
||||
"next_page": "Pagina successiva",
|
||||
"visit_pixabay": "Visita Pixabay",
|
||||
"previous_page": "Pagina precedente",
|
||||
"search_english_only": "La ricerca funziona solo in inglese",
|
||||
"upload_video": "Carica video"
|
||||
},
|
||||
"results_page": {
|
||||
"no_results_so_far": "Nessun risultato salvato finora...",
|
||||
"quiz_title": "Titolo del quiz",
|
||||
"date_played": "Data della partita",
|
||||
"player_count": "Numero dei giocatori"
|
||||
"player_count": "Numero dei giocatori",
|
||||
"general_overview": {
|
||||
"sentence": "Il quiz \"{{title}}\", che è stato eseguito il {{date}} aveva {{player_count}} giocatori con un punteggio medio di {{average_score}}."
|
||||
}
|
||||
},
|
||||
"result_page": {
|
||||
"player_name": "Nome del giocatore",
|
||||
@@ -267,10 +353,121 @@
|
||||
"average_score": "Punteggio medio: {{average_score}}",
|
||||
"correct_answer": "{{count}} risposta corretta",
|
||||
"correct_answer_plural": "{{count}} risposte corrette",
|
||||
"time_taken": "Tempo impiegato"
|
||||
"time_taken": "Tempo impiegato",
|
||||
"player_score": "Punteggio del giocatore"
|
||||
},
|
||||
"error_page": {
|
||||
"404_text": "La pagina che stavi cercando è sparita o non è mai esistita. Chi lo sa?",
|
||||
"unknown_error_text": "Questo non dovrebbe succedere. Probabilmente è colpa mia, non tua, oppure forse tu hai il potere magico di rompere le cose..."
|
||||
},
|
||||
"security_settings": {
|
||||
"get_backup_code": "Ottieni codice backup",
|
||||
"enable_totp": "Abilita Totp",
|
||||
"disable_totp": "Disabilita Totp",
|
||||
"backup_code": "Codice backp",
|
||||
"2fa_deactivated": "L'autenticazione a due fattori è disattivata",
|
||||
"backup_codes": {
|
||||
"download_code": "Codice di download",
|
||||
"your_backup_code": "Il tuo codice di backup",
|
||||
"save_somewhere_save": "Salvalo in un posto sicuro!"
|
||||
},
|
||||
"totp_unavailable": "Totp non è disponibile",
|
||||
"2fa_activated": "L'autenticazione a due fattori è attivata",
|
||||
"add_security_key": "Aggiungi una chiave di sicurezza",
|
||||
"activate_2fa": "Attiva autenticazione a due fattori",
|
||||
"webauthn_unavailable": "Webauthn non è disponibile",
|
||||
"totp_available": "Totp è disponibile",
|
||||
"webauthn_available": "Webauthn è disponibile",
|
||||
"totp_setup": {
|
||||
"do_not_forget_backup_code": "Non dimenticare di salvare il tuo codice di recupero!",
|
||||
"enter_as_secret_if_no_see_code": "Inserisci questo come segreto se non puoi scansionare il codice QR",
|
||||
"scan_to_set_up": "Scansiona questo codice QR per impostare il codice",
|
||||
"totp_setup": "Impostazione Topt"
|
||||
},
|
||||
"webauthn": "Webauthn",
|
||||
"totp": "Password momentanea"
|
||||
},
|
||||
"view_quiz_page": {
|
||||
"made_by": "Creato da",
|
||||
"view_on_kahoot": "Vedi nell'originale"
|
||||
},
|
||||
"controllers": {
|
||||
"cancel_update": "Cancella aggiornamento!",
|
||||
"player_name": "Nome del giocatore",
|
||||
"already_latest_version": "Stai già usando l'ultima versione",
|
||||
"update_from_to": "Aggiorna da {{current_version}} a {{newest_version}}",
|
||||
"version_overview": "La versione più recente disponibile è {{newest_version}} e la versione {{current_version}} è installata.",
|
||||
"last_seen": "Visto l'ultima volta",
|
||||
"add_new_controller": "Aggiungi un nuovo controllore",
|
||||
"controller_name": "Nome del controllore",
|
||||
"first_seen": "Visto per la prima volta"
|
||||
},
|
||||
"start_game": {
|
||||
"old_school_mode": "Vecchia scuola",
|
||||
"old_school_mode_description": "Domande e immagini verranno mostrate sia sulla schermo degli admin che su quello dei giocatori",
|
||||
"start_game": "Avvio del gioco",
|
||||
"captcha_message": "Se abilitato, il ReCaptcha Google verrà caricato nel browser dei giocatori. Abilitalo solo se è veramente necessario, dato che è necessario il consenso di OGNI giocatore per caricare il captcha.",
|
||||
"normal_mode_description": "La domanda e la risposta verranno visualizzate solo sullo schermo dell'amministratore. I giocatori avranno solo i pulsanti colorati con i simboli corrispondenti sullo schermo dell'amministratore."
|
||||
},
|
||||
"navbar": {
|
||||
"donate": "Dona"
|
||||
},
|
||||
"quiztivity": {
|
||||
"editor": {
|
||||
"add_new": "Aggiungi nuovo",
|
||||
"move_left": "Sposta a sinistra",
|
||||
"title_placeholder": "Inserisci il titolo qui",
|
||||
"delete": "Elimina",
|
||||
"select_page_type": "Seleziona il tipo di pagina",
|
||||
"move_right": "Sposta a destra",
|
||||
"shares": {
|
||||
"never_expires": "Non scade mai",
|
||||
"expires_on": "Scade il {{date}}",
|
||||
"add_new_share": "Aggiungi nuova Condivisione"
|
||||
},
|
||||
"open_shares_menu": "Apri il menu Condividi"
|
||||
},
|
||||
"share_expired": "Condivisione scaduta",
|
||||
"play": {
|
||||
"memory": {
|
||||
"try_count": "Tentativi: {{try_count}}"
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"editor": {
|
||||
"add_card": "Aggiungi scheda",
|
||||
"add_pair": "Aggiungi coppia",
|
||||
"upload_image": "Carica immagine"
|
||||
}
|
||||
}
|
||||
},
|
||||
"file_dashboard": {
|
||||
"unset": "Non impostato",
|
||||
"missing": "MANCANTE!",
|
||||
"size": "Dimensione: {{size}} Mb",
|
||||
"not_available": "Non disponibile",
|
||||
"caption": "Didascalia: {{caption}}",
|
||||
"imported": "Importato: {{yes_or_no}}",
|
||||
"filename": "Nome del file: {{filename}}",
|
||||
"uploaded": "Caricato il: {{date}}",
|
||||
"edit_details": "Modifica i dettagli",
|
||||
"filename_word": "Nome del file",
|
||||
"delete_image": "Elimina immagine",
|
||||
"edit_the_image": "Modifica immagine",
|
||||
"alt_text": "Testo alternativo/Didascalia",
|
||||
"storage_usage": "Hai utilizzato {{used}} Mb su {{total}} Mb di spazio disponibile. Corrisponde a {{percent}}% dello spazio."
|
||||
},
|
||||
"public_user_page": {
|
||||
"no_original_quizzes": "Questo utente non ha nessun quiz originale",
|
||||
"joined_on": "Iscritto il {{date}}"
|
||||
},
|
||||
"components": {
|
||||
"popover": {
|
||||
"copied_to_clipboard": "Copiato negli appunti!"
|
||||
}
|
||||
},
|
||||
"video_uploader": {
|
||||
"time_remaining": "Tempo rimanente",
|
||||
"time_elapsed": "Tempo trascorso"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,8 @@
|
||||
"import_quiz_from_kahoot_and_edit": "Importer en spørrekonkurranse fra Kahoot! og rediger den i CrassQuiz",
|
||||
"completely_free_content": "ClassQuiz er helt kostnadsfritt (for brukeren), uten betalte planer eller irriterende videresending til en oppgraderingsside. Donasjoner verdsettes høyt.",
|
||||
"multilingual_content": "ClassQuiz er tilgjengelig på bokmål, engelsk, fransk, italiensk, tysk, tyrkisk, og delvis indonesisk og katalansk.",
|
||||
"download_quizzes_content": "Spørrekonkuranser kan lastes ned som én fil og importeres når som helst, slik at du også kan flytte spørrekonkurransene dine til andre ClassQuiz-instanser."
|
||||
"download_quizzes_content": "Spørrekonkuranser kan lastes ned som én fil og importeres når som helst, slik at du også kan flytte spørrekonkurransene dine til andre ClassQuiz-instanser.",
|
||||
"how_does_classquiz_work": ""
|
||||
},
|
||||
"words": {
|
||||
"logout": "Logg ut",
|
||||
@@ -106,7 +107,51 @@
|
||||
"question": "Spørsmål",
|
||||
"submit": "Send inn",
|
||||
"other_plural": "andre",
|
||||
"email": "E-postadresse"
|
||||
"email": "E-postadresse",
|
||||
"upload": "",
|
||||
"player_plural": "",
|
||||
"next": "",
|
||||
"totp": "",
|
||||
"score": "",
|
||||
"analytics": "",
|
||||
"no": "",
|
||||
"speed": "",
|
||||
"backup_code": "",
|
||||
"files_library": "",
|
||||
"check_choice": "",
|
||||
"point": "",
|
||||
"text": "",
|
||||
"answer_plural": "",
|
||||
"version": "",
|
||||
"update": "",
|
||||
"slide": "",
|
||||
"play_plural": "",
|
||||
"rating": "",
|
||||
"video": "",
|
||||
"note": "",
|
||||
"order": "",
|
||||
"dislike_plural": "",
|
||||
"info": "",
|
||||
"results": "",
|
||||
"view_plural": "",
|
||||
"yes": "",
|
||||
"point_plural": "",
|
||||
"continue": "",
|
||||
"like": "",
|
||||
"dislike": "",
|
||||
"progress": "",
|
||||
"select": "",
|
||||
"like_plural": "",
|
||||
"name": "",
|
||||
"quiztivity": "",
|
||||
"library": "",
|
||||
"finish": "",
|
||||
"normal": "",
|
||||
"selected": "",
|
||||
"unknown": "",
|
||||
"back": "",
|
||||
"never": "",
|
||||
"quiz": ""
|
||||
},
|
||||
"settings_page": {
|
||||
"repeat_password": "Gjenta passordet",
|
||||
@@ -116,7 +161,10 @@
|
||||
"last_seen": "Sist sett",
|
||||
"this_session?": "Denne økten?",
|
||||
"check_location": "Sjekk posisjon",
|
||||
"delete_this_session": "Slett denne økten"
|
||||
"delete_this_session": "Slett denne økten",
|
||||
"change_avatar": "",
|
||||
"security_settings": "",
|
||||
"add_api_key": ""
|
||||
},
|
||||
"admin_page": {
|
||||
"time_left": "Gjenværende tid",
|
||||
@@ -129,7 +177,15 @@
|
||||
"start_game": "Start spillet",
|
||||
"start_by_showing_first_question": "Start ved å vise det første spørsmålet.",
|
||||
"get_results_and_stop_time": "Hent resultater og stopp tiden",
|
||||
"stop_time": "Stopp tiden"
|
||||
"stop_time": "Stopp tiden",
|
||||
"stop_time_and_solutions": "",
|
||||
"request_export_results": "",
|
||||
"show_results": "",
|
||||
"save_results": "",
|
||||
"enter_answer_into_field": "",
|
||||
"answers_submitted": "",
|
||||
"download_export_results": "",
|
||||
"next_question": ""
|
||||
},
|
||||
"register_page": {
|
||||
"already_have_account?": "Har du allerede en konto?",
|
||||
@@ -167,7 +223,9 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"welcome_back": "Velkommen tilbake."
|
||||
"welcome_back": "Velkommen tilbake.",
|
||||
"use_backup_code": "",
|
||||
"email_or_username": ""
|
||||
},
|
||||
"create_page": {
|
||||
"success": {
|
||||
@@ -182,7 +240,24 @@
|
||||
"delete_answer": "Slett svaret",
|
||||
"right_or_true?": "Rett?",
|
||||
"not_all_links_imgur_links": "Ikke alle lenkene er Imgur-lenker.",
|
||||
"time_in_seconds": "Antall sekunder"
|
||||
"time_in_seconds": "Antall sekunder",
|
||||
"check_choice_description": "",
|
||||
"text_description": "",
|
||||
"order_description": "",
|
||||
"slide": {
|
||||
"headline": "",
|
||||
"headline_description": "",
|
||||
"rectangle": "",
|
||||
"rectangle_description": "",
|
||||
"text": "",
|
||||
"text_description": ""
|
||||
},
|
||||
"voting_description": "",
|
||||
"range_description": "",
|
||||
"empty": "",
|
||||
"abcd_description": "",
|
||||
"bg_image": "",
|
||||
"no_title": ""
|
||||
},
|
||||
"import_page": {
|
||||
"visit_docs": "Besøk dokumentasjonen",
|
||||
@@ -192,7 +267,9 @@
|
||||
"upload_file_ending": "Last opp filen som slutter med «.cqa»",
|
||||
"classquiz_quiz": "En ClassQuiz-spørrekonkurranse",
|
||||
"this_side_classquiz": "På denne siden kan du importere spørrekonkurranser som ble eksportert fra ClassQuiz.",
|
||||
"url_should_look_like_this": "Nettadressen skal være utformet slik: https://create.kahoot.it/details/…"
|
||||
"url_should_look_like_this": "Nettadressen skal være utformet slik: https://create.kahoot.it/details/…",
|
||||
"this_side_classquiz_excel": "",
|
||||
"download_template_here": ""
|
||||
},
|
||||
"password_reset_page": {
|
||||
"reset_password": "Tilbakestill passordet"
|
||||
@@ -210,10 +287,22 @@
|
||||
"right_click_to_delete": "Høyreklikk på et svar for å slette det."
|
||||
},
|
||||
"uploader": {
|
||||
"add_image": "Legg til bilde"
|
||||
"add_image": "Legg til bilde",
|
||||
"images_by_pixabay": "",
|
||||
"upload_video_popup_notice": "",
|
||||
"select_upload_type": "",
|
||||
"upload_a_video": "",
|
||||
"next_page": "",
|
||||
"visit_pixabay": "",
|
||||
"previous_page": "",
|
||||
"search_english_only": "",
|
||||
"upload_video": ""
|
||||
},
|
||||
"dashboard": {
|
||||
"search_for_own_quizzes": "Søk etter dine egne spørrekonkurranser"
|
||||
"search_for_own_quizzes": "Søk etter dine egne spørrekonkurranser",
|
||||
"commandpalette_notice": "",
|
||||
"views_n_plays": "",
|
||||
"info_analytics": ""
|
||||
},
|
||||
"footer": {
|
||||
"self_ads": "Med ❤️ av {{mawoka_link}} og hjelp fra {{others_link}}.",
|
||||
@@ -229,6 +318,156 @@
|
||||
"2nd_place": "Andreplass",
|
||||
"end_sentence": "Det var det. Som man svarer får man nye spørsmål.",
|
||||
"with_out_of": "med {{correct_questions}} riktige av {{total_question_count}}",
|
||||
"3rd place": "Tredjeplass"
|
||||
"3rd place": "Tredjeplass",
|
||||
"join_description": "",
|
||||
"points_added": "",
|
||||
"final_result_rank": "",
|
||||
"your_score": "",
|
||||
"join_by_entering_code": ""
|
||||
},
|
||||
"result_page": {
|
||||
"correct_answer_plural": "",
|
||||
"player_score": "",
|
||||
"correct_answer": "",
|
||||
"time_taken": "",
|
||||
"player_name": "",
|
||||
"average_score": "",
|
||||
"custom_field": ""
|
||||
},
|
||||
"file_dashboard": {
|
||||
"unset": "",
|
||||
"filename_word": "",
|
||||
"imported": "",
|
||||
"filename": "",
|
||||
"missing": "",
|
||||
"delete_image": "",
|
||||
"size": "",
|
||||
"storage_usage": "",
|
||||
"alt_text": "",
|
||||
"edit_details": "",
|
||||
"uploaded": "",
|
||||
"not_available": "",
|
||||
"caption": "",
|
||||
"edit_the_image": ""
|
||||
},
|
||||
"avatar_settings": {
|
||||
"accessories_type": "",
|
||||
"go_back": "",
|
||||
"hair_color": "",
|
||||
"clothe_graphic_type": "",
|
||||
"facial_hair_type": "",
|
||||
"facial_hair_color": "",
|
||||
"skin_color": "",
|
||||
"clothe_color": "",
|
||||
"thats_you": "",
|
||||
"start_over": "",
|
||||
"clothe_type": "",
|
||||
"mouth_type": "",
|
||||
"top_type": "",
|
||||
"eyebrow_type": "",
|
||||
"hat_color": ""
|
||||
},
|
||||
"quiztivity": {
|
||||
"editor": {
|
||||
"add_new": "",
|
||||
"move_left": "",
|
||||
"shares": {
|
||||
"never_expires": "",
|
||||
"expires_on": "",
|
||||
"add_new_share": ""
|
||||
},
|
||||
"title_placeholder": "",
|
||||
"delete": "",
|
||||
"open_shares_menu": "",
|
||||
"select_page_type": "",
|
||||
"move_right": ""
|
||||
},
|
||||
"share_expired": "",
|
||||
"play": {
|
||||
"memory": {
|
||||
"try_count": ""
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"editor": {
|
||||
"add_card": "",
|
||||
"add_pair": "",
|
||||
"upload_image": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"results_page": {
|
||||
"no_results_so_far": "",
|
||||
"quiz_title": "",
|
||||
"player_count": "",
|
||||
"date_played": "",
|
||||
"general_overview": {
|
||||
"sentence": ""
|
||||
}
|
||||
},
|
||||
"security_settings": {
|
||||
"get_backup_code": "",
|
||||
"enable_totp": "",
|
||||
"disable_totp": "",
|
||||
"totp_setup": {
|
||||
"enter_as_secret_if_no_see_code": "",
|
||||
"scan_to_set_up": "",
|
||||
"totp_setup": "",
|
||||
"do_not_forget_backup_code": ""
|
||||
},
|
||||
"backup_code": "",
|
||||
"2fa_deactivated": "",
|
||||
"backup_codes": {
|
||||
"download_code": "",
|
||||
"your_backup_code": "",
|
||||
"save_somewhere_save": ""
|
||||
},
|
||||
"totp": "",
|
||||
"totp_unavailable": "",
|
||||
"2fa_activated": "",
|
||||
"webauthn": "",
|
||||
"add_security_key": "",
|
||||
"activate_2fa": "",
|
||||
"webauthn_unavailable": "",
|
||||
"totp_available": "",
|
||||
"webauthn_available": ""
|
||||
},
|
||||
"controllers": {
|
||||
"last_seen": "",
|
||||
"cancel_update": "",
|
||||
"add_new_controller": "",
|
||||
"player_name": "",
|
||||
"controller_name": "",
|
||||
"already_latest_version": "",
|
||||
"update_from_to": "",
|
||||
"first_seen": "",
|
||||
"version_overview": ""
|
||||
},
|
||||
"view_quiz_page": {
|
||||
"made_by": "",
|
||||
"view_on_kahoot": ""
|
||||
},
|
||||
"start_game": {
|
||||
"old_school_mode_description": "",
|
||||
"old_school_mode": "",
|
||||
"start_game": "",
|
||||
"captcha_message": "",
|
||||
"normal_mode_description": ""
|
||||
},
|
||||
"video_uploader": {
|
||||
"time_remaining": "",
|
||||
"time_elapsed": ""
|
||||
},
|
||||
"navbar": {
|
||||
"donate": ""
|
||||
},
|
||||
"public_user_page": {
|
||||
"no_original_quizzes": "",
|
||||
"joined_on": ""
|
||||
},
|
||||
"components": {
|
||||
"popover": {
|
||||
"copied_to_clipboard": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
"overview_page": {
|
||||
"created_at": "Gemaakt op",
|
||||
"question_count": "Vragenaantal",
|
||||
"no_quizzes": "Klik op de \"Creëer\"-knop of importeer een quiz van Kahoot! om aan de slag te gaan."
|
||||
"no_quizzes": "Klik op de \"Creëer\"-knop of importeer een quiz om aan de slag te gaan."
|
||||
},
|
||||
"edit_page": {
|
||||
"success_update_title": "Quiz bijgewerkt.",
|
||||
@@ -147,7 +147,7 @@
|
||||
"backup_code": "Backup-code",
|
||||
"totp": "TOTP",
|
||||
"text": "Tekst",
|
||||
"order": "volgorde",
|
||||
"order": "Volgorde",
|
||||
"results": "Resultaten",
|
||||
"note": "Opmerking",
|
||||
"multiple_choice": "Meerkeuze",
|
||||
@@ -186,7 +186,18 @@
|
||||
"quiz": "Quiz",
|
||||
"next": "Volgende",
|
||||
"select": "Selecteren",
|
||||
"update": "Update"
|
||||
"update": "Update",
|
||||
"rating": "Beoordeling",
|
||||
"quiztivity": "Quiztivity",
|
||||
"analytics": "",
|
||||
"check_choice": "",
|
||||
"play_plural": "",
|
||||
"dislike_plural": "",
|
||||
"info": "",
|
||||
"view_plural": "",
|
||||
"like": "",
|
||||
"dislike": "",
|
||||
"like_plural": ""
|
||||
},
|
||||
"editor": {
|
||||
"not_all_links_imgur_links": "Niet alle links zijn Imgur-links!",
|
||||
@@ -222,7 +233,9 @@
|
||||
"visit_docs": "Bekijk de documentatie",
|
||||
"a_kahoot_quiz": "Een Kahoot!-Quiz",
|
||||
"need_help": "Hulp nodig?",
|
||||
"classquiz_quiz": "Een ClassQuiz-Quiz"
|
||||
"classquiz_quiz": "Een ClassQuiz-Quiz",
|
||||
"this_side_classquiz_excel": "",
|
||||
"download_template_here": ""
|
||||
},
|
||||
"admin_page": {
|
||||
"start_game": "Start spel",
|
||||
@@ -242,7 +255,8 @@
|
||||
"enter_answer_into_field": "Typ je antwoord in het invoerveld!",
|
||||
"stop_time_and_solutions": "Stop de tijd en toon oplossingen",
|
||||
"download_export_results": "Resultaten downloaden",
|
||||
"answers_submitted": "{{answer_count}} Antwoorden ingediend"
|
||||
"answers_submitted": "{{answer_count}} Antwoorden ingediend",
|
||||
"request_export_results": ""
|
||||
},
|
||||
"password_reset_page": {
|
||||
"reset_password": "Wachtwoord resetten"
|
||||
@@ -341,7 +355,10 @@
|
||||
"player_score": "Speler Score"
|
||||
},
|
||||
"dashboard": {
|
||||
"search_for_own_quizzes": "Zoek voor je eigen quizzen"
|
||||
"search_for_own_quizzes": "Zoek voor je eigen quizzen",
|
||||
"commandpalette_notice": "",
|
||||
"views_n_plays": "",
|
||||
"info_analytics": ""
|
||||
},
|
||||
"security_settings": {
|
||||
"webauthn": "Webauthn",
|
||||
@@ -386,9 +403,11 @@
|
||||
"add_new": "Nieuwe toevoegen",
|
||||
"shares": {
|
||||
"never_expires": "Verloopt nooit",
|
||||
"expires_on": "Verloopt op {{date}}"
|
||||
"expires_on": "Verloopt op {{date}}",
|
||||
"add_new_share": ""
|
||||
},
|
||||
"select_page_type": "Selecteer Pagina Type"
|
||||
"select_page_type": "Selecteer Pagina Type",
|
||||
"open_shares_menu": ""
|
||||
},
|
||||
"memory": {
|
||||
"editor": {
|
||||
@@ -401,7 +420,8 @@
|
||||
"memory": {
|
||||
"try_count": "Pogingen: {{try_count}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"share_expired": ""
|
||||
},
|
||||
"controllers": {
|
||||
"update_from_to": "Bijwerken van {{current_version}} naar {{newest_version}}",
|
||||
|
||||
@@ -1,18 +1,39 @@
|
||||
{
|
||||
"register_page": {
|
||||
"already_have_account?": "Har du allereie ein konto?",
|
||||
"create_account": "Opprett konto"
|
||||
"create_account": "Opprett konto",
|
||||
"greeting": "",
|
||||
"forgot_password?": ""
|
||||
},
|
||||
"overview_page": {
|
||||
"created_at": "Oppretta"
|
||||
"created_at": "Oppretta",
|
||||
"question_count": "",
|
||||
"no_quizzes": ""
|
||||
},
|
||||
"login_page": {
|
||||
"welcome_back": "Velkomen attende.",
|
||||
"modal": {
|
||||
"error": {
|
||||
"unexpected": "Uventa feil!"
|
||||
"unexpected": "Uventa feil!",
|
||||
"description": {
|
||||
"unexpected": "",
|
||||
"wrong_creds": ""
|
||||
},
|
||||
"wrong_creds": ""
|
||||
},
|
||||
"success": {
|
||||
"success": "",
|
||||
"description": {
|
||||
"success": "",
|
||||
"success_check_mail": ""
|
||||
},
|
||||
"success_check_mail": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"use_backup_code": "",
|
||||
"email_or_username": "",
|
||||
"already_have_account": "",
|
||||
"login_or_create_account": ""
|
||||
},
|
||||
"words": {
|
||||
"features": "Funksjonar",
|
||||
@@ -24,7 +45,97 @@
|
||||
"start": "Start",
|
||||
"email": "E-postadresse",
|
||||
"edit": "Rediger",
|
||||
"delete": "Slett"
|
||||
"delete": "Slett",
|
||||
"import": "",
|
||||
"upload": "",
|
||||
"player_plural": "",
|
||||
"next": "",
|
||||
"totp": "",
|
||||
"score": "",
|
||||
"analytics": "",
|
||||
"no": "",
|
||||
"speed": "",
|
||||
"backup_code": "",
|
||||
"files_library": "",
|
||||
"check_choice": "",
|
||||
"voting": "",
|
||||
"pin": "",
|
||||
"point": "",
|
||||
"docs": "",
|
||||
"description": "",
|
||||
"settings": "",
|
||||
"other": "",
|
||||
"title": "",
|
||||
"text": "",
|
||||
"register": "",
|
||||
"practice": "",
|
||||
"find": "",
|
||||
"private": "",
|
||||
"answer_plural": "",
|
||||
"version": "",
|
||||
"update": "",
|
||||
"download": "",
|
||||
"slide": "",
|
||||
"repeat_password": "",
|
||||
"kick": "",
|
||||
"url": "",
|
||||
"explore": "",
|
||||
"close": "",
|
||||
"error": "",
|
||||
"play_plural": "",
|
||||
"rating": "",
|
||||
"video": "",
|
||||
"browser": "",
|
||||
"stats": "",
|
||||
"donating": "",
|
||||
"save": "",
|
||||
"note": "",
|
||||
"order": "",
|
||||
"dislike_plural": "",
|
||||
"multiple_choice": "",
|
||||
"info": "",
|
||||
"question_plural": "",
|
||||
"results": "",
|
||||
"view_plural": "",
|
||||
"yes": "",
|
||||
"point_plural": "",
|
||||
"continue": "",
|
||||
"game_pin": "",
|
||||
"like": "",
|
||||
"dislike": "",
|
||||
"search": "",
|
||||
"progress": "",
|
||||
"select": "",
|
||||
"screenshot": "",
|
||||
"correct": "",
|
||||
"like_plural": "",
|
||||
"screenshot_plural": "",
|
||||
"view": "",
|
||||
"name": "",
|
||||
"answer": "",
|
||||
"other_plural": "",
|
||||
"count": "",
|
||||
"login": "",
|
||||
"create": "",
|
||||
"report": "",
|
||||
"quiztivity": "",
|
||||
"library": "",
|
||||
"finish": "",
|
||||
"normal": "",
|
||||
"selected": "",
|
||||
"result": "",
|
||||
"unknown": "",
|
||||
"dashboard": "",
|
||||
"back": "",
|
||||
"overview": "",
|
||||
"image": "",
|
||||
"result_plural": "",
|
||||
"submit": "",
|
||||
"never": "",
|
||||
"connect": "",
|
||||
"quiz": "",
|
||||
"range": "",
|
||||
"logout": ""
|
||||
},
|
||||
"index_page": {
|
||||
"features_description": {
|
||||
@@ -63,6 +174,299 @@
|
||||
},
|
||||
"see_what_true_and_false": "Sjå kva som er rett og gale",
|
||||
"create_or_import": "Lag eller importer",
|
||||
"create_a_quiz_from_scratch": "Lag ein ny kviss frå botnen av og ta med bilete og meir"
|
||||
"create_a_quiz_from_scratch": "Lag ein ny kviss frå botnen av og ta med bilete og meir",
|
||||
"how_does_classquiz_work": "",
|
||||
"completely_free_content": "",
|
||||
"download_quizzes": "",
|
||||
"dark_mode_content": "",
|
||||
"community_driven_content": "",
|
||||
"quiz_results_downloadable_content": "",
|
||||
"self_hostable_content": "",
|
||||
"german_server_content": "",
|
||||
"get_ranking_and_winners": "",
|
||||
"user_friendly_content": "",
|
||||
"multilingual_content": "",
|
||||
"community_driven": "",
|
||||
"download_quizzes_content": ""
|
||||
},
|
||||
"result_page": {
|
||||
"correct_answer_plural": "",
|
||||
"player_score": "",
|
||||
"correct_answer": "",
|
||||
"time_taken": "",
|
||||
"player_name": "",
|
||||
"average_score": "",
|
||||
"custom_field": ""
|
||||
},
|
||||
"edit_page": {
|
||||
"success_update_body": "",
|
||||
"success_update_title": ""
|
||||
},
|
||||
"admin_page": {
|
||||
"stop_time_and_solutions": "",
|
||||
"already_registered_as_admin": "",
|
||||
"no_answers": "",
|
||||
"start_by_showing_first_question": "",
|
||||
"request_export_results": "",
|
||||
"time_left": "",
|
||||
"show_next_question": "",
|
||||
"stop_time": "",
|
||||
"show_results": "",
|
||||
"save_results": "",
|
||||
"enter_answer_into_field": "",
|
||||
"get_results_and_stop_time": "",
|
||||
"start_game": "",
|
||||
"answers_submitted": "",
|
||||
"download_export_results": "",
|
||||
"next_question": "",
|
||||
"get_results": "",
|
||||
"get_final_results": ""
|
||||
},
|
||||
"play_page": {
|
||||
"2nd_place": "",
|
||||
"join_description": "",
|
||||
"1st_place": "",
|
||||
"points_added": "",
|
||||
"final_result_rank": "",
|
||||
"your_score": "",
|
||||
"end_sentence": "",
|
||||
"with_out_of": "",
|
||||
"3rd place": "",
|
||||
"join_by_entering_code": ""
|
||||
},
|
||||
"file_dashboard": {
|
||||
"unset": "",
|
||||
"filename_word": "",
|
||||
"imported": "",
|
||||
"filename": "",
|
||||
"missing": "",
|
||||
"delete_image": "",
|
||||
"size": "",
|
||||
"storage_usage": "",
|
||||
"alt_text": "",
|
||||
"edit_details": "",
|
||||
"uploaded": "",
|
||||
"not_available": "",
|
||||
"caption": "",
|
||||
"edit_the_image": ""
|
||||
},
|
||||
"avatar_settings": {
|
||||
"accessories_type": "",
|
||||
"go_back": "",
|
||||
"hair_color": "",
|
||||
"clothe_graphic_type": "",
|
||||
"facial_hair_type": "",
|
||||
"facial_hair_color": "",
|
||||
"skin_color": "",
|
||||
"clothe_color": "",
|
||||
"thats_you": "",
|
||||
"start_over": "",
|
||||
"clothe_type": "",
|
||||
"mouth_type": "",
|
||||
"top_type": "",
|
||||
"eyebrow_type": "",
|
||||
"hat_color": ""
|
||||
},
|
||||
"settings_page": {
|
||||
"change_avatar": "",
|
||||
"change_password_submit": "",
|
||||
"security_settings": "",
|
||||
"delete_this_session": "",
|
||||
"old_password": "",
|
||||
"check_location": "",
|
||||
"last_seen": "",
|
||||
"this_session?": "",
|
||||
"repeat_password": "",
|
||||
"new_password": "",
|
||||
"add_api_key": ""
|
||||
},
|
||||
"footer": {
|
||||
"donate": "",
|
||||
"more_details_here": "",
|
||||
"self_ads": ""
|
||||
},
|
||||
"quiztivity": {
|
||||
"editor": {
|
||||
"add_new": "",
|
||||
"move_left": "",
|
||||
"shares": {
|
||||
"never_expires": "",
|
||||
"expires_on": "",
|
||||
"add_new_share": ""
|
||||
},
|
||||
"title_placeholder": "",
|
||||
"delete": "",
|
||||
"open_shares_menu": "",
|
||||
"select_page_type": "",
|
||||
"move_right": ""
|
||||
},
|
||||
"share_expired": "",
|
||||
"play": {
|
||||
"memory": {
|
||||
"try_count": ""
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"editor": {
|
||||
"add_card": "",
|
||||
"add_pair": "",
|
||||
"upload_image": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"results_page": {
|
||||
"no_results_so_far": "",
|
||||
"quiz_title": "",
|
||||
"player_count": "",
|
||||
"date_played": "",
|
||||
"general_overview": {
|
||||
"sentence": ""
|
||||
}
|
||||
},
|
||||
"security_settings": {
|
||||
"get_backup_code": "",
|
||||
"enable_totp": "",
|
||||
"disable_totp": "",
|
||||
"totp_setup": {
|
||||
"enter_as_secret_if_no_see_code": "",
|
||||
"scan_to_set_up": "",
|
||||
"totp_setup": "",
|
||||
"do_not_forget_backup_code": ""
|
||||
},
|
||||
"backup_code": "",
|
||||
"2fa_deactivated": "",
|
||||
"backup_codes": {
|
||||
"download_code": "",
|
||||
"your_backup_code": "",
|
||||
"save_somewhere_save": ""
|
||||
},
|
||||
"totp": "",
|
||||
"totp_unavailable": "",
|
||||
"2fa_activated": "",
|
||||
"webauthn": "",
|
||||
"add_security_key": "",
|
||||
"activate_2fa": "",
|
||||
"webauthn_unavailable": "",
|
||||
"totp_available": "",
|
||||
"webauthn_available": ""
|
||||
},
|
||||
"editor": {
|
||||
"delete_answer": "",
|
||||
"check_choice_description": "",
|
||||
"text_description": "",
|
||||
"order_description": "",
|
||||
"add_new_answer": "",
|
||||
"slide": {
|
||||
"headline": "",
|
||||
"headline_description": "",
|
||||
"rectangle": "",
|
||||
"rectangle_description": "",
|
||||
"text": "",
|
||||
"text_description": ""
|
||||
},
|
||||
"voting_description": "",
|
||||
"not_all_links_imgur_links": "",
|
||||
"delete_question": "",
|
||||
"range_description": "",
|
||||
"empty": "",
|
||||
"right_or_true?": "",
|
||||
"abcd_description": "",
|
||||
"time_in_seconds": "",
|
||||
"add_new_question": "",
|
||||
"bg_image": "",
|
||||
"no_title": ""
|
||||
},
|
||||
"controllers": {
|
||||
"last_seen": "",
|
||||
"cancel_update": "",
|
||||
"add_new_controller": "",
|
||||
"player_name": "",
|
||||
"controller_name": "",
|
||||
"already_latest_version": "",
|
||||
"update_from_to": "",
|
||||
"first_seen": "",
|
||||
"version_overview": ""
|
||||
},
|
||||
"view_quiz_page": {
|
||||
"made_by": "",
|
||||
"view_on_kahoot": ""
|
||||
},
|
||||
"import_page": {
|
||||
"this_side_classquiz_excel": "",
|
||||
"visit_docs": "",
|
||||
"download_template_here": "",
|
||||
"classquiz_quiz": "",
|
||||
"this_side_classquiz": "",
|
||||
"a_kahoot_quiz": "",
|
||||
"side_import_kahoot": "",
|
||||
"url_should_look_like_this": "",
|
||||
"need_help": "",
|
||||
"upload_file_ending": ""
|
||||
},
|
||||
"start_game": {
|
||||
"old_school_mode_description": "",
|
||||
"old_school_mode": "",
|
||||
"start_game": "",
|
||||
"captcha_message": "",
|
||||
"normal_mode_description": ""
|
||||
},
|
||||
"password_reset_page": {
|
||||
"reset_password": ""
|
||||
},
|
||||
"video_uploader": {
|
||||
"time_remaining": "",
|
||||
"time_elapsed": ""
|
||||
},
|
||||
"explore_page": {
|
||||
"imported_by": "",
|
||||
"made_by": ""
|
||||
},
|
||||
"create_page": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"body": ""
|
||||
}
|
||||
},
|
||||
"error_page": {
|
||||
"unknown_error_text": "",
|
||||
"404_text": ""
|
||||
},
|
||||
"uploader": {
|
||||
"images_by_pixabay": "",
|
||||
"upload_video_popup_notice": "",
|
||||
"add_image": "",
|
||||
"select_upload_type": "",
|
||||
"upload_a_video": "",
|
||||
"next_page": "",
|
||||
"visit_pixabay": "",
|
||||
"previous_page": "",
|
||||
"search_english_only": "",
|
||||
"upload_video": ""
|
||||
},
|
||||
"search_page": {
|
||||
"nothing_here": "",
|
||||
"at_least_3_characters": ""
|
||||
},
|
||||
"dashboard": {
|
||||
"commandpalette_notice": "",
|
||||
"views_n_plays": "",
|
||||
"search_for_own_quizzes": "",
|
||||
"info_analytics": ""
|
||||
},
|
||||
"navbar": {
|
||||
"donate": ""
|
||||
},
|
||||
"editor_page": {
|
||||
"add_an_answer": "",
|
||||
"right_click_to_delete": ""
|
||||
},
|
||||
"public_user_page": {
|
||||
"no_original_quizzes": "",
|
||||
"joined_on": ""
|
||||
},
|
||||
"components": {
|
||||
"popover": {
|
||||
"copied_to_clipboard": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -196,7 +196,8 @@
|
||||
"info": "Informacje",
|
||||
"analytics": "Analityka",
|
||||
"dislike_plural": "Nie lubię",
|
||||
"rating": "Ocena"
|
||||
"rating": "Ocena",
|
||||
"like": ""
|
||||
},
|
||||
"settings_page": {
|
||||
"last_seen": "Ostatnio widziany",
|
||||
@@ -356,7 +357,8 @@
|
||||
"dashboard": {
|
||||
"search_for_own_quizzes": "Wyszukaj własne quizy",
|
||||
"views_n_plays": "Widoki i gry",
|
||||
"info_analytics": "\"Odtworzenia\" pokazują tylko, jak często quiz był uruchamiany (w tym ty), podczas gdy \"Wyświetlenia\" liczą, jak często strona \"Wyświetlenia\" była odwiedzana, więc liczy również boty (przepraszam za to)."
|
||||
"info_analytics": "\"Odtworzenia\" pokazują tylko, jak często quiz był uruchamiany (w tym ty), podczas gdy \"Wyświetlenia\" liczą, jak często strona \"Wyświetlenia\" była odwiedzana, więc liczy również boty (przepraszam za to).",
|
||||
"commandpalette_notice": ""
|
||||
},
|
||||
"navbar": {
|
||||
"donate": "Darowizna"
|
||||
@@ -375,12 +377,18 @@
|
||||
"totp_setup": {
|
||||
"do_not_forget_backup_code": "Nie zapomnij zapisać swojego kodu odzyskiwania!",
|
||||
"scan_to_set_up": "Zeskanuj ten kod QR, aby ustawić kod",
|
||||
"enter_as_secret_if_no_see_code": "Wpisz kod, jeśli nie możesz zeskanować kodu QR"
|
||||
"enter_as_secret_if_no_see_code": "Wpisz kod, jeśli nie możesz zeskanować kodu QR",
|
||||
"totp_setup": ""
|
||||
},
|
||||
"webauthn_unavailable": "Webauthn nie jest dostępny",
|
||||
"add_security_key": "Dodaj Security-Key",
|
||||
"webauthn_available": "Webauthn jest dostępny",
|
||||
"webauthn": "Webauthn"
|
||||
"webauthn": "Webauthn",
|
||||
"enable_totp": "",
|
||||
"disable_totp": "",
|
||||
"totp": "",
|
||||
"totp_unavailable": "",
|
||||
"totp_available": ""
|
||||
},
|
||||
"view_quiz_page": {
|
||||
"made_by": "Wykonane przez",
|
||||
@@ -390,7 +398,8 @@
|
||||
"captcha_message": "Jeśli ta opcja jest włączona, Google ReCaptcha będzie ładować się w przeglądarce graczy. Włącz tylko jeśli naprawdę tego potrzebujesz, ponieważ będziesz potrzebował zgody KAŻDEGO gracza na załadowanie captcha.",
|
||||
"normal_mode_description": "Pytanie i odpowiedź będą wyświetlane tylko na ekranie administratora, jak w Kahoot! Gracze będą mieli do dyspozycji jedynie kolorowe przyciski z symbolami odpowiadającymi tym na ekranie administratora.",
|
||||
"old_school_mode_description": "Pytania i obrazy będą wyświetlane zarówno na ekranie administratora, jak i na ekranie graczy",
|
||||
"start_game": "Rozpocznij grę"
|
||||
"start_game": "Rozpocznij grę",
|
||||
"old_school_mode": ""
|
||||
},
|
||||
"quiztivity": {
|
||||
"editor": {
|
||||
|
||||
@@ -59,7 +59,47 @@
|
||||
"username": "Username",
|
||||
"play": "Jogar",
|
||||
"save": "Guardar",
|
||||
"description": "Descrição"
|
||||
"description": "Descrição",
|
||||
"upload": "",
|
||||
"next": "",
|
||||
"analytics": "",
|
||||
"no": "",
|
||||
"speed": "",
|
||||
"backup_code": "",
|
||||
"files_library": "",
|
||||
"check_choice": "",
|
||||
"point": "",
|
||||
"answer_plural": "",
|
||||
"version": "",
|
||||
"update": "",
|
||||
"slide": "",
|
||||
"kick": "",
|
||||
"play_plural": "",
|
||||
"rating": "",
|
||||
"video": "",
|
||||
"dislike_plural": "",
|
||||
"info": "",
|
||||
"view_plural": "",
|
||||
"yes": "",
|
||||
"point_plural": "",
|
||||
"game_pin": "",
|
||||
"like": "",
|
||||
"dislike": "",
|
||||
"progress": "",
|
||||
"select": "",
|
||||
"like_plural": "",
|
||||
"name": "",
|
||||
"report": "",
|
||||
"quiztivity": "",
|
||||
"library": "",
|
||||
"finish": "",
|
||||
"normal": "",
|
||||
"selected": "",
|
||||
"unknown": "",
|
||||
"back": "",
|
||||
"result_plural": "",
|
||||
"never": "",
|
||||
"quiz": ""
|
||||
},
|
||||
"index_page": {
|
||||
"meta": {
|
||||
@@ -110,7 +150,8 @@
|
||||
"no_tracking_content": "Kahoot! grava e partilha o seu perfil com terceiros, mas ClassQuiz não o faz.",
|
||||
"completely_free_content": "ClassQuiz é gratuito para o utilizador, sem planos pagos nem redirecionamentos irritantes para versões paga.\nPortanto os donativos são bem-vindos.",
|
||||
"german_server_content": "Os servidores de ClassQuiz encontram-se na Alemanha e estão alojados com netcup.",
|
||||
"download_quizzes_content": "Os questionários podem em qualquer altura, ser descarregados como um ficheiro único. Isto permite fácil migração para outras instâncias ClassQuiz."
|
||||
"download_quizzes_content": "Os questionários podem em qualquer altura, ser descarregados como um ficheiro único. Isto permite fácil migração para outras instâncias ClassQuiz.",
|
||||
"how_does_classquiz_work": ""
|
||||
},
|
||||
"overview_page": {
|
||||
"created_at": "Criado em",
|
||||
@@ -155,12 +196,277 @@
|
||||
"unexpected": "Ocorreu o típico erro inesperado!"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"use_backup_code": ""
|
||||
},
|
||||
"editor": {
|
||||
"time_in_seconds": "Tempo em segundos",
|
||||
"right_or_true?": "Certo?",
|
||||
"add_new_answer": "Juntar nova resposta",
|
||||
"add_new_question": "Juntar nova questão"
|
||||
"add_new_question": "Juntar nova questão",
|
||||
"delete_answer": "",
|
||||
"check_choice_description": "",
|
||||
"text_description": "",
|
||||
"order_description": "",
|
||||
"slide": {
|
||||
"headline": "",
|
||||
"headline_description": "",
|
||||
"rectangle": "",
|
||||
"rectangle_description": "",
|
||||
"text": "",
|
||||
"text_description": ""
|
||||
},
|
||||
"voting_description": "",
|
||||
"not_all_links_imgur_links": "",
|
||||
"delete_question": "",
|
||||
"range_description": "",
|
||||
"empty": "",
|
||||
"abcd_description": "",
|
||||
"bg_image": "",
|
||||
"no_title": ""
|
||||
},
|
||||
"result_page": {
|
||||
"correct_answer_plural": "",
|
||||
"player_score": "",
|
||||
"correct_answer": "",
|
||||
"time_taken": "",
|
||||
"player_name": "",
|
||||
"average_score": "",
|
||||
"custom_field": ""
|
||||
},
|
||||
"admin_page": {
|
||||
"stop_time_and_solutions": "",
|
||||
"already_registered_as_admin": "",
|
||||
"no_answers": "",
|
||||
"start_by_showing_first_question": "",
|
||||
"request_export_results": "",
|
||||
"time_left": "",
|
||||
"show_next_question": "",
|
||||
"stop_time": "",
|
||||
"show_results": "",
|
||||
"save_results": "",
|
||||
"enter_answer_into_field": "",
|
||||
"get_results_and_stop_time": "",
|
||||
"start_game": "",
|
||||
"answers_submitted": "",
|
||||
"download_export_results": "",
|
||||
"next_question": "",
|
||||
"get_results": "",
|
||||
"get_final_results": ""
|
||||
},
|
||||
"play_page": {
|
||||
"2nd_place": "",
|
||||
"join_description": "",
|
||||
"1st_place": "",
|
||||
"points_added": "",
|
||||
"final_result_rank": "",
|
||||
"your_score": "",
|
||||
"end_sentence": "",
|
||||
"with_out_of": "",
|
||||
"3rd place": "",
|
||||
"join_by_entering_code": ""
|
||||
},
|
||||
"file_dashboard": {
|
||||
"unset": "",
|
||||
"filename_word": "",
|
||||
"imported": "",
|
||||
"filename": "",
|
||||
"missing": "",
|
||||
"delete_image": "",
|
||||
"size": "",
|
||||
"storage_usage": "",
|
||||
"alt_text": "",
|
||||
"edit_details": "",
|
||||
"uploaded": "",
|
||||
"not_available": "",
|
||||
"caption": "",
|
||||
"edit_the_image": ""
|
||||
},
|
||||
"avatar_settings": {
|
||||
"accessories_type": "",
|
||||
"go_back": "",
|
||||
"hair_color": "",
|
||||
"clothe_graphic_type": "",
|
||||
"facial_hair_type": "",
|
||||
"facial_hair_color": "",
|
||||
"skin_color": "",
|
||||
"clothe_color": "",
|
||||
"thats_you": "",
|
||||
"start_over": "",
|
||||
"clothe_type": "",
|
||||
"mouth_type": "",
|
||||
"top_type": "",
|
||||
"eyebrow_type": "",
|
||||
"hat_color": ""
|
||||
},
|
||||
"settings_page": {
|
||||
"change_avatar": "",
|
||||
"change_password_submit": "",
|
||||
"security_settings": "",
|
||||
"delete_this_session": "",
|
||||
"old_password": "",
|
||||
"check_location": "",
|
||||
"last_seen": "",
|
||||
"this_session?": "",
|
||||
"repeat_password": "",
|
||||
"new_password": "",
|
||||
"add_api_key": ""
|
||||
},
|
||||
"footer": {
|
||||
"donate": "",
|
||||
"more_details_here": "",
|
||||
"self_ads": ""
|
||||
},
|
||||
"quiztivity": {
|
||||
"editor": {
|
||||
"add_new": "",
|
||||
"move_left": "",
|
||||
"shares": {
|
||||
"never_expires": "",
|
||||
"expires_on": "",
|
||||
"add_new_share": ""
|
||||
},
|
||||
"title_placeholder": "",
|
||||
"delete": "",
|
||||
"open_shares_menu": "",
|
||||
"select_page_type": "",
|
||||
"move_right": ""
|
||||
},
|
||||
"share_expired": "",
|
||||
"play": {
|
||||
"memory": {
|
||||
"try_count": ""
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"editor": {
|
||||
"add_card": "",
|
||||
"add_pair": "",
|
||||
"upload_image": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"results_page": {
|
||||
"no_results_so_far": "",
|
||||
"quiz_title": "",
|
||||
"player_count": "",
|
||||
"date_played": "",
|
||||
"general_overview": {
|
||||
"sentence": ""
|
||||
}
|
||||
},
|
||||
"security_settings": {
|
||||
"get_backup_code": "",
|
||||
"enable_totp": "",
|
||||
"disable_totp": "",
|
||||
"totp_setup": {
|
||||
"enter_as_secret_if_no_see_code": "",
|
||||
"scan_to_set_up": "",
|
||||
"totp_setup": "",
|
||||
"do_not_forget_backup_code": ""
|
||||
},
|
||||
"backup_code": "",
|
||||
"2fa_deactivated": "",
|
||||
"backup_codes": {
|
||||
"download_code": "",
|
||||
"your_backup_code": "",
|
||||
"save_somewhere_save": ""
|
||||
},
|
||||
"totp": "",
|
||||
"totp_unavailable": "",
|
||||
"2fa_activated": "",
|
||||
"webauthn": "",
|
||||
"add_security_key": "",
|
||||
"activate_2fa": "",
|
||||
"webauthn_unavailable": "",
|
||||
"totp_available": "",
|
||||
"webauthn_available": ""
|
||||
},
|
||||
"controllers": {
|
||||
"last_seen": "",
|
||||
"cancel_update": "",
|
||||
"add_new_controller": "",
|
||||
"player_name": "",
|
||||
"controller_name": "",
|
||||
"already_latest_version": "",
|
||||
"update_from_to": "",
|
||||
"first_seen": "",
|
||||
"version_overview": ""
|
||||
},
|
||||
"view_quiz_page": {
|
||||
"made_by": "",
|
||||
"view_on_kahoot": ""
|
||||
},
|
||||
"import_page": {
|
||||
"this_side_classquiz_excel": "",
|
||||
"visit_docs": "",
|
||||
"download_template_here": "",
|
||||
"classquiz_quiz": "",
|
||||
"this_side_classquiz": "",
|
||||
"a_kahoot_quiz": "",
|
||||
"side_import_kahoot": "",
|
||||
"url_should_look_like_this": "",
|
||||
"need_help": "",
|
||||
"upload_file_ending": ""
|
||||
},
|
||||
"start_game": {
|
||||
"old_school_mode_description": "",
|
||||
"old_school_mode": "",
|
||||
"start_game": "",
|
||||
"captcha_message": "",
|
||||
"normal_mode_description": ""
|
||||
},
|
||||
"password_reset_page": {
|
||||
"reset_password": ""
|
||||
},
|
||||
"video_uploader": {
|
||||
"time_remaining": "",
|
||||
"time_elapsed": ""
|
||||
},
|
||||
"explore_page": {
|
||||
"imported_by": "",
|
||||
"made_by": ""
|
||||
},
|
||||
"error_page": {
|
||||
"unknown_error_text": "",
|
||||
"404_text": ""
|
||||
},
|
||||
"uploader": {
|
||||
"images_by_pixabay": "",
|
||||
"upload_video_popup_notice": "",
|
||||
"add_image": "",
|
||||
"select_upload_type": "",
|
||||
"upload_a_video": "",
|
||||
"next_page": "",
|
||||
"visit_pixabay": "",
|
||||
"previous_page": "",
|
||||
"search_english_only": "",
|
||||
"upload_video": ""
|
||||
},
|
||||
"search_page": {
|
||||
"nothing_here": "",
|
||||
"at_least_3_characters": ""
|
||||
},
|
||||
"dashboard": {
|
||||
"commandpalette_notice": "",
|
||||
"views_n_plays": "",
|
||||
"search_for_own_quizzes": "",
|
||||
"info_analytics": ""
|
||||
},
|
||||
"navbar": {
|
||||
"donate": ""
|
||||
},
|
||||
"editor_page": {
|
||||
"add_an_answer": "",
|
||||
"right_click_to_delete": ""
|
||||
},
|
||||
"public_user_page": {
|
||||
"no_original_quizzes": "",
|
||||
"joined_on": ""
|
||||
},
|
||||
"components": {
|
||||
"popover": {
|
||||
"copied_to_clipboard": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -163,7 +163,20 @@
|
||||
"upload": "Yükle",
|
||||
"video": "Video",
|
||||
"files_library": "Dosya Kütüphanesi",
|
||||
"progress": "İlerleme"
|
||||
"progress": "İlerleme",
|
||||
"analytics": "",
|
||||
"version": "",
|
||||
"update": "",
|
||||
"play_plural": "",
|
||||
"rating": "",
|
||||
"dislike_plural": "",
|
||||
"info": "",
|
||||
"view_plural": "",
|
||||
"like": "",
|
||||
"dislike": "",
|
||||
"like_plural": "",
|
||||
"unknown": "",
|
||||
"never": ""
|
||||
},
|
||||
"register_page": {
|
||||
"create_account": "Hesap oluştur",
|
||||
@@ -241,7 +254,9 @@
|
||||
"side_import_kahoot": "Bu tarafta, Kahoot! üzerinde bulunan quizleri içe aktarabilirsiniz.",
|
||||
"classquiz_quiz": "Bir ClassQuiz Quizi",
|
||||
"upload_file_ending": "Sonu .cpa ile biten dosyayı yükleyin",
|
||||
"this_side_classquiz": "Bu tarafta, ClassQuiz'den dışa aktarılan sınavları içe aktarabilirsiniz."
|
||||
"this_side_classquiz": "Bu tarafta, ClassQuiz'den dışa aktarılan sınavları içe aktarabilirsiniz.",
|
||||
"this_side_classquiz_excel": "",
|
||||
"download_template_here": ""
|
||||
},
|
||||
"password_reset_page": {
|
||||
"reset_password": "Şifreyi sıfırla"
|
||||
@@ -284,7 +299,10 @@
|
||||
"right_click_to_delete": "Bir cevabı silmek için sağ tıkla!"
|
||||
},
|
||||
"dashboard": {
|
||||
"search_for_own_quizzes": "Kendi quizleriniz için arama"
|
||||
"search_for_own_quizzes": "Kendi quizleriniz için arama",
|
||||
"commandpalette_notice": "",
|
||||
"views_n_plays": "",
|
||||
"info_analytics": ""
|
||||
},
|
||||
"footer": {
|
||||
"self_ads": "{{mawoka_link}} tarafından ve {{others_link}}nin de yardımıyla ❤️ ile yapıldı.",
|
||||
@@ -300,7 +318,12 @@
|
||||
"upload_a_video": "Bir Video Yükleyin",
|
||||
"upload_video_popup_notice": "Açılır pencere açık; daha fazla bilgi için göz atın",
|
||||
"select_upload_type": "Yükleme Türünü Seçin",
|
||||
"upload_video": "Video Yükle"
|
||||
"upload_video": "Video Yükle",
|
||||
"images_by_pixabay": "",
|
||||
"next_page": "",
|
||||
"visit_pixabay": "",
|
||||
"previous_page": "",
|
||||
"search_english_only": ""
|
||||
},
|
||||
"avatar_settings": {
|
||||
"start_over": "Baştan başla",
|
||||
@@ -435,5 +458,16 @@
|
||||
"popover": {
|
||||
"copied_to_clipboard": "Panoya kopyalandı!"
|
||||
}
|
||||
},
|
||||
"controllers": {
|
||||
"last_seen": "",
|
||||
"cancel_update": "",
|
||||
"add_new_controller": "",
|
||||
"player_name": "",
|
||||
"controller_name": "",
|
||||
"already_latest_version": "",
|
||||
"update_from_to": "",
|
||||
"first_seen": "",
|
||||
"version_overview": ""
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,6 +22,450 @@
|
||||
"slogan": "Платформа для вікторин з відкритим кодом!",
|
||||
"stats": "На ClassQuiz вже є {{user_count}} користувачів та {{quiz_count}} вікторин.",
|
||||
"create_or_import": "Створюйте або імпортуйте",
|
||||
"see_how_many_true_and_false": "Переглядайте, скільки було правильних або неправильних відповідей"
|
||||
"see_how_many_true_and_false": "Переглядайте, скільки було правильних або неправильних відповідей",
|
||||
"how_does_classquiz_work": "",
|
||||
"select_answer": "",
|
||||
"find_or_explore": "",
|
||||
"completely_free_content": "",
|
||||
"download_quizzes": "",
|
||||
"dark_mode_content": "",
|
||||
"multilingual": "",
|
||||
"community_driven_content": "",
|
||||
"get_a_quiz": "",
|
||||
"quiz_results_downloadable_content": "",
|
||||
"view_results": "",
|
||||
"choose_answer_wisely": "",
|
||||
"self_hostable_content": "",
|
||||
"german_server_content": "",
|
||||
"get_ranking_and_winners": "",
|
||||
"list_winners": "",
|
||||
"create_a_quiz_from_scratch": "",
|
||||
"check_if_chosen_wisely": "",
|
||||
"user_friendly_content": "",
|
||||
"no_tracking_content": "",
|
||||
"multilingual_content": "",
|
||||
"dark_mode": "",
|
||||
"why_classquiz": "",
|
||||
"community_driven": "",
|
||||
"play_quiz": "",
|
||||
"download_quizzes_content": ""
|
||||
},
|
||||
"result_page": {
|
||||
"correct_answer_plural": "",
|
||||
"player_score": "",
|
||||
"correct_answer": "",
|
||||
"time_taken": "",
|
||||
"player_name": "",
|
||||
"average_score": "",
|
||||
"custom_field": ""
|
||||
},
|
||||
"register_page": {
|
||||
"create_account": "",
|
||||
"greeting": "",
|
||||
"forgot_password?": "",
|
||||
"already_have_account?": ""
|
||||
},
|
||||
"words": {
|
||||
"delete": "",
|
||||
"import": "",
|
||||
"public": "",
|
||||
"upload": "",
|
||||
"player_plural": "",
|
||||
"next": "",
|
||||
"totp": "",
|
||||
"score": "",
|
||||
"analytics": "",
|
||||
"no": "",
|
||||
"speed": "",
|
||||
"play": "",
|
||||
"email": "",
|
||||
"backup_code": "",
|
||||
"question": "",
|
||||
"files_library": "",
|
||||
"check_choice": "",
|
||||
"start": "",
|
||||
"voting": "",
|
||||
"pin": "",
|
||||
"point": "",
|
||||
"docs": "",
|
||||
"description": "",
|
||||
"settings": "",
|
||||
"features": "",
|
||||
"other": "",
|
||||
"title": "",
|
||||
"text": "",
|
||||
"register": "",
|
||||
"username": "",
|
||||
"practice": "",
|
||||
"find": "",
|
||||
"private": "",
|
||||
"answer_plural": "",
|
||||
"version": "",
|
||||
"update": "",
|
||||
"download": "",
|
||||
"slide": "",
|
||||
"repeat_password": "",
|
||||
"kick": "",
|
||||
"url": "",
|
||||
"explore": "",
|
||||
"close": "",
|
||||
"error": "",
|
||||
"play_plural": "",
|
||||
"rating": "",
|
||||
"video": "",
|
||||
"browser": "",
|
||||
"stats": "",
|
||||
"password": "",
|
||||
"donating": "",
|
||||
"save": "",
|
||||
"note": "",
|
||||
"order": "",
|
||||
"dislike_plural": "",
|
||||
"multiple_choice": "",
|
||||
"info": "",
|
||||
"question_plural": "",
|
||||
"results": "",
|
||||
"view_plural": "",
|
||||
"yes": "",
|
||||
"point_plural": "",
|
||||
"continue": "",
|
||||
"game_pin": "",
|
||||
"like": "",
|
||||
"dislike": "",
|
||||
"search": "",
|
||||
"progress": "",
|
||||
"select": "",
|
||||
"screenshot": "",
|
||||
"correct": "",
|
||||
"like_plural": "",
|
||||
"screenshot_plural": "",
|
||||
"view": "",
|
||||
"name": "",
|
||||
"answer": "",
|
||||
"other_plural": "",
|
||||
"count": "",
|
||||
"login": "",
|
||||
"create": "",
|
||||
"report": "",
|
||||
"quiztivity": "",
|
||||
"library": "",
|
||||
"finish": "",
|
||||
"normal": "",
|
||||
"selected": "",
|
||||
"result": "",
|
||||
"unknown": "",
|
||||
"dashboard": "",
|
||||
"back": "",
|
||||
"edit": "",
|
||||
"overview": "",
|
||||
"image": "",
|
||||
"result_plural": "",
|
||||
"submit": "",
|
||||
"never": "",
|
||||
"connect": "",
|
||||
"quiz": "",
|
||||
"range": "",
|
||||
"logout": ""
|
||||
},
|
||||
"edit_page": {
|
||||
"success_update_body": "",
|
||||
"success_update_title": ""
|
||||
},
|
||||
"admin_page": {
|
||||
"stop_time_and_solutions": "",
|
||||
"already_registered_as_admin": "",
|
||||
"no_answers": "",
|
||||
"start_by_showing_first_question": "",
|
||||
"request_export_results": "",
|
||||
"time_left": "",
|
||||
"show_next_question": "",
|
||||
"stop_time": "",
|
||||
"show_results": "",
|
||||
"save_results": "",
|
||||
"enter_answer_into_field": "",
|
||||
"get_results_and_stop_time": "",
|
||||
"start_game": "",
|
||||
"answers_submitted": "",
|
||||
"download_export_results": "",
|
||||
"next_question": "",
|
||||
"get_results": "",
|
||||
"get_final_results": ""
|
||||
},
|
||||
"play_page": {
|
||||
"2nd_place": "",
|
||||
"join_description": "",
|
||||
"1st_place": "",
|
||||
"points_added": "",
|
||||
"final_result_rank": "",
|
||||
"your_score": "",
|
||||
"end_sentence": "",
|
||||
"with_out_of": "",
|
||||
"3rd place": "",
|
||||
"join_by_entering_code": ""
|
||||
},
|
||||
"file_dashboard": {
|
||||
"unset": "",
|
||||
"filename_word": "",
|
||||
"imported": "",
|
||||
"filename": "",
|
||||
"missing": "",
|
||||
"delete_image": "",
|
||||
"size": "",
|
||||
"storage_usage": "",
|
||||
"alt_text": "",
|
||||
"edit_details": "",
|
||||
"uploaded": "",
|
||||
"not_available": "",
|
||||
"caption": "",
|
||||
"edit_the_image": ""
|
||||
},
|
||||
"avatar_settings": {
|
||||
"accessories_type": "",
|
||||
"go_back": "",
|
||||
"hair_color": "",
|
||||
"clothe_graphic_type": "",
|
||||
"facial_hair_type": "",
|
||||
"facial_hair_color": "",
|
||||
"skin_color": "",
|
||||
"clothe_color": "",
|
||||
"thats_you": "",
|
||||
"start_over": "",
|
||||
"clothe_type": "",
|
||||
"mouth_type": "",
|
||||
"top_type": "",
|
||||
"eyebrow_type": "",
|
||||
"hat_color": ""
|
||||
},
|
||||
"overview_page": {
|
||||
"question_count": "",
|
||||
"created_at": "",
|
||||
"no_quizzes": ""
|
||||
},
|
||||
"settings_page": {
|
||||
"change_avatar": "",
|
||||
"change_password_submit": "",
|
||||
"security_settings": "",
|
||||
"delete_this_session": "",
|
||||
"old_password": "",
|
||||
"check_location": "",
|
||||
"last_seen": "",
|
||||
"this_session?": "",
|
||||
"repeat_password": "",
|
||||
"new_password": "",
|
||||
"add_api_key": ""
|
||||
},
|
||||
"footer": {
|
||||
"donate": "",
|
||||
"more_details_here": "",
|
||||
"self_ads": ""
|
||||
},
|
||||
"quiztivity": {
|
||||
"editor": {
|
||||
"add_new": "",
|
||||
"move_left": "",
|
||||
"shares": {
|
||||
"never_expires": "",
|
||||
"expires_on": "",
|
||||
"add_new_share": ""
|
||||
},
|
||||
"title_placeholder": "",
|
||||
"delete": "",
|
||||
"open_shares_menu": "",
|
||||
"select_page_type": "",
|
||||
"move_right": ""
|
||||
},
|
||||
"share_expired": "",
|
||||
"play": {
|
||||
"memory": {
|
||||
"try_count": ""
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"editor": {
|
||||
"add_card": "",
|
||||
"add_pair": "",
|
||||
"upload_image": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"results_page": {
|
||||
"no_results_so_far": "",
|
||||
"quiz_title": "",
|
||||
"player_count": "",
|
||||
"date_played": "",
|
||||
"general_overview": {
|
||||
"sentence": ""
|
||||
}
|
||||
},
|
||||
"security_settings": {
|
||||
"get_backup_code": "",
|
||||
"enable_totp": "",
|
||||
"disable_totp": "",
|
||||
"totp_setup": {
|
||||
"enter_as_secret_if_no_see_code": "",
|
||||
"scan_to_set_up": "",
|
||||
"totp_setup": "",
|
||||
"do_not_forget_backup_code": ""
|
||||
},
|
||||
"backup_code": "",
|
||||
"2fa_deactivated": "",
|
||||
"backup_codes": {
|
||||
"download_code": "",
|
||||
"your_backup_code": "",
|
||||
"save_somewhere_save": ""
|
||||
},
|
||||
"totp": "",
|
||||
"totp_unavailable": "",
|
||||
"2fa_activated": "",
|
||||
"webauthn": "",
|
||||
"add_security_key": "",
|
||||
"activate_2fa": "",
|
||||
"webauthn_unavailable": "",
|
||||
"totp_available": "",
|
||||
"webauthn_available": ""
|
||||
},
|
||||
"editor": {
|
||||
"delete_answer": "",
|
||||
"check_choice_description": "",
|
||||
"text_description": "",
|
||||
"order_description": "",
|
||||
"add_new_answer": "",
|
||||
"slide": {
|
||||
"headline": "",
|
||||
"headline_description": "",
|
||||
"rectangle": "",
|
||||
"rectangle_description": "",
|
||||
"text": "",
|
||||
"text_description": ""
|
||||
},
|
||||
"voting_description": "",
|
||||
"not_all_links_imgur_links": "",
|
||||
"delete_question": "",
|
||||
"range_description": "",
|
||||
"empty": "",
|
||||
"right_or_true?": "",
|
||||
"abcd_description": "",
|
||||
"time_in_seconds": "",
|
||||
"add_new_question": "",
|
||||
"bg_image": "",
|
||||
"no_title": ""
|
||||
},
|
||||
"controllers": {
|
||||
"last_seen": "",
|
||||
"cancel_update": "",
|
||||
"add_new_controller": "",
|
||||
"player_name": "",
|
||||
"controller_name": "",
|
||||
"already_latest_version": "",
|
||||
"update_from_to": "",
|
||||
"first_seen": "",
|
||||
"version_overview": ""
|
||||
},
|
||||
"view_quiz_page": {
|
||||
"made_by": "",
|
||||
"view_on_kahoot": ""
|
||||
},
|
||||
"import_page": {
|
||||
"this_side_classquiz_excel": "",
|
||||
"visit_docs": "",
|
||||
"download_template_here": "",
|
||||
"classquiz_quiz": "",
|
||||
"this_side_classquiz": "",
|
||||
"a_kahoot_quiz": "",
|
||||
"side_import_kahoot": "",
|
||||
"url_should_look_like_this": "",
|
||||
"need_help": "",
|
||||
"upload_file_ending": ""
|
||||
},
|
||||
"start_game": {
|
||||
"old_school_mode_description": "",
|
||||
"old_school_mode": "",
|
||||
"start_game": "",
|
||||
"captcha_message": "",
|
||||
"normal_mode_description": ""
|
||||
},
|
||||
"login_page": {
|
||||
"use_backup_code": "",
|
||||
"email_or_username": "",
|
||||
"already_have_account": "",
|
||||
"modal": {
|
||||
"error": {
|
||||
"description": {
|
||||
"unexpected": "",
|
||||
"wrong_creds": ""
|
||||
},
|
||||
"wrong_creds": "",
|
||||
"unexpected": ""
|
||||
},
|
||||
"success": {
|
||||
"success": "",
|
||||
"description": {
|
||||
"success": "",
|
||||
"success_check_mail": ""
|
||||
},
|
||||
"success_check_mail": ""
|
||||
}
|
||||
},
|
||||
"login_or_create_account": "",
|
||||
"welcome_back": ""
|
||||
},
|
||||
"password_reset_page": {
|
||||
"reset_password": ""
|
||||
},
|
||||
"video_uploader": {
|
||||
"time_remaining": "",
|
||||
"time_elapsed": ""
|
||||
},
|
||||
"explore_page": {
|
||||
"imported_by": "",
|
||||
"made_by": ""
|
||||
},
|
||||
"create_page": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"body": ""
|
||||
}
|
||||
},
|
||||
"error_page": {
|
||||
"unknown_error_text": "",
|
||||
"404_text": ""
|
||||
},
|
||||
"uploader": {
|
||||
"images_by_pixabay": "",
|
||||
"upload_video_popup_notice": "",
|
||||
"add_image": "",
|
||||
"select_upload_type": "",
|
||||
"upload_a_video": "",
|
||||
"next_page": "",
|
||||
"visit_pixabay": "",
|
||||
"previous_page": "",
|
||||
"search_english_only": "",
|
||||
"upload_video": ""
|
||||
},
|
||||
"search_page": {
|
||||
"nothing_here": "",
|
||||
"at_least_3_characters": ""
|
||||
},
|
||||
"dashboard": {
|
||||
"commandpalette_notice": "",
|
||||
"views_n_plays": "",
|
||||
"search_for_own_quizzes": "",
|
||||
"info_analytics": ""
|
||||
},
|
||||
"navbar": {
|
||||
"donate": ""
|
||||
},
|
||||
"editor_page": {
|
||||
"add_an_answer": "",
|
||||
"right_click_to_delete": ""
|
||||
},
|
||||
"public_user_page": {
|
||||
"no_original_quizzes": "",
|
||||
"joined_on": ""
|
||||
},
|
||||
"components": {
|
||||
"popover": {
|
||||
"copied_to_clipboard": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1 +1,466 @@
|
||||
{}
|
||||
{
|
||||
"result_page": {
|
||||
"correct_answer_plural": "",
|
||||
"player_score": "",
|
||||
"correct_answer": "",
|
||||
"time_taken": "",
|
||||
"player_name": "",
|
||||
"average_score": "",
|
||||
"custom_field": ""
|
||||
},
|
||||
"register_page": {
|
||||
"create_account": "",
|
||||
"greeting": "",
|
||||
"forgot_password?": "",
|
||||
"already_have_account?": ""
|
||||
},
|
||||
"words": {
|
||||
"delete": "",
|
||||
"import": "",
|
||||
"public": "",
|
||||
"upload": "",
|
||||
"player_plural": "",
|
||||
"next": "",
|
||||
"totp": "",
|
||||
"score": "",
|
||||
"analytics": "",
|
||||
"no": "",
|
||||
"speed": "",
|
||||
"play": "",
|
||||
"email": "",
|
||||
"backup_code": "",
|
||||
"question": "",
|
||||
"files_library": "",
|
||||
"check_choice": "",
|
||||
"start": "",
|
||||
"voting": "",
|
||||
"pin": "",
|
||||
"point": "",
|
||||
"docs": "",
|
||||
"description": "",
|
||||
"settings": "",
|
||||
"features": "",
|
||||
"other": "",
|
||||
"title": "",
|
||||
"text": "",
|
||||
"register": "",
|
||||
"username": "",
|
||||
"practice": "",
|
||||
"find": "",
|
||||
"private": "",
|
||||
"answer_plural": "",
|
||||
"version": "",
|
||||
"update": "",
|
||||
"download": "",
|
||||
"slide": "",
|
||||
"repeat_password": "",
|
||||
"kick": "",
|
||||
"url": "",
|
||||
"explore": "",
|
||||
"close": "",
|
||||
"error": "",
|
||||
"play_plural": "",
|
||||
"rating": "",
|
||||
"video": "",
|
||||
"browser": "",
|
||||
"stats": "",
|
||||
"password": "",
|
||||
"donating": "",
|
||||
"save": "",
|
||||
"note": "",
|
||||
"order": "",
|
||||
"dislike_plural": "",
|
||||
"multiple_choice": "",
|
||||
"info": "",
|
||||
"question_plural": "",
|
||||
"results": "",
|
||||
"view_plural": "",
|
||||
"yes": "",
|
||||
"point_plural": "",
|
||||
"continue": "",
|
||||
"game_pin": "",
|
||||
"like": "",
|
||||
"dislike": "",
|
||||
"search": "",
|
||||
"progress": "",
|
||||
"select": "",
|
||||
"screenshot": "",
|
||||
"correct": "",
|
||||
"like_plural": "",
|
||||
"screenshot_plural": "",
|
||||
"view": "",
|
||||
"name": "",
|
||||
"answer": "",
|
||||
"other_plural": "",
|
||||
"count": "",
|
||||
"login": "",
|
||||
"create": "",
|
||||
"report": "",
|
||||
"quiztivity": "",
|
||||
"library": "",
|
||||
"finish": "",
|
||||
"normal": "",
|
||||
"selected": "",
|
||||
"result": "",
|
||||
"unknown": "",
|
||||
"dashboard": "",
|
||||
"back": "",
|
||||
"edit": "",
|
||||
"overview": "",
|
||||
"image": "",
|
||||
"result_plural": "",
|
||||
"submit": "",
|
||||
"never": "",
|
||||
"connect": "",
|
||||
"quiz": "",
|
||||
"range": "",
|
||||
"logout": ""
|
||||
},
|
||||
"edit_page": {
|
||||
"success_update_body": "",
|
||||
"success_update_title": ""
|
||||
},
|
||||
"index_page": {
|
||||
"quiz_results_downloadable": "",
|
||||
"slogan": "",
|
||||
"completely_free": "",
|
||||
"how_does_classquiz_work": "",
|
||||
"select_answer": "",
|
||||
"user_friendly": "",
|
||||
"no_tracking": "",
|
||||
"find_or_explore": "",
|
||||
"completely_free_content": "",
|
||||
"stats": "",
|
||||
"see_how_many_true_and_false": "",
|
||||
"download_quizzes": "",
|
||||
"dark_mode_content": "",
|
||||
"multilingual": "",
|
||||
"community_driven_content": "",
|
||||
"get_a_quiz": "",
|
||||
"quiz_results_downloadable_content": "",
|
||||
"view_results": "",
|
||||
"choose_answer_wisely": "",
|
||||
"self_hostable_content": "",
|
||||
"german_server_content": "",
|
||||
"get_ranking_and_winners": "",
|
||||
"meta": {
|
||||
"description": "",
|
||||
"title": ""
|
||||
},
|
||||
"list_winners": "",
|
||||
"students_site": "",
|
||||
"self_hostable": "",
|
||||
"see_what_true_and_false": "",
|
||||
"german_server": "",
|
||||
"create_a_quiz_from_scratch": "",
|
||||
"teachers_site": "",
|
||||
"check_if_chosen_wisely": "",
|
||||
"user_friendly_content": "",
|
||||
"create_or_import": "",
|
||||
"no_tracking_content": "",
|
||||
"multilingual_content": "",
|
||||
"dark_mode": "",
|
||||
"why_classquiz": "",
|
||||
"community_driven": "",
|
||||
"play_quiz": "",
|
||||
"see_all_quizzes": "",
|
||||
"download_quizzes_content": ""
|
||||
},
|
||||
"admin_page": {
|
||||
"stop_time_and_solutions": "",
|
||||
"already_registered_as_admin": "",
|
||||
"no_answers": "",
|
||||
"start_by_showing_first_question": "",
|
||||
"request_export_results": "",
|
||||
"time_left": "",
|
||||
"show_next_question": "",
|
||||
"stop_time": "",
|
||||
"show_results": "",
|
||||
"save_results": "",
|
||||
"enter_answer_into_field": "",
|
||||
"get_results_and_stop_time": "",
|
||||
"start_game": "",
|
||||
"answers_submitted": "",
|
||||
"download_export_results": "",
|
||||
"next_question": "",
|
||||
"get_results": "",
|
||||
"get_final_results": ""
|
||||
},
|
||||
"play_page": {
|
||||
"2nd_place": "",
|
||||
"join_description": "",
|
||||
"1st_place": "",
|
||||
"points_added": "",
|
||||
"final_result_rank": "",
|
||||
"your_score": "",
|
||||
"end_sentence": "",
|
||||
"with_out_of": "",
|
||||
"3rd place": "",
|
||||
"join_by_entering_code": ""
|
||||
},
|
||||
"file_dashboard": {
|
||||
"unset": "",
|
||||
"filename_word": "",
|
||||
"imported": "",
|
||||
"filename": "",
|
||||
"missing": "",
|
||||
"delete_image": "",
|
||||
"size": "",
|
||||
"storage_usage": "",
|
||||
"alt_text": "",
|
||||
"edit_details": "",
|
||||
"uploaded": "",
|
||||
"not_available": "",
|
||||
"caption": "",
|
||||
"edit_the_image": ""
|
||||
},
|
||||
"avatar_settings": {
|
||||
"accessories_type": "",
|
||||
"go_back": "",
|
||||
"hair_color": "",
|
||||
"clothe_graphic_type": "",
|
||||
"facial_hair_type": "",
|
||||
"facial_hair_color": "",
|
||||
"skin_color": "",
|
||||
"clothe_color": "",
|
||||
"thats_you": "",
|
||||
"start_over": "",
|
||||
"clothe_type": "",
|
||||
"mouth_type": "",
|
||||
"top_type": "",
|
||||
"eyebrow_type": "",
|
||||
"hat_color": ""
|
||||
},
|
||||
"overview_page": {
|
||||
"question_count": "",
|
||||
"created_at": "",
|
||||
"no_quizzes": ""
|
||||
},
|
||||
"settings_page": {
|
||||
"change_avatar": "",
|
||||
"change_password_submit": "",
|
||||
"security_settings": "",
|
||||
"delete_this_session": "",
|
||||
"old_password": "",
|
||||
"check_location": "",
|
||||
"last_seen": "",
|
||||
"this_session?": "",
|
||||
"repeat_password": "",
|
||||
"new_password": "",
|
||||
"add_api_key": ""
|
||||
},
|
||||
"footer": {
|
||||
"donate": "",
|
||||
"more_details_here": "",
|
||||
"self_ads": ""
|
||||
},
|
||||
"quiztivity": {
|
||||
"editor": {
|
||||
"add_new": "",
|
||||
"move_left": "",
|
||||
"shares": {
|
||||
"never_expires": "",
|
||||
"expires_on": "",
|
||||
"add_new_share": ""
|
||||
},
|
||||
"title_placeholder": "",
|
||||
"delete": "",
|
||||
"open_shares_menu": "",
|
||||
"select_page_type": "",
|
||||
"move_right": ""
|
||||
},
|
||||
"share_expired": "",
|
||||
"play": {
|
||||
"memory": {
|
||||
"try_count": ""
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"editor": {
|
||||
"add_card": "",
|
||||
"add_pair": "",
|
||||
"upload_image": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"results_page": {
|
||||
"no_results_so_far": "",
|
||||
"quiz_title": "",
|
||||
"player_count": "",
|
||||
"date_played": "",
|
||||
"general_overview": {
|
||||
"sentence": ""
|
||||
}
|
||||
},
|
||||
"security_settings": {
|
||||
"get_backup_code": "",
|
||||
"enable_totp": "",
|
||||
"disable_totp": "",
|
||||
"totp_setup": {
|
||||
"enter_as_secret_if_no_see_code": "",
|
||||
"scan_to_set_up": "",
|
||||
"totp_setup": "",
|
||||
"do_not_forget_backup_code": ""
|
||||
},
|
||||
"backup_code": "",
|
||||
"2fa_deactivated": "",
|
||||
"backup_codes": {
|
||||
"download_code": "",
|
||||
"your_backup_code": "",
|
||||
"save_somewhere_save": ""
|
||||
},
|
||||
"totp": "",
|
||||
"totp_unavailable": "",
|
||||
"2fa_activated": "",
|
||||
"webauthn": "",
|
||||
"add_security_key": "",
|
||||
"activate_2fa": "",
|
||||
"webauthn_unavailable": "",
|
||||
"totp_available": "",
|
||||
"webauthn_available": ""
|
||||
},
|
||||
"editor": {
|
||||
"delete_answer": "",
|
||||
"check_choice_description": "",
|
||||
"text_description": "",
|
||||
"order_description": "",
|
||||
"add_new_answer": "",
|
||||
"slide": {
|
||||
"headline": "",
|
||||
"headline_description": "",
|
||||
"rectangle": "",
|
||||
"rectangle_description": "",
|
||||
"text": "",
|
||||
"text_description": ""
|
||||
},
|
||||
"voting_description": "",
|
||||
"not_all_links_imgur_links": "",
|
||||
"delete_question": "",
|
||||
"range_description": "",
|
||||
"empty": "",
|
||||
"right_or_true?": "",
|
||||
"abcd_description": "",
|
||||
"time_in_seconds": "",
|
||||
"add_new_question": "",
|
||||
"bg_image": "",
|
||||
"no_title": ""
|
||||
},
|
||||
"controllers": {
|
||||
"last_seen": "",
|
||||
"cancel_update": "",
|
||||
"add_new_controller": "",
|
||||
"player_name": "",
|
||||
"controller_name": "",
|
||||
"already_latest_version": "",
|
||||
"update_from_to": "",
|
||||
"first_seen": "",
|
||||
"version_overview": ""
|
||||
},
|
||||
"view_quiz_page": {
|
||||
"made_by": "",
|
||||
"view_on_kahoot": ""
|
||||
},
|
||||
"import_page": {
|
||||
"this_side_classquiz_excel": "",
|
||||
"visit_docs": "",
|
||||
"download_template_here": "",
|
||||
"classquiz_quiz": "",
|
||||
"this_side_classquiz": "",
|
||||
"a_kahoot_quiz": "",
|
||||
"side_import_kahoot": "",
|
||||
"url_should_look_like_this": "",
|
||||
"need_help": "",
|
||||
"upload_file_ending": ""
|
||||
},
|
||||
"start_game": {
|
||||
"old_school_mode_description": "",
|
||||
"old_school_mode": "",
|
||||
"start_game": "",
|
||||
"captcha_message": "",
|
||||
"normal_mode_description": ""
|
||||
},
|
||||
"login_page": {
|
||||
"use_backup_code": "",
|
||||
"email_or_username": "",
|
||||
"already_have_account": "",
|
||||
"modal": {
|
||||
"error": {
|
||||
"description": {
|
||||
"unexpected": "",
|
||||
"wrong_creds": ""
|
||||
},
|
||||
"wrong_creds": "",
|
||||
"unexpected": ""
|
||||
},
|
||||
"success": {
|
||||
"success": "",
|
||||
"description": {
|
||||
"success": "",
|
||||
"success_check_mail": ""
|
||||
},
|
||||
"success_check_mail": ""
|
||||
}
|
||||
},
|
||||
"login_or_create_account": "",
|
||||
"welcome_back": ""
|
||||
},
|
||||
"password_reset_page": {
|
||||
"reset_password": ""
|
||||
},
|
||||
"video_uploader": {
|
||||
"time_remaining": "",
|
||||
"time_elapsed": ""
|
||||
},
|
||||
"explore_page": {
|
||||
"imported_by": "",
|
||||
"made_by": ""
|
||||
},
|
||||
"create_page": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"body": ""
|
||||
}
|
||||
},
|
||||
"error_page": {
|
||||
"unknown_error_text": "",
|
||||
"404_text": ""
|
||||
},
|
||||
"uploader": {
|
||||
"images_by_pixabay": "",
|
||||
"upload_video_popup_notice": "",
|
||||
"add_image": "",
|
||||
"select_upload_type": "",
|
||||
"upload_a_video": "",
|
||||
"next_page": "",
|
||||
"visit_pixabay": "",
|
||||
"previous_page": "",
|
||||
"search_english_only": "",
|
||||
"upload_video": ""
|
||||
},
|
||||
"search_page": {
|
||||
"nothing_here": "",
|
||||
"at_least_3_characters": ""
|
||||
},
|
||||
"dashboard": {
|
||||
"commandpalette_notice": "",
|
||||
"views_n_plays": "",
|
||||
"search_for_own_quizzes": "",
|
||||
"info_analytics": ""
|
||||
},
|
||||
"navbar": {
|
||||
"donate": ""
|
||||
},
|
||||
"editor_page": {
|
||||
"add_an_answer": "",
|
||||
"right_click_to_delete": ""
|
||||
},
|
||||
"public_user_page": {
|
||||
"no_original_quizzes": "",
|
||||
"joined_on": ""
|
||||
},
|
||||
"components": {
|
||||
"popover": {
|
||||
"copied_to_clipboard": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,463 @@
|
||||
"title": "首页",
|
||||
"description": "ClassQuiz是提供给学生的一个类似Kahoot!的测试应用,其开源且可免费使用"
|
||||
},
|
||||
"slogan": "提供测试的开源平台!"
|
||||
"slogan": "提供测试的开源平台!",
|
||||
"quiz_results_downloadable": "",
|
||||
"completely_free": "",
|
||||
"how_does_classquiz_work": "",
|
||||
"select_answer": "",
|
||||
"user_friendly": "",
|
||||
"no_tracking": "",
|
||||
"find_or_explore": "",
|
||||
"completely_free_content": "",
|
||||
"stats": "",
|
||||
"see_how_many_true_and_false": "",
|
||||
"download_quizzes": "",
|
||||
"dark_mode_content": "",
|
||||
"multilingual": "",
|
||||
"community_driven_content": "",
|
||||
"get_a_quiz": "",
|
||||
"quiz_results_downloadable_content": "",
|
||||
"view_results": "",
|
||||
"choose_answer_wisely": "",
|
||||
"self_hostable_content": "",
|
||||
"german_server_content": "",
|
||||
"get_ranking_and_winners": "",
|
||||
"list_winners": "",
|
||||
"students_site": "",
|
||||
"self_hostable": "",
|
||||
"see_what_true_and_false": "",
|
||||
"german_server": "",
|
||||
"create_a_quiz_from_scratch": "",
|
||||
"teachers_site": "",
|
||||
"check_if_chosen_wisely": "",
|
||||
"user_friendly_content": "",
|
||||
"create_or_import": "",
|
||||
"no_tracking_content": "",
|
||||
"multilingual_content": "",
|
||||
"dark_mode": "",
|
||||
"why_classquiz": "",
|
||||
"community_driven": "",
|
||||
"play_quiz": "",
|
||||
"see_all_quizzes": "",
|
||||
"download_quizzes_content": ""
|
||||
},
|
||||
"result_page": {
|
||||
"correct_answer_plural": "",
|
||||
"player_score": "",
|
||||
"correct_answer": "",
|
||||
"time_taken": "",
|
||||
"player_name": "",
|
||||
"average_score": "",
|
||||
"custom_field": ""
|
||||
},
|
||||
"register_page": {
|
||||
"create_account": "",
|
||||
"greeting": "",
|
||||
"forgot_password?": "",
|
||||
"already_have_account?": ""
|
||||
},
|
||||
"words": {
|
||||
"delete": "",
|
||||
"import": "",
|
||||
"public": "",
|
||||
"upload": "",
|
||||
"player_plural": "",
|
||||
"next": "",
|
||||
"totp": "",
|
||||
"score": "",
|
||||
"analytics": "",
|
||||
"no": "",
|
||||
"speed": "",
|
||||
"play": "",
|
||||
"email": "",
|
||||
"backup_code": "",
|
||||
"question": "",
|
||||
"files_library": "",
|
||||
"check_choice": "",
|
||||
"start": "",
|
||||
"voting": "",
|
||||
"pin": "",
|
||||
"point": "",
|
||||
"docs": "",
|
||||
"description": "",
|
||||
"settings": "",
|
||||
"features": "",
|
||||
"other": "",
|
||||
"title": "",
|
||||
"text": "",
|
||||
"register": "",
|
||||
"username": "",
|
||||
"practice": "",
|
||||
"find": "",
|
||||
"private": "",
|
||||
"answer_plural": "",
|
||||
"version": "",
|
||||
"update": "",
|
||||
"download": "",
|
||||
"slide": "",
|
||||
"repeat_password": "",
|
||||
"kick": "",
|
||||
"url": "",
|
||||
"explore": "",
|
||||
"close": "",
|
||||
"error": "",
|
||||
"play_plural": "",
|
||||
"rating": "",
|
||||
"video": "",
|
||||
"browser": "",
|
||||
"stats": "",
|
||||
"password": "",
|
||||
"donating": "",
|
||||
"save": "",
|
||||
"note": "",
|
||||
"order": "",
|
||||
"dislike_plural": "",
|
||||
"multiple_choice": "",
|
||||
"info": "",
|
||||
"question_plural": "",
|
||||
"results": "",
|
||||
"view_plural": "",
|
||||
"yes": "",
|
||||
"point_plural": "",
|
||||
"continue": "",
|
||||
"game_pin": "",
|
||||
"like": "",
|
||||
"dislike": "",
|
||||
"search": "",
|
||||
"progress": "",
|
||||
"select": "",
|
||||
"screenshot": "",
|
||||
"correct": "",
|
||||
"like_plural": "",
|
||||
"screenshot_plural": "",
|
||||
"view": "",
|
||||
"name": "",
|
||||
"answer": "",
|
||||
"other_plural": "",
|
||||
"count": "",
|
||||
"login": "",
|
||||
"create": "",
|
||||
"report": "",
|
||||
"quiztivity": "",
|
||||
"library": "",
|
||||
"finish": "",
|
||||
"normal": "",
|
||||
"selected": "",
|
||||
"result": "",
|
||||
"unknown": "",
|
||||
"dashboard": "",
|
||||
"back": "",
|
||||
"edit": "",
|
||||
"overview": "",
|
||||
"image": "",
|
||||
"result_plural": "",
|
||||
"submit": "",
|
||||
"never": "",
|
||||
"connect": "",
|
||||
"quiz": "",
|
||||
"range": "",
|
||||
"logout": ""
|
||||
},
|
||||
"edit_page": {
|
||||
"success_update_body": "",
|
||||
"success_update_title": ""
|
||||
},
|
||||
"admin_page": {
|
||||
"stop_time_and_solutions": "",
|
||||
"already_registered_as_admin": "",
|
||||
"no_answers": "",
|
||||
"start_by_showing_first_question": "",
|
||||
"request_export_results": "",
|
||||
"time_left": "",
|
||||
"show_next_question": "",
|
||||
"stop_time": "",
|
||||
"show_results": "",
|
||||
"save_results": "",
|
||||
"enter_answer_into_field": "",
|
||||
"get_results_and_stop_time": "",
|
||||
"start_game": "",
|
||||
"answers_submitted": "",
|
||||
"download_export_results": "",
|
||||
"next_question": "",
|
||||
"get_results": "",
|
||||
"get_final_results": ""
|
||||
},
|
||||
"play_page": {
|
||||
"2nd_place": "",
|
||||
"join_description": "",
|
||||
"1st_place": "",
|
||||
"points_added": "",
|
||||
"final_result_rank": "",
|
||||
"your_score": "",
|
||||
"end_sentence": "",
|
||||
"with_out_of": "",
|
||||
"3rd place": "",
|
||||
"join_by_entering_code": ""
|
||||
},
|
||||
"file_dashboard": {
|
||||
"unset": "",
|
||||
"filename_word": "",
|
||||
"imported": "",
|
||||
"filename": "",
|
||||
"missing": "",
|
||||
"delete_image": "",
|
||||
"size": "",
|
||||
"storage_usage": "",
|
||||
"alt_text": "",
|
||||
"edit_details": "",
|
||||
"uploaded": "",
|
||||
"not_available": "",
|
||||
"caption": "",
|
||||
"edit_the_image": ""
|
||||
},
|
||||
"avatar_settings": {
|
||||
"accessories_type": "",
|
||||
"go_back": "",
|
||||
"hair_color": "",
|
||||
"clothe_graphic_type": "",
|
||||
"facial_hair_type": "",
|
||||
"facial_hair_color": "",
|
||||
"skin_color": "",
|
||||
"clothe_color": "",
|
||||
"thats_you": "",
|
||||
"start_over": "",
|
||||
"clothe_type": "",
|
||||
"mouth_type": "",
|
||||
"top_type": "",
|
||||
"eyebrow_type": "",
|
||||
"hat_color": ""
|
||||
},
|
||||
"overview_page": {
|
||||
"question_count": "",
|
||||
"created_at": "",
|
||||
"no_quizzes": ""
|
||||
},
|
||||
"settings_page": {
|
||||
"change_avatar": "",
|
||||
"change_password_submit": "",
|
||||
"security_settings": "",
|
||||
"delete_this_session": "",
|
||||
"old_password": "",
|
||||
"check_location": "",
|
||||
"last_seen": "",
|
||||
"this_session?": "",
|
||||
"repeat_password": "",
|
||||
"new_password": "",
|
||||
"add_api_key": ""
|
||||
},
|
||||
"footer": {
|
||||
"donate": "",
|
||||
"more_details_here": "",
|
||||
"self_ads": ""
|
||||
},
|
||||
"quiztivity": {
|
||||
"editor": {
|
||||
"add_new": "",
|
||||
"move_left": "",
|
||||
"shares": {
|
||||
"never_expires": "",
|
||||
"expires_on": "",
|
||||
"add_new_share": ""
|
||||
},
|
||||
"title_placeholder": "",
|
||||
"delete": "",
|
||||
"open_shares_menu": "",
|
||||
"select_page_type": "",
|
||||
"move_right": ""
|
||||
},
|
||||
"share_expired": "",
|
||||
"play": {
|
||||
"memory": {
|
||||
"try_count": ""
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"editor": {
|
||||
"add_card": "",
|
||||
"add_pair": "",
|
||||
"upload_image": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"results_page": {
|
||||
"no_results_so_far": "",
|
||||
"quiz_title": "",
|
||||
"player_count": "",
|
||||
"date_played": "",
|
||||
"general_overview": {
|
||||
"sentence": ""
|
||||
}
|
||||
},
|
||||
"security_settings": {
|
||||
"get_backup_code": "",
|
||||
"enable_totp": "",
|
||||
"disable_totp": "",
|
||||
"totp_setup": {
|
||||
"enter_as_secret_if_no_see_code": "",
|
||||
"scan_to_set_up": "",
|
||||
"totp_setup": "",
|
||||
"do_not_forget_backup_code": ""
|
||||
},
|
||||
"backup_code": "",
|
||||
"2fa_deactivated": "",
|
||||
"backup_codes": {
|
||||
"download_code": "",
|
||||
"your_backup_code": "",
|
||||
"save_somewhere_save": ""
|
||||
},
|
||||
"totp": "",
|
||||
"totp_unavailable": "",
|
||||
"2fa_activated": "",
|
||||
"webauthn": "",
|
||||
"add_security_key": "",
|
||||
"activate_2fa": "",
|
||||
"webauthn_unavailable": "",
|
||||
"totp_available": "",
|
||||
"webauthn_available": ""
|
||||
},
|
||||
"editor": {
|
||||
"delete_answer": "",
|
||||
"check_choice_description": "",
|
||||
"text_description": "",
|
||||
"order_description": "",
|
||||
"add_new_answer": "",
|
||||
"slide": {
|
||||
"headline": "",
|
||||
"headline_description": "",
|
||||
"rectangle": "",
|
||||
"rectangle_description": "",
|
||||
"text": "",
|
||||
"text_description": ""
|
||||
},
|
||||
"voting_description": "",
|
||||
"not_all_links_imgur_links": "",
|
||||
"delete_question": "",
|
||||
"range_description": "",
|
||||
"empty": "",
|
||||
"right_or_true?": "",
|
||||
"abcd_description": "",
|
||||
"time_in_seconds": "",
|
||||
"add_new_question": "",
|
||||
"bg_image": "",
|
||||
"no_title": ""
|
||||
},
|
||||
"controllers": {
|
||||
"last_seen": "",
|
||||
"cancel_update": "",
|
||||
"add_new_controller": "",
|
||||
"player_name": "",
|
||||
"controller_name": "",
|
||||
"already_latest_version": "",
|
||||
"update_from_to": "",
|
||||
"first_seen": "",
|
||||
"version_overview": ""
|
||||
},
|
||||
"view_quiz_page": {
|
||||
"made_by": "",
|
||||
"view_on_kahoot": ""
|
||||
},
|
||||
"import_page": {
|
||||
"this_side_classquiz_excel": "",
|
||||
"visit_docs": "",
|
||||
"download_template_here": "",
|
||||
"classquiz_quiz": "",
|
||||
"this_side_classquiz": "",
|
||||
"a_kahoot_quiz": "",
|
||||
"side_import_kahoot": "",
|
||||
"url_should_look_like_this": "",
|
||||
"need_help": "",
|
||||
"upload_file_ending": ""
|
||||
},
|
||||
"start_game": {
|
||||
"old_school_mode_description": "",
|
||||
"old_school_mode": "",
|
||||
"start_game": "",
|
||||
"captcha_message": "",
|
||||
"normal_mode_description": ""
|
||||
},
|
||||
"login_page": {
|
||||
"use_backup_code": "",
|
||||
"email_or_username": "",
|
||||
"already_have_account": "",
|
||||
"modal": {
|
||||
"error": {
|
||||
"description": {
|
||||
"unexpected": "",
|
||||
"wrong_creds": ""
|
||||
},
|
||||
"wrong_creds": "",
|
||||
"unexpected": ""
|
||||
},
|
||||
"success": {
|
||||
"success": "",
|
||||
"description": {
|
||||
"success": "",
|
||||
"success_check_mail": ""
|
||||
},
|
||||
"success_check_mail": ""
|
||||
}
|
||||
},
|
||||
"login_or_create_account": "",
|
||||
"welcome_back": ""
|
||||
},
|
||||
"password_reset_page": {
|
||||
"reset_password": ""
|
||||
},
|
||||
"video_uploader": {
|
||||
"time_remaining": "",
|
||||
"time_elapsed": ""
|
||||
},
|
||||
"explore_page": {
|
||||
"imported_by": "",
|
||||
"made_by": ""
|
||||
},
|
||||
"create_page": {
|
||||
"success": {
|
||||
"title": "",
|
||||
"body": ""
|
||||
}
|
||||
},
|
||||
"error_page": {
|
||||
"unknown_error_text": "",
|
||||
"404_text": ""
|
||||
},
|
||||
"uploader": {
|
||||
"images_by_pixabay": "",
|
||||
"upload_video_popup_notice": "",
|
||||
"add_image": "",
|
||||
"select_upload_type": "",
|
||||
"upload_a_video": "",
|
||||
"next_page": "",
|
||||
"visit_pixabay": "",
|
||||
"previous_page": "",
|
||||
"search_english_only": "",
|
||||
"upload_video": ""
|
||||
},
|
||||
"search_page": {
|
||||
"nothing_here": "",
|
||||
"at_least_3_characters": ""
|
||||
},
|
||||
"dashboard": {
|
||||
"commandpalette_notice": "",
|
||||
"views_n_plays": "",
|
||||
"search_for_own_quizzes": "",
|
||||
"info_analytics": ""
|
||||
},
|
||||
"navbar": {
|
||||
"donate": ""
|
||||
},
|
||||
"editor_page": {
|
||||
"add_an_answer": "",
|
||||
"right_click_to_delete": ""
|
||||
},
|
||||
"public_user_page": {
|
||||
"no_original_quizzes": "",
|
||||
"joined_on": ""
|
||||
},
|
||||
"components": {
|
||||
"popover": {
|
||||
"copied_to_clipboard": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,10 +47,13 @@
|
||||
"self_hostable_content": "輕鬆地自行架設 ClassQuiz ,資料只由你掌控!",
|
||||
"quiz_results_downloadable_content": "測驗結果可以簡單地被匯出為 Excel 試算表。(不知道其他類似的服務沒有提供此功能)",
|
||||
"community_driven": "社群驅動",
|
||||
"community_driven_content": "ClassQuiz 依靠它的社群提供金援、測試想法、功能請求、翻譯...等!你也可以成為 ClassQuiz 的社群成員之一!"
|
||||
"community_driven_content": "ClassQuiz 依靠它的社群提供金援、測試想法、功能請求、翻譯...等!你也可以成為 ClassQuiz 的社群成員之一!",
|
||||
"multilingual_content": "",
|
||||
"download_quizzes_content": ""
|
||||
},
|
||||
"edit_page": {
|
||||
"success_update_title": "測驗已更新。"
|
||||
"success_update_title": "測驗已更新。",
|
||||
"success_update_body": ""
|
||||
},
|
||||
"create_page": {
|
||||
"success": {
|
||||
@@ -80,7 +83,8 @@
|
||||
"success": "已登入。",
|
||||
"success_check_mail": "已登入。請檢查你的電子信箱收件匣。",
|
||||
"description": {
|
||||
"success": "已登入。"
|
||||
"success": "已登入。",
|
||||
"success_check_mail": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -98,8 +102,21 @@
|
||||
"no_title": "沒有標題...",
|
||||
"bg_image": "背景圖片",
|
||||
"slide": {
|
||||
"rectangle": "長方形"
|
||||
}
|
||||
"rectangle": "長方形",
|
||||
"headline": "",
|
||||
"headline_description": "",
|
||||
"rectangle_description": "",
|
||||
"text": "",
|
||||
"text_description": ""
|
||||
},
|
||||
"check_choice_description": "",
|
||||
"text_description": "",
|
||||
"order_description": "",
|
||||
"voting_description": "",
|
||||
"range_description": "",
|
||||
"empty": "",
|
||||
"abcd_description": "",
|
||||
"time_in_seconds": ""
|
||||
},
|
||||
"import_page": {
|
||||
"need_help": "需要幫助?",
|
||||
@@ -109,7 +126,9 @@
|
||||
"this_side_classquiz": "你可以在這邊匯入 ClassQuiz 測驗。",
|
||||
"side_import_kahoot": "你可以在這邊匯入 Kahoot! 測驗。",
|
||||
"upload_file_ending": "上傳副檔名為 cqa 的檔案",
|
||||
"classquiz_quiz": "一個 ClassQui 測驗"
|
||||
"classquiz_quiz": "一個 ClassQui 測驗",
|
||||
"this_side_classquiz_excel": "",
|
||||
"download_template_here": ""
|
||||
},
|
||||
"admin_page": {
|
||||
"start_game": "開始遊戲",
|
||||
@@ -127,7 +146,10 @@
|
||||
"stop_time_and_solutions": "停止計時並顯示解答",
|
||||
"enter_answer_into_field": "在輸入欄內輸入你的答案!",
|
||||
"show_results": "顯示結果",
|
||||
"next_question": "下個問題 ({{question}})"
|
||||
"next_question": "下個問題 ({{question}})",
|
||||
"request_export_results": "",
|
||||
"answers_submitted": "",
|
||||
"download_export_results": ""
|
||||
},
|
||||
"password_reset_page": {
|
||||
"reset_password": "重設密碼"
|
||||
@@ -140,7 +162,10 @@
|
||||
"check_location": "檢查位置",
|
||||
"delete_this_session": "刪除此工作階段",
|
||||
"this_session?": "這個工作階段?",
|
||||
"security_settings": "安全性設定"
|
||||
"security_settings": "安全性設定",
|
||||
"change_avatar": "",
|
||||
"last_seen": "",
|
||||
"add_api_key": ""
|
||||
},
|
||||
"explore_page": {
|
||||
"made_by": "作者為",
|
||||
@@ -153,7 +178,10 @@
|
||||
"1st_place": "第一名",
|
||||
"end_sentence": "完成!本次測驗結束。",
|
||||
"your_score": "",
|
||||
"join_description": "在 {{url}} 加入並輸入 {{pin}}。"
|
||||
"join_description": "在 {{url}} 加入並輸入 {{pin}}。",
|
||||
"points_added": "",
|
||||
"final_result_rank": "",
|
||||
"join_by_entering_code": ""
|
||||
},
|
||||
"editor_page": {
|
||||
"add_an_answer": "新增一個答案",
|
||||
@@ -165,7 +193,16 @@
|
||||
"donate": "若你覺得這很實用,請考慮 {{donate_link}}。"
|
||||
},
|
||||
"uploader": {
|
||||
"add_image": "新增圖片"
|
||||
"add_image": "新增圖片",
|
||||
"images_by_pixabay": "",
|
||||
"upload_video_popup_notice": "",
|
||||
"select_upload_type": "",
|
||||
"upload_a_video": "",
|
||||
"next_page": "",
|
||||
"visit_pixabay": "",
|
||||
"previous_page": "",
|
||||
"search_english_only": "",
|
||||
"upload_video": ""
|
||||
},
|
||||
"words": {
|
||||
"find": "尋找",
|
||||
@@ -233,14 +270,51 @@
|
||||
"slide": "投影片",
|
||||
"note": "筆記",
|
||||
"back": "返回",
|
||||
"point_plural": ""
|
||||
"point_plural": "",
|
||||
"upload": "",
|
||||
"next": "",
|
||||
"analytics": "",
|
||||
"no": "",
|
||||
"speed": "",
|
||||
"files_library": "",
|
||||
"check_choice": "",
|
||||
"answer_plural": "",
|
||||
"version": "",
|
||||
"update": "",
|
||||
"play_plural": "",
|
||||
"rating": "",
|
||||
"video": "",
|
||||
"order": "",
|
||||
"dislike_plural": "",
|
||||
"info": "",
|
||||
"view_plural": "",
|
||||
"yes": "",
|
||||
"like": "",
|
||||
"dislike": "",
|
||||
"progress": "",
|
||||
"select": "",
|
||||
"like_plural": "",
|
||||
"view": "",
|
||||
"count": "",
|
||||
"report": "",
|
||||
"quiztivity": "",
|
||||
"library": "",
|
||||
"normal": "",
|
||||
"selected": "",
|
||||
"unknown": "",
|
||||
"overview": "",
|
||||
"never": "",
|
||||
"quiz": ""
|
||||
},
|
||||
"search_page": {
|
||||
"at_least_3_characters": "輸入至少 3 個字元...",
|
||||
"nothing_here": "這裡空無一物..."
|
||||
},
|
||||
"dashboard": {
|
||||
"search_for_own_quizzes": "搜尋你的測驗"
|
||||
"search_for_own_quizzes": "搜尋你的測驗",
|
||||
"commandpalette_notice": "",
|
||||
"views_n_plays": "",
|
||||
"info_analytics": ""
|
||||
},
|
||||
"overview_page": {
|
||||
"created_at": "建立於",
|
||||
@@ -264,13 +338,18 @@
|
||||
"hat_color": "帽子顏色",
|
||||
"clothe_type": "服裝",
|
||||
"clothe_color": "服裝顏色",
|
||||
"go_back": "返回"
|
||||
"go_back": "返回",
|
||||
"clothe_graphic_type": "",
|
||||
"top_type": ""
|
||||
},
|
||||
"results_page": {
|
||||
"quiz_title": "測驗標題",
|
||||
"player_count": "玩家人數",
|
||||
"date_played": "測驗日期",
|
||||
"no_results_so_far": "尚未儲存任何結果..."
|
||||
"no_results_so_far": "尚未儲存任何結果...",
|
||||
"general_overview": {
|
||||
"sentence": ""
|
||||
}
|
||||
},
|
||||
"result_page": {
|
||||
"player_name": "玩家名稱",
|
||||
@@ -278,11 +357,117 @@
|
||||
"average_score": "平均分數:{{average_score}}",
|
||||
"time_taken": "花費時間",
|
||||
"correct_answer": "{{count}} 個正確答案",
|
||||
"correct_answer_plural": "{{count}} 個正確答案"
|
||||
"correct_answer_plural": "{{count}} 個正確答案",
|
||||
"player_score": ""
|
||||
},
|
||||
"security_settings": {
|
||||
"activate_2fa": "啟用兩步驟驗證",
|
||||
"2fa_deactivated": "兩步驟驗證未啟用",
|
||||
"2fa_activated": "兩步驟驗證已啟用"
|
||||
"2fa_activated": "兩步驟驗證已啟用",
|
||||
"get_backup_code": "",
|
||||
"enable_totp": "",
|
||||
"disable_totp": "",
|
||||
"totp_setup": {
|
||||
"enter_as_secret_if_no_see_code": "",
|
||||
"scan_to_set_up": "",
|
||||
"totp_setup": "",
|
||||
"do_not_forget_backup_code": ""
|
||||
},
|
||||
"backup_code": "",
|
||||
"backup_codes": {
|
||||
"download_code": "",
|
||||
"your_backup_code": "",
|
||||
"save_somewhere_save": ""
|
||||
},
|
||||
"totp": "",
|
||||
"totp_unavailable": "",
|
||||
"webauthn": "",
|
||||
"add_security_key": "",
|
||||
"webauthn_unavailable": "",
|
||||
"totp_available": "",
|
||||
"webauthn_available": ""
|
||||
},
|
||||
"file_dashboard": {
|
||||
"unset": "",
|
||||
"filename_word": "",
|
||||
"imported": "",
|
||||
"filename": "",
|
||||
"missing": "",
|
||||
"delete_image": "",
|
||||
"size": "",
|
||||
"storage_usage": "",
|
||||
"alt_text": "",
|
||||
"edit_details": "",
|
||||
"uploaded": "",
|
||||
"not_available": "",
|
||||
"caption": "",
|
||||
"edit_the_image": ""
|
||||
},
|
||||
"quiztivity": {
|
||||
"editor": {
|
||||
"add_new": "",
|
||||
"move_left": "",
|
||||
"shares": {
|
||||
"never_expires": "",
|
||||
"expires_on": "",
|
||||
"add_new_share": ""
|
||||
},
|
||||
"title_placeholder": "",
|
||||
"delete": "",
|
||||
"open_shares_menu": "",
|
||||
"select_page_type": "",
|
||||
"move_right": ""
|
||||
},
|
||||
"share_expired": "",
|
||||
"play": {
|
||||
"memory": {
|
||||
"try_count": ""
|
||||
}
|
||||
},
|
||||
"memory": {
|
||||
"editor": {
|
||||
"add_card": "",
|
||||
"add_pair": "",
|
||||
"upload_image": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"controllers": {
|
||||
"last_seen": "",
|
||||
"cancel_update": "",
|
||||
"add_new_controller": "",
|
||||
"player_name": "",
|
||||
"controller_name": "",
|
||||
"already_latest_version": "",
|
||||
"update_from_to": "",
|
||||
"first_seen": "",
|
||||
"version_overview": ""
|
||||
},
|
||||
"view_quiz_page": {
|
||||
"made_by": "",
|
||||
"view_on_kahoot": ""
|
||||
},
|
||||
"start_game": {
|
||||
"old_school_mode_description": "",
|
||||
"old_school_mode": "",
|
||||
"start_game": "",
|
||||
"captcha_message": "",
|
||||
"normal_mode_description": ""
|
||||
},
|
||||
"video_uploader": {
|
||||
"time_remaining": "",
|
||||
"time_elapsed": ""
|
||||
},
|
||||
"navbar": {
|
||||
"donate": ""
|
||||
},
|
||||
"public_user_page": {
|
||||
"no_original_quizzes": "",
|
||||
"joined_on": ""
|
||||
},
|
||||
"components": {
|
||||
"popover": {
|
||||
"copied_to_clipboard": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,12 +139,14 @@ SPDX-License-Identifier: MPL-2.0
|
||||
>
|
||||
</li>
|
||||
{:else}
|
||||
<li class="py-2">
|
||||
<a
|
||||
class="text-lg font-medium lg:px-4 text-gray-600 hover:text-green-600 link-hover"
|
||||
href="/account/register">{$t('words.register')}</a
|
||||
>
|
||||
</li>
|
||||
{#if !import.meta.env.VITE_REGISTRATION_DISABLED}
|
||||
<li class="py-2">
|
||||
<a
|
||||
class="text-lg font-medium lg:px-4 text-gray-600 hover:text-green-600 link-hover"
|
||||
href="/account/register">{$t('words.register')}</a
|
||||
>
|
||||
</li>
|
||||
{/if}
|
||||
|
||||
<li class="py-2">
|
||||
<a
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Marlon W (Mawoka)
|
||||
|
||||
SPDX-License-Identifier: MPL-2.0
|
||||
-->
|
||||
|
||||
<script lang="ts">
|
||||
import { QuizQuestionType } from '$lib/quiz_types';
|
||||
import type { QuizData } from '$lib/quiz_types';
|
||||
import type { Socket } from 'socket.io-client';
|
||||
import { getLocalization } from '$lib/i18n';
|
||||
|
||||
export let bg_color: string;
|
||||
export let selected_question: number;
|
||||
export let quiz_data: QuizData;
|
||||
export let timer_res: string;
|
||||
export let final_results;
|
||||
export let socket: Socket;
|
||||
|
||||
export let game_token: string;
|
||||
|
||||
export let question_results;
|
||||
|
||||
export let shown_question_now: number;
|
||||
|
||||
const { t } = getLocalization();
|
||||
const set_question_number = (q_number: number) => {
|
||||
socket.emit('set_question_number', q_number.toString());
|
||||
};
|
||||
|
||||
const get_question_results = () => {
|
||||
socket.emit('get_question_results', {
|
||||
game_id: game_token,
|
||||
question_number: shown_question_now
|
||||
});
|
||||
};
|
||||
const show_solutions = () => {
|
||||
socket.emit('show_solutions', {});
|
||||
timer_res = '0';
|
||||
};
|
||||
|
||||
const get_final_results = () => {
|
||||
socket.emit('get_final_results', {});
|
||||
};
|
||||
</script>
|
||||
|
||||
<div
|
||||
class="fixed top-0 w-full h-10 z-20 grid grid-cols-2"
|
||||
style="background: {bg_color ? bg_color : 'transparent'}"
|
||||
class:text-black={bg_color}
|
||||
>
|
||||
<p class="mr-auto ml-0 col-start-1 col-end-1">
|
||||
{selected_question === -1 ? '0' : selected_question + 1}
|
||||
/{quiz_data.questions.length}
|
||||
</p>
|
||||
<div class="justify-self-end ml-auto mr-0 col-start-3 col-end-3">
|
||||
{#if selected_question + 1 === quiz_data.questions.length && ((timer_res === '0' && question_results !== null) || quiz_data?.questions?.[selected_question]?.type === QuizQuestionType.SLIDE)}
|
||||
{#if JSON.stringify(final_results) === JSON.stringify([null])}
|
||||
<button on:click={get_final_results} class="admin-button"
|
||||
>{$t('admin_page.get_final_results')}
|
||||
</button>
|
||||
{/if}
|
||||
{:else if timer_res === '0' || selected_question === -1}
|
||||
{#if (selected_question + 1 !== quiz_data.questions.length && question_results !== null) || selected_question === -1}
|
||||
<button
|
||||
on:click={() => {
|
||||
set_question_number(selected_question + 1);
|
||||
}}
|
||||
class="admin-button"
|
||||
>{$t('admin_page.next_question', { question: selected_question + 2 })}
|
||||
</button>
|
||||
{/if}
|
||||
{#if question_results === null && selected_question !== -1}
|
||||
{#if quiz_data.questions[selected_question].type === QuizQuestionType.SLIDE}
|
||||
<button
|
||||
on:click={() => {
|
||||
set_question_number(selected_question + 1);
|
||||
}}
|
||||
class="admin-button"
|
||||
>{$t('admin_page.next_question', { question: selected_question + 2 })}
|
||||
</button>
|
||||
{:else}
|
||||
<button on:click={get_question_results} class="admin-button"
|
||||
>{$t('admin_page.show_results')}
|
||||
</button>
|
||||
{/if}
|
||||
{/if}
|
||||
{:else if selected_question !== -1}
|
||||
{#if quiz_data.questions[selected_question].type === QuizQuestionType.SLIDE}
|
||||
<button
|
||||
on:click={() => {
|
||||
set_question_number(selected_question + 1);
|
||||
}}
|
||||
class="admin-button"
|
||||
>{$t('admin_page.next_question', { question: selected_question + 2 })}
|
||||
</button>
|
||||
{:else}
|
||||
<button on:click={show_solutions} class="admin-button"
|
||||
>{$t('admin_page.stop_time_and_solutions')}
|
||||
</button>
|
||||
{/if}
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
@@ -8,6 +8,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
import AudioPlayer from '$lib/play/audio_player.svelte';
|
||||
import ControllerCodeDisplay from '$lib/components/controller/code.svelte';
|
||||
import { getLocalization } from '$lib/i18n';
|
||||
import GrayButton from '$lib/components/buttons/gray.svelte';
|
||||
|
||||
export let game_pin: string;
|
||||
export let players;
|
||||
@@ -51,7 +52,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
<img
|
||||
alt="QR code to join the game"
|
||||
src="/api/v1/utils/qr/{game_pin}"
|
||||
class="block mx-auto w-1/2 dark:bg-white"
|
||||
class="block mx-auto w-1/2 dark:bg-white shadow-2xl rounded"
|
||||
/>
|
||||
{#if cqc_code}
|
||||
<div class="m-auto">
|
||||
@@ -62,34 +63,33 @@ SPDX-License-Identifier: MPL-2.0
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
<p class="text-3xl text-center">{$t('words.pin')}: {game_pin}</p>
|
||||
<p class="text-3xl text-center">
|
||||
{$t('words.pin')}: <span class="select-all">{game_pin}</span>
|
||||
</p>
|
||||
<div class="flex justify-center w-full mt-4">
|
||||
<ul class="list-disc pl-8">
|
||||
{#if players.length > 0}
|
||||
{#each players as player}
|
||||
<li>
|
||||
<span
|
||||
class="hover:line-through"
|
||||
on:click={() => {
|
||||
kick_player(player.username);
|
||||
}}>{player.username}</span
|
||||
>
|
||||
<!-- <button>{$t('words.kick')}</button>-->
|
||||
</li>
|
||||
{/each}
|
||||
{/if}
|
||||
</ul>
|
||||
</div>
|
||||
{#if players.length > 0}
|
||||
<div class="flex justify-center w-full mt-4">
|
||||
<button
|
||||
class="ml-4 admin-button"
|
||||
id="startGame"
|
||||
<div>
|
||||
<GrayButton
|
||||
disabled={players.length < 1}
|
||||
on:click={() => {
|
||||
socket.emit('start_game', '');
|
||||
}}
|
||||
>{$t('admin_page.start_game')}
|
||||
</button>
|
||||
</GrayButton>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
<div class="flex flex-row w-full mt-4 px-10 flex-wrap">
|
||||
{#if players.length > 0}
|
||||
{#each players as player}
|
||||
<div class="p-2 m-2 border-2 border-[#B07156] rounded hover:cursor-pointer">
|
||||
<span
|
||||
class="hover:line-through text-lg"
|
||||
on:click={() => {
|
||||
kick_player(player.username);
|
||||
}}>{player.username}</span
|
||||
>
|
||||
<!-- <button>{$t('words.kick')}</button>-->
|
||||
</div>
|
||||
{/each}
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Marlon W (Mawoka)
|
||||
|
||||
SPDX-License-Identifier: MPL-2.0
|
||||
-->
|
||||
|
||||
<script lang="ts">
|
||||
import { QuizQuestionType } from '$lib/quiz_types';
|
||||
import type { QuizData } from '$lib/quiz_types';
|
||||
import { get_foreground_color } from '$lib/helpers.js';
|
||||
import { kahoot_icons } from '$lib/play/kahoot_mode_assets/kahoot_icons.js';
|
||||
import CircularTimer from '$lib/play/circular_progress.svelte';
|
||||
import MediaComponent from '$lib/editor/MediaComponent.svelte';
|
||||
import { getLocalization } from '$lib/i18n';
|
||||
|
||||
export let quiz_data: QuizData;
|
||||
export let selected_question: number;
|
||||
export let timer_res: string;
|
||||
|
||||
export let answer_count: number;
|
||||
export let default_colors: string[];
|
||||
|
||||
const { t } = getLocalization();
|
||||
|
||||
let circular_progress = 0;
|
||||
$: {
|
||||
try {
|
||||
circular_progress =
|
||||
1 -
|
||||
((100 / parseInt(quiz_data.questions[selected_question].time)) *
|
||||
parseInt(timer_res)) /
|
||||
100;
|
||||
} catch {
|
||||
circular_progress = 0;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="flex flex-col justify-center w-screen h-1/6">
|
||||
<h1 class="text-6xl text-center">
|
||||
{@html quiz_data.questions[selected_question].question}
|
||||
</h1>
|
||||
<!-- <span class='text-center py-2 text-lg'>{$t('admin_page.time_left')}: {timer_res}</span>-->
|
||||
<div class="grid grid-cols-3 my-2">
|
||||
<span />
|
||||
<div class="m-auto">
|
||||
<CircularTimer
|
||||
bind:text={timer_res}
|
||||
bind:progress={circular_progress}
|
||||
color="#ef4444"
|
||||
/>
|
||||
</div>
|
||||
<p class="m-auto text-3xl">
|
||||
{$t('admin_page.answers_submitted', { answer_count: answer_count })}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{#if quiz_data.questions[selected_question].image !== null}
|
||||
<div class="flex w-full">
|
||||
<MediaComponent
|
||||
src={quiz_data.questions[selected_question].image}
|
||||
muted={false}
|
||||
css_classes="max-h-[20vh] object-cover mx-auto mb-8 w-auto"
|
||||
/>
|
||||
</div>
|
||||
{/if}
|
||||
{#if quiz_data.questions[selected_question].type === QuizQuestionType.ABCD || quiz_data.questions[selected_question].type === QuizQuestionType.VOTING || quiz_data.questions[selected_question].type === QuizQuestionType.CHECK}
|
||||
<div class="grid grid-rows-2 grid-flow-col auto-cols-auto gap-2 w-full p-4">
|
||||
{#each quiz_data.questions[selected_question].answers as answer, i}
|
||||
<div
|
||||
class="rounded-lg h-fit flex border-2 border-black"
|
||||
style="background-color: {answer.color ?? default_colors[i]};"
|
||||
class:opacity-50={!answer.right &&
|
||||
timer_res === '0' &&
|
||||
quiz_data.questions[selected_question].type === QuizQuestionType.ABCD}
|
||||
>
|
||||
<img
|
||||
class="w-14 inline-block pl-4"
|
||||
alt="icon"
|
||||
style="color: {get_foreground_color(answer.color ?? default_colors[i])}"
|
||||
src={kahoot_icons[i]}
|
||||
/>
|
||||
<span
|
||||
class="text-center text-2xl px-2 py-4 w-full"
|
||||
style="color: {get_foreground_color(answer.color ?? default_colors[i])}"
|
||||
>{answer.answer}</span
|
||||
>
|
||||
<span class="pl-4 w-10" />
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
{:else if quiz_data.questions[selected_question].type === QuizQuestionType.TEXT}
|
||||
{#if timer_res === '0'}
|
||||
<div class="grid grid-cols-2 gap-2 w-full p-4">
|
||||
{#each quiz_data.questions[selected_question].answers as answer, i}
|
||||
<div class="rounded-lg h-fit flex bg-[#B07156]">
|
||||
<span class="text-center text-2xl px-2 py-4 w-full text-black"
|
||||
>{answer.answer}</span
|
||||
>
|
||||
<span class="pl-4 w-10" />
|
||||
</div>
|
||||
{/each}
|
||||
</div>
|
||||
{:else}
|
||||
<div class="flex justify-center">
|
||||
<p class="text-2xl">{$t('admin_page.enter_answer_into_field')}</p>
|
||||
</div>
|
||||
{/if}
|
||||
{/if}
|
||||
@@ -11,6 +11,8 @@ SPDX-License-Identifier: MPL-2.0
|
||||
import { onMount } from 'svelte';
|
||||
import { getLocalization } from '$lib/i18n';
|
||||
import type { Question } from '$lib/quiz_types';
|
||||
import { QuizQuestionType } from '$lib/quiz_types';
|
||||
|
||||
const { t } = getLocalization();
|
||||
|
||||
export let data;
|
||||
@@ -127,7 +129,9 @@ SPDX-License-Identifier: MPL-2.0
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-12">
|
||||
<VotingResults data={new_data} {question} />
|
||||
</div>
|
||||
{#if [QuizQuestionType.ABCD, QuizQuestionType.VOTING, QuizQuestionType.TEXT].includes(question.type)}
|
||||
<div class="mt-12">
|
||||
<VotingResults data={new_data} {question} />
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
@@ -15,6 +15,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
import { flip } from 'svelte/animate';
|
||||
import BrownButton from '$lib/components/buttons/brown.svelte';
|
||||
import { get_foreground_color } from '../helpers';
|
||||
import MediaComponent from '$lib/editor/MediaComponent.svelte';
|
||||
|
||||
const { t } = getLocalization();
|
||||
|
||||
@@ -154,10 +155,9 @@ SPDX-License-Identifier: MPL-2.0
|
||||
</h1>
|
||||
{#if question.image !== null && game_mode !== 'kahoot'}
|
||||
<div class="max-h-full">
|
||||
<img
|
||||
src="/api/v1/storage/download/{question.image}"
|
||||
class="object-cover mx-auto mb-8 max-h-[90%]"
|
||||
alt="Content for Question"
|
||||
<MediaComponent
|
||||
src={question.image}
|
||||
css_classes="object-cover mx-auto mb-8 max-h-[90%]"
|
||||
/>
|
||||
</div>
|
||||
{/if}
|
||||
@@ -167,7 +167,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
{#if question.type === QuizQuestionType.ABCD || question.type === QuizQuestionType.VOTING}
|
||||
<div class="w-full relative" style="height: {get_div_height()}%">
|
||||
<div
|
||||
class="absolute top-0 bottom-0 left-0 right-0 m-auto rounded-full h-fit w-fit border-2 border-black shadow-2xl z-50"
|
||||
class="absolute top-0 bottom-0 left-0 right-0 m-auto rounded-full h-fit w-fit border-2 border-black shadow-2xl z-40"
|
||||
>
|
||||
<CircularTimer
|
||||
bind:text={timer_res}
|
||||
|
||||
@@ -78,6 +78,10 @@ SPDX-License-Identifier: MPL-2.0
|
||||
downloadable < /li>;*/
|
||||
|
||||
const classquiz_reasons = [
|
||||
{
|
||||
headline: $t('index_page.no_player_limit'),
|
||||
content: $t('index_page.no_player_limit_content'),
|
||||
},
|
||||
{
|
||||
headline: $t('index_page.no_tracking'),
|
||||
content: $t('index_page.no_tracking_content')
|
||||
|
||||
@@ -9,6 +9,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
import { getLocalization } from '$lib/i18n';
|
||||
import Footer from '$lib/footer.svelte';
|
||||
import { navbarVisible, signedIn } from '$lib/stores';
|
||||
import CommandpaletteNotice from '$lib/components/popover/commandpalettenotice.svelte';
|
||||
// import Spinner from "$lib/Spinner.svelte";
|
||||
import Fuse from 'fuse.js';
|
||||
import BrownButton from '$lib/components/buttons/brown.svelte';
|
||||
@@ -16,6 +17,8 @@ SPDX-License-Identifier: MPL-2.0
|
||||
import { fly } from 'svelte/transition';
|
||||
import StartGamePopup from '$lib/dashboard/start_game.svelte';
|
||||
import Analytics from './Analytics.svelte';
|
||||
import MediaComponent from '$lib/editor/MediaComponent.svelte';
|
||||
import { createTippy } from 'svelte-tippy';
|
||||
|
||||
// import GrayButton from "$lib/components/buttons/gray.svelte";
|
||||
|
||||
@@ -29,6 +32,11 @@ SPDX-License-Identifier: MPL-2.0
|
||||
let items_to_show = [];
|
||||
let all_items: Array<any>;
|
||||
let fuse;
|
||||
const tippy = createTippy({
|
||||
arrow: true,
|
||||
animation: 'perspective-subtle',
|
||||
placement: 'bottom'
|
||||
});
|
||||
|
||||
let id_to_position_map = {};
|
||||
|
||||
@@ -94,6 +102,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
<title>ClassQuiz - Dashboard</title>
|
||||
</svelte:head>
|
||||
<Analytics bind:quiz={analytics_quiz_selected} />
|
||||
<CommandpaletteNotice />
|
||||
<div class="min-h-screen flex flex-col">
|
||||
{#await getData()}
|
||||
<svg class="h-8 w-8 animate-spin mx-auto my-20" viewBox="3 3 18 18">
|
||||
@@ -114,7 +123,11 @@ SPDX-License-Identifier: MPL-2.0
|
||||
</button>-->
|
||||
<div class="w-full grid lg:grid-cols-4 gap-2 grid-cols-2 px-4">
|
||||
{#if create_button_clicked}
|
||||
<div class="flex gap-2" transition:fly={{ y: 10 }}>
|
||||
<div
|
||||
class="flex gap-2"
|
||||
transition:fly={{ y: 10 }}
|
||||
use:tippy={{ content: 'Unsure? Choose "Quiz".' }}
|
||||
>
|
||||
<BrownButton href="/create">{$t('words.quiz')}</BrownButton>
|
||||
<BrownButton href="/quiztivity/create">{$t('words.quiztivity')}</BrownButton
|
||||
>
|
||||
@@ -175,11 +188,15 @@ SPDX-License-Identifier: MPL-2.0
|
||||
>
|
||||
<div class="hidden lg:flex w-auto h-full items-center relative">
|
||||
{#if quiz.cover_image}
|
||||
<img
|
||||
<!-- <img
|
||||
src="/api/v1/storage/download/{quiz.cover_image}"
|
||||
alt="user provided"
|
||||
loading="lazy"
|
||||
class="shrink-0 max-w-full max-h-full absolute rounded"
|
||||
/>-->
|
||||
<MediaComponent
|
||||
src={quiz.cover_image}
|
||||
css_classes="shrink-0 max-w-full max-h-full absolute rounded"
|
||||
/>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
@@ -17,7 +17,6 @@ SPDX-License-Identifier: MPL-2.0
|
||||
import KahootResults from '$lib/play/results_kahoot.svelte';
|
||||
import { getLocalization } from '$lib/i18n';
|
||||
import Cookies from 'js-cookie';
|
||||
|
||||
const { t } = getLocalization();
|
||||
|
||||
// Exports
|
||||
@@ -74,14 +73,46 @@ SPDX-License-Identifier: MPL-2.0
|
||||
socket.emit('echo_time_sync', data);
|
||||
});
|
||||
|
||||
socket.on('connect', async () => {
|
||||
console.log('Connected!');
|
||||
const cookie_data = Cookies.get('joined_game');
|
||||
if (!cookie_data) {
|
||||
return;
|
||||
}
|
||||
const data = JSON.parse(cookie_data);
|
||||
socket.emit('rejoin_game', {
|
||||
old_sid: data.sid,
|
||||
username: data.username,
|
||||
game_pin: data.game_pin
|
||||
});
|
||||
const res = await fetch(`/api/v1/quiz/play/check_captcha/${game_pin}`);
|
||||
const json = await res.json();
|
||||
game_mode = json.game_mode;
|
||||
});
|
||||
|
||||
// Socket-events
|
||||
socket.on('joined_game', (data) => {
|
||||
gameData = data;
|
||||
// eslint-disable-next-line no-undef
|
||||
plausible('Joined Game', { props: { game_id: gameData.game_id } });
|
||||
Cookies.set('joined_game', JSON.stringify({ sid: socket.id, username, game_pin }), {
|
||||
expires: 3600
|
||||
});
|
||||
});
|
||||
socket.on('rejoined_game', (data) => {
|
||||
gameData = data;
|
||||
if (data.started) {
|
||||
gameMeta.started = true;
|
||||
}
|
||||
});
|
||||
|
||||
socket.on('game_not_found', () => {
|
||||
const cookie_data = Cookies.get('joined_game');
|
||||
if (cookie_data) {
|
||||
Cookies.remove('joined_game');
|
||||
window.location.reload();
|
||||
return;
|
||||
}
|
||||
game_pin_valid = false;
|
||||
});
|
||||
|
||||
@@ -99,11 +130,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
|
||||
socket.on('question_results', (data) => {
|
||||
restart();
|
||||
try {
|
||||
answer_results = JSON.parse(data);
|
||||
} catch {
|
||||
answer_results = null;
|
||||
}
|
||||
answer_results = data;
|
||||
});
|
||||
|
||||
socket.on('username_already_exists', () => {
|
||||
@@ -120,6 +147,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
});
|
||||
socket.on('final_results', (data) => {
|
||||
final_results = data;
|
||||
Cookies.remove('joined_game');
|
||||
});
|
||||
|
||||
socket.on('solutions', (data) => {
|
||||
@@ -149,7 +177,7 @@ SPDX-License-Identifier: MPL-2.0
|
||||
>
|
||||
<div>
|
||||
{#if !gameMeta.started && gameData === undefined}
|
||||
<JoinGame {game_pin} bind:game_mode bind:username />
|
||||
<JoinGame bind:game_pin bind:game_mode bind:username />
|
||||
{:else if JSON.stringify(final_results) !== JSON.stringify([null])}
|
||||
<ShowEndScreen bind:data={scores} show_final_results={true} bind:username />
|
||||
{:else if gameData !== undefined && question_index === ''}
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
{
|
||||
"extends": "./.svelte-kit/tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"resolveJsonModule": true
|
||||
"resolveJsonModule": true,
|
||||
"allowImportingTsExtensions": true
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import sys
|
||||
import socketio
|
||||
|
||||
NUMBER_OF_PLAYERS = 200
|
||||
GAME_PIN = 563037
|
||||
GAME_PIN = sys.argv[1]
|
||||
q_index = 0
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user