Compare commits
3202 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4402611aaa | |||
| abb7557070 | |||
| bbd8d7c5c8 | |||
| 6fb6425cf4 | |||
| 61f9e2d1f7 | |||
| d346e7a325 | |||
| b471addb84 | |||
| a47121d6aa | |||
| 44eef26342 | |||
| 5757e2eb72 | |||
| bce69d0fb6 | |||
| 80db4c307a | |||
| 238607d5a1 | |||
| 24a3346670 | |||
| cf40d10bc0 | |||
| 51bc9ed0ee | |||
| a3cade9a5a | |||
| 5275ae114c | |||
| f537b09337 | |||
| 27d28db994 | |||
| daab75fb32 | |||
| ae243f44b3 | |||
| fa7023c8ec | |||
| cde6882601 | |||
| f429fcb76d | |||
| 814f93b620 | |||
| 59508028dc | |||
| 796030c8e5 | |||
| 74477e0de6 | |||
| ccd2abc22b | |||
| 37ea587f61 | |||
| 29234e0945 | |||
| ba15b08bce | |||
| ff1ba8a9f5 | |||
| ece67a6ee4 | |||
| 76dc673898 | |||
| e9a12bdc32 | |||
| 46d96dea71 | |||
| ff6bdefb7b | |||
| b7fce0f30c | |||
| 70cd64c067 | |||
| 48d3e89bd9 | |||
| 5b3dad9476 | |||
| 9abf62cf65 | |||
| 4221cd1e85 | |||
| 8048386b4b | |||
| 1341285769 | |||
| d8262b21c1 | |||
| 8b14b86702 | |||
| 6cc5ea6e5d | |||
| 7572681097 | |||
| 7c076fd49f | |||
| ed471a56cb | |||
| 39f53e200a | |||
| 19d387d3b0 | |||
| bd3c36b3a7 | |||
| 57830f35e0 | |||
| 5f1c0590a4 | |||
| ead6611e1d | |||
| 2d5ba5e840 | |||
| 0db8ef2b30 | |||
| 13bf13728a | |||
| 1831bdaea0 | |||
| 48662e0be6 | |||
| 7917173b05 | |||
| f38b407bb7 | |||
| a48624f15e | |||
| e08a5691f8 | |||
| e26d42fdee | |||
| e7ff113605 | |||
| ca3b98672f | |||
| ccce4ad081 | |||
| 533299c9bf | |||
| 94cab603d8 | |||
| 993e90277b | |||
| 67050eecc8 | |||
| fadba7ae56 | |||
| 512ae898dc | |||
| 82fad4f4ff | |||
| c3c90b9d43 | |||
| bdcba5cd6f | |||
| 8522ff0f7f | |||
| 4117176a0a | |||
| 62136111e8 | |||
| 48cfb76607 | |||
| f20ba5e633 | |||
| a2719b9995 | |||
| 9e4417729d | |||
| 0f253c15c4 | |||
| 224965c0cc | |||
| be2be8c557 | |||
| 594bb9d8e0 | |||
| 31aa071f4a | |||
| 4d40a29350 | |||
| 82c05454be | |||
| 6eefafd5a9 | |||
| d07fe424eb | |||
| 2f19fe65bd | |||
| d795f03b13 | |||
| 1e5355e727 | |||
| c5571e6637 | |||
| 64aab8a62e | |||
| 774991431e | |||
| a687f5ec13 | |||
| 59c9ce1901 | |||
| 1edb2c8cde | |||
| 78ba95403f | |||
| bb798c2db9 | |||
| 9cfbd3a75d | |||
| 302d4fe1c1 | |||
| 6b0332a566 | |||
| e3e78a7524 | |||
| c547bf3623 | |||
| 42bc1ccb79 | |||
| 4613ee1fa4 | |||
| 8279f4aad0 | |||
| dd00c19708 | |||
| 510b19018d | |||
| 1784db4663 | |||
| bfcbb95156 | |||
| 37f7a397e3 | |||
| 830b122a1f | |||
| f43208cce6 | |||
| 8cb2379b25 | |||
| 811b135690 | |||
| f6460ed448 | |||
| 617bd43afb | |||
| 2c9c8205ee | |||
| 9c2c8c9535 | |||
| ece477836c | |||
| eb47fc4500 | |||
| f322828baf | |||
| 20f1a76637 | |||
| 9cdd8a2654 | |||
| 160fdd8489 | |||
| 48b1aeb5f3 | |||
| 54ec403f5b | |||
| b7213f4b78 | |||
| 211da69d08 | |||
| c15f4c3487 | |||
| 417aee0bff | |||
| 9c130cf149 | |||
| 49e7e9182e | |||
| 27fd71815e | |||
| 9db0ec1683 | |||
| 1b62055d69 | |||
| 3deca06054 | |||
| 9a250ccdc5 | |||
| fb803ea05c | |||
| 04d9ea3016 | |||
| 1f26d829d1 | |||
| d9b30cf8a1 | |||
| ebcc0ce7dc | |||
| 8a2c6d4dc4 | |||
| 5c400fdbc9 | |||
| 34a011e79f | |||
| 7545b87364 | |||
| 72f0535fb3 | |||
| e776a4c3f5 | |||
| e439957896 | |||
| dffbe3521c | |||
| 1fad559548 | |||
| e6fec6ea50 | |||
| a427a6611b | |||
| 9932e4e892 | |||
| e702a15785 | |||
| cf7910687f | |||
| 2a6c719678 | |||
| 9f08129084 | |||
| 40e81d44a4 | |||
| 40ac61bf23 | |||
| 16372810e5 | |||
| f2a76c5872 | |||
| 3350ffa713 | |||
| bf0634f738 | |||
| 13f9b3d04c | |||
| 1d96e7a16f | |||
| df524315a8 | |||
| 7c082f0fb5 | |||
| 6d637237ff | |||
| 2f6556052a | |||
| 9a6448dd94 | |||
| 54f62730a2 | |||
| ca7c78dbcd | |||
| 16fb5ffb85 | |||
| aea1129812 | |||
| 46320ddcd4 | |||
| a65cdd6f0e | |||
| 9d275e9349 | |||
| 534fb0f9f6 | |||
| 005be375fc | |||
| b2d5dd87fa | |||
| a6b99364aa | |||
| e5c2e7f88c | |||
| 907ba19bea | |||
| 74d8c5c398 | |||
| f65c1a1af3 | |||
| b740e723a3 | |||
| 5bdb9b5459 | |||
| d70d6b8f26 | |||
| 44cdc09745 | |||
| 1291c3cb26 | |||
| 493edfbb82 | |||
| ec6277588d | |||
| 3f057f159a | |||
| 420e167d41 | |||
| 2828f3b517 | |||
| c378247a39 | |||
| 9ab745db85 | |||
| f92022308d | |||
| 4f0e882d97 | |||
| 46f62133d1 | |||
| 77889607f3 | |||
| f92dcd8068 | |||
| 815a3999b4 | |||
| 11c9b8f34b | |||
| cfe892405e | |||
| d2b5f2fdc9 | |||
| 8c4387bae4 | |||
| bfb3955e9e | |||
| 1498f625df | |||
| 9523222b37 | |||
| 9c197abca3 | |||
| d3dbc40749 | |||
| 6362ad8550 | |||
| 04a73d2ad4 | |||
| ddfcf67486 | |||
| 8f5a32deeb | |||
| 5155c08f54 | |||
| 7511c3ff42 | |||
| e4ff027499 | |||
| 1cccdbdaaf | |||
| 1a100a0006 | |||
| 2863bb2d88 | |||
| 14f653f0a5 | |||
| 93fe44fa94 | |||
| e73c750ef1 | |||
| b929fa838c | |||
| d25bd3c01f | |||
| 1a9870ad5a | |||
| fbbc8e0e34 | |||
| cc77af4d9f | |||
| 65ff148898 | |||
| 24ad7c9a01 | |||
| 6ce6a877a5 | |||
| 65bceeddba | |||
| 77cb945b9f | |||
| eab3d2dab4 | |||
| 4e3d66b975 | |||
| a192a352e1 | |||
| c4e9a64b1e | |||
| 533cbe10e3 | |||
| c492f2f8e6 | |||
| 9249c6ffd4 | |||
| 98609fe72f | |||
| 03bf276e15 | |||
| d52fa74ffd | |||
| 15d2e037fe | |||
| 2da6f8cab0 | |||
| 8c331b336e | |||
| 8e90d2f6ab | |||
| acfc5772ee | |||
| fd55d9f010 | |||
| 5e494d18b3 | |||
| 266c69e71d | |||
| 2c431f7a08 | |||
| 51070c6d0e | |||
| a2232535e8 | |||
| 459295f97e | |||
| 641f5698b7 | |||
| eb3f6a2e66 | |||
| 19fa815048 | |||
| 01c9e137e0 | |||
| 47418aa92d | |||
| 8342a66d9b | |||
| c998b456a1 | |||
| 7aa9d66597 | |||
| aa9f15a199 | |||
| c6cd0fe411 | |||
| 11cc6aebf8 | |||
| ef98d82679 | |||
| e5d16a984b | |||
| 3eba03854b | |||
| 692bf4c34b | |||
| 451c3a7baf | |||
| 3dec7f6498 | |||
| 29f4c1caee | |||
| 3543238e5b | |||
| 70ce1aa5c7 | |||
| 56ee681250 | |||
| 0f8b1ade00 | |||
| ca77d6f8d7 | |||
| 14e19cd9d0 | |||
| 29979fd828 | |||
| 777ff166a8 | |||
| 57abd5bd0f | |||
| 6c08d61125 | |||
| 12b070c7c7 | |||
| f9995e88fd | |||
| a6f2e6b2ce | |||
| 144001b412 | |||
| 6b585d2227 | |||
| 322d247bcd | |||
| 12cc2d45c9 | |||
| 13e8445144 | |||
| 5c80ffa509 | |||
| 4adaddafae | |||
| 4517f76396 | |||
| a85c53c436 | |||
| 3344defb89 | |||
| 1e24279acc | |||
| 42b38f32c6 | |||
| 73339577cf | |||
| d49c392383 | |||
| 9d8155ba17 | |||
| 4a3b27285b | |||
| e8888933ea | |||
| b671e01f19 | |||
| 84b73d7164 | |||
| 1398dc08d0 | |||
| 98ee23888d | |||
| 70cb354f81 | |||
| 479d19bb9b | |||
| 15744d14c1 | |||
| a9f5024399 | |||
| 671685ea64 | |||
| e2f2baca94 | |||
| 92556b3a66 | |||
| 1c26110256 | |||
| 75383c00c2 | |||
| 44d3155a6f | |||
| 64e35b7d49 | |||
| 3f23fb10a3 | |||
| 2a54a20a37 | |||
| eb048b5e03 | |||
| fadf4b0e1c | |||
| b627cf66a2 | |||
| e40561a5ae | |||
| ac9c91eeec | |||
| 1efa5b6178 | |||
| 83d48b2428 | |||
| b1b613a247 | |||
| 98eba57192 | |||
| 36210285ea | |||
| 2b2f4a5d1d | |||
| 148cd16ae6 | |||
| eba7bf474d | |||
| 595a94c44c | |||
| bb34b38432 | |||
| ca1871863b | |||
| 9475a0f4b8 | |||
| 606a196e52 | |||
| bcfdb73715 | |||
| f8673861aa | |||
| 1947db8acd | |||
| 260b8f5f8d | |||
| e5f58fe935 | |||
| cfee63b880 | |||
| ee817a32f4 | |||
| 8039704b0d | |||
| c0ff662d60 | |||
| bfd6f2c9a8 | |||
| faa9155c88 | |||
| 444d002304 | |||
| 2f56256a82 | |||
| 16cba5ef11 | |||
| 53b9879a7a | |||
| a628b2dba3 | |||
| e45a3b18ae | |||
| a3b8f75a8d | |||
| a516bda700 | |||
| 44e23a9665 | |||
| 45e5535e89 | |||
| 652a06c1a8 | |||
| e48cd58b2c | |||
| 8f2c27979a | |||
| 0d7e5ec9e5 | |||
| d89c89f368 | |||
| ec48202e27 | |||
| 245576331b | |||
| d426c80761 | |||
| 303dadf377 | |||
| f50be5712d | |||
| ea76473e81 | |||
| 6662238338 | |||
| c33f5c4d3d | |||
| 54fb3d9be8 | |||
| 5c0f86c19e | |||
| 1e5c227909 | |||
| 6c8996207b | |||
| cd8b496876 | |||
| 2379d75173 | |||
| 2147242d91 | |||
| 3a06f5e7c6 | |||
| 7d000076ed | |||
| e0df6d9b0b | |||
| 2a860ca1c4 | |||
| d8326fdb36 | |||
| 8ebeebe7ea | |||
| 328b056410 | |||
| eb89a9bafb | |||
| a8351b86c2 | |||
| c78484dfb3 | |||
| 255fd01f1b | |||
| ea706a8071 | |||
| ee4d982bd0 | |||
| 0e3630e602 | |||
| a4a8fa95ee | |||
| 759b17f195 | |||
| db123458a3 | |||
| 063092875b | |||
| 7591092518 | |||
| 87d598604e | |||
| 4f4516f3fc | |||
| 1f91895624 | |||
| f019785797 | |||
| d2b25deec4 | |||
| 0a04eadc55 | |||
| 91300cdc0e | |||
| 151acc6959 | |||
| d598d39520 | |||
| bb2b1bc23a | |||
| 6f76c83421 | |||
| bbdff96b49 | |||
| c621ec4865 | |||
| d75a4950cb | |||
| 49bdc8819f | |||
| 68e9e02bf8 | |||
| d702a4f62e | |||
| 236d836274 | |||
| ecf89db683 | |||
| 18e54353fe | |||
| bd8ffe068d | |||
| 2ec1e32681 | |||
| 77c342b6ab | |||
| 69a7b58756 | |||
| 1c9b12c69e | |||
| 60bac24065 | |||
| 73a5efcb7c | |||
| 19cf6b57f6 | |||
| 65ee166afb | |||
| 3fe4f6ac8f | |||
| 9be196163c | |||
| 4574a50590 | |||
| a57ac97e10 | |||
| 4fb8316903 | |||
| 0b424a8221 | |||
| 367f32bd06 | |||
| 214833b1ec | |||
| 4326981a4d | |||
| 9f96f132e7 | |||
| 51e89cb7bd | |||
| 8a7fc84f96 | |||
| 0165b94e0e | |||
| f1190f7187 | |||
| 7cc434691a | |||
| d54c29e2b7 | |||
| 17c9c6f62c | |||
| 2e8c59b94a | |||
| f968c5016b | |||
| b3406bc9ae | |||
| 5a0ca315bf | |||
| 57a1a9ece6 | |||
| 85a21e93e3 | |||
| a559f10792 | |||
| 4e4dc33843 | |||
| 51985b8633 | |||
| a0f4ed2ca6 | |||
| fd3f9102dc | |||
| 0c03ca25b5 | |||
| 1c49408810 | |||
| b1cace6a24 | |||
| f4fd9156c0 | |||
| 85f9d77c9d | |||
| 6d92653229 | |||
| e69967fc94 | |||
| 4fc96ee3ba | |||
| 646bc8b398 | |||
| a1302ecb3b | |||
| ff2302f542 | |||
| 2bd1c71fd8 | |||
| 9c3957a567 | |||
| 9df7c047e4 | |||
| 4a53152c96 | |||
| e9be0244ca | |||
| ff5bb28fe6 | |||
| 89618e957f | |||
| aa9432948f | |||
| 34c12fd310 | |||
| b4ce3ccf9b | |||
| a433009de8 | |||
| b87b673e0f | |||
| eff081741a | |||
| 6667c50ce4 | |||
| 3ff388c5ed | |||
| b0ded80c22 | |||
| c97c4871a6 | |||
| 8c179a88a4 | |||
| 384b70a301 | |||
| ba903152a0 | |||
| 8668e3c986 | |||
| 7039ec5d34 | |||
| 02c1e46cbb | |||
| d1a91a85e4 | |||
| 5781e3b4f4 | |||
| d6a72cfef3 | |||
| bb791f4a9e | |||
| 2c2d08e5f1 | |||
| 8a55b45cc9 | |||
| 26689f992b | |||
| 80b3e8236e | |||
| a1f631285f | |||
| 3a9db89382 | |||
| deae896fec | |||
| 70892cdf1d | |||
| b6d51b7b0b | |||
| b3611b04cd | |||
| beebbf86af | |||
| 9ac23face8 | |||
| 4e416ffebb | |||
| 3e6afe04bb | |||
| c96aac25c4 | |||
| 4d6bd0e14e | |||
| f7b6001771 | |||
| 06aff37241 | |||
| d14bb49be1 | |||
| 738e4b30ec | |||
| 7fd8f66145 | |||
| 3ef37f8adf | |||
| a168f4be32 | |||
| 242431b0b0 | |||
| 9a06311d97 | |||
| d89abb44f1 | |||
| f5dd816d1f | |||
| 89f17d3aeb | |||
| 5cb1b0de72 | |||
| 9a1d7f57d3 | |||
| 1e98a7046b | |||
| f2d55f9657 | |||
| e0b051cf56 | |||
| 0419548455 | |||
| 03d37d24dc | |||
| a2fdb61f70 | |||
| 8d6345e04a | |||
| 93f8cb30b7 | |||
| 94522d104b | |||
| 9f1dbf208c | |||
| fd86992a0e | |||
| d2cb7c82b8 | |||
| 6052b3ec2c | |||
| 2a6fa817de | |||
| 28e8203527 | |||
| 6ec246eaee | |||
| 0e39a75e10 | |||
| 1a69e9af1b | |||
| 513099ef0f | |||
| d8d5c2889a | |||
| 0c076bf365 | |||
| a12f7e96f7 | |||
| 8eff33f250 | |||
| 12d337252e | |||
| 5951976050 | |||
| cda2f03dc1 | |||
| 5f05df1721 | |||
| 62eadebbee | |||
| 6dd9afb0ab | |||
| 9e0e85bc86 | |||
| 36f41e3d22 | |||
| 6d9b593555 | |||
| 28cea14a7f | |||
| a45f7c71e3 | |||
| eff49c8e43 | |||
| 053428b945 | |||
| 22a1e0525b | |||
| 79aedc830c | |||
| 1c84857191 | |||
| ebc1ed7ab6 | |||
| 8a3b69347a | |||
| 9b82eaf228 | |||
| 33c86d3b93 | |||
| c7c7733be3 | |||
| 3d7b15c521 | |||
| 3918cd3e93 | |||
| f42b11ce6b | |||
| e8c11080a5 | |||
| 194cacf7f2 | |||
| a0dba5ca1d | |||
| 6c89fcb29d | |||
| ad2e80f900 | |||
| be95fa7412 | |||
| 7094d87843 | |||
| 9e02cf20f4 | |||
| d284791ffb | |||
| 8637d74c3a | |||
| 69701070b6 | |||
| 76b8962bc5 | |||
| 2f19f4d3e9 | |||
| 17e1cf0a67 | |||
| 49e531fabb | |||
| 1bd7bc6d53 | |||
| ed19b3c333 | |||
| fb251c362d | |||
| 3e0a84ee8c | |||
| db419875b0 | |||
| a474006d40 | |||
| d764a100a6 | |||
| bc2f9c866b | |||
| a49bd0133c | |||
| 97f67f3cb8 | |||
| bec8d214d3 | |||
| 7cd3ed824f | |||
| 7fd6fda193 | |||
| 0c0b824be6 | |||
| 261e4f9926 | |||
| 221815a3ad | |||
| 33e740e4ad | |||
| b64c4c0904 | |||
| e00dd6a491 | |||
| 2a6bfb8878 | |||
| 90b29854a9 | |||
| 9358dbc613 | |||
| ea4e9bc144 | |||
| 280ea1e0e4 | |||
| d5a7b257dc | |||
| 84238fcca5 | |||
| f4990b9f98 | |||
| e0d6230f2f | |||
| c0385ce188 | |||
| e624691fc3 | |||
| a173928fe6 | |||
| 4e06513d07 | |||
| a66a521660 | |||
| 7c08938fb9 | |||
| c51c5e0e7d | |||
| ca649f95ec | |||
| 247b5d33cd | |||
| c9bdd74a5c | |||
| 86be00ff75 | |||
| eadff6ee94 | |||
| 687e1f190d | |||
| d0f293d799 | |||
| 32ee3ed517 | |||
| 84d12e2a93 | |||
| e52ba082bb | |||
| b3dd01d50a | |||
| 23122310ae | |||
| 74027bef5d | |||
| aa6cedcc87 | |||
| 2a1ecfd497 | |||
| fc561141d4 | |||
| e4c7faf8de | |||
| c06da680ed | |||
| 70ef636572 | |||
| 3029937cf6 | |||
| bba9e06d31 | |||
| 417dd54e49 | |||
| 87fd6ea4f3 | |||
| 35cdc01c27 | |||
| a4b1172883 | |||
| 3c8a31cff2 | |||
| 780fe50050 | |||
| 094bf6edb5 | |||
| ae9d6d2ea3 | |||
| 78d423b9e9 | |||
| 926f9190be | |||
| cecc13498a | |||
| 1051e3f2dc | |||
| b5bb26fa52 | |||
| 58efd993dd | |||
| ddff0df466 | |||
| fbbe9b138b | |||
| 2ade8e0449 | |||
| 929aedd082 | |||
| f06cac8537 | |||
| 3b08646baa | |||
| b3558d0725 | |||
| 6387e44694 | |||
| 498b0966be | |||
| 6fb620c12a | |||
| da7d90ea41 | |||
| 5893414f21 | |||
| 3e571d04d2 | |||
| d2c385a713 | |||
| 9a821eca85 | |||
| 40472632a9 | |||
| 89c07909ef | |||
| a55ca53310 | |||
| fb44010b7f | |||
| 6ea0a43e47 | |||
| 5161728f5e | |||
| e7bb3967f2 | |||
| 637af5a21e | |||
| 82dd8ffe95 | |||
| 9f24f22206 | |||
| 5d069f1589 | |||
| 77692f7a7f | |||
| 0bfa9a022b | |||
| f98221a54f | |||
| b830143788 | |||
| c404490bd2 | |||
| 591c440647 | |||
| a95e59bd7c | |||
| 458bbe3ba4 | |||
| a40856fdad | |||
| adfe4fc712 | |||
| 1ba031b1c5 | |||
| 77236946d0 | |||
| f49a7d293a | |||
| 268de01790 | |||
| beeed03b54 | |||
| 8784250be9 | |||
| 4f972a5c39 | |||
| 561dcdbe74 | |||
| 8906015895 | |||
| 5d6d660e0b | |||
| 758b5e2f38 | |||
| 198fc93532 | |||
| f82f7d82d5 | |||
| 0558efe5d9 | |||
| 7b1ea17a91 | |||
| 99514a9341 | |||
| 457ba21aba | |||
| 570cbb8b5b | |||
| 665e5760d8 | |||
| 1cb7d09b97 | |||
| 8cb0fd0670 | |||
| 922798185c | |||
| 2bd84d93b8 | |||
| b2ce4fa349 | |||
| 978126612f | |||
| 1e4298ed61 | |||
| 6b227619e9 | |||
| 2a6bda3a3d | |||
| 0628b3c1ae | |||
| 801cee5db1 | |||
| ca1c0f94f5 | |||
| c356f177d4 | |||
| 0a434367b3 | |||
| 250bb26b16 | |||
| 3a1b3e75d3 | |||
| 6f6e40e066 | |||
| eb7ca2d684 | |||
| d376f8cc30 | |||
| 9b051a0918 | |||
| fadff3ae4c | |||
| 4f6951e911 | |||
| 8cd3d4553d | |||
| 0d558d2670 | |||
| 7350cd81fd | |||
| c540df7fd1 | |||
| 7d17c94251 | |||
| 2a18f54179 | |||
| 3b910c8227 | |||
| 7b2a55e0a4 | |||
| 51fcf958e8 | |||
| 053d0bc158 | |||
| 73300ccc27 | |||
| 37b000f36c | |||
| 93d3163b01 | |||
| 260913703b | |||
| 879c32e538 | |||
| c4ff37826a | |||
| 3e14e1f25e | |||
| 68e2cfb420 | |||
| e531f7561a | |||
| 96ff02dff8 | |||
| aa7a197771 | |||
| c8e22d8c7f | |||
| 5de6385165 | |||
| 9b6df453bc | |||
| b23ecf3603 | |||
| d7d53a06b9 | |||
| bae6672f36 | |||
| 0e0e91495f | |||
| 329e0f49de | |||
| 97d1fd059d | |||
| 55858f9f6d | |||
| 1b8269d746 | |||
| f02ca4c042 | |||
| f3e19bd772 | |||
| 76be237d8b | |||
| 64dd878b6b | |||
| b1b8b03f12 | |||
| d5a816c4fe | |||
| bef4a6f99e | |||
| 72f3513022 | |||
| 47b82bb2d4 | |||
| 362b22bd4d | |||
| 6226a8a78b | |||
| e3d443acc3 | |||
| 034ebf7d54 | |||
| c54034c7e0 | |||
| 09eb77b56e | |||
| be5ad751cf | |||
| 2b85a7f1eb | |||
| 708c7a52a1 | |||
| b42b24be75 | |||
| 5a124d6d45 | |||
| 98328bd6b9 | |||
| a494d160c4 | |||
| 91e3fc15c7 | |||
| 2b719a5b86 | |||
| 9ce786d578 | |||
| 994f358ca8 | |||
| cfd17c616c | |||
| 4826741846 | |||
| 258beb1b38 | |||
| c0de244fd9 | |||
| a39cb7c8f6 | |||
| f1462bd1e1 | |||
| c7c713c6de | |||
| b9d1660377 | |||
| 9366678fef | |||
| c105989111 | |||
| a4d0b79de4 | |||
| 6e910343e1 | |||
| d33317fdb8 | |||
| e020f225f8 | |||
| a727c0edec | |||
| 546b903660 | |||
| 39193405ed | |||
| 351c97bf09 | |||
| b903fc7fb1 | |||
| 067a8b4831 | |||
| f766375dd6 | |||
| 4b56f275f4 | |||
| 6067437ea2 | |||
| 6517d35727 | |||
| 7a6f0d6082 | |||
| d38c505ec8 | |||
| b74c14d93a | |||
| 3cb327ff8d | |||
| a8f4d149da | |||
| 3753cfa417 | |||
| 1b6ef60a37 | |||
| 58ed0461f9 | |||
| 93ffeb8c32 | |||
| 1feed24f14 | |||
| 72a2b88af9 | |||
| ed21a6b21c | |||
| 27dbdab522 | |||
| ecd1fc2803 | |||
| a59b0442f9 | |||
| 3c2b35576e | |||
| 40f24c0196 | |||
| 6bd9819f7f | |||
| 477ec726b2 | |||
| 5c56d9c374 | |||
| 717fdd96c8 | |||
| d004dfe2bf | |||
| 0e4ff5622e | |||
| 2249c10d37 | |||
| ac08209e36 | |||
| c8b4cf9433 | |||
| 3da93f7abd | |||
| 4a8d9b6b54 | |||
| d0382be839 | |||
| e2c1758667 | |||
| e2f3a6bb2b | |||
| 30a3174c88 | |||
| 43a08784f7 | |||
| 7d31bed4f6 | |||
| e510cb1ccc | |||
| c7503f13ac | |||
| aec68a96a4 | |||
| 53d293fe12 | |||
| e5558f0527 | |||
| 047937a57d | |||
| 452e9ead75 | |||
| ae74819174 | |||
| cf0d2c28ec | |||
| abeebfa81c | |||
| 62e9a7c50c | |||
| a7c029cd1e | |||
| 7d11c06cbe | |||
| 115f249b75 | |||
| c40bae3a5e | |||
| 197af9d3e4 | |||
| 5e758a3b09 | |||
| 1edeae716a | |||
| 461c5e823c | |||
| 79ef560c06 | |||
| 2de0ec9bee | |||
| bd5f682196 | |||
| 8ec6bb15fe | |||
| acdd4ff468 | |||
| 305dd3636b | |||
| fdd46102f4 | |||
| 80b0b2a792 | |||
| 73f824ab1c | |||
| 556e014e3a | |||
| 91e27ff475 | |||
| 7cafef382b | |||
| 4b16eebe57 | |||
| 3158cc8fba | |||
| 39dfe02350 | |||
| 385060334e | |||
| 59a4e6cb0b | |||
| d3bc7650fe | |||
| 7a7c4ec7e4 | |||
| 9a68ea37f1 | |||
| 58052bdb46 | |||
| f4da18de2d | |||
| 89fcde4dc3 | |||
| f3d43f110c | |||
| 8cdf2b45ee | |||
| 25ab46acd3 | |||
| 53df5499ea | |||
| df48f4d525 | |||
| 495d3bd66c | |||
| 2ce437871a | |||
| 216ed01bee | |||
| 6f12af24d9 | |||
| bcac0ed1a8 | |||
| 9dc576fd30 | |||
| 0534264d1b | |||
| 9fc04f1fa4 | |||
| 41bba0cb14 | |||
| 3746367531 | |||
| e1a844a8af | |||
| adf22f984e | |||
| 0527380c7b | |||
| f793cec5d8 | |||
| ab818456b0 | |||
| ca2e59e0a9 | |||
| 923ff6442f | |||
| 57e3331d81 | |||
| cc69d17254 | |||
| 7326afc126 | |||
| a4876166e4 | |||
| 6df0957a4a | |||
| 74da96c073 | |||
| b670f13108 | |||
| c1999ebace | |||
| 061b57c9ce | |||
| 5dfcada8ac | |||
| 64b0b0bb84 | |||
| b5928b26ed | |||
| 9b1a20e049 | |||
| 099f0ffa6f | |||
| 8b59103258 | |||
| 95f048272f | |||
| 24ed86da48 | |||
| fafb45bbce | |||
| ad90228ce1 | |||
| f90a9b56cc | |||
| a9a6bc8cf4 | |||
| d87e8a3b9b | |||
| f1a6fec980 | |||
| 2319e889c6 | |||
| 63caa1d436 | |||
| 09b562836a | |||
| 1979fd0b61 | |||
| 4b1e1fba88 | |||
| bf125a8795 | |||
| 444c885785 | |||
| 8af6ec55f1 | |||
| 9f5df79973 | |||
| b870c5b0dd | |||
| 21b507dc71 | |||
| 4afce1d144 | |||
| 185171c5f5 | |||
| 94218416d2 | |||
| 5ab5ae6e68 | |||
| ac663e2f1c | |||
| f7ee13724e | |||
| d7e6438f8f | |||
| 0a6e9fb1f0 | |||
| bb53cdb68a | |||
| 8fc417b5e9 | |||
| 679184ce79 | |||
| 4403a0c63c | |||
| e902707960 | |||
| 681cad1a44 | |||
| cf6d2559ec | |||
| d0067052a8 | |||
| c7ce911edc | |||
| ef7c7f1b35 | |||
| b839a1e080 | |||
| 3280d36230 | |||
| 68a36dae39 | |||
| bbb6587495 | |||
| 511288f86d | |||
| 89342fc956 | |||
| f98476e8cf | |||
| b0cee97f26 | |||
| 78d839b94a | |||
| 75aea66d16 | |||
| fa63ace6a7 | |||
| 5520142001 | |||
| ccb075ea53 | |||
| 6a2d2632ce | |||
| 57d67b78c8 | |||
| 2aa3e9b6e1 | |||
| ce206baa88 | |||
| fb63d447f0 | |||
| 19d4a18315 | |||
| 31ab083352 | |||
| 8bee5d2a77 | |||
| 4385af9f75 | |||
| c01dfa32c3 | |||
| cf7df895a1 | |||
| fb00ffadc4 | |||
| a61f28b0de | |||
| f5ae0db8bd | |||
| 12ba529632 | |||
| bcee7753e6 | |||
| 2b913ae540 | |||
| a1e4a44069 | |||
| b36a574f3c | |||
| 15910d0954 | |||
| 5894a59d5c | |||
| 1d9b6414aa | |||
| f476b87a5d | |||
| 8f18cde853 | |||
| 6cf589429d | |||
| 743bae43c3 | |||
| 509f16865a | |||
| 72815a4915 | |||
| b4a76f1e61 | |||
| d02b5c5fdb | |||
| 9bffa67c7f | |||
| ec8093f8dc | |||
| a71df01691 | |||
| 77460ec62f | |||
| 7467eb8934 | |||
| e5cb5868a7 | |||
| e908bed1e2 | |||
| 8da53babbf | |||
| a0208228bd | |||
| 9516d35b0c | |||
| e06925e208 | |||
| 0e2dce0976 | |||
| 2729df6eca | |||
| 630f673d28 | |||
| 03bf21141d | |||
| 59898271d0 | |||
| 788ebab40c | |||
| 5dbc2c1da3 | |||
| 257c95e2b2 | |||
| 402d04d054 | |||
| ab6023371c | |||
| e64242c9a2 | |||
| a8bf2e0246 | |||
| 82fb38560e | |||
| 25edfa0542 | |||
| f8864d8b90 | |||
| 001ce8acd0 | |||
| 13cf71b2ea | |||
| ea95338e69 | |||
| 57721bacb2 | |||
| 4269d45411 | |||
| 65e03993dc | |||
| cb35c75d9c | |||
| 01cef5d7df | |||
| 0f8576f18b | |||
| fbb80afbeb | |||
| 92c7691789 | |||
| 6116646094 | |||
| 8edaa7cf50 | |||
| eccf8a560d | |||
| 8157c5d8c5 | |||
| 7675251049 | |||
| 7a3322740d | |||
| 61393dbb0e | |||
| a8896e3d1b | |||
| 7ae59e8ad2 | |||
| 7d20837ee6 | |||
| d4326ee4a7 | |||
| 4e69fcb3ec | |||
| 10b057285c | |||
| b7c2f240a1 | |||
| 0832600b45 | |||
| 2ed24851ad | |||
| 48a54c7c2a | |||
| 21072e5722 | |||
| dfeb401352 | |||
| c4626cbde6 | |||
| e53f40ab07 | |||
| bfc28665c1 | |||
| 2a8a9fc3a2 | |||
| ee18060e25 | |||
| 11e72ba9f4 | |||
| 5c3f39b1ff | |||
| 778ae30bcd | |||
| 7cc7de4199 | |||
| 99ea82e20c | |||
| 1f7c5184af | |||
| 784d978a0d | |||
| 174f784c28 | |||
| 2df014314a | |||
| 4e5739abe1 | |||
| 59c2e84aac | |||
| cb2d32ec4e | |||
| c73bbff581 | |||
| 3a764acea5 | |||
| d2fbf45f71 | |||
| 02531cb4da | |||
| 0d403f6f9a | |||
| 791cfdcd5f | |||
| 6ef863793e | |||
| 7f9ac2494e | |||
| 8f241763c1 | |||
| d1aef49c5d | |||
| ac9821b439 | |||
| d6c7f73dba | |||
| f3bfc91311 | |||
| 097da86793 | |||
| ce8f33d671 | |||
| d38bc47030 | |||
| 0d876b0367 | |||
| 1883815cc5 | |||
| 2518998099 | |||
| ebe79d1c92 | |||
| 78a122a24b | |||
| ec6f83731e | |||
| 6338a144f7 | |||
| 0b056f1615 | |||
| 1e908ee265 | |||
| e78f5655ef | |||
| aa6c2acdff | |||
| 4750d5cb15 | |||
| f1fa93e068 | |||
| ea474c9705 | |||
| 021fd6ca32 | |||
| 131491e8ac | |||
| 91ecbb8719 | |||
| 1dd0af0aca | |||
| c72865e791 | |||
| 4570ab6023 | |||
| 31e2d8b49b | |||
| fccda46404 | |||
| 677d3493d4 | |||
| 9572d20bcb | |||
| 53a28e0cba | |||
| 5400aa5db3 | |||
| f55c9f792d | |||
| 24dadde724 | |||
| 9ee5d24d4b | |||
| d8a56af3da | |||
| f5c7f79db7 | |||
| ed831f5e6c | |||
| b7d2220198 | |||
| 3b1a612502 | |||
| 1c2865b1f5 | |||
| da1d3c47b6 | |||
| c1b6d2de4d | |||
| b9b34c9bae | |||
| 5bd61be8a6 | |||
| e24ac8c25f | |||
| cbb204cf37 | |||
| 5c3998f7ac | |||
| e8e20936e0 | |||
| 8a369831dc | |||
| bdc3f51807 | |||
| 00cf228d4e | |||
| 588dac2776 | |||
| e732cf1db3 | |||
| 27475ae7f8 | |||
| 5775310ea8 | |||
| b27deb794f | |||
| c57f3ae4cd | |||
| ca98796799 | |||
| 8c6903b552 | |||
| 12f0318b5c | |||
| 86b8b208ef | |||
| f3535a6456 | |||
| 49e42c56b3 | |||
| 6994aa94d0 | |||
| 3036fbd107 | |||
| 711979985e | |||
| 9b2e6eee39 | |||
| f4d184eb41 | |||
| 889394c7f3 | |||
| 8d3cd5bb85 | |||
| 3b0b01f5f0 | |||
| f0aba80b81 | |||
| 3b7bd5c4b8 | |||
| 54934084cb | |||
| 4174161a66 | |||
| bb9bd717c4 | |||
| 814b4abddd | |||
| 23e313d5e0 | |||
| 9335935c05 | |||
| 9b1f65b824 | |||
| c7666a4ee0 | |||
| b1c5e51b86 | |||
| 15f7626ed2 | |||
| d8fd60c76f | |||
| 0944f09a1f | |||
| 6d1075f03d | |||
| d912b27723 | |||
| aae939286a | |||
| 8ff3aa697c | |||
| 2c04b71cc2 | |||
| f9d1070da7 | |||
| 5046d3bbf4 | |||
| b9afd575f6 | |||
| ea963c581c | |||
| 81597000a4 | |||
| 2867d4b347 | |||
| 8c95ed33a5 | |||
| 03bd609d52 | |||
| f1ed9d0b18 | |||
| 1daceab8ee | |||
| 89a569da5a | |||
| ae823ccb10 | |||
| c8a25fb409 | |||
| 44f50623e7 | |||
| 01dba2a574 | |||
| 5524796509 | |||
| 280555ea44 | |||
| 063a9406e9 | |||
| b64ba23863 | |||
| 9eecf4fec3 | |||
| a465b313bc | |||
| c11051f6a8 | |||
| e9448ccf87 | |||
| 8eeb921ef3 | |||
| 466ba3741c | |||
| fa6f3d523e | |||
| 9069749c44 | |||
| 698b50fd7d | |||
| 92ae3fe576 | |||
| 78391bf68f | |||
| 04a69c0d64 | |||
| e9d0574f88 | |||
| 7d4610d13d | |||
| 1fa440feaa | |||
| c29da607f6 | |||
| a36a6cccf0 | |||
| 7f45cf4ee8 | |||
| 1d330d222c | |||
| 75669c545a | |||
| b3f08bdfeb | |||
| c29e7a0e85 | |||
| 8c5f6f22dc | |||
| 22e58c9a4e | |||
| 4640b135a1 | |||
| 0d04423ca9 | |||
| ad5d6d503a | |||
| af0d90d23c | |||
| 183d18e4fd | |||
| 7cda9a03d9 | |||
| d84d6fb387 | |||
| 43132e9045 | |||
| 6d820a5e74 | |||
| 1df764065e | |||
| 8836b924d7 | |||
| 84ad8d4d91 | |||
| 19a182c7be | |||
| 9e7d46e5d1 | |||
| 7d5ab8adc0 | |||
| f003cfdea6 | |||
| 46c0336375 | |||
| df71854921 | |||
| f11e087838 | |||
| 233db814ea | |||
| 43682e0be3 | |||
| f2fd54744b | |||
| e2909848ec | |||
| a2e2f8ba55 | |||
| 841e736cf9 | |||
| 832560d8dc | |||
| 32e7ca8fd7 | |||
| c23466d98d | |||
| 9572cd7f0a | |||
| a89a158b2f | |||
| 511cdc1227 | |||
| fbcb9a102e | |||
| 2214c67706 | |||
| 207e0b791d | |||
| 090c3d246c | |||
| d111e24a7b | |||
| 2ffe5007c1 | |||
| 3fb99d39b3 | |||
| a09c879f8d | |||
| 6bf6975e1d | |||
| 929f4c2468 | |||
| 6ef2571f17 | |||
| 82a6fbbe6d | |||
| 3028fe28a3 | |||
| 6b81f958fd | |||
| 14f535cea8 | |||
| e7f186e12a | |||
| 2a90f82f3a | |||
| c54780e088 | |||
| 97eb86d6d9 | |||
| 60ad4487ac | |||
| 9f6e618ee4 | |||
| 236cc0b59f | |||
| 387cb05892 | |||
| fb5db21898 | |||
| c91b8f1031 | |||
| 6b390c0191 | |||
| 087fb97c0b | |||
| 5322748f51 | |||
| 156166b3dc | |||
| ae9c90a25e | |||
| 649c4bc725 | |||
| 402d6779e8 | |||
| 29b191ff05 | |||
| 932bf79fbe | |||
| 703d775e99 | |||
| 588b447ab2 | |||
| 4f8cca62fe | |||
| d5546516fd | |||
| 98b44c7a76 | |||
| 22d1af00ef | |||
| 81e21925b2 | |||
| 9fe1b7fb46 | |||
| 0efbf3484b | |||
| 1fdd09aa4f | |||
| b2fa99872a | |||
| b29df78420 | |||
| 4d9ffbbfff | |||
| 5b8458591d | |||
| 19eeb87c9a | |||
| 9efd8aaf2d | |||
| 53f5d4aa89 | |||
| 72df151885 | |||
| 289ccaf00d | |||
| 754731e2b9 | |||
| b6dd3bb5d8 | |||
| e48c9045e7 | |||
| 077a368386 | |||
| 96be374566 | |||
| 164fe5fdb0 | |||
| 612eb11ed3 | |||
| eac73269de | |||
| 12e6c4b7e1 | |||
| 90dee6d775 | |||
| 425feb7909 | |||
| 28088c3a0b | |||
| 1e3b96e1c3 | |||
| 3b5ac939ce | |||
| 6ba03d3fd6 | |||
| a45c39b5ef | |||
| 45cdda60c3 | |||
| 88a1461755 | |||
| f8d93d939f | |||
| 464b5d8c53 | |||
| 5b9148aab8 | |||
| 4629de77f9 | |||
| cb785c3fd5 | |||
| 48b6f77901 | |||
| c4a7ba3ad9 | |||
| f33b715177 | |||
| ccd040599e | |||
| 54f1cae1aa | |||
| d07d61d050 | |||
| 7dc6a7c64b | |||
| 5bb746b0e6 | |||
| 66c33029e6 | |||
| 03ff0ef493 | |||
| b04ecb88f7 | |||
| 5f899a6773 | |||
| 30db52f617 | |||
| 4ad0f51594 | |||
| 6891ad6174 | |||
| 609e502a4d | |||
| bb576eec63 | |||
| d84bb6890a | |||
| 42f7c9f7e1 | |||
| 2417b43439 | |||
| 037880acf0 | |||
| 6b32511e33 | |||
| 948fa59434 | |||
| b4d645e380 | |||
| ef1b55d760 | |||
| b1fdb7be39 | |||
| c25e5d31f0 | |||
| 257b49ff3a | |||
| 44300d9a8c | |||
| f285009182 | |||
| 5cc4fd64a1 | |||
| ef1ae9a562 | |||
| a56e0f9451 | |||
| 05bdff3c7f | |||
| 20dc7e5eb3 | |||
| f0742bc684 | |||
| c63c77b780 | |||
| 233cff6d0b | |||
| 06603d294b | |||
| bd87dd520a | |||
| c3cd5580be | |||
| e586fea5e6 | |||
| 464184cefa | |||
| 2a97b50917 | |||
| 894a7133c0 | |||
| bc696a05c4 | |||
| f49dd5b48e | |||
| e302c2ad62 | |||
| c98f1d2b83 | |||
| f6364a64c3 | |||
| 77cb7334bc | |||
| 60d25f62aa | |||
| 3a3c79dc7d | |||
| cb6a944795 | |||
| 24215c9383 | |||
| 7a3c77d119 | |||
| 1c86b51175 | |||
| 71279094e5 | |||
| 09e56040ab | |||
| 3a1fbb2859 | |||
| 50fe062e72 | |||
| e6e98c6f41 | |||
| 69dc800a89 | |||
| 54773f0b3c | |||
| 54663341b6 | |||
| bdb655c62e | |||
| 766820a881 | |||
| e113bafd0b | |||
| 08f3fce3d2 | |||
| 04adf358c0 | |||
| 65dcc864d8 | |||
| ad04219074 | |||
| 3fdb9236ae | |||
| d5177af212 | |||
| 4dd723affa | |||
| 1f1573c0db | |||
| 3498c5e24c | |||
| a05f3050d4 | |||
| 8f297ce5f1 | |||
| 728e5e0b88 | |||
| 16b6fe8a62 | |||
| 79706e3489 | |||
| 7291c4594b | |||
| 05516c5eff | |||
| b91a67e334 | |||
| f55091310d | |||
| bfad014ce4 | |||
| e406247ae1 | |||
| f7db1fb471 | |||
| 7b25b2e9b9 | |||
| 1ca3201ddd | |||
| 5429223c34 | |||
| ad140a9ae8 | |||
| 8b3e05d75e | |||
| 267f12b166 | |||
| 5a60e1cebe | |||
| 7c8e4475c5 | |||
| c5fb0cddb4 | |||
| 7ba45c6dc0 | |||
| 3c741ac051 | |||
| 5489a74943 | |||
| 7e75d7f61c | |||
| 0305285661 | |||
| d605c8f1af | |||
| aa4a8b4bc6 | |||
| 817ca31d28 | |||
| c1d41e3a78 | |||
| b120f1d742 | |||
| b8ab9a002e | |||
| 87dee63bf6 | |||
| a16b4a54d5 | |||
| e5497b423e | |||
| ffd88bf2a8 | |||
| 9239e92042 | |||
| a9d9e0973e | |||
| 71385f87d9 | |||
| bb90368eef | |||
| 119d7b5277 | |||
| 21e0d7949a | |||
| d4c784bd1a | |||
| d88cefbdef | |||
| 775d291fec | |||
| b9313ff1d9 | |||
| a3ae45e3f2 | |||
| 9d5951b9ae | |||
| 9e97d55129 | |||
| 8d435710df | |||
| 84a3aa0b49 | |||
| 1191c64e0e | |||
| 35b6014ea4 | |||
| dc8c19ef51 | |||
| 8435f57a83 | |||
| c995538d90 | |||
| 086f2f04e1 | |||
| 79fcc13a3a | |||
| edad2f4de7 | |||
| caaab9d49c | |||
| a4accb4a68 | |||
| b0174907b3 | |||
| a27d9183d0 | |||
| 7c3092a37f | |||
| f251262c94 | |||
| c1a7591040 | |||
| 4e59e4c8cc | |||
| 6e08fd91e9 | |||
| 8a32c2fb24 | |||
| 4d19b114f8 | |||
| 95120fe4a6 | |||
| 40afe170ce | |||
| 6abb77bbfb | |||
| bad6bca4e6 | |||
| 075c48324f | |||
| ebf3773e98 | |||
| 84945d78ae | |||
| fbf39a76ee | |||
| 11ef81ef89 | |||
| 10600fd307 | |||
| d26bc4f048 | |||
| df7be71e9a | |||
| 90a827bcd5 | |||
| 953375d0aa | |||
| 53e8d5c28a | |||
| 5ffbbc5531 | |||
| 1b363a7793 | |||
| 5dd655eb4a | |||
| a618d3db32 | |||
| c97a29aa02 | |||
| 331932ecc1 | |||
| c6f59b8144 | |||
| 52ee233378 | |||
| fab154eace | |||
| e532e9f9c3 | |||
| 0b6112fadb | |||
| ce07604bd6 | |||
| f9f24b6a36 | |||
| fc73078f54 | |||
| 909e61decb | |||
| e17f4f3598 | |||
| c6e360caf6 | |||
| 5abb96d8fc | |||
| e417aef073 | |||
| a7ec32c81d | |||
| 26d7a4ab9b | |||
| f4dda8db33 | |||
| 2dfa05fbcb | |||
| 9063ad413a | |||
| 966cce804e | |||
| 6ff68089bd | |||
| a1004924ce | |||
| 0a923be2de | |||
| a364e08d3c | |||
| 8f4d70a836 | |||
| 0b78b48d8d | |||
| 83268109c6 | |||
| d8161ea60e | |||
| 055dd39982 | |||
| dc45fe1a79 | |||
| e0b23d12eb | |||
| b1cacddac7 | |||
| 6af1212a26 | |||
| 1f02e72db9 | |||
| 8de40ac154 | |||
| 246590d6eb | |||
| 0cc8ab844b | |||
| 6e882dcbe3 | |||
| 0402ffe0e2 | |||
| 3fd958c232 | |||
| f308ea3bfb | |||
| 98e98ff57d | |||
| d6c5281889 | |||
| 62dddfe1f3 | |||
| bbfd64a25c | |||
| bd9d586f71 | |||
| 73741573ec | |||
| a58f4c9ad7 | |||
| df4bbb5add | |||
| a525764881 | |||
| c8653b2a63 | |||
| 5949b9e639 | |||
| ce54f2b44a | |||
| 30e4790085 | |||
| fc2d988ddd | |||
| 44facb7d33 | |||
| fe76a66555 | |||
| c4890fdbd5 | |||
| 86d4d2e78f | |||
| d6ae3ba92b | |||
| 9a4f0bd88d | |||
| 07e2dbcaac | |||
| b06e1c0e0d | |||
| 513acc0bdc | |||
| b92b057a40 | |||
| 4e859239aa | |||
| d961eec481 | |||
| fd3e9ce17d | |||
| bccc081971 | |||
| 42cbccfafa | |||
| 866bb6ce45 | |||
| 8aa4a2fedb | |||
| 08c18e1539 | |||
| 1eb7650e49 | |||
| aa9df2c3b6 | |||
| 200ce6212f | |||
| 8923309409 | |||
| f198e4b94e | |||
| 1e8165e8d9 | |||
| 0246043a1e | |||
| d0d0bb4408 | |||
| eae1d8c7ec | |||
| 03cac8dd87 | |||
| 7726613616 | |||
| 02b9b84cd4 | |||
| cbd0080834 | |||
| 97c686557b | |||
| 00c2c864e5 | |||
| 55b00d4652 | |||
| 30dd75bb5c | |||
| b4ff61cb52 | |||
| ec8f29c5a2 | |||
| 545aae7a38 | |||
| d8d2696f45 | |||
| 6b135cdcb2 | |||
| 164b43f91c | |||
| 1cf88bf69a | |||
| 10d72df6af | |||
| e6fc8f3d62 | |||
| 9ebfdfe27b | |||
| f31ce6e508 | |||
| 03548139dd | |||
| bb093ebfed | |||
| ddc4eab5fd | |||
| 6350d00507 | |||
| e25f8a2461 | |||
| e4eac02438 | |||
| e20f8e8253 | |||
| 5e3356cde4 | |||
| 675ec559e2 | |||
| ca4388d949 | |||
| 6a2afb1f0c | |||
| acdc106a5d | |||
| 54567db70a | |||
| e924aaccbe | |||
| 3c3dcebb27 | |||
| 4cce60842a | |||
| 78c6df9453 | |||
| b01b987cad | |||
| d86b9c2cc1 | |||
| 3f4bfaf699 | |||
| acb83704e6 | |||
| 3b7bbcab73 | |||
| 98a21e949f | |||
| 082457ace0 | |||
| 3340f4f85a | |||
| d06a6f3034 | |||
| 825b9eac0b | |||
| 850fa94c3d | |||
| dc9d32e35f | |||
| dea6affaed | |||
| 389ec654db | |||
| fa71842102 | |||
| 0ca3b19a77 | |||
| 122efa7821 | |||
| 3e854bc7cb | |||
| f4adf1fc93 | |||
| 2a66adb496 | |||
| e02ace5813 | |||
| 952c234857 | |||
| 938fdbd657 | |||
| 81ae489751 | |||
| 94b3b92f5b | |||
| 69da1537eb | |||
| b2195ee6c9 | |||
| 800b5fb003 | |||
| daa238cadb | |||
| 86576cf07c | |||
| f1d9e1d44b | |||
| 3a7f94e401 | |||
| b4f8a40c86 | |||
| 6fcc94879c | |||
| 826ad1c8bc | |||
| 6f19db5d5a | |||
| 0e8f99eddb | |||
| 352dbebc33 | |||
| ab0462af7c | |||
| 85546d37f0 | |||
| f50dd2f02d | |||
| 414ae6a299 | |||
| 782df7d83f | |||
| aa4d1cbdd5 | |||
| 131a9b810a | |||
| 04d194e673 | |||
| db349ffe62 | |||
| a56b0965d8 | |||
| 11683f9e40 | |||
| 54c4cfc614 | |||
| c5199b9298 | |||
| f558784835 | |||
| 7e3f4d69c1 | |||
| f7e2ddbe8f | |||
| 98e9cba947 | |||
| f23f16e403 | |||
| 068b2a9194 | |||
| a5d5be6a45 | |||
| 6a9ba27917 | |||
| 0e2fa5b20a | |||
| 65d433c43a | |||
| cdc94c11b9 | |||
| 808cd21b0e | |||
| 7b481439df | |||
| 106dc3dcc9 | |||
| 5611f46c37 | |||
| d943f56a40 | |||
| 6de4a958d1 | |||
| 5a9efaa85f | |||
| 4174030a71 | |||
| b0bbed2ef2 | |||
| 0b62964465 | |||
| 22929a4deb | |||
| 355bdc6e50 | |||
| e4a5b29452 | |||
| 2a8bc376a0 | |||
| 2489cc306b | |||
| c83a90ab1d | |||
| 8cd4b59552 | |||
| ca87d36cee | |||
| 310ae4bc60 | |||
| 64a7b16082 | |||
| a90ca9c56d | |||
| 1420001d49 | |||
| 045afed74c | |||
| 927b604cdd | |||
| 919c8737f7 | |||
| cdbf7bb267 | |||
| 78a10967e8 | |||
| b800fa27fb | |||
| 1c04813b21 | |||
| 5396ae43a1 | |||
| f4da1ab3fe | |||
| e4d69b8437 | |||
| 9d507b0e9a | |||
| b9dbc05bb9 | |||
| d10619b1f3 | |||
| 252014f1ae | |||
| 83f89058b3 | |||
| 476de24fc8 | |||
| 98e2cb8568 | |||
| 97242506f4 | |||
| fde197f7da | |||
| afbc15fbcf | |||
| 133a5a8c76 | |||
| aa08660ca6 | |||
| 93cce0fcf8 | |||
| 3addbbf9d2 | |||
| 5598d4ff9c | |||
| b67c185d9b | |||
| 0a4bb0af8b | |||
| 0077e555f9 | |||
| 0c90ed0599 | |||
| 8bca8e664c | |||
| eff0947326 | |||
| 936f75be9f | |||
| ab4ce0e927 | |||
| 676f08c75e | |||
| 77e320dcb2 | |||
| 830dd12714 | |||
| f9be934b08 | |||
| 2e604a4f07 | |||
| f879a89888 | |||
| 95b856747b | |||
| 559e6d81d0 | |||
| 4158169dab | |||
| a77456cb59 | |||
| 03fb91d5fc | |||
| f83b30cea3 | |||
| 6b7aa8c6bc | |||
| 80bc93d417 | |||
| 2695658d6f | |||
| f31957e1ec | |||
| 9d4bc9b878 | |||
| a337b0b998 | |||
| 896854c287 | |||
| 88eeb27a77 | |||
| 95ab55ef04 | |||
| dff1bad5e9 | |||
| 99f8cdd744 | |||
| f6a741d59e | |||
| 5f787403a4 | |||
| 94c074160b | |||
| c47ea7e92b | |||
| aa0dedf451 | |||
| 31247a372d | |||
| df6386d8b4 | |||
| 88727b02b9 | |||
| 32517838ee | |||
| 9cce5abd43 | |||
| d0b0b7ddf6 | |||
| a787d97d30 | |||
| a8ac2c7c0d | |||
| 2e6b9f7b02 | |||
| ae0343280b | |||
| 390dd299cc | |||
| 0f054876a5 | |||
| b38815b2de | |||
| 840029ff6f | |||
| b875ef182f | |||
| ffc12da530 | |||
| 025f7447ae | |||
| e36ac33d40 | |||
| 084b01745e | |||
| 1a18fe502b | |||
| 1c8dcefe26 | |||
| 1438d5a295 | |||
| 2a9f18d650 | |||
| c8f4110c14 | |||
| 566dafa44e | |||
| 452c9b0ecd | |||
| d5a16d33bb | |||
| add79241ab | |||
| 87d62b689a | |||
| a851baff1b | |||
| c608bb5c1c | |||
| 894652095b | |||
| 0436105f74 | |||
| d32d39f010 | |||
| cf07bf47de | |||
| d6ef47bfa7 | |||
| 02d02eef3b | |||
| ed03f6703a | |||
| f164ed896f | |||
| a0baff6811 | |||
| a4184d240f | |||
| 48aca87c69 | |||
| c578c0d679 | |||
| 697ec0044a | |||
| 3820732100 | |||
| 3602445e0b | |||
| 424ed2721f | |||
| a5d6050dae | |||
| a10482161f | |||
| 495d31816a | |||
| 0eef38749e | |||
| 38554f9658 | |||
| d85316bcbc | |||
| 5eae6e35e8 | |||
| 23f8ff32cd | |||
| 6a93524a11 | |||
| 255e68c791 | |||
| c55c24e2fb | |||
| 98951ce469 | |||
| c8d99c905b | |||
| 61732e6488 | |||
| db7e5c1d7d | |||
| ad2393d7c1 | |||
| f327575c89 | |||
| b0cb3ec9cc | |||
| 878e2b3a93 | |||
| b74f9d2d09 | |||
| ad1e766cf6 | |||
| e33226382a | |||
| 0e824c1c98 | |||
| 20e60a08d3 | |||
| 4df8f89724 | |||
| 5fe1cb84a7 | |||
| c6178c8c75 | |||
| c430009c22 | |||
| 97a10cbc50 | |||
| 3986e99d12 | |||
| 9e4332326e | |||
| c9ae74c5ae | |||
| c0e1888702 | |||
| 428787ed19 | |||
| 6d407152af | |||
| 420f5331c0 | |||
| a183b85d1c | |||
| 517e4d0a26 | |||
| 5c54ec7dbc | |||
| 67f428f516 | |||
| 6118a98204 | |||
| f1faa909ef | |||
| e63425fd7d | |||
| da24022e96 | |||
| d7bab64c62 | |||
| a6dce15159 | |||
| 1ea608e5f8 | |||
| 1ccc83dfa7 | |||
| 40ef38776f | |||
| bae5a8404d | |||
| 5ab598e869 | |||
| 4ccdca6449 | |||
| e7b8433707 | |||
| ab96ad877c | |||
| 04c6ab0950 | |||
| 03b969772e | |||
| a08e0d3269 | |||
| d0e503db0b | |||
| a786e13e18 | |||
| 749394e88b | |||
| 805f378eef | |||
| 5fbe0db744 | |||
| 715cda936b | |||
| 022740b19f | |||
| 8726334b62 | |||
| 388568b7e4 | |||
| f519cf3f84 | |||
| 7d2dc0099a | |||
| 57cd89ce3a | |||
| 349303dfb9 | |||
| 1fc58b7d5b | |||
| bb5758b37e | |||
| 31bb065ec5 | |||
| fd91f39a42 | |||
| c781e582b9 | |||
| 915874bb51 | |||
| f2469475f9 | |||
| 9ffd7b3fee | |||
| 7d294cc4c0 | |||
| c927f0d560 | |||
| 2cd02f376b | |||
| e325245baa | |||
| eba4aca70d | |||
| 85eafb834a | |||
| 6dca34c454 | |||
| c5ba9c73b1 | |||
| abe8c9c2da | |||
| 7e3d2f3663 | |||
| 9581195e02 | |||
| 68e8187543 | |||
| 7a1c75a3f5 | |||
| 19b0b4bf40 | |||
| f9ceb7d9f2 | |||
| fd1de3308f | |||
| 186501c15d | |||
| 390d5b6eb4 | |||
| d999a4f047 | |||
| 86706fc634 | |||
| 5cd941a5d9 | |||
| eeb1866bc5 | |||
| faa5bcf7fb | |||
| 18db6acfcb | |||
| e5e55cb1a1 | |||
| f65c933125 | |||
| d55e1dc0b3 | |||
| 6af570b76c | |||
| c1a2b0062b | |||
| 927989d487 | |||
| cc293a3e70 | |||
| 9e55df25f9 | |||
| bdc68ee041 | |||
| 162e2a93bf | |||
| e5f60e94ea | |||
| 122e4a6f27 | |||
| 1de4027d7b | |||
| 0fd7910fe7 | |||
| c3b1a2bc92 | |||
| bb4fa35d3d | |||
| 271fb455ff | |||
| c0d7b61852 | |||
| 1e6a3372cf | |||
| 1ac0c319b8 | |||
| ca4361e104 | |||
| 7a85e32a7b | |||
| 538461bac6 | |||
| 89117ef5a3 | |||
| 7806181d76 | |||
| 46180dacb7 | |||
| 77da7d10e6 | |||
| d18d44021b | |||
| 449674ab8b | |||
| 699210d78b | |||
| 694d6e82a7 | |||
| 5b80d7974d | |||
| c94d1d527b | |||
| 1fb9dc57e5 | |||
| 4868e92ee7 | |||
| c74c5e00df | |||
| 9f6ffb391e | |||
| 502f5890a4 | |||
| 63b6b3b1c8 | |||
| 5bb05b2a6e | |||
| 442ea02115 | |||
| 2a88a7c6c5 | |||
| ba0c8a8f20 | |||
| 6698a25ac3 | |||
| 313e6d02c5 | |||
| b57db196b9 | |||
| 0748ecc03e | |||
| b31ac22c10 | |||
| 68516af15d | |||
| 4ea1985d85 | |||
| 087c9e60d4 | |||
| 8b8f9a8759 | |||
| b8b3b4fba6 | |||
| bbf072cde7 | |||
| f24b7adfdc | |||
| e3e940186d | |||
| 7a96037660 | |||
| f109e104fa | |||
| 3efef987a5 | |||
| 6c89f3cf8c | |||
| 25b88d6ea9 | |||
| fad6bfaa3a | |||
| 06050949c0 | |||
| fa15f1212d | |||
| b885c77568 | |||
| 21645e3713 | |||
| 82c427deb8 | |||
| e7772b52b8 | |||
| 3bb9578403 | |||
| fd6a5bbb7f | |||
| 97c2258ba5 | |||
| 61018e84ae | |||
| 8b7d0a686b | |||
| c7473dca49 | |||
| 4eb975917d | |||
| 513a25199b | |||
| 0a7baaf1de | |||
| 41395fa1b8 | |||
| c4405eb709 | |||
| 1fb8596b15 | |||
| c7b82f1707 | |||
| 77eb0f8073 | |||
| f58d341b26 | |||
| 93b1b07112 | |||
| 18915ad2cb | |||
| 08f4bfff87 | |||
| 9fb37b2b1b | |||
| 72adbe7742 | |||
| 69e6ffd09d | |||
| ef5cc2dd3a | |||
| 25910588b5 | |||
| 5cf7ce3db4 | |||
| 6b59fcc466 | |||
| f2a79ec958 | |||
| 863d329ddf | |||
| 60d6b5d000 | |||
| c94400da56 | |||
| 61910c44c5 | |||
| a43dc371e5 | |||
| f97ba2f637 | |||
| 3ea3eafd26 | |||
| 614809e1bf | |||
| 73207b0ceb | |||
| 649b8469ac | |||
| 4adda44fef | |||
| 46f516246c | |||
| df628ea0f5 | |||
| cd35c08f7c | |||
| 708e3ecdf0 | |||
| 6168489e6d | |||
| 261cb3cebd | |||
| b5dd65820d | |||
| f3426b07a4 | |||
| b3e2dfca14 | |||
| 9397c5b87e | |||
| 69f33598bc | |||
| 87d257c26a | |||
| 4a7a732e92 | |||
| a9552ce42d | |||
| 0676dd1583 | |||
| 9fd3cce197 | |||
| 3d62777525 | |||
| 813d181553 | |||
| 32af47f8d9 | |||
| e68a925401 | |||
| e9ebf4e934 | |||
| 54f92689a5 | |||
| 9838755e6c | |||
| d242babb20 | |||
| 9814d78e94 | |||
| 6bf33eadbc | |||
| 140d196b1e | |||
| 7ab53ff921 | |||
| 568871672f | |||
| 4a18409df0 | |||
| 84ea485bc3 | |||
| ff49e962dc | |||
| c6dc16f920 | |||
| 8ecd43904e | |||
| ba6d4eeea1 | |||
| f8cf96279a | |||
| 1ec2108354 | |||
| 25dfd92c9d | |||
| f2a76c41c7 | |||
| 926b571c2c | |||
| b8430e585c | |||
| afd4f31b8f | |||
| 4f7aaafa87 | |||
| 770c6ecffb | |||
| 193d2605ea | |||
| e589282035 | |||
| 012cb3b94c | |||
| ae535bbe9e | |||
| 6239d66799 | |||
| 42fdc5701f | |||
| 2d4e3f5788 | |||
| 11926b7f82 | |||
| a5eb4cb9e6 | |||
| 4364d1ac56 | |||
| 123d406323 | |||
| e178f7c0ba | |||
| 4e7031a797 | |||
| 3cb7f482b6 | |||
| e021384442 | |||
| 7b1e178c34 | |||
| c421b45a06 | |||
| 34bc26abd5 | |||
| 817df572b0 | |||
| 937581bb38 | |||
| 1a2ab80401 | |||
| cfe1710ec2 | |||
| 437044ded6 | |||
| c4f3990131 | |||
| fc071d3867 | |||
| d296777981 | |||
| 3db6e46432 | |||
| 151a782f60 | |||
| 0eb31cc5a9 | |||
| b5f55c0fdd | |||
| 3737e7e598 | |||
| 82828454f3 | |||
| a8fc6bd42d | |||
| 21bf1d5b10 | |||
| 28059b1170 | |||
| ffc753fba4 | |||
| aa473e5682 | |||
| be721da5c9 | |||
| cafe45fc6b | |||
| 82992fd41d | |||
| 01a16b018f | |||
| 481f20a0dc | |||
| 7143df78e4 | |||
| c23735efd0 | |||
| 18b324e56c | |||
| 15da86357f | |||
| b0dc9df96c | |||
| 60b6616107 | |||
| c8ede1e767 | |||
| 3d29a32cc7 | |||
| bfaf59ef2e | |||
| 994a69f193 | |||
| c099a9f462 | |||
| b065d4bf7f | |||
| cd68b80322 | |||
| 4b5abae20d | |||
| 948491c29a | |||
| 3f74017743 | |||
| 9deeae0154 | |||
| c98ab1a06d | |||
| 2fa378ca42 | |||
| 7a129cc279 | |||
| 1913275f1f | |||
| 24f3637f10 | |||
| 4775b48cce | |||
| 7b52c3556e | |||
| b50636bc99 | |||
| 3d7740b8c6 | |||
| b506f30b04 | |||
| 56f5bbe4ab | |||
| bff825b9ad | |||
| e7dc6cc4fe | |||
| 3cf22730a6 | |||
| faf6844954 | |||
| 2246d49839 | |||
| bfde797a37 | |||
| b8fbddb410 | |||
| e11d5fecee | |||
| e3e3ff3bc0 | |||
| 44ce47059b | |||
| 5d320c5d18 | |||
| 30eb6a8c2d | |||
| e42dce7c37 | |||
| 0d6e9215fe | |||
| c249f82571 | |||
| 8f8b57bd3e | |||
| b7943a383c | |||
| 426e367629 | |||
| 0d57d3d8a8 | |||
| 4dd6545446 | |||
| 5e75059d97 | |||
| f86a0b7881 | |||
| f13eb21ab1 | |||
| 3df81cd81b | |||
| 9bd143f8bd | |||
| 02f2886136 | |||
| 9c6eea854f | |||
| 64c705db3f | |||
| 82dda3af74 | |||
| aceb6b3c69 | |||
| f466b88bca | |||
| a0c5ef35e1 | |||
| 20422e1b5e | |||
| fbaf4db7f6 | |||
| c54b37072f | |||
| 02f7017c73 | |||
| cfae3bb270 | |||
| f1b42972a4 | |||
| 2435ff5c4c | |||
| 734069d81c | |||
| 104828b73a | |||
| 47053cf66e | |||
| 0ac92866ce | |||
| dc3586715b | |||
| 67bd0a297d | |||
| 49745b352f | |||
| 35d079299f | |||
| 30e9d25160 | |||
| fd06027101 | |||
| bd5f801c56 | |||
| 4b964b4d5f | |||
| 923709da5e | |||
| 9cdfb14c14 | |||
| 6efbba1096 | |||
| be0d967169 | |||
| 0092484cdd | |||
| c4c3f36958 | |||
| c897f17645 | |||
| 76d683637a | |||
| 2d88a9544c | |||
| 0a745e2aff | |||
| 9298f0a3f1 | |||
| 1088a5c1a7 | |||
| 89d85670b4 | |||
| 7548601609 | |||
| b4fb0d2e7d | |||
| b93a2e7a55 | |||
| 6794038616 | |||
| 60054a6d88 | |||
| 71531075f5 | |||
| 26fcb0017d | |||
| dcc1fb0e87 | |||
| 624e6da5d9 | |||
| a7c2f56b41 | |||
| d3677adb11 | |||
| 722cc242af | |||
| f6bbb3aeb5 | |||
| c466aa444d | |||
| 43dc45bf0d | |||
| e0ae9a2fe5 | |||
| c513f28f73 | |||
| 21891e0a06 | |||
| 5688718357 | |||
| f0277b0d80 | |||
| 44905bd21f | |||
| bf52ef33ab | |||
| ea05231ed8 | |||
| 4ca7682dc9 | |||
| 52efa478d9 | |||
| b943b4966a | |||
| a04636286a | |||
| fe5b11eebc | |||
| f18d30a686 | |||
| 419d4c1b9c | |||
| bab6e1a9f3 | |||
| d12ca16853 | |||
| 14df7a4140 | |||
| 384604693f | |||
| 56b63203ef | |||
| 7d0d2782e7 | |||
| c4291f1e3f | |||
| 5a712b3c5d | |||
| 0288963049 | |||
| ea576f02f5 | |||
| b776c84e1f | |||
| a6a2347fce | |||
| 7b217e59f8 | |||
| a205ad7b39 | |||
| a629034684 | |||
| 6d739580a5 | |||
| 5a03f46f2e | |||
| e95c5a29c6 | |||
| ba1dd186ea | |||
| 11a34fdecc | |||
| f2f8cef9c9 | |||
| 5aaf215d41 | |||
| c114249025 | |||
| a0ba72b82d | |||
| 16ba68a927 | |||
| d4297f2350 | |||
| db46715da4 | |||
| 9ac37bf231 | |||
| 6ecc368c37 | |||
| 14d8523cfa | |||
| 3a6f10f2d8 | |||
| 0420aa390a | |||
| da0e13c63e | |||
| 42cd589ebe | |||
| 30962cab87 | |||
| f03715c1fc | |||
| 271393fc83 | |||
| 00a2db666b | |||
| 07fc1b289b | |||
| 703d51c2f9 | |||
| e818b5b3f0 | |||
| 98beed252f | |||
| 1a2155f576 | |||
| 4ce6751337 | |||
| 8ad9c2882f | |||
| 664e3cdc79 | |||
| 7353c52c7c | |||
| c189d8b0bf | |||
| 6218fc08f4 | |||
| 8e1ef49717 | |||
| 90d5ee811d | |||
| a9a4f1375c | |||
| d5cafbda4b | |||
| 1e3c74a18c | |||
| 6f6cd3f037 | |||
| bb7ee50c4f | |||
| 036bfc43ef | |||
| 18fa0a04c1 | |||
| 75ccfc3911 | |||
| f5aaab6df8 | |||
| 410e1c36d5 | |||
| 623595107d | |||
| ef6173de4f | |||
| 3628c05a25 | |||
| f2cd580ed9 | |||
| 9d36aac32e | |||
| 0d7b83a84d | |||
| ebd113f0da | |||
| cdedb83cd3 | |||
| 9995bc52f6 | |||
| c292798dc5 | |||
| 0ce29f807e | |||
| fee1c9222e | |||
| ef9ca34f88 | |||
| 554a11b065 | |||
| c261b596a8 | |||
| 3f84cce59c | |||
| 1283192e97 | |||
| dc9934cd13 | |||
| 5129bf4018 | |||
| ba485c6a5c | |||
| f71149edb6 | |||
| 3d4e5111f2 | |||
| a297eb291f | |||
| 7461657681 | |||
| 15c4015af4 | |||
| b693ef0610 | |||
| 2f08c883c5 | |||
| 75849bfa18 | |||
| 810e926376 | |||
| fee9624574 | |||
| 98fb94dcae | |||
| cbd12817d3 | |||
| 99cfd11c9b | |||
| d14218c5df | |||
| f71a9727b9 | |||
| 801bd0c59c | |||
| bbce431cc5 | |||
| 95dc99f972 | |||
| 01022e36e0 | |||
| c608f054ae | |||
| 2251961d6b | |||
| 4551c47e97 | |||
| bd8ef24a40 | |||
| ae5deafef2 | |||
| 7501a55691 | |||
| 23812d0818 | |||
| be4e757441 | |||
| ec4a4b7943 | |||
| 25da47be10 | |||
| 72fbaf43fa | |||
| ea3476dd40 | |||
| 1c823e6dcc | |||
| 221f6abc37 | |||
| 93fad0ac07 | |||
| 7c811fdc4c | |||
| 0e3dfa8ca4 | |||
| 398a454891 | |||
| 0e845fcddb | |||
| 3083431bbd | |||
| e0dcd187d4 | |||
| 0010b2c117 | |||
| 283ac8537f | |||
| 022d6e8e60 | |||
| e1ab5850b3 | |||
| 51ef4cfd06 | |||
| 2ab2c32d65 | |||
| 10cf89d3ff | |||
| 215b4ad200 | |||
| ce231659af | |||
| d9a2347860 | |||
| b458a2c4e3 | |||
| adcd0c4430 | |||
| 8df95d1f1d | |||
| 81a3c54b84 | |||
| aa5e7fa6b3 | |||
| 645d527c8f | |||
| 844d1b2c26 | |||
| 2ee2feb9d8 | |||
| 7e0265e0b6 | |||
| e4896d675b | |||
| 1834c0f5bd | |||
| 13ce20eca0 | |||
| 45c01c3dee | |||
| b2054e23ed | |||
| aa0b70ddfc | |||
| d04920ef87 | |||
| fea0be65ed | |||
| d5a0b24c36 | |||
| 0364b3b2fe | |||
| 14c8c39ac9 | |||
| 3429731ca5 | |||
| 626f3c11e8 | |||
| 2fe72d25ed | |||
| 445dbe9f49 | |||
| 9eec11712d | |||
| 5bd96a3386 | |||
| 5daa0bbdd6 | |||
| 637ecb9dd9 | |||
| eb883d1769 | |||
| 1bcbabb382 | |||
| 3815d46024 | |||
| ebdc9aa4ee | |||
| 0c0696af60 | |||
| a33f6d61cd | |||
| 2997a30879 | |||
| 137acfaf1f | |||
| cb27a7b95f | |||
| 5490f98d21 | |||
| 480e74abeb | |||
| ae65c1d2bf | |||
| 9eed69f577 | |||
| 7b142c2b68 | |||
| d201a9454b | |||
| 2bea440c19 | |||
| 75e87b00db | |||
| 74537013ba | |||
| 241f24458d | |||
| 958803ec9d | |||
| 4d2d41db75 | |||
| a4dcfed049 | |||
| 6f52d32ac4 | |||
| c3a5f1a006 | |||
| 7c6918ebf2 | |||
| 50c871f542 | |||
| 3a3f522333 | |||
| 0252718c1b | |||
| d72403a1db | |||
| c8ad8d950a | |||
| 9d1d086853 | |||
| b73a4883f1 | |||
| 6e5818379a | |||
| ed233de855 | |||
| 5782564a9c | |||
| b94e23797a | |||
| 80a1989e59 | |||
| a97c856971 | |||
| d2a481d098 | |||
| f4f326c4b7 | |||
| fd020faa3e | |||
| e5fb7d4e38 | |||
| 9bfd867269 | |||
| 1dcbd6659b | |||
| d67d12392e | |||
| 568aae13c9 | |||
| 97aaf444f5 | |||
| bd78f71dad | |||
| 1b366c65d4 | |||
| 9998fdcb43 | |||
| 471aa55dd0 | |||
| ae535d8186 | |||
| 7666a3cdbf | |||
| c80d91c8a1 | |||
| 78ec4e0d30 | |||
| 016d1f997a | |||
| 6e7b79fdeb | |||
| d39a8aa604 | |||
| 89178b64d5 | |||
| 703cceef12 | |||
| 15c4cdf708 | |||
| e486ba0637 | |||
| 0850bdbe4d | |||
| 9978295086 | |||
| fee79d65ad | |||
| 3270107898 | |||
| a324e9e599 | |||
| 1ed394cb9d | |||
| 91cee4f106 | |||
| 47f74b1856 | |||
| e1541f9b1f | |||
| 190e722beb | |||
| 2dc640e01d | |||
| 4ebd17edcd | |||
| 80bf4c4c4a | |||
| 5da79dfb2a | |||
| e30bcf7fd6 | |||
| b934aabd5a | |||
| 8245959ce7 | |||
| 6e9bf5b0f5 | |||
| f77cc1a612 | |||
| 22221e0d60 | |||
| 9812e151ec | |||
| f84a375dd0 | |||
| 454a5223d1 | |||
| a70eeba13b | |||
| 08bdc5ad52 | |||
| 61ee343d6d | |||
| 651b553e71 | |||
| f511e27d9b | |||
| 8a652042df | |||
| cb76a91459 | |||
| 2d59a802df | |||
| 9d85375147 | |||
| 9397b177d2 | |||
| 6527e2c975 | |||
| 760d765df7 | |||
| cc71c3ce4f | |||
| dfe2ce2962 | |||
| bea95ad00a | |||
| 71894fe5ca | |||
| 6f29d2860b | |||
| 6f444ba619 | |||
| 39d158ec8e | |||
| 6a8b563913 | |||
| dfd7a166d6 | |||
| c510497bad | |||
| ca79f7f283 | |||
| 49bb9cee36 | |||
| 1c8bfbf29e | |||
| b32ddac421 | |||
| a30605dcd2 | |||
| 6667b19783 | |||
| fd5a7a7c1c | |||
| 07d3b423ca | |||
| bb63b6c81f | |||
| 69cc8347f5 | |||
| 37558df397 | |||
| 8893d6cfdc | |||
| 57be1f65d9 | |||
| 9556585673 | |||
| afab92b363 | |||
| af9cbba2ea | |||
| d97d808b17 | |||
| 2c4b9affbf | |||
| e98d1b393e | |||
| f7834764e7 | |||
| 2731e08df1 | |||
| 50b188065d | |||
| 63436dabfb | |||
| efa5dc3daf | |||
| 512288b278 | |||
| fce470d962 | |||
| dfc73cd34a | |||
| 7b391ca490 | |||
| fbf9df7f79 | |||
| 7b1e58fa9c | |||
| d9fa7e2537 | |||
| 602fa3428b | |||
| 909627e727 | |||
| 8a48855ea3 | |||
| b5fa257f4f | |||
| a87f6bb8f5 | |||
| d188403cfa | |||
| 428c3b8fa5 | |||
| d554244f7a | |||
| 89f5d03157 | |||
| f2eee91b96 | |||
| ef018e04ac | |||
| 17dfbace69 | |||
| 47a82ccdfd | |||
| 3260104cec | |||
| 55b03c5d49 | |||
| 8923812510 | |||
| 85c5ec8584 | |||
| 76bedea1c4 | |||
| 81dbcc158a | |||
| 0da1471c7b | |||
| 5e83fd52de | |||
| aa560dba25 | |||
| 0ac623bb7e | |||
| 5d893a6e90 | |||
| d1abc541f9 | |||
| 59fae51d21 | |||
| 06c2a6f4fa | |||
| d25ca3eba6 | |||
| 8dc8ee7141 | |||
| 3886289bd8 | |||
| fe7f24cd55 | |||
| 6f4907a5f7 | |||
| a392db1db5 | |||
| 1bd5c2236d | |||
| bed7c1aeff | |||
| 1b529b6d94 | |||
| 52f0149256 | |||
| f86f24b3c5 | |||
| da7ec84d88 | |||
| c99a52a8c1 | |||
| 4f1bee19ee | |||
| 10ef01267a | |||
| 1fb134d644 | |||
| 6d240eb354 | |||
| 9d916645b5 | |||
| c0c03abb45 | |||
| 2723adcd6c | |||
| 62ef9b4812 | |||
| 52fedf0c0b | |||
| 47dd81a07f | |||
| 68f763abe3 | |||
| b92b89d646 | |||
| 9cbe4881c3 | |||
| d2e7e117eb | |||
| 841372cd8b | |||
| af9679f3ab | |||
| 3924aecfcd | |||
| ad2b13c0f1 | |||
| a9366d5b1a | |||
| 1dd702ed0c | |||
| 4433c57de2 | |||
| fefb9189d5 | |||
| 8e5fde4bfa | |||
| e1b226c562 | |||
| 41e8785f62 | |||
| 9e3182e16a | |||
| 2b00e4d6ad | |||
| b9061abd12 | |||
| da80f046ef | |||
| d7ccd77fc6 | |||
| 34f0157abd | |||
| 3acf0a6f6c | |||
| dc10380933 | |||
| be82a6a9b0 | |||
| ee1b2235b1 | |||
| aab2fb78af | |||
| ec2c5a0f1b | |||
| af4af57d49 | |||
| f376e1d15c | |||
| 88fa289014 | |||
| d1c154f410 | |||
| 2a73b6852c | |||
| f4d66acac1 | |||
| f0bea3ce06 | |||
| 084be9380b | |||
| ea11b1e6ed | |||
| 92aa4da107 | |||
| a7c9cc85f6 | |||
| ba01690d33 | |||
| 384177af05 | |||
| 92b47212c8 | |||
| 152600e8f2 | |||
| f10c918b2a | |||
| f4c0a6974c | |||
| ea28f8d7c0 | |||
| c5a4a0cbdb | |||
| 1ef65ad182 | |||
| d3e8e10438 | |||
| a0e8f9884d | |||
| 6f107ab67b | |||
| c920246777 | |||
| e24ddfef6f | |||
| d63cc4b143 | |||
| bb5bb450b8 | |||
| c91ad581e1 | |||
| 867fd068f5 | |||
| 72481dc43e | |||
| 8b44472ba7 | |||
| 7f3c93802f | |||
| 765099ca48 | |||
| 7c88459a29 | |||
| baa5608ec8 | |||
| 2f9aa44d96 | |||
| 2b1307db3e | |||
| df53024556 | |||
| 2b9f6038f7 | |||
| 5adb96543f | |||
| 96baa6720e | |||
| e58d33d65d | |||
| f8869d0981 | |||
| 6c371b4a2a | |||
| 33be897a08 | |||
| a4be1f9a88 | |||
| 339ca80ffc | |||
| 69ca7cc44c | |||
| 6f0f1e00b1 | |||
| fe5ee05388 | |||
| 2763e05105 | |||
| 02941956ec | |||
| c8a4cb8794 | |||
| 0ef9084d4c | |||
| c66c5fc3ea | |||
| aa487511f9 | |||
| 98e887617f | |||
| 8f79f7761c | |||
| ab0353f73f | |||
| 20892c59c7 | |||
| 8771e1cdab | |||
| 63c8229f13 | |||
| 54cb6a38f9 | |||
| edb407157c | |||
| 416575b6c5 | |||
| 0bbb896950 | |||
| 07c9e23c23 | |||
| 1ef6104cb6 | |||
| 3ac7dbfcab | |||
| 5c0fcc082f | |||
| 59cca33d34 | |||
| f0f4c52d86 | |||
| 684c3b5fd1 | |||
| 944a0eb9f0 | |||
| 4284913f11 | |||
| d90efe0479 | |||
| 8dc743e75b | |||
| 1818aa18f7 | |||
| 7ca64c237a | |||
| eae8305438 | |||
| 554017885b | |||
| 77bf108e01 | |||
| e2f990e4aa | |||
| b07e4e9c55 | |||
| f3dc9b7612 | |||
| 38a71e4b75 | |||
| 04e0de699e | |||
| 697a026ee7 | |||
| 1c76508f0d | |||
| 14a8d5e6fd | |||
| b5e1d439ad | |||
| 6d7547bdc2 | |||
| c5ff8efaa3 | |||
| e0af1fcc11 | |||
| fc2f18f9d3 | |||
| 1cd8db7b4b | |||
| 24d5a3247c | |||
| 0817d04ab8 | |||
| 2e31cd29b6 | |||
| 82d0211e88 | |||
| e401912daa | |||
| 16c05efd47 | |||
| 04cfc0f39e | |||
| 2bda633346 | |||
| 1875599e52 | |||
| af5b5293b0 | |||
| 902c8be6e1 | |||
| c10f8381cd | |||
| da60aaa780 | |||
| fa1a15c6b7 | |||
| cc860bda9c | |||
| 5d7841adae | |||
| 681b9d056c | |||
| 95429027f9 | |||
| 86b3c82650 | |||
| 98dd7d6472 | |||
| 8f90c6cacc | |||
| f5da5b84fa | |||
| 64456bdd79 | |||
| 69ffca7f0f | |||
| 2ff989a71c | |||
| f6b9564795 | |||
| 5b913d5b09 | |||
| cad8afa885 | |||
| 47c1ca6911 | |||
| 53d8f98096 | |||
| 3244528c59 | |||
| 9fb0fab4f9 | |||
| 1865bb2ed6 | |||
| 2251d67c78 | |||
| 06b210b813 | |||
| 227dca2242 | |||
| 6a870d5132 | |||
| 83967a5706 | |||
| 1d78f2f5fe | |||
| a08e415550 | |||
| 2a2e83d704 | |||
| bba4aed1a6 | |||
| dc29fe3dd0 | |||
| 4a474f1712 | |||
| 3684070af8 | |||
| 62d75bdcdd | |||
| 3b8ca95d27 | |||
| b8a950f151 | |||
| e0125e009a | |||
| 84c44951d2 | |||
| 014d0e3716 | |||
| 1645fa20f2 | |||
| 18a5ebfd47 | |||
| 799c35beac | |||
| aa2c2a50d5 | |||
| 8654f8eef4 | |||
| daa5474713 | |||
| 9a160ba626 | |||
| f72940bc5f | |||
| 561971a25a | |||
| 123cc9a745 | |||
| d6401abafd | |||
| 7c41ea4d87 | |||
| 5664887809 | |||
| 9ad9ebe28b | |||
| f83f3db811 | |||
| 60c056c6aa | |||
| 0aba1e935d | |||
| f0b94e5dcb | |||
| bd2edfba06 | |||
| 4a017f6991 | |||
| bd92709270 | |||
| 06fb034f22 | |||
| b4f03ec7b5 | |||
| 0aab1c99b8 | |||
| f9bc87e1df | |||
| dea7e9223a | |||
| b1dc46ce0e | |||
| ef07f11f3d | |||
| 2d07234a95 | |||
| 3e520b1c62 | |||
| 381bf0388e | |||
| 7c0ce13198 | |||
| 58c4e8760a | |||
| 1df4786e20 | |||
| a4ae9e4b31 | |||
| d3657005d8 | |||
| fac71d8cfa | |||
| d75a43f74a | |||
| fbbe4f25bc | |||
| 30b851920c | |||
| 88ee8b42af | |||
| 6c5e6c4858 | |||
| 643d531700 | |||
| 09e47f682c | |||
| 81713fd485 | |||
| efc9585709 | |||
| dbd5f777be | |||
| 3cfa37d063 | |||
| 07862d4e01 | |||
| 8bc8492bf7 | |||
| 095e94cfff | |||
| e5b35f4128 | |||
| 7be40eca2b | |||
| 2f43ba6f59 | |||
| c5fe77dd5c | |||
| 38a19308e3 | |||
| e846712e0d | |||
| 719afc7095 | |||
| 91cc04ec98 | |||
| 40ea46a938 | |||
| 1098d03a04 | |||
| 0a55f8a9ee | |||
| fc05b14bc2 | |||
| d6ddf926d7 | |||
| 90ddea6f47 | |||
| 3428d4a5d4 | |||
| 939970cc2f | |||
| 276696ae27 | |||
| 6c63407a93 | |||
| abba0ec4b3 | |||
| a14a1816fb | |||
| 67abe7f2cf | |||
| f2dd84e31b | |||
| 2106c13f1f | |||
| 9e3c66815e | |||
| 348b87d09b | |||
| 315451b1c5 | |||
| 3f7e65ae84 | |||
| beb55e8c56 | |||
| ee3b5f266d | |||
| ee58f9b133 | |||
| 09cd83bb7d | |||
| 2cc1dc73cf | |||
| 0c98c9871d | |||
| 0903f2daf4 | |||
| b457159e25 | |||
| 43403e787e | |||
| cafe92fbf8 | |||
| bd473c8e04 | |||
| 8b6d309b3e | |||
| b7e53ccf74 | |||
| 0192c3bfdb | |||
| 61279c8641 | |||
| 361e4c9cd3 | |||
| 9c0e7148de | |||
| abb18fec30 | |||
| 23bacd631b | |||
| 4be3dc1f14 | |||
| 3d8302c1ab | |||
| aa1bf922fd | |||
| 8263f2a36e | |||
| 83557bd118 | |||
| 3c20b02f70 | |||
| 79b0099219 | |||
| ea550160d6 | |||
| c9e3ac12bc | |||
| 0f8610c8af | |||
| b9237991ea | |||
| eb2d34f1c6 | |||
| c6429dfea9 | |||
| 29c5c7f49d | |||
| bff3a52ddd | |||
| 83e78989fb | |||
| 2e9c1b6900 | |||
| 13789a669a | |||
| 4bef795329 | |||
| 2bdc4568f0 | |||
| 78bbe1e9d1 | |||
| 42dc16f8b2 | |||
| 755ed060d4 | |||
| 9230f72c51 | |||
| fff10e047c | |||
| 7140b8b882 | |||
| 3eb380c6e6 | |||
| ac0f7f8997 | |||
| ae8fa297c4 | |||
| 7ad47bef21 | |||
| ba04c9d64d | |||
| 205c54513b | |||
| 8779386671 | |||
| ee00ed3517 | |||
| 51eab526cb | |||
| 3c14adf0a9 | |||
| 5270901c84 | |||
| c2d19f030b | |||
| 0cdde0f911 | |||
| 95b7c21fca | |||
| 5358870d39 | |||
| cc2b87d569 | |||
| 568779fb9e | |||
| 5e095771b3 | |||
| 735aefe075 | |||
| 5bdb52b47c | |||
| 1dba44b906 | |||
| 9dac0d65a4 | |||
| 1954eec19f | |||
| 8532cf323e | |||
| dba11ee6bd | |||
| 1c66953180 | |||
| e284fd77c7 | |||
| e7eeb0ca40 | |||
| 723686aa2a | |||
| ba67075dd1 | |||
| e2feeca0d0 | |||
| 7c187ac130 | |||
| 951220bc45 | |||
| 7fd5f920a6 | |||
| 811c004338 | |||
| e01dd51ab6 | |||
| ac37ad60a3 | |||
| 0ba7211258 | |||
| 0401ea5ad5 | |||
| a273e2098e | |||
| c9802c1178 | |||
| 9be8fed0c2 | |||
| 4849e4c1ec | |||
| 7ccb7b8fb8 | |||
| 0261d65ca4 | |||
| 6353f7389d | |||
| 616f6a889a | |||
| 4693461502 | |||
| 3e41a03c30 | |||
| 59d3e94975 | |||
| c8fca74730 | |||
| 608ab10ae4 | |||
| fa37aecbf9 | |||
| bf03ddb130 | |||
| c1dcc84138 | |||
| 26dac5d067 | |||
| 3390347f67 | |||
| cbcc517294 | |||
| 73713248bc | |||
| 1d76c599fe | |||
| 1bd115d97f | |||
| b168a7f85c | |||
| d84b398ee5 | |||
| 8a4471b440 | |||
| 3946a7d733 | |||
| f671520c8d | |||
| f830206df2 | |||
| 2653797d82 | |||
| 8ed9e07ab6 | |||
| 6eb20a4422 | |||
| c24dc05329 | |||
| e435b636ba | |||
| 0a536cd522 | |||
| 5b0a55239c | |||
| 071a6fb715 | |||
| b51ef49536 | |||
| f0f05873ed | |||
| 1ab3be2101 | |||
| a5c2fc40b1 | |||
| 47cea86c88 | |||
| 89f01113e9 | |||
| dd29c7317c | |||
| c8131e04e3 | |||
| 68cbf3d87d | |||
| 5295de43fd | |||
| 1b2b319f28 | |||
| 7993865619 | |||
| 578e14471e | |||
| 167322e45d | |||
| 372d6d026e | |||
| 6453f2ca0a | |||
| bb9a6651ad | |||
| 2327421152 | |||
| 5b5127627b | |||
| 313fe391dd | |||
| a2b83bafdb | |||
| 53d3b26a2b | |||
| 19378110cb | |||
| 91e427b9b9 | |||
| 7904a2819a | |||
| 3c1e0067c6 | |||
| 5bfecbf921 | |||
| bc846c8dd5 | |||
| ad8ff33bd4 | |||
| a9fc8109f6 | |||
| 6a4caa1c8c | |||
| 4aae4f87f2 | |||
| f2868b0228 | |||
| 4cf0998bf5 | |||
| 121b510761 | |||
| b2ba026d84 | |||
| 2fbb7be5be | |||
| 6f79af3931 | |||
| 8ea063ec7c | |||
| 9af96b859d | |||
| 9920c7bbcb | |||
| bc73ff9acb | |||
| c37d7d7f6f | |||
| 93f86de061 | |||
| dded5b159c | |||
| d49225fd47 | |||
| 91f5a87091 | |||
| d0572739fa | |||
| 5c2d9ebbaa | |||
| e25a6ac623 | |||
| 591a01aba2 | |||
| 08319c9aab | |||
| 91974793b8 | |||
| ad55381e58 | |||
| 56de8d1935 | |||
| b79adf37a4 | |||
| f675f2b92a | |||
| 8150c47a37 | |||
| 144e4b614d | |||
| 279464d87f | |||
| 89aa1fdc67 | |||
| e477a1d6d8 | |||
| 788a39de76 | |||
| 123fb78052 | |||
| f581c5b39c | |||
| 4328a11988 | |||
| 528227a33b | |||
| 05ff0e1dd5 | |||
| d2b70b5396 | |||
| 5a3f6fcfb7 | |||
| ee1b3580b3 | |||
| 342151b1b0 | |||
| e7af259178 | |||
| b727211a25 | |||
| 14c0e7c2ee | |||
| 81fe396c6c | |||
| a5007536ee | |||
| 57dd2a004d | |||
| 0a5e763ebc | |||
| c0158696b5 | |||
| bb943d6465 | |||
| d2050447da | |||
| 8007446ee1 | |||
| 814480cc30 | |||
| cfde71aba8 | |||
| 4c59b37433 | |||
| c85168a684 | |||
| 4c0b4aca64 | |||
| 6d82cf9fcb | |||
| f99a2dcca9 | |||
| 22500fa2c3 | |||
| 370a025ede | |||
| 5442bff2ce | |||
| 68ede22fa9 | |||
| f851bb0221 | |||
| 094c184b1c | |||
| e6a6a33fbe | |||
| 647dc7a98a | |||
| 0e6bb55396 | |||
| 17c46a9e4f | |||
| c60d0657e9 | |||
| eef96e5193 | |||
| 68f51bc4d9 | |||
| a6a8a0962f | |||
| c52d7c645c | |||
| 8f282be21f | |||
| 2b02c7b7a8 | |||
| 723166a373 | |||
| 8319d68157 | |||
| 8e7aa365b5 | |||
| 2afe32ab13 | |||
| c3830b39ec | |||
| a463d25b12 | |||
| 151be8cd36 | |||
| 18aafef005 | |||
| 7372792a11 | |||
| 35dce1fab6 | |||
| b42d67a2b5 | |||
| adb289e000 | |||
| 490757322a | |||
| 06180ad776 | |||
| 60ddd0fbba | |||
| 3aec878b99 | |||
| f501f7bd0c | |||
| 21a052d6fb | |||
| 2265f1daa7 | |||
| 4c3ee87f8c | |||
| 3a193cc1d6 | |||
| 0ab35ec85b | |||
| 95e72c8036 | |||
| 7aaeee895c | |||
| 487e6bf5c1 | |||
| 67c8d7f13b | |||
| de7dd02431 | |||
| abf0a3b4ea | |||
| 120f33d4d7 | |||
| 702ec8d021 | |||
| aa4b0c13f2 | |||
| 9800ad1556 | |||
| 848b1804a0 | |||
| e6da0a2f26 | |||
| 7a4a4d2459 | |||
| cf37f3426a | |||
| 32494c4577 | |||
| cbc6943729 | |||
| 95316526d5 | |||
| d11632db59 | |||
| d504b4c635 | |||
| c08f7efa3c | |||
| 4ded371224 | |||
| df96e1a3d8 | |||
| b6fa5c402d | |||
| 180b668fb2 | |||
| 01ce078e1c | |||
| e11c49f59f | |||
| 76a3f34cfa | |||
| 79ab89f6ec | |||
| 6827c6fab7 | |||
| dd35de1679 | |||
| 214f4d41b6 | |||
| 06d4f2c944 | |||
| 42080e8926 | |||
| b8436cd0b5 | |||
| 0411aa0cf2 | |||
| 747c75a14b | |||
| feb9b6e180 | |||
| 8be52cd0e4 | |||
| df72d29625 | |||
| cbbc84bcda | |||
| df227fd163 | |||
| f8d76fb76a | |||
| 51c300234f | |||
| afe10a6fe7 | |||
| 720ad70e0c | |||
| 59f08318fb | |||
| 34ccfe62df | |||
| fe796bbc9c | |||
| 3d887c787b | |||
| 6587085cad | |||
| 7c11e8ed37 | |||
| 2e58ce4544 | |||
| 969cf58a38 | |||
| f9234bed69 | |||
| 12d14b0fc0 | |||
| 307a47c470 | |||
| 5a78f17e92 | |||
| 70bd11ef6e | |||
| eccd5855d0 | |||
| f54c5174b8 | |||
| a03fbf8188 | |||
| f7574a34c1 | |||
| 82eb7ec134 | |||
| 895490ffc0 | |||
| 394e9d8e48 | |||
| bb4c150c6a | |||
| 4d6b91606f | |||
| e59ec61c74 | |||
| bd7ceb9527 | |||
| db042399de | |||
| 9c118eb780 | |||
| 3ed4291a23 | |||
| f0336b9ec8 | |||
| 8f43ef46fd | |||
| 263299d37a | |||
| d1727e0137 | |||
| 6494b3ddb1 | |||
| e044a37a69 | |||
| 55c628eff1 | |||
| 9f7b7eec09 | |||
| f278ae1f6b | |||
| e24f022642 | |||
| daecb82080 | |||
| 5d25d1b5ef | |||
| fb1882e23f | |||
| 8a16dde182 | |||
| 64637d7e84 | |||
| 27f4dbaf55 | |||
| f19431c516 | |||
| 551aebb22b | |||
| 1e9d134e4a | |||
| 7da3c35dba | |||
| 96c1510991 | |||
| 3a03525490 | |||
| f63b608baa | |||
| 010dbe9ea8 | |||
| 05b89d189e | |||
| ba97538363 | |||
| 5884eac7b4 | |||
| 62adce9c9e | |||
| 9dda311e68 | |||
| 52d0d57e7b | |||
| 7d69b973ac | |||
| 3d9596e9dc | |||
| f9fe673c42 | |||
| e9c03a18d5 | |||
| cac5921026 | |||
| c48447ba3c | |||
| 9b66ce88b4 | |||
| a67f2b7f9e | |||
| 661d2e9087 | |||
| 99be73d984 | |||
| 2689dac16b | |||
| 6fb3ce7438 | |||
| 63a6aa7aa6 | |||
| 7f62175f7a | |||
| ae4b1f6e40 |
-13
@@ -1,13 +0,0 @@
|
||||
[run]
|
||||
plugins = renpycoverage
|
||||
|
||||
[report]
|
||||
omit =
|
||||
keywords.py
|
||||
style.pxd
|
||||
*pygame_sdl2*
|
||||
*.rpyc
|
||||
*/game/*
|
||||
*style_*_functions.pyx
|
||||
renpy/gl/gl.pyx
|
||||
renpy/gl/gl1.pyx
|
||||
+96
-80
@@ -10,104 +10,120 @@ ehthumbs.db
|
||||
ehthumbs_vista.db
|
||||
[Dd]esktop.ini
|
||||
|
||||
# Python related files.
|
||||
*.pyc
|
||||
*.pyo
|
||||
*.pyi
|
||||
*.egg-info
|
||||
|
||||
# Editor/tool files.
|
||||
*~
|
||||
*.bak
|
||||
.gdb_history
|
||||
|
||||
# Compiled Ren'Py files.
|
||||
*.rpyc
|
||||
*.rpyb
|
||||
*.rpymc
|
||||
*.pyc
|
||||
*.pyo
|
||||
|
||||
*~
|
||||
*.bak
|
||||
|
||||
saves
|
||||
tmp
|
||||
cache
|
||||
env
|
||||
|
||||
# Ren'Py log files.
|
||||
log.txt
|
||||
errors.txt
|
||||
traceback.txt
|
||||
lint.txt
|
||||
|
||||
styles.txt
|
||||
# Created directories.
|
||||
saves/
|
||||
tmp/
|
||||
cache/
|
||||
|
||||
# Executables.
|
||||
/renpy.exe
|
||||
/renpy2.exe
|
||||
/renpy3.exe
|
||||
/renpy-32.exe
|
||||
|
||||
/renpy.sh
|
||||
/renpy2.sh
|
||||
/renpy3.sh
|
||||
|
||||
/renpy.app
|
||||
/renpy2.app
|
||||
/renpy3.app
|
||||
|
||||
/7z.sfx
|
||||
|
||||
# Libraries.
|
||||
/lib
|
||||
|
||||
# Platforms.
|
||||
/rapt
|
||||
/rapt2
|
||||
/rapt3
|
||||
|
||||
/renios
|
||||
/renios2
|
||||
/renios3
|
||||
|
||||
/web
|
||||
/web2
|
||||
/web3
|
||||
|
||||
# Docs.
|
||||
/sphinx/source/inc
|
||||
/sphinx/source/thequestion.rst
|
||||
/doc
|
||||
/doc-web
|
||||
/LICENSE.txt
|
||||
|
||||
# Gui template.
|
||||
/gui/game/gui
|
||||
|
||||
/android
|
||||
/build
|
||||
/dist
|
||||
/dists
|
||||
/renpy.app
|
||||
# Editors.
|
||||
/jedit
|
||||
/lint.txt
|
||||
/renpy.code
|
||||
/*testing*
|
||||
/screenshot*
|
||||
/renpy.exe
|
||||
/renpy-32.exe
|
||||
/renpy.sh
|
||||
/lib
|
||||
/lib.old
|
||||
/lib2
|
||||
/lib3
|
||||
/doc
|
||||
/.pydevproject
|
||||
/.pydevproject.bak
|
||||
/.project
|
||||
/.cproject
|
||||
/.settings
|
||||
/LICENSE.txt
|
||||
/templates/english/README.html
|
||||
/the_question/README.html
|
||||
/tutorial/README.html
|
||||
/renpy/angle/*.pyx
|
||||
/renpy/angle/*.pxd
|
||||
/renpy-ppc.zip
|
||||
/module/build
|
||||
/module/gen*
|
||||
/editra
|
||||
/atom
|
||||
/launcher/game/theme
|
||||
/launcher/game/script_version.rpy
|
||||
/vscode
|
||||
|
||||
# Generated source.
|
||||
/renpy/vc_version.py
|
||||
/module/gen/
|
||||
/module/gen3/
|
||||
/module/gen-static/
|
||||
/module/gen3-static/
|
||||
/tutorial/game/tutorial_director.rpy
|
||||
|
||||
# Module build.
|
||||
/module/build
|
||||
/module/dist
|
||||
/module/emscripten-static
|
||||
|
||||
# Download target.
|
||||
/dl
|
||||
renpy/vc_version.py
|
||||
.externalToolBuilders
|
||||
/rapt
|
||||
/evil
|
||||
/iaptest
|
||||
|
||||
# Pygame_sdl2.
|
||||
/pygame_sdl2
|
||||
/renios
|
||||
/steam_appid.txt
|
||||
/.coverage
|
||||
/id
|
||||
/ai
|
||||
/interface_7
|
||||
/htmlcov
|
||||
/the_question*/.android.json
|
||||
/WINDOWS.rst
|
||||
/old
|
||||
|
||||
/*-all/
|
||||
/*-win/
|
||||
/*-mac/
|
||||
/*-linux*/
|
||||
/*-dists/
|
||||
doc-web
|
||||
# Steam.
|
||||
steam_appid.txt
|
||||
/steamapi.py
|
||||
|
||||
sphinx/source/inc
|
||||
sphinx/source/thequestion.rst
|
||||
tutorial/game/tutorial_director.rpy
|
||||
launcher/theme
|
||||
module/emscripten-static/
|
||||
web/
|
||||
# Android.
|
||||
*.keystore
|
||||
|
||||
# Type analysis.
|
||||
/typings
|
||||
|
||||
# Live2D
|
||||
cubism
|
||||
glexperiment
|
||||
live2d
|
||||
rapt2
|
||||
rapt3
|
||||
renios2
|
||||
renios3
|
||||
notarized
|
||||
|
||||
CubismSdkForNative-4-*.zip
|
||||
|
||||
# Created files.
|
||||
/screenshot*
|
||||
.android.json
|
||||
|
||||
# Old files.
|
||||
/0old
|
||||
|
||||
# Works in progress, throwaway scripts, etc.
|
||||
/scratch
|
||||
/*-dists
|
||||
|
||||
Vendored
+59
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"files.watcherExclude": {
|
||||
"**/renpy/0old/**" : true,
|
||||
"**/renpy/atom/**" : true,
|
||||
"**/renpy/cubism/**" : true,
|
||||
"**/renpy/dists/**" : true,
|
||||
"**/renpy/dl/**" : true,
|
||||
"**/renpy/doc/**" : true,
|
||||
"**/renpy/doc-web/**" : true,
|
||||
"**/renpy/jedit/**" : true,
|
||||
"**/renpy/renpy*.app/**" : true,
|
||||
"**/renpy/tmp/**" : true,
|
||||
"**/renpy/web/**" : true,
|
||||
},
|
||||
"files.exclude": {
|
||||
"0old": true,
|
||||
"**-dists": true,
|
||||
"**/*.pyc": true,
|
||||
"**/*.pyo": true,
|
||||
"renpy/**/*.pyi": true,
|
||||
"**/*.rpmc": true,
|
||||
"**/*.rpyc": true,
|
||||
"**/__pycache__": true,
|
||||
"**/screenshot-*": true,
|
||||
"7z.sfx": true,
|
||||
"atom": true,
|
||||
"cubism": true,
|
||||
"dl": true,
|
||||
"doc": true,
|
||||
"doc-web": true,
|
||||
"jedit": true,
|
||||
"lib*": true,
|
||||
"live2d": true,
|
||||
"rapt*": true,
|
||||
"renios*": true,
|
||||
"renpy*.app": true,
|
||||
"renpy*.exe": true,
|
||||
"tmp": true,
|
||||
"web": true,
|
||||
"**/*.rpa": true,
|
||||
"**/*.rpymc": true,
|
||||
"**/cache/": true
|
||||
},
|
||||
|
||||
"python.languageServer": "Pylance",
|
||||
"python.analysis.typeCheckingMode": "basic",
|
||||
"python.analysis.diagnosticMode": "workspace",
|
||||
"python.linting.pylintEnabled": false,
|
||||
"python.analysis.diagnosticSeverityOverrides": {
|
||||
"reportMissingModuleSource": "none"
|
||||
},
|
||||
"esbonio.server.enabled": true,
|
||||
"esbonio.sphinx.confDir": "",
|
||||
"renpy.excludeCompiledFilesFromWorkspace": true,
|
||||
"renpy.watchFoldersForChanges": false,
|
||||
"renpy.warnOnInvalidVariableNames": "Disabled",
|
||||
"renpy.warnOnInvalidFilenameIssues": "Disabled",
|
||||
"renpy.warnOnIndentationAndSpacingIssues": "Disabled",
|
||||
}
|
||||
+15
-10
@@ -49,29 +49,34 @@ Building the modules requires you have the many dependencies installed on
|
||||
your system. On Ubuntu and Debian, these dependencies can be installed with
|
||||
the command::
|
||||
|
||||
apt-get install virtualenvwrapper python-dev libavcodec-dev libavformat-dev \
|
||||
libavresample-dev libswresample-dev libswscale-dev libfreetype6-dev libglew1.6-dev \
|
||||
libfribidi-dev libsdl2-dev libsdl2-image-dev libsdl2-gfx-dev \
|
||||
libsdl2-mixer-dev libsdl2-ttf-dev libjpeg-dev
|
||||
sudo apt install virtualenvwrapper python3-dev libavcodec-dev libavformat-dev \
|
||||
libswresample-dev libswscale-dev libfreetype6-dev libfribidi-dev libsdl2-dev \
|
||||
libsdl2-image-dev libsdl2-gfx-dev libsdl2-mixer-dev libsdl2-ttf-dev libjpeg-dev
|
||||
|
||||
Ren'Py requires SDL_image 2.6 or greater. If your distribution doesn't include
|
||||
that version, you'll need to download it from:
|
||||
|
||||
https://github.com/libsdl-org/SDL_image/tree/SDL2
|
||||
|
||||
We strongly suggest installing the Ren'Py modules into a Python
|
||||
virtualenv. To create a new virtualenv, open a new terminal and run::
|
||||
|
||||
. /usr/share/virtualenvwrapper/virtualenvwrapper.sh
|
||||
mkvirtualenv renpy
|
||||
|
||||
To return to this virtualenv later, run::
|
||||
|
||||
. /usr/share/virtualenvwrapper/virtualenvwrapper.sh
|
||||
workon renpy
|
||||
|
||||
After activating the virtualenv, install cython, future, and six::
|
||||
After activating the virtualenv, install additional dependencies::
|
||||
|
||||
pip install -U cython future six
|
||||
pip install -U cython future six typing pefile requests ecdsa
|
||||
|
||||
Then, install pygame_sdl2 by running the following commands::
|
||||
|
||||
git clone https://www.github.com/renpy/pygame_sdl2
|
||||
pushd pygame_sdl2
|
||||
python fix_virtualenv.py $VIRTUAL_ENV
|
||||
python setup.py install
|
||||
python setup.py install_headers
|
||||
popd
|
||||
@@ -80,7 +85,7 @@ Next, set RENPY_DEPS_INSTALL To a \:-separated (\;-separated on Windows)
|
||||
list of paths containing the dependencies, and RENPY_CYTHON to the name
|
||||
of the cython command::
|
||||
|
||||
export RENPY_DEPS_INSTALL="/usr:/usr/lib/$(uname -m)-linux-gnu/"
|
||||
export RENPY_DEPS_INSTALL="/usr:/usr/lib/$(gcc -dumpmachine)/"
|
||||
export RENPY_CYTHON=cython
|
||||
|
||||
Finally, use setup.py in the Ren'Py ``module`` directory to compile and
|
||||
@@ -93,7 +98,7 @@ install the modules that support Ren'Py::
|
||||
Ren'Py will be installed into the activated virtualenv. It can then be run
|
||||
using the command::
|
||||
|
||||
python -O renpy.py
|
||||
python renpy.py
|
||||
|
||||
|
||||
Documentation
|
||||
@@ -107,7 +112,7 @@ link in a nightly build, or compile the modules as described above. You'll
|
||||
also need the `Sphinx <https://www.sphinx-doc.org>`_ documentation generator.
|
||||
If you have pip working, install Sphinx using::
|
||||
|
||||
pip install -U sphinx
|
||||
pip install -U sphinx sphinx_rtd_theme sphinx_rtd_dark_mode
|
||||
|
||||
Once Sphinx is installed, change into the ``sphinx`` directory inside the
|
||||
Ren'Py checkout and run::
|
||||
|
||||
+12
-1
@@ -42,4 +42,15 @@ those related to coding) are deliberately left untranslated (or the original wor
|
||||
are provided in brackets) to avoid confusion, relying on their common use in
|
||||
Turkish language and among Turkish developers.
|
||||
|
||||
* Arda Güler (WKFO) <ardaguler09@gmail.com>
|
||||
* Arda Güler (WKFO) <ardaguler09@gmail.com>
|
||||
|
||||
Finnish
|
||||
---------
|
||||
|
||||
Translation to the Finnish language. Most terms have been translated,
|
||||
sometimes requiring some imagination to come up with suitable terms.
|
||||
The quality is not perfect, but it should make sense to any developer
|
||||
fluent in Finnish but not English. Adjustments will be made if better
|
||||
translations are suggested.
|
||||
|
||||
* Lari Liuhamo (Diapolo10) <lari.liuhamo+github116504@gmail.com>
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env python2
|
||||
#!/usr/bin/env python
|
||||
from __future__ import print_function
|
||||
|
||||
import argparse
|
||||
@@ -17,6 +17,7 @@ SOURCE = [
|
||||
|
||||
version = ".".join(str(i) for i in version_tuple)
|
||||
short_version = ".".join(str(i) for i in version_tuple[:-1])
|
||||
major = short_version.split(".")[0]
|
||||
print("Version", version)
|
||||
|
||||
ap = argparse.ArgumentParser()
|
||||
@@ -27,9 +28,48 @@ ap.add_argument("--experimental", action="store_true")
|
||||
ap.add_argument("--no-tag", "-n", action="store_true")
|
||||
ap.add_argument("--push-tags", action="store_true")
|
||||
ap.add_argument("--delete-tag")
|
||||
ap.add_argument("--github", action="store_true")
|
||||
ap.add_argument("--real", action="store_true")
|
||||
|
||||
args = ap.parse_args()
|
||||
|
||||
if not args.real:
|
||||
print("Did you want to use scripts/add_all.sh? If not, give --real.")
|
||||
sys.exit(1)
|
||||
|
||||
if args.github:
|
||||
subprocess.call([ "git", "push", "--tags" ])
|
||||
subprocess.call([ "gh", "release", "create", version, "--notes", "See https://www.renpy.org/release/" + short_version, "-t", "Ren'Py {}".format(short_version) ])
|
||||
|
||||
dn = "/home/tom/ab/renpy/dl/" + short_version
|
||||
|
||||
for fn in os.listdir(dn):
|
||||
|
||||
if fn == ".build_cache":
|
||||
continue
|
||||
|
||||
if fn.endswith(".update.gz"):
|
||||
continue
|
||||
|
||||
if fn.endswith(".update.json"):
|
||||
continue
|
||||
|
||||
if fn.startswith("updates.json"):
|
||||
continue
|
||||
|
||||
if fn.endswith(".zsync"):
|
||||
continue
|
||||
|
||||
if fn.endswith(".sums"):
|
||||
continue
|
||||
|
||||
subprocess.call([ "gh", "release", "upload", version, os.path.join(dn, fn) ])
|
||||
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
|
||||
if args.release:
|
||||
subprocess.check_call([ "/home/tom/ab/renpy/scripts/checksums.py", "/home/tom/ab/renpy/dl/" + short_version ])
|
||||
|
||||
@@ -74,6 +114,8 @@ else:
|
||||
if args.no_tag:
|
||||
tag = False
|
||||
|
||||
links = [ i + "-" + major for i in links ]
|
||||
|
||||
if tag:
|
||||
for i in SOURCE:
|
||||
os.chdir(i)
|
||||
|
||||
-10
@@ -1,10 +0,0 @@
|
||||
# This file sets up the normal python modules. It's used to help eclipse
|
||||
# do type detection, by providing an importable version of the cython code.
|
||||
|
||||
from distutils.core import setup
|
||||
|
||||
setup(
|
||||
packages=['renpy', 'renpy.gl', 'renpy.angle', 'renpy.display', 'renpy.audio', 'renpy.text', 'pysdlsound'],
|
||||
package_dir={ 'pysdlsound' : 'module' },
|
||||
)
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
lib\windows-i686\python.exe -OO renpy.py tutorial
|
||||
pause
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -z "$RENPY_COVERAGE" ]; then
|
||||
echo "$0 needs to be run with RENPY_COVERAGE set, probably in a virtualenv."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
./run.sh --build || exit 1
|
||||
coverage run renpy.py "$@"
|
||||
coverage html
|
||||
xdg-open htmlcov/index.html
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/bin/bash
|
||||
# This builds out of date modules using the default C compiler, and then
|
||||
# runs them.
|
||||
|
||||
|
||||
ROOT="$(dirname $(realpath $0))"
|
||||
|
||||
|
||||
export RENPY_GDB="gdb --args"
|
||||
. "$ROOT/run.sh" "$@"
|
||||
+102
-38
@@ -1,7 +1,11 @@
|
||||
#!/home/tom/ab/renpy/lib/linux-x86_64/python -O
|
||||
#!/home/tom/ab/renpy/lib/py3-linux-x86_64/python
|
||||
|
||||
# Builds a distribution of Ren'Py.
|
||||
from __future__ import print_function
|
||||
from __future__ import division, absolute_import, with_statement, print_function, unicode_literals
|
||||
|
||||
import future.standard_library
|
||||
import future.utils
|
||||
PY2 = future.utils.PY2
|
||||
|
||||
import sys
|
||||
import os
|
||||
@@ -10,19 +14,37 @@ import shutil
|
||||
import subprocess
|
||||
import argparse
|
||||
import time
|
||||
import collections
|
||||
|
||||
try:
|
||||
# reload is built-in in Python 2, in importlib in Python 3
|
||||
reload
|
||||
except NameError:
|
||||
from importlib import reload
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
if not sys.flags.optimize:
|
||||
raise Exception("Optimization disabled.")
|
||||
|
||||
ROOT = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
|
||||
def zip_rapt_symbols(destination):
|
||||
"""
|
||||
Zips up the rapt symbols.
|
||||
"""
|
||||
|
||||
import zipfile
|
||||
|
||||
if PY2:
|
||||
zf = zipfile.ZipFile(destination + "/android-native-symbols.zip", "w", zipfile.ZIP_DEFLATED)
|
||||
else:
|
||||
zf = zipfile.ZipFile(destination + "/android-native-symbols.zip", "w", zipfile.ZIP_DEFLATED, compresslevel=3)
|
||||
|
||||
for dn, dirs, files in os.walk("rapt/symbols"):
|
||||
for fn in dirs + files:
|
||||
fn = os.path.join(dn, fn)
|
||||
arcname = os.path.relpath(fn, "rapt/symbols")
|
||||
zf.write(fn, arcname)
|
||||
|
||||
zf.close()
|
||||
|
||||
def copy_tutorial_file(src, dest):
|
||||
"""
|
||||
Copies a file from src to dst. Lines between "# tutorial-only" and
|
||||
@@ -32,7 +54,7 @@ def copy_tutorial_file(src, dest):
|
||||
# True if we want to copy the line.
|
||||
copy = True
|
||||
|
||||
with open(src, "rb") as sf, open(dest, "wb") as df:
|
||||
with open(src, "r") as sf, open(dest, "w") as df:
|
||||
for l in sf:
|
||||
if "# tutorial-only" in l:
|
||||
copy = False
|
||||
@@ -42,14 +64,24 @@ def copy_tutorial_file(src, dest):
|
||||
if copy:
|
||||
df.write(l)
|
||||
|
||||
def link_directory(dirname):
|
||||
dn = os.path.join(ROOT, dirname)
|
||||
|
||||
if os.path.exists(dn):
|
||||
os.unlink(dn)
|
||||
|
||||
if PY2:
|
||||
source = dn + "2"
|
||||
else:
|
||||
source = dn + "3"
|
||||
|
||||
if os.path.exists(source):
|
||||
os.symlink(source, dn)
|
||||
|
||||
def main():
|
||||
|
||||
start = time.time()
|
||||
|
||||
if not sys.flags.optimize:
|
||||
raise Exception("Not running with python optimization.")
|
||||
|
||||
ap = argparse.ArgumentParser()
|
||||
ap.add_argument("version", nargs="?")
|
||||
ap.add_argument("--fast", action="store_true")
|
||||
@@ -60,12 +92,27 @@ def main():
|
||||
ap.add_argument("--nosign", action="store_false", dest="sign")
|
||||
ap.add_argument("--notarized", action="store_true", dest="notarized")
|
||||
ap.add_argument("--vc-version-only", action="store_true")
|
||||
ap.add_argument("--link-directories", action="store_true")
|
||||
ap.add_argument("--append-version", action="store_true")
|
||||
|
||||
args = ap.parse_args()
|
||||
|
||||
link_directory("rapt")
|
||||
link_directory("renios")
|
||||
link_directory("web")
|
||||
|
||||
if args.link_directories:
|
||||
return
|
||||
|
||||
if args.sign:
|
||||
os.environ["RENPY_MAC_IDENTITY"] = "Developer ID Application: Tom Rothamel (XHTE5H7Z79)"
|
||||
|
||||
if PY2 and not sys.flags.optimize:
|
||||
raise Exception("Not running with python optimization.")
|
||||
|
||||
if not os.path.abspath(sys.executable).startswith(ROOT + "/lib"):
|
||||
raise Exception("Distribute must be run with the python in lib/.")
|
||||
|
||||
# Revision updating is done early, so we can do it even if the rest
|
||||
# of the program fails.
|
||||
|
||||
@@ -74,36 +121,51 @@ def main():
|
||||
import renpy
|
||||
|
||||
if args.version is None:
|
||||
args.version = ".".join(str(i) for i in renpy.version_tuple[:-1]) # @UndefinedVariable
|
||||
args.version = ".".join(str(i) for i in renpy.version_tuple[:-1])
|
||||
|
||||
match_version = ".".join(str(i) for i in renpy.version_tuple[:2]) # @UndefinedVariable
|
||||
try:
|
||||
s = subprocess.check_output([ "git", "describe", "--tags", "--dirty", ]).decode("utf-8").strip()
|
||||
parts = s.strip().split("-")
|
||||
dirty = "dirty" in parts
|
||||
|
||||
s = subprocess.check_output([ "git", "describe", "--tags", "--dirty", "--match", "start-" + match_version ])
|
||||
parts = s.strip().split("-")
|
||||
commits_per_day = collections.defaultdict(int)
|
||||
|
||||
if len(parts) <= 3:
|
||||
for i in subprocess.check_output([ "git", "log", "-99", "--pretty=%cd", "--date=format:%Y%m%d" ]).decode("utf-8").split():
|
||||
commits_per_day[i[2:]] += 1
|
||||
|
||||
if dirty:
|
||||
key = time.strftime("%Y%m%d")[2:]
|
||||
vc_version = "{}{:02d}".format(key, commits_per_day[key] + 1)
|
||||
else:
|
||||
key = max(commits_per_day.keys())
|
||||
vc_version = "{}{:02d}".format(key, commits_per_day[key])
|
||||
except Exception:
|
||||
vc_version = 0
|
||||
else:
|
||||
vc_version = int(parts[2])
|
||||
|
||||
if parts[-1] == "dirty":
|
||||
vc_version += 1
|
||||
|
||||
with open("renpy/vc_version.py", "w") as f:
|
||||
f.write("vc_version = {}".format(vc_version))
|
||||
import socket
|
||||
official = socket.gethostname() == "eileen"
|
||||
nightly = args.version and "nightly" in args.version
|
||||
|
||||
f.write("vc_version = {}\n".format(vc_version))
|
||||
f.write("official = {}\n".format(official))
|
||||
f.write("nightly = {}\n".format(nightly))
|
||||
|
||||
if args.vc_version_only:
|
||||
return
|
||||
|
||||
try:
|
||||
reload(sys.modules['renpy.vc_version']) # @UndefinedVariable
|
||||
except:
|
||||
import renpy.vc_version # @UnusedImport
|
||||
reload(sys.modules['renpy.vc_version']) # @UndefinedVariable
|
||||
except Exception:
|
||||
import renpy.vc_version # @UnusedImport
|
||||
|
||||
reload(sys.modules['renpy'])
|
||||
|
||||
if args.append_version:
|
||||
args.version += "-" + renpy.version_only
|
||||
|
||||
# Check that the versions match.
|
||||
full_version = renpy.version_only # @UndefinedVariable
|
||||
full_version = renpy.version_only # @UndefinedVariable
|
||||
if "-" not in args.version \
|
||||
and not full_version.startswith(args.version):
|
||||
raise Exception("The command-line and Ren'Py versions do not match.")
|
||||
@@ -121,19 +183,19 @@ def main():
|
||||
|
||||
print("Version {} ({})".format(args.version, full_version))
|
||||
|
||||
# Perhaps autobuild.
|
||||
if "RENPY_BUILD_ALL" in os.environ:
|
||||
print("Autobuild...")
|
||||
subprocess.check_call(["scripts/autobuild.sh"])
|
||||
if sys.version_info[0] >= 3:
|
||||
renpy_sh = "./renpy3.sh"
|
||||
else:
|
||||
renpy_sh = "./renpy2.sh"
|
||||
|
||||
# Compile all the python files.
|
||||
compileall.compile_dir("renpy/", ddir="renpy/", force=1, quiet=1)
|
||||
compileall.compile_dir("renpy/", ddir="renpy/", force=True, quiet=1)
|
||||
|
||||
# Compile the various games.
|
||||
if not args.fast:
|
||||
for i in [ 'tutorial', 'launcher', 'the_question' ]:
|
||||
print("Compiling", i)
|
||||
subprocess.check_call(["./renpy.sh", i, "quit" ])
|
||||
subprocess.check_call([renpy_sh, i, "compile" ])
|
||||
|
||||
# Kick off the rapt build.
|
||||
if not args.fast:
|
||||
@@ -142,8 +204,8 @@ def main():
|
||||
|
||||
sys.path.insert(0, os.path.join(ROOT, "rapt", "buildlib"))
|
||||
|
||||
import rapt.interface # @UnresolvedImport
|
||||
import rapt.build # @UnresolvedImport
|
||||
import rapt.interface # type: ignore
|
||||
import rapt.build # type: ignore
|
||||
|
||||
interface = rapt.interface.Interface()
|
||||
rapt.build.distclean(interface)
|
||||
@@ -156,10 +218,12 @@ def main():
|
||||
if not os.path.exists(destination):
|
||||
os.makedirs(destination)
|
||||
|
||||
zip_rapt_symbols(destination)
|
||||
|
||||
if args.fast:
|
||||
|
||||
cmd = [
|
||||
"./renpy.sh",
|
||||
renpy_sh,
|
||||
"launcher",
|
||||
"distribute",
|
||||
"launcher",
|
||||
@@ -172,7 +236,7 @@ def main():
|
||||
|
||||
else:
|
||||
cmd = [
|
||||
"./renpy.sh",
|
||||
renpy_sh,
|
||||
"launcher",
|
||||
"distribute",
|
||||
"launcher",
|
||||
@@ -232,8 +296,8 @@ def main():
|
||||
|
||||
sys.stdout.write("Creating -sdk.7z")
|
||||
|
||||
p = subprocess.Popen([ "7z", "a", sdk +".7z", sdk], stdout=subprocess.PIPE)
|
||||
for i, _l in enumerate(p.stdout):
|
||||
p = subprocess.Popen([ "7z", "a", sdk + ".7z", sdk], stdout=subprocess.PIPE)
|
||||
for i, _l in enumerate(p.stdout): # type: ignore
|
||||
if i % 10 != 0:
|
||||
continue
|
||||
|
||||
|
||||
+7
-5
@@ -11,6 +11,8 @@ init offset = -2
|
||||
init python:
|
||||
gui.init(1280, 720)
|
||||
|
||||
## Enable checks for invalid or unstable properties in screens or transforms
|
||||
define config.check_conflicting_properties = True
|
||||
|
||||
|
||||
################################################################################
|
||||
@@ -399,6 +401,7 @@ define gui.nvl_thought_xalign = 0.0
|
||||
define gui.nvl_button_xpos = gui.scale(450)
|
||||
define gui.nvl_button_xalign = 0.0
|
||||
|
||||
|
||||
## Localization ################################################################
|
||||
|
||||
## This controls where a line break is permitted. The default is suitable for
|
||||
@@ -416,13 +419,15 @@ init python:
|
||||
|
||||
## This increases the size of the quick buttons to make them easier to
|
||||
## touch on tablets and phones.
|
||||
if renpy.variant("touch"):
|
||||
@gui.variant
|
||||
def touch():
|
||||
|
||||
gui.quick_button_borders = Borders(gui.scale(40), gui.scale(14), gui.scale(40), gui.scale(0))
|
||||
|
||||
## This changes the size and spacing of various GUI elements to ensure
|
||||
## they are easily visible on phones.
|
||||
if renpy.variant("small"):
|
||||
@gui.variant
|
||||
def small():
|
||||
|
||||
## Font sizes.
|
||||
gui.text_size = gui.scale(30)
|
||||
@@ -471,6 +476,3 @@ init python:
|
||||
|
||||
gui.nvl_button_width = gui.scale(1240)
|
||||
gui.nvl_button_xpos = gui.scale(20)
|
||||
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 6.7 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.1 KiB |
@@ -44,9 +44,9 @@ define build.name = "gui"
|
||||
|
||||
## Sounds and music ############################################################
|
||||
|
||||
## These three variables control which mixers are shown to the player
|
||||
## by default. Setting one of these to False will hide the appropriate
|
||||
## mixer.
|
||||
## These three variables control, among other things, which mixers are
|
||||
## shown to the player by default. Setting one of these to False will
|
||||
## hide the appropriate mixer.
|
||||
|
||||
define config.has_sound = True
|
||||
define config.has_music = True
|
||||
@@ -200,9 +200,9 @@ init python:
|
||||
build.documentation('*.txt')
|
||||
|
||||
|
||||
## A Google Play license key is required to download expansion files and
|
||||
## perform in-app purchases. It can be found on the "Services & APIs" page
|
||||
## of the Google Play developer console.
|
||||
## A Google Play license key is required to perform in-app purchases.
|
||||
## It can be found in the Google Play developer console,
|
||||
## under "Monetize" > "Monetization Setup" > "Licensing".
|
||||
|
||||
# define build.google_play_key = "..."
|
||||
|
||||
|
||||
+131
-38
@@ -160,6 +160,7 @@ style say_dialogue:
|
||||
xsize gui.dialogue_width
|
||||
ypos gui.dialogue_ypos
|
||||
|
||||
adjust_spacing False
|
||||
|
||||
## Input screen ################################################################
|
||||
##
|
||||
@@ -177,7 +178,7 @@ screen input(prompt):
|
||||
window:
|
||||
|
||||
vbox:
|
||||
xalign gui.dialogue_text_xalign
|
||||
xanchor gui.dialogue_text_xalign
|
||||
xpos gui.dialogue_xpos
|
||||
xsize gui.dialogue_width
|
||||
ypos gui.dialogue_ypos
|
||||
@@ -212,11 +213,6 @@ screen choice(items):
|
||||
textbutton i.caption action i.action
|
||||
|
||||
|
||||
## When this is true, menu captions will be spoken by the narrator. When
|
||||
## false, menu captions will be displayed as empty buttons.
|
||||
define config.narrator_menu = True
|
||||
|
||||
|
||||
style choice_vbox is vbox
|
||||
style choice_button is button
|
||||
style choice_button_text is button_text
|
||||
@@ -412,8 +408,8 @@ style main_menu_version:
|
||||
## This lays out the basic common structure of a game menu screen. It's called
|
||||
## with the screen title, and displays the background, title, and navigation.
|
||||
##
|
||||
## The scroll parameter can be None, or one of "viewport" or "vpgrid". When
|
||||
## this screen is intended to be used with one or more children, which are
|
||||
## The scroll parameter can be None, or one of "viewport" or "vpgrid".
|
||||
## This screen is intended to be used with one or more children, which are
|
||||
## transcluded (placed) inside it.
|
||||
|
||||
screen game_menu(title, scroll=None, yinitial=0.0):
|
||||
@@ -650,27 +646,40 @@ screen file_slots(title):
|
||||
key "save_delete" action FileDelete(slot)
|
||||
|
||||
## Buttons to access other pages.
|
||||
hbox:
|
||||
vbox:
|
||||
style_prefix "page"
|
||||
|
||||
xalign 0.5
|
||||
yalign 1.0
|
||||
|
||||
spacing gui.page_spacing
|
||||
hbox:
|
||||
xalign 0.5
|
||||
|
||||
textbutton _("<") action FilePagePrevious()
|
||||
spacing gui.page_spacing
|
||||
|
||||
if config.has_autosave:
|
||||
textbutton _("{#auto_page}A") action FilePage("auto")
|
||||
textbutton _("<") action FilePagePrevious()
|
||||
|
||||
if config.has_quicksave:
|
||||
textbutton _("{#quick_page}Q") action FilePage("quick")
|
||||
if config.has_autosave:
|
||||
textbutton _("{#auto_page}A") action FilePage("auto")
|
||||
|
||||
## range(1, 10) gives the numbers from 1 to 9.
|
||||
for page in range(1, 10):
|
||||
textbutton "[page]" action FilePage(page)
|
||||
if config.has_quicksave:
|
||||
textbutton _("{#quick_page}Q") action FilePage("quick")
|
||||
|
||||
textbutton _(">") action FilePageNext()
|
||||
## range(1, 10) gives the numbers from 1 to 9.
|
||||
for page in range(1, 10):
|
||||
textbutton "[page]" action FilePage(page)
|
||||
|
||||
textbutton _(">") action FilePageNext()
|
||||
|
||||
if config.has_sync:
|
||||
if CurrentScreenName() == "save":
|
||||
textbutton _("Upload Sync"):
|
||||
action UploadSync()
|
||||
xalign 0.5
|
||||
else:
|
||||
textbutton _("Download Sync"):
|
||||
action DownloadSync()
|
||||
xalign 0.5
|
||||
|
||||
|
||||
style page_label is gui_label
|
||||
@@ -688,7 +697,7 @@ style page_label:
|
||||
ypadding gui.scale(3)
|
||||
|
||||
style page_label_text:
|
||||
text_align 0.5
|
||||
textalign 0.5
|
||||
layout "subtitle"
|
||||
hover_color gui.hover_color
|
||||
|
||||
@@ -731,13 +740,6 @@ screen preferences():
|
||||
textbutton _("Window") action Preference("display", "window")
|
||||
textbutton _("Fullscreen") action Preference("display", "fullscreen")
|
||||
|
||||
vbox:
|
||||
style_prefix "radio"
|
||||
label _("Rollback Side")
|
||||
textbutton _("Disable") action Preference("rollback side", "disable")
|
||||
textbutton _("Left") action Preference("rollback side", "left")
|
||||
textbutton _("Right") action Preference("rollback side", "right")
|
||||
|
||||
vbox:
|
||||
style_prefix "check"
|
||||
label _("Skip")
|
||||
@@ -919,7 +921,7 @@ screen history():
|
||||
## This determines what tags are allowed to be displayed on the history
|
||||
## screen.
|
||||
|
||||
define gui.history_allow_tags = { "alt", "noalt" }
|
||||
define gui.history_allow_tags = { "alt", "noalt", "rt", "rb", "art" }
|
||||
|
||||
|
||||
style history_window is empty
|
||||
@@ -928,8 +930,6 @@ style history_name is gui_label
|
||||
style history_name_text is gui_label_text
|
||||
style history_text is gui_text
|
||||
|
||||
style history_text is gui_text
|
||||
|
||||
style history_label is gui_label
|
||||
style history_label_text is gui_label_text
|
||||
|
||||
@@ -945,7 +945,7 @@ style history_name:
|
||||
|
||||
style history_name_text:
|
||||
min_width gui.history_name_width
|
||||
text_align gui.history_name_xalign
|
||||
textalign gui.history_name_xalign
|
||||
|
||||
style history_text:
|
||||
xpos gui.history_text_xpos
|
||||
@@ -953,7 +953,7 @@ style history_text:
|
||||
xanchor gui.history_text_xalign
|
||||
xsize gui.history_text_width
|
||||
min_width gui.history_text_width
|
||||
text_align gui.history_text_xalign
|
||||
textalign gui.history_text_xalign
|
||||
layout ("subtitle" if gui.history_text_xalign else "tex")
|
||||
|
||||
style history_label:
|
||||
@@ -1044,6 +1044,10 @@ screen keyboard_help():
|
||||
label "V"
|
||||
text _("Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}.")
|
||||
|
||||
hbox:
|
||||
label "Shift+A"
|
||||
text _("Opens the accessibility menu.")
|
||||
|
||||
|
||||
screen mouse_help():
|
||||
|
||||
@@ -1118,7 +1122,7 @@ style help_label:
|
||||
style help_label_text:
|
||||
size gui.text_size
|
||||
xalign 1.0
|
||||
text_align 1.0
|
||||
textalign 1.0
|
||||
|
||||
|
||||
|
||||
@@ -1180,7 +1184,7 @@ style confirm_frame:
|
||||
yalign .5
|
||||
|
||||
style confirm_prompt_text:
|
||||
text_align 0.5
|
||||
textalign 0.5
|
||||
layout "subtitle"
|
||||
|
||||
style confirm_button:
|
||||
@@ -1314,7 +1318,7 @@ screen nvl(dialogue, items=None):
|
||||
use nvl_dialogue(dialogue)
|
||||
|
||||
## Displays the menu, if given. The menu may be displayed incorrectly
|
||||
## if config.narrator_menu is set to True, as it is above.
|
||||
## if config.narrator_menu is set to True.
|
||||
for i in items:
|
||||
|
||||
textbutton i.caption:
|
||||
@@ -1374,7 +1378,7 @@ style nvl_label:
|
||||
yanchor 0.0
|
||||
xsize gui.nvl_name_width
|
||||
min_width gui.nvl_name_width
|
||||
text_align gui.nvl_name_xalign
|
||||
textalign gui.nvl_name_xalign
|
||||
|
||||
style nvl_dialogue:
|
||||
xpos gui.nvl_text_xpos
|
||||
@@ -1382,7 +1386,7 @@ style nvl_dialogue:
|
||||
ypos gui.nvl_text_ypos
|
||||
xsize gui.nvl_text_width
|
||||
min_width gui.nvl_text_width
|
||||
text_align gui.nvl_text_xalign
|
||||
textalign gui.nvl_text_xalign
|
||||
layout ("subtitle" if gui.nvl_text_xalign else "tex")
|
||||
|
||||
style nvl_thought:
|
||||
@@ -1391,7 +1395,7 @@ style nvl_thought:
|
||||
ypos gui.nvl_thought_ypos
|
||||
xsize gui.nvl_thought_width
|
||||
min_width gui.nvl_thought_width
|
||||
text_align gui.nvl_thought_xalign
|
||||
textalign gui.nvl_thought_xalign
|
||||
layout ("subtitle" if gui.nvl_text_xalign else "tex")
|
||||
|
||||
style nvl_button:
|
||||
@@ -1403,6 +1407,95 @@ style nvl_button_text:
|
||||
properties gui.button_text_properties("nvl_button")
|
||||
|
||||
|
||||
## Bubble screen ###############################################################
|
||||
##
|
||||
## The bubble screen is used to display dialogue to the player when using
|
||||
## speech bubbles. The bubble screen takes the same parameters as the say
|
||||
## screen, must create a displayable with the id of "what", and can create
|
||||
## displayables with the "namebox", "who", and "window" ids.
|
||||
##
|
||||
## https://www.renpy.org/doc/html/bubble.html#bubble-screen
|
||||
|
||||
screen bubble(who, what):
|
||||
style_prefix "bubble"
|
||||
|
||||
window:
|
||||
id "window"
|
||||
|
||||
if who is not None:
|
||||
|
||||
window:
|
||||
id "namebox"
|
||||
style "bubble_namebox"
|
||||
|
||||
text who:
|
||||
id "who"
|
||||
|
||||
text what:
|
||||
id "what"
|
||||
|
||||
style bubble_window is empty
|
||||
style bubble_namebox is empty
|
||||
style bubble_who is default
|
||||
style bubble_what is default
|
||||
|
||||
style bubble_window:
|
||||
xpadding 30
|
||||
top_padding 5
|
||||
bottom_padding 5
|
||||
|
||||
style bubble_namebox:
|
||||
xalign 0.5
|
||||
|
||||
style bubble_who:
|
||||
xalign 0.5
|
||||
textalign 0.5
|
||||
color "#000"
|
||||
|
||||
style bubble_what:
|
||||
align (0.5, 0.5)
|
||||
text_align 0.5
|
||||
layout "subtitle"
|
||||
color "#000"
|
||||
|
||||
define bubble.frame = Frame("gui/bubble.png", 55, 55, 55, 95)
|
||||
define bubble.thoughtframe = Frame("gui/thoughtbubble.png", 55, 55, 55, 55)
|
||||
|
||||
define bubble.properties = {
|
||||
"bottom_left" : {
|
||||
"window_background" : Transform(bubble.frame, xzoom=1, yzoom=1),
|
||||
"window_bottom_padding" : 27,
|
||||
},
|
||||
|
||||
"bottom_right" : {
|
||||
"window_background" : Transform(bubble.frame, xzoom=-1, yzoom=1),
|
||||
"window_bottom_padding" : 27,
|
||||
},
|
||||
|
||||
"top_left" : {
|
||||
"window_background" : Transform(bubble.frame, xzoom=1, yzoom=-1),
|
||||
"window_top_padding" : 27,
|
||||
},
|
||||
|
||||
"top_right" : {
|
||||
"window_background" : Transform(bubble.frame, xzoom=-1, yzoom=-1),
|
||||
"window_top_padding" : 27,
|
||||
},
|
||||
|
||||
"thought" : {
|
||||
"window_background" : bubble.thoughtframe,
|
||||
}
|
||||
}
|
||||
|
||||
define bubble.expand_area = {
|
||||
"bottom_left" : (0, 0, 0, 22),
|
||||
"bottom_right" : (0, 0, 0, 22),
|
||||
"top_left" : (0, 22, 0, 0),
|
||||
"top_right" : (0, 22, 0, 0),
|
||||
"thought" : (0, 0, 0, 0),
|
||||
}
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
## Mobile Variants
|
||||
|
||||
@@ -1,178 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>README</title>
|
||||
<style>
|
||||
BODY {
|
||||
background: #fff;
|
||||
color: #444;
|
||||
padding-left: 20%;
|
||||
padding-top: 1em;
|
||||
padding-bottom: 1em;
|
||||
padding-right: 20%;
|
||||
font-family: sans-serif;
|
||||
line-height: 1.6em;
|
||||
}
|
||||
|
||||
DT {
|
||||
font-weight: bold;
|
||||
margin-top: .33em;
|
||||
}
|
||||
|
||||
H2 {
|
||||
color: #000;
|
||||
margin-left: -2.5em;
|
||||
}
|
||||
|
||||
H3 {
|
||||
color: #000;
|
||||
margin-left: -1.5em;
|
||||
}
|
||||
|
||||
.editsection {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h2>Basic Help</h2>
|
||||
<p>
|
||||
To advance through the game, <tt>left-click</tt> or press the <tt>space</tt> or <tt>enter</tt> keys. When at a menu,
|
||||
<tt>left-click</tt> to make a choice, or use the arrow keys to select a choice and <tt>enter</tt> to activate it.
|
||||
</p>
|
||||
|
||||
<h3>Game Menu</h3>
|
||||
<p>
|
||||
When playing a game, <tt>right-click</tt> or press the <tt>escape</tt> key to enter the game menu. The game menu
|
||||
gives the following choices:
|
||||
</p>
|
||||
|
||||
<dl>
|
||||
<dt>Return</dt>
|
||||
<dd>Returns to the game.</dd>
|
||||
<dt>Save Game</dt>
|
||||
<dd>Allows you to save a game by clicking on a save slot.</dd>
|
||||
<dt>Load Game</dt>
|
||||
<dd>Allows you to load a game by clicking on a save slot. Clicking on "Auto" accesses the automatic save slots.</dd>
|
||||
<dt>Preferences</dt>
|
||||
<dd>
|
||||
Changes the game preferences (options/configuration):
|
||||
<dl>
|
||||
<dt>Display</dt>
|
||||
<dd>Switches between fullscreen and windowed mode.</dd>
|
||||
<dt>Transitions</dt>
|
||||
<dd>Controls the display of transitions between game screens.</dd>
|
||||
<dt>Text Speed</dt>
|
||||
<dd>Controls the rate at which text displays. The further to the right this slider is, the faster the text
|
||||
will display. All the way to the right causes text to be shown instantly.</dd>
|
||||
<dt>Joystick</dt>
|
||||
<dd>Lets you control the game using a joystick.</dd>
|
||||
<dt>Skip</dt>
|
||||
<dd>Chooses between skipping messages that have been already seen (in any play through the game), and
|
||||
skipping all messages.</dd>
|
||||
<dt>Begin Skipping</dt>
|
||||
<dd>Returns to the game, while skipping.</dd>
|
||||
<dt>After Choices</dt>
|
||||
<dd>Controls if skipping stops upon reaching a menu.</dd>
|
||||
<dt>Auto-Forward Time</dt>
|
||||
<dd>Controls automatic advance. The further to the left this slider is, the shorter the amount of time
|
||||
before the game advances. All the way to the right means text will never auto-forward.</dd>
|
||||
<dt>Music, Sound, and Voice Volume</dt>
|
||||
<dd>Controls the volume of the Music, Sound effect, and Voice channels, respectively. The further to the
|
||||
right these are, the louder the volume.</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt>Main Menu</dt>
|
||||
<dd>Returns to the main menu, ending the current game.</dd>
|
||||
<dt>Help</dt>
|
||||
<dd>Shows this help screen.</dd>
|
||||
<dt>Quit</dt>
|
||||
<dd>Exits the game; the game will be closed and ended.</dd>
|
||||
</dl>
|
||||
|
||||
<h3>Key and Mouse Bindings</h3>
|
||||
<dl>
|
||||
<dt>Left-click, Enter</dt>
|
||||
<dd>Advances through the game, activates menu choices, buttons, and sliders.</dd>
|
||||
<dt>Space</dt>
|
||||
<dd>Advances through the game, but does not activate choices.</dd>
|
||||
<dt>Arrow Keys</dt>
|
||||
<dd>Navigates between menu choices, buttons, and sliders.</dd>
|
||||
<dt>Ctrl</dt>
|
||||
<dd>Causes skipping to occur while the ctrl key is held down.</dd>
|
||||
<dt>Tab</dt>
|
||||
<dd>Toggles skipping, causing it to occur until tab is pressed again.</dd>
|
||||
<dt>Mousewheel-Up, PageUp</dt>
|
||||
<dd>Causes rollback to occur. Rollback reverses the game back in time, showing prior text and even allowing
|
||||
menu choices to be changed.</dd>
|
||||
<dt>Mousewheel-Down, PageDown</dt>
|
||||
<dd>Causes rollforward to occur, canceling out a previous rollback.</dd>
|
||||
<dt>Right-click, Escape</dt>
|
||||
<dd>Enters the game menu. When in the game menu, returns to the game.</dd>
|
||||
<dt>Middle-click, H</dt>
|
||||
<dd>Hides the text window and other transient displays.</dd>
|
||||
<dt>F</dt>
|
||||
<dd>Toggles fullscreen mode</dd>
|
||||
<dt>S</dt>
|
||||
<dd>Takes a screenshot, saving it in a file named screenshotxxxx.png, where xxxx is a serial number.</dd>
|
||||
<dt>Alt-M, Command-H</dt>
|
||||
<dd>Hides (iconifies) the window.</dd>
|
||||
<dt>Alt-F4, Command-Q</dt>
|
||||
<dd>Quits the game.</dd>
|
||||
<dt>Delete</dt>
|
||||
<dd>When a save slot is selected, deletes that save slot.</dd>
|
||||
<dt>v</dt>
|
||||
<dd>
|
||||
Toggles self-voicing mode, which reads text to the user using an os-supplied speech synthesizer. For more
|
||||
information, please read the <a href="https://www.renpy.org/doc/html/self_voicing.html">self-voicing</a>
|
||||
documentation.
|
||||
</dd>
|
||||
<dt>Shift+C</dt>
|
||||
<dd>Toggles clipboard-voicing mode, which copies text to the clipboard so it can be read by a screen reader.</dd>
|
||||
</dl>
|
||||
|
||||
<h3>Controller Support and Bindings</h3>
|
||||
|
||||
<p>
|
||||
This game should automatically detect and use game controllers supported by
|
||||
SDL2. Other controllers can be configured using third-party configuration tools
|
||||
like the <a href="http://www.generalarcade.com/gamepadtool/">SDL2 Gampad Tool</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
A small number of systems may have problems using detected game controllers. Should
|
||||
that happen, hold down shift as the game starts, and disable the controller support.
|
||||
</p>
|
||||
|
||||
<p>The following bindings are used:</p>
|
||||
|
||||
<dl>
|
||||
<dt>Right Trigger, A (Bottom Button)</dt>
|
||||
<dd>Advances through the game, activates menu choices, buttons, and sliders.</dd>
|
||||
|
||||
<dt>Guide, Start</dt>
|
||||
<dd>Enters the game menu. When in the game menu, returns to the game.</dd>
|
||||
|
||||
<dt>Directional Pad, Analog Sticks</dt>
|
||||
<dd>Navigates between menu choices, buttons, and sliders.</dd>
|
||||
|
||||
<dt>Left Trigger, Left Shoulder, Back</dt>
|
||||
<dd>Causes rollback to occur. Rollback reverses the game back in time, showing prior text and even allowing
|
||||
menu choices to be changed.</dd>
|
||||
|
||||
<dt>Right Shoulder</dt>
|
||||
<dd>Causes rollforward to occur, canceling out a previous rollback.</dd>
|
||||
|
||||
<dt>Y (Top Button)</dt>
|
||||
<dd>Hides the text window and other transient displays.</dd>
|
||||
|
||||
</dl>
|
||||
|
||||
<h2>Legal Notice</h2>
|
||||
<p>
|
||||
This program contains free software licensed under a number of licenses, including the GNU Lesser Public License. A
|
||||
complete list of software is available at <a href="https://www.renpy.org/doc/html/license.html">https://www.renpy.org/doc/html/license.html</a>.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Executable
+86
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# The path to a copy of Atom that's been installed globally, if one exists.
|
||||
# This is overidden by RENPY_ATOM, if set. If either is given, that is used
|
||||
# and no special handing of the .atom directory is performed.
|
||||
ATOM = None
|
||||
|
||||
import sys
|
||||
import os
|
||||
import subprocess
|
||||
import platform
|
||||
import shutil
|
||||
|
||||
import renpy
|
||||
|
||||
|
||||
class Editor(renpy.editor.Editor):
|
||||
|
||||
has_projects = True
|
||||
|
||||
def get_atom(self):
|
||||
"""
|
||||
Returns the path to the atom executable, if None. Also takes care
|
||||
of setting up the .atom directory if it's not available.
|
||||
"""
|
||||
|
||||
atom = os.environ.get("RENPY_ATOM", ATOM)
|
||||
|
||||
if atom is not None:
|
||||
return atom
|
||||
|
||||
DIR = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
|
||||
DIR = os.path.join(renpy.exports.fsdecode(DIR), "atom")
|
||||
|
||||
if renpy.windows:
|
||||
atom = os.path.join(DIR, "atom-windows", "atom.exe")
|
||||
elif renpy.macintosh:
|
||||
atom = os.path.join(DIR, "Atom.app", "Contents", "Resources", "app", "atom.sh")
|
||||
else:
|
||||
atom = os.path.join(DIR, "atom-linux-" + platform.machine(), "atom")
|
||||
|
||||
default_dot_atom = os.path.join(DIR, "default-dot-atom")
|
||||
dot_atom = os.path.join(DIR, ".atom")
|
||||
|
||||
if not os.path.exists(dot_atom) and os.path.exists(default_dot_atom):
|
||||
shutil.copytree(default_dot_atom, dot_atom)
|
||||
|
||||
return atom
|
||||
|
||||
def begin(self, new_window=False, **kwargs):
|
||||
self.args = [ ]
|
||||
|
||||
def open(self, filename, line=None, **kwargs):
|
||||
|
||||
if line:
|
||||
filename = "{}:{}".format(filename, line)
|
||||
|
||||
self.args.append(filename)
|
||||
|
||||
def open_project(self, project):
|
||||
self.args.append(project)
|
||||
|
||||
def end(self, **kwargs):
|
||||
|
||||
atom = self.get_atom()
|
||||
|
||||
self.args.reverse()
|
||||
|
||||
args = [ atom ] + self.args
|
||||
args = [ renpy.exports.fsencode(i) for i in args ]
|
||||
|
||||
subprocess.Popen(args)
|
||||
|
||||
|
||||
def main():
|
||||
e = Editor()
|
||||
e.begin()
|
||||
|
||||
for i in sys.argv[1:]:
|
||||
e.open(i)
|
||||
|
||||
e.end()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,89 @@
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
import renpy
|
||||
|
||||
class Editor(renpy.editor.Editor):
|
||||
|
||||
has_projects = True
|
||||
|
||||
def get_code(self):
|
||||
"""
|
||||
Returns the path to the code executable.
|
||||
"""
|
||||
|
||||
system = __file__.endswith(" (System).edit.py")
|
||||
|
||||
if system:
|
||||
|
||||
if "RENPY_VSCODE" in os.environ:
|
||||
return os.environ["RENPY_VSCODE"]
|
||||
|
||||
if renpy.windows:
|
||||
return "code.cmd"
|
||||
|
||||
if renpy.macintosh and os.path.exists("/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code"):
|
||||
return "/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code"
|
||||
|
||||
return "code"
|
||||
|
||||
else:
|
||||
|
||||
RENPY_VSCODE = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "vscode"))
|
||||
|
||||
if renpy.windows:
|
||||
code = os.path.join(RENPY_VSCODE, "VSCode-win32-x64", "bin", "code.cmd")
|
||||
elif renpy.macintosh:
|
||||
code = os.path.join(RENPY_VSCODE, "Visual Studio Code.app", "Contents", "Resources", "app", "bin", "code")
|
||||
elif renpy.linux:
|
||||
if renpy.arch == "aarch64":
|
||||
arch = "arm64"
|
||||
elif renpy.arch == "armv7l":
|
||||
arch = "arm"
|
||||
else:
|
||||
arch = "x86_64"
|
||||
|
||||
code = os.path.join(RENPY_VSCODE, "VSCode-linux-" + arch, "bin", "code")
|
||||
else:
|
||||
code = "code"
|
||||
|
||||
return code
|
||||
|
||||
def open(self, filename, line=None, **kwargs):
|
||||
if line:
|
||||
filename = "{}:{}".format(filename, line)
|
||||
self.args.append(filename)
|
||||
|
||||
def open_project(self, project):
|
||||
self.args.append(project)
|
||||
|
||||
def begin(self, new_window=False, **kwargs):
|
||||
self.args = [ ]
|
||||
|
||||
def end(self, **kwargs):
|
||||
self.args.reverse()
|
||||
|
||||
code = self.get_code()
|
||||
args = [ code, "-g" ] + self.args
|
||||
args = [ renpy.exports.fsencode(i) for i in args ]
|
||||
|
||||
if renpy.windows:
|
||||
CREATE_NO_WINDOW = 0x08000000
|
||||
subprocess.Popen(args, creationflags=CREATE_NO_WINDOW)
|
||||
else:
|
||||
subprocess.Popen(args)
|
||||
|
||||
|
||||
|
||||
def main():
|
||||
e = Editor()
|
||||
e.begin()
|
||||
|
||||
for i in sys.argv[1:]:
|
||||
e.open(i)
|
||||
|
||||
e.end()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,89 @@
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
import renpy
|
||||
|
||||
class Editor(renpy.editor.Editor):
|
||||
|
||||
has_projects = True
|
||||
|
||||
def get_code(self):
|
||||
"""
|
||||
Returns the path to the code executable.
|
||||
"""
|
||||
|
||||
system = __file__.endswith(" (System).edit.py")
|
||||
|
||||
if system:
|
||||
|
||||
if "RENPY_VSCODE" in os.environ:
|
||||
return os.environ["RENPY_VSCODE"]
|
||||
|
||||
if renpy.windows:
|
||||
return "code.cmd"
|
||||
|
||||
if renpy.macintosh and os.path.exists("/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code"):
|
||||
return "/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code"
|
||||
|
||||
return "code"
|
||||
|
||||
else:
|
||||
|
||||
RENPY_VSCODE = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "vscode"))
|
||||
|
||||
if renpy.windows:
|
||||
code = os.path.join(RENPY_VSCODE, "VSCode-win32-x64", "bin", "code.cmd")
|
||||
elif renpy.macintosh:
|
||||
code = os.path.join(RENPY_VSCODE, "Visual Studio Code.app", "Contents", "Resources", "app", "bin", "code")
|
||||
elif renpy.linux:
|
||||
if renpy.arch == "aarch64":
|
||||
arch = "arm64"
|
||||
elif renpy.arch == "armv7l":
|
||||
arch = "arm"
|
||||
else:
|
||||
arch = "x86_64"
|
||||
|
||||
code = os.path.join(RENPY_VSCODE, "VSCode-linux-" + arch, "bin", "code")
|
||||
else:
|
||||
code = "code"
|
||||
|
||||
return code
|
||||
|
||||
def open(self, filename, line=None, **kwargs):
|
||||
if line:
|
||||
filename = "{}:{}".format(filename, line)
|
||||
self.args.append(filename)
|
||||
|
||||
def open_project(self, project):
|
||||
self.args.append(project)
|
||||
|
||||
def begin(self, new_window=False, **kwargs):
|
||||
self.args = [ ]
|
||||
|
||||
def end(self, **kwargs):
|
||||
self.args.reverse()
|
||||
|
||||
code = self.get_code()
|
||||
args = [ code, "-g" ] + self.args
|
||||
args = [ renpy.exports.fsencode(i) for i in args ]
|
||||
|
||||
if renpy.windows:
|
||||
CREATE_NO_WINDOW = 0x08000000
|
||||
subprocess.Popen(args, creationflags=CREATE_NO_WINDOW)
|
||||
else:
|
||||
subprocess.Popen(args)
|
||||
|
||||
|
||||
|
||||
def main():
|
||||
e = Editor()
|
||||
e.begin()
|
||||
|
||||
for i in sys.argv[1:]:
|
||||
e.open(i)
|
||||
|
||||
e.end()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -1,144 +0,0 @@
|
||||
import binascii
|
||||
|
||||
|
||||
def a2b(a):
|
||||
return binascii.a2b_hex(''.join(a.split()))
|
||||
|
||||
|
||||
resources = {
|
||||
260 : a2b('''
|
||||
01 00 ff ff 00 00 00 00 00 00 00 00 c8 00 c0 80
|
||||
02 00 00 00 00 00 b8 00 29 00 00 00 00 00 00 00
|
||||
08 00 90 01 00 01 4d 00 53 00 20 00 53 00 68 00
|
||||
65 00 6c 00 6c 00 20 00 44 00 6c 00 67 00 00 00
|
||||
00 00 00 00 00 00 00 00 01 00 01 50 7f 00 14 00
|
||||
32 00 0e 00 01 00 00 00 ff ff 80 00 4f 00 4b 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 04 08 00 50
|
||||
07 00 07 00 aa 00 0c 00 ea 03 00 00 ff ff 81 00
|
||||
00 00 00 00
|
||||
'''),
|
||||
261 : a2b('''
|
||||
01 00 ff ff 00 00 00 00 00 00 00 00 c8 00 c0 80
|
||||
04 00 00 00 00 00 b8 00 3a 00 00 00 00 00 00 00
|
||||
08 00 90 01 00 01 4d 00 53 00 20 00 53 00 68 00
|
||||
65 00 6c 00 6c 00 20 00 44 00 6c 00 67 00 00 00
|
||||
00 00 00 00 00 00 00 00 80 00 81 50 07 00 14 00
|
||||
aa 00 0c 00 ec 03 00 00 ff ff 81 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 01 00 01 50 7f 00 25 00
|
||||
32 00 0e 00 01 00 00 00 ff ff 80 00 4f 00 4b 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 50
|
||||
4a 00 25 00 32 00 0e 00 02 00 00 00 ff ff 80 00
|
||||
43 00 61 00 6e 00 63 00 65 00 6c 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 04 08 00 50 07 00 07 00
|
||||
aa 00 0c 00 eb 03 00 00 ff ff 81 00 00 00 00 00
|
||||
'''),
|
||||
262 : a2b('''
|
||||
01 00 ff ff 00 00 00 00 00 00 00 00 c8 00 c0 80
|
||||
04 00 00 00 00 00 b8 00 29 00 00 00 00 00 00 00
|
||||
08 00 90 01 00 01 4d 00 53 00 20 00 53 00 68 00
|
||||
65 00 6c 00 6c 00 20 00 44 00 6c 00 67 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 01 50 7f 00 14 00
|
||||
32 00 0e 00 06 00 00 00 ff ff 80 00 59 00 65 00
|
||||
73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
04 08 00 50 07 00 07 00 aa 00 0c 00 ed 03 00 00
|
||||
ff ff 81 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 01 50 07 00 14 00 32 00 0e 00 07 00 00 00
|
||||
ff ff 80 00 4e 00 6f 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 01 50 4b 00 14 00 32 00 0e 00
|
||||
02 00 00 00 ff ff 80 00 43 00 61 00 6e 00 63 00
|
||||
65 00 6c 00 00 00 00 00
|
||||
'''),
|
||||
263 : a2b('''
|
||||
01 00 ff ff 00 00 00 00 00 00 00 00 80 00 ca 80
|
||||
03 00 00 00 00 00 e2 00 29 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 81 50 07 00 14 00
|
||||
97 00 0e 00 eb 03 00 00 6d 00 73 00 63 00 74 00
|
||||
6c 00 73 00 5f 00 70 00 72 00 6f 00 67 00 72 00
|
||||
65 00 73 00 73 00 33 00 32 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 04 08 00 50 07 00 07 00
|
||||
d4 00 0c 00 ea 03 00 00 ff ff 81 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 50 a9 00 14 00
|
||||
32 00 0e 00 02 00 00 00 ff ff 80 00 43 00 61 00
|
||||
6e 00 63 00 65 00 6c 00 00 00 00 00
|
||||
'''),
|
||||
264 : a2b('''
|
||||
01 00 ff ff 00 00 00 00 00 00 00 00 c8 00 c0 80
|
||||
04 00 00 00 00 00 b8 00 3a 00 00 00 00 00 00 00
|
||||
08 00 90 01 00 01 4d 00 53 00 20 00 53 00 68 00
|
||||
65 00 6c 00 6c 00 20 00 44 00 6c 00 67 00 00 00
|
||||
00 00 00 00 00 00 00 00 a0 00 81 50 07 00 14 00
|
||||
aa 00 0c 00 ec 03 00 00 ff ff 81 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 01 00 01 50 7f 00 25 00
|
||||
32 00 0e 00 01 00 00 00 ff ff 80 00 4f 00 4b 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 50
|
||||
4a 00 25 00 32 00 0e 00 02 00 00 00 ff ff 80 00
|
||||
43 00 61 00 6e 00 63 00 65 00 6c 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 04 08 00 50 07 00 07 00
|
||||
aa 00 0c 00 eb 03 00 00 ff ff 81 00 00 00 00 00
|
||||
'''),
|
||||
265 : a2b('''
|
||||
01 00 ff ff 00 00 00 00 00 00 00 00 c8 00 c8 80
|
||||
12 00 00 00 00 00 d9 00 fc 00 00 00 00 00 00 00
|
||||
08 00 90 01 00 01 4d 00 53 00 20 00 53 00 68 00
|
||||
65 00 6c 00 6c 00 20 00 44 00 6c 00 67 00 00 00
|
||||
00 00 00 00 00 00 00 00 01 00 01 50 6c 00 ea 00
|
||||
30 00 0e 00 01 00 00 00 ff ff 80 00 4f 00 4b 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 50
|
||||
a2 00 ea 00 30 00 0e 00 02 00 00 00 ff ff 80 00
|
||||
43 00 61 00 6e 00 63 00 65 00 6c 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 07 00 00 50 06 00 06 00
|
||||
cc 00 4e 00 ff ff ff ff ff ff 80 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 03 00 21 50 48 00 12 00
|
||||
84 00 64 00 03 00 00 00 ff ff 85 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 02 50 0c 00 24 00
|
||||
c0 00 08 00 04 00 00 00 ff ff 82 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 80 00 81 50 0c 00 30 00
|
||||
c0 00 0e 00 05 00 00 00 ff ff 81 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 01 50 9c 00 42 00
|
||||
30 00 0e 00 06 00 00 00 ff ff 80 00 41 00 64 00
|
||||
64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
07 00 00 50 06 00 54 00 cb 00 3c 00 ff ff ff ff
|
||||
ff ff 80 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
03 00 21 50 48 00 61 00 84 00 64 00 07 00 00 00
|
||||
ff ff 85 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 02 50 0c 00 72 00 c0 00 08 00 08 00 00 00
|
||||
ff ff 82 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 01 50 9c 00 7e 00 30 00 0e 00 09 00 00 00
|
||||
ff ff 80 00 41 00 64 00 64 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 01 50 06 00 96 00
|
||||
42 00 0e 00 0a 00 00 00 ff ff 80 00 41 00 64 00
|
||||
64 00 20 00 66 00 69 00 6c 00 65 00 2e 00 2e 00
|
||||
2e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 01 50 4e 00 96 00 42 00 0e 00 0b 00 00 00
|
||||
ff ff 80 00 41 00 64 00 64 00 20 00 6e 00 65 00
|
||||
77 00 20 00 66 00 69 00 6c 00 65 00 2e 00 2e 00
|
||||
2e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 01 50 06 00 a8 00 42 00 0e 00 0c 00 00 00
|
||||
ff ff 80 00 41 00 64 00 64 00 20 00 66 00 6f 00
|
||||
6c 00 64 00 65 00 72 00 2e 00 2e 00 2e 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 50
|
||||
06 00 c6 00 cc 00 1e 00 ff ff ff ff ff ff 80 00
|
||||
43 00 6f 00 6d 00 6d 00 61 00 6e 00 64 00 20 00
|
||||
6c 00 69 00 6e 00 65 00 3a 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 80 00 81 50 0c 00 d2 00
|
||||
c0 00 0e 00 0e 00 00 00 ff ff 81 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 02 50 0c 00 14 00
|
||||
3c 00 08 00 1e 00 00 00 ff ff 82 00 4f 00 70 00
|
||||
74 00 69 00 6f 00 6e 00 3a 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 00 00 00 00 02 50 0c 00 63 00
|
||||
3c 00 08 00 46 00 00 00 ff ff 82 00 43 00 6f 00
|
||||
6d 00 6d 00 61 00 6e 00 64 00 3a 00 00 00 00 00
|
||||
'''),
|
||||
270 : a2b('''
|
||||
01 00 ff ff 00 00 00 00 00 00 00 00 48 04 00 44
|
||||
02 00 00 00 00 00 23 01 1a 00 00 00 00 00 00 00
|
||||
08 00 00 00 00 00 4d 00 53 00 20 00 53 00 68 00
|
||||
65 00 6c 00 6c 00 20 00 44 00 6c 00 67 00 00 00
|
||||
00 00 00 00 00 00 00 00 01 00 02 50 00 00 07 00
|
||||
23 01 08 00 ff ff ff ff ff ff 82 00 53 00 74 00
|
||||
61 00 74 00 69 00 63 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00 02 40 00 00 12 00 23 01 08 00
|
||||
5f 04 00 00 ff ff 82 00 73 00 74 00 63 00 33 00
|
||||
32 00 00 00 00 00
|
||||
'''),
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -54,7 +54,7 @@ label add_file:
|
||||
|
||||
try:
|
||||
os.makedirs(dir)
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
contents = u"\uFEFF"
|
||||
|
||||
+253
-63
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -19,37 +19,49 @@
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
default persistent.android_bundle = False
|
||||
|
||||
init python:
|
||||
ANDROID_NO_RAPT = 0
|
||||
ANDROID_NO_JDK = 1
|
||||
ANDROID_NO_SDK = 2
|
||||
ANDROID_NO_KEY = 3
|
||||
ANDROID_NO_CONFIG = 4
|
||||
ANDROID_OK = 5
|
||||
ANDROID_NO_BUNDLE_KEY = 4
|
||||
ANDROID_NO_CONFIG = 5
|
||||
ANDROID_NO_BUNDLE = 6
|
||||
ANDROID_OK = 7
|
||||
|
||||
JDK_REQUIREMENT=8
|
||||
|
||||
NO_RAPT_TEXT = _("To build Android packages, please download RAPT, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher.")
|
||||
NO_JDK_TEXT = _("A 64-bit/x64 Java 8 Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}download and install the JDK{/a}, then restart the Ren'Py launcher.")
|
||||
NO_JDK_TEXT = _("A 64-bit/x64 Java [JDK_REQUIREMENT] Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=https://www.renpy.org/jdk/[JDK_REQUIREMENT]}download and install the JDK{/a}, then restart the Ren'Py launcher.")
|
||||
NO_SDK_TEXT = _("RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this.")
|
||||
NO_KEY_TEXT = _("RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore.")
|
||||
NO_KEY_TEXT = _("RAPT has been installed, but a key hasn't been configured. Please generate new keys, or copy android.keystore and bundle.keystore to the base directory.")
|
||||
NO_CONFIG_TEXT = _("The current project has not been configured. Use \"Configure\" to configure it before building.")
|
||||
NO_BUNDLE_TEXT = _("Please select if you want a Play Bundle (for Google Play), or a Universal APK (for sideloading and other app stores).")
|
||||
OK_TEXT = _("Choose \"Build\" to build the current project, or attach an Android device and choose \"Build & Install\" to build and install it on the device.")
|
||||
|
||||
PHONE_TEXT = _("Attempts to emulate an Android phone.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button.")
|
||||
TABLET_TEXT = _("Attempts to emulate an Android tablet.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button.")
|
||||
OUYA_TEXT = _("Attempts to emulate a televison-based Android console, like the OUYA or Fire TV.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button.")
|
||||
OUYA_TEXT = _("Attempts to emulate a televison-based Android console.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button.")
|
||||
|
||||
INSTALL_SDK_TEXT = _("Downloads and installs the Android SDK and supporting packages. Optionally, generates the keys required to sign the package.")
|
||||
INSTALL_SDK_TEXT = _("Downloads and installs the Android SDK and supporting packages.")
|
||||
GENERATE_KEYS_TEXT = _("Generates the keys required to sign the package.")
|
||||
CONFIGURE_TEXT = _("Configures the package name, version, and other information about this project.")
|
||||
PLAY_KEYS_TEXT = _("Opens the file containing the Google Play keys in the editor.\n\nThis is only needed if the application is using an expansion APK. Read the documentation for more details.")
|
||||
BUILD_TEXT = _("Builds the Android package.")
|
||||
BUILD_AND_INSTALL_TEXT = _("Builds the Android package, and installs it on an Android device connected to your computer.")
|
||||
BUILD_INSTALL_AND_LAUNCH_TEXT = _("Builds the Android package, installs it on an Android device connected to your computer, then launches the app on your device.")
|
||||
|
||||
LOGCAT_TEXT = _("Retrieves the log from the Android device and writes it to a file.")
|
||||
LIST_DEVICES_TEXT = _("Lists the connected devices.")
|
||||
PAIR_TEXT = _("Pairs with a device over Wi-Fi, on Android 11+.")
|
||||
CONNECT_TEXT = _("Connects to a device over Wi-Fi, on Android 11+.")
|
||||
DISCONNECT_TEXT = _("Disconnects a device connected over Wi-Fi.")
|
||||
|
||||
DEBUG_TEXT = _("Selects the Debug build, which can be accessed through Android Studio. Changing between debug and release builds requires an uninstall from your device.")
|
||||
RELEASE_TEXT = _("Selects the Release build, which can be uploaded to stores. Changing between debug and release builds requires an uninstall from your device.")
|
||||
CLEAN_TEXT = _("Removes Android temporary files.")
|
||||
|
||||
PLAY_BUNDLE_TEXT = _("Builds an Android App Bundle (ABB), intended to be uploaded to Google Play. This can include up to 2GB of data.")
|
||||
UNIVERSAL_APK_TEXT = _("Builds a Universal APK package, intended for sideloading and stores other than Google Play. This can include up to 2GB of data.")
|
||||
|
||||
import subprocess
|
||||
import re
|
||||
@@ -82,6 +94,7 @@ init python:
|
||||
import rapt.install_sdk
|
||||
import rapt.plat
|
||||
import rapt.interface
|
||||
import rapt.keys
|
||||
|
||||
rapt.plat.renpy = True
|
||||
rapt.plat.translate = __
|
||||
@@ -100,10 +113,16 @@ init python:
|
||||
return ANDROID_NO_JDK
|
||||
if not os.path.exists(rapt.plat.adb):
|
||||
return ANDROID_NO_SDK
|
||||
if not os.path.exists(rapt.plat.path("project/local.properties")):
|
||||
if not rapt.keys.keys_exist(project.current.path):
|
||||
return ANDROID_NO_KEY
|
||||
if not os.path.exists(os.path.join(project.current.path, ".android.json")):
|
||||
if not any([
|
||||
os.path.exists(os.path.join(project.current.path, "android.json")),
|
||||
os.path.exists(os.path.join(project.current.path, ".android.json"))
|
||||
]):
|
||||
return ANDROID_NO_CONFIG
|
||||
if persistent.android_bundle is None:
|
||||
return ANDROID_NO_BUNDLE
|
||||
|
||||
return ANDROID_OK
|
||||
|
||||
|
||||
@@ -122,6 +141,8 @@ init python:
|
||||
return NO_KEY_TEXT
|
||||
if state == ANDROID_NO_CONFIG:
|
||||
return NO_CONFIG_TEXT
|
||||
if state == ANDROID_NO_BUNDLE:
|
||||
return NO_BUNDLE_TEXT
|
||||
if state == ANDROID_OK:
|
||||
return OK_TEXT
|
||||
|
||||
@@ -160,34 +181,26 @@ init python:
|
||||
|
||||
build = p.dump["build"]
|
||||
|
||||
filename = os.path.join(p.path, ".android.json")
|
||||
|
||||
with open(filename, "rb") as f:
|
||||
android_json = json.load(f)
|
||||
|
||||
old_android_json = dict(android_json)
|
||||
c = rapt.configure.Configuration(p.path)
|
||||
|
||||
if "google_play_key" in build:
|
||||
android_json["google_play_key"] = build["google_play_key"]
|
||||
c.google_play_key = build["google_play_key"]
|
||||
else:
|
||||
android_json.pop("google_play_key", None)
|
||||
c.google_play_key = None
|
||||
|
||||
if "google_play_salt" in build:
|
||||
|
||||
if len(build["google_play_salt"]) != 20:
|
||||
raise Exception("build.google_play_salt must be exactly 20 bytes long.")
|
||||
|
||||
android_json["google_play_salt"] = ", ".join(str(i) for i in build["google_play_salt"])
|
||||
c.google_play_salt = ", ".join(str(i) for i in build["google_play_salt"])
|
||||
else:
|
||||
android_json.pop("google_play_salt", None)
|
||||
c.google_play_salt = None
|
||||
|
||||
if android_json != old_android_json:
|
||||
|
||||
with open(filename, "wb") as f:
|
||||
json.dump(android_json, f)
|
||||
c.save(p.path)
|
||||
|
||||
|
||||
def android_build(command, p=None, gui=True, launch=False, destination=None, opendir=False):
|
||||
def android_build(p=None, gui=True, bundle=False, install=False, launch=False, destination=None, opendir=False):
|
||||
"""
|
||||
This actually builds the package.
|
||||
"""
|
||||
@@ -235,7 +248,7 @@ init python:
|
||||
parent = os.path.dirname(p.path)
|
||||
destination_dir = os.path.join(parent, destination)
|
||||
|
||||
except:
|
||||
except Exception:
|
||||
destination_dir = None
|
||||
|
||||
dir_to_open = source_dir
|
||||
@@ -246,7 +259,7 @@ init python:
|
||||
|
||||
try:
|
||||
os.makedirs(destination_dir)
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
try:
|
||||
@@ -256,17 +269,18 @@ init python:
|
||||
|
||||
dir_to_open = destination_dir
|
||||
|
||||
except:
|
||||
except Exception:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
pass
|
||||
|
||||
if opendir:
|
||||
store.OpenDirectory(dir_to_open)()
|
||||
dir_to_open = os.path.join(p.path, dir_to_open)
|
||||
renpy.run(store.OpenDirectory(dir_to_open, absolute=True))
|
||||
|
||||
|
||||
with interface.nolinks():
|
||||
rapt.build.build(rapt_interface, dist, command, launch=launch, finished=finished)
|
||||
rapt.build.build(rapt_interface, dist, p.path, bundle=bundle, install=install, launch=launch, finished=finished, permissions=p.dump['build']['android_permissions'])
|
||||
|
||||
|
||||
def android_build_argument(cmd):
|
||||
@@ -366,29 +380,32 @@ screen android:
|
||||
frame style "l_indent":
|
||||
|
||||
has vbox
|
||||
|
||||
hbox:
|
||||
spacing 15
|
||||
|
||||
textbutton _("Debug"):
|
||||
action SetDict(project.current.data, "android_build", "Debug")
|
||||
hovered tt.Action(DEBUG_TEXT)
|
||||
|
||||
textbutton _("Release"):
|
||||
action SetDict(project.current.data, "android_build", "Release")
|
||||
hovered tt.Action(RELEASE_TEXT)
|
||||
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
textbutton _("Install SDK & Create Keys"):
|
||||
textbutton _("Install SDK"):
|
||||
action AndroidIfState(state, ANDROID_NO_SDK, Jump("android_installsdk"))
|
||||
hovered tt.Action(INSTALL_SDK_TEXT)
|
||||
|
||||
textbutton _("Generate Keys"):
|
||||
action AndroidIfState(state, ANDROID_NO_KEY, Jump("android_keys"))
|
||||
hovered tt.Action(GENERATE_KEYS_TEXT)
|
||||
|
||||
textbutton _("Configure"):
|
||||
action AndroidIfState(state, ANDROID_NO_CONFIG, Jump("android_configure"))
|
||||
action AndroidIfState(state, ANDROID_NO_KEY, Jump("android_configure"))
|
||||
hovered tt.Action(CONFIGURE_TEXT)
|
||||
|
||||
add SPACER
|
||||
|
||||
textbutton _("Play Bundle"):
|
||||
action SetField(persistent, "android_bundle", True)
|
||||
hovered tt.Action(PLAY_BUNDLE_TEXT)
|
||||
style "l_checkbox"
|
||||
|
||||
textbutton _("Universal APK"):
|
||||
action SetField(persistent, "android_bundle", False)
|
||||
hovered tt.Action(UNIVERSAL_APK_TEXT)
|
||||
style "l_checkbox"
|
||||
|
||||
add SPACER
|
||||
|
||||
textbutton _("Build Package"):
|
||||
action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build"))
|
||||
hovered tt.Action(BUILD_TEXT)
|
||||
@@ -401,7 +418,19 @@ screen android:
|
||||
action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build_install_and_launch"))
|
||||
hovered tt.Action(BUILD_INSTALL_AND_LAUNCH_TEXT)
|
||||
|
||||
add SPACER
|
||||
add SPACER
|
||||
|
||||
textbutton _("Force Recompile") action DataToggle("force_recompile") style "l_checkbox"
|
||||
|
||||
|
||||
# Right side.
|
||||
frame:
|
||||
style "l_indent"
|
||||
xmaximum ONEHALF
|
||||
xfill True
|
||||
|
||||
has vbox
|
||||
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
@@ -420,15 +449,27 @@ screen android:
|
||||
action AndroidIfState(state, ANDROID_NO_KEY, Jump("logcat"))
|
||||
hovered tt.Action(LOGCAT_TEXT)
|
||||
|
||||
textbutton _("List Devices"):
|
||||
action AndroidIfState(state, ANDROID_NO_KEY, Jump("android_list_devices"))
|
||||
hovered tt.Action(LIST_DEVICES_TEXT)
|
||||
|
||||
# Right side.
|
||||
frame:
|
||||
style "l_indent"
|
||||
xmaximum ONEHALF
|
||||
xfill True
|
||||
textbutton _("Wi-Fi Debugging Pair"):
|
||||
action AndroidIfState(state, ANDROID_NO_KEY, Jump("android_pair"))
|
||||
hovered tt.Action(PAIR_TEXT)
|
||||
|
||||
has vbox
|
||||
textbutton _("Wi-Fi Debugging Connect"):
|
||||
action AndroidIfState(state, ANDROID_NO_KEY, Jump("android_connect"))
|
||||
hovered tt.Action(CONNECT_TEXT)
|
||||
|
||||
textbutton _("Wi-Fi Debugging Disconnect"):
|
||||
action AndroidIfState(state, ANDROID_NO_KEY, Jump("android_disconnect"))
|
||||
hovered tt.Action(DISCONNECT_TEXT)
|
||||
|
||||
textbutton _("Clean"):
|
||||
action AndroidIfState(state, ANDROID_NO_KEY, Jump("android_clean"))
|
||||
hovered tt.Action(CLEAN_TEXT)
|
||||
|
||||
add SPACER
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
@@ -464,6 +505,14 @@ label android_installsdk:
|
||||
jump android
|
||||
|
||||
|
||||
label android_keys:
|
||||
|
||||
python:
|
||||
rapt.keys.generate_keys(MobileInterface("android"), project.current.path)
|
||||
|
||||
jump android
|
||||
|
||||
|
||||
label android_configure:
|
||||
|
||||
python:
|
||||
@@ -480,20 +529,20 @@ label android_configure:
|
||||
|
||||
label android_build:
|
||||
|
||||
$ android_build([ android_build_argument("assemble") ], opendir=True)
|
||||
$ android_build(bundle=persistent.android_bundle, opendir=True)
|
||||
|
||||
jump android
|
||||
|
||||
|
||||
label android_build_and_install:
|
||||
|
||||
$ android_build([ android_build_argument("install") ])
|
||||
$ android_build(bundle=persistent.android_bundle, install=True, opendir=True)
|
||||
|
||||
jump android
|
||||
|
||||
label android_build_install_and_launch:
|
||||
|
||||
$ android_build([android_build_argument("install") ], launch=True)
|
||||
$ android_build(bundle=persistent.android_bundle, install=True, launch=True, opendir=True)
|
||||
|
||||
jump android
|
||||
|
||||
@@ -508,22 +557,163 @@ label logcat:
|
||||
|
||||
jump android
|
||||
|
||||
label android_list_devices:
|
||||
|
||||
python hide:
|
||||
cc = ConsoleCommand()
|
||||
cc.add(rapt.plat.adb, "devices")
|
||||
cc.run()
|
||||
|
||||
jump android
|
||||
|
||||
|
||||
label android_pair:
|
||||
|
||||
python hide:
|
||||
pairing_code = interface.input(
|
||||
_("Wi-Fi Pairing Code"),
|
||||
_("If supported, this can be found in 'Developer options', 'Wireless debugging', 'Pair device with pairing code'."),
|
||||
sanitize=False,
|
||||
cancel=Jump("android"),
|
||||
)
|
||||
|
||||
host = interface.input(
|
||||
_("Pairing Host & Port"),
|
||||
_("If supported, this can be found in 'Developer options', 'Wireless debugging', 'Pair device with pairing code'."),
|
||||
sanitize=False,
|
||||
cancel=Jump("android"),
|
||||
)
|
||||
|
||||
cc = ConsoleCommand()
|
||||
cc.add(rapt.plat.adb, "pair", host, pairing_code)
|
||||
cc.run()
|
||||
|
||||
jump android
|
||||
|
||||
label android_connect:
|
||||
|
||||
python hide:
|
||||
host = interface.input(
|
||||
_("IP Address & Port"),
|
||||
_("If supported, this can be found in 'Developer options', 'Wireless debugging'."),
|
||||
sanitize=False,
|
||||
cancel=Jump("android"),
|
||||
)
|
||||
|
||||
cc = ConsoleCommand()
|
||||
cc.add(rapt.plat.adb, "connect", host)
|
||||
cc.run()
|
||||
|
||||
jump android
|
||||
|
||||
label android_disconnect:
|
||||
|
||||
python hide:
|
||||
host = interface.input(
|
||||
_("IP Address & Port"),
|
||||
_("This can be found in 'List Devices'."),
|
||||
sanitize=False,
|
||||
cancel=Jump("android"),
|
||||
)
|
||||
|
||||
cc = ConsoleCommand()
|
||||
cc.add(rapt.plat.adb, "disconnect", host)
|
||||
cc.run()
|
||||
|
||||
jump android
|
||||
|
||||
label android_clean:
|
||||
|
||||
python hide:
|
||||
import shutil
|
||||
import time
|
||||
|
||||
interface = MobileInterface("android")
|
||||
interface.info(_("Cleaning up Android project."))
|
||||
|
||||
# Get the android json file, for the update_always key.
|
||||
try:
|
||||
filename = os.path.join(project.current.path, ".android.json")
|
||||
with open(filename, "rb") as f:
|
||||
android_json = json.load(f)
|
||||
except Exception:
|
||||
android_json = {}
|
||||
|
||||
# Clean up the files.
|
||||
def clean(path):
|
||||
if os.path.exists(path):
|
||||
shutil.rmtree(path)
|
||||
|
||||
if android_json.get("update_always", True):
|
||||
|
||||
try:
|
||||
with open(rapt.plat.path("project/local.properties"), "r") as f:
|
||||
local_properties = f.read()
|
||||
except Exception:
|
||||
local_properties = None
|
||||
|
||||
try:
|
||||
with open(rapt.plat.path("project/bundle.properties"), "r") as f:
|
||||
bundle_properties = f.read()
|
||||
except Exception:
|
||||
bundle_properties = None
|
||||
|
||||
try:
|
||||
with open(rapt.plat.path("project/gradle.properties"), "r") as f:
|
||||
gradle_properties = f.read()
|
||||
except Exception:
|
||||
gradle_properties = None
|
||||
|
||||
clean(rapt.plat.path("project"))
|
||||
|
||||
if local_properties or bundle_properties or gradle_properties:
|
||||
|
||||
os.mkdir(rapt.plat.path("project"))
|
||||
|
||||
if local_properties:
|
||||
|
||||
with open(rapt.plat.path("project/local.properties"), "w") as f:
|
||||
f.write(local_properties)
|
||||
|
||||
if bundle_properties:
|
||||
|
||||
with open(rapt.plat.path("project/bundle.properties"), "w") as f:
|
||||
f.write(bundle_properties)
|
||||
|
||||
if gradle_properties:
|
||||
|
||||
with open(rapt.plat.path("project/gradle.properties"), "w") as f:
|
||||
f.write(gradle_properties)
|
||||
|
||||
clean(rapt.plat.path("bin"))
|
||||
clean(project.current.temp_filename("android.dist"))
|
||||
|
||||
# This can go really fast, so pause so it looks like something is happening.
|
||||
time.sleep(.5)
|
||||
|
||||
|
||||
jump android
|
||||
|
||||
|
||||
init python:
|
||||
|
||||
def android_build_command():
|
||||
ap = renpy.arguments.ArgumentParser()
|
||||
ap.add_argument("android_project", help="The path to the project directory.")
|
||||
ap.add_argument("gradle_commands", help="Commands to pass to gradle. (Try 'installDebug' or 'assembleRelease'.)", nargs='+')
|
||||
ap.add_argument("--launch", action="store_true", help="Launches the app after build and install compete.")
|
||||
ap.add_argument("--bundle", action="store_true", help="Builds an android app bundle.")
|
||||
ap.add_argument("--install", action="store_true", help="Installs the app on a device.")
|
||||
ap.add_argument("--launch", action="store_true", help="Launches the app after build and install complete. Implies --install.")
|
||||
ap.add_argument("--destination", "--dest", default=None, action="store", help="The directory where the packaged files should be placed.")
|
||||
|
||||
args = ap.parse_args()
|
||||
|
||||
if args.launch:
|
||||
args.install = True
|
||||
|
||||
p = project.Project(args.android_project)
|
||||
|
||||
android_build(args.gradle_commands, p=p, gui=False, launch=args.launch, destination=args.destination)
|
||||
android_build(p=p, gui=False, bundle=args.bundle, install=args.install, launch=args.launch, destination=args.destination)
|
||||
|
||||
return False
|
||||
|
||||
renpy.arguments.register_command("android_build", android_build_command)
|
||||
|
||||
|
||||
@@ -6,19 +6,18 @@
|
||||
init python hide:
|
||||
__("{} is not a directory.")
|
||||
__("{} does not contain a Ren'Py game.")
|
||||
__("{} does not contain a Ren'Py game.")
|
||||
__("Run configure before attempting to build the app.")
|
||||
__("Google Play support is enabled, but build.google_play_key is not defined.")
|
||||
__("Updating project.")
|
||||
__("Creating assets directory.")
|
||||
__("Creating expansion file.")
|
||||
__("Packaging internal data.")
|
||||
__("I'm using Gradle to build the package.")
|
||||
__("Uploading expansion file.")
|
||||
__("The build seems to have failed.")
|
||||
__("I'm installing the bundle.")
|
||||
__("Installing the bundle appears to have failed.")
|
||||
__("Launching app.")
|
||||
__("Launching the app appears to have failed.")
|
||||
__("The build seems to have succeeded.")
|
||||
__("The arm64-v8a version works on newer Android devices, the armeabi-v7a version works on older devices, and the x86_64 version works on the simulator and chromebooks.")
|
||||
__("The universal version works everywhere but is larger.")
|
||||
__("What is the full name of your application? This name will appear in the list of installed applications.")
|
||||
__("What is the short name of your application? This name will be used in the launcher, and for application shortcuts.")
|
||||
__("What is the name of the package?\n\nThis is usually of the form com.domain.program or com.domain.email.program. It may only contain ASCII letters and dots. It must contain at least one dot.")
|
||||
@@ -30,8 +29,8 @@ init python hide:
|
||||
__("{} is a Java keyword, and can't be used as part of a package name.")
|
||||
__("What is the application's version?\n\nThis should be the human-readable version that you would present to a person. It must contain only numbers and dots.")
|
||||
__("The version number must contain only numbers and dots.")
|
||||
__("What is the version code?\n\nThis must be a positive integer number, and the value should increase between versions.")
|
||||
__("The numeric version must contain only numbers.")
|
||||
__("How much RAM (in GB) do you want to allocate to Gradle?\nThis must be a positive integer number.")
|
||||
__("The RAM size must contain only numbers and be positive.")
|
||||
__("How would you like your application to be displayed?")
|
||||
__("In landscape orientation.")
|
||||
__("In portrait orientation.")
|
||||
@@ -41,18 +40,13 @@ init python hide:
|
||||
__("Amazon App Store.")
|
||||
__("Both, in one app.")
|
||||
__("Neither.")
|
||||
__("Would you like to create an expansion APK?")
|
||||
__("Automatically installing expansion APKs {a=https://issuetracker.google.com/issues/160942333}may not work on Android 11{/a}.")
|
||||
__("No. Size limit of 100 MB on Google Play, but can be distributed through other stores and sideloaded.")
|
||||
__("Yes. 2 GB size limit, but won't work outside of Google Play. (Read the documentation to get this to work.)")
|
||||
__("Do you want to allow the app to access the Internet?")
|
||||
__("Do you want to automatically update the Java source code?")
|
||||
__("Yes. This is the best choice for most projects.")
|
||||
__("No. This may require manual updates when Ren'Py or the project configuration changes.")
|
||||
__("Unknown configuration variable: {}")
|
||||
__("I'm compiling a short test program, to see if you have a working JDK on your system.")
|
||||
__("I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Without a working JDK, I can't continue.")
|
||||
__("The version of Java on your computer does not appear to be JDK 8, which is the only version supported by the Android SDK. If you need to install JDK 8, you can download it from:\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java.")
|
||||
__("I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Please make sure you installed the 'JavaSoft (Oracle) registry keys'.\n\nWithout a working JDK, I can't continue.")
|
||||
__("The version of Java on your computer does not appear to be JDK 8, which is the only version supported by the Android SDK. If you need to install JDK 8, you can download it from:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java.")
|
||||
__("The JDK is present and working. Good!")
|
||||
__("The Android SDK has already been unpacked.")
|
||||
__("Do you accept the Android SDK Terms and Conditions?")
|
||||
@@ -64,11 +58,17 @@ init python hide:
|
||||
__("I was unable to accept the Android licenses.")
|
||||
__("I was unable to install the required Android packages.")
|
||||
__("I've finished installing the required Android packages.")
|
||||
__("You set the keystore yourself, so I'll assume it's how you want it.")
|
||||
__("You've already created an Android keystore, so I won't create a new one for you.")
|
||||
__("I can create an application signing key for you. Signing an application with this key allows it to be placed in the Android Market and other app stores.\n\nDo you want to create a key?")
|
||||
__("I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?")
|
||||
__("It looks like you're ready to start packaging games.")
|
||||
__("Please enter your name or the name of your organization.")
|
||||
__("I found an android.keystore file in the rapt directory. Do you want to use this file?")
|
||||
__("I can create an application signing key for you. This key is required to create Universal APK for sideloading and stores other than Google Play.\n\nDo you want to create a key?")
|
||||
__("I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?")
|
||||
__("\n\nSaying 'No' will prevent key creation.")
|
||||
__("Could not create android.keystore. Is keytool in your path?")
|
||||
__("I've finished creating android.keystore. Please back it up, and keep it in a safe place.")
|
||||
__("It looks like you're ready to start packaging games.")
|
||||
__("I found a bundle.keystore file in the rapt directory. Do you want to use this file?")
|
||||
__("I can create a bundle signing key for you. This key is required to build an Android App Bundle (AAB) for upload to Google Play.\n\nDo you want to create a key?")
|
||||
__("I will create the key in the bundle.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of bundle.keystore, and keep it in a safe place?")
|
||||
__("\n\nSaying 'No' will prevent key creation.")
|
||||
__("Could not create bundle.keystore. Is keytool in your path?")
|
||||
__("I've opened the directory containing android.keystore and bundle.keystore. Please back them up, and keep them in a safe place.")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -23,16 +23,17 @@
|
||||
# Contains a reasonable description of the format.
|
||||
|
||||
from __future__ import print_function
|
||||
from renpy.compat import bchr, chr, str, PY2
|
||||
|
||||
import struct
|
||||
import sys
|
||||
import array
|
||||
import pefile # @UnresolvedImport
|
||||
import pefile
|
||||
|
||||
|
||||
# This class performs various operations on memory-loaded binary files,
|
||||
# including modifications.
|
||||
|
||||
|
||||
class BinFile(object):
|
||||
|
||||
def set_u32(self, addr, value):
|
||||
@@ -67,7 +68,7 @@ class BinFile(object):
|
||||
|
||||
rv = u""
|
||||
for _i in range(c):
|
||||
rv += unichr(self.u16())
|
||||
rv += chr(self.u16())
|
||||
|
||||
return rv
|
||||
|
||||
@@ -75,14 +76,24 @@ class BinFile(object):
|
||||
self.addr = addr
|
||||
|
||||
def tostring(self):
|
||||
return self.a.tostring()
|
||||
if PY2:
|
||||
return self.a.tostring() # type: ignore
|
||||
else:
|
||||
return self.a.tobytes()
|
||||
|
||||
def substring(self, start, len): # @ReservedAssignment
|
||||
return self.a[start:start + len].tostring()
|
||||
if PY2:
|
||||
return self.a[start:start + len].tostring() # type: ignore
|
||||
else:
|
||||
return self.a[start:start + len].tobytes()
|
||||
|
||||
def __init__(self, data):
|
||||
self.a = array.array(b'B')
|
||||
self.a.fromstring(data)
|
||||
self.a = array.array('B')
|
||||
|
||||
if PY2:
|
||||
self.a.fromstring(data) # type: ignore
|
||||
else:
|
||||
self.a.frombytes(data)
|
||||
|
||||
##############################################################################
|
||||
# These functions parse data out of the file. In these functions, offset is
|
||||
@@ -106,7 +117,7 @@ def parse_data(bf, offset):
|
||||
|
||||
bf.seek(data_offset - resource_virtual)
|
||||
for _i in range(data_len):
|
||||
l.append(chr(bf.u8()))
|
||||
l.append(bchr(bf.u8()))
|
||||
|
||||
return (code_page, b"".join(l))
|
||||
|
||||
@@ -210,8 +221,8 @@ class Packer(object):
|
||||
return rv
|
||||
|
||||
def pack_dict(self, d, offset):
|
||||
name_entries = sorted((a, b) for a, b in d.iteritems() if isinstance(a, unicode))
|
||||
id_entries = sorted((a, b) for a, b in d.iteritems() if isinstance(a, int))
|
||||
name_entries = sorted((a, b) for a, b in d.items() if isinstance(a, str))
|
||||
id_entries = sorted((a, b) for a, b in d.items() if isinstance(a, int))
|
||||
|
||||
rv = struct.pack("<IIHHHH", 0, 0, 4, 0, len(name_entries), len(id_entries))
|
||||
|
||||
@@ -220,7 +231,7 @@ class Packer(object):
|
||||
rest = b""
|
||||
|
||||
for (name, value) in name_entries + id_entries:
|
||||
if isinstance(name, unicode):
|
||||
if isinstance(name, str):
|
||||
name = 0x80000000 | self.pack_name(name)
|
||||
|
||||
if isinstance(value, dict):
|
||||
@@ -318,8 +329,8 @@ def change_icons(oldexe, icofn):
|
||||
# As a related note, apparently this flag has been deprecated, but appears to be set (I think ..) in the renpy.exe that is used to build from..
|
||||
# no idea of a consequence, just an observation
|
||||
# https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#characteristics , see "IMAGE_FILE_LINE_NUMS_STRIPPED" :
|
||||
# COFF line numbers have been removed. This flag is deprecated and should be zero.
|
||||
# In renpy.exe, this 2-byte flag is @ 0x096 and 0x097 in little-endian
|
||||
# COFF line numbers have been removed. This flag is deprecated and should be zero.
|
||||
# In renpy.exe, this 2-byte flag is @ 0x096 and 0x097 in little-endian
|
||||
######
|
||||
|
||||
f.close()
|
||||
@@ -338,10 +349,10 @@ def change_icons(oldexe, icofn):
|
||||
#From note about flags above regarding image flags. These two should be 0
|
||||
pe.FILE_HEADER.Characteristics = pe.FILE_HEADER.Characteristics & (~pefile.IMAGE_CHARACTERISTICS["IMAGE_FILE_LINE_NUMS_STRIPPED"])
|
||||
pe.FILE_HEADER.Characteristics = pe.FILE_HEADER.Characteristics & (~pefile.IMAGE_CHARACTERISTICS["IMAGE_FILE_LOCAL_SYMS_STRIPPED"])
|
||||
|
||||
|
||||
#Per docs, symbol table can just be removed
|
||||
#https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#coff-file-header-object-and-image see "PointerToSymbolTable" and "NumberOfSymbols "
|
||||
|
||||
|
||||
pe.FILE_HEADER.PointerToSymbolTable = 0
|
||||
pe.FILE_HEADER.NumberOfSymbols = 0
|
||||
|
||||
@@ -361,7 +372,7 @@ def change_icons(oldexe, icofn):
|
||||
#
|
||||
#####
|
||||
# SizeOfImage must be aligned to SectionAlignment (memory alignment)
|
||||
# There is NO padding needed, the image size number simply needs to be aligned to >= the
|
||||
# There is NO padding needed, the image size number simply needs to be aligned to >= the
|
||||
|
||||
memoryalignment = pe.OPTIONAL_HEADER.SectionAlignment
|
||||
filealignment = pe.OPTIONAL_HEADER.FileAlignment
|
||||
@@ -404,11 +415,10 @@ def change_icons(oldexe, icofn):
|
||||
#The symbol table is simply left off. Its size DOES factor into ImageSize, but we didn't calculate it above, so fine
|
||||
#Correctly checksum the file. The entire file is involved in the calculation, so a new PE object must be generated for the calculation to work against
|
||||
newFile = pe.write()[:base] + rsrc
|
||||
newpe = pefile.PE(data=newFile)
|
||||
newpe = pefile.PE(data=bytes(newFile))
|
||||
newpe.OPTIONAL_HEADER.CheckSum = newpe.generate_checksum()
|
||||
|
||||
return newpe.write()
|
||||
|
||||
return bytes(newpe.write())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -19,24 +19,12 @@
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
|
||||
|
||||
init python:
|
||||
|
||||
if renpy.windows:
|
||||
import EasyDialogsWin as EasyDialogs
|
||||
else:
|
||||
EasyDialogs = None
|
||||
|
||||
pyobjus = None
|
||||
|
||||
if renpy.macintosh:
|
||||
try:
|
||||
import pyobjus
|
||||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
import _renpytfd
|
||||
except Exception:
|
||||
_renpytfd = None
|
||||
|
||||
def directory_is_writable(path):
|
||||
test = os.path.join(path, "renpy test do not use")
|
||||
@@ -50,7 +38,7 @@ init python:
|
||||
|
||||
return True
|
||||
|
||||
except:
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
def choose_directory(path):
|
||||
@@ -72,78 +60,11 @@ init python:
|
||||
else:
|
||||
try:
|
||||
default_path = os.path.dirname(os.path.abspath(config.renpy_base))
|
||||
except:
|
||||
except Exception:
|
||||
default_path = os.path.abspath(config.renpy_base)
|
||||
|
||||
if EasyDialogs:
|
||||
|
||||
choice = EasyDialogs.AskFolder(defaultLocation=default_path, wanted=unicode)
|
||||
|
||||
if choice is not None:
|
||||
path = choice
|
||||
else:
|
||||
path = None
|
||||
|
||||
elif pyobjus:
|
||||
|
||||
from pyobjus import autoclass
|
||||
from pyobjus.dylib_manager import load_framework, INCLUDE
|
||||
|
||||
load_framework(INCLUDE.AppKit)
|
||||
NSURL = autoclass('NSURL')
|
||||
NSOpenPanel = autoclass('NSOpenPanel')
|
||||
|
||||
panel = NSOpenPanel.openPanel()
|
||||
panel.setCanChooseDirectories_(True)
|
||||
panel.setCanChooseFiles_(False)
|
||||
panel.setCanCreateDirectories_(True)
|
||||
|
||||
if default_path:
|
||||
url = NSURL.fileURLWithPath_(default_path)
|
||||
panel.setDirectoryURL_(url)
|
||||
|
||||
if panel.runModal():
|
||||
path = panel.filename().UTF8String().decode("utf-8")
|
||||
else:
|
||||
path = None
|
||||
|
||||
else:
|
||||
|
||||
try:
|
||||
|
||||
if renpy.macintosh:
|
||||
# tkinter is broken on Python 3, so use it as a last resort - maybe apple fixed it?
|
||||
system_pythons = [ "/usr/bin/python2", "/usr/bin/python", "/usr/bin/python3" ]
|
||||
else:
|
||||
system_pythons = [ "/usr/bin/python3", "/usr/bin/python2", "/usr/bin/python" ]
|
||||
|
||||
for system_python in system_pythons:
|
||||
if os.path.exists(system_python):
|
||||
break
|
||||
else:
|
||||
system_python = system_pythons[0]
|
||||
|
||||
cmd = [ system_python, os.path.join(config.gamedir, "tkaskdir.py"), renpy.fsencode(default_path) ]
|
||||
|
||||
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
|
||||
choice = p.stdout.read()
|
||||
code = p.wait()
|
||||
|
||||
except:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
code = 0
|
||||
choice = ""
|
||||
path = None
|
||||
|
||||
interface.error(_("Ren'Py was unable to run python with tkinter to choose the directory. Please install the python3-tk or tkinter package."), label=None)
|
||||
|
||||
if code:
|
||||
interface.error(_("Ren'Py was unable to run python with tkinter to choose the directory. Please install the python3-tk or tkinter package."), label=None)
|
||||
|
||||
elif choice:
|
||||
path = choice.decode("utf-8")
|
||||
if _renpytfd:
|
||||
path = _renpytfd.selectFolderDialog(__("Select Projects Directory"), default_path)
|
||||
|
||||
is_default = False
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -294,7 +294,7 @@ init python:
|
||||
if changed:
|
||||
try:
|
||||
os.unlink(filename + ".bak")
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
os.rename(filename, filename + ".bak")
|
||||
@@ -323,7 +323,7 @@ init python:
|
||||
if changed:
|
||||
try:
|
||||
os.unlink(filename + ".bak")
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
os.rename(filename, filename + ".bak")
|
||||
@@ -333,7 +333,7 @@ init python:
|
||||
try:
|
||||
# just in case
|
||||
os.unlink(filename + ".new")
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
pass
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -33,15 +33,15 @@ init python:
|
||||
|
||||
if renpy.macintosh:
|
||||
fn = "console.command"
|
||||
nl = "\n"
|
||||
nl = b"\n"
|
||||
prefix = "#!/bin/sh"
|
||||
elif renpy.windows:
|
||||
fn = "console.bat"
|
||||
nl = "\r\n"
|
||||
nl = b"\r\n"
|
||||
prefix = "@echo off"
|
||||
else:
|
||||
fn = "console.sh"
|
||||
nl = "\n"
|
||||
nl = b"\n"
|
||||
prefix = "#!/bin/bash"
|
||||
|
||||
|
||||
@@ -49,15 +49,23 @@ init python:
|
||||
self.f = open(self.fn, "wb")
|
||||
self.nl = nl
|
||||
|
||||
self.f.write(renpy.fsencode(prefix) + nl)
|
||||
self.f.write(renpy.fsencode(prefix, force=True) + nl)
|
||||
|
||||
def add(self, *args):
|
||||
"""
|
||||
Adds a command to be run.
|
||||
"""
|
||||
|
||||
args = [ '"{}"'.format(renpy.fsencode(i)) for i in args]
|
||||
self.f.write(" ".join(args) + self.nl)
|
||||
args = [ b'"' + renpy.fsencode(i, force=True) + b'"' for i in args]
|
||||
self.f.write(b" ".join(args) + self.nl)
|
||||
|
||||
def write(self, *args):
|
||||
"""
|
||||
Adds a command to be run.
|
||||
"""
|
||||
|
||||
args = [ renpy.fsencode(i, force=True) for i in args]
|
||||
self.f.write(b" ".join(args) + self.nl)
|
||||
|
||||
def run(self):
|
||||
"""
|
||||
@@ -65,10 +73,10 @@ init python:
|
||||
"""
|
||||
|
||||
if renpy.windows:
|
||||
self.add("pause")
|
||||
self.write("pause")
|
||||
elif renpy.linux:
|
||||
self.add("echo", "Press enter to close this window...")
|
||||
self.add("read")
|
||||
self.write("read")
|
||||
|
||||
self.f.close()
|
||||
os.chmod(self.fn, 0o755)
|
||||
|
||||
+253
-59
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -26,7 +26,6 @@
|
||||
# might include windows path separators (\), but archive paths and names we
|
||||
# deal with/match against use the unix separator (/).
|
||||
|
||||
|
||||
init python in distribute:
|
||||
|
||||
from store import config, persistent
|
||||
@@ -52,6 +51,27 @@ init python in distribute:
|
||||
import time
|
||||
import shutil
|
||||
|
||||
def py(s):
|
||||
"""
|
||||
Formats a string with information about the python version.
|
||||
"""
|
||||
|
||||
return s.format(
|
||||
major=sys.version_info.major,
|
||||
minor=sys.version_info.minor,
|
||||
)
|
||||
|
||||
# Going from 7.4 to 7.5 or 8.0, the library directory changed.
|
||||
RENPY_PATCH = py("""\
|
||||
def change_renpy_executable():
|
||||
import sys, os, renpy, site
|
||||
|
||||
if hasattr(site, "RENPY_PLATFORM") and hasattr(sys, "renpy_executable") and (renpy.linux or renpy.windows):
|
||||
sys.renpy_executable = os.path.join(renpy.config.renpy_base, "lib", "py{major}-" + site.RENPY_PLATFORM, os.path.basename(sys.renpy_executable))
|
||||
|
||||
change_renpy_executable()
|
||||
""")
|
||||
|
||||
match_cache = { }
|
||||
|
||||
def compile_match(pattern):
|
||||
@@ -176,7 +196,7 @@ init python in distribute:
|
||||
|
||||
key = (self.name, self.directory, self.executable)
|
||||
|
||||
hash.update(repr(key))
|
||||
hash.update(repr(key).encode("utf-8"))
|
||||
|
||||
if self.path is None:
|
||||
return
|
||||
@@ -191,9 +211,16 @@ init python in distribute:
|
||||
digest = distributor.hash_cache[self.path]
|
||||
else:
|
||||
digest = hash_file(self.path)
|
||||
distributor.hash_cache[self.path] = digest
|
||||
|
||||
hash.update(digest)
|
||||
hash.update(digest.encode("utf-8"))
|
||||
|
||||
def reprefix(self, old, new):
|
||||
rv = self.copy()
|
||||
|
||||
if self.name.startswith(old):
|
||||
rv.name = new + self.name[len(old):]
|
||||
|
||||
return rv
|
||||
|
||||
class FileList(list):
|
||||
"""
|
||||
@@ -235,6 +262,34 @@ init python in distribute:
|
||||
|
||||
return rv
|
||||
|
||||
def add_missing_directories(self):
|
||||
"""
|
||||
Adds to this file list all directories that are needed by other
|
||||
entries in this file list.
|
||||
"""
|
||||
|
||||
rv = self.copy()
|
||||
|
||||
seen = set()
|
||||
required = set()
|
||||
|
||||
for i in self:
|
||||
seen.add(i.name)
|
||||
|
||||
name = i.name
|
||||
|
||||
while "/" in name:
|
||||
name = name.rpartition("/")[0]
|
||||
required.add(name)
|
||||
|
||||
for name in required - seen:
|
||||
rv.append(File(name, None, True, False))
|
||||
|
||||
rv.sort()
|
||||
|
||||
return rv
|
||||
|
||||
|
||||
@staticmethod
|
||||
def merge(l):
|
||||
"""
|
||||
@@ -313,13 +368,15 @@ init python in distribute:
|
||||
duplicate is set.
|
||||
"""
|
||||
|
||||
prefix = py("lib/py{major}-mac-universal")
|
||||
|
||||
for f in list(self):
|
||||
|
||||
if f.name.startswith("lib/python2.7") and (not duplicate):
|
||||
if f.name.startswith("lib/python") and (not duplicate):
|
||||
name = app + "/Contents/Resources/" + f.name
|
||||
|
||||
elif f.name.startswith("lib/mac-x86_64"):
|
||||
name = app + "/Contents/MacOS/" + f.name[15:]
|
||||
elif f.name.startswith(prefix):
|
||||
name = app + "/Contents/MacOS/" + f.name[len(prefix)+1:]
|
||||
|
||||
else:
|
||||
continue
|
||||
@@ -344,7 +401,10 @@ init python in distribute:
|
||||
for f in sorted(self, key=lambda a : a.name):
|
||||
f.hash(sha, distributor)
|
||||
|
||||
return sha.hexdigest()
|
||||
if PY2:
|
||||
return sha.hexdigest().decode("utf-8")
|
||||
else:
|
||||
return sha.hexdigest()
|
||||
|
||||
def split_by_prefix(self, prefix):
|
||||
"""
|
||||
@@ -363,13 +423,25 @@ init python in distribute:
|
||||
|
||||
return yes, no
|
||||
|
||||
def reprefix(self, old, new):
|
||||
"""
|
||||
Returns a new file list with all the paths reprefixed.
|
||||
"""
|
||||
|
||||
rv = FileList()
|
||||
|
||||
for f in self:
|
||||
rv.append(f.reprefix(old, new))
|
||||
|
||||
return rv
|
||||
|
||||
|
||||
class Distributor(object):
|
||||
"""
|
||||
This manages the process of building distributions.
|
||||
"""
|
||||
|
||||
def __init__(self, project, destination=None, reporter=None, packages=None, build_update=True, open_directory=False, noarchive=False, packagedest=None, report_success=True, scan=True, macapp=None):
|
||||
def __init__(self, project, destination=None, reporter=None, packages=None, build_update=True, open_directory=False, noarchive=False, packagedest=None, report_success=True, scan=True, macapp=None, force_format=None, files_filter=None):
|
||||
"""
|
||||
Distributes `project`.
|
||||
|
||||
@@ -403,7 +475,15 @@ init python in distribute:
|
||||
|
||||
`macapp`
|
||||
If given, the path to a macapp that's used instead of
|
||||
the macapp
|
||||
the macapp that's included with Ren'Py.
|
||||
|
||||
`force_format`
|
||||
If given, forces the format of the distribution to be this.
|
||||
|
||||
`files_filter`
|
||||
If given, use this object to decide which files must be included.
|
||||
The object must contains the `filter(file, variant, format)`
|
||||
method which must return True is the file must be included.
|
||||
"""
|
||||
|
||||
# A map from a package to a unique update version hash.
|
||||
@@ -486,7 +566,7 @@ init python in distribute:
|
||||
if not packagedest:
|
||||
try:
|
||||
os.makedirs(self.destination)
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
self.load_build_cache()
|
||||
@@ -532,6 +612,10 @@ init python in distribute:
|
||||
self.reporter.info(_("Scanning Ren'Py files..."))
|
||||
self.scan_and_classify(config.renpy_base, build["renpy_patterns"])
|
||||
|
||||
if build["_sdk_fonts"]:
|
||||
for k in list(self.file_lists.keys()):
|
||||
self.file_lists[k] = self.file_lists[k].reprefix("sdk-fonts", "game")
|
||||
|
||||
# Add Python (with the same name as our executables)
|
||||
self.add_python()
|
||||
|
||||
@@ -556,15 +640,31 @@ init python in distribute:
|
||||
self.merge_file_lists()
|
||||
|
||||
# Rename the executable-like files.
|
||||
if not build['renpy']:
|
||||
self.rename()
|
||||
self.rename()
|
||||
|
||||
# Sign the mac app once on Ren'Py.
|
||||
if self.build["renpy"]:
|
||||
fl = self.file_lists['binary']
|
||||
app, rest = fl.split_by_prefix(self.app)
|
||||
if app:
|
||||
app = self.sign_app(app, macapp)
|
||||
fl = FileList.merge([ app, rest ])
|
||||
self.file_lists['binary'] = fl
|
||||
else:
|
||||
raise Exception("No mac app found.")
|
||||
|
||||
# The time of the update version.
|
||||
self.update_version = int(time.time())
|
||||
|
||||
self.files_filter = files_filter
|
||||
|
||||
for p in build_packages:
|
||||
|
||||
for f in p["formats"]:
|
||||
formats = p["formats"]
|
||||
if force_format is not None:
|
||||
formats = [ force_format ]
|
||||
|
||||
for f in formats:
|
||||
|
||||
self.make_package(
|
||||
p["name"],
|
||||
@@ -594,7 +694,7 @@ init python in distribute:
|
||||
self.reporter.info(_("All packages have been built.\n\nDue to the presence of permission information, unpacking and repacking the Linux and Macintosh distributions on Windows is not supported."))
|
||||
|
||||
if open_directory:
|
||||
store.OpenDirectory(self.destination)()
|
||||
renpy.run(store.OpenDirectory(self.destination, absolute=True))
|
||||
|
||||
def scan_and_classify(self, directory, patterns):
|
||||
"""
|
||||
@@ -834,7 +934,7 @@ init python in distribute:
|
||||
|
||||
tfn = self.temp_filename(list_name + "_hash.txt")
|
||||
|
||||
with open(tfn, "wb") as tf:
|
||||
with open(tfn, "w") as tf:
|
||||
tf.write(self.file_lists[list_name].hash(self))
|
||||
|
||||
self.add_file("binary", "launcher/game/" + list_name + "_hash.txt", tfn)
|
||||
@@ -855,7 +955,7 @@ init python in distribute:
|
||||
data = f.read()
|
||||
|
||||
with open(tmp_fn, "wb") as f:
|
||||
f.write(b"#!/usr/bin/env python2\n")
|
||||
f.write(b"#!/usr/bin/env python3\n")
|
||||
f.write(data)
|
||||
|
||||
self.add_file("source_only", "renpy.py", tmp_fn, True)
|
||||
@@ -872,6 +972,7 @@ init python in distribute:
|
||||
CFBundleDisplayName=display_name,
|
||||
CFBundleExecutable=executable_name,
|
||||
CFBundleIconFile="icon",
|
||||
CFBundleIdentifier="com.domain.game",
|
||||
CFBundleInfoDictionaryVersion="6.0",
|
||||
CFBundleName=display_name,
|
||||
CFBundlePackageType="APPL",
|
||||
@@ -901,7 +1002,13 @@ init python in distribute:
|
||||
plist.update(self.build.get("mac_info_plist", { }))
|
||||
|
||||
rv = self.temp_filename("Info.plist")
|
||||
plistlib.writePlist(plist, rv)
|
||||
|
||||
if PY2:
|
||||
plistlib.writePlist(plist, rv)
|
||||
else:
|
||||
with open(rv, "wb") as f:
|
||||
plistlib.dump(plist, f)
|
||||
|
||||
return rv
|
||||
|
||||
def add_python(self):
|
||||
@@ -911,44 +1018,56 @@ init python in distribute:
|
||||
linux = 'binary'
|
||||
linux_i686 = 'binary'
|
||||
mac = 'binary'
|
||||
raspi = 'raspi'
|
||||
raspi = 'linux_arm'
|
||||
else:
|
||||
windows = 'windows'
|
||||
linux = 'linux'
|
||||
linux_i686 = 'linux_i686'
|
||||
mac = 'mac'
|
||||
raspi = 'linux'
|
||||
raspi = 'linux_arm'
|
||||
|
||||
self.add_file(
|
||||
linux_i686,
|
||||
"lib/linux-i686/" + self.executable_name,
|
||||
os.path.join(config.renpy_base, "lib/linux-i686/renpy"),
|
||||
True)
|
||||
prefix = py("lib/py{major}-")
|
||||
|
||||
if os.path.exists(linux_i686):
|
||||
|
||||
self.add_file(
|
||||
linux_i686,
|
||||
prefix + "linux-i686/" + self.executable_name,
|
||||
os.path.join(config.renpy_base, prefix + "linux-i686/renpy"),
|
||||
True)
|
||||
|
||||
self.add_file(
|
||||
linux,
|
||||
"lib/linux-x86_64/" + self.executable_name,
|
||||
os.path.join(config.renpy_base, "lib/linux-x86_64/renpy"),
|
||||
prefix + "linux-x86_64/" + self.executable_name,
|
||||
os.path.join(config.renpy_base, prefix + "linux-x86_64/renpy"),
|
||||
True)
|
||||
|
||||
armfn = os.path.join(config.renpy_base, "lib/linux-armv7l/renpy")
|
||||
armfn = os.path.join(config.renpy_base, prefix + "linux-armv7l/renpy")
|
||||
|
||||
if os.path.exists(armfn):
|
||||
|
||||
self.add_file(
|
||||
raspi,
|
||||
"lib/linux-armv7l/" + self.executable_name,
|
||||
prefix + "linux-armv7l/" + self.executable_name,
|
||||
armfn,
|
||||
True)
|
||||
|
||||
aarch64fn = os.path.join(config.renpy_base, prefix + "linux-aarch64/renpy")
|
||||
|
||||
if os.path.exists(aarch64fn):
|
||||
|
||||
self.add_file(
|
||||
raspi,
|
||||
prefix + "linux-aarch64/" + self.executable_name,
|
||||
aarch64fn,
|
||||
True)
|
||||
|
||||
self.add_file(
|
||||
mac,
|
||||
"lib/mac-x86_64/" + self.executable_name,
|
||||
os.path.join(config.renpy_base, "lib/mac-x86_64/renpy"),
|
||||
prefix + "mac-universal/" + self.executable_name,
|
||||
os.path.join(config.renpy_base, prefix + "mac-universal/renpy"),
|
||||
True)
|
||||
|
||||
|
||||
def add_mac_files(self):
|
||||
"""
|
||||
Add mac-specific files to the distro.
|
||||
@@ -967,9 +1086,11 @@ init python in distribute:
|
||||
|
||||
plist_fn = self.write_plist()
|
||||
self.add_file(filelist, contents + "/Info.plist", plist_fn)
|
||||
|
||||
self.add_file(filelist,
|
||||
contents + "/MacOS/" + self.executable_name,
|
||||
os.path.join(config.renpy_base, "lib/mac-x86_64/renpy"))
|
||||
os.path.join(config.renpy_base, py("lib/py{major}-mac-universal/renpy")))
|
||||
|
||||
|
||||
custom_fn = os.path.join(self.project.path, "icon.icns")
|
||||
default_fn = os.path.join(config.renpy_base, "launcher/icon.icns")
|
||||
@@ -986,8 +1107,8 @@ init python in distribute:
|
||||
|
||||
if not self.build['renpy']:
|
||||
self.add_directory(filelist, contents + "/MacOS/lib")
|
||||
self.add_directory(filelist, contents + "/MacOS/lib/mac-x86_64")
|
||||
self.add_directory(filelist, contents + "/Resources/lib/python2.7")
|
||||
self.add_directory(filelist, contents + py("/MacOS/lib/py{major}-mac-universal"))
|
||||
self.add_directory(filelist, contents + py("/Resources/lib/python{major}.{minor}"))
|
||||
|
||||
self.file_lists[filelist].mac_lib_transform(self.app, self.build['renpy'])
|
||||
|
||||
@@ -1033,12 +1154,20 @@ init python in distribute:
|
||||
if os.path.exists(tmp):
|
||||
self.add_file(fl, dst, tmp)
|
||||
|
||||
if self.build["include_i686"]:
|
||||
write_exe("lib/windows-i686/renpy.exe", self.exe32, self.exe32, windows_i686)
|
||||
write_exe("lib/windows-i686/pythonw.exe", "lib/windows-i686/pythonw.exe", "pythonw-32.exe", windows_i686)
|
||||
if PY2:
|
||||
|
||||
if self.build["include_i686"]:
|
||||
write_exe("lib/py2-windows-i686/renpy.exe", self.exe32, self.exe32, windows_i686)
|
||||
write_exe("lib/py2-windows-i686/pythonw.exe", "lib/py2-windows-i686/pythonw.exe", "pythonw-32.exe", windows_i686)
|
||||
|
||||
write_exe("lib/py2-windows-x86_64/renpy.exe", self.exe, self.exe, windows)
|
||||
write_exe("lib/py2-windows-x86_64/pythonw.exe", "lib/py2-windows-x86_64/pythonw.exe", "pythonw-64.exe", windows)
|
||||
|
||||
else:
|
||||
|
||||
write_exe("lib/py3-windows-x86_64/renpy.exe", self.exe, self.exe, windows)
|
||||
write_exe("lib/py3-windows-x86_64/pythonw.exe", "lib/py3-windows-x86_64/pythonw.exe", "pythonw-64.exe", windows)
|
||||
|
||||
write_exe("lib/windows-x86_64/renpy.exe", self.exe, self.exe, windows)
|
||||
write_exe("lib/windows-x86_64/pythonw.exe", "lib/windows-x86_64/pythonw.exe", "pythonw-64.exe", windows)
|
||||
|
||||
def add_main_py(self):
|
||||
if self.build['renpy']:
|
||||
@@ -1065,11 +1194,15 @@ init python in distribute:
|
||||
Rename files in all lists to match the executable names.
|
||||
"""
|
||||
|
||||
major_sh = py("renpy{major}.sh")
|
||||
|
||||
def rename_one(fn):
|
||||
parts = fn.split('/')
|
||||
p = parts[0]
|
||||
|
||||
if p == "renpy.sh":
|
||||
if p == major_sh:
|
||||
p = self.sh
|
||||
elif p == "renpy.sh":
|
||||
p = self.sh
|
||||
elif p == "renpy.py":
|
||||
p = self.py
|
||||
@@ -1095,7 +1228,7 @@ init python in distribute:
|
||||
try:
|
||||
import sys, os
|
||||
isatty = os.isatty(sys.stdin.fileno())
|
||||
except:
|
||||
except Exception:
|
||||
isatty = False
|
||||
|
||||
if isatty:
|
||||
@@ -1188,13 +1321,13 @@ init python in distribute:
|
||||
def workaround_mac_notarization(self, fl):
|
||||
"""
|
||||
This works around mac notarization by compressing the unsigned,
|
||||
un-notarized, binaries in lib/mac-x86_64.
|
||||
un-notarized, binaries in lib/py3-mac-universal.
|
||||
"""
|
||||
|
||||
fl = fl.copy()
|
||||
|
||||
for f in fl:
|
||||
if "/lib/mac-x86_64/" in f.name:
|
||||
if py("/lib/py{major}-mac-universal/") in f.name:
|
||||
with open(f.path, "rb") as inf:
|
||||
data = inf.read()
|
||||
|
||||
@@ -1228,15 +1361,19 @@ init python in distribute:
|
||||
if self.build.get("exclude_empty_directories", True):
|
||||
fl = fl.filter_empty()
|
||||
|
||||
fl = fl.add_missing_directories()
|
||||
|
||||
if macapp:
|
||||
fl = fl.mac_transform(self.app, self.documentation_patterns)
|
||||
|
||||
app, rest = fl.split_by_prefix(self.app)
|
||||
if not self.build["renpy"]:
|
||||
|
||||
if app:
|
||||
app = self.sign_app(app, macapp)
|
||||
app, rest = fl.split_by_prefix(self.app)
|
||||
|
||||
fl = FileList.merge([ app, rest ])
|
||||
if app:
|
||||
app = self.sign_app(app, macapp)
|
||||
|
||||
fl = FileList.merge([ app, rest ])
|
||||
|
||||
self.file_list_cache[key] = fl
|
||||
return fl.copy()
|
||||
@@ -1281,6 +1418,9 @@ init python in distribute:
|
||||
"app-zip" : (".zip", False, False, False),
|
||||
"app-directory" : ("-app", True, False, False),
|
||||
"app-dmg" : ("-app-dmg", True, True, False),
|
||||
|
||||
"bare-tar.bz2" : (".tar.bz2", False, False, False),
|
||||
"bare-zip" : (".zip", False, False, False),
|
||||
}
|
||||
|
||||
if format not in FORMATS:
|
||||
@@ -1320,7 +1460,7 @@ init python in distribute:
|
||||
|
||||
if self.include_update and (variant not in [ 'ios', 'android', 'source']) and (not format.startswith("app-")):
|
||||
|
||||
with open(update_fn, "wb") as f:
|
||||
with open(update_fn, "wb" if PY2 else "w") as f:
|
||||
json.dump(update, f, indent=2)
|
||||
|
||||
if (not dlc) or (format == "update"):
|
||||
@@ -1369,11 +1509,11 @@ init python in distribute:
|
||||
if file_hash:
|
||||
self.build_cache[full_filename] = (file_hash, fl_hash)
|
||||
|
||||
if format == "tar.bz2":
|
||||
if format == "tar.bz2" or format == "bare-tar.bz2":
|
||||
pkg = TarPackage(path, "w:bz2")
|
||||
elif format == "update":
|
||||
pkg = UpdatePackage(path, filename, self.destination)
|
||||
elif format == "zip" or format == "app-zip":
|
||||
elif format == "zip" or format == "app-zip" or format == "bare-zip":
|
||||
if self.build['renpy']:
|
||||
pkg = ExternalZipPackage(path)
|
||||
else:
|
||||
@@ -1402,6 +1542,9 @@ init python in distribute:
|
||||
if f.directory:
|
||||
pkg.add_directory(f.name, f.path)
|
||||
else:
|
||||
if self.files_filter is not None and not self.files_filter.filter(f, variant, format):
|
||||
# Ignore file
|
||||
continue
|
||||
pkg.add_file(f.name, f.path, f.executable)
|
||||
|
||||
self.reporter.progress_done()
|
||||
@@ -1428,10 +1571,8 @@ init python in distribute:
|
||||
|
||||
index = { }
|
||||
|
||||
# Ren'Py 7.4.1 forgot to include mac zsync, so it needs to be downloaded before the update
|
||||
# can occur.
|
||||
if self.build['renpy']:
|
||||
index["monkeypatch"] = "def mac_fix():\n import renpy\n if not renpy.macintosh:\n return\n\n import os\n mac = os.path.join(renpy.config.renpy_base, \"lib\", \"mac-x86_64\")\n zsync = os.path.join(mac, \"zsync\")\n\n if not os.path.isdir(mac):\n return\n\n if os.path.isdir(zsync):\n return\n\n import requests\n\n response = requests.get(\"https://www.renpy.org/dl/mac-fix/zsync\")\n\n with open(zsync + \".new\", \"w\") as f:\n f.write(response.content)\n \n os.chmod(zsync + \".new\", 0o755)\n os.rename(zsync + \".new\", zsync)\n\nmac_fix()\n"
|
||||
index["monkeypatch"] = RENPY_PATCH
|
||||
|
||||
def add_variant(variant):
|
||||
|
||||
@@ -1459,7 +1600,7 @@ init python in distribute:
|
||||
add_variant(p["name"])
|
||||
|
||||
fn = renpy.fsencode(os.path.join(self.destination, "updates.json"))
|
||||
with open(fn, "wb") as f:
|
||||
with open(fn, "wb" if PY2 else "w") as f:
|
||||
json.dump(index, f, indent=2)
|
||||
|
||||
|
||||
@@ -1469,10 +1610,10 @@ init python in distribute:
|
||||
|
||||
fn = renpy.fsencode(os.path.join(self.destination, ".build_cache"))
|
||||
|
||||
with open(fn, "wb") as f:
|
||||
with open(fn, "w", encoding="utf-8") as f:
|
||||
for k, v in self.build_cache.items():
|
||||
l = "\t".join([k, v[0], v[1]]) + "\n"
|
||||
f.write(l.encode("utf-8"))
|
||||
f.write(l)
|
||||
|
||||
def load_build_cache(self):
|
||||
if not self.build['renpy']:
|
||||
@@ -1564,6 +1705,8 @@ init python in distribute:
|
||||
ap.add_argument("--package", action="append", help="If given, a package to build. Defaults to building all packages.")
|
||||
ap.add_argument("--no-archive", action="store_true", help="If given, files will not be added to archives.")
|
||||
ap.add_argument("--macapp", default=None, action="store", help="If given, the path to a signed and notarized mac app.")
|
||||
ap.add_argument("--format", default=None, action="store", help="The format of package to build.")
|
||||
|
||||
ap.add_argument("project", help="The path to the project directory.")
|
||||
|
||||
args = ap.parse_args()
|
||||
@@ -1575,12 +1718,58 @@ init python in distribute:
|
||||
else:
|
||||
packages = None
|
||||
|
||||
Distributor(p, destination=args.destination, reporter=TextReporter(), packages=packages, build_update=args.build_update, noarchive=args.no_archive, packagedest=args.packagedest, macapp=args.macapp)
|
||||
Distributor(p, destination=args.destination, reporter=TextReporter(), packages=packages, build_update=args.build_update, noarchive=args.no_archive, packagedest=args.packagedest, macapp=args.macapp, force_format=args.format)
|
||||
|
||||
return False
|
||||
|
||||
renpy.arguments.register_command("distribute", distribute_command)
|
||||
|
||||
|
||||
def update_old_game(project, reporter, compile):
|
||||
if compile:
|
||||
reporter.info(_("Recompiling all rpy files into rpyc files..."))
|
||||
project.launch([ "compile", "--keep-orphan-rpyc" ], wait=True)
|
||||
|
||||
files = [fn + "c" for fn in project.script_files()
|
||||
if fn.startswith("game/") and project.exists(fn + "c")]
|
||||
len_files = len(files)
|
||||
|
||||
if not files:
|
||||
return
|
||||
|
||||
TEMP_OLD_GAME_DIR = project.temp_filename("old-game")
|
||||
if os.path.isdir(TEMP_OLD_GAME_DIR):
|
||||
shutil.rmtree(TEMP_OLD_GAME_DIR)
|
||||
|
||||
for i, src in enumerate(files):
|
||||
reporter.progress(_("Copying files..."), i, len_files)
|
||||
dst = project.temp_filename("old-" + src)
|
||||
try:
|
||||
os.makedirs(os.path.dirname(dst))
|
||||
except Exception:
|
||||
pass
|
||||
shutil.copyfile(os.path.join(project.path, src), dst)
|
||||
|
||||
reporter.progress_done()
|
||||
|
||||
OLD_GAME_DIR = os.path.join(project.path, "old-game")
|
||||
if os.path.isdir(OLD_GAME_DIR):
|
||||
shutil.rmtree(OLD_GAME_DIR)
|
||||
|
||||
shutil.copytree(TEMP_OLD_GAME_DIR, OLD_GAME_DIR)
|
||||
|
||||
def update_old_game_command():
|
||||
ap = renpy.arguments.ArgumentParser("Back-ups all rpyc files into old-game directory.")
|
||||
ap.add_argument("project", help="The path to the project directory.")
|
||||
|
||||
args = ap.parse_args()
|
||||
|
||||
update_old_game(project.Project(args.project), TextReporter(), True)
|
||||
|
||||
return False
|
||||
|
||||
renpy.arguments.register_command("update_old_game", update_old_game_command)
|
||||
|
||||
label distribute:
|
||||
|
||||
python hide:
|
||||
@@ -1595,3 +1784,8 @@ label distribute:
|
||||
|
||||
|
||||
jump post_build
|
||||
|
||||
label update_old_game:
|
||||
python hide:
|
||||
distribute.update_old_game(project.current, distribute.GuiReporter(), False)
|
||||
return
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -192,6 +192,7 @@ screen build_distributions:
|
||||
|
||||
textbutton _("Edit options.rpy") action editor.Edit("game/options.rpy", check=True)
|
||||
textbutton _("Add from clauses to calls, once") action Jump("add_from")
|
||||
textbutton _("Update old-game") action Jump("start_update_old_game")
|
||||
textbutton _("Refresh") action Jump("build_distributions")
|
||||
|
||||
add HALF_SPACER
|
||||
@@ -221,7 +222,13 @@ screen build_distributions:
|
||||
for pkg in packages:
|
||||
if not pkg["hidden"]:
|
||||
$ description = pkg["description"]
|
||||
textbutton "[description!q]" action PackageToggle(pkg["name"]) style "l_checkbox"
|
||||
button:
|
||||
action PackageToggle(pkg["name"]) style "l_checkbox"
|
||||
hbox:
|
||||
spacing 3
|
||||
text "[description!q]"
|
||||
if pkg["dlc"]:
|
||||
text _("(DLC)")
|
||||
|
||||
add SPACER
|
||||
add HALF_SPACER
|
||||
@@ -256,6 +263,9 @@ label add_from:
|
||||
call add_from_common
|
||||
jump build_distributions
|
||||
|
||||
label start_update_old_game:
|
||||
call update_old_game
|
||||
jump build_distributions
|
||||
|
||||
label start_distribute:
|
||||
if project.current.data["add_from"]:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -36,13 +36,13 @@ init python:
|
||||
if os.path.exists(fn):
|
||||
os.unlink(fn)
|
||||
|
||||
with open(fn, "wb") as f:
|
||||
with open(fn, "w") as f:
|
||||
f.write("Testing to see if we're in a DMG.\r\n")
|
||||
|
||||
os.unlink(fn)
|
||||
return
|
||||
|
||||
except:
|
||||
except Exception:
|
||||
|
||||
# If we're here, we didn't make it through the checks safely. So
|
||||
# put up a warning message.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
+83
-28
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -67,8 +67,8 @@ init 1 python in editor:
|
||||
ei = EditorInfo(filename)
|
||||
|
||||
if ei.name in editors:
|
||||
if editors[ei.name].mtime >= ei.mtime:
|
||||
return
|
||||
if editors[ei.name].mtime >= ei.mtime:
|
||||
return
|
||||
|
||||
editors[ei.name] = ei
|
||||
|
||||
@@ -148,39 +148,79 @@ init 1 python in editor:
|
||||
|
||||
fei = fancy_editors = [ ]
|
||||
|
||||
# Atom.
|
||||
AD = _("(Recommended) A modern and approachable text editor.")
|
||||
# Visual Studio Code
|
||||
AD1 = _("A modern editor with many extensions including advanced Ren'Py integration.")
|
||||
AD2 = _("A modern editor with many extensions including advanced Ren'Py integration.\n{a=jump:reinstall_vscode}Upgrade Visual Studio Code to the latest version.{/a}")
|
||||
|
||||
if renpy.windows:
|
||||
dlc = "atom-windows"
|
||||
installed = os.path.exists(os.path.join(config.basedir, "atom/atom-windows"))
|
||||
installed = os.path.exists(os.path.join(config.renpy_base, "vscode/VSCode-win32-x64"))
|
||||
elif renpy.macintosh:
|
||||
dlc = "atom-mac"
|
||||
installed = os.path.exists(os.path.join(config.basedir, "atom/Atom.app"))
|
||||
installed = os.path.exists(os.path.join(config.renpy_base, "vscode/Visual Studio Code.app"))
|
||||
else:
|
||||
dlc = "atom-linux"
|
||||
installed = os.path.exists(os.path.join(config.basedir, "atom/atom-linux-" + platform.machine()))
|
||||
if renpy.arch == "aarch64":
|
||||
arch = "arm64"
|
||||
elif renpy.arch == "armv7l":
|
||||
arch = "arm"
|
||||
else:
|
||||
arch = "x86_64"
|
||||
|
||||
installed = os.path.exists(os.path.join(config.renpy_base, "vscode/VSCode-linux-" + arch))
|
||||
|
||||
e = FancyEditorInfo(
|
||||
0,
|
||||
"Atom",
|
||||
AD,
|
||||
dlc,
|
||||
_("Up to 150 MB download required."),
|
||||
_("Visual Studio Code"),
|
||||
AD2 if installed else AD2,
|
||||
"extension:vscode",
|
||||
_("Up to 110 MB download required."),
|
||||
None)
|
||||
|
||||
e.installed = e.installed and installed
|
||||
|
||||
fei.append(e)
|
||||
|
||||
# jEdit
|
||||
# Atom.
|
||||
AD = _("A modern and approachable text editor.")
|
||||
|
||||
if renpy.windows:
|
||||
dlc = "atom-windows"
|
||||
installed = os.path.exists(os.path.join(config.renpy_base, "atom/atom-windows"))
|
||||
elif renpy.macintosh:
|
||||
dlc = "atom-mac"
|
||||
installed = os.path.exists(os.path.join(config.renpy_base, "atom/Atom.app"))
|
||||
else:
|
||||
dlc = "atom-linux"
|
||||
installed = os.path.exists(os.path.join(config.renpy_base, "atom/atom-linux-" + platform.machine()))
|
||||
|
||||
if not (renpy.arch in [ "aarch64", "armv7l" ]):
|
||||
|
||||
e = FancyEditorInfo(
|
||||
1,
|
||||
_("Atom"),
|
||||
AD,
|
||||
"extension:atom",
|
||||
_("Up to 150 MB download required."),
|
||||
None)
|
||||
|
||||
e.installed = e.installed and (installed or 'RENPY_ATOM' in os.environ)
|
||||
|
||||
fei.append(e)
|
||||
|
||||
# jEdit - Only present if it exists on system.
|
||||
if os.path.exists(os.path.join(config.renpy_base, "jedit")):
|
||||
|
||||
fei.append(FancyEditorInfo(
|
||||
2,
|
||||
_("jEdit"),
|
||||
_("A mature editor that requires Java."),
|
||||
"jedit",
|
||||
_("1.8 MB download required."),
|
||||
_("This may have occured because Java is not installed on this system."),
|
||||
))
|
||||
|
||||
fei.append(FancyEditorInfo(
|
||||
2,
|
||||
"jEdit",
|
||||
_("A mature editor that requires Java."),
|
||||
"jedit",
|
||||
_("1.8 MB download required."),
|
||||
_("This may have occured because Java is not installed on this system."),
|
||||
3,
|
||||
_("Visual Studio Code (System)"),
|
||||
_("Uses a copy of Visual Studio Code that you have installed outside of Ren'Py. It's recommended you install the language-renpy extension to add support for Ren'Py files."),
|
||||
))
|
||||
|
||||
fei.append(FancyEditorInfo(
|
||||
@@ -189,8 +229,11 @@ init 1 python in editor:
|
||||
_("Invokes the editor your operating system has associated with .rpy files."),
|
||||
None))
|
||||
|
||||
|
||||
|
||||
|
||||
for k in editors:
|
||||
if k in [ "Atom", "jEdit", "System Editor", "None" ]:
|
||||
if k in [ "Visual Studio Code", "Visual Studio Code (System)", "Atom", "jEdit", "System Editor", "None" ]:
|
||||
continue
|
||||
|
||||
fei.append(FancyEditorInfo(
|
||||
@@ -210,7 +253,8 @@ init 1 python in editor:
|
||||
# If we're in a linux distro or something, assume all editors work.
|
||||
if not updater.can_update():
|
||||
for i in fei:
|
||||
i.installed = True
|
||||
if i.dlc and not i.dlc.startswith("extension:"):
|
||||
i.installed = True
|
||||
|
||||
def fancy_activate_editor(default=False):
|
||||
"""
|
||||
@@ -257,9 +301,12 @@ init 1 python in editor:
|
||||
|
||||
if not fe.installed:
|
||||
|
||||
# We don't check the status of this because fancy_activate_editor
|
||||
# will fail if the editor is not installed.
|
||||
store.add_dlc(fe.dlc)
|
||||
if fe.dlc.startswith("extension:"):
|
||||
import installer
|
||||
manifest = fe.dlc.partition(":")[2]
|
||||
renpy.invoke_in_new_context(installer.manifest, "https://www.renpy.org/extensions/{}/{}.py".format(manifest, manifest), renpy=True)
|
||||
else:
|
||||
store.add_dlc(fe.dlc)
|
||||
|
||||
persistent.editor = fe.name
|
||||
fancy_activate_editor()
|
||||
@@ -469,7 +516,7 @@ init 1 python in editor:
|
||||
try:
|
||||
e = renpy.editor.editor
|
||||
return e.has_projects
|
||||
except:
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
|
||||
@@ -522,6 +569,14 @@ screen editor:
|
||||
|
||||
textbutton _("Cancel") action Return(False) style "l_left_button"
|
||||
|
||||
label reinstall_vscode:
|
||||
python hide:
|
||||
manifest = "vscode"
|
||||
renpy.invoke_in_new_context(installer.manifest, "https://www.renpy.org/extensions/{}/{}.py".format(manifest, manifest), renpy=True)
|
||||
|
||||
jump editor_preference
|
||||
|
||||
|
||||
label editor_preference:
|
||||
call screen editor
|
||||
jump preferences
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -23,40 +23,7 @@ define PROJECT_ADJUSTMENT = ui.adjustment()
|
||||
|
||||
init python:
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
class OpenDirectory(Action):
|
||||
"""
|
||||
Opens `directory` in a file browser. `directory` is relative to
|
||||
the project root.
|
||||
"""
|
||||
|
||||
alt = _("Open [text] directory.")
|
||||
|
||||
def __init__(self, directory, absolute=False):
|
||||
if absolute:
|
||||
self.directory = directory
|
||||
else:
|
||||
self.directory = os.path.join(project.current.path, directory)
|
||||
|
||||
def get_sensitive(self):
|
||||
return os.path.exists(self.directory)
|
||||
|
||||
def __call__(self):
|
||||
|
||||
try:
|
||||
directory = renpy.fsencode(self.directory)
|
||||
|
||||
if renpy.windows:
|
||||
os.startfile(directory)
|
||||
elif renpy.macintosh:
|
||||
subprocess.Popen([ "open", directory ])
|
||||
else:
|
||||
subprocess.Popen([ "xdg-open", directory ])
|
||||
|
||||
except:
|
||||
pass
|
||||
import datetime
|
||||
|
||||
# Used for testing.
|
||||
def Relaunch():
|
||||
@@ -192,11 +159,11 @@ screen front_page_project:
|
||||
frame style "l_indent":
|
||||
has vbox
|
||||
|
||||
textbutton _("game") action OpenDirectory("game")
|
||||
textbutton _("base") action OpenDirectory(".")
|
||||
textbutton _("images") action OpenDirectory("game/images")
|
||||
textbutton _("audio") action OpenDirectory("game/audio")
|
||||
textbutton _("gui") action OpenDirectory("game/gui")
|
||||
textbutton "game" action OpenDirectory(os.path.join(p.path, "game"), absolute=True)
|
||||
textbutton "base" action OpenDirectory(os.path.join(p.path, "."), absolute=True)
|
||||
textbutton "images" action OpenDirectory(os.path.join(p.path, "game/images"), absolute=True)
|
||||
textbutton "audio" action OpenDirectory(os.path.join(p.path, "game/audio"), absolute=True)
|
||||
textbutton "gui" action OpenDirectory(os.path.join(p.path, "game/gui"), absolute=True)
|
||||
|
||||
vbox:
|
||||
if persistent.show_edit_funcs:
|
||||
@@ -229,6 +196,7 @@ screen front_page_project:
|
||||
|
||||
textbutton _("Navigate Script") action Jump("navigation")
|
||||
textbutton _("Check Script (Lint)") action Jump("lint")
|
||||
textbutton _("Launch tests") action Jump("launch_tests")
|
||||
|
||||
if project.current.exists("game/gui.rpy"):
|
||||
textbutton _("Change/Update GUI") action Jump("change_gui")
|
||||
@@ -262,7 +230,26 @@ label start:
|
||||
|
||||
jump expression renpy.session.pop("launcher_start_label", "front_page")
|
||||
|
||||
default persistent.has_chosen_language = False
|
||||
|
||||
default persistent.has_update = False
|
||||
|
||||
label front_page:
|
||||
|
||||
if (not persistent.has_chosen_language) or ("RENPY_CHOOSE_LANGUAGE" in os.environ):
|
||||
|
||||
if (_preferences.language is None) or ("RENPY_CHOOSE_LANGUAGE" in os.environ):
|
||||
hide screen bottom_info
|
||||
call choose_language
|
||||
show screen bottom_info
|
||||
|
||||
$ persistent.has_chosen_language = True
|
||||
|
||||
if persistent.daily_update_check and ((not persistent.last_update_check) or (datetime.date.today() > persistent.last_update_check)):
|
||||
python hide:
|
||||
persistent.last_update_check = datetime.date.today()
|
||||
renpy.invoke_in_thread(fetch_update_channels)
|
||||
|
||||
call screen front_page
|
||||
jump front_page
|
||||
|
||||
@@ -297,3 +284,11 @@ label force_recompile:
|
||||
project.current.launch([ 'compile' ], wait=True)
|
||||
|
||||
jump front_page
|
||||
|
||||
label launch_tests:
|
||||
|
||||
python hide:
|
||||
interface.processing(_("Launching tests..."))
|
||||
project.current.launch([ 'test' ], wait=True)
|
||||
|
||||
jump front_page
|
||||
|
||||
+16
-22
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -31,7 +31,7 @@ init -1 python:
|
||||
|
||||
from store import config
|
||||
|
||||
def translate_font(language, font, path=None):
|
||||
def translate_font(language, font):
|
||||
"""
|
||||
Selects the font file that is used when translating `language`.
|
||||
|
||||
@@ -39,26 +39,17 @@ init -1 python:
|
||||
Is the name of the font file used for both the launcher and
|
||||
the new GUI template. This should be a string giving the name
|
||||
of the font file.
|
||||
|
||||
`path`
|
||||
The path to the font file, relative to the launcher's game
|
||||
directory. If not given, defaults to fonts.
|
||||
"""
|
||||
|
||||
if path is None:
|
||||
path = "fonts"
|
||||
|
||||
fullfont = path + "/" + font
|
||||
|
||||
def callback():
|
||||
gui.REGULAR_FONT = fullfont
|
||||
gui.LIGHT_FONT = fullfont
|
||||
gui.REGULAR_FONT = font
|
||||
gui.LIGHT_FONT = font
|
||||
gui.REGULAR_BOLD = True
|
||||
|
||||
style._default.font = fullfont
|
||||
style.default.font = fullfont
|
||||
style._default.font = font
|
||||
style.default.font = font
|
||||
|
||||
gui.system_font = fullfont
|
||||
gui.system_font = font
|
||||
gui.project_system_font = font
|
||||
|
||||
config.language_callbacks[language].append(callback)
|
||||
@@ -66,7 +57,7 @@ init -1 python:
|
||||
def s(s):
|
||||
return '"' + s + '"'
|
||||
|
||||
gui7.translate_copy(language, fullfont, font)
|
||||
gui7.translate_copy(language, "sdk-fonts/" + font, font)
|
||||
gui7.translate_define(language, "gui.text_font", s(font))
|
||||
gui7.translate_define(language, "gui.name_text_font", s(font))
|
||||
gui7.translate_define(language, "gui.interface_text_font", s(font))
|
||||
@@ -337,15 +328,18 @@ label gui_project_size:
|
||||
|
||||
python:
|
||||
|
||||
default_size = (1920, 1080)
|
||||
|
||||
gui_size = interface.choice(
|
||||
_("What resolution should the project use? Although Ren'Py can scale the window up and down, this is the initial size of the window, the size at which assets should be drawn, and the size at which the assets will be at their sharpest.\n\nThe default of 1280x720 is a reasonable compromise."),
|
||||
_("What resolution should the project use? Although Ren'Py can scale the window up and down, this is the initial size of the window, the size at which assets should be drawn, and the size at which the assets will be at their sharpest.\n\nThe default of [default_size[0]]x[default_size[1]] is a reasonable compromise."),
|
||||
[
|
||||
((1066, 600), "1066x600"),
|
||||
((1280, 720), "1280x720"),
|
||||
((1920, 1080), "1920x1080"),
|
||||
((2560, 1440), "2560x1440"),
|
||||
((3840, 2160), "3840x2160"),
|
||||
("custom", _("Custom. The GUI is optimized for a 16:9 aspect ratio.")),
|
||||
],
|
||||
(1280, 720),
|
||||
default_size,
|
||||
cancel=Jump("front_page"),
|
||||
)
|
||||
|
||||
@@ -362,7 +356,7 @@ label gui_project_size:
|
||||
|
||||
try:
|
||||
gui_width = int(gui_width)
|
||||
except:
|
||||
except Exception:
|
||||
interface.error(_("The width must be a number."), label=None)
|
||||
continue
|
||||
break
|
||||
@@ -378,7 +372,7 @@ label gui_project_size:
|
||||
|
||||
try:
|
||||
gui_height = int(gui_height)
|
||||
except:
|
||||
except Exception:
|
||||
interface.error(_("The height must be a number."), label=None)
|
||||
continue
|
||||
break
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -214,7 +214,8 @@ class CodeGenerator(object):
|
||||
'gui.insensitive_color' : repr(self.p.insensitive_color.hexcode),
|
||||
'gui.text_color' : repr(self.p.text_color.hexcode),
|
||||
'gui.interface_text_color' : repr(self.p.text_color.hexcode),
|
||||
'gui.choice_text_color' : repr(self.p.choice_color.hexcode),
|
||||
'gui.choice_button_text_idle_color' : repr(self.p.idle_color.hexcode),
|
||||
'gui.choice_button_text_insensitive_color' : repr(self.p.insensitive_color.hexcode),
|
||||
}
|
||||
|
||||
self.update_defines(replacements, language_defines[self.p.language])
|
||||
@@ -323,6 +324,9 @@ class CodeGenerator(object):
|
||||
|
||||
m = re.match(r'## ?([ *]*)(.*)', s)
|
||||
|
||||
if m is None:
|
||||
raise Exception("Comment translation doesn't start with '## ': {}".format(s))
|
||||
|
||||
prefix = m.group(1)
|
||||
empty = ' ' * len(prefix)
|
||||
rest = m.group(2)
|
||||
@@ -353,7 +357,7 @@ class CodeGenerator(object):
|
||||
def copy_files(self):
|
||||
|
||||
for src, dst in language_copies[self.p.language]:
|
||||
src = os.path.join(renpy.config.gamedir, src)
|
||||
src = os.path.join(renpy.config.renpy_base, src)
|
||||
dst = os.path.join(self.p.prefix, dst)
|
||||
|
||||
if os.path.exists(dst):
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -52,7 +52,7 @@ class ImageGenerator(object):
|
||||
|
||||
try:
|
||||
os.mkdir(self.prefix, 0o777)
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
self.full_width = self.width / self.scale
|
||||
@@ -121,7 +121,7 @@ class ImageGenerator(object):
|
||||
|
||||
try:
|
||||
os.makedirs(dn, 0o777)
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
if os.path.exists(fn):
|
||||
@@ -145,12 +145,7 @@ class ImageGenerator(object):
|
||||
if not self.p.skip_backup:
|
||||
os.rename(fn, bfn)
|
||||
|
||||
import cStringIO
|
||||
sio = cStringIO.StringIO()
|
||||
renpy.display.module.save_png(s, sio, 3)
|
||||
|
||||
with open(fn, "wb") as f:
|
||||
f.write(sio.getvalue())
|
||||
pygame_sdl2.image.save(s, fn, 3)
|
||||
|
||||
def make_surface(self, width, height):
|
||||
return pygame_sdl2.Surface((width, height), pygame_sdl2.SRCALPHA)
|
||||
@@ -409,6 +404,21 @@ class ImageGenerator(object):
|
||||
self.save(s, "main_menu", overwrite=False)
|
||||
self.save(s, "game_menu", overwrite=False)
|
||||
|
||||
def generate_bubble(self):
|
||||
|
||||
import shutil
|
||||
|
||||
for fn in [ "bubble.png", "thoughtbubble.png" ]:
|
||||
|
||||
source = os.path.join(config.renpy_base, "gui", "game", "gui", fn)
|
||||
dest = os.path.join(self.prefix, fn)
|
||||
|
||||
if source == dest:
|
||||
return
|
||||
|
||||
shutil.copyfile(source, dest)
|
||||
|
||||
|
||||
def generate_all(self):
|
||||
self.generate_textbox()
|
||||
self.generate_choice_button()
|
||||
@@ -420,6 +430,7 @@ class ImageGenerator(object):
|
||||
self.generate_notify()
|
||||
self.generate_menus()
|
||||
self.generate_icon()
|
||||
self.generate_bubble()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -67,8 +67,8 @@ class GuiParameters(object):
|
||||
if light:
|
||||
|
||||
self.selected_color = Color("#555555")
|
||||
self.idle_color = Color("#aaaaaa")
|
||||
self.idle_small_color = Color("#888888")
|
||||
self.idle_color = Color("#707070")
|
||||
self.idle_small_color = Color("#606060")
|
||||
self.text_color = Color("#404040")
|
||||
self.choice_color = Color("#cccccc")
|
||||
|
||||
@@ -99,7 +99,7 @@ class GuiParameters(object):
|
||||
|
||||
GOOD_CHARACTERS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_"
|
||||
|
||||
simple_name = "".join(i for i in name if i in GOOD_CHARACTERS).encode("ascii")
|
||||
simple_name = "".join(i for i in name if i in GOOD_CHARACTERS)
|
||||
|
||||
if not simple_name:
|
||||
simple_name = "game"
|
||||
|
||||
+60
-45
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -60,7 +60,10 @@ init python:
|
||||
dstfn = os.path.join(config.renpy_base, dstfn)
|
||||
|
||||
if not os.path.exists(os.path.dirname(dstfn)):
|
||||
continue
|
||||
try:
|
||||
os.makedirs(os.path.dirname(dstfn))
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
renpy.write_log(fn + " -> " + dstfn)
|
||||
|
||||
@@ -70,7 +73,7 @@ init python:
|
||||
|
||||
try:
|
||||
os.chmod(dstfn, 0o755)
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
interface.info(_("Successfully installed [name!t]."), name=name)
|
||||
@@ -79,25 +82,68 @@ init python:
|
||||
label install_live2d:
|
||||
python hide:
|
||||
|
||||
if PY2:
|
||||
_prefix = r"lib/py2-"
|
||||
else:
|
||||
_prefix = r"lib/py3-"
|
||||
|
||||
patterns = [
|
||||
(r".*/Core/dll/linux/x86_64/(libLive2DCubismCore.so)", r"lib/linux-x86_64/\1"),
|
||||
(r".*/Core/dll/windows/x86_64/(Live2DCubismCore.dll)", r"lib/windows-x86_64/\1"),
|
||||
(r".*/Core/dll/windows/x86/(Live2DCubismCore.dll)", r"lib/windows-i686/\1"),
|
||||
(r".*/Core/dll/macos/(libLive2DCubismCore.dylib)", r"lib/mac-x86_64/\1"),
|
||||
(r".*/Core/dll/experimental/rpi/(libLive2DCubismCore.so)", r"lib/linux-armv7l/\1"),
|
||||
(r".*/Core/dll/linux/x86_64/(libLive2DCubismCore.so)", _prefix + r"linux-x86_64/\1"),
|
||||
(r".*/Core/dll/windows/x86_64/(Live2DCubismCore.dll)", _prefix + r"windows-x86_64/\1"),
|
||||
(r".*/Core/dll/macos/(libLive2DCubismCore.dylib)", _prefix + r"mac-universal/\1"),
|
||||
(r".*/Core/dll/experimental/rpi/(libLive2DCubismCore.so)", _prefix + r"linux-armv7l/\1"),
|
||||
|
||||
(r".*/Core/dll/android/(armeabi-v7a/libLive2DCubismCore.so)", r"rapt/prototype/renpyandroid/src/main/jniLibs/\1"),
|
||||
(r".*/Core/dll/android/(arm64-v8a/libLive2DCubismCore.so)", r"rapt/prototype/renpyandroid/src/main/jniLibs/\1"),
|
||||
|
||||
# This doesn't exist yet.
|
||||
# (r".*/Core/dll/android/(x86_64/libLive2DCubismCore.so)", r"rapt/prototype/renpyandroid/src/main/jniLibs/\1"),
|
||||
(r".*/Core/dll/android/(x86_64/libLive2DCubismCore.so)", r"rapt/prototype/renpyandroid/src/main/jniLibs/\1"),
|
||||
]
|
||||
|
||||
install_from_zip("Live2D Cubism SDK for Native", "CubismSdkForNative-4-*.zip", patterns)
|
||||
|
||||
jump front_page
|
||||
|
||||
screen install():
|
||||
screen install_preferences():
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
text _("This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed.")
|
||||
|
||||
add SPACER
|
||||
|
||||
if not achievement.has_steam:
|
||||
|
||||
textbutton _("Install Steam Support"):
|
||||
action Jump("install_steam")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
text _("Before installing Steam support, please make sure you are a {a=https://partner.steamgames.com/}Steam partner{/a}.")
|
||||
|
||||
else:
|
||||
|
||||
textbutton _("Install Steam Support")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
text _("Steam support has already been installed.")
|
||||
|
||||
add SPACER
|
||||
|
||||
textbutton _("Install Live2D Cubism SDK for Native"):
|
||||
action Jump("prompt_live2d")
|
||||
|
||||
|
||||
screen install_live2d():
|
||||
|
||||
frame:
|
||||
style_group "l"
|
||||
@@ -122,10 +168,6 @@ screen install():
|
||||
|
||||
has vbox
|
||||
|
||||
text _("This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed.")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
add SPACER
|
||||
|
||||
textbutton _("Install Live2D Cubism SDK for Native"):
|
||||
@@ -143,33 +185,6 @@ screen install():
|
||||
|
||||
text _("Live2D in Ren'Py doesn't support the Web, Android x86_64 (including emulators and Chrome OS), and must be added to iOS projects manually. Live2D must be reinstalled after upgrading Ren'Py or installing Android support.")
|
||||
|
||||
add SPACER
|
||||
|
||||
|
||||
if not achievement.has_steam:
|
||||
|
||||
textbutton _("Install Steam Support"):
|
||||
action Jump("install_steam")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
text _("Before installing Steam support, please make sure you are a {a=https://partner.steamgames.com/}Steam partner{/a}.")
|
||||
|
||||
else:
|
||||
|
||||
textbutton _("Install Steam Support")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
text _("Steam support has already been installed.")
|
||||
|
||||
|
||||
textbutton _("Cancel") action Return(False) style "l_left_button"
|
||||
@@ -177,8 +192,8 @@ screen install():
|
||||
|
||||
timer 2.0 action renpy.restart_interaction repeat True
|
||||
|
||||
label install:
|
||||
call screen install
|
||||
label prompt_live2d:
|
||||
call screen install_live2d
|
||||
jump preferences
|
||||
|
||||
label install_steam:
|
||||
|
||||
@@ -0,0 +1,499 @@
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
# (the "Software"), to deal in the Software without restriction,
|
||||
# including without limitation the rights to use, copy, modify, merge,
|
||||
# publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
# and to permit persons to whom the Software is furnished to do so,
|
||||
# subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be
|
||||
# included in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
import hashlib
|
||||
import os
|
||||
import time
|
||||
import requests
|
||||
import zipfile
|
||||
import tarfile
|
||||
import shutil
|
||||
import subprocess
|
||||
import renpy
|
||||
import stat
|
||||
|
||||
VERSION = 1
|
||||
|
||||
# True if the installer should run in quiet mode.
|
||||
quiet = False
|
||||
|
||||
from store import _, config, interface, project, Jump # type: ignore
|
||||
|
||||
temp_exists = False
|
||||
|
||||
def _ensure_temp():
|
||||
"""
|
||||
Ensures that the directories needed by the extension API are present.
|
||||
"""
|
||||
|
||||
global temp_exists
|
||||
|
||||
if temp_exists:
|
||||
return
|
||||
|
||||
backups = os.path.join(config.renpy_base, "tmp", "installer", "backups")
|
||||
|
||||
try:
|
||||
if not os.path.exists(backups):
|
||||
os.makedirs(os.path.dirname(backups))
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
temp_exists = True
|
||||
|
||||
# The target directory that the extensions API operates on.
|
||||
target = None
|
||||
|
||||
def set_target(directory):
|
||||
"""
|
||||
This sets the directory that the extension API targets. This is where
|
||||
packages are unpacked to and the default working directory where the
|
||||
programs are run.
|
||||
"""
|
||||
|
||||
global target
|
||||
target = directory
|
||||
|
||||
_clean("temp:", 3)
|
||||
|
||||
|
||||
def _path(filename):
|
||||
"""
|
||||
Returns the full path to `filename`. If `filename` starts with the
|
||||
prefix temp:, it's placed in the temp directory. If the filename
|
||||
starts with backup, a backup filename is returned. Otherwise,
|
||||
the path is interpreted relative to the target directory.
|
||||
"""
|
||||
|
||||
_ensure_temp()
|
||||
|
||||
tempdir = os.path.join(config.renpy_base, "tmp", "installer")
|
||||
backups = os.path.join(config.renpy_base, "tmp", "installer", "backups")
|
||||
|
||||
prefix, _, rest = filename.partition(":")
|
||||
|
||||
if prefix == "temp":
|
||||
return os.path.join(tempdir, rest)
|
||||
|
||||
if prefix == "backup":
|
||||
base = os.path.basename(rest.rpartition(":")[2])
|
||||
return os.path.join(backups, base + "." + str(time.time()))
|
||||
|
||||
if prefix == "renpy":
|
||||
return os.path.join(config.renpy_base, rest)
|
||||
|
||||
if target is None:
|
||||
raise Exception("The target directory has not been set.")
|
||||
|
||||
return os.path.join(target, filename)
|
||||
|
||||
|
||||
def _clean(directory, age=3):
|
||||
"""
|
||||
Removes files from `directory` that are older than `age` days.
|
||||
"""
|
||||
|
||||
directory = _path(directory)
|
||||
|
||||
for root, dirs, files in os.walk(directory, topdown=False):
|
||||
for f in files:
|
||||
filename = os.path.join(root, f)
|
||||
mtime = os.stat(filename).st_mtime
|
||||
if time.time() - mtime > age * 86400:
|
||||
try:
|
||||
os.unlink(filename)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
if root != directory:
|
||||
|
||||
try:
|
||||
os.rmdir(root)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
def _friendly(filename):
|
||||
"""
|
||||
Returns a version of the filename without any leading prefix.
|
||||
"""
|
||||
|
||||
return filename.rpartition(":")[2]
|
||||
|
||||
|
||||
def _check_hash(filename, hashj):
|
||||
"""
|
||||
Returns a cryptographic hash of `filename`. `filename` should
|
||||
be a full path, one returned by temp or path.
|
||||
"""
|
||||
|
||||
try:
|
||||
|
||||
sha = hashlib.sha256()
|
||||
|
||||
with open(filename, "rb") as f:
|
||||
while True:
|
||||
data = f.read(1024 * 1024)
|
||||
if not data:
|
||||
break
|
||||
|
||||
sha.update(data)
|
||||
|
||||
return sha.hexdigest() == hash
|
||||
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
# The name and url of the file that is currently being downloaded. This is meant to
|
||||
# to be used by the interface screens to show the user what files are being
|
||||
# downloaded.
|
||||
download_file = ""
|
||||
download_url = ""
|
||||
|
||||
def download(url, filename, hash=None):
|
||||
"""
|
||||
Downloads `url` to `filename`, a tempfile.
|
||||
"""
|
||||
global download_url
|
||||
|
||||
global download_file
|
||||
|
||||
download_url = url
|
||||
download_file = _friendly(filename)
|
||||
|
||||
filename = _path(filename)
|
||||
|
||||
if hash is not None:
|
||||
if _check_hash(filename, hash):
|
||||
return
|
||||
|
||||
progress_time = time.time()
|
||||
|
||||
try:
|
||||
|
||||
response = requests.get(url, stream=True)
|
||||
response.raise_for_status()
|
||||
|
||||
total_size = int(response.headers.get('content-length', 1))
|
||||
|
||||
downloaded = 0
|
||||
|
||||
with open(filename, "wb") as f:
|
||||
|
||||
for i in response.iter_content(65536):
|
||||
|
||||
f.write(i)
|
||||
downloaded += len(i)
|
||||
|
||||
if time.time() - progress_time > 0.1:
|
||||
progress_time = time.time()
|
||||
if not quiet:
|
||||
interface.processing(
|
||||
_("Downloading [installer.download_file]..."),
|
||||
complete=downloaded, total=total_size)
|
||||
|
||||
except requests.HTTPError as e:
|
||||
if not quiet:
|
||||
raise
|
||||
|
||||
interface.error(_("Could not download [installer.download_file] from [installer.download_url]:\n{b}[installer.download_error]"))
|
||||
|
||||
if hash is not None:
|
||||
if not quiet:
|
||||
raise Exception("Hash check failed.")
|
||||
if not _check_hash(filename, hash):
|
||||
interface.error(_("The downloaded file [installer.download_file] from [installer.download_url] is not correct."))
|
||||
|
||||
class _FixedZipFile(zipfile.ZipFile):
|
||||
"""
|
||||
A patched version of zipfile.ZipFile that adds support for:
|
||||
|
||||
* Unix permissions bits.
|
||||
* Unix symbolic links.
|
||||
"""
|
||||
|
||||
def _extract_member(self, member, targetpath, pwd):
|
||||
|
||||
if not isinstance(member, zipfile.ZipInfo):
|
||||
member = self.getinfo(member)
|
||||
|
||||
# build the destination pathname, replacing
|
||||
# forward slashes to platform specific separators.
|
||||
arcname = member.filename.replace('/', os.path.sep)
|
||||
|
||||
if os.path.altsep:
|
||||
arcname = arcname.replace(os.path.altsep, os.path.sep)
|
||||
# interpret absolute pathname as relative, remove drive letter or
|
||||
# UNC path, redundant separators, "." and ".." components.
|
||||
arcname = os.path.splitdrive(arcname)[1]
|
||||
invalid_path_parts = ('', os.path.curdir, os.path.pardir)
|
||||
arcname = os.path.sep.join(x for x in arcname.split(os.path.sep) if x not in invalid_path_parts)
|
||||
|
||||
targetpath = os.path.join(targetpath, arcname)
|
||||
targetpath = os.path.normpath(targetpath)
|
||||
|
||||
# Create all upper directories if necessary.
|
||||
upperdirs = os.path.dirname(targetpath)
|
||||
if upperdirs and not os.path.exists(upperdirs):
|
||||
os.makedirs(upperdirs)
|
||||
|
||||
if member.filename.endswith("/"):
|
||||
if not os.path.isdir(targetpath):
|
||||
os.mkdir(targetpath)
|
||||
return targetpath
|
||||
|
||||
attr = member.external_attr >> 16
|
||||
|
||||
if stat.S_ISLNK(attr):
|
||||
|
||||
with self.open(member, pwd=pwd) as source:
|
||||
linkto = source.read()
|
||||
|
||||
os.symlink(linkto, targetpath)
|
||||
|
||||
else:
|
||||
|
||||
with self.open(member, pwd=pwd) as source, open(targetpath, "wb") as target:
|
||||
shutil.copyfileobj(source, target)
|
||||
|
||||
if attr:
|
||||
os.chmod(targetpath, attr)
|
||||
|
||||
return targetpath
|
||||
|
||||
|
||||
# The name of the archive being unpacked.
|
||||
unpack_archive = ""
|
||||
|
||||
|
||||
def unpack(archive, destination):
|
||||
"""
|
||||
Unpacks `archive` to `destination`. `archive` should be the name of
|
||||
a zip or (perhaps compressed) tar file. `destination` should be a
|
||||
directory that the contents are unpacked into.
|
||||
"""
|
||||
|
||||
global unpack_archive
|
||||
unpack_archive = _friendly(archive)
|
||||
|
||||
if not quiet:
|
||||
interface.processing(_("Unpacking [installer.unpack_archive]..."))
|
||||
|
||||
archive = _path(archive)
|
||||
destination = _path(destination)
|
||||
|
||||
if not os.path.exists(destination):
|
||||
os.makedirs(destination)
|
||||
|
||||
old_cwd = os.getcwd()
|
||||
|
||||
try:
|
||||
|
||||
os.chdir(destination)
|
||||
|
||||
if tarfile.is_tarfile(archive):
|
||||
tar = tarfile.open(archive)
|
||||
tar.extractall(".")
|
||||
tar.close()
|
||||
|
||||
elif zipfile.is_zipfile(archive):
|
||||
zip = _FixedZipFile(archive)
|
||||
zip.extractall(".")
|
||||
zip.close()
|
||||
|
||||
else:
|
||||
raise Exception("Unknown file type.")
|
||||
|
||||
finally:
|
||||
os.chdir(old_cwd)
|
||||
|
||||
|
||||
def exists(filename):
|
||||
"""
|
||||
Returns true if `filename` exists.
|
||||
"""
|
||||
|
||||
return os.path.exists(_path(filename))
|
||||
|
||||
|
||||
def remove(filename):
|
||||
"""
|
||||
Removes a file or directory from the target directory, backing it up
|
||||
the temporary directory.
|
||||
"""
|
||||
|
||||
if not exists(filename):
|
||||
return
|
||||
|
||||
backup = _path("backup:" + filename)
|
||||
shutil.move(_path(filename), backup)
|
||||
|
||||
# Now, touch everything so _cleanup doesn't get it too quickly.
|
||||
|
||||
if os.path.isdir(backup):
|
||||
for root, dirs, files in os.walk(backup):
|
||||
for f in files:
|
||||
try:
|
||||
os.utime(os.path.join(root, f), None)
|
||||
except Exception:
|
||||
pass
|
||||
else:
|
||||
try:
|
||||
os.utime(backup, None)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def move(old_filename, new_filename):
|
||||
"""
|
||||
Moves a filename from `old_filename` to `new_filename`.
|
||||
"""
|
||||
|
||||
remove(new_filename)
|
||||
shutil.move(_path(old_filename), _path(new_filename))
|
||||
|
||||
|
||||
def mkdir(dirname):
|
||||
"""
|
||||
Makes the named directory.
|
||||
"""
|
||||
|
||||
if not os.path.exists(_path(dirname)):
|
||||
os.makedirs(_path(dirname))
|
||||
|
||||
|
||||
def info(message, **kwargs):
|
||||
"""
|
||||
Displays `message` to the user, asking them to click through or
|
||||
cancel.
|
||||
"""
|
||||
|
||||
interface.info(message, cancel=Jump("front_page"), **kwargs)
|
||||
|
||||
|
||||
def processing(message, **kwargs):
|
||||
"""
|
||||
Displays `message` to the user, without waiting.
|
||||
"""
|
||||
|
||||
interface.processing(message, **kwargs)
|
||||
|
||||
|
||||
def error(message, **kwargs):
|
||||
"""
|
||||
Displays `message` to the user, as an error.
|
||||
"""
|
||||
|
||||
interface.error(message)
|
||||
|
||||
|
||||
install_args = [ ]
|
||||
install_error = ""
|
||||
|
||||
def run(*args, **kwargs):
|
||||
"""
|
||||
Runs a program with the given arguments, in the target directory.
|
||||
"""
|
||||
|
||||
environ = { renpy.exports.fsencode(k) : renpy.exports.fsencode(v) for k, v in os.environ.items() }
|
||||
|
||||
for k, v in kwargs.pop("environ", {}).items():
|
||||
environ[renpy.exports.fsencode(k)] = renpy.exports.fsencode(v)
|
||||
|
||||
global install_args
|
||||
global install_error
|
||||
|
||||
args = [ renpy.exports.fsencode(i) for i in args ]
|
||||
|
||||
try:
|
||||
subprocess.check_call(args, cwd=target, env=environ) # type: ignore
|
||||
except Exception as e:
|
||||
install_args = args
|
||||
install_error = str(e)
|
||||
|
||||
interface.error(_("Could not run [installer.install_args!r]:\n[installer.install_error]"))
|
||||
|
||||
|
||||
_renpy = renpy
|
||||
|
||||
def manifest(url, renpy=False, insecure=False):
|
||||
"""
|
||||
Executes the manifest at `url`.
|
||||
|
||||
`renpy`
|
||||
If true, the manifest applies to Ren'Py. If False, the manifest applies
|
||||
to the current project.
|
||||
|
||||
`insecure`
|
||||
If true, verificaiton is disabled.
|
||||
"""
|
||||
|
||||
import ecdsa
|
||||
|
||||
download(url, "temp:manifest.py")
|
||||
|
||||
with open(_path("temp:manifest.py"), "rb") as f:
|
||||
manifest = f.read()
|
||||
|
||||
if not insecure:
|
||||
download(url + ".sig", "temp:manifest.py.sig")
|
||||
|
||||
with open(_path("temp:manifest.py.sig"), "rb") as f:
|
||||
sig = f.read()
|
||||
|
||||
key = ecdsa.VerifyingKey.from_pem(_renpy.exports.file("renpy_ecdsa_public.pem").read())
|
||||
|
||||
if not key.verify(sig, manifest):
|
||||
error(_("The manifest signature is not valid."))
|
||||
return
|
||||
|
||||
if renpy:
|
||||
set_target(config.renpy_base)
|
||||
else:
|
||||
if project.current is None:
|
||||
error(_("No project has been selected."))
|
||||
return
|
||||
|
||||
set_target(project.current.path)
|
||||
|
||||
exec(manifest.decode("utf-8"), {}, {})
|
||||
|
||||
|
||||
def local_manifest(filename, renpy=False):
|
||||
"""
|
||||
Executes the manifest in `filename`.
|
||||
|
||||
`renpy`
|
||||
If true, the manifest applies to Ren'Py. If False, the manifest applies
|
||||
to the current project.
|
||||
"""
|
||||
|
||||
if renpy:
|
||||
set_target(config.renpy_base)
|
||||
else:
|
||||
if project.current is None:
|
||||
error(_("No project has been selected."))
|
||||
return
|
||||
|
||||
set_target(project.current.path)
|
||||
|
||||
with open(filename, "r") as f:
|
||||
exec(f.read(), {}, {})
|
||||
@@ -0,0 +1,12 @@
|
||||
|
||||
# This file imports the extensions API into the default store, and makes it
|
||||
# also contains the strings used by the extensions API, so the Ren'Py translation
|
||||
# framework can find them.
|
||||
|
||||
init python:
|
||||
import installer
|
||||
|
||||
init python hide:
|
||||
_("Downloading [extension.download_file].")
|
||||
_("Could not download [extension.download_file] from [extension.download_url]:\n{b}[extension.download_error]")
|
||||
_("The downloaded file [extension.download_file] from [extension.download_url] is not correct.")
|
||||
+23
-10
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -29,7 +29,6 @@ init python in interface:
|
||||
import contextlib
|
||||
|
||||
RENPY_URL = "http://www.renpy.org"
|
||||
RENPY_GAMES_URL = "http://games.renpy.org"
|
||||
DOC_PATH = os.path.join(config.renpy_base, "doc/index.html")
|
||||
DOC_URL = "http://www.renpy.org/doc/html/"
|
||||
|
||||
@@ -89,6 +88,10 @@ init python in interface:
|
||||
finally:
|
||||
links = True
|
||||
|
||||
# Version.
|
||||
import re
|
||||
version = re.sub(r'\.\d+(\w*)$', r'\1', renpy.version())
|
||||
|
||||
# This displays the bottom of the screen. If the tooltip is not None, this displays the
|
||||
# tooltip. Otherwise, it displays a list of links (to various websites, and to the
|
||||
# preferences and update screen), or is just blank.
|
||||
@@ -118,15 +121,17 @@ screen bottom_info:
|
||||
spacing INDENT
|
||||
textbutton _("Documentation") style "l_link" action interface.OpenDocumentation()
|
||||
textbutton _("Ren'Py Website") style "l_link" action OpenURL(interface.RENPY_URL)
|
||||
textbutton _("Ren'Py Games List") style "l_link" action OpenURL(interface.RENPY_GAMES_URL)
|
||||
textbutton _("About") style "l_link" action Jump("about")
|
||||
textbutton _("[interface.version]") style "l_link" action Jump("about")
|
||||
|
||||
hbox:
|
||||
spacing INDENT
|
||||
xalign 1.0
|
||||
|
||||
if ability.can_update:
|
||||
textbutton _("update") action Jump("update") style "l_link"
|
||||
textbutton _("update") action Jump("update") style "l_link":
|
||||
if persistent.has_update:
|
||||
text_color "#F96854"
|
||||
text_hover_color Color("#F96854").tint(.8)
|
||||
|
||||
textbutton _("preferences") style "l_link" action Jump("preferences")
|
||||
textbutton _("quit") style "l_link" action Quit(confirm=False)
|
||||
@@ -165,7 +170,7 @@ screen common:
|
||||
has vbox
|
||||
|
||||
text message:
|
||||
text_align 0.5
|
||||
textalign 0.5
|
||||
xalign 0.5
|
||||
layout "subtitle"
|
||||
|
||||
@@ -195,7 +200,15 @@ screen common:
|
||||
add SPACER
|
||||
|
||||
for v, l in choices:
|
||||
textbutton l action SetScreenVariable("selected", v)
|
||||
textbutton l:
|
||||
action SetScreenVariable("selected", v)
|
||||
selected_background REVERSE_IDLE
|
||||
selected_hover_background REVERSE_HOVER
|
||||
xpadding 20
|
||||
size_group "choice"
|
||||
text_selected_idle_color REVERSE_TEXT
|
||||
text_selected_hover_color REVERSE_TEXT
|
||||
text_xalign 0.5
|
||||
|
||||
if selected is not None:
|
||||
$ continue_ = Return(selected)
|
||||
@@ -206,7 +219,7 @@ screen common:
|
||||
add SPACER
|
||||
|
||||
text submessage:
|
||||
text_align 0.5
|
||||
textalign 0.5
|
||||
xalign 0.5
|
||||
layout "subtitle"
|
||||
|
||||
@@ -245,7 +258,7 @@ screen launcher_input:
|
||||
has vbox
|
||||
|
||||
text message:
|
||||
text_align 0.5
|
||||
textalign 0.5
|
||||
xalign 0.5
|
||||
layout "subtitle"
|
||||
|
||||
@@ -434,7 +447,7 @@ init python in interface:
|
||||
|
||||
try:
|
||||
rv.encode("ascii")
|
||||
except:
|
||||
except Exception:
|
||||
error(_("File and directory names must consist of ASCII characters."), label=None)
|
||||
continue
|
||||
|
||||
|
||||
+44
-5
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -152,6 +152,33 @@ init python:
|
||||
|
||||
ios_populate(p, gui=gui, target=target)
|
||||
|
||||
|
||||
def eliminate_pycache(directory):
|
||||
"""
|
||||
Eliminates the __pycache__ directory, and moves the files in it up a level,
|
||||
renaming them to remove the cache tag.
|
||||
"""
|
||||
|
||||
print("Eliminating __pycache__...")
|
||||
|
||||
if PY2:
|
||||
return
|
||||
|
||||
import pathlib
|
||||
import sys
|
||||
|
||||
paths = list(pathlib.Path(directory).glob("**/__pycache__/*.pyc"))
|
||||
|
||||
for p in paths:
|
||||
name = p.stem.partition(".")[0]
|
||||
p.rename(p.parent.parent / (name + ".pyc"))
|
||||
|
||||
paths = list(pathlib.Path(directory).glob("**/__pycache__"))
|
||||
|
||||
for p in paths:
|
||||
p.rmdir()
|
||||
|
||||
|
||||
def ios_populate(p=None, gui=True, target=None):
|
||||
"""
|
||||
This actually builds the package.
|
||||
@@ -181,6 +208,8 @@ init python:
|
||||
report_success=False,
|
||||
)
|
||||
|
||||
eliminate_pycache(dist)
|
||||
|
||||
main_fn = os.path.join(dist, "main.py")
|
||||
|
||||
for fn in os.listdir(dist):
|
||||
@@ -212,10 +241,17 @@ init python:
|
||||
|
||||
def launch_xcode():
|
||||
dist = xcode_project(None)
|
||||
base = os.path.basename(dist)
|
||||
xcodeproj = "{}/{}.xcodeproj".format(dist, base)
|
||||
|
||||
subprocess.call([ 'open', renpy.fsencode(xcodeproj) ])
|
||||
if not os.path.exists(dist):
|
||||
return
|
||||
|
||||
for fn in os.listdir(dist):
|
||||
if fn.endswith(".xcodeproj"):
|
||||
xcodeproj = os.path.join(dist, fn)
|
||||
subprocess.call([ 'open', renpy.fsencode(xcodeproj) ])
|
||||
|
||||
break
|
||||
|
||||
|
||||
screen ios:
|
||||
|
||||
@@ -300,6 +336,10 @@ screen ios:
|
||||
action IOSIfState(state, IOS_OK, launch_xcode)
|
||||
hovered tt.Action(IOS_XCODE_TEXT)
|
||||
|
||||
add SPACER
|
||||
|
||||
textbutton _("Force Recompile") action DataToggle("force_recompile") style "l_checkbox"
|
||||
|
||||
add SPACER
|
||||
add SEPARATOR2
|
||||
|
||||
@@ -415,4 +455,3 @@ init python:
|
||||
return False
|
||||
|
||||
renpy.arguments.register_command("ios_populate", ios_populate_command)
|
||||
|
||||
|
||||
+12
-35
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -23,6 +23,8 @@ init python:
|
||||
|
||||
def find_itch_butler():
|
||||
|
||||
import requests
|
||||
|
||||
if renpy.windows:
|
||||
platform = "windows-amd64"
|
||||
exe = "butler.exe"
|
||||
@@ -44,23 +46,16 @@ init python:
|
||||
|
||||
try:
|
||||
os.makedirs(dn)
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
import urllib2
|
||||
|
||||
with interface.error_handling(_("Downloading the itch.io butler.")):
|
||||
url = "https://broth.itch.ovh/butler/{}/LATEST/archive/default".format(platform)
|
||||
req = urllib2.Request(url, headers={'User-Agent' : "Renpy"})
|
||||
response = urllib2.urlopen(req, context=ssl_context())
|
||||
|
||||
response = requests.get(url, headers={'User-Agent' : "Renpy"})
|
||||
|
||||
with open(zip, "wb") as f:
|
||||
while True:
|
||||
data = response.read(1024 * 1024)
|
||||
if not data:
|
||||
break
|
||||
|
||||
f.write(data)
|
||||
f.write(response.content)
|
||||
|
||||
import zipfile
|
||||
|
||||
@@ -69,7 +64,7 @@ init python:
|
||||
|
||||
try:
|
||||
os.chmod(exe, 0o755)
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
return exe
|
||||
@@ -102,32 +97,14 @@ label itch:
|
||||
files = [ ]
|
||||
|
||||
for fn in os.listdir(destination):
|
||||
fn = os.path.join(destination, fn)
|
||||
|
||||
if fn.endswith("-all.zip"):
|
||||
channel = "win-osx-linux"
|
||||
|
||||
elif fn.endswith("-market.zip"):
|
||||
channel = "win-osx-linux"
|
||||
|
||||
elif fn.endswith("-pc.zip"):
|
||||
channel = "win-linux"
|
||||
|
||||
elif fn.endswith("-win.zip"):
|
||||
channel = "win"
|
||||
|
||||
elif fn.endswith("-mac.zip"):
|
||||
channel = "osx"
|
||||
|
||||
elif fn.endswith("-linux.tar.bz2"):
|
||||
channel = "linux"
|
||||
|
||||
elif fn.endswith("-release.apk"):
|
||||
channel = "android"
|
||||
|
||||
for pattern, channel in reversed(build['itch_channels']):
|
||||
if fnmatch.fnmatch(fn, pattern):
|
||||
break
|
||||
else:
|
||||
continue
|
||||
|
||||
fn = os.path.join(destination, fn)
|
||||
files.append((fn, channel))
|
||||
|
||||
if not os.path.exists(destination):
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -23,7 +23,7 @@ init python hide:
|
||||
import os
|
||||
|
||||
macapp = os.path.join(config.renpy_base, "renpy.app/Contents/MacOS")
|
||||
maclib = os.path.join(config.renpy_base, "lib/mac-x86_64")
|
||||
maclib = os.path.join(config.renpy_base, distribute.py("lib/py{major}-mac-universal"))
|
||||
|
||||
if os.path.exists(maclib):
|
||||
|
||||
@@ -45,7 +45,7 @@ init python hide:
|
||||
os.chmod(nfn, 0o755)
|
||||
os.unlink(fn)
|
||||
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -32,7 +32,7 @@ init -1 python:
|
||||
if not renpy.loadable(fn1):
|
||||
return True
|
||||
|
||||
hash1 = renpy.file(fn1).read()
|
||||
hash1 = renpy.file(fn1).read().decode("utf-8")
|
||||
|
||||
if not os.path.exists(fn2):
|
||||
return False
|
||||
@@ -99,6 +99,10 @@ init -1 python:
|
||||
interface.processing(prompt, pause=False)
|
||||
self.log(prompt)
|
||||
|
||||
def open_directory(self, directory, prompt):
|
||||
renpy.run(store.OpenDirectory(directory, absolute=True))
|
||||
interface.info(prompt)
|
||||
|
||||
def yesno(self, prompt, submessage=None):
|
||||
return interface.yesno(prompt, submessage=submessage)
|
||||
|
||||
@@ -155,12 +159,11 @@ init -1 python:
|
||||
|
||||
try:
|
||||
while self.run_yes:
|
||||
self.process.stdin.write('y\n')
|
||||
self.process.stdin.write(b'y\n')
|
||||
self.process.stdin.flush()
|
||||
time.sleep(.2)
|
||||
except:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
def call(self, cmd, cancel=False, use_path=False, yes=False):
|
||||
|
||||
@@ -170,7 +173,7 @@ init -1 python:
|
||||
|
||||
self.cmd = cmd
|
||||
|
||||
f = open(self.filename, "ab")
|
||||
f = open(self.filename, "a")
|
||||
|
||||
f.write("\n\n\n")
|
||||
|
||||
@@ -196,7 +199,7 @@ init -1 python:
|
||||
# avoid SIGTTIN caused by e.g. gradle doing empty read on terminal stdin
|
||||
if not yes:
|
||||
self.process.stdin.close()
|
||||
except:
|
||||
except Exception:
|
||||
import traceback
|
||||
traceback.print_exc(file=f)
|
||||
raise
|
||||
@@ -216,7 +219,11 @@ init -1 python:
|
||||
if yes and self.yes_thread:
|
||||
self.run_yes = False
|
||||
self.yes_thread.join()
|
||||
self.process.stdin.close()
|
||||
|
||||
try:
|
||||
self.process.stdin.close()
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
self.process = None
|
||||
self.yes_thread = None
|
||||
@@ -262,4 +269,3 @@ init -1 python:
|
||||
self.process.terminate()
|
||||
|
||||
renpy.jump(self.platform)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -249,7 +249,7 @@ screen navigation:
|
||||
if persistent.navigation == "todo":
|
||||
|
||||
text _("No TODO comments found.\n\nTo create one, include \"# TODO\" in your script."):
|
||||
text_align 0.5
|
||||
textalign 0.5
|
||||
xalign 0.5
|
||||
yalign 0.5
|
||||
|
||||
@@ -279,4 +279,3 @@ label navigation_loop:
|
||||
label navigation_refresh:
|
||||
$ project.current.update_dump(True)
|
||||
jump navigation_loop
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -41,7 +41,7 @@ init python:
|
||||
try:
|
||||
if (language is None) or os.path.exists(os.path.join(config.renpy_base, "templates", language)):
|
||||
legacy = True
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
if new and legacy:
|
||||
@@ -74,11 +74,11 @@ label new_project:
|
||||
cancel=Jump("front_page"),
|
||||
)
|
||||
else:
|
||||
new_project_language = (_preferences.language or "english").title()
|
||||
new_project_language = __("{#language name and font}")
|
||||
gui_kind = "new_gui_project"
|
||||
|
||||
# When translating this, feel free to replace [new_project_language] with the translation of your language.
|
||||
interface.info(_("You will be creating an [new_project_language]{#this substitution may be localized} language project. Change the launcher language in preferences to create a project in another language."))
|
||||
interface.info(_("You will be creating an [new_project_language]{#this substitution may be localized} language project. Change the launcher language in preferences to create a project in another language."), cancel=Jump("front_page"))
|
||||
|
||||
python:
|
||||
project_name = ""
|
||||
|
||||
+81
-41
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -30,6 +30,9 @@
|
||||
|
||||
init -1 python hide:
|
||||
|
||||
# Update the searchpath to find additional fonts.
|
||||
config.searchpath.append(config.renpy_base + "/sdk-fonts")
|
||||
|
||||
# Should we enable the use of developer tools? This should be
|
||||
# set to False before the game is released, so the user can't
|
||||
# cheat using developer tools.
|
||||
@@ -267,23 +270,8 @@ init python:
|
||||
build.classify_renpy("**/thumbs.db", None)
|
||||
build.classify_renpy("**/.*", None)
|
||||
|
||||
# Atom rules. These have to be very early, since Atom uses names like
|
||||
# tmp for packages.
|
||||
build.classify_renpy("atom/", "atom-all source_only")
|
||||
build.classify_renpy("atom/Atom.edit.py", "atom-all source_only")
|
||||
build.classify_renpy("atom/default-dot-atom/**", "atom-all")
|
||||
build.classify_renpy("atom/atom-windows/**", "atom-windows")
|
||||
build.classify_renpy("atom/Atom.app/**", "atom-mac")
|
||||
build.classify_renpy("atom/atom-linux**", "atom-linux")
|
||||
|
||||
try:
|
||||
with open(os.path.join(config.renpy_base, "atom", "executable.txt")) as f:
|
||||
for l in f:
|
||||
build.executable(l.strip())
|
||||
except:
|
||||
pass
|
||||
|
||||
build.classify_renpy("rapt/**/libLive2DCubismCore.so", None)
|
||||
build.classify_renpy("rapt/symbols/", None)
|
||||
build.classify_renpy("rapt/**", "rapt")
|
||||
build.executable("rapt/prototype/gradlew")
|
||||
|
||||
@@ -302,7 +290,6 @@ init python:
|
||||
build.classify_renpy("**.old", None)
|
||||
build.classify_renpy("**.new", None)
|
||||
build.classify_renpy("**.bak", None)
|
||||
build.classify_renpy("**.pyc", None)
|
||||
|
||||
build.classify_renpy("**/log.txt", None)
|
||||
build.classify_renpy("**/traceback.txt", None)
|
||||
@@ -315,33 +302,71 @@ init python:
|
||||
|
||||
# main source.
|
||||
|
||||
def source_and_binary(pattern, source="source", binary="binary"):
|
||||
def source_and_binary(pattern, source="source", binary="binary", py=True):
|
||||
"""
|
||||
Classifies source and binary files beginning with `pattern`.
|
||||
.pyo, .rpyc, .rpycm, and .rpyb go into binary, everything
|
||||
else goes into source.
|
||||
else but .pyi files go into source.
|
||||
"""
|
||||
|
||||
build.classify_renpy(pattern + "/**.pyo", binary)
|
||||
if py is True:
|
||||
py = 'pyo' if PY2 else 'pycache'
|
||||
|
||||
if py == 'pycache':
|
||||
build.classify_renpy(pattern + "/**__pycache__/", binary)
|
||||
build.classify_renpy(pattern + "/**__pycache__/*.{}.pyc".format(sys.implementation.cache_tag), binary)
|
||||
build.classify_renpy(pattern + "/**.pyc", None)
|
||||
build.classify_renpy(pattern + "/**.pyo", None)
|
||||
|
||||
elif py == 'pyc':
|
||||
build.classify_renpy(pattern + "/**__pycache__/", None)
|
||||
build.classify_renpy(pattern + "/**.pyc", binary)
|
||||
build.classify_renpy(pattern + "/**.pyo", None)
|
||||
|
||||
elif py == 'pyo':
|
||||
build.classify_renpy(pattern + "/**__pycache__/", None)
|
||||
build.classify_renpy(pattern + "/**.pyc", None)
|
||||
build.classify_renpy(pattern + "/**.pyo", binary)
|
||||
|
||||
else:
|
||||
build.classify_renpy(pattern + "/**__pycache__/", None)
|
||||
build.classify_renpy(pattern + "/**.pyc", None)
|
||||
build.classify_renpy(pattern + "/**.pyo", None)
|
||||
|
||||
build.classify_renpy(pattern + "/**.pyi", None)
|
||||
|
||||
build.classify_renpy(pattern + "/**.rpyc", binary)
|
||||
build.classify_renpy(pattern + "/**.rpymc", binary)
|
||||
|
||||
build.classify_renpy(pattern + "/**/" + renpy.script.BYTECODE_FILE, binary)
|
||||
build.classify_renpy(pattern + "/**/cache/bytecode-311.rpyb", "web")
|
||||
build.classify_renpy(pattern + "/**/cache/bytecode-*.rpyb", None)
|
||||
|
||||
build.classify_renpy(pattern + "/**/cache/*", binary)
|
||||
|
||||
build.classify_renpy(pattern + "/**", source)
|
||||
|
||||
|
||||
build.classify_renpy("renpy.py", "binary")
|
||||
source_and_binary("renpy")
|
||||
|
||||
# games.
|
||||
build.classify_renpy("launcher/game/theme/", None)
|
||||
build.classify_renpy("gui/game/gui/", None)
|
||||
|
||||
source_and_binary("launcher")
|
||||
source_and_binary("gui", binary=None)
|
||||
build.classify_renpy("gui/game/gui/", "source")
|
||||
build.classify_renpy("gui/game/gui/bubble.png", "source")
|
||||
build.classify_renpy("gui/game/gui/thoughtbubble.png", "source")
|
||||
build.classify_renpy("gui/game/gui/*", None)
|
||||
|
||||
source_and_binary("launcher", py=False)
|
||||
source_and_binary("gui", binary=None, py=False)
|
||||
|
||||
source_and_binary("the_question")
|
||||
source_and_binary("tutorial")
|
||||
|
||||
# extra fonts.
|
||||
build.classify_renpy("sdk-fonts/**", "source")
|
||||
|
||||
# docs.
|
||||
build.classify_renpy("doc/", "source")
|
||||
build.classify_renpy("doc/.doctrees/", None)
|
||||
@@ -360,8 +385,7 @@ init python:
|
||||
# module.
|
||||
build.classify_renpy("module/", "source")
|
||||
build.classify_renpy("module/*.c", "source")
|
||||
build.classify_renpy("module/gen/", "source")
|
||||
build.classify_renpy("module/gen/*.c", "source")
|
||||
build.classify_renpy("module/gen/", None)
|
||||
build.classify_renpy("module/*.h", "source")
|
||||
build.classify_renpy("module/*.py*", "source")
|
||||
build.classify_renpy("module/include/", "source")
|
||||
@@ -371,45 +395,61 @@ init python:
|
||||
build.classify_renpy("module/pysdlsound/*.py", "source")
|
||||
build.classify_renpy("module/pysdlsound/*.pyx", "source")
|
||||
build.classify_renpy("module/fribidi-src/**", "source")
|
||||
build.classify_renpy("module/tinyfiledialogs/**", "source")
|
||||
|
||||
# all-platforms binary.
|
||||
build.classify_renpy("lib/**/_renpysteam*", "steam")
|
||||
build.classify_renpy("lib/**/*steam_api*", "steam")
|
||||
build.classify_renpy("lib/**/*Live2D*", None)
|
||||
build.classify_renpy("lib/linux-armv7l/", "raspi")
|
||||
build.classify_renpy("lib/linux-armv7l/**", "raspi")
|
||||
build.classify_renpy("lib/**", "binary")
|
||||
build.classify_renpy("renpy.sh", "binary")
|
||||
# renpy.app is now built from scratch from distribute.rpy.
|
||||
|
||||
# jedit rules.
|
||||
build.classify_renpy("jedit/**", "jedit")
|
||||
if PY2:
|
||||
build.classify_renpy("lib/py2-linux-armv7l/**", "linux_arm")
|
||||
build.classify_renpy("lib/py2-linux-aarch64/**", "linux_arm")
|
||||
source_and_binary("lib/py2-**", "binary", "binary")
|
||||
source_and_binary("lib/python2**", "binary", "binary")
|
||||
build.classify_renpy("renpy2.sh", "binary")
|
||||
else:
|
||||
build.classify_renpy("lib/py3-linux-armv7l/**", "linux_arm")
|
||||
build.classify_renpy("lib/py3-linux-aarch64/**", "linux_arm")
|
||||
source_and_binary("lib/py3-**", "binary", "binary")
|
||||
source_and_binary("lib/python3**", "binary", "binary", py='pyc')
|
||||
build.classify_renpy("renpy3.sh", "binary")
|
||||
|
||||
build.classify_renpy("lib/", "binary")
|
||||
|
||||
# Packages.
|
||||
build.packages = [ ]
|
||||
|
||||
build.package("sdk", "zip tar.bz2 dmg", "source binary")
|
||||
build.package("sdkarm", "tar.bz2", "source binary linux_arm")
|
||||
build.package("source", "tar.bz2", "source source_only", update=False)
|
||||
build.package("raspi", "tar.bz2", "raspi", dlc=True, update=False)
|
||||
build.package("steam", "zip", "steam", dlc=True)
|
||||
|
||||
build.package("jedit", "zip", "jedit", dlc=True)
|
||||
|
||||
build.package("atom-linux", "tar.bz2", "atom-all atom-linux", dlc=True)
|
||||
build.package("atom-mac", "zip", "atom-all atom-mac", dlc=True)
|
||||
build.package("atom-windows", "zip", "atom-all atom-windows", dlc=True)
|
||||
|
||||
build.package("rapt", "zip", "rapt", dlc=True)
|
||||
build.package("renios", "zip", "renios", dlc=True)
|
||||
build.package("web", "zip", "web", dlc=True)
|
||||
|
||||
# The identifier for the SDK.
|
||||
define build.mac_info_plist["CFBundleIdentifier"] = "org.renpy.sdk"
|
||||
|
||||
# Enable the special launcher translation mode.
|
||||
define config.translate_launcher = True
|
||||
|
||||
# Allow clicks that focus the window to be processed.
|
||||
define config.mouse_focus_clickthrough = True
|
||||
|
||||
# Reduce the rate of screen updates.
|
||||
default preferences.gl_powersave = True
|
||||
|
||||
# Enable rtl.
|
||||
define config.rtl = True
|
||||
|
||||
# Disable steam.
|
||||
python early:
|
||||
config.enable_steam = False
|
||||
|
||||
# Since the launcher can be run directly or can be run from the SDK directory,
|
||||
# uneliding files needs to be handled slightly differently.
|
||||
define config.alternate_unelide_path = os.path.join(config.basedir, "launcher")
|
||||
|
||||
# Disable skipping.
|
||||
define config.allow_skipping = False
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -31,96 +31,110 @@ init python in distribute:
|
||||
import sys
|
||||
import threading
|
||||
|
||||
from renpy import six
|
||||
from zipfile import crc32
|
||||
|
||||
|
||||
# Since the long type doesn't exist on py3, define it here
|
||||
if six.PY3:
|
||||
if not PY2:
|
||||
long = int
|
||||
|
||||
zlib.Z_DEFAULT_COMPRESSION = 5
|
||||
|
||||
class ZipFile(zipfile.ZipFile):
|
||||
if PY2:
|
||||
|
||||
class ZipFile(zipfile.ZipFile):
|
||||
|
||||
def write_with_info(self, zinfo, filename):
|
||||
"""Put the bytes from filename into the archive under the name
|
||||
arcname."""
|
||||
if not self.fp:
|
||||
raise RuntimeError(
|
||||
"Attempt to write to ZIP archive that was already closed")
|
||||
def write_with_info(self, zinfo, filename):
|
||||
"""Put the bytes from filename into the archive under the name
|
||||
arcname."""
|
||||
if not self.fp:
|
||||
raise RuntimeError(
|
||||
"Attempt to write to ZIP archive that was already closed")
|
||||
|
||||
st = os.stat(filename)
|
||||
isdir = stat.S_ISDIR(st.st_mode)
|
||||
st = os.stat(filename)
|
||||
isdir = stat.S_ISDIR(st.st_mode)
|
||||
|
||||
zinfo.file_size = st.st_size
|
||||
zinfo.flag_bits = 0x00
|
||||
zinfo.header_offset = self.fp.tell() # Start of header bytes
|
||||
zinfo.file_size = st.st_size
|
||||
zinfo.flag_bits = 0x00
|
||||
zinfo.header_offset = self.fp.tell() # Start of header bytes
|
||||
|
||||
self._writecheck(zinfo)
|
||||
self._didModify = True
|
||||
self._writecheck(zinfo)
|
||||
self._didModify = True
|
||||
|
||||
if isdir:
|
||||
zinfo.file_size = 0
|
||||
zinfo.compress_size = 0
|
||||
zinfo.CRC = 0
|
||||
self.filelist.append(zinfo)
|
||||
self.NameToInfo[zinfo.filename] = zinfo
|
||||
self.fp.write(zinfo.FileHeader())
|
||||
return
|
||||
if isdir:
|
||||
zinfo.file_size = 0
|
||||
zinfo.compress_size = 0
|
||||
zinfo.CRC = 0
|
||||
self.filelist.append(zinfo)
|
||||
self.NameToInfo[zinfo.filename] = zinfo
|
||||
self.fp.write(zinfo.FileHeader())
|
||||
return
|
||||
|
||||
with open(filename, "rb") as fp:
|
||||
# Must overwrite CRC and sizes with correct data later
|
||||
zinfo.CRC = CRC = 0
|
||||
zinfo.compress_size = compress_size = 0
|
||||
file_size = 0
|
||||
with open(filename, "rb") as fp:
|
||||
# Must overwrite CRC and sizes with correct data later
|
||||
zinfo.CRC = CRC = 0
|
||||
zinfo.compress_size = compress_size = 0
|
||||
file_size = 0
|
||||
|
||||
zip64 = self._allowZip64 and \
|
||||
zinfo.file_size * 1.05 > zipfile.ZIP64_LIMIT
|
||||
zip64 = self._allowZip64 and \
|
||||
zinfo.file_size * 1.05 > zipfile.ZIP64_LIMIT
|
||||
|
||||
self.fp.write(zinfo.FileHeader(zip64))
|
||||
|
||||
if zinfo.compress_type == zipfile.ZIP_DEFLATED:
|
||||
cmpr = zlib.compressobj(zlib.Z_DEFAULT_COMPRESSION,
|
||||
zlib.DEFLATED, -15)
|
||||
else:
|
||||
cmpr = None
|
||||
while 1:
|
||||
buf = fp.read(1024 * 1024)
|
||||
if not buf:
|
||||
break
|
||||
file_size = file_size + len(buf)
|
||||
CRC = crc32(buf, CRC) & 0xffffffff
|
||||
if cmpr:
|
||||
buf = cmpr.compress(buf)
|
||||
compress_size = compress_size + len(buf)
|
||||
self.fp.write(buf)
|
||||
if cmpr:
|
||||
buf = cmpr.flush()
|
||||
compress_size = compress_size + len(buf)
|
||||
self.fp.write(buf)
|
||||
zinfo.compress_size = compress_size
|
||||
else:
|
||||
zinfo.compress_size = file_size
|
||||
zinfo.CRC = CRC
|
||||
zinfo.file_size = file_size
|
||||
|
||||
if not zip64 and self._allowZip64:
|
||||
if file_size > zipfile.ZIP64_LIMIT:
|
||||
raise RuntimeError('File size has increased during compressing')
|
||||
if compress_size > zipfile.ZIP64_LIMIT:
|
||||
raise RuntimeError('Compressed size larger than uncompressed size')
|
||||
|
||||
# Seek backwards and write CRC and file sizes
|
||||
position = self.fp.tell() # Preserve current position in file
|
||||
self.fp.seek(zinfo.header_offset, 0)
|
||||
|
||||
self.fp.write(zinfo.FileHeader(zip64))
|
||||
|
||||
if zinfo.compress_type == zipfile.ZIP_DEFLATED:
|
||||
cmpr = zlib.compressobj(zlib.Z_DEFAULT_COMPRESSION,
|
||||
zlib.DEFLATED, -15)
|
||||
self.fp.seek(position, 0)
|
||||
self.filelist.append(zinfo)
|
||||
self.NameToInfo[zinfo.filename] = zinfo
|
||||
|
||||
else:
|
||||
|
||||
class ZipFile(zipfile.ZipFile):
|
||||
|
||||
def write_with_info(self, zinfo, filename):
|
||||
|
||||
if zinfo.filename.endswith("/"):
|
||||
data = b''
|
||||
else:
|
||||
cmpr = None
|
||||
while 1:
|
||||
buf = fp.read(1024 * 1024)
|
||||
if not buf:
|
||||
break
|
||||
file_size = file_size + len(buf)
|
||||
CRC = crc32(buf, CRC) & 0xffffffff
|
||||
if cmpr:
|
||||
buf = cmpr.compress(buf)
|
||||
compress_size = compress_size + len(buf)
|
||||
self.fp.write(buf)
|
||||
if cmpr:
|
||||
buf = cmpr.flush()
|
||||
compress_size = compress_size + len(buf)
|
||||
self.fp.write(buf)
|
||||
zinfo.compress_size = compress_size
|
||||
else:
|
||||
zinfo.compress_size = file_size
|
||||
zinfo.CRC = CRC
|
||||
zinfo.file_size = file_size
|
||||
with open(filename, "rb") as f:
|
||||
data = f.read()
|
||||
|
||||
if not zip64 and self._allowZip64:
|
||||
if file_size > zipfile.ZIP64_LIMIT:
|
||||
raise RuntimeError('File size has increased during compressing')
|
||||
if compress_size > zipfile.ZIP64_LIMIT:
|
||||
raise RuntimeError('Compressed size larger than uncompressed size')
|
||||
|
||||
# Seek backwards and write CRC and file sizes
|
||||
position = self.fp.tell() # Preserve current position in file
|
||||
self.fp.seek(zinfo.header_offset, 0)
|
||||
|
||||
self.fp.write(zinfo.FileHeader(zip64))
|
||||
|
||||
self.fp.seek(position, 0)
|
||||
self.filelist.append(zinfo)
|
||||
self.NameToInfo[zinfo.filename] = zinfo
|
||||
self.writestr(zinfo, data)
|
||||
|
||||
|
||||
class ZipPackage(object):
|
||||
@@ -144,7 +158,7 @@ init python in distribute:
|
||||
# Check that the time is sensible.
|
||||
if rv[0] < 2000:
|
||||
rv = None
|
||||
except:
|
||||
except Exception:
|
||||
rv = None
|
||||
|
||||
if rv is None:
|
||||
@@ -290,7 +304,7 @@ init python in distribute:
|
||||
# If this is not a directory, ensure all parent directories
|
||||
# have been created
|
||||
self.mkdir(os.path.dirname(fn))
|
||||
shutil.copy2(path, fn)
|
||||
shutil.copy(path, fn)
|
||||
|
||||
if xbit:
|
||||
os.chmod(fn, 0o755)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+280
-142
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -20,36 +20,33 @@
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
init python:
|
||||
from math import ceil
|
||||
|
||||
if persistent.show_edit_funcs is None:
|
||||
persistent.show_edit_funcs = True
|
||||
|
||||
if persistent.windows_console is None:
|
||||
persistent.windows_console = False
|
||||
|
||||
def scan_translations():
|
||||
def scan_translations(piglatin=True):
|
||||
|
||||
languages = renpy.known_languages()
|
||||
|
||||
if not languages:
|
||||
return None
|
||||
|
||||
rv = [ ( "English", None) ]
|
||||
languages.remove("piglatin")
|
||||
|
||||
for i in languages:
|
||||
rv.append((i.title(), i))
|
||||
rv = [(i, renpy.translate_string("{#language name and font}", i)) for i in languages ]
|
||||
rv.sort(key=lambda a : renpy.filter_text_tags(a[1], allow=[]).lower())
|
||||
|
||||
for i in (("Schinese", "schinese"), ("Tchinese", "tchinese")):
|
||||
if i in rv:
|
||||
rv.remove(i)
|
||||
rv.append(({"schinese": "Simplified Chinese", "tchinese": "Traditional Chinese"}.get(i[1]), i[1]))
|
||||
rv.insert(0, (None, "English"))
|
||||
|
||||
rv.sort()
|
||||
if piglatin:
|
||||
rv.append(("piglatin", "Igpay Atinlay"))
|
||||
|
||||
if ("Piglatin", "piglatin") in rv:
|
||||
rv.remove(("Piglatin", "piglatin"))
|
||||
rv.append(("Pig Latin", "piglatin"))
|
||||
|
||||
return rv
|
||||
bound = ceil(len(rv)/3.)
|
||||
return (rv[:bound], rv[bound:2*bound], rv[2*bound:])
|
||||
|
||||
show_legacy = os.path.exists(os.path.join(config.renpy_base, "templates", "english", "game", "script.rpy"))
|
||||
|
||||
@@ -61,10 +58,23 @@ init python:
|
||||
default persistent.legacy = False
|
||||
default persistent.force_new_tutorial = False
|
||||
default persistent.sponsor_message = True
|
||||
default persistent.daily_update_check = True
|
||||
default persistent.daily_update_check_once = False
|
||||
|
||||
screen preferences:
|
||||
# Keep the default update check from triggering until tomorrow.
|
||||
default persistent.last_update_check = datetime.date.today()
|
||||
|
||||
$ translations = scan_translations()
|
||||
init python:
|
||||
if not persistent.daily_update_check_once:
|
||||
persistent.daily_update_check_once = True
|
||||
persistent.daily_update_check = True
|
||||
|
||||
|
||||
default preference_tab = "general"
|
||||
|
||||
screen preferences():
|
||||
|
||||
default translations = scan_translations()
|
||||
|
||||
frame:
|
||||
style_group "l"
|
||||
@@ -91,159 +101,216 @@ screen preferences:
|
||||
# Projects directory selection.
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
yminimum 75
|
||||
has vbox
|
||||
add HALF_SPACER
|
||||
|
||||
text _("Projects Directory:")
|
||||
|
||||
add HALF_SPACER
|
||||
textbutton _("General") action SetVariable("preference_tab", "general") style "l_list"
|
||||
textbutton _("Options") action SetVariable("preference_tab", "options") style "l_list"
|
||||
textbutton _("Theme") action SetVariable("preference_tab", "theme") style "l_list"
|
||||
textbutton _("Install Libraries") action SetVariable("preference_tab", "install") style "l_list"
|
||||
textbutton _("Actions") action SetVariable("preference_tab", "actions") style "l_list"
|
||||
|
||||
|
||||
frame style "l_indent":
|
||||
if persistent.projects_directory:
|
||||
textbutton _("[persistent.projects_directory!q]"):
|
||||
action Jump("projects_directory_preference")
|
||||
alt _("Projects directory: [text]")
|
||||
else:
|
||||
textbutton _("Not Set"):
|
||||
action Jump("projects_directory_preference")
|
||||
alt _("Projects directory: [text]")
|
||||
|
||||
|
||||
add SPACER
|
||||
|
||||
# Text editor selection.
|
||||
add SEPARATOR2
|
||||
if preference_tab == "general":
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
yminimum 75
|
||||
has vbox
|
||||
|
||||
text _("Text Editor:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
frame style "l_indent":
|
||||
if persistent.editor:
|
||||
textbutton persistent.editor action Jump("editor_preference") alt _("Text editor: [text]")
|
||||
else:
|
||||
textbutton _("Not Set") action Jump("editor_preference") alt _("Text editor: [text]")
|
||||
|
||||
add SPACER
|
||||
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
yminimum 75
|
||||
has vbox
|
||||
|
||||
text _("Actions:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
textbutton _("Install libraries") style "l_nonbox" action Jump("install")
|
||||
textbutton _("Open launcher project") style "l_nonbox" action [ project.Select("launcher"), Jump("front_page") ]
|
||||
textbutton _("Reset window size") style "l_nonbox" action Preference("display", 1.0)
|
||||
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
xmaximum ONETHIRD
|
||||
xfill True
|
||||
|
||||
has vbox
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
yminimum 75
|
||||
has vbox
|
||||
|
||||
text _("Navigation Options:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
textbutton _("Include private names") style "l_checkbox" action ToggleField(persistent, "navigate_private")
|
||||
textbutton _("Include library names") style "l_checkbox" action ToggleField(persistent, "navigate_library")
|
||||
|
||||
add SPACER
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
yminimum 75
|
||||
has vbox
|
||||
|
||||
text _("Launcher Options:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
textbutton _("Show edit file section") style "l_checkbox" action ToggleField(persistent, "show_edit_funcs")
|
||||
textbutton _("Large fonts") style "l_checkbox" action [ ToggleField(persistent, "large_print"), renpy.utter_restart ]
|
||||
|
||||
if renpy.windows:
|
||||
textbutton _("Console output") style "l_checkbox" action ToggleField(persistent, "windows_console")
|
||||
|
||||
if project.manager.get("oldtutorial"):
|
||||
|
||||
textbutton _("Force new tutorial") style "l_checkbox" action [ ToggleField(persistent, "force_new_tutorial"), project.SelectTutorial(True) ]
|
||||
|
||||
if show_legacy:
|
||||
|
||||
textbutton _("Legacy options") style "l_checkbox" action ToggleField(persistent, "legacy")
|
||||
|
||||
if persistent.legacy:
|
||||
textbutton _("Show templates") style "l_checkbox" action ToggleField(persistent, "show_templates")
|
||||
|
||||
textbutton _("Sponsor message") style "l_checkbox" action ToggleField(persistent, "sponsor_message")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
textbutton _("Default theme") style "l_checkbox" action [SetField(persistent, "theme", None), RestartAtPreferences() ]
|
||||
# textbutton _("Clear theme") style "l_checkbox" action [SetField(persistent, "theme", "clear", None), RestartAtPreferences() ]
|
||||
textbutton _("Dark theme") style "l_checkbox" action [SetField(persistent, "theme", "dark", None), RestartAtPreferences()]
|
||||
textbutton _("Custom theme") style "l_checkbox" action [SetField(persistent, "theme", "custom", None), RestartAtPreferences()]
|
||||
|
||||
|
||||
if translations:
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
xmaximum ONETHIRD
|
||||
xmaximum TWOTHIRDS
|
||||
xfill True
|
||||
|
||||
has vbox
|
||||
|
||||
# Projects directory selection.
|
||||
add SEPARATOR2
|
||||
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
|
||||
has vbox
|
||||
|
||||
text _("Projects Directory:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
|
||||
frame style "l_indent":
|
||||
if persistent.projects_directory:
|
||||
textbutton _("[persistent.projects_directory!q]"):
|
||||
action Jump("projects_directory_preference")
|
||||
alt _("Projects directory: [text]")
|
||||
else:
|
||||
textbutton _("Not Set"):
|
||||
action Jump("projects_directory_preference")
|
||||
alt _("Projects directory: [text]")
|
||||
|
||||
add SPACER
|
||||
|
||||
# Text editor selection.
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
yminimum 75
|
||||
has vbox
|
||||
|
||||
text _("Text Editor:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
frame style "l_indent":
|
||||
if persistent.editor:
|
||||
textbutton persistent.editor action Jump("editor_preference") alt _("Text editor: [text]")
|
||||
else:
|
||||
textbutton _("Not Set") action Jump("editor_preference") alt _("Text editor: [text]")
|
||||
|
||||
add SPACER
|
||||
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
text _("Language:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
viewport:
|
||||
scrollbars "vertical"
|
||||
mousewheel True
|
||||
hbox:
|
||||
for tran in translations:
|
||||
vbox:
|
||||
for tlid, tlname in tran:
|
||||
textbutton tlname:
|
||||
xmaximum (TWOTHIRDS//3)
|
||||
action [Language(tlid), project.SelectTutorial(True)]
|
||||
style "l_list"
|
||||
|
||||
has vbox
|
||||
elif preference_tab == "options":
|
||||
|
||||
# frame style "l_indent":
|
||||
frame:
|
||||
style "l_indent"
|
||||
xmaximum TWOTHIRDS
|
||||
xfill True
|
||||
|
||||
for tlname, tlvalue in translations:
|
||||
textbutton tlname action [ Language(tlvalue), project.SelectTutorial(True) ] style "l_list"
|
||||
has vbox
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
text _("Navigation Options:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
textbutton _("Include private names") style "l_checkbox" action ToggleField(persistent, "navigate_private")
|
||||
textbutton _("Include library names") style "l_checkbox" action ToggleField(persistent, "navigate_library")
|
||||
|
||||
add SPACER
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
text _("Launcher Options:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
textbutton _("Show edit file section") style "l_checkbox" action ToggleField(persistent, "show_edit_funcs")
|
||||
textbutton _("Large fonts") style "l_checkbox" action [ ToggleField(persistent, "large_print"), renpy.utter_restart ]
|
||||
|
||||
if renpy.windows:
|
||||
textbutton _("Console output") style "l_checkbox" action ToggleField(persistent, "windows_console")
|
||||
|
||||
textbutton _("Sponsor message") style "l_checkbox" action ToggleField(persistent, "sponsor_message")
|
||||
|
||||
if ability.can_update:
|
||||
textbutton _("Daily check for update") style "l_checkbox" action [ToggleField(persistent, "daily_update_check"), SetField(persistent, "last_update_check", None)] selected persistent.daily_update_check
|
||||
|
||||
|
||||
elif preference_tab == "theme":
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
xmaximum TWOTHIRDS
|
||||
xfill True
|
||||
|
||||
has vbox
|
||||
|
||||
# Projects directory selection.
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
text _("Launcher Theme:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
textbutton _("Default theme") style "l_checkbox" action [SetField(persistent, "theme", None), RestartAtPreferences() ]
|
||||
textbutton _("Dark theme") style "l_checkbox" action [SetField(persistent, "theme", "dark"), RestartAtPreferences()]
|
||||
textbutton _("Custom theme") style "l_checkbox" action [SetField(persistent, "theme", "custom"), RestartAtPreferences()]
|
||||
|
||||
add SPACER
|
||||
|
||||
text _("Information about creating a custom theme can be found {a=https://www.renpy.org/doc/html/skins.html}in the Ren'Py Documentation{/a}.")
|
||||
|
||||
elif preference_tab == "install":
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
xmaximum TWOTHIRDS
|
||||
xfill True
|
||||
|
||||
has vbox
|
||||
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
text _("Install Libraries:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
use install_preferences
|
||||
|
||||
|
||||
elif preference_tab == "actions":
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
xmaximum TWOTHIRDS
|
||||
xfill True
|
||||
|
||||
has vbox
|
||||
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
text _("Actions:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
textbutton _("Open launcher project") style "l_nonbox" action [ project.Select("launcher"), Jump("front_page") ]
|
||||
textbutton _("Reset window size") style "l_nonbox" action Preference("display", 1.0)
|
||||
textbutton _("Clean temporary files") style "l_nonbox" action Jump("clean_tmp")
|
||||
|
||||
|
||||
textbutton _("Return") action Jump("front_page") style "l_left_button"
|
||||
|
||||
label clean_tmp:
|
||||
python hide:
|
||||
installer.processing(_("Cleaning temporary files..."))
|
||||
installer._clean("renpy:tmp", 0)
|
||||
time.sleep(0.5)
|
||||
|
||||
jump preferences
|
||||
|
||||
label projects_directory_preference:
|
||||
call choose_projects_directory
|
||||
jump preferences
|
||||
@@ -252,3 +319,74 @@ label projects_directory_preference:
|
||||
label preferences:
|
||||
call screen preferences
|
||||
jump preferences
|
||||
|
||||
|
||||
screen choose_language():
|
||||
default local_lang = _preferences.language
|
||||
default chosen_lang = _preferences.language
|
||||
default translations = scan_translations(piglatin=False)
|
||||
|
||||
add BACKGROUND
|
||||
|
||||
vbox:
|
||||
xalign .5
|
||||
yalign .5
|
||||
|
||||
fixed:
|
||||
ysize 0
|
||||
|
||||
text renpy.translate_string(_("{#in language font}Welcome! Please choose a language"), local_lang):
|
||||
xalign .5
|
||||
yanchor 1.0
|
||||
ypos 1.0
|
||||
|
||||
style "l_label_text"
|
||||
|
||||
size 36
|
||||
textalign .5
|
||||
layout "subtitle"
|
||||
|
||||
add SPACER
|
||||
add SPACER
|
||||
|
||||
hbox:
|
||||
xalign .5
|
||||
for tran in translations:
|
||||
vbox:
|
||||
for tlid, tlname in tran:
|
||||
textbutton tlname:
|
||||
xmaximum (TWOTHIRDS//3)
|
||||
action [ SetScreenVariable("chosen_lang", tlid), Language(tlid), project.SelectTutorial(True), Return() ]
|
||||
hovered SetScreenVariable("local_lang", tlid)
|
||||
unhovered SetScreenVariable("local_lang", chosen_lang)
|
||||
style "l_list"
|
||||
text_xalign .5
|
||||
|
||||
add SPACER
|
||||
add SPACER
|
||||
|
||||
$ lang_name = renpy.translate_string("{#language name and font}", local_lang)
|
||||
|
||||
fixed:
|
||||
ysize 0
|
||||
|
||||
textbutton renpy.translate_string(_("{#in language font}Start using Ren'Py in [lang_name]"), local_lang):
|
||||
xalign .5
|
||||
action [Language(chosen_lang), project.SelectTutorial(True), Return()]
|
||||
style "l_default"
|
||||
text_style "l_default"
|
||||
|
||||
text_size 30
|
||||
text_textalign .5
|
||||
text_layout "subtitle"
|
||||
|
||||
|
||||
label choose_language:
|
||||
call screen choose_language
|
||||
return
|
||||
|
||||
|
||||
translate None strings:
|
||||
# game/new_project.rpy:77
|
||||
old "{#language name and font}"
|
||||
new "English"
|
||||
|
||||
+77
-31
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -48,6 +48,7 @@ init python in project:
|
||||
_("Press shift+O (the letter) to access the console."),
|
||||
_("Press shift+D to access the developer menu."),
|
||||
_("Have you backed up your projects recently?"),
|
||||
_("Lint checks your game for potential mistakes, and gives you statistics."),
|
||||
]
|
||||
|
||||
class Project(object):
|
||||
@@ -101,9 +102,9 @@ init python in project:
|
||||
|
||||
def load_data(self):
|
||||
try:
|
||||
with open(os.path.join(self.path, "project.json"), "rb") as f:
|
||||
with open(os.path.join(self.path, "project.json"), "r") as f:
|
||||
self.data = json.load(f)
|
||||
except:
|
||||
except Exception:
|
||||
self.data = { }
|
||||
|
||||
self.update_data()
|
||||
@@ -114,9 +115,9 @@ init python in project:
|
||||
"""
|
||||
|
||||
try:
|
||||
with open(os.path.join(self.path, "project.json"), "wb") as f:
|
||||
with open(os.path.join(self.path, "project.json"), "w") as f:
|
||||
json.dump(self.data, f)
|
||||
except:
|
||||
except Exception:
|
||||
self.load_data()
|
||||
|
||||
def update_data(self):
|
||||
@@ -167,7 +168,7 @@ init python in project:
|
||||
|
||||
try:
|
||||
os.makedirs(tmp)
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
if os.path.isdir(tmp):
|
||||
@@ -186,7 +187,7 @@ init python in project:
|
||||
self.tmp = tmp
|
||||
return
|
||||
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
self.tmp = tempfile.mkdtemp()
|
||||
@@ -239,7 +240,7 @@ init python in project:
|
||||
raise Exception("Python interpreter not found: %r", executables)
|
||||
|
||||
# Put together the basic command line.
|
||||
cmd = [ executable, "-EO", sys.argv[0] ]
|
||||
cmd = [ executable, sys.argv[0] ]
|
||||
|
||||
cmd.append(self.path)
|
||||
cmd.extend(args)
|
||||
@@ -275,7 +276,13 @@ init python in project:
|
||||
|
||||
if wait:
|
||||
if p.wait():
|
||||
interface.error(_("Launching the project failed."), _("Please ensure that your project launches normally before running this command."))
|
||||
|
||||
print("Launch failed. command={!r}, returncode={!r}".format(cmd, p.returncode))
|
||||
|
||||
if args and not self.is_writeable():
|
||||
interface.error(_("Launching the project failed."), _("This may be because the project is not writeable."))
|
||||
else:
|
||||
interface.error(_("Launching the project failed."), _("Please ensure that your project launches normally before running this command."))
|
||||
|
||||
renpy.not_infinite_loop(30)
|
||||
|
||||
@@ -314,7 +321,7 @@ init python in project:
|
||||
# add todo list to dump data
|
||||
self.update_todos()
|
||||
|
||||
except:
|
||||
except Exception:
|
||||
self.dump["error"] = True
|
||||
|
||||
def update_todos(self):
|
||||
@@ -329,17 +336,18 @@ init python in project:
|
||||
|
||||
for f in files:
|
||||
|
||||
data = file(self.unelide_filename(f))
|
||||
data = open(self.unelide_filename(f), encoding="utf-8")
|
||||
|
||||
for l, line in enumerate(data):
|
||||
l += 1
|
||||
|
||||
line = line[:1024]
|
||||
|
||||
try:
|
||||
line = line.decode("utf-8")
|
||||
except:
|
||||
continue
|
||||
if PY2:
|
||||
try:
|
||||
line = line.decode("utf-8")
|
||||
except Exception:
|
||||
continue
|
||||
|
||||
m = re.search(r"#\s*TODO(\s*:\s*|\s+)(.*)", line, re.I)
|
||||
|
||||
@@ -382,9 +390,18 @@ init python in project:
|
||||
can be included in the project.
|
||||
"""
|
||||
|
||||
def is_script(fn):
|
||||
fn = fn.lower()
|
||||
|
||||
for i in [ ".rpy", ".rpym", "_ren.py" ]:
|
||||
if fn.endswith(i):
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
rv = [ ]
|
||||
rv.extend(i for i, isdir in util.walk(self.path)
|
||||
if (not isdir) and (i.endswith(".rpy") or i.endswith(".rpym")) and (not i.startswith("tmp/")) )
|
||||
if (not isdir) and is_script(i) and (not i.startswith("tmp/")) )
|
||||
|
||||
return rv
|
||||
|
||||
@@ -395,6 +412,14 @@ init python in project:
|
||||
|
||||
return os.path.exists(os.path.join(self.path, fn))
|
||||
|
||||
def is_writeable(self):
|
||||
"""
|
||||
Returns true if it's possible to write a file in the projects
|
||||
directory.
|
||||
"""
|
||||
|
||||
return os.access(self.path, os.W_OK)
|
||||
|
||||
|
||||
class ProjectManager(object):
|
||||
"""
|
||||
@@ -404,26 +429,26 @@ init python in project:
|
||||
|
||||
def __init__(self):
|
||||
|
||||
# The projects directory.
|
||||
self.projects_directory = ""
|
||||
# The projects directory.
|
||||
self.projects_directory = ""
|
||||
|
||||
# Normal projects, in alphabetical order by lowercase name.
|
||||
self.projects = [ ]
|
||||
# Normal projects, in alphabetical order by lowercase name.
|
||||
self.projects = [ ]
|
||||
|
||||
# Template projects.
|
||||
self.templates = [ ]
|
||||
# Template projects.
|
||||
self.templates = [ ]
|
||||
|
||||
# All projects - normal, template, and hidden.
|
||||
self.all_projects = [ ]
|
||||
# All projects - normal, template, and hidden.
|
||||
self.all_projects = [ ]
|
||||
|
||||
# Directories that have been scanned.
|
||||
self.scanned = set()
|
||||
# Directories that have been scanned.
|
||||
self.scanned = set()
|
||||
|
||||
# The tutorial game, and the language it's for.
|
||||
self.tutoral = None
|
||||
self.tutorial_language = "the meowing of a cat"
|
||||
# The tutorial game, and the language it's for.
|
||||
self.tutoral = None
|
||||
self.tutorial_language = "the meowing of a cat"
|
||||
|
||||
self.scan()
|
||||
self.scan()
|
||||
|
||||
def scan(self):
|
||||
"""
|
||||
@@ -541,7 +566,7 @@ init python in project:
|
||||
|
||||
try:
|
||||
ppath = self.find_basedir(ppath)
|
||||
except:
|
||||
except Exception:
|
||||
return
|
||||
|
||||
if ppath is None:
|
||||
@@ -820,3 +845,24 @@ init python:
|
||||
return False
|
||||
|
||||
renpy.arguments.register_command("get_projects_directory", get_projects_directory_command)
|
||||
|
||||
def set_project_command():
|
||||
ap = renpy.arguments.ArgumentParser()
|
||||
ap.add_argument("project", help="The full path to the project to select.")
|
||||
|
||||
args = ap.parse_args()
|
||||
|
||||
projects = os.path.dirname(os.path.abspath(args.project))
|
||||
name = os.path.basename(args.project)
|
||||
|
||||
persistent.projects_directory = renpy.fsdecode(projects)
|
||||
project.multipersistent.projects_directory = persistent.projects_directory
|
||||
|
||||
persistent.active_project = name
|
||||
|
||||
project.multipersistent.save()
|
||||
renpy.save_persistent()
|
||||
|
||||
return False
|
||||
|
||||
renpy.arguments.register_command("set_project", set_project_command)
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
-----BEGIN PUBLIC KEY-----
|
||||
MFYwEAYHKoZIzj0CAQYFK4EEAAoDQgAEmkuXOrZ2viRe4fRCrlqUFGdgRqy9IcWt
|
||||
5lJvsUqRN619pWZIefz/bau9Sd8vcJt6VKwexOeBmMhzXwZ/1Lm3OQ==
|
||||
-----END PUBLIC KEY-----
|
||||
+49
-5
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -19,6 +19,50 @@
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
# Defaults for custom theme properties.
|
||||
init -99 python:
|
||||
# The color of non-interactive text.
|
||||
custom_text = "#545454"
|
||||
|
||||
# Colors for buttons in various states.
|
||||
custom_idle = "#42637b"
|
||||
custom_hover = "#d86b45"
|
||||
custom_disable = "#808080"
|
||||
|
||||
# Colors for reversed text buttons (selected list entries).
|
||||
custom_reverse_idle = "#78a5c5"
|
||||
reverse_hover = "#d86b45"
|
||||
custom_reverse_text = "#ffffff"
|
||||
|
||||
# Colors for the scrollbar thumb.
|
||||
custom_scrollbar_idle = "#dfdfdf"
|
||||
custom_scrollbar_hover = "#d86b45"
|
||||
# An image used as a separator pattern.
|
||||
custom_pattern = "images/pattern.png"
|
||||
|
||||
# A displayable used for the background of everything.
|
||||
custom_background = "images/background.png"
|
||||
|
||||
# A displayable used for the background of the projects list.
|
||||
custom_projects_window = Null()
|
||||
|
||||
# A displayable used the background of information boxes.
|
||||
custom_info_window = "#f9f9f9c0"
|
||||
|
||||
# Colors for the titles of information boxes.
|
||||
custom_error_color = "#d15353"
|
||||
custom_info_color = "#545454"
|
||||
custom_interaction_color = "#d19753"
|
||||
custom_question_color = "#d19753"
|
||||
|
||||
# The color of input text.
|
||||
custom_input_color = "#d86b45"
|
||||
|
||||
# A displayable used for the background of windows
|
||||
# containing commands, preferences, and navigation info.
|
||||
custom_window = Frame(Fixed(Solid(custom_reverse_idle, xsize=4, xalign=0), Solid(custom_info_window, xsize=794, xalign=1.0), xsize=800, ysize=600), 0, 0, tile=True)
|
||||
|
||||
|
||||
init -1:
|
||||
|
||||
# Fonts.
|
||||
@@ -164,7 +208,7 @@ init -1 python:
|
||||
# containing commands, preferences, and navigation info.
|
||||
WINDOW = Frame(Fixed(Solid(REVERSE_IDLE, xsize=4, xalign=0), Solid(INFO_WINDOW, xsize=794, xalign=1.0), xsize=800, ysize=600), 0, 0, tile=True)
|
||||
|
||||
elif renpy.exists("skin.rpy") and persistent.theme == 'custom':
|
||||
elif persistent.theme == 'custom':
|
||||
|
||||
# The color of non-interactive text.
|
||||
TEXT = custom_text
|
||||
@@ -202,7 +246,7 @@ init -1 python:
|
||||
QUESTION_COLOR = custom_question_color
|
||||
|
||||
# The color of input text.
|
||||
INPUT_COLOR = custom_imput_color
|
||||
INPUT_COLOR = custom_input_color
|
||||
|
||||
# A displayable used for the background of windows
|
||||
# containing commands, preferences, and navigation info.
|
||||
@@ -358,7 +402,7 @@ style l_alternate is l_default:
|
||||
style l_alternate_text is l_default:
|
||||
size size(14)
|
||||
font light_font()
|
||||
text_align 1.0
|
||||
textalign 1.0
|
||||
|
||||
style l_small_button is l_button
|
||||
|
||||
@@ -444,7 +488,7 @@ style l_info_button is l_button:
|
||||
xmargin 50
|
||||
|
||||
style l_info_button_text is l_button_text:
|
||||
text_align 0.5
|
||||
textalign 0.5
|
||||
layout "subtitle"
|
||||
|
||||
# Progress bar.
|
||||
|
||||
+12
-6
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
init python:
|
||||
|
||||
|
||||
class FileTail(object):
|
||||
|
||||
def __init__(self, filename, lines=8):
|
||||
@@ -31,13 +32,18 @@ init python:
|
||||
|
||||
def update(self):
|
||||
|
||||
def filter_text(s):
|
||||
if "Unknown chunk type '200'" in s:
|
||||
return False
|
||||
return True
|
||||
|
||||
try:
|
||||
with open(self.filename) as f:
|
||||
text = f.read()
|
||||
|
||||
try:
|
||||
text = renpy.fsdecode(text)
|
||||
except:
|
||||
except Exception:
|
||||
text = text.decode("latin-1")
|
||||
|
||||
text = text.strip()
|
||||
@@ -49,6 +55,9 @@ init python:
|
||||
if "\r" in l:
|
||||
_head, _sep, l = l.rpartition("\r")
|
||||
|
||||
if not filter_text(l):
|
||||
continue
|
||||
|
||||
while l:
|
||||
newtext.append(l[:100])
|
||||
l = l[100:]
|
||||
@@ -61,8 +70,5 @@ init python:
|
||||
self.text = text
|
||||
renpy.restart_interaction()
|
||||
|
||||
except:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,9 +1,31 @@
|
||||
init python:
|
||||
TEST_PROJECTS = u"/tmp/renpy-moé"
|
||||
import shutil
|
||||
def finally_callback():
|
||||
print("finally "*100)
|
||||
whether = renpy.is_in_test()
|
||||
|
||||
define config.end_testcase_callbacks += [finally_callback]
|
||||
|
||||
testcase default:
|
||||
python hide:
|
||||
renpy.watch("renpy.is_in_test()")
|
||||
renpy.watch("waitch")
|
||||
renpy.watch("whether")
|
||||
waitch = 5
|
||||
"preferences"
|
||||
"theme"
|
||||
"dEfAuLt theme"
|
||||
"theme"
|
||||
"dark the"
|
||||
"return"
|
||||
# exit
|
||||
"quit"
|
||||
|
||||
|
||||
init python:
|
||||
TEST_PROJECTS = "/tmp/renpy-moé"
|
||||
import shutil
|
||||
|
||||
testcase old_default:
|
||||
|
||||
call new_project
|
||||
call translate_project
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2023 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
# (the "Software"), to deal in the Software without restriction,
|
||||
# including without limitation the rights to use, copy, modify, merge,
|
||||
# publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
# and to permit persons to whom the Software is furnished to do so,
|
||||
# subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be
|
||||
# included in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
# This is used on Linux and Mac to prompt the user for the projects
|
||||
# directory.
|
||||
|
||||
import sys
|
||||
|
||||
|
||||
# Gtk generally has better support than TKinter on various Linux distributions
|
||||
def gtk_select_directory(title):
|
||||
dialog = Gtk.FileChooserNative(title=title,
|
||||
action=Gtk.FileChooserAction.SELECT_FOLDER)
|
||||
|
||||
dialog.run()
|
||||
|
||||
return dialog.get_filename()
|
||||
|
||||
|
||||
# Fall back to TKinter if Gtk isn't available
|
||||
def tk_select_directory(initialdir, title):
|
||||
root = Tk()
|
||||
root.withdraw()
|
||||
|
||||
return askdirectory(initialdir=initialdir, parent=root, title=title)
|
||||
|
||||
|
||||
try:
|
||||
import gi
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk
|
||||
|
||||
def select_directory(title):
|
||||
result = gtk_select_directory(title)
|
||||
|
||||
return result if result else ''
|
||||
|
||||
except:
|
||||
# Python3 and Python2-style imports.
|
||||
try:
|
||||
from tkinter import Tk
|
||||
from tkinter.filedialog import askdirectory
|
||||
except ImportError:
|
||||
from Tkinter import Tk
|
||||
from tkFileDialog import askdirectory
|
||||
|
||||
def select_directory(title):
|
||||
return tk_select_directory(title, sys.argv[1])
|
||||
|
||||
if __name__ == '__main__':
|
||||
directory = select_directory('Select Ren\'Py Projects Directory')
|
||||
|
||||
sys.stdout.write(directory)
|
||||
@@ -1,5 +1,7 @@
|
||||
|
||||
translate arabic strings:
|
||||
translate arabic strings:
|
||||
# game/new_project.rpy:77
|
||||
old "{#language name and font}"
|
||||
new "{font=DejaVuSans.ttf}العربية{/font}"
|
||||
|
||||
# about.rpy:39
|
||||
old "[version!q]"
|
||||
@@ -562,7 +564,7 @@ translate arabic strings:
|
||||
new "[project_dir!q] يوجد مسبقاً, الرجاء اختيار اسم مختلف."
|
||||
|
||||
# gui7.rpy:341
|
||||
old "What resolution should the project use? Although Ren'Py can scale the window up and down, this is the initial size of the window, the size at which assets should be drawn, and the size at which the assets will be at their sharpest.\n\nThe default of 1280x720 is a reasonable compromise."
|
||||
old "What resolution should the project use? Although Ren'Py can scale the window up and down, this is the initial size of the window, the size at which assets should be drawn, and the size at which the assets will be at their sharpest.\n\nThe default of [default_size[0]]x[default_size[1]] is a reasonable compromise."
|
||||
new "ما هو الحجم المطلوب للمشروع؟ رينباي يستطيع تكبير و تصغير حجم النافذة لتناسب الشاشة, لكن الحجم الذي ستختاره هنا هو الحجم القياسي, و الذي ستظهر فيه الصور و الشخصيات في أوضح شكل لها. \n\n الحجم الذي يناسب اغلب الشاشات هو 1280×730 بكسل."
|
||||
|
||||
# gui7.rpy:389
|
||||
@@ -1184,4 +1186,3 @@ translate arabic strings:
|
||||
# updater.rpy:195
|
||||
old "Proceed"
|
||||
new "استمرار"
|
||||
|
||||
|
||||
@@ -174,8 +174,8 @@ translate arabic strings:
|
||||
new "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
|
||||
|
||||
# screens.rpy:418
|
||||
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
new "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". This screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
new "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". This screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
|
||||
# screens.rpy:476
|
||||
old "Return"
|
||||
@@ -640,4 +640,3 @@ translate arabic strings:
|
||||
# screens.rpy:1429
|
||||
old "Menu"
|
||||
new "Menu"
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ label start:
|
||||
|
||||
define config.rtl = True
|
||||
|
||||
define gui.text_align = 1.0
|
||||
define gui.textalign = 1.0
|
||||
define gui.button_text_xalign = 1.0
|
||||
define gui.prompt_text_xalign = 1.0
|
||||
define gui.navigation_xpos = 240
|
||||
|
||||
@@ -3,7 +3,7 @@ translate finnish strings:
|
||||
|
||||
# 00action_file.rpy:26
|
||||
old "{#weekday}Monday"
|
||||
new "{#weekday}Maanatai"
|
||||
new "{#weekday}Maanantai"
|
||||
|
||||
# 00action_file.rpy:26
|
||||
old "{#weekday}Tuesday"
|
||||
@@ -199,7 +199,8 @@ translate finnish strings:
|
||||
|
||||
# 00gui.rpy:236
|
||||
old "Are you sure you want to skip unseen dialogue to the next choice?"
|
||||
new "Are you sure you want to skip unseen dialogue to the next choice?"
|
||||
# Automatic translation.
|
||||
new "Oletko varma, että haluat ohittaa näkymättömän dialogin seuraavaan vaihtoehtoon?"
|
||||
|
||||
# 00keymap.rpy:250
|
||||
old "Saved screenshot as %s."
|
||||
@@ -223,7 +224,8 @@ translate finnish strings:
|
||||
|
||||
# 00library.rpy:262
|
||||
old "This program contains free software under a number of licenses, including the MIT License and GNU Lesser General Public License. A complete list of software, including links to full source code, can be found {a=https://www.renpy.org/l/license}here{/a}."
|
||||
new "This program contains free software under a number of licenses, including the MIT License and GNU Lesser General Public License. A complete list of software, including links to full source code, can be found {a=https://www.renpy.org/l/license}here{/a}."
|
||||
# Automatic translation.
|
||||
new "Tämä ohjelma sisältää vapaita ohjelmistoja useiden lisenssien alla, mukaan lukien MIT-lisenssi ja GNU Lesser General Public License. Täydellinen luettelo ohjelmistoista, mukaan lukien linkit täydelliseen lähdekoodiin, löytyy {a=https://www.renpy.org/l/license}täältä{/a}."
|
||||
|
||||
# 00preferences.rpy:422
|
||||
old "Clipboard voicing enabled. Press 'shift+C' to disable."
|
||||
@@ -239,7 +241,8 @@ translate finnish strings:
|
||||
|
||||
# 00iap.rpy:217
|
||||
old "Contacting App Store\nPlease Wait..."
|
||||
new "Contacting App Store\nPlease Wait..."
|
||||
# Automatic translation.
|
||||
new "Yhteydenotto App Storeen\nOdottakaa..."
|
||||
|
||||
# 00updater.rpy:367
|
||||
old "The Ren'Py Updater is not supported on mobile devices."
|
||||
@@ -315,7 +318,7 @@ translate finnish strings:
|
||||
|
||||
# 00gallery.rpy:563
|
||||
old "Image [index] of [count] locked."
|
||||
new "[index]. kuva [count]:stä on lukittu"
|
||||
new "Kuva [index]/[count] on lukittu."
|
||||
|
||||
# 00gallery.rpy:583
|
||||
old "prev"
|
||||
@@ -333,3 +336,608 @@ translate finnish strings:
|
||||
old "return"
|
||||
new "palaa"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/00accessibility.rpy:32
|
||||
old "bar"
|
||||
new "palkki"
|
||||
|
||||
# renpy/common/00accessibility.rpy:33
|
||||
old "selected"
|
||||
# Automatic translation.
|
||||
new "valittu"
|
||||
|
||||
# renpy/common/00accessibility.rpy:34
|
||||
old "viewport"
|
||||
new "viewport"
|
||||
|
||||
# renpy/common/00accessibility.rpy:35
|
||||
old "horizontal scroll"
|
||||
# Automatic translation.
|
||||
new "vaakasuora vieritys"
|
||||
|
||||
# renpy/common/00accessibility.rpy:36
|
||||
old "vertical scroll"
|
||||
# Automatic translation.
|
||||
new "pystysuora vieritys"
|
||||
|
||||
# renpy/common/00accessibility.rpy:37
|
||||
old "activate"
|
||||
# Automatic translation.
|
||||
new "aktivoi"
|
||||
|
||||
# renpy/common/00accessibility.rpy:38
|
||||
old "deactivate"
|
||||
# Automatic translation.
|
||||
new "deaktivoi"
|
||||
|
||||
# renpy/common/00accessibility.rpy:39
|
||||
old "increase"
|
||||
new "lisää"
|
||||
|
||||
# renpy/common/00accessibility.rpy:40
|
||||
old "decrease"
|
||||
new "vähennä"
|
||||
|
||||
# renpy/common/00accessibility.rpy:138
|
||||
old "Font Override"
|
||||
# Automatic translation.
|
||||
new "Fontin ohitus"
|
||||
|
||||
# renpy/common/00accessibility.rpy:142
|
||||
old "Default"
|
||||
# Automatic translation.
|
||||
new "Oletus"
|
||||
|
||||
# renpy/common/00accessibility.rpy:146
|
||||
old "DejaVu Sans"
|
||||
new "DejaVu Sans"
|
||||
|
||||
# renpy/common/00accessibility.rpy:150
|
||||
old "Opendyslexic"
|
||||
new "Opendyslexic"
|
||||
|
||||
# renpy/common/00accessibility.rpy:156
|
||||
old "Text Size Scaling"
|
||||
# Automatic translation.
|
||||
new "Tekstin koon skaalaus"
|
||||
|
||||
# renpy/common/00accessibility.rpy:162
|
||||
old "Reset"
|
||||
# Automatic translation.
|
||||
new "Nollaa"
|
||||
|
||||
# renpy/common/00accessibility.rpy:168
|
||||
old "Line Spacing Scaling"
|
||||
new "Rivivälin skaalaus"
|
||||
|
||||
# renpy/common/00accessibility.rpy:180
|
||||
old "High Contrast Text"
|
||||
# Automatic translation.
|
||||
new "Korkean kontrastin teksti"
|
||||
|
||||
# renpy/common/00accessibility.rpy:193
|
||||
old "Self-Voicing"
|
||||
new "Tietokoneen ääninäyttely"
|
||||
|
||||
# renpy/common/00accessibility.rpy:197
|
||||
old "Off"
|
||||
new "Pois päältä"
|
||||
|
||||
# renpy/common/00accessibility.rpy:201
|
||||
old "Text-to-speech"
|
||||
# Automatic translation.
|
||||
new "Tekstistä puheeksi"
|
||||
|
||||
# renpy/common/00accessibility.rpy:205
|
||||
old "Clipboard"
|
||||
# Automatic translation.
|
||||
new "Leikepöytä"
|
||||
|
||||
# renpy/common/00accessibility.rpy:209
|
||||
old "Debug"
|
||||
# Automatic translation.
|
||||
new "Vianmääritys"
|
||||
|
||||
# renpy/common/00accessibility.rpy:223
|
||||
old "Self-Voicing Volume Drop"
|
||||
new "Tietokoneen ääninäyttelyn äänenvoimakkuuden pudotus"
|
||||
|
||||
# renpy/common/00accessibility.rpy:234
|
||||
old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was."
|
||||
new "Tämän valikon vaihtoehtojen tarkoituksena on parantaa saavutettavuutta. Ne eivät välttämättä toimi kaikissa peleissä, ja joidenkin vaihtoehtojen yhdistelmät saattavat tehdä pelistä pelikelvottoman. Tämä ei johdu pelistä tai moottorista. Saat fontteja vaihtaessa parhaat tulokset kun yrität pitää tekstin koon samana kuin se oli alun perin."
|
||||
|
||||
# renpy/common/00action_file.rpy:378
|
||||
old "Save slot %s: [text]"
|
||||
new "Tallennuspaikka %s: [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:461
|
||||
old "Load slot %s: [text]"
|
||||
new "Lataa tallennus %s: [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:514
|
||||
old "Delete slot [text]"
|
||||
new "Poista tallennus [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:593
|
||||
old "File page auto"
|
||||
new "Tiedoston sivu: auto"
|
||||
|
||||
# renpy/common/00action_file.rpy:595
|
||||
old "File page quick"
|
||||
new "Tiedoston sivu: pika"
|
||||
|
||||
# renpy/common/00action_file.rpy:597
|
||||
old "File page [text]"
|
||||
new "Tiedoston sivu: [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:796
|
||||
old "Next file page."
|
||||
new "Seuraava tiedoston sivu."
|
||||
|
||||
# renpy/common/00action_file.rpy:868
|
||||
old "Previous file page."
|
||||
new "Edellinen tiedoston sivu."
|
||||
|
||||
# renpy/common/00action_file.rpy:944
|
||||
old "Quick save."
|
||||
new "Pikatallennus."
|
||||
|
||||
# renpy/common/00action_file.rpy:963
|
||||
old "Quick load."
|
||||
# Automatic translation.
|
||||
new "Pikalataus."
|
||||
|
||||
# renpy/common/00action_other.rpy:381
|
||||
old "Language [text]"
|
||||
# Automatic translation.
|
||||
new "Kieli [text]"
|
||||
|
||||
# renpy/common/00director.rpy:705
|
||||
old "The interactive director is not enabled here."
|
||||
# Automatic translation.
|
||||
new "Vuorovaikutteinen ohjaaja ei ole käytössä täällä."
|
||||
|
||||
# renpy/common/00director.rpy:1504
|
||||
old "⬆"
|
||||
new "⬆"
|
||||
|
||||
# renpy/common/00director.rpy:1510
|
||||
old "⬇"
|
||||
new "⬇"
|
||||
|
||||
# renpy/common/00director.rpy:1574
|
||||
old "Done"
|
||||
# Automatic translation.
|
||||
new "Valmis"
|
||||
|
||||
# renpy/common/00director.rpy:1584
|
||||
old "(statement)"
|
||||
# Automatic translation.
|
||||
new "(lausunto)"
|
||||
|
||||
# renpy/common/00director.rpy:1585
|
||||
old "(tag)"
|
||||
new "(tag)"
|
||||
|
||||
# renpy/common/00director.rpy:1586
|
||||
old "(attributes)"
|
||||
# Automatic translation.
|
||||
new "(attribuutit)"
|
||||
|
||||
# renpy/common/00director.rpy:1587
|
||||
old "(transform)"
|
||||
new "(transform)"
|
||||
|
||||
# renpy/common/00director.rpy:1612
|
||||
old "(transition)"
|
||||
new "(transition)"
|
||||
|
||||
# renpy/common/00director.rpy:1624
|
||||
old "(channel)"
|
||||
# Automatic translation.
|
||||
new "(kanava)"
|
||||
|
||||
# renpy/common/00director.rpy:1625
|
||||
old "(filename)"
|
||||
# Automatic translation.
|
||||
new "(tiedostonimi)"
|
||||
|
||||
# renpy/common/00director.rpy:1654
|
||||
old "Change"
|
||||
# Automatic translation.
|
||||
new "Muuta"
|
||||
|
||||
# renpy/common/00director.rpy:1656
|
||||
old "Add"
|
||||
# Automatic translation.
|
||||
new "Lisää"
|
||||
|
||||
# renpy/common/00director.rpy:1662
|
||||
old "Remove"
|
||||
# Automatic translation.
|
||||
new "Poista"
|
||||
|
||||
# renpy/common/00director.rpy:1697
|
||||
old "Statement:"
|
||||
# Automatic translation.
|
||||
new "Lausunto:"
|
||||
|
||||
# renpy/common/00director.rpy:1718
|
||||
old "Tag:"
|
||||
new "Tag:"
|
||||
|
||||
# renpy/common/00director.rpy:1734
|
||||
old "Attributes:"
|
||||
# Automatic translation.
|
||||
new "Ominaisuudet:"
|
||||
|
||||
# renpy/common/00director.rpy:1745
|
||||
old "Click to toggle attribute, right click to toggle negative attribute."
|
||||
# Automatic translation.
|
||||
new "Napsauttamalla voit vaihtaa attribuuttia, oikealla napsauttamalla voit vaihtaa negatiivista attribuuttia."
|
||||
|
||||
# renpy/common/00director.rpy:1757
|
||||
old "Transforms:"
|
||||
# Automatic translation.
|
||||
new "Muuntuu:"
|
||||
|
||||
# renpy/common/00director.rpy:1768
|
||||
old "Click to set transform, right click to add to transform list."
|
||||
# Automatic translation.
|
||||
new "Napsauta aseta muunnos, lisää muunnosluetteloon napsauttamalla hiiren kakkospainiketta."
|
||||
|
||||
# renpy/common/00director.rpy:1780
|
||||
old "Behind:"
|
||||
# Automatic translation.
|
||||
new "Takana:"
|
||||
|
||||
# renpy/common/00director.rpy:1789
|
||||
old "Click to set, right click to add to behind list."
|
||||
# Automatic translation.
|
||||
new "Aseta napsauttamalla, lisää takaluetteloon napsauttamalla hiiren kakkospainiketta."
|
||||
|
||||
# renpy/common/00director.rpy:1801
|
||||
old "Transition:"
|
||||
# Automatic translation.
|
||||
new "Siirtyminen:"
|
||||
|
||||
# renpy/common/00director.rpy:1819
|
||||
old "Channel:"
|
||||
# Automatic translation.
|
||||
new "Kanava:"
|
||||
|
||||
# renpy/common/00director.rpy:1837
|
||||
old "Audio Filename:"
|
||||
# Automatic translation.
|
||||
new "Äänitiedoston nimi:"
|
||||
|
||||
# renpy/common/00gui.rpy:456
|
||||
old "This save was created on a different device. Maliciously constructed save files can harm your computer. Do you trust this save's creator and everyone who could have changed the file?"
|
||||
# Automatic translation.
|
||||
new "Tämä tallennus on luotu eri laitteella. Pahantahtoisesti tehdyt tallennustiedostot voivat vahingoittaa tietokonettasi. Luotatko tämän tallennuksen tekijään ja kaikkiin, jotka ovat voineet muuttaa tiedostoa?"
|
||||
|
||||
# renpy/common/00gui.rpy:457
|
||||
old "Do you trust the device the save was created on? You should only choose yes if you are the device's sole user."
|
||||
# Automatic translation.
|
||||
new "Luotatko laitteeseen, jolla tallennus luotiin? Valitse kyllä vain, jos olet laitteen ainoa käyttäjä."
|
||||
|
||||
# renpy/common/00keymap.rpy:322
|
||||
old "Failed to save screenshot as %s."
|
||||
# Automatic translation.
|
||||
new "Kuvakaappauksen tallentaminen nimellä %s epäonnistui."
|
||||
|
||||
# renpy/common/00preferences.rpy:271
|
||||
old "display"
|
||||
# Automatic translation.
|
||||
new "näyttö"
|
||||
|
||||
# renpy/common/00preferences.rpy:283
|
||||
old "transitions"
|
||||
# Automatic translation.
|
||||
new "siirtymät"
|
||||
|
||||
# renpy/common/00preferences.rpy:292
|
||||
old "skip transitions"
|
||||
new "ohita siirtymät"
|
||||
|
||||
# renpy/common/00preferences.rpy:294
|
||||
old "video sprites"
|
||||
new "video sprites"
|
||||
|
||||
# renpy/common/00preferences.rpy:303
|
||||
old "show empty window"
|
||||
# Automatic translation.
|
||||
new "näytä tyhjä ikkuna"
|
||||
|
||||
# renpy/common/00preferences.rpy:312
|
||||
old "text speed"
|
||||
# Automatic translation.
|
||||
new "tekstin nopeus"
|
||||
|
||||
# renpy/common/00preferences.rpy:320
|
||||
old "joystick"
|
||||
# Automatic translation.
|
||||
new "Joystick"
|
||||
|
||||
# renpy/common/00preferences.rpy:320
|
||||
old "joystick..."
|
||||
new "joystick..."
|
||||
|
||||
# renpy/common/00preferences.rpy:327
|
||||
old "skip"
|
||||
# Automatic translation.
|
||||
new "ohita"
|
||||
|
||||
# renpy/common/00preferences.rpy:330
|
||||
old "skip unseen [text]"
|
||||
new "ohita näkemätön [text]"
|
||||
|
||||
# renpy/common/00preferences.rpy:335
|
||||
old "skip unseen text"
|
||||
new "ohita näkemätön teksti"
|
||||
|
||||
# renpy/common/00preferences.rpy:337
|
||||
old "begin skipping"
|
||||
new "aloita ohittaminen"
|
||||
|
||||
# renpy/common/00preferences.rpy:341
|
||||
old "after choices"
|
||||
# Automatic translation.
|
||||
new "valintojen jälkeen"
|
||||
|
||||
# renpy/common/00preferences.rpy:348
|
||||
old "skip after choices"
|
||||
new "ohita valintojen jälkeen"
|
||||
|
||||
# renpy/common/00preferences.rpy:350
|
||||
old "auto-forward time"
|
||||
new "automaattisen eteenpäinsiirtymisen aika"
|
||||
|
||||
# renpy/common/00preferences.rpy:364
|
||||
old "auto-forward"
|
||||
new "automaattinen eteenpäinsiirtyminen"
|
||||
|
||||
# renpy/common/00preferences.rpy:371
|
||||
old "Auto forward"
|
||||
new "Automaattinen eteenpäinsiirtyminen"
|
||||
|
||||
# renpy/common/00preferences.rpy:374
|
||||
old "auto-forward after click"
|
||||
new "automaattinen eteenpäinsiirtyminen napsautuksen jälkeen"
|
||||
|
||||
# renpy/common/00preferences.rpy:383
|
||||
old "automatic move"
|
||||
# Automatic translation.
|
||||
new "automaattinen siirto"
|
||||
|
||||
# renpy/common/00preferences.rpy:392
|
||||
old "wait for voice"
|
||||
# Automatic translation.
|
||||
new "odota ääntä"
|
||||
|
||||
# renpy/common/00preferences.rpy:401
|
||||
old "voice sustain"
|
||||
# Automatic translation.
|
||||
new "äänen ylläpitäminen"
|
||||
|
||||
# renpy/common/00preferences.rpy:410
|
||||
old "self voicing"
|
||||
new "tietokoneen ääninäyttely"
|
||||
|
||||
# renpy/common/00preferences.rpy:419
|
||||
old "self voicing volume drop"
|
||||
new "tietokoneen ääninäyttelyn äänenvoimakkuuden pudotus"
|
||||
|
||||
# renpy/common/00preferences.rpy:427
|
||||
old "clipboard voicing"
|
||||
new "leikepöydän ääni"
|
||||
|
||||
# renpy/common/00preferences.rpy:436
|
||||
old "debug voicing"
|
||||
new "virheenkorjausääni"
|
||||
|
||||
# renpy/common/00preferences.rpy:445
|
||||
old "emphasize audio"
|
||||
new "korosta ääntä"
|
||||
|
||||
# renpy/common/00preferences.rpy:454
|
||||
old "rollback side"
|
||||
# Automatic translation.
|
||||
new "Rollback-puoli"
|
||||
|
||||
# renpy/common/00preferences.rpy:464
|
||||
old "gl powersave"
|
||||
new "gl powersave"
|
||||
|
||||
# renpy/common/00preferences.rpy:470
|
||||
old "gl framerate"
|
||||
new "gl framerate"
|
||||
|
||||
# renpy/common/00preferences.rpy:473
|
||||
old "gl tearing"
|
||||
new "gl tearing"
|
||||
|
||||
# renpy/common/00preferences.rpy:476
|
||||
old "font transform"
|
||||
# Automatic translation.
|
||||
new "fontin muunnos"
|
||||
|
||||
# renpy/common/00preferences.rpy:479
|
||||
old "font size"
|
||||
# Automatic translation.
|
||||
new "fonttikoko"
|
||||
|
||||
# renpy/common/00preferences.rpy:487
|
||||
old "font line spacing"
|
||||
# Automatic translation.
|
||||
new "fontin riviväli"
|
||||
|
||||
# renpy/common/00preferences.rpy:495
|
||||
old "system cursor"
|
||||
# Automatic translation.
|
||||
new "järjestelmän kursori"
|
||||
|
||||
# renpy/common/00preferences.rpy:504
|
||||
old "renderer menu"
|
||||
# Automatic translation.
|
||||
new "renderöintivalikko"
|
||||
|
||||
# renpy/common/00preferences.rpy:507
|
||||
old "accessibility menu"
|
||||
# Automatic translation.
|
||||
new "saavutettavuusvalikko"
|
||||
|
||||
# renpy/common/00preferences.rpy:510
|
||||
old "high contrast text"
|
||||
# Automatic translation.
|
||||
new "korkean kontrastin teksti"
|
||||
|
||||
# renpy/common/00preferences.rpy:519
|
||||
old "audio when minimized"
|
||||
# Automatic translation.
|
||||
new "ääni kun se on minimoitu"
|
||||
|
||||
# renpy/common/00preferences.rpy:528
|
||||
old "audio when unfocused"
|
||||
# Automatic translation.
|
||||
new "ääni kun se ei ole keskittynyt"
|
||||
|
||||
# renpy/common/00preferences.rpy:537
|
||||
old "web cache preload"
|
||||
# Automatic translation.
|
||||
new "verkkovälimuistin esilataus"
|
||||
|
||||
# renpy/common/00preferences.rpy:552
|
||||
old "voice after game menu"
|
||||
# Automatic translation.
|
||||
new "ääni pelivalikon jälkeen"
|
||||
|
||||
# renpy/common/00preferences.rpy:571
|
||||
old "main volume"
|
||||
new "pää-äänenvoimakkuus"
|
||||
|
||||
# renpy/common/00preferences.rpy:572
|
||||
old "music volume"
|
||||
new "musiikin äänenvoimakkuus"
|
||||
|
||||
# renpy/common/00preferences.rpy:573
|
||||
old "sound volume"
|
||||
new "tehosteiden äänenvoimakkuus"
|
||||
|
||||
# renpy/common/00preferences.rpy:574
|
||||
old "voice volume"
|
||||
new "ääninäyttelyn äänenvoimakkuus"
|
||||
|
||||
# renpy/common/00preferences.rpy:575
|
||||
old "mute main"
|
||||
new "mykistä pää-ääni"
|
||||
|
||||
# renpy/common/00preferences.rpy:576
|
||||
old "mute music"
|
||||
new "mykistä musiikki"
|
||||
|
||||
# renpy/common/00preferences.rpy:577
|
||||
old "mute sound"
|
||||
new "mykistä äänitehosteet"
|
||||
|
||||
# renpy/common/00preferences.rpy:578
|
||||
old "mute voice"
|
||||
new "mykistä ääninäyttely"
|
||||
|
||||
# renpy/common/00preferences.rpy:579
|
||||
old "mute all"
|
||||
new "mykistä kaikki"
|
||||
|
||||
# renpy/common/00speechbubble.rpy:344
|
||||
old "Speech Bubble Editor"
|
||||
# Automatic translation.
|
||||
new "Puhekuplaeditori"
|
||||
|
||||
# renpy/common/00speechbubble.rpy:349
|
||||
old "(hide)"
|
||||
# Automatic translation.
|
||||
new "(piilota)"
|
||||
|
||||
# renpy/common/00sync.rpy:70
|
||||
old "Sync downloaded."
|
||||
# Automatic translation.
|
||||
new "Synkronointi ladattu."
|
||||
|
||||
# renpy/common/00sync.rpy:190
|
||||
old "Could not connect to the Ren'Py Sync server."
|
||||
# Automatic translation.
|
||||
new "Yhteyttä Ren'Py Sync -palvelimeen ei saatu muodostettua."
|
||||
|
||||
# renpy/common/00sync.rpy:192
|
||||
old "The Ren'Py Sync server timed out."
|
||||
# Automatic translation.
|
||||
new "Ren'Py Sync -palvelimen aikakatkaisu."
|
||||
|
||||
# renpy/common/00sync.rpy:194
|
||||
old "An unknown error occurred while connecting to the Ren'Py Sync server."
|
||||
# Automatic translation.
|
||||
new "Ren'Py Sync -palvelimeen muodostettaessa yhteyttä tapahtui tuntematon virhe."
|
||||
|
||||
# renpy/common/00sync.rpy:267
|
||||
old "The Ren'Py Sync server does not have a copy of this sync. The sync ID may be invalid, or it may have timed out."
|
||||
# Automatic translation.
|
||||
new "Ren'Py Sync -palvelimella ei ole kopiota tästä synkronoinnista. Synkronointitunnus voi olla virheellinen tai se voi olla vanhentunut."
|
||||
|
||||
# renpy/common/00sync.rpy:409
|
||||
old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself."
|
||||
# Automatic translation.
|
||||
new "Kirjoita luomasi synkronointitunnus.\nÄlä koskaan anna synkronointitunnusta, jota et ole luonut itse."
|
||||
|
||||
# renpy/common/00sync.rpy:428
|
||||
old "The sync ID is not in the correct format."
|
||||
# Automatic translation.
|
||||
new "Synkronointitunnus ei ole oikeassa muodossa."
|
||||
|
||||
# renpy/common/00sync.rpy:448
|
||||
old "The sync could not be decrypted."
|
||||
# Automatic translation.
|
||||
new "Synkronointia ei voitu purkaa."
|
||||
|
||||
# renpy/common/00sync.rpy:471
|
||||
old "The sync belongs to a different game."
|
||||
# Automatic translation.
|
||||
new "Synkronointi kuuluu eri peliin."
|
||||
|
||||
# renpy/common/00sync.rpy:476
|
||||
old "The sync contains a file with an invalid name."
|
||||
# Automatic translation.
|
||||
new "Synkronointi sisältää tiedoston, jonka nimi on virheellinen."
|
||||
|
||||
# renpy/common/00sync.rpy:529
|
||||
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
|
||||
new "Tämä lataa tallennuksesi {a=https://sync.renpy.org}Ren'Py Sync Serveriin{/a}.\nHaluatko jatkaa?"
|
||||
|
||||
# renpy/common/00sync.rpy:558
|
||||
old "Enter Sync ID"
|
||||
# Automatic translation.
|
||||
new "Syötä synkronointitunnus"
|
||||
|
||||
# renpy/common/00sync.rpy:569
|
||||
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
|
||||
new "Tämä ottaa yhteyttä {a=https://sync.renpy.org}Ren'Py Sync Serveriin{/a}."
|
||||
|
||||
# renpy/common/00sync.rpy:596
|
||||
old "Sync Success"
|
||||
new "Synkronointi onnistui"
|
||||
|
||||
# renpy/common/00sync.rpy:599
|
||||
old "The Sync ID is:"
|
||||
# Automatic translation.
|
||||
new "Synkronointitunnus on:"
|
||||
|
||||
# renpy/common/00sync.rpy:605
|
||||
old "You can use this ID to download your save on another device.\nThis sync will expire in an hour.\nRen'Py Sync is supported by {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}."
|
||||
new "Voit käyttää tätä tunnusta ladataksesi tallennuksesi toiseen laitteeseen.\nTämä synkronointi päättyy tunnin kuluttua.\nRen'Py Sync on {a=https://www.renpy.org/sponsors.html}Ren'Pyn sponsorien{/a} tukema."
|
||||
|
||||
# renpy/common/00sync.rpy:631
|
||||
old "Sync Error"
|
||||
# Automatic translation.
|
||||
new "Synkronointivirhe"
|
||||
|
||||
|
||||
@@ -75,7 +75,8 @@ translate finnish strings:
|
||||
|
||||
# _developer/developer.rpym:532
|
||||
old "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
|
||||
new "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
|
||||
# Automatic translation.
|
||||
new "\n{color=#cfc}✔ ennustettu kuva (hyvä){/color}\n{color=#fcc}✘ ennakoimaton kuva (huono){/color}\n{color=#fff}Siirrä vetämällä.{/color}"
|
||||
|
||||
# _developer/inspector.rpym:38
|
||||
old "Displayable Inspector"
|
||||
@@ -177,3 +178,110 @@ translate finnish strings:
|
||||
old "jump <label>: jumps to label"
|
||||
new "jump <tunnus>: hyppää 'script.rpy'-tiedosto(i)ssa olevaan, tunnuksella merkittyyn kohtaan"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/_developer/developer.rpym:43
|
||||
old "Interactive Director (D)"
|
||||
# Automatic translation.
|
||||
new "Interaktiivinen johtaja (D)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:51
|
||||
old "Persistent Viewer"
|
||||
# Automatic translation.
|
||||
new "Pysyvä katseluohjelma"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:59
|
||||
old "Show Image Load Log (F4)"
|
||||
# Automatic translation.
|
||||
new "Näytä kuvan latausloki (F4)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:62
|
||||
old "Hide Image Load Log (F4)"
|
||||
# Automatic translation.
|
||||
new "Piilota kuvan latausloki (F4)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:65
|
||||
old "Image Attributes"
|
||||
# Automatic translation.
|
||||
new "Kuva-attribuutit"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:70
|
||||
old "Speech Bubble Editor (Shift+B)"
|
||||
# Automatic translation.
|
||||
new "Puhekuplaeditori (Shift+B)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:97
|
||||
old "[name] [attributes] (hidden)"
|
||||
# Automatic translation.
|
||||
new "[name] [attributes] (piilotettu)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:101
|
||||
old "[name] [attributes]"
|
||||
new "[name] [attributes]"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:162
|
||||
old "Hide deleted"
|
||||
# Automatic translation.
|
||||
new "Piilota poistettu"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:162
|
||||
old "Show deleted"
|
||||
# Automatic translation.
|
||||
new "Näytä poistettu"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:389
|
||||
old "Type to filter: "
|
||||
# Automatic translation.
|
||||
new "Suodatettava tyyppi: "
|
||||
|
||||
# renpy/common/_developer/developer.rpym:507
|
||||
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
|
||||
# Automatic translation.
|
||||
new "Tekstuurit: [tex_count] ([tex_size_mb:.1f] MB)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:511
|
||||
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
# Automatic translation.
|
||||
new "Kuvien välimuisti: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
|
||||
# renpy/common/00console.rpy:789
|
||||
old "help: show this help\n help <expr>: show signature and documentation of <expr>"
|
||||
# Automatic translation.
|
||||
new "help: näytä tämä apu\n help <expr>: näytä <expr>:n allekirjoitus ja dokumentaatio"
|
||||
|
||||
# renpy/common/00console.rpy:813
|
||||
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
|
||||
# Automatic translation.
|
||||
new "Ohje saattaa näyttää dokumentoimattomia toimintoja. Tarkista, että toiminto tai\nluokkaa, jota haluat käyttää, on dokumentoitu.\n\n"
|
||||
|
||||
# renpy/common/00console.rpy:854
|
||||
old "stack: print the return stack"
|
||||
# Automatic translation.
|
||||
new "stack: tulostaa paluupinon"
|
||||
|
||||
# renpy/common/00console.rpy:908
|
||||
old "watch <expression>: watch a python expression\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is"
|
||||
# Automatic translation.
|
||||
new "watch <expression>: katsella python-lauseketta\n watch short: tekee jäljitettyjen lausekkeiden esityksestä lyhyen (oletusarvo)\n watch long: tekee jäljitettyjen ilmaisujen esittämisen sellaiseksi kuin se on."
|
||||
|
||||
# renpy/common/00console.rpy:1028
|
||||
old "short: Shorten the representation of objects on the console (default)."
|
||||
# Automatic translation.
|
||||
new "short: Lyhentää objektien esitystä konsolissa (oletus)."
|
||||
|
||||
# renpy/common/00console.rpy:1032
|
||||
old "long: Print the full representation of objects on the console."
|
||||
# Automatic translation.
|
||||
new "long: Tulostaa objektien täydellisen esityksen konsoliin."
|
||||
|
||||
# renpy/common/00console.rpy:1036
|
||||
old "escape: Enables escaping of unicode symbols in unicode strings."
|
||||
# Automatic translation.
|
||||
new "escape: Mahdollistaa unicode-symbolien pakenemisen unicode-merkkijonoissa."
|
||||
|
||||
# renpy/common/00console.rpy:1040
|
||||
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
|
||||
# Automatic translation.
|
||||
new "unescape: Poistaa unicode-merkkijonojen unicode-symbolien eskandoimisen ja tulostaa ne sellaisenaan (oletus)."
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ translate finnish strings:
|
||||
|
||||
# 00gltest.rpy:200
|
||||
old "{b}Note:{/b} Microsoft's DirectX web setup program will, by default, install the Bing toolbar. If you do not want this toolbar, uncheck the appropriate box."
|
||||
new "{b}Huomaa:{/b} Microsoftin DirectX verkkoasennusohjelma asentaa, oletusarvoisesti, Bing-työkalupalkin. Jos et halua tätä työkalupalkkia, poista valinta oikeasta laatikosta."
|
||||
new "{b}Huomaa:{/b} Microsoftin DirectX-verkkoasennusohjelma asentaa, oletusarvoisesti, Bing-työkalupalkin. Jos et halua tätä työkalupalkkia, poista valinta oikeasta laatikosta."
|
||||
|
||||
# 00gltest.rpy:204
|
||||
old "When setup finishes, please click below to restart this program."
|
||||
@@ -177,3 +177,133 @@ translate finnish strings:
|
||||
old "Copies the errors.txt file to the clipboard."
|
||||
new "Kopioi errors.txt-tiedoston leikepöydälle."
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/00gltest.rpy:89
|
||||
old "Renderer"
|
||||
new "Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:100
|
||||
old "Force GL Renderer"
|
||||
new "Force GL Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:105
|
||||
old "Force ANGLE Renderer"
|
||||
new "Force ANGLE Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:110
|
||||
old "Force GLES Renderer"
|
||||
# Automatic translation.
|
||||
new "Pakota GLES Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:116
|
||||
old "Force GL2 Renderer"
|
||||
# Automatic translation.
|
||||
new "Pakota GL2 Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:121
|
||||
old "Force ANGLE2 Renderer"
|
||||
# Automatic translation.
|
||||
new "Voima ANGLE2 Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:126
|
||||
old "Force GLES2 Renderer"
|
||||
# Automatic translation.
|
||||
new "Pakota GLES2 Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:136
|
||||
old "Enable (No Blocklist)"
|
||||
# Automatic translation.
|
||||
new "Enable (Ei estolistaa)"
|
||||
|
||||
# renpy/common/00gltest.rpy:159
|
||||
old "Powersave"
|
||||
new "Powersave"
|
||||
|
||||
# renpy/common/00gltest.rpy:173
|
||||
old "Framerate"
|
||||
new "Framerate"
|
||||
|
||||
# renpy/common/00gltest.rpy:177
|
||||
old "Screen"
|
||||
# Automatic translation.
|
||||
new "Näyttö"
|
||||
|
||||
# renpy/common/00gltest.rpy:181
|
||||
old "60"
|
||||
new "60"
|
||||
|
||||
# renpy/common/00gltest.rpy:185
|
||||
old "30"
|
||||
new "30"
|
||||
|
||||
# renpy/common/00gltest.rpy:191
|
||||
old "Tearing"
|
||||
new "Tearing"
|
||||
|
||||
# renpy/common/00gltest.rpy:249
|
||||
old "This game requires use of GL2 that can't be initialised."
|
||||
# Automatic translation.
|
||||
new "Tämä peli vaatii GL2:n käyttöä, jota ei voida alustaa."
|
||||
|
||||
# renpy/common/00gltest.rpy:259
|
||||
old "The {a=edit:1:log.txt}log.txt{/a} file may contain information to help you determine what is wrong with your computer."
|
||||
# Automatic translation.
|
||||
new "{a=edit:1:log.txt}log.txt{/a} tiedosto voi sisältää tietoja, joiden avulla voit selvittää, mikä tietokoneessa on vikana."
|
||||
|
||||
# renpy/common/00gltest.rpy:264
|
||||
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
|
||||
# Automatic translation.
|
||||
new "Lisätietoja tämän korjaamisesta löytyy {a=[url]}-dokumentaatiosta{/a}."
|
||||
|
||||
# renpy/common/00gltest.rpy:281
|
||||
old "Change render options"
|
||||
# Automatic translation.
|
||||
new "Muuta renderöintivaihtoehtoja"
|
||||
|
||||
# renpy/common/00gamepad.rpy:58
|
||||
old "Press or move the '[control!s]' [kind]."
|
||||
# Automatic translation.
|
||||
new "Paina tai siirrä '[control!s]' [kind]."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:555
|
||||
old "Open"
|
||||
# Automatic translation.
|
||||
new "Avaa"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:559
|
||||
old "Copy BBCode"
|
||||
# Automatic translation.
|
||||
new "Kopioi BBCode"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:561
|
||||
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
|
||||
# Automatic translation.
|
||||
new "Kopioi traceback.txt-tiedoston leikepöydälle BBkoodina foorumeille, kuten https://lemmasoft.renai.us/."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:563
|
||||
old "Copy Markdown"
|
||||
# Automatic translation.
|
||||
new "Kopioi Markdown"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:565
|
||||
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
|
||||
# Automatic translation.
|
||||
new "Kopioi traceback.txt-tiedoston leikepöydälle Markdown-muodossa Discordia varten."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:626
|
||||
old "Ignores the exception, allowing you to continue."
|
||||
# Automatic translation.
|
||||
new "Jättää poikkeuksen huomiotta, jolloin voit jatkaa."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:637
|
||||
old "Console"
|
||||
# Automatic translation.
|
||||
new "Konsoli"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:639
|
||||
old "Opens a console to allow debugging the problem."
|
||||
# Automatic translation.
|
||||
new "Avaa konsolin ongelman vianmääritystä varten."
|
||||
|
||||
|
||||
+170
-102
@@ -3,409 +3,477 @@ translate finnish strings:
|
||||
|
||||
# gui.rpy:2
|
||||
old "## Initialization"
|
||||
new "## Initialization"
|
||||
new "## Alustus"
|
||||
|
||||
# gui.rpy:5
|
||||
old "## The init offset statement causes the init code in this file to run before init code in any other file."
|
||||
new "## The init offset statement causes the init code in this file to run before init code in any other file."
|
||||
new "## init offset-lause käskee ajamaan tämän tiedoston init-koodin ennen muiden tiedostojen init-koodia."
|
||||
|
||||
# gui.rpy:9
|
||||
old "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
|
||||
new "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
|
||||
new "## gui.init-metodin kutsuminen nollaa tyylit järkeviin vakioasetuksiin, sekä asettaa peli-ikkunan leveyden ja korkeuden."
|
||||
|
||||
# gui.rpy:21
|
||||
old "## Colors"
|
||||
new "## Colors"
|
||||
new "## Värit"
|
||||
|
||||
# gui.rpy:23
|
||||
old "## The colors of text in the interface."
|
||||
new "## The colors of text in the interface."
|
||||
new "## Ikkunan tekstien väritys."
|
||||
|
||||
# gui.rpy:25
|
||||
old "## An accent color used throughout the interface to label and highlight text."
|
||||
new "## An accent color used throughout the interface to label and highlight text."
|
||||
new "## Korostusväri tekstin korostamista sekä merkkausta varten."
|
||||
|
||||
# gui.rpy:29
|
||||
old "## The color used for a text button when it is neither selected nor hovered."
|
||||
new "## The color used for a text button when it is neither selected nor hovered."
|
||||
new "## Tekstipainikkeen käyttämä väri, kun se ei ole valittuna eikä kursori ole sen päällä."
|
||||
|
||||
# gui.rpy:32
|
||||
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
|
||||
new "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
|
||||
new "## Pikkuväriä käytetään pienelle tekstille, jonka tulee olla kirkkaampi tai tummempi erottuakseen."
|
||||
|
||||
# gui.rpy:36
|
||||
old "## The color that is used for buttons and bars that are hovered."
|
||||
new "## The color that is used for buttons and bars that are hovered."
|
||||
new "## Painikkeiden käyttämä väri, kun ne ovat valittuja tai kursori on niiden päällä."
|
||||
|
||||
# gui.rpy:39
|
||||
old "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
|
||||
new "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
|
||||
new "## Tekstipainikkeen käyttämä väri, kun se on valittuna mutta ei aktiivisessa ikkunassa."
|
||||
|
||||
# gui.rpy:43
|
||||
old "## The color used for a text button when it cannot be selected."
|
||||
new "## The color used for a text button when it cannot be selected."
|
||||
new "## Tekstipainikkeen käyttämä väri, kun se ei ole valittavissa."
|
||||
|
||||
# gui.rpy:46
|
||||
old "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
|
||||
new "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
|
||||
new "## Värit, joita käytetään täyttämättömien palkkien osiin. Näitä ei käytetä suoraan, vaan ainoastaan palkkikuvatiedostojen generoinnissa."
|
||||
|
||||
# gui.rpy:51
|
||||
old "## The colors used for dialogue and menu choice text."
|
||||
new "## The colors used for dialogue and menu choice text."
|
||||
new "## Värit, joita käytetään dialogin ja valikoiden tekstissä."
|
||||
|
||||
# gui.rpy:56
|
||||
old "## Fonts and Font Sizes"
|
||||
new "## Fonts and Font Sizes"
|
||||
new "## Fontit sekä fonttikoot"
|
||||
|
||||
# gui.rpy:58
|
||||
old "## The font used for in-game text."
|
||||
new "## The font used for in-game text."
|
||||
new "## Pelin sisäisen tekstin fontti."
|
||||
|
||||
# gui.rpy:61
|
||||
old "## The font used for character names."
|
||||
new "## The font used for character names."
|
||||
new "## Hahmojen nimien fontti."
|
||||
|
||||
# gui.rpy:64
|
||||
old "## The font used for out-of-game text."
|
||||
new "## The font used for out-of-game text."
|
||||
new "## Pelin ulkoisen tekstin fontti."
|
||||
|
||||
# gui.rpy:67
|
||||
old "## The size of normal dialogue text."
|
||||
new "## The size of normal dialogue text."
|
||||
new "## Normaalin dialogitekstin fonttikoko."
|
||||
|
||||
# gui.rpy:70
|
||||
old "## The size of character names."
|
||||
new "## The size of character names."
|
||||
new "## Hahmojen nimien fonttikoko."
|
||||
|
||||
# gui.rpy:73
|
||||
old "## The size of text in the game's user interface."
|
||||
new "## The size of text in the game's user interface."
|
||||
new "## Pelin käyttöliittymän tekstin koko."
|
||||
|
||||
# gui.rpy:76
|
||||
old "## The size of labels in the game's user interface."
|
||||
new "## The size of labels in the game's user interface."
|
||||
new "## Pelin käyttöliittymän otsikoiden koko."
|
||||
|
||||
# gui.rpy:79
|
||||
old "## The size of text on the notify screen."
|
||||
new "## The size of text on the notify screen."
|
||||
new "## Tekstin koko ilmoitusikkunassa."
|
||||
|
||||
# gui.rpy:82
|
||||
old "## The size of the game's title."
|
||||
new "## The size of the game's title."
|
||||
new "## Pelin nimen fonttikoko."
|
||||
|
||||
# gui.rpy:86
|
||||
old "## Main and Game Menus"
|
||||
new "## Main and Game Menus"
|
||||
new "## Pää- ja pelivalikot"
|
||||
|
||||
# gui.rpy:88
|
||||
old "## The images used for the main and game menus."
|
||||
new "## The images used for the main and game menus."
|
||||
new "## Pää- ja pelivalikoiden käyttämät kuvat."
|
||||
|
||||
# gui.rpy:92
|
||||
old "## Should we show the name and version of the game?"
|
||||
new "## Should we show the name and version of the game?"
|
||||
new "## Tulisiko meidän näyttää pelin nimi ja versio?"
|
||||
|
||||
# gui.rpy:96
|
||||
old "## Dialogue"
|
||||
new "## Dialogue"
|
||||
new "## Dialogi"
|
||||
|
||||
# gui.rpy:98
|
||||
old "## These variables control how dialogue is displayed on the screen one line at a time."
|
||||
new "## These variables control how dialogue is displayed on the screen one line at a time."
|
||||
new "## Nämä muuttujat ohjaavat dialogin tulostusta näytölle rivi kerrallaan."
|
||||
|
||||
# gui.rpy:101
|
||||
old "## The height of the textbox containing dialogue."
|
||||
new "## The height of the textbox containing dialogue."
|
||||
new "## Dialogi-ikkunan korkeus."
|
||||
|
||||
# gui.rpy:104
|
||||
old "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
|
||||
new "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
|
||||
new "## Dialogi-ikkunan sijainti pystytasossa näytöllä. 0.0 on ikkunan yläreuna, 0.5 keskikohta, ja 1.0 alareuna."
|
||||
|
||||
# gui.rpy:109
|
||||
old "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
|
||||
new "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
|
||||
new "## Puhuvan hahmon nimen sijainti suhteeessa dialogi-ikkunan sijaintiin. Arvot voivat olla pikseleiden määrä kokonaislukuina, tai 0.5 keskikohtana."
|
||||
|
||||
# gui.rpy:114
|
||||
old "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
new "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
new "## Hahmon nimen sijainti vaakatasossa. Arvo voi olla 0.0 vasemmalle reunalle, 0.5 keskitetylle, tai 1.0 oikealle reunalle."
|
||||
|
||||
# gui.rpy:118
|
||||
old "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
|
||||
new "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
|
||||
new "## Hahmon nimen sisältävän laatikon leveys, korkeus, ja reunan paksuus. Arvo None päättää koon automaattisesti."
|
||||
|
||||
# gui.rpy:123
|
||||
old "## The borders of the box containing the character's name, in left, top, right, bottom order."
|
||||
new "## The borders of the box containing the character's name, in left, top, right, bottom order."
|
||||
new "## Hahmon nimilaatikon reunat, järjestyksessä vasen, ylä, oikea, ja alaosa."
|
||||
|
||||
# gui.rpy:127
|
||||
old "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
|
||||
new "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
|
||||
new "## Arvon ollessa True, nimilaatikon tausta käyttää itseään toistavaa taustakuvaa. Arvon ollessa False, taustakuvan koko skaalautuu."
|
||||
|
||||
# gui.rpy:132
|
||||
old "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
|
||||
new "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
|
||||
new "## Dialogin sijainti suhteessa dialogi-ikkunaan. Arvot voivat olla pikseleiden määrä kokonaislukuina, tai 0.5 keskikohtana."
|
||||
|
||||
# gui.rpy:138
|
||||
old "## The maximum width of dialogue text, in pixels."
|
||||
new "## The maximum width of dialogue text, in pixels."
|
||||
new "## Dialogitekstin maksimileveys pikseleinä."
|
||||
|
||||
# gui.rpy:141
|
||||
old "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
new "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
new "## Dialogin sijainti vaakatasossa. Arvo voi olla 0.0 vasemmalle reunalle, 0.5 keskitetylle, tai 1.0 oikealle reunalle."
|
||||
|
||||
# gui.rpy:146
|
||||
old "## Buttons"
|
||||
new "## Buttons"
|
||||
new "## Painikkeet"
|
||||
|
||||
# gui.rpy:148
|
||||
old "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
|
||||
new "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
|
||||
new "## Nämä muuttujat, gui/button-kansiossa olevien kuvatiedostojen ohella, ohjaavat painikkeiden ulkoasua."
|
||||
|
||||
# gui.rpy:151
|
||||
old "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
|
||||
new "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
|
||||
new "## Painikkeen leveys ja korkeus, pikseleinä. Arvon ollessa None, Ren'Py laskee sopivan koon."
|
||||
|
||||
# gui.rpy:155
|
||||
old "## The borders on each side of the button, in left, top, right, bottom order."
|
||||
new "## The borders on each side of the button, in left, top, right, bottom order."
|
||||
new "## Reunat painikkeen jokaisella sivulla, järjestyksessä vasen, ylä, oikea, ja alareuna."
|
||||
|
||||
# gui.rpy:158
|
||||
old "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
|
||||
new "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
|
||||
new "## Arvon ollessa True, painikkeen tausta käyttää itseään toistavaa taustakuvaa. Arvon ollessa False, taustakuvan koko skaalautuu lineaarisesti."
|
||||
|
||||
# gui.rpy:162
|
||||
old "## The font used by the button."
|
||||
new "## The font used by the button."
|
||||
new "## Painikkeen käyttämä fontti."
|
||||
|
||||
# gui.rpy:165
|
||||
old "## The size of the text used by the button."
|
||||
new "## The size of the text used by the button."
|
||||
new "## Painikkeen käyttämä fonttikoko."
|
||||
|
||||
# gui.rpy:179
|
||||
old "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
|
||||
new "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
|
||||
new "## Nämä muuttujat yliajavat erilaisten painikkeiden oletusasetuksia. Luethan lisätietoa erilaisista painikkeista sekä niiden käyttötarkoituksista GUI-dokumentaatiosta."
|
||||
|
||||
# gui.rpy:183
|
||||
old "## These customizations are used by the default interface:"
|
||||
new "## These customizations are used by the default interface:"
|
||||
new "## Nämä muokkaukset ovat käytössä oletuskäyttöliittymässä:"
|
||||
|
||||
# gui.rpy:198
|
||||
old "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
|
||||
new "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
|
||||
new "## Voit myös halutessasi lisätä omia muokkauksiasi lisäämällä oikein nimettyjä muuttujia. Voit esimerkiksi ottaa seuraavan rivin pois kommentista asettaaksesi valikkopainikkeen leveyden."
|
||||
|
||||
# gui.rpy:205
|
||||
old "## Choice Buttons"
|
||||
new "## Choice Buttons"
|
||||
new "## Valikon Painikkeet"
|
||||
|
||||
# gui.rpy:207
|
||||
old "## Choice buttons are used in the in-game menus."
|
||||
new "## Choice buttons are used in the in-game menus."
|
||||
new "## Nämä muuttujat määrittävät pelin sisäisten valikoiden painikkeiden ominaisuuksia."
|
||||
|
||||
# gui.rpy:220
|
||||
old "## File Slot Buttons"
|
||||
new "## File Slot Buttons"
|
||||
new "## Tallennuspaikan Painikkeet"
|
||||
|
||||
# gui.rpy:222
|
||||
old "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
|
||||
new "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
|
||||
new "## Tallennuspaikan painike on erityispainike, joka sisältää esikatselukuvan ja tekstiselitteen tallennuspaikan sisällöstä. Tallennuspaikka käyttää kuvatiedostoja gui/button-kansiosta, kuten muutkin painikkeet."
|
||||
|
||||
# gui.rpy:226
|
||||
old "## The save slot button."
|
||||
new "## The save slot button."
|
||||
new "## Tallennuspaikan painike."
|
||||
|
||||
# gui.rpy:234
|
||||
old "## The width and height of thumbnails used by the save slots."
|
||||
new "## The width and height of thumbnails used by the save slots."
|
||||
new "## Tallennuspaikan käyttämien esikatselukuvien leveys ja korkeus."
|
||||
|
||||
# gui.rpy:238
|
||||
old "## The number of columns and rows in the grid of save slots."
|
||||
new "## The number of columns and rows in the grid of save slots."
|
||||
new "## Tallennuspaikkojen ruudukon rivien ja sarakkeiden lukumäärä."
|
||||
|
||||
# gui.rpy:243
|
||||
old "## Positioning and Spacing"
|
||||
new "## Positioning and Spacing"
|
||||
new "## Sijainti ja Välit"
|
||||
|
||||
# gui.rpy:245
|
||||
old "## These variables control the positioning and spacing of various user interface elements."
|
||||
new "## These variables control the positioning and spacing of various user interface elements."
|
||||
new "## Nämä muuttujat säätelevät erilaisten käyttöliittymän komponenttien sijaintia ja väljäyttä."
|
||||
|
||||
# gui.rpy:248
|
||||
old "## The position of the left side of the navigation buttons, relative to the left side of the screen."
|
||||
new "## The position of the left side of the navigation buttons, relative to the left side of the screen."
|
||||
new "## Siirtymäpainikkeiden vasemman puolen sijainti suhteessa ikkunan vasempaan reunaan."
|
||||
|
||||
# gui.rpy:252
|
||||
old "## The vertical position of the skip indicator."
|
||||
new "## The vertical position of the skip indicator."
|
||||
new "## Sivuutusilmaisimen sijainti pystyakselilla."
|
||||
|
||||
# gui.rpy:255
|
||||
old "## The vertical position of the notify screen."
|
||||
new "## The vertical position of the notify screen."
|
||||
new "## Ilmoitusnäytön sijainti pystyakselilla."
|
||||
|
||||
# gui.rpy:258
|
||||
old "## The spacing between menu choices."
|
||||
new "## The spacing between menu choices."
|
||||
new "## Valikon vaihtoehtojen välinen tila."
|
||||
|
||||
# gui.rpy:261
|
||||
old "## Buttons in the navigation section of the main and game menus."
|
||||
new "## Buttons in the navigation section of the main and game menus."
|
||||
new "## Painikkeiden välinen tila pää- ja pelivalikoissa."
|
||||
|
||||
# gui.rpy:264
|
||||
old "## Controls the amount of spacing between preferences."
|
||||
new "## Controls the amount of spacing between preferences."
|
||||
new "## Hallitsee asetusten välistä etäisyyttä."
|
||||
|
||||
# gui.rpy:267
|
||||
old "## Controls the amount of spacing between preference buttons."
|
||||
new "## Controls the amount of spacing between preference buttons."
|
||||
new "## Hallitsee asetusten painikkeiden välisiä etäisyyksiä."
|
||||
|
||||
# gui.rpy:270
|
||||
old "## The spacing between file page buttons."
|
||||
new "## The spacing between file page buttons."
|
||||
new "## Tyhjä tila tallennussivun painikkeiden välillä."
|
||||
|
||||
# gui.rpy:273
|
||||
old "## The spacing between file slots."
|
||||
new "## The spacing between file slots."
|
||||
new "## Tyhjä tila tallennuspaikkojen välillä."
|
||||
|
||||
# gui.rpy:277
|
||||
old "## Frames"
|
||||
new "## Frames"
|
||||
new "## Reunat"
|
||||
|
||||
# gui.rpy:279
|
||||
old "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
|
||||
new "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
|
||||
new "## Nämä muuttujaat säätelevät käyttöliittymän komponentteja ympäröivien reunojen ominaisuuksia, kun varsinaista ikkunaa ei ole."
|
||||
|
||||
# gui.rpy:282
|
||||
old "## Generic frames that are introduced by player code."
|
||||
new "## Generic frames that are introduced by player code."
|
||||
new "## Geneeriset reunat, joita koodi voi luoda."
|
||||
|
||||
# gui.rpy:285
|
||||
old "## The frame that is used as part of the confirm screen."
|
||||
new "## The frame that is used as part of the confirm screen."
|
||||
new "## Varmistusikkunan käyttämä reuna."
|
||||
|
||||
# gui.rpy:288
|
||||
old "## The frame that is used as part of the skip screen."
|
||||
new "## The frame that is used as part of the skip screen."
|
||||
new "## Sivuutusikkunan käyttämä reuna."
|
||||
|
||||
# gui.rpy:291
|
||||
old "## The frame that is used as part of the notify screen."
|
||||
new "## The frame that is used as part of the notify screen."
|
||||
new "## Ilmoitusikkunan käyttämä reuna."
|
||||
|
||||
# gui.rpy:294
|
||||
old "## Should frame backgrounds be tiled?"
|
||||
new "## Should frame backgrounds be tiled?"
|
||||
new "## Tulisiko kehyksen taustakuvan toistaa itseään?"
|
||||
|
||||
# gui.rpy:298
|
||||
old "## Bars, Scrollbars, and Sliders"
|
||||
new "## Bars, Scrollbars, and Sliders"
|
||||
new "## Palkit, Vierityspalkit, ja Liukuvalinnat"
|
||||
|
||||
# gui.rpy:300
|
||||
old "## These control the look and size of bars, scrollbars, and sliders."
|
||||
new "## These control the look and size of bars, scrollbars, and sliders."
|
||||
new "## Nämä muokkaavat palkkien, vierityspalkkien, ja liukuvalintojen ulkonäköä sekä kokoa."
|
||||
|
||||
# gui.rpy:302
|
||||
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
|
||||
new "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
|
||||
new "## Oletusarvoinen graafinen käyttöliittymä käyttää vain liukuvalintoja sekä pystysuoria vierityspalkkeja. Kaikkia muita käytetään vain jos projektin koodi niitä erikseen käyttää."
|
||||
|
||||
# gui.rpy:305
|
||||
old "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
|
||||
new "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
|
||||
new "## Palkkien, vierityspalkkien, ja liukuvalintojen korkeus ja leveys."
|
||||
|
||||
# gui.rpy:311
|
||||
old "## True if bar images should be tiled. False if they should be linearly scaled."
|
||||
new "## True if bar images should be tiled. False if they should be linearly scaled."
|
||||
new "## Arvon ollessa True, palkit käyttävät itseään toistavia taustakuvia. Arvon ollessa False, taustakuvan koko skaalautuu lineaarisesti."
|
||||
|
||||
# gui.rpy:316
|
||||
old "## Horizontal borders."
|
||||
new "## Horizontal borders."
|
||||
new "## Vaakatason reunat."
|
||||
|
||||
# gui.rpy:321
|
||||
old "## Vertical borders."
|
||||
new "## Vertical borders."
|
||||
new "## Pystysuorat reunat."
|
||||
|
||||
# gui.rpy:326
|
||||
old "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
|
||||
new "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
|
||||
new "## Päättää, näkyvätkö tyngät vierityspalkit. \"hide\" piilottaa ne, None pitää ne näkyvillä."
|
||||
|
||||
# gui.rpy:331
|
||||
old "## History"
|
||||
new "## History"
|
||||
new "## Historia"
|
||||
|
||||
# gui.rpy:333
|
||||
old "## The history screen displays dialogue that the player has already dismissed."
|
||||
new "## The history screen displays dialogue that the player has already dismissed."
|
||||
new "## Historia-ikkuna näyttää dialogin, jonka pelaaja on jo lukenut."
|
||||
|
||||
# gui.rpy:335
|
||||
old "## The number of blocks of dialogue history Ren'Py will keep."
|
||||
new "## The number of blocks of dialogue history Ren'Py will keep."
|
||||
new "## Määrittää, montako dialogitekstiä Ren'Py pitää muistissaan."
|
||||
|
||||
# gui.rpy:338
|
||||
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
|
||||
new "## The height of a history screen entry, or None to make the height variable at the cost of performance."
|
||||
new "## Historia-näytön yksittäisen dialogin korkeus, tai None jolloin korkeus vaihtelee, lisäten prosessorin rasitusta."
|
||||
|
||||
# gui.rpy:342
|
||||
old "## The position, width, and alignment of the label giving the name of the speaking character."
|
||||
new "## The position, width, and alignment of the label giving the name of the speaking character."
|
||||
new "## Puhuvan hahmon nimen sijainti, leveys, ja ryhmäytys."
|
||||
|
||||
# gui.rpy:349
|
||||
old "## The position, width, and alignment of the dialogue text."
|
||||
new "## The position, width, and alignment of the dialogue text."
|
||||
new "## Dialogitekstin sijainti, leveys, ja ryhmäytys."
|
||||
|
||||
# gui.rpy:356
|
||||
old "## NVL-Mode"
|
||||
new "## NVL-Mode"
|
||||
new "## NVL-Tila"
|
||||
|
||||
# gui.rpy:358
|
||||
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
|
||||
new "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
|
||||
new "## NVL-tilan näyttö näyttää NVL-tilan hahmojen dialogin."
|
||||
|
||||
# gui.rpy:360
|
||||
old "## The borders of the background of the NVL-mode background window."
|
||||
new "## The borders of the background of the NVL-mode background window."
|
||||
new "## NVL-tilan ikkunan taustan reunat."
|
||||
|
||||
# gui.rpy:363
|
||||
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
|
||||
new "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
|
||||
new "## NVL-tilan dialogin korkeus. Asetettaessa arvoon None, korkeus säätyy automaattisesti."
|
||||
|
||||
# gui.rpy:367
|
||||
old "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
|
||||
new "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
|
||||
new "## Väli NVL-tilan dialogien sekä NVL-tilan valikon välillä, kun gui.nvl_height on None."
|
||||
|
||||
# gui.rpy:384
|
||||
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
|
||||
new "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
|
||||
new "## nvl_thought-tekstin sijainti, leveys, ja ryhmäytys (nvl_narrator-hahmon puhuma teksti.)"
|
||||
|
||||
# gui.rpy:391
|
||||
old "## The position of nvl menu_buttons."
|
||||
new "## The position of nvl menu_buttons."
|
||||
new "## NVL-valikon painikkeiden sijainti."
|
||||
|
||||
# gui.rpy:403
|
||||
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
|
||||
new "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
|
||||
new "## Kasvattaa pikavalikon painikkeiden kokoa mobiililaitteilla, tehden niistä helpompia käyttää."
|
||||
|
||||
# gui.rpy:409
|
||||
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
|
||||
new "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
|
||||
new "## Muuttaa useiden käyttöliittymän elementtien kokoa ja välejä, tehden niistä helpommin erottuvia matkapuhelimilla."
|
||||
|
||||
# gui.rpy:413
|
||||
old "## Font sizes."
|
||||
new "## Font sizes."
|
||||
new "## Fonttikoot."
|
||||
|
||||
# gui.rpy:421
|
||||
old "## Adjust the location of the textbox."
|
||||
new "## Adjust the location of the textbox."
|
||||
new "## Säädä teksti-ikkunan sijaintia."
|
||||
|
||||
# gui.rpy:427
|
||||
old "## Change the size and spacing of items in the game menu."
|
||||
new "## Change the size and spacing of items in the game menu."
|
||||
new "## Mukauta pelivalikon elementtien kokoa ja sijaintia."
|
||||
|
||||
# gui.rpy:436
|
||||
old "## File button layout."
|
||||
new "## File button layout."
|
||||
new "## Tallennusvalikon painikkeen asettelu."
|
||||
|
||||
# gui.rpy:440
|
||||
old "## NVL-mode."
|
||||
new "## NVL-mode."
|
||||
new "## NVL-tila."
|
||||
|
||||
# gui.rpy:456
|
||||
old "## Quick buttons."
|
||||
new "## Quick buttons."
|
||||
new "## Pikavalikko."
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# gui/game/gui.rpy:5
|
||||
old "## The init offset statement causes the initialization statements in this file to run before init statements in any other file."
|
||||
# Automatic translation.
|
||||
new "## Init offset -lauseke saa aikaan sen, että tässä tiedostossa olevat alustamislausekkeet suoritetaan ennen minkä tahansa muun tiedoston init-lausekkeita."
|
||||
|
||||
# gui/game/gui.rpy:14
|
||||
old "## Enable checks for invalid or unstable properties in screens or transforms"
|
||||
# Automatic translation.
|
||||
new "## Ota käyttöön virheellisten tai epävakaiden ominaisuuksien tarkistukset näytöissä tai muunnoksissa."
|
||||
|
||||
# gui/game/gui.rpy:19
|
||||
old "## GUI Configuration Variables"
|
||||
# Automatic translation.
|
||||
new "## GUI-konfiguraatiomuuttujat"
|
||||
|
||||
# gui/game/gui.rpy:167
|
||||
old "## The color of button text in various states."
|
||||
# Automatic translation.
|
||||
new "## Painikkeen tekstin väri eri tiloissa."
|
||||
|
||||
# gui/game/gui.rpy:173
|
||||
old "## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0 is right)."
|
||||
# Automatic translation.
|
||||
new "## Painikkeen tekstin vaakasuora kohdistus. (0.0 on vasen, 0.5 on keskellä, 1.0 on oikea)."
|
||||
|
||||
# gui/game/gui.rpy:278
|
||||
old "## The position of the main menu text."
|
||||
# Automatic translation.
|
||||
new "## Päävalikon tekstin sijainti."
|
||||
|
||||
# gui/game/gui.rpy:287
|
||||
old "## Generic frames."
|
||||
# Automatic translation.
|
||||
new "## Yleiset kehykset."
|
||||
|
||||
# gui/game/gui.rpy:307
|
||||
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written screens."
|
||||
# Automatic translation.
|
||||
new "## Oletusarvoinen graafinen käyttöliittymä käyttää vain liukusäätimiä ja pystysuuntaisia vierityspalkkeja. Kaikkia muita palkkeja käytetään vain luojan kirjoittamissa näytöissä."
|
||||
|
||||
# gui/game/gui.rpy:368
|
||||
old "## The maximum number of NVL-mode entries Ren'Py will display. When more entries than this are to be show, the oldest entry will be removed."
|
||||
# Automatic translation.
|
||||
new "## NVL-tilan merkintöjen enimmäismäärä, jonka Ren'Py näyttää. Kun näytetään tätä enemmän merkintöjä, vanhin merkintä poistetaan."
|
||||
|
||||
# gui/game/gui.rpy:405
|
||||
old "## Localization"
|
||||
# Automatic translation.
|
||||
new "## Lokalisointi"
|
||||
|
||||
# gui/game/gui.rpy:407
|
||||
old "## This controls where a line break is permitted. The default is suitable for most languages. A list of available values can be found at https://www.renpy.org/doc/html/style_properties.html#style-property-language"
|
||||
# Automatic translation.
|
||||
new "## Tämä säätää, missä kohtaa rivinvaihto sallitaan. Oletusarvo sopii useimmille kielille. Luettelo käytettävissä olevista arvoista löytyy osoitteesta https://www.renpy.org/doc/html/style_properties.html#style-property-language."
|
||||
|
||||
# gui/game/gui.rpy:415
|
||||
old "## Mobile devices"
|
||||
# Automatic translation.
|
||||
new "## Mobiililaitteet"
|
||||
|
||||
# gui/game/gui.rpy:446
|
||||
old "## Change the size and spacing of various things."
|
||||
# Automatic translation.
|
||||
new "## Muuta eri asioiden kokoa ja välejä."
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,119 +3,119 @@ translate finnish strings:
|
||||
|
||||
# options.rpy:1
|
||||
old "## This file contains options that can be changed to customize your game."
|
||||
new "## This file contains options that can be changed to customize your game."
|
||||
new "## Tämä tiedosto sisältää asetuksia, joita muokkaamalla voit mukauttaa peliäsi."
|
||||
|
||||
# options.rpy:4
|
||||
old "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
|
||||
new "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
|
||||
new "## Rivit, jotka alkavat kahdells '#'-merkillä, ovat kommentteja eikä sinun tule muuttaa niitä ohjelmakoodiksi. Rivit, jotka alkavat yhdellä '#'-merkillä, ovat kommentoitua koodia, ja voit halutessasi palauttaa ne ohjelmakoodiksi."
|
||||
|
||||
# options.rpy:10
|
||||
old "## Basics"
|
||||
new "## Basics"
|
||||
new "## Perusteet"
|
||||
|
||||
# options.rpy:12
|
||||
old "## A human-readable name of the game. This is used to set the default window title, and shows up in the interface and error reports."
|
||||
new "## A human-readable name of the game. This is used to set the default window title, and shows up in the interface and error reports."
|
||||
new "## Ihmisille luettava pelin nimi. Tätä käytetään peli-ikkunan nimen asetuksessa, ja se näkyy pelin ikkunassa sekä virheraporteissa."
|
||||
|
||||
# options.rpy:15
|
||||
old "## The _() surrounding the string marks it as eligible for translation."
|
||||
new "## The _() surrounding the string marks it as eligible for translation."
|
||||
new "## _() merkkijonon ympärillä merkitsee sen soveltuvaksi käännöksille."
|
||||
|
||||
# options.rpy:17
|
||||
old "Ren'Py 7 Default GUI"
|
||||
new "Ren'Py 7 Default GUI"
|
||||
new "Ren'Py 7 Oletusarvoinen GUI"
|
||||
|
||||
# options.rpy:20
|
||||
old "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
|
||||
new "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
|
||||
new "## Päättää, näytetäänkö ylläannettu nimi pelin päävalikossa. Aseta arvoksi False piilottaaksesi nimen."
|
||||
|
||||
# options.rpy:26
|
||||
old "## The version of the game."
|
||||
new "## The version of the game."
|
||||
new "## Pelin versio."
|
||||
|
||||
# options.rpy:31
|
||||
old "## Text that is placed on the game's about screen. To insert a blank line between paragraphs, write \\n\\n."
|
||||
new "## Text that is placed on the game's about screen. To insert a blank line between paragraphs, write \\n\\n."
|
||||
new "## Teksti, joka näkyy pelin tietoja-ikkunassa. Lisätäksesi tyhjän rivin lauseiden väliin, kirjoita \\n\\n."
|
||||
|
||||
# options.rpy:37
|
||||
old "## A short name for the game used for executables and directories in the built distribution. This must be ASCII-only, and must not contain spaces, colons, or semicolons."
|
||||
new "## A short name for the game used for executables and directories in the built distribution. This must be ASCII-only, and must not contain spaces, colons, or semicolons."
|
||||
new "## Lyhyt nimi pelille, jota käytetään kootuille ohjelmatiedostoille sekä kansioille. Nimen on oltava pelkkiä ASCII-merkkejä, eikä se saa sisältää välilyöntejä, pisteitä, eikä puolipisteitä."
|
||||
|
||||
# options.rpy:44
|
||||
old "## Sounds and music"
|
||||
new "## Sounds and music"
|
||||
new "## Äänet ja musiikki"
|
||||
|
||||
# options.rpy:46
|
||||
old "## These three variables control which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
|
||||
new "## These three variables control which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
|
||||
new "## Nämä kolme muuttujaa ohjaavat, mitkä mikserit näytetään pelaajalle oletusarvoisesti. Asettamalla arvoksi False piilottaa kyseisen mikserin."
|
||||
|
||||
# options.rpy:55
|
||||
old "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
|
||||
new "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
|
||||
new "## Mahdollistaaksesi käyttäjän soittaa testiääni äänitehoste- tai puhekanavilla, palauta seuraava kommentti takaisin ohjelmakoodiksi ja käytä sitä valitaksesi sopivan testiäänen."
|
||||
|
||||
# options.rpy:62
|
||||
old "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. This file will continue playing into the game, until it is stopped or another file is played."
|
||||
new "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. This file will continue playing into the game, until it is stopped or another file is played."
|
||||
new "## Palauta seuraava rivi takaisin ohjelmakoodiksi valitaksesi äänitiedoston, jota soitetaan pelaajan ollessa päävalikossa. Tämän tiedoston toisto jatkuu pelin alkaessa, kunnes se pysäytetään tai toinen tiedosto alkaa soimaan."
|
||||
|
||||
# options.rpy:69
|
||||
old "## Transitions"
|
||||
new "## Transitions"
|
||||
new "## Siirtymät"
|
||||
|
||||
# options.rpy:71
|
||||
old "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
|
||||
new "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
|
||||
new "## Nämä muuttujat asettavat erilaisia siirtymiä eri tapahhtumien kohdalla. Jokainen muuttuja tulee asettaa johonkin siirtymään, tai None mikäli siirtymää ei haluta käyttää."
|
||||
|
||||
# options.rpy:75
|
||||
old "## Entering or exiting the game menu."
|
||||
new "## Entering or exiting the game menu."
|
||||
new "## Pelivalikon avaaminen ja sulkeminen."
|
||||
|
||||
# options.rpy:81
|
||||
old "## A transition that is used after a game has been loaded."
|
||||
new "## A transition that is used after a game has been loaded."
|
||||
new "## Siirtymä, jota käytetään kun peli on ladattu."
|
||||
|
||||
# options.rpy:86
|
||||
old "## Used when entering the main menu after the game has ended."
|
||||
new "## Used when entering the main menu after the game has ended."
|
||||
new "## Käytetään siirryttäessä päävalikkoon pelin päätyttyä."
|
||||
|
||||
# options.rpy:91
|
||||
old "## A variable to set the transition used when the game starts does not exist. Instead, use a with statement after showing the initial scene."
|
||||
new "## A variable to set the transition used when the game starts does not exist. Instead, use a with statement after showing the initial scene."
|
||||
new "## Muuttujaa siirtymän valitsemiseksi pelin alkaessa ei ole olemassa. Sen sijaan, käytä with-väitettä näytettyäsi ensimmäisen kohtauksen."
|
||||
|
||||
# options.rpy:96
|
||||
old "## Window management"
|
||||
new "## Window management"
|
||||
new "## Ikkunanhallinta"
|
||||
|
||||
# options.rpy:98
|
||||
old "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
|
||||
new "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
|
||||
new "## Tämä muokkaa dialogi-ikkunan näkyvyyttä. Arvon ollessa \"show\", ikkuna on aina näkyvissä. Mikäli se on \"hide\", ikkuna näkyy vain kun on dialogia mitä näyttää. Ja jos se on \"auto\", ikkuna ei ole näkyvissä ennen scene-lauseita ja näytetään kun dialogia on näytettävänä."
|
||||
|
||||
# options.rpy:103
|
||||
old "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
|
||||
new "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
|
||||
new "## Pelin alettua, tätä voidaan muuttaa \"window show\", \"window hide\", ja \"window auto\" -lauseilla."
|
||||
|
||||
# options.rpy:109
|
||||
old "## Transitions used to show and hide the dialogue window"
|
||||
new "## Transitions used to show and hide the dialogue window"
|
||||
new "## Siirtymät, joita käytetään dialogi-ikkunan näytössä ja piilotuksessa"
|
||||
|
||||
# options.rpy:115
|
||||
old "## Preference defaults"
|
||||
new "## Preference defaults"
|
||||
new "## Asetusten oletusarvot"
|
||||
|
||||
# options.rpy:117
|
||||
old "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
|
||||
new "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
|
||||
new "## Asettaa tekstin näytön oletusnopeuden. Oletusarvo, 0, on ääretön (teksti näkyy välittömästi), kaikki muut positiiviset luvut asettavat näytettyjen merkkien lukumäärän sekunnissa."
|
||||
|
||||
# options.rpy:123
|
||||
old "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
|
||||
new "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
|
||||
new "## Oletusarvoinen automaattisen jatkamisen viive. Suuremmat luvut johtavatt pidempiin viiveisiin, tuetut arvot ovat väliltä 0-30."
|
||||
|
||||
# options.rpy:129
|
||||
old "## Save directory"
|
||||
new "## Save directory"
|
||||
new "## Tallennuskansio"
|
||||
|
||||
# options.rpy:131
|
||||
old "## Controls the platform-specific place Ren'Py will place the save files for this game. The save files will be placed in:"
|
||||
new "## Controls the platform-specific place Ren'Py will place the save files for this game. The save files will be placed in:"
|
||||
new "## Asettaa alustariippuvaisen sijainnin, johon Ren'Py tallentaa pelitallennukset. Tallennustiedostot tallennetaan kansioon:"
|
||||
|
||||
# options.rpy:134
|
||||
old "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
|
||||
@@ -131,65 +131,93 @@ translate finnish strings:
|
||||
|
||||
# options.rpy:140
|
||||
old "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
|
||||
new "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
|
||||
new "## Tätä ei yleensä kannata muuttaa, ja jos muutetaan, sen tulee aina olla merkkijonoliteraali eikä ekspressio."
|
||||
|
||||
# options.rpy:146
|
||||
old "## Icon ########################################################################'"
|
||||
new "## Icon ########################################################################'"
|
||||
new "## Ikoni #######################################################################'"
|
||||
|
||||
# options.rpy:148
|
||||
old "## The icon displayed on the taskbar or dock."
|
||||
new "## The icon displayed on the taskbar or dock."
|
||||
new "## Tehtäväpalkissa tai työpöydällä näkyvä ikoni."
|
||||
|
||||
# options.rpy:153
|
||||
old "## Build configuration"
|
||||
new "## Build configuration"
|
||||
new "## Jakeluasetukset"
|
||||
|
||||
# options.rpy:155
|
||||
old "## This section controls how Ren'Py turns your project into distribution files."
|
||||
new "## This section controls how Ren'Py turns your project into distribution files."
|
||||
new "## Tämä osio ohjaa Ren'Py:n käyttäytymistä pelin jakeluiden kokoamisvaiheessa."
|
||||
|
||||
# options.rpy:160
|
||||
old "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
|
||||
new "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
|
||||
new "## Seuraavat funktiot vaativat tiedostonimimallin. Mallit ovat kirjasinkokoriippumattomia, ja niitä verrataan projektikansiosta riippuvaisina, joko alkavan /-merkin kanssa tai ilman. Jos useampi malli täsmää, käytetään ensimmäistä sopivaa."
|
||||
|
||||
# options.rpy:165
|
||||
old "## In a pattern:"
|
||||
new "## In a pattern:"
|
||||
new "## Mallin syntaksi:"
|
||||
|
||||
# options.rpy:167
|
||||
old "## / is the directory separator."
|
||||
new "## / is the directory separator."
|
||||
new "## / on kansioiden erotin."
|
||||
|
||||
# options.rpy:169
|
||||
old "## * matches all characters, except the directory separator."
|
||||
new "## * matches all characters, except the directory separator."
|
||||
new "## * täsmää kaikkiin merkkeihin, paitsi kansion erottimeen."
|
||||
|
||||
# options.rpy:171
|
||||
old "## ** matches all characters, including the directory separator."
|
||||
new "## ** matches all characters, including the directory separator."
|
||||
new "## ** täsmää kaikkiin merkkeihin, mukaan lukien kansion erottimeen."
|
||||
|
||||
# options.rpy:173
|
||||
old "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
|
||||
new "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
|
||||
new "## Esimerkiksi, \"*.txt\" täsmää kaikkiin txt-tiedostoihin projektikansiossa, \"game/**.ogg\" täsmää kaikkiin ogg-tiedostoihin game-kansiossa tai sen alakansioissa, ja \"**.psd\" täsmää kaikkiin, missä tahansa projektissa sijaitseviin psd-tiedostoihin."
|
||||
|
||||
# options.rpy:177
|
||||
old "## Classify files as None to exclude them from the built distributions."
|
||||
new "## Classify files as None to exclude them from the built distributions."
|
||||
new "## Luokittele tiedostot arvolla None jättääksesi ne pois kootuista jakeluista."
|
||||
|
||||
# options.rpy:185
|
||||
old "## To archive files, classify them as 'archive'."
|
||||
new "## To archive files, classify them as 'archive'."
|
||||
new "## Arkistoidaksesi tiedostoja, luokittele ne arvolla 'archive'."
|
||||
|
||||
# options.rpy:190
|
||||
old "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
|
||||
new "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
|
||||
new "## Dokumentaatiotiedostot kloonautuvat mac-sovelluksissa, joten ne sisältyvät sekä sovelluksessa että zip-tiedostossa."
|
||||
|
||||
# options.rpy:196
|
||||
old "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
|
||||
new "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
|
||||
new "## Google Play -lisenssiavain vaaditaan jotta lisäosatiedostoja ja sovelluksen sisäisiä ostoja voidaan tukea. Sen voi löytää \"Services & APIs\"-sivulta Google Play -kehittäjäkonsolista."
|
||||
|
||||
# options.rpy:203
|
||||
old "## The username and project name associated with an itch.io project, separated by a slash."
|
||||
new "## The username and project name associated with an itch.io project, separated by a slash."
|
||||
new "## Kauttaviivan erottama käyttäjänimi ja itch.io-projektinimi."
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# gui/game/options.rpy:31
|
||||
old "## Text that is placed on the game's about screen. Place the text between the triple-quotes, and leave a blank line between paragraphs."
|
||||
# Automatic translation.
|
||||
new "## Teksti, joka sijoitetaan pelin about-näyttöön. Sijoita teksti kolmoislauseiden väliin ja jätä kappaleiden väliin tyhjä rivi."
|
||||
|
||||
# gui/game/options.rpy:47
|
||||
old "## These three variables control, among other things, which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
|
||||
# Automatic translation.
|
||||
new "## Nämä kolme muuttujaa säätelevät muun muassa sitä, mitkä mikserit näytetään pelaajalle oletusarvoisesti. Jonkin näistä muuttujista asettaminen Falseen piilottaa kyseisen mikserin."
|
||||
|
||||
# gui/game/options.rpy:82
|
||||
old "## Between screens of the game menu."
|
||||
# Automatic translation.
|
||||
new "## Pelivalikon näyttöjen välillä."
|
||||
|
||||
# gui/game/options.rpy:152
|
||||
old "## Icon"
|
||||
# Automatic translation.
|
||||
new "## Kuvake"
|
||||
|
||||
# gui/game/options.rpy:203
|
||||
old "## A Google Play license key is required to perform in-app purchases. It can be found in the Google Play developer console, under \"Monetize\" > \"Monetization Setup\" > \"Licensing\"."
|
||||
# Automatic translation.
|
||||
new "## Google Play -lisenssiavain tarvitaan sovelluksen sisäisten ostojen tekemiseen. Se löytyy Google Play -kehittäjäkonsolista kohdasta \"Monetize\" > \"Monetization Setup\" > \"Licensing\"."
|
||||
|
||||
|
||||
@@ -3,23 +3,23 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:9
|
||||
old "## Styles"
|
||||
new "## Styles"
|
||||
new "## Tyylit"
|
||||
|
||||
# screens.rpy:87
|
||||
old "## In-game screens"
|
||||
new "## In-game screens"
|
||||
new "## Pelinsisäiset näytöt"
|
||||
|
||||
# screens.rpy:91
|
||||
old "## Say screen"
|
||||
new "## Say screen"
|
||||
new "## Tulostenäyttö"
|
||||
|
||||
# screens.rpy:93
|
||||
old "## The say screen is used to display dialogue to the player. It takes two parameters, who and what, which are the name of the speaking character and the text to be displayed, respectively. (The who parameter can be None if no name is given.)"
|
||||
new "## The say screen is used to display dialogue to the player. It takes two parameters, who and what, which are the name of the speaking character and the text to be displayed, respectively. (The who parameter can be None if no name is given.)"
|
||||
new "## Tulostenäyttöä käytetään dialogin näyttämiseen pelaajalle. Se ottaa kaksi parametriä, who ja what, jotka ovat puhuvan hahmon nimi sekä näytettävä teksti. (who-parametri voi olla None, jos nimeä ei anneta.)"
|
||||
|
||||
# screens.rpy:98
|
||||
old "## This screen must create a text displayable with id \"what\", as Ren'Py uses this to manage text display. It can also create displayables with id \"who\" and id \"window\" to apply style properties."
|
||||
new "## This screen must create a text displayable with id \"what\", as Ren'Py uses this to manage text display. It can also create displayables with id \"who\" and id \"window\" to apply style properties."
|
||||
new "## Tämän näytön on luotava tekstiesittäjä käyttäen komentoa id \"what\", sillä Ren'Py käyttää tätä tekstin näytön käsittelyssä. Se voi myös luoda grafiikkaa käyttäen komentoja id \"who\" ja id \"window\" tyyliominaisuuksien lisäämiseksi."
|
||||
|
||||
# screens.rpy:102
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#say"
|
||||
@@ -27,15 +27,15 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:169
|
||||
old "## Input screen"
|
||||
new "## Input screen"
|
||||
new "## Syötenäyttö"
|
||||
|
||||
# screens.rpy:171
|
||||
old "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
|
||||
new "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
|
||||
new "## Tätä näyttöä käytetään renpy.input:in renderöinnissä. prompt-parametri antaa kehotetekstin."
|
||||
|
||||
# screens.rpy:174
|
||||
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
|
||||
new "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
|
||||
new "## Tämän näytön tulee luoda syöttöikkuna käyttäen komentoa id \"input\" voidakseen hyväksyä erilaisia syöteparametrejä."
|
||||
|
||||
# screens.rpy:177
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#input"
|
||||
@@ -43,11 +43,11 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:205
|
||||
old "## Choice screen"
|
||||
new "## Choice screen"
|
||||
new "## Valintanäyttö"
|
||||
|
||||
# screens.rpy:207
|
||||
old "## This screen is used to display the in-game choices presented by the menu statement. The one parameter, items, is a list of objects, each with caption and action fields."
|
||||
new "## This screen is used to display the in-game choices presented by the menu statement. The one parameter, items, is a list of objects, each with caption and action fields."
|
||||
new "## Tätä näyttöä käytetään esittämään pelinsisäiset menu-lauseen esittämät valinnat. Sen ainoa parametri, items, on lista olioista, joiista jokaisessa on kentät otsikolle ja toiminnolle."
|
||||
|
||||
# screens.rpy:211
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#choice"
|
||||
@@ -55,15 +55,15 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:221
|
||||
old "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
|
||||
new "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
|
||||
new "## Tämän ollessa tosi, kertoja puhuu valinnat ääneen. Ja kun epätosi, vaihtoehdot näytetään tyhjinä painikkeina."
|
||||
|
||||
# screens.rpy:244
|
||||
old "## Quick Menu screen"
|
||||
new "## Quick Menu screen"
|
||||
new "## Pikavalikkonäyttö"
|
||||
|
||||
# screens.rpy:246
|
||||
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
|
||||
new "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
|
||||
new "## Pikavalikko näytetään pelin aikana, tarjoten helpon pääsyn pelin ulkoisiin valikkoihin."
|
||||
|
||||
# screens.rpy:261
|
||||
old "Back"
|
||||
@@ -71,11 +71,12 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:262
|
||||
old "History"
|
||||
new "History"
|
||||
new "Historia"
|
||||
|
||||
# screens.rpy:263
|
||||
old "Skip"
|
||||
new "Skip"
|
||||
# Automatic translation.
|
||||
new "Ohita"
|
||||
|
||||
# screens.rpy:264
|
||||
old "Auto"
|
||||
@@ -83,51 +84,51 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:265
|
||||
old "Save"
|
||||
new "Save"
|
||||
new "Tallenna"
|
||||
|
||||
# screens.rpy:266
|
||||
old "Q.Save"
|
||||
new "Q.Save"
|
||||
new "P.Tallenna"
|
||||
|
||||
# screens.rpy:267
|
||||
old "Q.Load"
|
||||
new "Q.Load"
|
||||
new "P.Lataa"
|
||||
|
||||
# screens.rpy:268
|
||||
old "Prefs"
|
||||
new "Prefs"
|
||||
new "Asetukset"
|
||||
|
||||
# screens.rpy:271
|
||||
old "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
|
||||
new "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
|
||||
new "## Tämä koodi varmistaa, että quick_menu-näyttö näytetään pelin aikana, aina kun pelaaja ei ole erikseen sitä piilottanut."
|
||||
|
||||
# screens.rpy:291
|
||||
old "## Navigation screen"
|
||||
new "## Navigation screen"
|
||||
new "## Siirtymänäyttö"
|
||||
|
||||
# screens.rpy:293
|
||||
old "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
|
||||
new "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
|
||||
new "## Tämä näyttö sisältyy pää- ja pelivalikkoon, tarjoten pääsyn muihin valikoihin, sekä pelin aloitukseen."
|
||||
|
||||
# screens.rpy:308
|
||||
old "Start"
|
||||
new "Start"
|
||||
new "Aloita"
|
||||
|
||||
# screens.rpy:316
|
||||
old "Load"
|
||||
new "Load"
|
||||
new "Lataa"
|
||||
|
||||
# screens.rpy:318
|
||||
old "Preferences"
|
||||
new "Preferences"
|
||||
new "Asetukset"
|
||||
|
||||
# screens.rpy:322
|
||||
old "End Replay"
|
||||
new "End Replay"
|
||||
new "Päätä Toisto"
|
||||
|
||||
# screens.rpy:326
|
||||
old "Main Menu"
|
||||
new "Main Menu"
|
||||
new "Päävalikko"
|
||||
|
||||
# screens.rpy:328
|
||||
old "About"
|
||||
@@ -135,15 +136,15 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:332
|
||||
old "## Help isn't necessary or relevant to mobile devices."
|
||||
new "## Help isn't necessary or relevant to mobile devices."
|
||||
new "## Ohje ei ole tarpeellinen tai oleellinen mobiililaitteilla."
|
||||
|
||||
# screens.rpy:333
|
||||
old "Help"
|
||||
new "Help"
|
||||
new "Ohje"
|
||||
|
||||
# screens.rpy:335
|
||||
old "## The quit button is banned on iOS and unnecessary on Android."
|
||||
new "## The quit button is banned on iOS and unnecessary on Android."
|
||||
new "## Poistu-painike on kielletty iOS-laitteilla, ja tarpeeton Android-laitteilla."
|
||||
|
||||
# screens.rpy:336
|
||||
old "Quit"
|
||||
@@ -151,11 +152,11 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:350
|
||||
old "## Main Menu screen"
|
||||
new "## Main Menu screen"
|
||||
new "## Päävalikkonäkymä"
|
||||
|
||||
# screens.rpy:352
|
||||
old "## Used to display the main menu when Ren'Py starts."
|
||||
new "## Used to display the main menu when Ren'Py starts."
|
||||
new "## Käytetään päävalikon näyttämiseksi Ren'Py:n käynnistyessä."
|
||||
|
||||
# screens.rpy:354
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#main-menu"
|
||||
@@ -163,19 +164,19 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:369
|
||||
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
|
||||
new "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
|
||||
new "## use-komento sisältää toisen näytön. Päävalikon sisältö on todellisuudessa osa siirtymänäyttöä."
|
||||
|
||||
# screens.rpy:413
|
||||
old "## Game Menu screen"
|
||||
new "## Game Menu screen"
|
||||
new "## Pelivalikkonäkymä"
|
||||
|
||||
# screens.rpy:415
|
||||
old "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
|
||||
new "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
|
||||
new "## Tämä esittää pelivalikon perusrakenteen. Sitä kutsutaan näytön nimellä, ja se näyttää taustakuvan, nimen, sekä siirtymävalinnat."
|
||||
|
||||
# screens.rpy:418
|
||||
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
new "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
new "## scroll-parametri voi olla None, tai vaihtoisesti \"viewport\" tai \"vpgrid\". Tämän näytön sisältäessä yhden tai useamman muun näytön, jotka sijoitetaan sen sisään."
|
||||
|
||||
# screens.rpy:476
|
||||
old "Return"
|
||||
@@ -183,43 +184,43 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:539
|
||||
old "## About screen"
|
||||
new "## About screen"
|
||||
new "## Tietoja-näyttö"
|
||||
|
||||
# screens.rpy:541
|
||||
old "## This screen gives credit and copyright information about the game and Ren'Py."
|
||||
new "## This screen gives credit and copyright information about the game and Ren'Py."
|
||||
new "## Tämä näyttö antaa kehuja kehittäjille, sekä kopio-oikeusinformaatiota pelistä sekä Ren'Py:stä."
|
||||
|
||||
# screens.rpy:544
|
||||
old "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
|
||||
new "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
|
||||
new "## Tässä näytössä ei ole mitään erityistä, minkä vuoksi se toimii hyvin esimerkkinä itse tehdystä näytöstä."
|
||||
|
||||
# screens.rpy:551
|
||||
old "## This use statement includes the game_menu screen inside this one. The vbox child is then included inside the viewport inside the game_menu screen."
|
||||
new "## This use statement includes the game_menu screen inside this one. The vbox child is then included inside the viewport inside the game_menu screen."
|
||||
new "## Tämä use-lause sisältää game_menu-näytön. Sen alainen vbox-ikkuna sisältyy täten näkymään game_menu-näytön kautta."
|
||||
|
||||
# screens.rpy:561
|
||||
old "Version [config.version!t]\n"
|
||||
new "Version [config.version!t]\n"
|
||||
new "Versio [config.version!t]\n"
|
||||
|
||||
# screens.rpy:563
|
||||
old "## gui.about is usually set in options.rpy."
|
||||
new "## gui.about is usually set in options.rpy."
|
||||
new "## gui.about asetetaan yleensä tiedostossa options.rpy."
|
||||
|
||||
# screens.rpy:567
|
||||
old "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
|
||||
new "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
|
||||
new "Kehitetty käyttäen ohjelmaa {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
|
||||
|
||||
# screens.rpy:570
|
||||
old "## This is redefined in options.rpy to add text to the about screen."
|
||||
new "## This is redefined in options.rpy to add text to the about screen."
|
||||
new "## Tämä on määritelty uudelleen options.rpy-tiedostossa tekstin lisäämiseksi tietoja-näyttöön."
|
||||
|
||||
# screens.rpy:582
|
||||
old "## Load and Save screens"
|
||||
new "## Load and Save screens"
|
||||
new "## Lataa ja Tallenna -näytöt"
|
||||
|
||||
# screens.rpy:584
|
||||
old "## These screens are responsible for letting the player save the game and load it again. Since they share nearly everything in common, both are implemented in terms of a third screen, file_slots."
|
||||
new "## These screens are responsible for letting the player save the game and load it again. Since they share nearly everything in common, both are implemented in terms of a third screen, file_slots."
|
||||
new "## Nämä näytöt mahdollistavat pelaajan tallentaa pelin edistys ja ladata olemassaolevia tallennuksia. Koska näillä on niin paljon yhteistä, molemmat näytöt on määritelty kolmannen näytön, file_slots, mukaan."
|
||||
|
||||
# screens.rpy:588
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#save https://www.renpy.org/doc/html/screen_special.html#load"
|
||||
@@ -239,11 +240,11 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:613
|
||||
old "## This ensures the input will get the enter event before any of the buttons do."
|
||||
new "## This ensures the input will get the enter event before any of the buttons do."
|
||||
new "## Tämä varmistaa, että input saa enter-tapahtuman ennen muita painikkeita."
|
||||
|
||||
# screens.rpy:629
|
||||
old "## The grid of file slots."
|
||||
new "## The grid of file slots."
|
||||
new "## Tallennuspaikkojen taulukko."
|
||||
|
||||
# screens.rpy:649
|
||||
old "{#file_time}%A, %B %d %Y, %H:%M"
|
||||
@@ -251,11 +252,11 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:649
|
||||
old "empty slot"
|
||||
new "empty slot"
|
||||
new "tyhjä paikka"
|
||||
|
||||
# screens.rpy:657
|
||||
old "## Buttons to access other pages."
|
||||
new "## Buttons to access other pages."
|
||||
new "## Painikkeita muille sivuille pääsyä varten."
|
||||
|
||||
# screens.rpy:666
|
||||
old "<"
|
||||
@@ -275,11 +276,11 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:711
|
||||
old "## Preferences screen"
|
||||
new "## Preferences screen"
|
||||
new "## Asetukset-näyttö"
|
||||
|
||||
# screens.rpy:713
|
||||
old "## The preferences screen allows the player to configure the game to better suit themselves."
|
||||
new "## The preferences screen allows the player to configure the game to better suit themselves."
|
||||
new "## Asetukset antavat pelaajan säätää pelin grafiikka, toiminnot sekä äänet mieleisekseen."
|
||||
|
||||
# screens.rpy:716
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#preferences"
|
||||
@@ -299,7 +300,7 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:744
|
||||
old "Rollback Side"
|
||||
new "Rollback Side"
|
||||
new "Palautussivu"
|
||||
|
||||
# screens.rpy:745
|
||||
old "Disable"
|
||||
@@ -307,63 +308,63 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:746
|
||||
old "Left"
|
||||
new "Left"
|
||||
new "Vasen"
|
||||
|
||||
# screens.rpy:747
|
||||
old "Right"
|
||||
new "Right"
|
||||
new "Oikea"
|
||||
|
||||
# screens.rpy:752
|
||||
old "Unseen Text"
|
||||
new "Unseen Text"
|
||||
new "Lukematon Teksti"
|
||||
|
||||
# screens.rpy:753
|
||||
old "After Choices"
|
||||
new "After Choices"
|
||||
new "Päätösten Jälkeen"
|
||||
|
||||
# screens.rpy:754
|
||||
old "Transitions"
|
||||
new "Transitions"
|
||||
new "Siirtymät"
|
||||
|
||||
# screens.rpy:756
|
||||
old "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
|
||||
new "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
|
||||
new "## Ylimääräisiä tyyppien \"radio_pref\" tai \"check_pref\" vboxeja voidaan lisätä tähän, antaen pelaajalle ylimääräisiä kehittäjän luomia asetuksia."
|
||||
|
||||
# screens.rpy:767
|
||||
old "Text Speed"
|
||||
new "Text Speed"
|
||||
new "Tekstin Nopeus"
|
||||
|
||||
# screens.rpy:771
|
||||
old "Auto-Forward Time"
|
||||
new "Auto-Forward Time"
|
||||
new "Automaattisen Jatkamisen Viive"
|
||||
|
||||
# screens.rpy:778
|
||||
old "Music Volume"
|
||||
new "Music Volume"
|
||||
new "Musiikin Äänenvoimakkuus"
|
||||
|
||||
# screens.rpy:785
|
||||
old "Sound Volume"
|
||||
new "Äänenvoimakkuus"
|
||||
new "Ääniefektien Äänenvoimakkuus"
|
||||
|
||||
# screens.rpy:791
|
||||
old "Test"
|
||||
new "Test"
|
||||
new "Kokeile"
|
||||
|
||||
# screens.rpy:795
|
||||
old "Voice Volume"
|
||||
new "Voice Volume"
|
||||
new "Puheen Äänenvoimakkuus"
|
||||
|
||||
# screens.rpy:806
|
||||
old "Mute All"
|
||||
new "Mute All"
|
||||
new "Mykistä Kaikki"
|
||||
|
||||
# screens.rpy:882
|
||||
old "## History screen"
|
||||
new "## History screen"
|
||||
new "## Historia-näyttö"
|
||||
|
||||
# screens.rpy:884
|
||||
old "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
|
||||
new "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
|
||||
new "## Tämä näyttö näyttää dialogihistorian pelaajalle. Vaikka kyseisessä näytössä ei ole mitään erityistä, sillä on pääsy _history_list:iin tallennettuun dialogihistoriaan."
|
||||
|
||||
# screens.rpy:888
|
||||
old "## https://www.renpy.org/doc/html/history.html"
|
||||
@@ -371,35 +372,35 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:894
|
||||
old "## Avoid predicting this screen, as it can be very large."
|
||||
new "## Avoid predicting this screen, as it can be very large."
|
||||
new "## Vältä ennustamasta tätä näyttöä, sillä se voi olla hyvin suuri."
|
||||
|
||||
# screens.rpy:905
|
||||
old "## This lays things out properly if history_height is None."
|
||||
new "## This lays things out properly if history_height is None."
|
||||
new "## Tämä asettelee dialogin kunnnolla, jos history_height on None."
|
||||
|
||||
# screens.rpy:914
|
||||
old "## Take the color of the who text from the Character, if set."
|
||||
new "## Take the color of the who text from the Character, if set."
|
||||
new "## Ota väri hahmon who-tekstistä, jos asetettu."
|
||||
|
||||
# screens.rpy:921
|
||||
old "The dialogue history is empty."
|
||||
new "The dialogue history is empty."
|
||||
new "Dialogihistoria on tyhjä."
|
||||
|
||||
# screens.rpy:965
|
||||
old "## Help screen"
|
||||
new "## Help screen"
|
||||
new "## Ohje-näyttö"
|
||||
|
||||
# screens.rpy:967
|
||||
old "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
|
||||
new "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
|
||||
new "## Näyttö, joka tarjoaa tietoa pelin käyttämistä hiiren ja näppäimistön painikkeista sekä niiden toiminnoista. Se käyttää muita näyttöjä (keyboard_help, mouse_help, ja gamepad_help) näyttääkseen itse ohjeet."
|
||||
|
||||
# screens.rpy:986
|
||||
old "Keyboard"
|
||||
new "Keyboard"
|
||||
new "Näppäimistö"
|
||||
|
||||
# screens.rpy:987
|
||||
old "Mouse"
|
||||
new "Mouse"
|
||||
new "Hiiri"
|
||||
|
||||
# screens.rpy:990
|
||||
old "Gamepad"
|
||||
@@ -407,35 +408,36 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:1003
|
||||
old "Enter"
|
||||
new "Enter"
|
||||
# Automatic translation.
|
||||
new "Kirjoita"
|
||||
|
||||
# screens.rpy:1004
|
||||
old "Advances dialogue and activates the interface."
|
||||
new "Advances dialogue and activates the interface."
|
||||
new "Jatkaa dialogia ja aktivoi valittuja toimintoja."
|
||||
|
||||
# screens.rpy:1007
|
||||
old "Space"
|
||||
new "Space"
|
||||
new "Välilyönti"
|
||||
|
||||
# screens.rpy:1008
|
||||
old "Advances dialogue without selecting choices."
|
||||
new "Advances dialogue without selecting choices."
|
||||
new "Jatkaa dialogia tekemättä päätöksiä."
|
||||
|
||||
# screens.rpy:1011
|
||||
old "Arrow Keys"
|
||||
new "Arrow Keys"
|
||||
new "Nuolinäppäimet"
|
||||
|
||||
# screens.rpy:1012
|
||||
old "Navigate the interface."
|
||||
new "Navigate the interface."
|
||||
new "Liiku käyttöliittymässä."
|
||||
|
||||
# screens.rpy:1015
|
||||
old "Escape"
|
||||
new "Escape"
|
||||
new "Esc"
|
||||
|
||||
# screens.rpy:1016
|
||||
old "Accesses the game menu."
|
||||
new "Accesses the game menu."
|
||||
new "Avaa ja sulkee pelivalikon."
|
||||
|
||||
# screens.rpy:1019
|
||||
old "Ctrl"
|
||||
@@ -443,99 +445,100 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:1020
|
||||
old "Skips dialogue while held down."
|
||||
new "Skips dialogue while held down."
|
||||
new "Sivuuttaa dialogin pidettäessä painettuna."
|
||||
|
||||
# screens.rpy:1023
|
||||
old "Tab"
|
||||
new "Tab"
|
||||
new "Sarkain"
|
||||
|
||||
# screens.rpy:1024
|
||||
old "Toggles dialogue skipping."
|
||||
new "Toggles dialogue skipping."
|
||||
new "Asettaa dialogin sivuutuksen päälle ja pois."
|
||||
|
||||
# screens.rpy:1027
|
||||
old "Page Up"
|
||||
new "Page Up"
|
||||
# Automatic translation.
|
||||
new "Sivu ylös"
|
||||
|
||||
# screens.rpy:1028
|
||||
old "Rolls back to earlier dialogue."
|
||||
new "Rolls back to earlier dialogue."
|
||||
new "Siirtyy takaisin aiempaan dialogiin."
|
||||
|
||||
# screens.rpy:1031
|
||||
old "Page Down"
|
||||
new "Page Down"
|
||||
new "Siirtyy uudempaan dialogiin."
|
||||
|
||||
# screens.rpy:1032
|
||||
old "Rolls forward to later dialogue."
|
||||
new "Rolls forward to later dialogue."
|
||||
new "Vierittää kohti uudempaa dialogia."
|
||||
|
||||
# screens.rpy:1036
|
||||
old "Hides the user interface."
|
||||
new "Hides the user interface."
|
||||
new "Piilottaa käyttöliittymän."
|
||||
|
||||
# screens.rpy:1040
|
||||
old "Takes a screenshot."
|
||||
new "Takes a screenshot."
|
||||
new "Ottaa näytönkaappauksen."
|
||||
|
||||
# screens.rpy:1044
|
||||
old "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
|
||||
new "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
|
||||
new "Asettaa auttavan {a=https://www.renpy.org/l/voicing}TTS-tilan{/a} päälle ja pois."
|
||||
|
||||
# screens.rpy:1050
|
||||
old "Left Click"
|
||||
new "Left Click"
|
||||
new "Hiiren Vasen Painike"
|
||||
|
||||
# screens.rpy:1054
|
||||
old "Middle Click"
|
||||
new "Middle Click"
|
||||
new "Hiiren Keskipainike"
|
||||
|
||||
# screens.rpy:1058
|
||||
old "Right Click"
|
||||
new "Right Click"
|
||||
new "Hiiren Oikea Painike"
|
||||
|
||||
# screens.rpy:1062
|
||||
old "Mouse Wheel Up\nClick Rollback Side"
|
||||
new "Mouse Wheel Up\nClick Rollback Side"
|
||||
new "Hiiren Rulla Ylös\nKlikkaa Palautussivua"
|
||||
|
||||
# screens.rpy:1066
|
||||
old "Mouse Wheel Down"
|
||||
new "Mouse Wheel Down"
|
||||
new "Hiiren Rulla Alas"
|
||||
|
||||
# screens.rpy:1073
|
||||
old "Right Trigger\nA/Bottom Button"
|
||||
new "Right Trigger\nA/Bottom Button"
|
||||
new "Oikea Liipaisin\nA/Alapainike"
|
||||
|
||||
# screens.rpy:1074
|
||||
old "Advance dialogue and activates the interface."
|
||||
new "Advance dialogue and activates the interface."
|
||||
new "Jatka dialogia ja aktivoi valittuja toimintoja."
|
||||
|
||||
# screens.rpy:1078
|
||||
old "Roll back to earlier dialogue."
|
||||
new "Roll back to earlier dialogue."
|
||||
new "Siirtyy takaisin aiempaan dialogiin."
|
||||
|
||||
# screens.rpy:1081
|
||||
old "Right Shoulder"
|
||||
new "Right Shoulder"
|
||||
new "Oikea Olkapainike"
|
||||
|
||||
# screens.rpy:1082
|
||||
old "Roll forward to later dialogue."
|
||||
new "Roll forward to later dialogue."
|
||||
new "Vieritä kohti uudempaa dialogia."
|
||||
|
||||
# screens.rpy:1085
|
||||
old "D-Pad, Sticks"
|
||||
new "D-Pad, Sticks"
|
||||
new "Ristiohjain, Tikut"
|
||||
|
||||
# screens.rpy:1089
|
||||
old "Start, Guide"
|
||||
new "Start, Guide"
|
||||
new "Start, Opas"
|
||||
|
||||
# screens.rpy:1090
|
||||
old "Access the game menu."
|
||||
new "Access the game menu."
|
||||
new "Avaa ja sulje pelivalikko."
|
||||
|
||||
# screens.rpy:1093
|
||||
old "Y/Top Button"
|
||||
new "Y/Top Button"
|
||||
new "Y/Yläpainike"
|
||||
|
||||
# screens.rpy:1096
|
||||
old "Calibrate"
|
||||
@@ -543,15 +546,15 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:1124
|
||||
old "## Additional screens"
|
||||
new "## Additional screens"
|
||||
new "## Ylimääräisiä näyttöjä"
|
||||
|
||||
# screens.rpy:1128
|
||||
old "## Confirm screen"
|
||||
new "## Confirm screen"
|
||||
new "## Vahvistusikkuna"
|
||||
|
||||
# screens.rpy:1130
|
||||
old "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
|
||||
new "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
|
||||
new "## Vahvistusikkunaa käytetään, kun Ren'Py haluaa kysyä pelaajalta kyllä tai ei -kysymyksen."
|
||||
|
||||
# screens.rpy:1133
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#confirm"
|
||||
@@ -559,7 +562,7 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:1137
|
||||
old "## Ensure other screens do not get input while this screen is displayed."
|
||||
new "## Ensure other screens do not get input while this screen is displayed."
|
||||
new "## Varmista, etteivät muut näytöt odota syötettä tämän näytön ollessa näkyvillä."
|
||||
|
||||
# screens.rpy:1161
|
||||
old "Yes"
|
||||
@@ -571,15 +574,15 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:1164
|
||||
old "## Right-click and escape answer \"no\"."
|
||||
new "## Right-click and escape answer \"no\"."
|
||||
new "## Hiiren oikea painike ja Esc antavat vastauksen \"ei\"."
|
||||
|
||||
# screens.rpy:1191
|
||||
old "## Skip indicator screen"
|
||||
new "## Skip indicator screen"
|
||||
new "## Sivuutusilmaisin-näyttö"
|
||||
|
||||
# screens.rpy:1193
|
||||
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
|
||||
new "## The skip_indicator screen is displayed to indicate that skipping is in progress."
|
||||
new "## skip_indicator-näyttö on näkyvillä, kun dialogin sivuutuksen tila on käytössä."
|
||||
|
||||
# screens.rpy:1196
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
|
||||
@@ -587,19 +590,19 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:1208
|
||||
old "Skipping"
|
||||
new "Skipping"
|
||||
new "Sivuutetaan dialogia"
|
||||
|
||||
# screens.rpy:1215
|
||||
old "## This transform is used to blink the arrows one after another."
|
||||
new "## This transform is used to blink the arrows one after another."
|
||||
new "## Tätä muutosta käytetään nuolten vilkkumiseen toistensa perään."
|
||||
|
||||
# screens.rpy:1247
|
||||
old "## Notify screen"
|
||||
new "## Notify screen"
|
||||
new "## Ilmoitusnäyttö"
|
||||
|
||||
# screens.rpy:1249
|
||||
old "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
|
||||
new "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
|
||||
new "## Ilmoitusnäyttöä käytetään näyttämään pelaajalle viesti. (Esimerkiksi kun peli on pikatallennettu tai näytönkaappaus on otettu.)"
|
||||
|
||||
# screens.rpy:1252
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
|
||||
@@ -607,11 +610,11 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:1286
|
||||
old "## NVL screen"
|
||||
new "## NVL screen"
|
||||
new "## NVL-näyttö"
|
||||
|
||||
# screens.rpy:1288
|
||||
old "## This screen is used for NVL-mode dialogue and menus."
|
||||
new "## This screen is used for NVL-mode dialogue and menus."
|
||||
new "## Tätä näyttöä käytetään NVL-tilan dialogiin ja valikoihin."
|
||||
|
||||
# screens.rpy:1290
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#nvl"
|
||||
@@ -619,25 +622,155 @@ translate finnish strings:
|
||||
|
||||
# screens.rpy:1301
|
||||
old "## Displays dialogue in either a vpgrid or the vbox."
|
||||
new "## Displays dialogue in either a vpgrid or the vbox."
|
||||
new "## Näyttää dialogin joko vpgridissä tai vboxissa."
|
||||
|
||||
# screens.rpy:1314
|
||||
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
|
||||
new "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
|
||||
new "## Näyttää valikon, jos annettu. Valikko voi näyttää väärältä mikäli config.narrator_menu on asetettu arvoon True, kuten yllä."
|
||||
|
||||
# screens.rpy:1344
|
||||
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
|
||||
new "## This controls the maximum number of NVL-mode entries that can be displayed at once."
|
||||
new "## Tämä säätää, kuinka mointa NVL-tilan viestiä voidaan maksimissaan näyttää kerralla."
|
||||
|
||||
# screens.rpy:1406
|
||||
old "## Mobile Variants"
|
||||
new "## Mobile Variants"
|
||||
new "## Mobiiliversiot"
|
||||
|
||||
# screens.rpy:1413
|
||||
old "## Since a mouse may not be present, we replace the quick menu with a version that uses fewer and bigger buttons that are easier to touch."
|
||||
new "## Since a mouse may not be present, we replace the quick menu with a version that uses fewer and bigger buttons that are easier to touch."
|
||||
new "## Koska hiirtä ei välttämättä ole, korvaamme pikavalikon versiolla jossa on vähemmän, ja suurempia painikkeita, joita on helpompi koskea."
|
||||
|
||||
# screens.rpy:1429
|
||||
old "Menu"
|
||||
new "Menu"
|
||||
new "Valikko"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# gui/game/screens.rpy:114
|
||||
old "## If there's a side image, display it above the text. Do not display on the phone variant - there's no room."
|
||||
# Automatic translation.
|
||||
new "## Jos sivulla on kuva, näytä se tekstin yläpuolella. Älä näytä puhelinmuunnoksessa - siinä ei ole tilaa."
|
||||
|
||||
# gui/game/screens.rpy:120
|
||||
old "## Make the namebox available for styling through the Character object."
|
||||
# Automatic translation.
|
||||
new "## Tee nimilaatikosta muotoiltavissa oleva Character-olio."
|
||||
|
||||
# gui/game/screens.rpy:173
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#input"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#input"
|
||||
|
||||
# gui/game/screens.rpy:206
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#choice"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#choice"
|
||||
|
||||
# gui/game/screens.rpy:241
|
||||
old "## Ensure this appears on top of other screens."
|
||||
# Automatic translation.
|
||||
new "## Varmista, että tämä näkyy muiden näyttöjen yläpuolella."
|
||||
|
||||
# gui/game/screens.rpy:280
|
||||
old "## Main and Game Menu Screens"
|
||||
# Automatic translation.
|
||||
new "## Pää- ja pelivalikon näytöt"
|
||||
|
||||
# gui/game/screens.rpy:329
|
||||
old "## The quit button is banned on iOS and unnecessary on Android and Web."
|
||||
# Automatic translation.
|
||||
new "## Lopeta-painike on kielletty iOS:ssä ja tarpeeton Androidissa ja Webissä."
|
||||
|
||||
# gui/game/screens.rpy:348
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#main-menu"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#main-menu"
|
||||
|
||||
# gui/game/screens.rpy:352
|
||||
old "## This ensures that any other menu screen is replaced."
|
||||
# Automatic translation.
|
||||
new "## Näin varmistetaan, että kaikki muut valikkonäytöt korvataan."
|
||||
|
||||
# gui/game/screens.rpy:357
|
||||
old "## This empty frame darkens the main menu."
|
||||
# Automatic translation.
|
||||
new "## Tämä tyhjä kehys tummentaa päävalikon."
|
||||
|
||||
# gui/game/screens.rpy:429
|
||||
old "## Reserve space for the navigation section."
|
||||
# Automatic translation.
|
||||
new "## Varaa tilaa navigointiosuudelle."
|
||||
|
||||
# gui/game/screens.rpy:608
|
||||
old "## The page name, which can be edited by clicking on a button."
|
||||
# Automatic translation.
|
||||
new "## Sivun nimi, jota voidaan muokata napsauttamalla painiketta."
|
||||
|
||||
# gui/game/screens.rpy:668
|
||||
old "## range(1, 10) gives the numbers from 1 to 9."
|
||||
# Automatic translation.
|
||||
new "## range(1, 10) antaa numerot 1-9."
|
||||
|
||||
# gui/game/screens.rpy:676
|
||||
old "Upload Sync"
|
||||
# Automatic translation.
|
||||
new "Lataa synkronointi"
|
||||
|
||||
# gui/game/screens.rpy:680
|
||||
old "Download Sync"
|
||||
# Automatic translation.
|
||||
new "Lataa Sync"
|
||||
|
||||
# gui/game/screens.rpy:921
|
||||
old "## This determines what tags are allowed to be displayed on the history screen."
|
||||
# Automatic translation.
|
||||
new "## Tämä määrittää, mitä tunnisteita saa näyttää historiaruudulla."
|
||||
|
||||
# gui/game/screens.rpy:1049
|
||||
old "Opens the accessibility menu."
|
||||
# Automatic translation.
|
||||
new "Avaa saavutettavuusvalikon."
|
||||
|
||||
# gui/game/screens.rpy:1082
|
||||
old "Left Trigger\nLeft Shoulder"
|
||||
# Automatic translation.
|
||||
new "Vasen liipaisin\nVasen olkapää"
|
||||
|
||||
# gui/game/screens.rpy:1139
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#confirm"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#confirm"
|
||||
|
||||
# gui/game/screens.rpy:1248
|
||||
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
|
||||
# Automatic translation.
|
||||
new "## Meidän on käytettävä fonttia, jossa on BLACK RIGHT-POINTING SMALL TRIANGLE -lyhenne."
|
||||
|
||||
# gui/game/screens.rpy:1296
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#nvl"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#nvl"
|
||||
|
||||
# gui/game/screens.rpy:1320
|
||||
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True."
|
||||
# Automatic translation.
|
||||
new "## Näyttää valikon, jos se on annettu. Valikko saatetaan näyttää virheellisesti, jos config.narrator_menu on asetettu arvoon True."
|
||||
|
||||
# gui/game/screens.rpy:1410
|
||||
old "## Bubble screen"
|
||||
# Automatic translation.
|
||||
new "## Kupla näyttö"
|
||||
|
||||
# gui/game/screens.rpy:1412
|
||||
old "## The bubble screen is used to display dialogue to the player when using speech bubbles. The bubble screen takes the same parameters as the say screen, must create a displayable with the id of \"what\", and can create displayables with the \"namebox\", \"who\", and \"window\" ids."
|
||||
# Automatic translation.
|
||||
new "## Puhekuplaikkunaa käytetään näyttämään dialogi pelaajalle, kun käytetään puhekuplia. Bubble screen ottaa samat parametrit kuin say screen, sen on luotava displayable, jonka id on \"what\", ja se voi luoda displayables, joiden id:t ovat \"namebox\", \"who\" ja \"window\"."
|
||||
|
||||
# gui/game/screens.rpy:1417
|
||||
old "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
|
||||
new "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# gui/game/screens.rpy:411
|
||||
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". This screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
# Automatic translation.
|
||||
new "## Selausparametri voi olla None tai jokin seuraavista: \"viewport\" tai \"vpgrid\". Tämä ruutu on tarkoitettu käytettäväksi yhden tai useamman lapsen kanssa, jotka siirretään (sijoitetaan) sen sisään."
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
translate french strings:
|
||||
translate french strings:
|
||||
|
||||
# 00action_file.rpy:26
|
||||
old "{#weekday}Monday"
|
||||
@@ -333,8 +332,6 @@ translate french strings:
|
||||
old "return"
|
||||
new "retour"
|
||||
|
||||
translate french strings:
|
||||
|
||||
# renpy/common/00accessibility.rpy:76
|
||||
old "Font Override"
|
||||
new "Forcer la police"
|
||||
@@ -353,7 +350,7 @@ translate french strings:
|
||||
|
||||
# renpy/common/00accessibility.rpy:94
|
||||
old "Text Size Scaling"
|
||||
new "Redimensionnement du Texte"
|
||||
new "Redimensionnement du texte"
|
||||
|
||||
# renpy/common/00accessibility.rpy:100
|
||||
old "Reset"
|
||||
@@ -361,7 +358,7 @@ translate french strings:
|
||||
|
||||
# renpy/common/00accessibility.rpy:105
|
||||
old "Line Spacing Scaling"
|
||||
new "Espacement Vertical"
|
||||
new "Espacement vertical"
|
||||
|
||||
# renpy/common/00accessibility.rpy:117
|
||||
old "Self-Voicing"
|
||||
@@ -393,7 +390,7 @@ translate french strings:
|
||||
|
||||
# renpy/common/00accessibility.rpy:34
|
||||
old "viewport"
|
||||
new "viewport"
|
||||
new "fenêtre déroulante"
|
||||
|
||||
# renpy/common/00accessibility.rpy:35
|
||||
old "horizontal scroll"
|
||||
@@ -429,11 +426,11 @@ translate french strings:
|
||||
|
||||
# renpy/common/00action_file.rpy:353
|
||||
old "Save slot %s: [text]"
|
||||
new "Sauvegarder %s: [text]"
|
||||
new "Sauvegarder %s : [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:434
|
||||
old "Load slot %s: [text]"
|
||||
new "Charger %s: [text]"
|
||||
new "Charger %s : [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:487
|
||||
old "Delete slot [text]"
|
||||
@@ -489,7 +486,7 @@ translate french strings:
|
||||
|
||||
# renpy/common/00director.rpy:1561
|
||||
old "(statement)"
|
||||
new "(statement)"
|
||||
new "(instruction)"
|
||||
|
||||
# renpy/common/00director.rpy:1562
|
||||
old "(tag)"
|
||||
@@ -509,7 +506,8 @@ translate french strings:
|
||||
|
||||
# renpy/common/00director.rpy:1601
|
||||
old "(channel)"
|
||||
new "(channel)"
|
||||
# Automatic translation.
|
||||
new "(canal)"
|
||||
|
||||
# renpy/common/00director.rpy:1602
|
||||
old "(filename)"
|
||||
@@ -529,7 +527,7 @@ translate french strings:
|
||||
|
||||
# renpy/common/00director.rpy:1674
|
||||
old "Statement:"
|
||||
new "Statement :"
|
||||
new "Instruction :"
|
||||
|
||||
# renpy/common/00director.rpy:1695
|
||||
old "Tag:"
|
||||
@@ -545,7 +543,7 @@ translate french strings:
|
||||
|
||||
# renpy/common/00director.rpy:1748
|
||||
old "Behind:"
|
||||
new "Sous :"
|
||||
new "Derrière :"
|
||||
|
||||
# renpy/common/00director.rpy:1767
|
||||
old "Transition:"
|
||||
@@ -553,7 +551,7 @@ translate french strings:
|
||||
|
||||
# renpy/common/00director.rpy:1785
|
||||
old "Channel:"
|
||||
new "Channel :"
|
||||
new "Piste :"
|
||||
|
||||
# renpy/common/00director.rpy:1803
|
||||
old "Audio Filename:"
|
||||
@@ -761,7 +759,7 @@ translate french strings:
|
||||
|
||||
# renpy/common/_developer/developer.rpym:506
|
||||
old "Type to filter: "
|
||||
new "Type à filtrer : "
|
||||
new "Écrire pour filtrer : "
|
||||
|
||||
# renpy/common/_developer/developer.rpym:631
|
||||
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
|
||||
@@ -770,3 +768,143 @@ translate french strings:
|
||||
# renpy/common/_developer/developer.rpym:635
|
||||
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
new "Cache d'images : [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
|
||||
# renpy/common/00preferences.rpy:480
|
||||
old "renderer menu"
|
||||
new "menu de rendu"
|
||||
|
||||
# renpy/common/00preferences.rpy:483
|
||||
old "accessibility menu"
|
||||
new "menu d'accessibilité"
|
||||
|
||||
# renpy/common/00accessibility.rpy:180
|
||||
old "High Contrast Text"
|
||||
new "Texte en contraste élevé (surbrillance)"
|
||||
|
||||
# renpy/common/00preferences.rpy:493
|
||||
old "high contrast text"
|
||||
new "texte en contraste élevé"
|
||||
|
||||
# renpy/common/00preferences.rpy:511
|
||||
old "audio when minimized"
|
||||
new "audio quand minimisé"
|
||||
|
||||
# renpy/common/00preferences.rpy:531
|
||||
old "main volume"
|
||||
new "volume principal"
|
||||
|
||||
# renpy/common/00preferences.rpy:535
|
||||
old "mute main"
|
||||
new "sourdine générale"
|
||||
|
||||
# renpy/common/00speechbubble.rpy:299
|
||||
old "Speech Bubble Editor"
|
||||
new "Éditeur de bulles de dialogue"
|
||||
|
||||
# renpy/common/00speechbubble.rpy:304
|
||||
old "(hide)"
|
||||
new "(masquer)"
|
||||
|
||||
# renpy/common/00director.rpy:1748
|
||||
old "Click to toggle attribute, right click to toggle negative attribute."
|
||||
new "Clic pour (dés)activer des attributs, clic droit pour (dés)activer les suppressions d'attributs."
|
||||
|
||||
# renpy/common/00director.rpy:1771
|
||||
old "Click to set transform, right click to add to transform list."
|
||||
new "Clic pour assigner le transform, clic droit pour ajouter à la liste des transforms."
|
||||
|
||||
# renpy/common/00director.rpy:1789
|
||||
old "Click to set, right click to add to behind list."
|
||||
new "Clic pour assigner, clic droit pour ajouter à la liste du \"behind\"."
|
||||
|
||||
# renpy/common/00preferences.rpy:528
|
||||
old "audio when unfocused"
|
||||
new "audio lors de la perte de focus"
|
||||
|
||||
# renpy/common/00preferences.rpy:537
|
||||
old "web cache preload"
|
||||
new "préchargement du cache web cache"
|
||||
|
||||
# renpy/common/00preferences.rpy:552
|
||||
old "voice after game menu"
|
||||
new "voix dans le menu de jeu"
|
||||
|
||||
# renpy/common/00sync.rpy:58
|
||||
old "Sync downloaded."
|
||||
new "Sync téléchargé."
|
||||
|
||||
# renpy/common/00sync.rpy:178
|
||||
old "Could not connect to the Ren'Py Sync server."
|
||||
new "Échec de la connexion au serveur Ren'Py Sync."
|
||||
|
||||
# renpy/common/00sync.rpy:180
|
||||
old "The Ren'Py Sync server timed out."
|
||||
new "Le serveur Ren'Py Sync a mis trop de temps à répondre."
|
||||
|
||||
# renpy/common/00sync.rpy:182
|
||||
old "An unknown error occurred while connecting to the Ren'Py Sync server."
|
||||
new "Une erreur inconnue est arrivée lors de la connexion au serveur Ren'Py Sync."
|
||||
|
||||
# renpy/common/00sync.rpy:255
|
||||
old "The Ren'Py Sync server does not have a copy of this sync. The sync ID may be invalid, or it may have timed out."
|
||||
new "Le serveur Ren'Py Sync ne reconnaît pas ce code sync. l'ID est peut-être invalide, ou il peut avoir expiré."
|
||||
|
||||
# renpy/common/00sync.rpy:397
|
||||
old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself."
|
||||
new "Entrez l'ID sync que vous avez généré.\nN'entrez jamais un ID sync que vous n'avez pas généré vous-même."
|
||||
|
||||
# renpy/common/00sync.rpy:416
|
||||
old "The sync ID is not in the correct format."
|
||||
new "L'ID sync n'est pas dans un format correct."
|
||||
|
||||
# renpy/common/00sync.rpy:436
|
||||
old "The sync could not be decrypted."
|
||||
new "Le sync n'a pas pu être déchiffré."
|
||||
|
||||
# renpy/common/00sync.rpy:459
|
||||
old "The sync belongs to a different game."
|
||||
new "Le sync correspond à un autre jeu."
|
||||
|
||||
# renpy/common/00sync.rpy:464
|
||||
old "The sync contains a file with an invalid name."
|
||||
new "Le sync contient un fichier ayant un nom invalide."
|
||||
|
||||
# renpy/common/00sync.rpy:517
|
||||
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
|
||||
new "Vos sauvegardes vont être téléchargées sur le {a=https://sync.renpy.org}serveur Ren'Py Sync{/a}.\nVoulez-vous continuer ?"
|
||||
|
||||
# renpy/common/00sync.rpy:546
|
||||
old "Enter Sync ID"
|
||||
new "Entrez l'ID Sync"
|
||||
|
||||
# renpy/common/00sync.rpy:557
|
||||
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
|
||||
new "Ceci va contacter le {a=https://sync.renpy.org}serveur Ren'Py Sync{/a}."
|
||||
|
||||
# renpy/common/00sync.rpy:584
|
||||
old "Sync Success"
|
||||
new "Sync réussi"
|
||||
|
||||
# renpy/common/00sync.rpy:587
|
||||
old "The Sync ID is:"
|
||||
new "L'ID Sync est :"
|
||||
|
||||
# renpy/common/00sync.rpy:593
|
||||
old "You can use this ID to download your save on another device.\nThis sync will expire in an hour.\nRen'Py Sync is supported by {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}."
|
||||
new "Vous pouvez utiliser cet ID pour transférer votre sauvegarde sur un autre appareil.\nCe sync expirera dans une heure.\nRen'Py Sync is soutenu par les {a=https://www.renpy.org/sponsors.html}Sponsors de Ren'Py's{/a}."
|
||||
|
||||
# renpy/common/00sync.rpy:619
|
||||
old "Sync Error"
|
||||
new "Erreur de Sync"
|
||||
|
||||
# renpy/common/00webvideo.rpy:5
|
||||
old "Touch to play the video."
|
||||
new "Touchez pour jouer la vidéo."
|
||||
|
||||
# renpy/common/00gui.rpy:456
|
||||
old "This save was created on a different device. Maliciously constructed save files can harm your computer. Do you trust this save's creator and everyone who could have changed the file?"
|
||||
new "Cette sauvegarde a été créée sur un autre appareil. Des faux fichiers de sauvegarde peuvent être utilisés pour endommager votre ordinateur. Faites-vous confiance au créateur de cette sauvegarde et à tous ceux qui auraient pu modifier le fichier ?"
|
||||
|
||||
# renpy/common/00gui.rpy:457
|
||||
old "Do you trust the device the save was created on? You should only choose yes if you are the device's sole user."
|
||||
new "Faites-vous confiance à l'appareil sur lequel cette sauvegarde a été créée ? Vous ne devriez dire oui que si vous en êtes l'unique utilisateur ."
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
translate french strings:
|
||||
translate french strings:
|
||||
|
||||
# _developer/developer.rpym:38
|
||||
old "Developer Menu"
|
||||
@@ -15,7 +14,11 @@ translate french strings:
|
||||
|
||||
# _developer/developer.rpym:47
|
||||
old "Variable Viewer"
|
||||
new "Visualisateur de variable"
|
||||
new "Inspecteur de variables"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:51
|
||||
old "Persistent Viewer"
|
||||
new "Inspecteur de données persistentes"
|
||||
|
||||
# _developer/developer.rpym:49
|
||||
old "Theme Test"
|
||||
@@ -43,15 +46,15 @@ translate french strings:
|
||||
|
||||
# _developer/developer.rpym:217
|
||||
old "Return to the developer menu"
|
||||
new "Retourner au menu du développeur"
|
||||
new "Retourner au menu de développeur"
|
||||
|
||||
# _developer/developer.rpym:373
|
||||
old "Rectangle: %r"
|
||||
new "Rectangle: %r"
|
||||
new "Rectangle : %r"
|
||||
|
||||
# _developer/developer.rpym:378
|
||||
old "Mouse position: %r"
|
||||
new "Mouse position: %r"
|
||||
new "Position de la souris : %r"
|
||||
|
||||
# _developer/developer.rpym:383
|
||||
old "Right-click or escape to quit."
|
||||
@@ -75,11 +78,11 @@ translate french strings:
|
||||
|
||||
# _developer/developer.rpym:532
|
||||
old "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
|
||||
new "\n{color=#cfc}✔ image prédite (bon){/color}\n{color=#fcc}✘ image prédite (mauvais){/color}\n{color=#fff}Glissez pour bouger.{/color}"
|
||||
new "\n{color=#cfc}✔ image prédite (bien){/color}\n{color=#fcc}✘ image non prédite (pas bien){/color}\n{color=#fff}Glissez pour déplacer.{/color}"
|
||||
|
||||
# _developer/inspector.rpym:38
|
||||
old "Displayable Inspector"
|
||||
new "Inspecteur affichable"
|
||||
new "Inspecteur de displayables"
|
||||
|
||||
# _developer/inspector.rpym:61
|
||||
old "Size"
|
||||
@@ -99,11 +102,11 @@ translate french strings:
|
||||
|
||||
# _developer/inspector.rpym:139
|
||||
old "displayable:"
|
||||
new "affichable :"
|
||||
new "displayable :"
|
||||
|
||||
# _developer/inspector.rpym:145
|
||||
old " (no properties affect the displayable)"
|
||||
new " (Aucune propriété n’affecte l’affichage)"
|
||||
new " (Aucune propriété ne s'applique au displayable)"
|
||||
|
||||
# _developer/inspector.rpym:147
|
||||
old " (default properties omitted)"
|
||||
@@ -115,7 +118,7 @@ translate french strings:
|
||||
|
||||
# 00console.rpy:182
|
||||
old "Press <esc> to exit console. Type help for help.\n"
|
||||
new "Pressez « Echap » pour quitter la console. Pressez « Aide » pour afficher l’aide.\n"
|
||||
new "Appuyez sur Échap pour quitter la console. Écrivez help pour afficher l’aide.\n"
|
||||
|
||||
# 00console.rpy:186
|
||||
old "Ren'Py script enabled."
|
||||
@@ -125,9 +128,13 @@ translate french strings:
|
||||
old "Ren'Py script disabled."
|
||||
new "Script Ren'Py désactivé."
|
||||
|
||||
# 00console.rpy:398
|
||||
old "help: show this help"
|
||||
new "aide: Afficher cette aide"
|
||||
# renpy/common/00console.rpy:781
|
||||
old "help: show this help\n help <expr>: show signature and documentation of <expr>"
|
||||
new "help : afficher cette aide\n help <expr>: afficher la signature et la documentation de <expr>"
|
||||
|
||||
# renpy/common/00console.rpy:805
|
||||
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
|
||||
new "Help peut afficher des fonctions non documentées. Veuillez vérifier que la\nfonction ou classe que vous voulez utiliser est bien documentée.\n\n"
|
||||
|
||||
# 00console.rpy:403
|
||||
old "commands:\n"
|
||||
@@ -135,15 +142,15 @@ translate french strings:
|
||||
|
||||
# 00console.rpy:413
|
||||
old " <renpy script statement>: run the statement\n"
|
||||
new " <renpy script statement> : Exécuter cette déclaration\n"
|
||||
new " <renpy script statement> : exécuter cette déclaration\n"
|
||||
|
||||
# 00console.rpy:415
|
||||
old " <python expression or statement>: run the expression or statement"
|
||||
new " <python expression or statement> : Exécuter cette expression ou cette déclaration"
|
||||
new " <expression ou instruction python> : exécuter cette expression ou cette instruction"
|
||||
|
||||
# 00console.rpy:423
|
||||
old "clear: clear the console history"
|
||||
new "clear: Purger l’historique de la console"
|
||||
new "clear : effacer l’historique de la console"
|
||||
|
||||
# 00console.rpy:427
|
||||
old "exit: exit the console"
|
||||
@@ -159,7 +166,7 @@ translate french strings:
|
||||
|
||||
# 00console.rpy:459
|
||||
old "reload: reloads the game, refreshing the scripts"
|
||||
new "reload : Recharge le jeu, rafraîchit les scripts"
|
||||
new "reload : recharge le jeu, rafraîchit les scripts"
|
||||
|
||||
# 00console.rpy:467
|
||||
old "watch <expression>: watch a python expression"
|
||||
@@ -179,7 +186,7 @@ translate french strings:
|
||||
|
||||
# renpy/common/00console.rpy:814
|
||||
old "watch <expression>: watch a python expression\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is"
|
||||
new "watch <expression> : surveille une expression python\n watch short: raccourcit la représentation des expressions (par défaut)\n watch long : affiche la totalité des expressions surveillées"
|
||||
new "watch <expression> : surveille une expression python\n watch short : raccourcit la représentation des expressions (par défaut)\n watch long : affiche la totalité des expressions surveillées"
|
||||
|
||||
# renpy/common/00console.rpy:917
|
||||
old "short: Shorten the representation of objects on the console (default)."
|
||||
@@ -196,3 +203,11 @@ translate french strings:
|
||||
# renpy/common/00console.rpy:929
|
||||
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
|
||||
new "unescape : Désactive l'échappage des symboles unicode dans les chaînes de caractères unicode et les affiche telles quelles (par défaut)."
|
||||
|
||||
# renpy/common/00console.rpy:784
|
||||
old "stack: print the return stack"
|
||||
new "stack : affiche la pile de retour"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:70
|
||||
old "Speech Bubble Editor (Shift+B)"
|
||||
new "Éditeur de bulles de dialogue (Shift+B)"
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
translate french strings:
|
||||
translate french strings:
|
||||
|
||||
# 00gltest.rpy:64
|
||||
old "Graphics Acceleration"
|
||||
@@ -47,7 +46,7 @@ translate french strings:
|
||||
|
||||
# 00gltest.rpy:152
|
||||
old "This computer has a problem displaying graphics: [problem]."
|
||||
new "Cet ordinateur rencontre un problème pour afficher les graphismes: [problem]."
|
||||
new "Cet ordinateur rencontre un problème pour afficher les graphismes : [problem]."
|
||||
|
||||
# 00gltest.rpy:157
|
||||
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display. Updating DirectX could fix this problem."
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
translate french strings:
|
||||
translate french strings:
|
||||
|
||||
# gui.rpy:2
|
||||
old "## Initialization"
|
||||
@@ -456,3 +455,7 @@ translate french strings:
|
||||
# gui/game/gui.rpy:441
|
||||
old "## Change the size and spacing of various things."
|
||||
new "## Changer la taille et l'espacement de diverses choses."
|
||||
|
||||
# gui/game/gui.rpy:14
|
||||
old "## Enable checks for invalid or unstable properties in screens or transforms"
|
||||
new "## Active la vérification de propriétés invalides ou instables dans les screens et transforms"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
|
||||
translate french strings:
|
||||
translate french strings:
|
||||
# game/new_project.rpy:77
|
||||
old "{#language name and font}"
|
||||
new "{font=fonts/Roboto-Light.ttf}Français{/font}"
|
||||
|
||||
# about.rpy:39
|
||||
old "[version!q]"
|
||||
@@ -39,7 +41,7 @@ translate french strings:
|
||||
|
||||
# android.rpy:32
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
new "RAPT a été installé, mais vous devez installer le kit de développement Android pour pouvoir compiler les paquets Android. Choisissez « installer le kit de développement et créer les clés » pour cela."
|
||||
new "RAPT a été installé, mais vous devez installer le kit de développement Android pour pouvoir compiler les paquets Android, avec « Installer le SDK »."
|
||||
|
||||
# android.rpy:33
|
||||
old "RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore."
|
||||
@@ -63,11 +65,11 @@ translate french strings:
|
||||
|
||||
# android.rpy:39
|
||||
old "Attempts to emulate a televison-based Android console, like the OUYA or Fire TV.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button."
|
||||
new "Tentative d’émulation d'une console télé basée sur Android, comme OUYA ou Fire TV.\n\n Le contrôleur est émulé par les touches fléchées, le bouton select par la touche Entrée, le bouton menu par la touche Echap, et le bouton retour par la touche PageUp."
|
||||
new "Tentative d’émulation d'une console télé basée sur Android, comme OUYA ou Fire TV.\n\nLa manette est émulée par les touches fléchées, le bouton select par la touche Entrée, le bouton menu par la touche Echap, et le bouton retour par la touche PageUp."
|
||||
|
||||
# android.rpy:41
|
||||
old "Downloads and installs the Android SDK and supporting packages. Optionally, generates the keys required to sign the package."
|
||||
new "Télécharge et installe le kit de développement Android et les paquets supportés. Optionnellement, génère les clés requises pour signer le paquet."
|
||||
new "Télécharge et installe le kit de développement Android et les paquets requis. Optionnellement, génère les clés requises pour signer le paquet."
|
||||
|
||||
# android.rpy:42
|
||||
old "Configures the package name, version, and other information about this project."
|
||||
@@ -107,7 +109,7 @@ translate french strings:
|
||||
|
||||
# android.rpy:304
|
||||
old "Android: [project.current.name!q]"
|
||||
new "Android: [project.current.name!q]"
|
||||
new "Android : [project.current.name!q]"
|
||||
|
||||
# android.rpy:324
|
||||
old "Emulation:"
|
||||
@@ -207,7 +209,8 @@ translate french strings:
|
||||
|
||||
# choose_theme.rpy:370
|
||||
old "Planetarium"
|
||||
new "Planetarium"
|
||||
# Automatic translation.
|
||||
new "Planétarium"
|
||||
|
||||
# choose_theme.rpy:425
|
||||
old "Choose Theme"
|
||||
@@ -307,7 +310,7 @@ translate french strings:
|
||||
|
||||
# distribute_gui.rpy:194
|
||||
old "Add from clauses to calls, once"
|
||||
new "Add from clauses to calls, once"
|
||||
new "Ajouter des \"from\" aux \"call\""
|
||||
|
||||
# distribute_gui.rpy:195
|
||||
old "Refresh"
|
||||
@@ -315,7 +318,7 @@ translate french strings:
|
||||
|
||||
# distribute_gui.rpy:199
|
||||
old "Upload to itch.io"
|
||||
new "Télécharger (upload) sur itch.io"
|
||||
new "Uploader sur itch.io"
|
||||
|
||||
# distribute_gui.rpy:215
|
||||
old "Build Packages:"
|
||||
@@ -331,7 +334,7 @@ translate french strings:
|
||||
|
||||
# distribute_gui.rpy:241
|
||||
old "Add from clauses to calls"
|
||||
new "Add from clauses to calls"
|
||||
new "Ajouter des \"from\" aux \"call\""
|
||||
|
||||
# distribute_gui.rpy:242
|
||||
old "Force Recompile"
|
||||
@@ -343,7 +346,7 @@ translate french strings:
|
||||
|
||||
# distribute_gui.rpy:250
|
||||
old "Adding from clauses to call statements that do not have them."
|
||||
new "Adding from clauses to call statements that do not have them."
|
||||
new "Ajout de \"from\" aux \"call\" qui n'en ont pas."
|
||||
|
||||
# distribute_gui.rpy:271
|
||||
old "Errors were detected when running the project. Please ensure the project runs without errors before building distributions."
|
||||
@@ -411,7 +414,7 @@ translate french strings:
|
||||
|
||||
# front_page.rpy:93
|
||||
old "refresh"
|
||||
new "rafraichir"
|
||||
new "rafraîchir"
|
||||
|
||||
# front_page.rpy:120
|
||||
old "+ Create New Project"
|
||||
@@ -471,7 +474,7 @@ translate french strings:
|
||||
|
||||
# front_page.rpy:223
|
||||
old "Navigate Script"
|
||||
new "Naviguer dans le script"
|
||||
new "Parcourir le script"
|
||||
|
||||
# front_page.rpy:234
|
||||
old "Check Script (Lint)"
|
||||
@@ -562,8 +565,8 @@ translate french strings:
|
||||
new "Le projet [project_name!q] existe déjà. Choisissez un nom de projet différent."
|
||||
|
||||
# gui7.rpy:341
|
||||
old "What resolution should the project use? Although Ren'Py can scale the window up and down, this is the initial size of the window, the size at which assets should be drawn, and the size at which the assets will be at their sharpest.\n\nThe default of 1280x720 is a reasonable compromise."
|
||||
new "Quelle résolution souhaitez-vous utiliser pour votre projet ? Même si Ren’Py peut agrandir ou diminuer les fenêtres et leurs images à l’échelle, il s’agit là de l’échelle initiale, la taille à laquelle les composants doivent être dessinés et la taille de fenêtre pour lesquelles ils seront le plus précis.\n\nThe La valeur par défaut (1280x720) semble être un compromis raisonnable."
|
||||
old "What resolution should the project use? Although Ren'Py can scale the window up and down, this is the initial size of the window, the size at which assets should be drawn, and the size at which the assets will be at their sharpest.\n\nThe default of [default_size[0]]x[default_size[1]] is a reasonable compromise."
|
||||
new "Quelle résolution souhaitez-vous utiliser pour votre projet ? Même si Ren’Py peut agrandir ou diminuer les fenêtres et leurs images à l’échelle, il s’agit là de l’échelle initiale, la taille à laquelle les composants doivent être dessinés et la taille de fenêtre pour lesquelles ils seront le plus précis.\n\nThe La valeur par défaut ([default_size[0]]x[default_size[1]]) semble être un compromis raisonnable."
|
||||
|
||||
# gui7.rpy:389
|
||||
old "Creating the new project..."
|
||||
@@ -655,11 +658,11 @@ translate french strings:
|
||||
|
||||
# ios.rpy:33
|
||||
old "Attempts to emulate an iPhone.\n\nTouch input is emulated through the mouse, but only when the button is held down."
|
||||
new "Tentatives pour émuler un iPhone.\n\nLe contact tactile est émulé via la souris, mais seulement si le bouton est maintenu pressé."
|
||||
new "Tentative d'émuler un iPhone.\n\nLe contact tactile est émulé via la souris, mais seulement si le bouton est maintenu pressé."
|
||||
|
||||
# ios.rpy:34
|
||||
old "Attempts to emulate an iPad.\n\nTouch input is emulated through the mouse, but only when the button is held down."
|
||||
new "Tentatives pour émuler un iPad.\n\nLe contact tactile est émulé via la souris, mais seulement si le bouton est maintenu pressé."
|
||||
new "Tentative d'émuler un iPad.\n\nLe contact tactile est émulé via la souris, mais seulement si le bouton est maintenu pressé."
|
||||
|
||||
# ios.rpy:36
|
||||
old "Selects the directory where Xcode projects will be placed."
|
||||
@@ -687,7 +690,7 @@ translate french strings:
|
||||
|
||||
# ios.rpy:211
|
||||
old "iOS: [project.current.name!q]"
|
||||
new "iOS: [project.current.name!q]"
|
||||
new "iOS : [project.current.name!q]"
|
||||
|
||||
# ios.rpy:240
|
||||
old "iPhone"
|
||||
@@ -743,7 +746,7 @@ translate french strings:
|
||||
|
||||
# itch.rpy:99
|
||||
old "The butler program was not found."
|
||||
new "Le programme coordonnateur(butler) n'a pas été trouvé."
|
||||
new "Le programme butler n'a pas été trouvé."
|
||||
|
||||
# itch.rpy:99
|
||||
old "Please install the itch.io app, which includes butler, and try again."
|
||||
@@ -887,7 +890,7 @@ translate french strings:
|
||||
|
||||
# preferences.rpy:111
|
||||
old "Text Editor:"
|
||||
new "Éditeur :"
|
||||
new "Éditeur de texte :"
|
||||
|
||||
# preferences.rpy:117
|
||||
old "Text editor: [text]"
|
||||
@@ -895,7 +898,7 @@ translate french strings:
|
||||
|
||||
# preferences.rpy:133
|
||||
old "Update Channel:"
|
||||
new "Version"
|
||||
new "Type de version :"
|
||||
|
||||
# preferences.rpy:153
|
||||
old "Navigation Options:"
|
||||
@@ -923,7 +926,7 @@ translate french strings:
|
||||
|
||||
# preferences.rpy:174
|
||||
old "Show edit file section"
|
||||
new "Afficher la section d’édition de fichier"
|
||||
new "Afficher la section d’édition de fichiers"
|
||||
|
||||
# preferences.rpy:175
|
||||
old "Large fonts"
|
||||
@@ -931,11 +934,11 @@ translate french strings:
|
||||
|
||||
# preferences.rpy:178
|
||||
old "Console output"
|
||||
new "Sortie console"
|
||||
new "Console de sortie"
|
||||
|
||||
# preferences.rpy:199
|
||||
old "Open launcher project"
|
||||
new "Ouvrir le projet lanceur"
|
||||
new "Ouvrir le projet du lanceur"
|
||||
|
||||
# preferences.rpy:213
|
||||
old "Language:"
|
||||
@@ -995,7 +998,7 @@ translate french strings:
|
||||
|
||||
# translations.rpy:104
|
||||
old "The language to work with. This should only contain lower-case ASCII characters and underscores."
|
||||
new "Le langage avec lequel travailler. Cette valeur ne doit contenir que des caractères ASCII en minuscules et des underscores (tiret bas)."
|
||||
new "Le langage avec lequel travailler. Cette valeur ne doit contenir que des caractères ASCII en minuscules et des underscores."
|
||||
|
||||
# translations.rpy:130
|
||||
old "Generate empty strings for translations"
|
||||
@@ -1023,7 +1026,7 @@ translate french strings:
|
||||
|
||||
# translations.rpy:180
|
||||
old "Update Default Interface Translations"
|
||||
new "Met à jour la traduction de l'interface par défaut"
|
||||
new "Mise à jour de la traduction par défaut de l'interface"
|
||||
|
||||
# translations.rpy:200
|
||||
old "The extract command allows you to extract string translations from an existing project into a temporary file.\n\nThe merge command merges extracted translations into another project."
|
||||
@@ -1055,11 +1058,11 @@ translate french strings:
|
||||
|
||||
# translations.rpy:282
|
||||
old "Updating default interface translations..."
|
||||
new "Mise à jour en cours de la traduction de l’interface par défaut..."
|
||||
new "Mise à jour de la traduction par défaut de l’interface en cours..."
|
||||
|
||||
# translations.rpy:306
|
||||
old "Extract Dialogue: [project.current.name!q]"
|
||||
new "Extraire le dialogue : [project.current.name!q]"
|
||||
new "Extraire les dialogues : [project.current.name!q]"
|
||||
|
||||
# translations.rpy:322
|
||||
old "Format:"
|
||||
@@ -1067,7 +1070,7 @@ translate french strings:
|
||||
|
||||
# translations.rpy:330
|
||||
old "Tab-delimited Spreadsheet (dialogue.tab)"
|
||||
new "Feuille de calcul avec pour séparateur des tabulations (dialogue.tab)"
|
||||
new "Feuille de calcul avec des tabulations comme séparateur (dialogue.tab)"
|
||||
|
||||
# translations.rpy:331
|
||||
old "Dialogue Text Only (dialogue.txt)"
|
||||
@@ -1075,11 +1078,11 @@ translate french strings:
|
||||
|
||||
# translations.rpy:344
|
||||
old "Strip text tags from the dialogue."
|
||||
new "Retire les tags (balises) des dialogues."
|
||||
new "Retire les text tags (balises) des dialogues."
|
||||
|
||||
# translations.rpy:345
|
||||
old "Escape quotes and other special characters."
|
||||
new "Protège (escape) les apostrophes et les autres caractères spéciaux."
|
||||
new "Protège (échappe) les apostrophes et les autres caractères spéciaux."
|
||||
|
||||
# translations.rpy:346
|
||||
old "Extract all translatable strings, not just dialogue."
|
||||
@@ -1099,11 +1102,11 @@ translate french strings:
|
||||
|
||||
# updater.rpy:86
|
||||
old "The update channel controls the version of Ren'Py the updater will download. Please select an update channel:"
|
||||
new "Le canal de mise à jour détermine la version de Ren’Py qui sera téléchargée. S’il vous plaît, sélectionnez un canal de mise à jour :"
|
||||
new "Le canal de mise à jour détermine la version de Ren’Py qui sera téléchargée. Sélectionnez un canal de mise à jour :"
|
||||
|
||||
# updater.rpy:91
|
||||
old "Release"
|
||||
new "Version actuelle."
|
||||
new "Stable"
|
||||
|
||||
# updater.rpy:97
|
||||
old "{b}Recommended.{/b} The version of Ren'Py that should be used in all newly-released games."
|
||||
@@ -1111,7 +1114,7 @@ translate french strings:
|
||||
|
||||
# updater.rpy:102
|
||||
old "Prerelease"
|
||||
new "Version de test"
|
||||
new "Pré-stable"
|
||||
|
||||
# updater.rpy:108
|
||||
old "A preview of the next version of Ren'Py that can be used for testing and taking advantage of new features, but not for final releases of games."
|
||||
@@ -1127,7 +1130,7 @@ translate french strings:
|
||||
|
||||
# updater.rpy:126
|
||||
old "Nightly"
|
||||
new "Nightly"
|
||||
new "Journalière"
|
||||
|
||||
# updater.rpy:132
|
||||
old "The bleeding edge of Ren'Py development. This may have the latest features, or might not run at all."
|
||||
@@ -1190,16 +1193,16 @@ translate french strings:
|
||||
new "Le nom de fichier ne peut pas être vide."
|
||||
|
||||
# game/android.rpy:31
|
||||
old "A 64-bit/x64 Java 8 Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Un kit de développement Java 8 64-bit/x64 est requis pour construire des paquets Android depuis Windows. Le JDK est différent du JRE, donc il est possible d'avoir Java sans avoir le JDK.\n\n{a=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}Téléchargez et installez le JDK{/a}, puis redémarrez Ren'Py."
|
||||
old "A 64-bit/x64 Java [JDK_REQUIREMENT] Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=https://www.renpy.org/jdk/[JDK_REQUIREMENT]}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Un kit de développement Java [JDK_REQUIREMENT] 64-bit/x64 est requis pour construire des paquets Android depuis Windows. Le JDK est différent du JRE, donc il est possible d'avoir Java sans avoir le JDK.\n\n{a=https://www.renpy.org/jdk/[JDK_REQUIREMENT]}Téléchargez et installez le JDK{/a}, puis redémarrez Ren'Py."
|
||||
|
||||
# game/android.rpy:50
|
||||
old "Selects the Debug build, which can be accessed through Android Studio. Changing between debug and release builds requires an uninstall from your device."
|
||||
new "Selectionne le build de Debug, qui peut être atteint depuis Android Studio. Passer d'un build debug à un build release nécessitera une désinstallation sur votre appareil."
|
||||
new "Selectionne le build de Debug, qui peut être atteint depuis Android Studio. Passer d'un build debug à un build stable nécessitera une désinstallation sur votre appareil."
|
||||
|
||||
# game/android.rpy:51
|
||||
old "Selects the Release build, which can be uploaded to stores. Changing between debug and release builds requires an uninstall from your device."
|
||||
new "Sélectionne le build de Release, qui peut être posté sur des magasins d'applications. Passer d'un build debug à un build release nécessitera une désinstallation sur votre appareil."
|
||||
new "Sélectionne le build Stable, qui peut être posté sur des magasins d'applications. Passer d'un build debug à un build stable nécessitera une désinstallation sur votre appareil."
|
||||
|
||||
# game/android.rpy:313
|
||||
old "Android: [project.current.display_name!q]"
|
||||
@@ -1275,7 +1278,7 @@ translate french strings:
|
||||
|
||||
# game/androidstrings.rpy:24
|
||||
old "What is the name of the package?\n\nThis is usually of the form com.domain.program or com.domain.email.program. It may only contain ASCII letters and dots. It must contain at least one dot."
|
||||
new "Quel est le nom du package?\n\nIl est généralement de la forme com.domain.program ou com.domain.email.program. Il doit uniquement contenir des lettres ASCII et des points. Il doit contenir au moins un point."
|
||||
new "Quel est le nom du package ?\n\nIl est généralement de la forme com.domain.program ou com.domain.email.program. Il doit uniquement contenir des lettres ASCII et des points. Il doit contenir au moins un point."
|
||||
|
||||
# game/androidstrings.rpy:25
|
||||
old "The package name may not be empty."
|
||||
@@ -1591,7 +1594,7 @@ translate french strings:
|
||||
|
||||
# game/install.rpy:110
|
||||
old "Install Libraries"
|
||||
new "Installer les Bibliothèques"
|
||||
new "Installer des bibliothèques"
|
||||
|
||||
# game/install.rpy:125
|
||||
old "This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed."
|
||||
@@ -1611,7 +1614,7 @@ translate french strings:
|
||||
|
||||
# game/install.rpy:151
|
||||
old "Install Steam Support"
|
||||
new "Installer le upport Steam"
|
||||
new "Installer le support Steam"
|
||||
|
||||
# game/install.rpy:160
|
||||
old "Before installing Steam support, please make sure you are a {a=https://partner.steamgames.com/}Steam partner{/a}."
|
||||
@@ -1627,7 +1630,7 @@ translate french strings:
|
||||
|
||||
# game/interface.rpy:136
|
||||
old "Ren'Py Sponsor Information"
|
||||
new "Information sur les sponsors de Ren'Py Sponsor"
|
||||
new "Informations sur les sponsors de Ren'Py"
|
||||
|
||||
# game/interface.rpy:372
|
||||
old "opening the log file"
|
||||
@@ -1655,7 +1658,7 @@ translate french strings:
|
||||
|
||||
# game/preferences.rpy:145
|
||||
old "Reset window size"
|
||||
new "Réinisialiser la taille de la fenêtre"
|
||||
new "Réinitialiser la taille de la fenêtre"
|
||||
|
||||
# game/preferences.rpy:188
|
||||
old "Force new tutorial"
|
||||
@@ -1772,3 +1775,359 @@ translate french strings:
|
||||
# game/web.rpy:338
|
||||
old "There are known issues with Safari and other Webkit-based browsers that may prevent games from running."
|
||||
new "Des bugs connus avec Safari et d'autres navigateurs basés sur Webkit peuvent empêcher des jeux de fonctionner."
|
||||
|
||||
# game/android.rpy:38
|
||||
old "Please select if you want a Play Bundle (for Google Play), or a Universal APK (for sideloading and other app stores)."
|
||||
new "Faites le choix entre un Play Bundle (pour Google Play), ou un Universal APK (pour d'autres librairies d'applications)."
|
||||
|
||||
# game/android.rpy:53
|
||||
old "Pairs with a device over Wi-Fi, on Android 11+."
|
||||
new "Appaire un autre appareil par Wi-Fi, sur Android 11+."
|
||||
|
||||
# game/android.rpy:54
|
||||
old "Connects to a device over Wi-Fi, on Android 11+."
|
||||
new "Se connecte à un appareil par Wi-Fi, sur Android 11+."
|
||||
|
||||
# game/android.rpy:56
|
||||
old "Builds an Android App Bundle (ABB), intended to be uploaded to Google Play. This can include up to 2GB of data."
|
||||
new "Construit un Android App Bundle (ABB), fait pour être uploadé sur Google Play. Peut inclure jusqu'à 2GB de données."
|
||||
|
||||
# game/android.rpy:57
|
||||
old "Builds a Universal APK package, intended for sideloading and stores other than Google Play. This can include up to 2GB of data."
|
||||
new "Construit un paquet Universal APK, fait pour d'autres librairies que Google Play. Peut inclure jusqu'à 2GB de données."
|
||||
|
||||
# game/android.rpy:384
|
||||
old "Play Bundle"
|
||||
new "Play Bundle"
|
||||
|
||||
# game/android.rpy:388
|
||||
old "Universal APK"
|
||||
new "Universal APK"
|
||||
|
||||
# game/android.rpy:445
|
||||
old "Wi-Fi Debugging Pair"
|
||||
new "Debug d'appairage Wi-Fi"
|
||||
|
||||
# game/android.rpy:449
|
||||
old "Wi-Fi Debugging Connect"
|
||||
new "Debug de connexion Wi-Fi"
|
||||
|
||||
# game/android.rpy:537
|
||||
old "Wi-Fi Pairing Code"
|
||||
new "Code d'appairage Wi-Fi"
|
||||
|
||||
# game/android.rpy:537
|
||||
old "If supported, this can be found in 'Developer options', 'Wireless debugging', 'Pair device with pairing code'."
|
||||
new "Si supporté, peut être trouvé dans 'Options de développement', 'Débogage sans fil', 'Appairer appareil avec un code'."
|
||||
|
||||
# game/android.rpy:544
|
||||
old "Pairing Host & Port"
|
||||
new "Hôte d'appairage & Port"
|
||||
|
||||
# game/android.rpy:560
|
||||
old "IP Address & Port"
|
||||
new "Addresse IP & Port"
|
||||
|
||||
# game/android.rpy:560
|
||||
old "If supported, this can be found in 'Developer options', 'Wireless debugging'."
|
||||
new "Si supporté, peut être trouvé dans 'Options de développement', 'Débogage sans fil'."
|
||||
|
||||
# game/gui7.rpy:311
|
||||
old "{size=-4}\n\nThis will not overwrite gui/main_menu.png, gui/game_menu.png, and gui/window_icon.png, but will create files that do not exist.{/size}"
|
||||
new "{size=-4}\n\nCeci ne remplacera pas gui/main_menu.png, gui/game_menu.png, ou gui/window_icon.png, mais créera des fichiers s'ils n'existent pas.{/size}"
|
||||
|
||||
# game/ios.rpy:339
|
||||
old "There are known issues with the iOS simulator on Apple Silicon. Please test on x86_64 or iOS devices."
|
||||
new "Des erreurs sont rapportées sur le simulateur d'iOS sur Apple Silicon. Préférez des appareils x86_64 ou iOS."
|
||||
|
||||
# game/android.rpy:38
|
||||
old "RAPT has been installed, but a bundle key hasn't been configured. Please create a new key, or restore bundle.keystore."
|
||||
new "RAPT a été installé, mais aucune clé de paquet n'a été configurée. Créez une nouvelle clé, ou restaurez bundle.keystore."
|
||||
|
||||
# game/androidstrings.rpy:16
|
||||
old "I'm installing the bundle."
|
||||
new "J'installe le paquet."
|
||||
|
||||
# game/androidstrings.rpy:30
|
||||
old "How much RAM do you want to allocate to Gradle?\n\nThis must be a positive integer number."
|
||||
new "Combien de RAM voulez-vous allouer à Gradle ?\n\nEntrez un nombre entier positif."
|
||||
|
||||
# game/androidstrings.rpy:31
|
||||
old "The RAM size must contain only numbers."
|
||||
new "La taille de RAM ne doit contenir que des chiffres."
|
||||
|
||||
# game/androidstrings.rpy:55
|
||||
old "I can create an application signing key for you. This key is required to create Universal APK for sideloading and stores other than Google Play.\n\nDo you want to create a key?"
|
||||
new "Je paux vous créer une clé de signature d'application. Cette clé est nécessaire pour créer des Universal APK pour des autres stores que Google Play.\n\nVoulez-vous créer une clé ?"
|
||||
|
||||
# game/androidstrings.rpy:59
|
||||
old "I can create a bundle signing key for you. This key is required to build an Android App Bundle (AAB) for upload to Google Play.\n\nDo you want to create a key?"
|
||||
new "Je peux vous créer une clé de signature de paquets. Cette clé est nécessaire pour construire un Android App Bundle (AAB) pour uploader sur Google Play.\n\nVoulez-vous créer une clé ?"
|
||||
|
||||
# game/androidstrings.rpy:60
|
||||
old "I will create the key in the bundle.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of bundle.keystore, and keep it in a safe place?"
|
||||
new "Je vais créer la clé dans le fichier bundle.keystore.\n\nVous devez conserver ce fichier. Sans lui, vous ne pourrez plus mettre à jour votre application.\n\nVous devez aussi la garder cachée. Si des malotrus accèdent à ce fichier, ils pourront faire des faussez versions de votre application, et potentiellement voler les données des utilisateurs.\n\nAllez-vous faire une sauvegarde de bundle.keystore, et le garder bien caché ?"
|
||||
|
||||
# game/androidstrings.rpy:61
|
||||
old "Could not create bundle.keystore. Is keytool in your path?"
|
||||
new "Impossible de créer bundle.keystore. Est-ce que le keytool est dans votre path ?"
|
||||
|
||||
# game/preferences.rpy:206
|
||||
old "Daily check for update"
|
||||
new "Vérification quotidienne des mises à jour"
|
||||
|
||||
# game/android.rpy:55
|
||||
old "Lists the connected devices."
|
||||
new "Liste les appareils connectés."
|
||||
|
||||
# game/android.rpy:58
|
||||
old "Disconnects a device connected over Wi-Fi."
|
||||
new "Déconnecte un appareil connecté via Wi-Fi."
|
||||
|
||||
# game/android.rpy:453
|
||||
old "List Devices"
|
||||
new "Lister les appareils"
|
||||
|
||||
# game/android.rpy:465
|
||||
old "Wi-Fi Debugging Disconnect"
|
||||
new "Debug : déconnexion Wi-Fi"
|
||||
|
||||
# game/android.rpy:603
|
||||
old "This can be found in 'List Devices'."
|
||||
new "Introuvable dans 'Lister les appareils'."
|
||||
|
||||
# game/androidstrings.rpy:17
|
||||
old "Installing the bundle appears to have failed."
|
||||
new "L'installation du bundle semble avoir échoué."
|
||||
|
||||
# game/androidstrings.rpy:19
|
||||
old "Launching the app appears to have failed."
|
||||
new "Le lancement de l'app semble avoir échoué."
|
||||
|
||||
# game/androidstrings.rpy:44
|
||||
old "The version of Java on your computer does not appear to be JDK 8, which is the only version supported by the Android SDK. If you need to install JDK 8, you can download it from:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
|
||||
new "La version de Java présente sur votre ordinateur ne semble pas être JDK 8, qui est la seule version supportée par le SDK Android. Si vous devez installer JDK 8, vous pouvez le télécharger ici :\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nVous pouvez aussi régler la variable d'environnement JAVA_HOME sur une autre version de Java."
|
||||
|
||||
# game/updater.rpy:109
|
||||
old "• {a=https://www.renpy.org/doc/html/changelog.html}View change log{/a}"
|
||||
new "• {a=https://www.renpy.org/doc/html/changelog.html}Regarder le changelog{/a}"
|
||||
|
||||
# game/updater.rpy:111
|
||||
old "• {a=https://www.renpy.org/dev-doc/html/changelog.html}View change log{/a}"
|
||||
new "• {a=https://www.renpy.org/dev-doc/html/changelog.html}Regarder le changelog{/a}"
|
||||
|
||||
# game/android.rpy:60
|
||||
old "Removes Android temporary files."
|
||||
new "Retirer les fichiers temporaires Android."
|
||||
|
||||
# game/android.rpy:472
|
||||
old "Clean"
|
||||
new "Nettoyer"
|
||||
|
||||
# game/android.rpy:628
|
||||
old "Cleaning up Android project."
|
||||
new "Nettoyage du projet Android."
|
||||
|
||||
# game/androidstrings.rpy:43
|
||||
old "I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Please make sure you installed the 'JavaSoft (Oracle) registry keys'.\n\nWithout a working JDK, I can't continue."
|
||||
new "Impossible d'utiliser javac pour compiler un fichier de test. Si vous n'avez pas installé Java Development Kit, téléchargez-le ici :\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nLe JDK est différent du JRE, donc il est possible d'avoir Java sans avoir le JDK. Vérifiez que vous avez installé les 'JavaSoft (Oracle) registry keys'.\n\nSans un JDK fonctionnel, je ne peux pas continuer."
|
||||
|
||||
# game/androidstrings.rpy:64
|
||||
old "I've opened the directory containing android.keystore and bundle.keystore. Please back them up, and keep them in a safe place."
|
||||
new "J'ai ouvert le répertoire contenant android.keystore et bundle.keystore. Sauvegardez-les, et gardez-les dans un endroit sûr."
|
||||
|
||||
# game/choose_directory.rpy:67
|
||||
old "Select Projects Directory"
|
||||
new "Sélectionner le répertoire des Projets"
|
||||
|
||||
# game/distribute.rpy:1674
|
||||
old "Copying files..."
|
||||
new "Copie des fichiers..."
|
||||
|
||||
# game/distribute_gui.rpy:195
|
||||
old "Update old-game"
|
||||
new "Mettre à jour old-game"
|
||||
|
||||
# game/editor.rpy:152
|
||||
old "A modern editor with many extensions including advanced Ren'Py integration."
|
||||
new "Un éditeur moderne avec beaucoup d'extensions, y compris des intégrations Ren'Py avancées."
|
||||
|
||||
# game/editor.rpy:153
|
||||
old "A modern editor with many extensions including advanced Ren'Py integration.\n{a=jump:reinstall_vscode}Upgrade Visual Studio Code to the latest version.{/a}"
|
||||
new "Un éditeur moderne avec beaucoup d'extensions, y compris des intégrations Ren'Py avancées.\n{a=jump:reinstall_vscode}Mettez Visual Studio Code à jour.{/a}"
|
||||
|
||||
# game/editor.rpy:162
|
||||
old "Visual Studio Code"
|
||||
new "Visual Studio Code"
|
||||
|
||||
# game/editor.rpy:162
|
||||
old "Up to 110 MB download required."
|
||||
new "Jusqu'à 110 Mo nécessaires pour le téléchargement."
|
||||
|
||||
# game/editor.rpy:175
|
||||
old "A modern and approachable text editor."
|
||||
new "Un éditeur de texte moderne et accessible."
|
||||
|
||||
# game/editor.rpy:187
|
||||
old "Atom"
|
||||
new "Atom"
|
||||
|
||||
# game/editor.rpy:200
|
||||
old "jEdit"
|
||||
new "jEdit"
|
||||
|
||||
# game/editor.rpy:209
|
||||
old "Visual Studio Code (System)"
|
||||
new "Visual Studio Code (Système)"
|
||||
|
||||
# game/editor.rpy:209
|
||||
old "Uses a copy of Visual Studio Code that you have installed outside of Ren'Py. It's recommended you install the language-renpy extension to add support for Ren'Py files."
|
||||
new "Utilise une copie de Visual Studio Code que vous avez installé en-dehors de Ren'Py. Il est recommandé d'installer l'extension language-renpy pour ajouter la gestion des fichiers Ren'Py."
|
||||
|
||||
# game/installer.rpy:10
|
||||
old "Downloading [extension.download_file]."
|
||||
new "Téléchargement de [extension.download_file]."
|
||||
|
||||
# game/installer.rpy:11
|
||||
old "Could not download [extension.download_file] from [extension.download_url]:\n{b}[extension.download_error]"
|
||||
new "Impossible de télécharger [extension.download_file] depuis [extension.download_url] :\n{b}[extension.download_error]"
|
||||
|
||||
# game/installer.rpy:12
|
||||
old "The downloaded file [extension.download_file] from [extension.download_url] is not correct."
|
||||
new "le fichier [extension.download_file] téléchargé depuis [extension.download_url] est incorrect."
|
||||
|
||||
# game/interface.rpy:124
|
||||
old "[interface.version]"
|
||||
new "[interface.version]"
|
||||
|
||||
# game/preferences.rpy:154
|
||||
old "Clean temporary files"
|
||||
new "Nettoyer les fichiers temporaires"
|
||||
|
||||
# game/preferences.rpy:256
|
||||
old "Cleaning temporary files..."
|
||||
new "Nettoyage des fichiers temporaires..."
|
||||
|
||||
# game/project.rpy:280
|
||||
old "This may be because the project is not writeable."
|
||||
new "Il est possible que le projet ne soit pas accessible en écriture."
|
||||
|
||||
# game/translations.rpy:391
|
||||
old "Language (or None for the default language):"
|
||||
new "Langue (or None pour la langue par défaut) :"
|
||||
|
||||
# game/web.rpy:344
|
||||
old "This feature is not supported in Ren'Py 8."
|
||||
new "Cette fonctionnalité n'est pas supportée dans Ren'Py 8."
|
||||
|
||||
# game/web.rpy:344
|
||||
old "We will restore support in a future release of Ren'Py 8. Until then, please use Ren'Py 7 for web support."
|
||||
new "La version web sera supportée à nouveau dans une future version de Ren'Py 8. En attendant, utilisez Ren'Py 7 pour des distributions web."
|
||||
|
||||
# game/preferences.rpy:104
|
||||
old "General"
|
||||
new "Général"
|
||||
|
||||
# game/preferences.rpy:105
|
||||
old "Options"
|
||||
new "Options"
|
||||
|
||||
# game/preferences.rpy:244
|
||||
old "Launcher Theme:"
|
||||
new "Thème du lanceur :"
|
||||
|
||||
# game/preferences.rpy:254
|
||||
old "Information about creating a custom theme can be found {a=https://www.renpy.org/doc/html/skins.html}in the Ren'Py Documentation{/a}."
|
||||
new "Plus d'informations sur comment créer un thème personnalisé se trouvent {a=https://www.renpy.org/doc/html/skins.html}dans la documentation de Ren'Py{/a}."
|
||||
|
||||
# game/preferences.rpy:271
|
||||
old "Install Libraries:"
|
||||
new "Installer des bibliothèques :"
|
||||
|
||||
# game/updater.rpy:64
|
||||
old "Release (Ren'Py 8, Python 3)"
|
||||
new "Stable (Ren'Py 8, Python 3)"
|
||||
|
||||
# game/updater.rpy:65
|
||||
old "Release (Ren'Py 7, Python 2)"
|
||||
new "Stable (Ren'Py 7, Python 2)"
|
||||
|
||||
# game/updater.rpy:69
|
||||
old "Prerelease (Ren'Py 8, Python 3)"
|
||||
new "Pré-stable (Ren'Py 8, Python 3)"
|
||||
|
||||
# game/updater.rpy:70
|
||||
old "Prerelease (Ren'Py 7, Python 2)"
|
||||
new "Pré-stable (Ren'Py 7, Python 2)"
|
||||
|
||||
# game/updater.rpy:77
|
||||
old "Nightly (Ren'Py 8, Python 3)"
|
||||
new "Journalière (Ren'Py 8, Python 3)"
|
||||
|
||||
# game/updater.rpy:78
|
||||
old "Nightly (Ren'Py 7, Python 2)"
|
||||
new "Journalière (Ren'Py 7, Python 2)"
|
||||
|
||||
# game/preferences.rpy:327
|
||||
old "{#in language font}Welcome! Please choose a language"
|
||||
new "{font=fonts/Roboto-Light.ttf}Bienvenue ! Choisissez une langue{/font}"
|
||||
|
||||
# game/preferences.rpy:327
|
||||
old "{#in language font}Start using Ren'Py in [lang_name]"
|
||||
new "{font=fonts/Roboto-Light.ttf}Commencez à utiliser Ren'Py en [lang_name]{/font}"
|
||||
|
||||
# game/distribute_gui.rpy:231
|
||||
old "(DLC)"
|
||||
new "(DLC)"
|
||||
|
||||
# game/project.rpy:46
|
||||
old "Lint checks your game for potential mistakes, and gives you statistics."
|
||||
new "Lint vérifie votre jeu pour des erreurs communes, et génère des statistiques."
|
||||
|
||||
# game/web.rpy:484
|
||||
old "Creating package..."
|
||||
new "Création du package..."
|
||||
|
||||
# game/android.rpy:37
|
||||
old "RAPT has been installed, but a key hasn't been configured. Please generate new keys, or copy android.keystore and bundle.keystore to the base directory."
|
||||
new "RAPT a été installé, mais aucune clé n’a été configurée. Veuillez générer de nouvelles clés, ou copier android.keystore and bundle.keystore dans le dossier racine du projet."
|
||||
|
||||
# game/android.rpy:44
|
||||
old "Attempts to emulate a televison-based Android console.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button."
|
||||
new "Tentative d’émulation d'une console télé basée sur Android.\n\nLa manette est émulée par les touches fléchées, le bouton select par la touche Entrée, le bouton menu par la touche Echap, et le bouton retour par la touche PageUp."
|
||||
|
||||
# game/android.rpy:46
|
||||
old "Downloads and installs the Android SDK and supporting packages."
|
||||
new "Télécharge et installe le kit de développement Android et les paquets requis."
|
||||
|
||||
# game/android.rpy:47
|
||||
old "Generates the keys required to sign the package."
|
||||
new "Génère les clés requises pour signer le package."
|
||||
|
||||
# game/android.rpy:381
|
||||
old "Install SDK"
|
||||
new "Installer le SDK"
|
||||
|
||||
# game/android.rpy:385
|
||||
old "Generate Keys"
|
||||
new "Générer les clés"
|
||||
|
||||
# game/androidstrings.rpy:32
|
||||
old "How much RAM (in GB) do you want to allocate to Gradle?\nThis must be a positive integer number."
|
||||
new "Combien de RAM (in GB) voulez-vous allouer à Gradle ?\nEntrez un nombre entier positif."
|
||||
|
||||
# game/androidstrings.rpy:33
|
||||
old "The RAM size must contain only numbers and be positive."
|
||||
new "La taille de RAM ne doit contenir que des chiffres et être positive."
|
||||
|
||||
# game/androidstrings.rpy:63
|
||||
old "I found an android.keystore file in the rapt directory. Do you want to use this file?"
|
||||
new "J'ai trouvé un fichier android.keystore dans le dossier \"rapt\". Voulez-vous l'utiliser ?"
|
||||
|
||||
# game/androidstrings.rpy:66
|
||||
old "\n\nSaying 'No' will prevent key creation."
|
||||
new "\n\nRépondre \"Non\" empêchera la création de clés."
|
||||
|
||||
# game/androidstrings.rpy:69
|
||||
old "I found a bundle.keystore file in the rapt directory. Do you want to use this file?"
|
||||
new "J'ai trouvé un fichier bundle.keystore dans le dossier \"rapt\". Voulez-vous l'utiliser ?"
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
translate french strings:
|
||||
translate french strings:
|
||||
|
||||
# _layout/classic_joystick_preferences.rpym:94
|
||||
old "Joystick Mapping"
|
||||
@@ -24,4 +23,3 @@ translate french strings:
|
||||
# _compat/gamemenu.rpym:362
|
||||
old "Next"
|
||||
new "Suivant"
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
translate french strings:
|
||||
translate french strings:
|
||||
|
||||
# options.rpy:1
|
||||
old "## This file contains options that can be changed to customize your game."
|
||||
@@ -45,9 +44,9 @@ translate french strings:
|
||||
old "## Sounds and music"
|
||||
new "## Sons et musiques"
|
||||
|
||||
# options.rpy:46
|
||||
old "## These three variables control which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
|
||||
new "## Ces trois variables contrôlent quels mixeurs sont affichés au joueur par défaut. Configurer l’un de ceux-ci à False (Faux) cachera le mixeur concerné."
|
||||
# gui/game/options.rpy:47
|
||||
old "## These three variables control, among other things, which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
|
||||
new "## Ces trois variables contrôlent, entre autres, quels mixeurs sont affichés au joueur par défaut. Configurer l’un de ceux-ci à False (Faux) cachera le mixeur concerné."
|
||||
|
||||
# options.rpy:55
|
||||
old "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
|
||||
@@ -155,7 +154,7 @@ translate french strings:
|
||||
|
||||
# options.rpy:165
|
||||
old "## In a pattern:"
|
||||
new "## Dans le format:"
|
||||
new "## Dans le format :"
|
||||
|
||||
# options.rpy:167
|
||||
old "## / is the directory separator."
|
||||
@@ -186,8 +185,8 @@ translate french strings:
|
||||
new "## Les fichiers correspondant au format de documentation sont dupliqués pour les compilation sur Mac, c'est pourquoi ils apparaissent deux fois dans l’archive zip."
|
||||
|
||||
# options.rpy:196
|
||||
old "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
|
||||
new "## Une clé de licence A Google Play est requise pour télécharger les fichiers et permettre les achats dans l'application. Vous pourrez la trouver sur la page « Services & APIs » de la console de développement Google Play."
|
||||
old "## A Google Play license key is required to perform in-app purchases. It can be found in the Google Play developer console, under \"Monetize\" > \"Monetization Setup\" > \"Licensing\"."
|
||||
new "## Une clé de licence Google Play est requise pour permettre les achats depuis l'application. Vous pourrez la trouver dans la console de développement Google Play, sous \"Monétiser\" > \"Configuration de la monétisation\" > \"Licences\"."
|
||||
|
||||
# options.rpy:203
|
||||
old "## The username and project name associated with an itch.io project, separated by a slash."
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
translate french strings:
|
||||
translate french strings:
|
||||
|
||||
# screens.rpy:9
|
||||
old "## Styles"
|
||||
@@ -35,7 +34,7 @@ translate french strings:
|
||||
|
||||
# screens.rpy:174
|
||||
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
|
||||
new "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
|
||||
new "## Cet écran doit créer une entrée affichable avec l'id \"input\" pour accepter les différents paramètres."
|
||||
|
||||
# screens.rpy:177
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#input"
|
||||
@@ -55,7 +54,7 @@ translate french strings:
|
||||
|
||||
# screens.rpy:221
|
||||
old "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
|
||||
new "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
|
||||
new "## Lorsque cette option est activée, les sous-titres du menu sont dits par \"narrator\". Si cette valeur est fausse, les légendes du menu seront affichées sous forme de boutons vides."
|
||||
|
||||
# screens.rpy:244
|
||||
old "## Quick Menu screen"
|
||||
@@ -163,7 +162,7 @@ translate french strings:
|
||||
|
||||
# screens.rpy:369
|
||||
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
|
||||
new "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
|
||||
new "## L'instruction use inclut un autre écran à l'intérieur de celui-ci. Le vrai contenu du menu principal se trouve dans l'écran \"navigation\"."
|
||||
|
||||
# screens.rpy:413
|
||||
old "## Game Menu screen"
|
||||
@@ -171,11 +170,11 @@ translate french strings:
|
||||
|
||||
# screens.rpy:415
|
||||
old "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
|
||||
new "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
|
||||
new "## Ceci présente la structure commune de base d'un écran du menu de jeu. Il est appelé en lui passant le titre de l'écran, et il affiche l'arrière-plan, le titre et la navigation."
|
||||
|
||||
# screens.rpy:418
|
||||
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
new "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". This screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
new "## Le paramètre de défilement peut être None, ou \"viewport\" ou \"vpgrid\". Cet écran est destiné à être utilisé avec un ou plusieurs enfants, qui sont transclus (placés) à l'intérieur de l'écran."
|
||||
|
||||
# screens.rpy:476
|
||||
old "Return"
|
||||
@@ -183,7 +182,7 @@ translate french strings:
|
||||
|
||||
# screens.rpy:539
|
||||
old "## About screen"
|
||||
new "## Écran « À propos... »"
|
||||
new "## Écran « À propos... »"
|
||||
|
||||
# screens.rpy:541
|
||||
old "## This screen gives credit and copyright information about the game and Ren'Py."
|
||||
@@ -451,7 +450,7 @@ translate french strings:
|
||||
|
||||
# screens.rpy:1024
|
||||
old "Toggles dialogue skipping."
|
||||
new "Active ou désactives les «sauts des dialogues»."
|
||||
new "Active ou désactive les «sauts des dialogues»."
|
||||
|
||||
# screens.rpy:1027
|
||||
old "Page Up"
|
||||
@@ -622,8 +621,8 @@ translate french strings:
|
||||
new "## Les dialogues sont affichés soit dans une vpgrid soit dans une vbox."
|
||||
|
||||
# screens.rpy:1314
|
||||
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
|
||||
new "## Si fourni, affiche le menu. Le menu peut s’afficher de manière incorrecte si config.narrator_menu est initialisé à True, comme c’est le cas au-dessus."
|
||||
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True."
|
||||
new "## Si fourni, affiche le menu. Le menu peut s’afficher de manière incorrecte si config.narrator_menu est initialisé à True."
|
||||
|
||||
# screens.rpy:1344
|
||||
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
|
||||
@@ -716,3 +715,27 @@ translate french strings:
|
||||
# gui/game/screens.rpy:1292
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#nvl"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#nvl"
|
||||
|
||||
# gui/game/screens.rpy:1049
|
||||
old "Opens the accessibility menu."
|
||||
new "Ouvre le menu d'accessibilité."
|
||||
|
||||
# gui/game/screens.rpy:1397
|
||||
old "## Bubble screen"
|
||||
new "## Screen des bulles"
|
||||
|
||||
# gui/game/screens.rpy:1412
|
||||
old "## The bubble screen is used to display dialogue to the player when using speech bubbles. The bubble screen takes the same parameters as the say screen, must create a displayable with the id of \"what\", and can create displayables with the \"namebox\", \"who\", and \"window\" ids."
|
||||
new "## Le screen des bulles est utilisé pour afficher des dialogues en utilisant des bulles de dialogue. Ce screen prend les mêmes paramètres que le screen say, doit prévoir un displayable avec l'id \"what\", et peut créer des displayables avec les ids \"namebox\", \"who\", et \"window\"."
|
||||
|
||||
# gui/game/screens.rpy:1417
|
||||
old "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
|
||||
new "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
|
||||
|
||||
# gui/game/screens.rpy:676
|
||||
old "Upload Sync"
|
||||
new "Uploader Sync"
|
||||
|
||||
# gui/game/screens.rpy:680
|
||||
old "Download Sync"
|
||||
new "Télécharger Sync"
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
translate french python:
|
||||
gui.FONT_SCALE = .9
|
||||
|
||||
@@ -3,71 +3,71 @@ translate german strings:
|
||||
|
||||
# 00action_file.rpy:26
|
||||
old "{#weekday}Monday"
|
||||
new "{#weekday}Monday"
|
||||
new "{#weekday}Montag"
|
||||
|
||||
# 00action_file.rpy:26
|
||||
old "{#weekday}Tuesday"
|
||||
new "{#weekday}Tuesday"
|
||||
new "{#weekday}Dienstag"
|
||||
|
||||
# 00action_file.rpy:26
|
||||
old "{#weekday}Wednesday"
|
||||
new "{#weekday}Wednesday"
|
||||
new "{#weekday}Mittwoch"
|
||||
|
||||
# 00action_file.rpy:26
|
||||
old "{#weekday}Thursday"
|
||||
new "{#weekday}Thursday"
|
||||
new "{#weekday}Donnerstag"
|
||||
|
||||
# 00action_file.rpy:26
|
||||
old "{#weekday}Friday"
|
||||
new "{#weekday}Friday"
|
||||
new "{#weekday}Freitag"
|
||||
|
||||
# 00action_file.rpy:26
|
||||
old "{#weekday}Saturday"
|
||||
new "{#weekday}Saturday"
|
||||
new "{#weekday}Samstag"
|
||||
|
||||
# 00action_file.rpy:26
|
||||
old "{#weekday}Sunday"
|
||||
new "{#weekday}Sunday"
|
||||
new "{#weekday}Sonntag"
|
||||
|
||||
# 00action_file.rpy:37
|
||||
old "{#weekday_short}Mon"
|
||||
new "{#weekday_short}Mon"
|
||||
new "{#weekday_short}Mo"
|
||||
|
||||
# 00action_file.rpy:37
|
||||
old "{#weekday_short}Tue"
|
||||
new "{#weekday_short}Tue"
|
||||
new "{#weekday_short}Di"
|
||||
|
||||
# 00action_file.rpy:37
|
||||
old "{#weekday_short}Wed"
|
||||
new "{#weekday_short}Wed"
|
||||
new "{#weekday_short}Mi"
|
||||
|
||||
# 00action_file.rpy:37
|
||||
old "{#weekday_short}Thu"
|
||||
new "{#weekday_short}Thu"
|
||||
new "{#weekday_short}Do"
|
||||
|
||||
# 00action_file.rpy:37
|
||||
old "{#weekday_short}Fri"
|
||||
new "{#weekday_short}Fri"
|
||||
new "{#weekday_short}Fr"
|
||||
|
||||
# 00action_file.rpy:37
|
||||
old "{#weekday_short}Sat"
|
||||
new "{#weekday_short}Sat"
|
||||
new "{#weekday_short}Sa"
|
||||
|
||||
# 00action_file.rpy:37
|
||||
old "{#weekday_short}Sun"
|
||||
new "{#weekday_short}Sun"
|
||||
new "{#weekday_short}So"
|
||||
|
||||
# 00action_file.rpy:47
|
||||
old "{#month}January"
|
||||
new "{#month}January"
|
||||
new "{#month}Januar"
|
||||
|
||||
# 00action_file.rpy:47
|
||||
old "{#month}February"
|
||||
new "{#month}February"
|
||||
new "{#month}Februar"
|
||||
|
||||
# 00action_file.rpy:47
|
||||
old "{#month}March"
|
||||
new "{#month}March"
|
||||
new "{#month}März"
|
||||
|
||||
# 00action_file.rpy:47
|
||||
old "{#month}April"
|
||||
@@ -75,15 +75,15 @@ translate german strings:
|
||||
|
||||
# 00action_file.rpy:47
|
||||
old "{#month}May"
|
||||
new "{#month}May"
|
||||
new "{#month}Mai"
|
||||
|
||||
# 00action_file.rpy:47
|
||||
old "{#month}June"
|
||||
new "{#month}June"
|
||||
new "{#month}Juni"
|
||||
|
||||
# 00action_file.rpy:47
|
||||
old "{#month}July"
|
||||
new "{#month}July"
|
||||
new "{#month}Juli"
|
||||
|
||||
# 00action_file.rpy:47
|
||||
old "{#month}August"
|
||||
@@ -95,7 +95,7 @@ translate german strings:
|
||||
|
||||
# 00action_file.rpy:47
|
||||
old "{#month}October"
|
||||
new "{#month}October"
|
||||
new "{#month}Oktober"
|
||||
|
||||
# 00action_file.rpy:47
|
||||
old "{#month}November"
|
||||
@@ -103,7 +103,7 @@ translate german strings:
|
||||
|
||||
# 00action_file.rpy:47
|
||||
old "{#month}December"
|
||||
new "{#month}December"
|
||||
new "{#month}Dezember"
|
||||
|
||||
# 00action_file.rpy:63
|
||||
old "{#month_short}Jan"
|
||||
@@ -115,7 +115,7 @@ translate german strings:
|
||||
|
||||
# 00action_file.rpy:63
|
||||
old "{#month_short}Mar"
|
||||
new "{#month_short}Mar"
|
||||
new "{#month_short}Mär"
|
||||
|
||||
# 00action_file.rpy:63
|
||||
old "{#month_short}Apr"
|
||||
@@ -123,7 +123,7 @@ translate german strings:
|
||||
|
||||
# 00action_file.rpy:63
|
||||
old "{#month_short}May"
|
||||
new "{#month_short}May"
|
||||
new "{#month_short}Mai"
|
||||
|
||||
# 00action_file.rpy:63
|
||||
old "{#month_short}Jun"
|
||||
@@ -143,7 +143,7 @@ translate german strings:
|
||||
|
||||
# 00action_file.rpy:63
|
||||
old "{#month_short}Oct"
|
||||
new "{#month_short}Oct"
|
||||
new "{#month_short}Okt"
|
||||
|
||||
# 00action_file.rpy:63
|
||||
old "{#month_short}Nov"
|
||||
@@ -151,7 +151,7 @@ translate german strings:
|
||||
|
||||
# 00action_file.rpy:63
|
||||
old "{#month_short}Dec"
|
||||
new "{#month_short}Dec"
|
||||
new "{#month_short}Dez"
|
||||
|
||||
# 00action_file.rpy:235
|
||||
old "%b %d, %H:%M"
|
||||
@@ -187,19 +187,19 @@ translate german strings:
|
||||
|
||||
# 00gui.rpy:233
|
||||
old "Are you sure you want to end the replay?"
|
||||
new "Are you sure you want to end the replay?"
|
||||
new "Sind Sie sicher, dass sie die Szenen-Wiederholung beenden möchten?"
|
||||
|
||||
# 00gui.rpy:234
|
||||
old "Are you sure you want to begin skipping?"
|
||||
new "Sind Sie sicher, dass Sie vorspulen möchten?"
|
||||
new "Sind Sie sicher, dass Sie Text überspringen möchten?"
|
||||
|
||||
# 00gui.rpy:235
|
||||
old "Are you sure you want to skip to the next choice?"
|
||||
new "Sind Sie sicher, dass Sie zur nächsten Auswahl vorspulen möchten?"
|
||||
new "Sind Sie sicher, dass Sie zur nächsten Auswahl springen möchten?"
|
||||
|
||||
# 00gui.rpy:236
|
||||
old "Are you sure you want to skip unseen dialogue to the next choice?"
|
||||
new "Are you sure you want to skip unseen dialogue to the next choice?"
|
||||
new "Sind Sie sicher, dass sie ungesehenen Dialog bis zur nächsten Entscheidung überspringen möchten?"
|
||||
|
||||
# 00keymap.rpy:250
|
||||
old "Saved screenshot as %s."
|
||||
@@ -207,75 +207,78 @@ translate german strings:
|
||||
|
||||
# 00library.rpy:142
|
||||
old "Self-voicing disabled."
|
||||
new "Self-voicing disabled."
|
||||
new "Sprachausgabe deaktiviert."
|
||||
|
||||
# 00library.rpy:143
|
||||
old "Clipboard voicing enabled. "
|
||||
new "Clipboard voicing enabled. "
|
||||
# Automatic translation.
|
||||
new "Zwischenablage-Voicing aktiviert. "
|
||||
|
||||
# 00library.rpy:144
|
||||
old "Self-voicing enabled. "
|
||||
new "Self-voicing enabled. "
|
||||
new "Sprachausgabe aktiviert. "
|
||||
|
||||
# 00library.rpy:179
|
||||
old "Skip Mode"
|
||||
new "Vorspulen"
|
||||
new "Skip-Modus"
|
||||
|
||||
# 00library.rpy:262
|
||||
old "This program contains free software under a number of licenses, including the MIT License and GNU Lesser General Public License. A complete list of software, including links to full source code, can be found {a=https://www.renpy.org/l/license}here{/a}."
|
||||
new "This program contains free software under a number of licenses, including the MIT License and GNU Lesser General Public License. A complete list of software, including links to full source code, can be found {a=https://www.renpy.org/l/license}here{/a}."
|
||||
new "Dieses Programm enthält kostenlose Software unter einer Reihe von Lizenzen, einschließlich der MIT License und der GNU Lesser General Public License. Eine vollständige Liste aller Software, inklusive Links zum vollständigen Quellcode, kann {a=https://www.renpy.org/l/license}hier{/a} gefunden werden."
|
||||
|
||||
# 00preferences.rpy:422
|
||||
old "Clipboard voicing enabled. Press 'shift+C' to disable."
|
||||
new "Clipboard voicing enabled. Press 'shift+C' to disable."
|
||||
# Automatic translation.
|
||||
new "Zwischenablage-Voicing aktiviert. Drücken Sie 'Umschalt+C' zum Deaktivieren."
|
||||
|
||||
# 00preferences.rpy:424
|
||||
old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
|
||||
new "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
|
||||
new "Sprachausgabe würde \"[renpy.display.tts.last]\" sagen. Zum deaktivieren 'alt+shift+V' drücken."
|
||||
|
||||
# 00preferences.rpy:426
|
||||
old "Self-voicing enabled. Press 'v' to disable."
|
||||
new "Self-voicing enabled. Press 'v' to disable."
|
||||
new "Sprachausgabe aktiviert. Zum deaktivieren 'v' drücken."
|
||||
|
||||
# 00iap.rpy:217
|
||||
old "Contacting App Store\nPlease Wait..."
|
||||
new "Contacting App Store\nPlease Wait..."
|
||||
new "Kontaktiert App Store\nBitte warten..."
|
||||
|
||||
# 00updater.rpy:367
|
||||
old "The Ren'Py Updater is not supported on mobile devices."
|
||||
new "The Ren'Py Updater is not supported on mobile devices."
|
||||
new "Der Ren'Py Updater wird auf Mobilgeräten nicht unterstützt."
|
||||
|
||||
# 00updater.rpy:486
|
||||
old "An error is being simulated."
|
||||
new "An error is being simulated."
|
||||
new "Ein Error wird simuliert."
|
||||
|
||||
# 00updater.rpy:662
|
||||
old "Either this project does not support updating, or the update status file was deleted."
|
||||
new "Either this project does not support updating, or the update status file was deleted."
|
||||
new "Entweder unterstützt dieses Projekt keine Updates, oder die Update-Status-Datei wurde gelöscht."
|
||||
|
||||
# 00updater.rpy:676
|
||||
old "This account does not have permission to perform an update."
|
||||
new "This account does not have permission to perform an update."
|
||||
new "Dieser Account hat keine Erlaubnis, Updates durchzuführen."
|
||||
|
||||
# 00updater.rpy:679
|
||||
old "This account does not have permission to write the update log."
|
||||
new "This account does not have permission to write the update log."
|
||||
new "Dieser Account hat keine Erlaubnis, Update-Logs zu schreiben."
|
||||
|
||||
# 00updater.rpy:704
|
||||
old "Could not verify update signature."
|
||||
new "Could not verify update signature."
|
||||
new "Konnte die Update-Signatur nicht verifizieren."
|
||||
|
||||
# 00updater.rpy:975
|
||||
old "The update file was not downloaded."
|
||||
new "The update file was not downloaded."
|
||||
new "Die Update-Datei wurde nicht heruntergeladen."
|
||||
|
||||
# 00updater.rpy:993
|
||||
old "The update file does not have the correct digest - it may have been corrupted."
|
||||
new "The update file does not have the correct digest - it may have been corrupted."
|
||||
new "Die Update-Datei hat nicht das richtige Format - sie wurde möglicherweise beschädigt."
|
||||
|
||||
# 00updater.rpy:1049
|
||||
old "While unpacking {}, unknown type {}."
|
||||
new "While unpacking {}, unknown type {}."
|
||||
# Automatic translation.
|
||||
new "Beim Auspacken {}, unbekannter Typ {}."
|
||||
|
||||
# 00updater.rpy:1393
|
||||
old "Updater"
|
||||
@@ -283,7 +286,7 @@ translate german strings:
|
||||
|
||||
# 00updater.rpy:1404
|
||||
old "This program is up to date."
|
||||
new "Dieses Programm ist aktuell."
|
||||
new "Dieses Programm ist auf dem neuesten Stand."
|
||||
|
||||
# 00updater.rpy:1406
|
||||
old "[u.version] is available. Do you want to install it?"
|
||||
@@ -291,27 +294,27 @@ translate german strings:
|
||||
|
||||
# 00updater.rpy:1408
|
||||
old "Preparing to download the updates."
|
||||
new "Vorbereiten, um die Aktualisierungen herunterzuladen."
|
||||
new "Bereitet das Herunterladen der Updates vor."
|
||||
|
||||
# 00updater.rpy:1410
|
||||
old "Downloading the updates."
|
||||
new "Aktualisierungen werden heruntergeladen."
|
||||
new "Updates werden heruntergeladen."
|
||||
|
||||
# 00updater.rpy:1412
|
||||
old "Unpacking the updates."
|
||||
new "Aktualisierungen werden entpackt."
|
||||
new "Updates werden entpackt."
|
||||
|
||||
# 00updater.rpy:1416
|
||||
old "The updates have been installed. The program will restart."
|
||||
new "Die Aktualisierungen wurden installiert. Das Programm wird nun neustarten."
|
||||
new "Die Updates wurden installiert. Das Programm wird nun neu gestartet."
|
||||
|
||||
# 00updater.rpy:1418
|
||||
old "The updates have been installed."
|
||||
new "Die Aktualisierungen wurden installiert."
|
||||
new "Die Updates wurden installiert."
|
||||
|
||||
# 00updater.rpy:1420
|
||||
old "The updates were cancelled."
|
||||
new "Die Aktualisierungen wurden abgebrochen."
|
||||
new "Die Updates wurden abgebrochen."
|
||||
|
||||
# 00gallery.rpy:563
|
||||
old "Image [index] of [count] locked."
|
||||
@@ -327,9 +330,663 @@ translate german strings:
|
||||
|
||||
# 00gallery.rpy:585
|
||||
old "slideshow"
|
||||
new "slideshow"
|
||||
# Automatic translation.
|
||||
new "Diashow"
|
||||
|
||||
# 00gallery.rpy:586
|
||||
old "return"
|
||||
new "zurück"
|
||||
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00accessibility.rpy:32
|
||||
old "bar"
|
||||
new "bar"
|
||||
|
||||
# renpy/common/00accessibility.rpy:33
|
||||
old "selected"
|
||||
# Automatic translation.
|
||||
new "ausgewählt"
|
||||
|
||||
# renpy/common/00accessibility.rpy:34
|
||||
old "viewport"
|
||||
# Automatic translation.
|
||||
new "Ansichtsfenster"
|
||||
|
||||
# renpy/common/00accessibility.rpy:35
|
||||
old "horizontal scroll"
|
||||
# Automatic translation.
|
||||
new "Horizontales Blättern"
|
||||
|
||||
# renpy/common/00accessibility.rpy:36
|
||||
old "vertical scroll"
|
||||
# Automatic translation.
|
||||
new "vertikaler Bildlauf"
|
||||
|
||||
# renpy/common/00accessibility.rpy:37
|
||||
old "activate"
|
||||
# Automatic translation.
|
||||
new "aktivieren."
|
||||
|
||||
# renpy/common/00accessibility.rpy:38
|
||||
old "deactivate"
|
||||
# Automatic translation.
|
||||
new "deaktivieren"
|
||||
|
||||
# renpy/common/00accessibility.rpy:39
|
||||
old "increase"
|
||||
# Automatic translation.
|
||||
new "erhöhen."
|
||||
|
||||
# renpy/common/00accessibility.rpy:40
|
||||
old "decrease"
|
||||
# Automatic translation.
|
||||
new "verringern"
|
||||
|
||||
# renpy/common/00accessibility.rpy:138
|
||||
old "Font Override"
|
||||
# Automatic translation.
|
||||
new "Schriftart überschreiben"
|
||||
|
||||
# renpy/common/00accessibility.rpy:142
|
||||
old "Default"
|
||||
# Automatic translation.
|
||||
new "Standard"
|
||||
|
||||
# renpy/common/00accessibility.rpy:146
|
||||
old "DejaVu Sans"
|
||||
new "DejaVu Sans"
|
||||
|
||||
# renpy/common/00accessibility.rpy:150
|
||||
old "Opendyslexic"
|
||||
new "Opendyslexic"
|
||||
|
||||
# renpy/common/00accessibility.rpy:156
|
||||
old "Text Size Scaling"
|
||||
# Automatic translation.
|
||||
new "Skalierung der Textgröße"
|
||||
|
||||
# renpy/common/00accessibility.rpy:162
|
||||
old "Reset"
|
||||
# Automatic translation.
|
||||
new "Zurücksetzen"
|
||||
|
||||
# renpy/common/00accessibility.rpy:168
|
||||
old "Line Spacing Scaling"
|
||||
# Automatic translation.
|
||||
new "Zeilenabstand Skalierung"
|
||||
|
||||
# renpy/common/00accessibility.rpy:180
|
||||
old "High Contrast Text"
|
||||
# Automatic translation.
|
||||
new "Hochkontrastiger Text"
|
||||
|
||||
# renpy/common/00accessibility.rpy:193
|
||||
old "Self-Voicing"
|
||||
# Automatic translation.
|
||||
new "Selbstanzeige"
|
||||
|
||||
# renpy/common/00accessibility.rpy:197
|
||||
old "Off"
|
||||
# Automatic translation.
|
||||
new "Aus"
|
||||
|
||||
# renpy/common/00accessibility.rpy:201
|
||||
old "Text-to-speech"
|
||||
# Automatic translation.
|
||||
new "Text-in-Sprache"
|
||||
|
||||
# renpy/common/00accessibility.rpy:205
|
||||
old "Clipboard"
|
||||
# Automatic translation.
|
||||
new "Zwischenablage"
|
||||
|
||||
# renpy/common/00accessibility.rpy:209
|
||||
old "Debug"
|
||||
# Automatic translation.
|
||||
new "Debuggen"
|
||||
|
||||
# renpy/common/00accessibility.rpy:223
|
||||
old "Self-Voicing Volume Drop"
|
||||
# Automatic translation.
|
||||
new "Selbstlautstärkeabfall"
|
||||
|
||||
# renpy/common/00accessibility.rpy:234
|
||||
old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was."
|
||||
# Automatic translation.
|
||||
new "Die Optionen in diesem Menü dienen der Verbesserung der Zugänglichkeit. Sie funktionieren möglicherweise nicht mit allen Spielen, und einige Kombinationen von Optionen können das Spiel unspielbar machen. Dies ist kein Problem mit dem Spiel oder der Engine. Die besten Ergebnisse beim Ändern von Schriftarten erzielen Sie, wenn Sie die ursprüngliche Textgröße beibehalten."
|
||||
|
||||
# renpy/common/00action_file.rpy:378
|
||||
old "Save slot %s: [text]"
|
||||
# Automatic translation.
|
||||
new "Steckplatz %s speichern: [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:461
|
||||
old "Load slot %s: [text]"
|
||||
# Automatic translation.
|
||||
new "Steckplatz %s laden: [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:514
|
||||
old "Delete slot [text]"
|
||||
# Automatic translation.
|
||||
new "Steckplatz löschen [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:593
|
||||
old "File page auto"
|
||||
# Automatic translation.
|
||||
new "Datei Seite auto"
|
||||
|
||||
# renpy/common/00action_file.rpy:595
|
||||
old "File page quick"
|
||||
# Automatic translation.
|
||||
new "Datei Seite schnell"
|
||||
|
||||
# renpy/common/00action_file.rpy:597
|
||||
old "File page [text]"
|
||||
# Automatic translation.
|
||||
new "Datei-Seite [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:796
|
||||
old "Next file page."
|
||||
# Automatic translation.
|
||||
new "Nächste Dateiseite."
|
||||
|
||||
# renpy/common/00action_file.rpy:868
|
||||
old "Previous file page."
|
||||
# Automatic translation.
|
||||
new "Vorherige Dateiseite."
|
||||
|
||||
# renpy/common/00action_file.rpy:944
|
||||
old "Quick save."
|
||||
# Automatic translation.
|
||||
new "Schnell speichern."
|
||||
|
||||
# renpy/common/00action_file.rpy:963
|
||||
old "Quick load."
|
||||
# Automatic translation.
|
||||
new "Schnell laden."
|
||||
|
||||
# renpy/common/00action_other.rpy:381
|
||||
old "Language [text]"
|
||||
# Automatic translation.
|
||||
new "Sprache [text]"
|
||||
|
||||
# renpy/common/00director.rpy:705
|
||||
old "The interactive director is not enabled here."
|
||||
# Automatic translation.
|
||||
new "Der interaktive Regisseur ist hier nicht aktiviert."
|
||||
|
||||
# renpy/common/00director.rpy:1504
|
||||
old "⬆"
|
||||
new "⬆"
|
||||
|
||||
# renpy/common/00director.rpy:1510
|
||||
old "⬇"
|
||||
new "⬇"
|
||||
|
||||
# renpy/common/00director.rpy:1574
|
||||
old "Done"
|
||||
# Automatic translation.
|
||||
new "Erledigt"
|
||||
|
||||
# renpy/common/00director.rpy:1584
|
||||
old "(statement)"
|
||||
# Automatic translation.
|
||||
new "(Erklärung)"
|
||||
|
||||
# renpy/common/00director.rpy:1585
|
||||
old "(tag)"
|
||||
# Automatic translation.
|
||||
new "(Tag)"
|
||||
|
||||
# renpy/common/00director.rpy:1586
|
||||
old "(attributes)"
|
||||
# Automatic translation.
|
||||
new "(Attribute)"
|
||||
|
||||
# renpy/common/00director.rpy:1587
|
||||
old "(transform)"
|
||||
new "(transform)"
|
||||
|
||||
# renpy/common/00director.rpy:1612
|
||||
old "(transition)"
|
||||
new "(transition)"
|
||||
|
||||
# renpy/common/00director.rpy:1624
|
||||
old "(channel)"
|
||||
# Automatic translation.
|
||||
new "(Kanal)"
|
||||
|
||||
# renpy/common/00director.rpy:1625
|
||||
old "(filename)"
|
||||
# Automatic translation.
|
||||
new "(Dateiname)"
|
||||
|
||||
# renpy/common/00director.rpy:1654
|
||||
old "Change"
|
||||
# Automatic translation.
|
||||
new "Ändern Sie"
|
||||
|
||||
# renpy/common/00director.rpy:1656
|
||||
old "Add"
|
||||
# Automatic translation.
|
||||
new "hinzufügen"
|
||||
|
||||
# renpy/common/00director.rpy:1662
|
||||
old "Remove"
|
||||
# Automatic translation.
|
||||
new "entfernen"
|
||||
|
||||
# renpy/common/00director.rpy:1697
|
||||
old "Statement:"
|
||||
# Automatic translation.
|
||||
new "Erklärung:"
|
||||
|
||||
# renpy/common/00director.rpy:1718
|
||||
old "Tag:"
|
||||
new "Tag:"
|
||||
|
||||
# renpy/common/00director.rpy:1734
|
||||
old "Attributes:"
|
||||
# Automatic translation.
|
||||
new "Attribute:"
|
||||
|
||||
# renpy/common/00director.rpy:1745
|
||||
old "Click to toggle attribute, right click to toggle negative attribute."
|
||||
# Automatic translation.
|
||||
new "Klicken Sie auf das Attribut, um es einzuschalten, klicken Sie mit der rechten Maustaste, um das negative Attribut einzuschalten."
|
||||
|
||||
# renpy/common/00director.rpy:1757
|
||||
old "Transforms:"
|
||||
# Automatic translation.
|
||||
new "Verwandeln:"
|
||||
|
||||
# renpy/common/00director.rpy:1768
|
||||
old "Click to set transform, right click to add to transform list."
|
||||
# Automatic translation.
|
||||
new "Klicken Sie, um die Transformation festzulegen, und klicken Sie mit der rechten Maustaste, um sie zur Transformationsliste hinzuzufügen."
|
||||
|
||||
# renpy/common/00director.rpy:1780
|
||||
old "Behind:"
|
||||
# Automatic translation.
|
||||
new "Hinter:"
|
||||
|
||||
# renpy/common/00director.rpy:1789
|
||||
old "Click to set, right click to add to behind list."
|
||||
# Automatic translation.
|
||||
new "Zum Einstellen klicken, zum Hinzufügen zur Liste mit der rechten Maustaste klicken."
|
||||
|
||||
# renpy/common/00director.rpy:1801
|
||||
old "Transition:"
|
||||
# Automatic translation.
|
||||
new "Überleitung:"
|
||||
|
||||
# renpy/common/00director.rpy:1819
|
||||
old "Channel:"
|
||||
# Automatic translation.
|
||||
new "Kanal:"
|
||||
|
||||
# renpy/common/00director.rpy:1837
|
||||
old "Audio Filename:"
|
||||
# Automatic translation.
|
||||
new "Audio Dateiname:"
|
||||
|
||||
# renpy/common/00gui.rpy:456
|
||||
old "This save was created on a different device. Maliciously constructed save files can harm your computer. Do you trust this save's creator and everyone who could have changed the file?"
|
||||
# Automatic translation.
|
||||
new "Dieser Spielstand wurde auf einem anderen Gerät erstellt. Böswillig erstellte Speicherdateien können Ihrem Computer schaden. Vertrauen Sie dem Ersteller dieses Spielstands und allen, die die Datei geändert haben könnten?"
|
||||
|
||||
# renpy/common/00gui.rpy:457
|
||||
old "Do you trust the device the save was created on? You should only choose yes if you are the device's sole user."
|
||||
# Automatic translation.
|
||||
new "Vertrauen Sie dem Gerät, auf dem die Sicherung erstellt wurde? Sie sollten nur dann Ja wählen, wenn Sie der einzige Benutzer des Geräts sind."
|
||||
|
||||
# renpy/common/00keymap.rpy:322
|
||||
old "Failed to save screenshot as %s."
|
||||
# Automatic translation.
|
||||
new "Bildschirmfoto konnte nicht als %s gespeichert werden."
|
||||
|
||||
# renpy/common/00preferences.rpy:271
|
||||
old "display"
|
||||
# Automatic translation.
|
||||
new "Anzeige"
|
||||
|
||||
# renpy/common/00preferences.rpy:283
|
||||
old "transitions"
|
||||
# Automatic translation.
|
||||
new "Übergänge"
|
||||
|
||||
# renpy/common/00preferences.rpy:292
|
||||
old "skip transitions"
|
||||
# Automatic translation.
|
||||
new "Übergänge überspringen"
|
||||
|
||||
# renpy/common/00preferences.rpy:294
|
||||
old "video sprites"
|
||||
# Automatic translation.
|
||||
new "Video-Sprites"
|
||||
|
||||
# renpy/common/00preferences.rpy:303
|
||||
old "show empty window"
|
||||
# Automatic translation.
|
||||
new "leeres Fenster anzeigen"
|
||||
|
||||
# renpy/common/00preferences.rpy:312
|
||||
old "text speed"
|
||||
# Automatic translation.
|
||||
new "Textgeschwindigkeit"
|
||||
|
||||
# renpy/common/00preferences.rpy:320
|
||||
old "joystick"
|
||||
# Automatic translation.
|
||||
new "Joystick"
|
||||
|
||||
# renpy/common/00preferences.rpy:320
|
||||
old "joystick..."
|
||||
# Automatic translation.
|
||||
new "Joystick..."
|
||||
|
||||
# renpy/common/00preferences.rpy:327
|
||||
old "skip"
|
||||
# Automatic translation.
|
||||
new "überspringen"
|
||||
|
||||
# renpy/common/00preferences.rpy:330
|
||||
old "skip unseen [text]"
|
||||
# Automatic translation.
|
||||
new "unbesehen überspringen [text]"
|
||||
|
||||
# renpy/common/00preferences.rpy:335
|
||||
old "skip unseen text"
|
||||
# Automatic translation.
|
||||
new "ungesehenen Text übergehen"
|
||||
|
||||
# renpy/common/00preferences.rpy:337
|
||||
old "begin skipping"
|
||||
# Automatic translation.
|
||||
new "mit dem Springen beginnen"
|
||||
|
||||
# renpy/common/00preferences.rpy:341
|
||||
old "after choices"
|
||||
# Automatic translation.
|
||||
new "nach der Wahl"
|
||||
|
||||
# renpy/common/00preferences.rpy:348
|
||||
old "skip after choices"
|
||||
# Automatic translation.
|
||||
new "nach Auswahlen überspringen"
|
||||
|
||||
# renpy/common/00preferences.rpy:350
|
||||
old "auto-forward time"
|
||||
# Automatic translation.
|
||||
new "automatische Vorlaufzeit"
|
||||
|
||||
# renpy/common/00preferences.rpy:364
|
||||
old "auto-forward"
|
||||
# Automatic translation.
|
||||
new "automatisches Weiterleiten"
|
||||
|
||||
# renpy/common/00preferences.rpy:371
|
||||
old "Auto forward"
|
||||
# Automatic translation.
|
||||
new "Automatisch vorwärts"
|
||||
|
||||
# renpy/common/00preferences.rpy:374
|
||||
old "auto-forward after click"
|
||||
# Automatic translation.
|
||||
new "automatisches Weiterleiten nach Klick"
|
||||
|
||||
# renpy/common/00preferences.rpy:383
|
||||
old "automatic move"
|
||||
# Automatic translation.
|
||||
new "automatischer Umzug"
|
||||
|
||||
# renpy/common/00preferences.rpy:392
|
||||
old "wait for voice"
|
||||
# Automatic translation.
|
||||
new "auf Stimme warten"
|
||||
|
||||
# renpy/common/00preferences.rpy:401
|
||||
old "voice sustain"
|
||||
# Automatic translation.
|
||||
new "Stimmhaltung"
|
||||
|
||||
# renpy/common/00preferences.rpy:410
|
||||
old "self voicing"
|
||||
# Automatic translation.
|
||||
new "selbststimmend"
|
||||
|
||||
# renpy/common/00preferences.rpy:419
|
||||
old "self voicing volume drop"
|
||||
# Automatic translation.
|
||||
new "Selbststimmende Lautstärkeabnahme"
|
||||
|
||||
# renpy/common/00preferences.rpy:427
|
||||
old "clipboard voicing"
|
||||
# Automatic translation.
|
||||
new "Clipboard-Intonation"
|
||||
|
||||
# renpy/common/00preferences.rpy:436
|
||||
old "debug voicing"
|
||||
# Automatic translation.
|
||||
new "Intonation debuggen"
|
||||
|
||||
# renpy/common/00preferences.rpy:445
|
||||
old "emphasize audio"
|
||||
# Automatic translation.
|
||||
new "Audio hervorheben"
|
||||
|
||||
# renpy/common/00preferences.rpy:454
|
||||
old "rollback side"
|
||||
# Automatic translation.
|
||||
new "Rollback-Seite"
|
||||
|
||||
# renpy/common/00preferences.rpy:464
|
||||
old "gl powersave"
|
||||
new "gl powersave"
|
||||
|
||||
# renpy/common/00preferences.rpy:470
|
||||
old "gl framerate"
|
||||
# Automatic translation.
|
||||
new "Gl-Framerate"
|
||||
|
||||
# renpy/common/00preferences.rpy:473
|
||||
old "gl tearing"
|
||||
new "gl tearing"
|
||||
|
||||
# renpy/common/00preferences.rpy:476
|
||||
old "font transform"
|
||||
# Automatic translation.
|
||||
new "Schriftart umwandeln"
|
||||
|
||||
# renpy/common/00preferences.rpy:479
|
||||
old "font size"
|
||||
# Automatic translation.
|
||||
new "Schriftgröße"
|
||||
|
||||
# renpy/common/00preferences.rpy:487
|
||||
old "font line spacing"
|
||||
# Automatic translation.
|
||||
new "Zeilenabstand der Schrift"
|
||||
|
||||
# renpy/common/00preferences.rpy:495
|
||||
old "system cursor"
|
||||
# Automatic translation.
|
||||
new "System-Cursor"
|
||||
|
||||
# renpy/common/00preferences.rpy:504
|
||||
old "renderer menu"
|
||||
# Automatic translation.
|
||||
new "Renderer-Menü"
|
||||
|
||||
# renpy/common/00preferences.rpy:507
|
||||
old "accessibility menu"
|
||||
# Automatic translation.
|
||||
new "Menü Barrierefreiheit"
|
||||
|
||||
# renpy/common/00preferences.rpy:510
|
||||
old "high contrast text"
|
||||
# Automatic translation.
|
||||
new "Text mit hohem Kontrast"
|
||||
|
||||
# renpy/common/00preferences.rpy:519
|
||||
old "audio when minimized"
|
||||
# Automatic translation.
|
||||
new "Audio im minimierten Zustand"
|
||||
|
||||
# renpy/common/00preferences.rpy:528
|
||||
old "audio when unfocused"
|
||||
# Automatic translation.
|
||||
new "Audio bei Unschärfe"
|
||||
|
||||
# renpy/common/00preferences.rpy:537
|
||||
old "web cache preload"
|
||||
# Automatic translation.
|
||||
new "Web-Cache vorladen"
|
||||
|
||||
# renpy/common/00preferences.rpy:552
|
||||
old "voice after game menu"
|
||||
# Automatic translation.
|
||||
new "Stimme nach dem Spielmenü"
|
||||
|
||||
# renpy/common/00preferences.rpy:571
|
||||
old "main volume"
|
||||
# Automatic translation.
|
||||
new "Hauptvolumen"
|
||||
|
||||
# renpy/common/00preferences.rpy:572
|
||||
old "music volume"
|
||||
# Automatic translation.
|
||||
new "Musiklautstärke"
|
||||
|
||||
# renpy/common/00preferences.rpy:573
|
||||
old "sound volume"
|
||||
# Automatic translation.
|
||||
new "Lautstärke"
|
||||
|
||||
# renpy/common/00preferences.rpy:574
|
||||
old "voice volume"
|
||||
# Automatic translation.
|
||||
new "Sprachlautstärke"
|
||||
|
||||
# renpy/common/00preferences.rpy:575
|
||||
old "mute main"
|
||||
# Automatic translation.
|
||||
new "Hauptstummschaltung"
|
||||
|
||||
# renpy/common/00preferences.rpy:576
|
||||
old "mute music"
|
||||
# Automatic translation.
|
||||
new "Musik stummschalten"
|
||||
|
||||
# renpy/common/00preferences.rpy:577
|
||||
old "mute sound"
|
||||
# Automatic translation.
|
||||
new "Ton stummschalten"
|
||||
|
||||
# renpy/common/00preferences.rpy:578
|
||||
old "mute voice"
|
||||
# Automatic translation.
|
||||
new "stumme Stimme"
|
||||
|
||||
# renpy/common/00preferences.rpy:579
|
||||
old "mute all"
|
||||
# Automatic translation.
|
||||
new "alle stumm schalten"
|
||||
|
||||
# renpy/common/00speechbubble.rpy:344
|
||||
old "Speech Bubble Editor"
|
||||
# Automatic translation.
|
||||
new "Sprechblasen-Editor"
|
||||
|
||||
# renpy/common/00speechbubble.rpy:349
|
||||
old "(hide)"
|
||||
# Automatic translation.
|
||||
new "(ausblenden)"
|
||||
|
||||
# renpy/common/00sync.rpy:70
|
||||
old "Sync downloaded."
|
||||
# Automatic translation.
|
||||
new "Sync heruntergeladen."
|
||||
|
||||
# renpy/common/00sync.rpy:190
|
||||
old "Could not connect to the Ren'Py Sync server."
|
||||
# Automatic translation.
|
||||
new "Es konnte keine Verbindung zum Ren'Py Sync Server hergestellt werden."
|
||||
|
||||
# renpy/common/00sync.rpy:192
|
||||
old "The Ren'Py Sync server timed out."
|
||||
# Automatic translation.
|
||||
new "Der Ren'Py Sync-Server hat eine Zeitüberschreitung."
|
||||
|
||||
# renpy/common/00sync.rpy:194
|
||||
old "An unknown error occurred while connecting to the Ren'Py Sync server."
|
||||
# Automatic translation.
|
||||
new "Bei der Verbindung mit dem Ren'Py Sync-Server ist ein unbekannter Fehler aufgetreten."
|
||||
|
||||
# renpy/common/00sync.rpy:267
|
||||
old "The Ren'Py Sync server does not have a copy of this sync. The sync ID may be invalid, or it may have timed out."
|
||||
# Automatic translation.
|
||||
new "Der Ren'Py Sync-Server verfügt nicht über eine Kopie dieser Synchronisierung. Die Sync-ID ist möglicherweise ungültig, oder es wurde eine Zeitüberschreitung festgestellt."
|
||||
|
||||
# renpy/common/00sync.rpy:409
|
||||
old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself."
|
||||
# Automatic translation.
|
||||
new "Bitte geben Sie die von Ihnen erstellte Sync-ID ein.\nGeben Sie niemals eine Sync-ID ein, die Sie nicht selbst erstellt haben."
|
||||
|
||||
# renpy/common/00sync.rpy:428
|
||||
old "The sync ID is not in the correct format."
|
||||
# Automatic translation.
|
||||
new "Die Sync-ID hat nicht das richtige Format."
|
||||
|
||||
# renpy/common/00sync.rpy:448
|
||||
old "The sync could not be decrypted."
|
||||
# Automatic translation.
|
||||
new "Die Synchronisierung konnte nicht entschlüsselt werden."
|
||||
|
||||
# renpy/common/00sync.rpy:471
|
||||
old "The sync belongs to a different game."
|
||||
# Automatic translation.
|
||||
new "Die Synchronisation gehört zu einem anderen Spiel."
|
||||
|
||||
# renpy/common/00sync.rpy:476
|
||||
old "The sync contains a file with an invalid name."
|
||||
# Automatic translation.
|
||||
new "Die Synchronisierung enthält eine Datei mit einem ungültigen Namen."
|
||||
|
||||
# renpy/common/00sync.rpy:529
|
||||
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
|
||||
# Automatic translation.
|
||||
new "Dadurch werden Ihre Spielstände auf den {a=https://sync.renpy.org}Ren'Py Sync Server{/a} hochgeladen.\nMöchten Sie fortfahren?"
|
||||
|
||||
# renpy/common/00sync.rpy:558
|
||||
old "Enter Sync ID"
|
||||
# Automatic translation.
|
||||
new "Sync-ID eingeben"
|
||||
|
||||
# renpy/common/00sync.rpy:569
|
||||
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
|
||||
# Automatic translation.
|
||||
new "Dadurch wird der {a=https://sync.renpy.org}Ren'Py Sync Server{/a} kontaktiert."
|
||||
|
||||
# renpy/common/00sync.rpy:596
|
||||
old "Sync Success"
|
||||
# Automatic translation.
|
||||
new "Sync-Erfolg"
|
||||
|
||||
# renpy/common/00sync.rpy:599
|
||||
old "The Sync ID is:"
|
||||
# Automatic translation.
|
||||
new "Die Sync-ID lautet:"
|
||||
|
||||
# renpy/common/00sync.rpy:605
|
||||
old "You can use this ID to download your save on another device.\nThis sync will expire in an hour.\nRen'Py Sync is supported by {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}."
|
||||
# Automatic translation.
|
||||
new "Sie können diese ID verwenden, um Ihren Spielstand auf ein anderes Gerät herunterzuladen.\nDiese Synchronisierung läuft in einer Stunde ab.\nRen'Py Sync wird unterstützt von {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}."
|
||||
|
||||
# renpy/common/00sync.rpy:631
|
||||
old "Sync Error"
|
||||
# Automatic translation.
|
||||
new "Sync-Fehler"
|
||||
|
||||
|
||||
@@ -59,11 +59,13 @@ translate german strings:
|
||||
|
||||
# _developer/developer.rpym:412
|
||||
old "Rectangle copied to clipboard."
|
||||
new "Rectangle copied to clipboard."
|
||||
# Automatic translation.
|
||||
new "Rechteck in die Zwischenablage kopiert."
|
||||
|
||||
# _developer/developer.rpym:415
|
||||
old "Position copied to clipboard."
|
||||
new "Position copied to clipboard."
|
||||
# Automatic translation.
|
||||
new "Position in die Zwischenablage kopiert."
|
||||
|
||||
# _developer/developer.rpym:524
|
||||
old "✔ "
|
||||
@@ -75,7 +77,8 @@ translate german strings:
|
||||
|
||||
# _developer/developer.rpym:532
|
||||
old "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
|
||||
new "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
|
||||
# Automatic translation.
|
||||
new "\n{color=#cfc}✔ vorhergesagtes Bild (gut){/color}\n{color=#fcc}✘ unvorhergesehenes Bild (schlecht){/color}\n{color=#fff}Zum Verschieben ziehen.{/color}"
|
||||
|
||||
# _developer/inspector.rpym:38
|
||||
old "Displayable Inspector"
|
||||
@@ -91,7 +94,8 @@ translate german strings:
|
||||
|
||||
# _developer/inspector.rpym:71
|
||||
old "Location"
|
||||
new "Location"
|
||||
# Automatic translation.
|
||||
new "Standort"
|
||||
|
||||
# _developer/inspector.rpym:122
|
||||
old "Inspecting Styles of [displayable_name!q]"
|
||||
@@ -177,3 +181,110 @@ translate german strings:
|
||||
old "jump <label>: jumps to label"
|
||||
new "jump <label>: springt zum Label"
|
||||
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/_developer/developer.rpym:43
|
||||
old "Interactive Director (D)"
|
||||
# Automatic translation.
|
||||
new "Interaktiver Direktor (D)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:51
|
||||
old "Persistent Viewer"
|
||||
# Automatic translation.
|
||||
new "Dauerhafter Betrachter"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:59
|
||||
old "Show Image Load Log (F4)"
|
||||
# Automatic translation.
|
||||
new "Bildladeprotokoll anzeigen (F4)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:62
|
||||
old "Hide Image Load Log (F4)"
|
||||
# Automatic translation.
|
||||
new "Bildladeprotokoll ausblenden (F4)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:65
|
||||
old "Image Attributes"
|
||||
# Automatic translation.
|
||||
new "Bild-Attribute"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:70
|
||||
old "Speech Bubble Editor (Shift+B)"
|
||||
# Automatic translation.
|
||||
new "Sprechblasen-Editor (Umschalt+B)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:97
|
||||
old "[name] [attributes] (hidden)"
|
||||
# Automatic translation.
|
||||
new "[name] [attributes] (versteckt)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:101
|
||||
old "[name] [attributes]"
|
||||
new "[name] [attributes]"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:162
|
||||
old "Hide deleted"
|
||||
# Automatic translation.
|
||||
new "Ausblenden gelöscht"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:162
|
||||
old "Show deleted"
|
||||
# Automatic translation.
|
||||
new "Anzeigen gelöscht"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:389
|
||||
old "Type to filter: "
|
||||
# Automatic translation.
|
||||
new "Typ zum Filtern: "
|
||||
|
||||
# renpy/common/_developer/developer.rpym:507
|
||||
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
|
||||
# Automatic translation.
|
||||
new "Texturen: [tex_count] ([tex_size_mb:.1f] MB)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:511
|
||||
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
# Automatic translation.
|
||||
new "Bild-Cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
|
||||
# renpy/common/00console.rpy:789
|
||||
old "help: show this help\n help <expr>: show signature and documentation of <expr>"
|
||||
# Automatic translation.
|
||||
new "help: diese Hilfe anzeigen\n help <expr>: Signatur und Dokumentation von <expr> anzeigen"
|
||||
|
||||
# renpy/common/00console.rpy:813
|
||||
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
|
||||
# Automatic translation.
|
||||
new "Die Hilfe kann undokumentierte Funktionen anzeigen. Bitte prüfen Sie, ob die Funktion oder\nKlasse, die Sie verwenden möchten, dokumentiert ist.\n\n"
|
||||
|
||||
# renpy/common/00console.rpy:854
|
||||
old "stack: print the return stack"
|
||||
# Automatic translation.
|
||||
new "stack: den Rückgabestapel drucken"
|
||||
|
||||
# renpy/common/00console.rpy:908
|
||||
old "watch <expression>: watch a python expression\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is"
|
||||
# Automatic translation.
|
||||
new "watch <expression>: einen Python-Ausdruck beobachten\n watch short: macht die Darstellung der nachverfolgten Ausdrücke kurz (Standard)\n watch long: macht die Darstellung von verfolgten Ausdrücken wie folgt"
|
||||
|
||||
# renpy/common/00console.rpy:1028
|
||||
old "short: Shorten the representation of objects on the console (default)."
|
||||
# Automatic translation.
|
||||
new "short: Verkürzt die Darstellung von Objekten auf der Konsole (Standard)."
|
||||
|
||||
# renpy/common/00console.rpy:1032
|
||||
old "long: Print the full representation of objects on the console."
|
||||
# Automatic translation.
|
||||
new "long: Gibt die vollständige Darstellung der Objekte auf der Konsole aus."
|
||||
|
||||
# renpy/common/00console.rpy:1036
|
||||
old "escape: Enables escaping of unicode symbols in unicode strings."
|
||||
# Automatic translation.
|
||||
new "escape: Ermöglicht das Escaping von Unicode-Symbolen in Unicode-Strings."
|
||||
|
||||
# renpy/common/00console.rpy:1040
|
||||
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
|
||||
# Automatic translation.
|
||||
new "unescape: Deaktiviert das Escaping von Unicode-Symbolen in Unicode-Zeichenfolgen und druckt sie so, wie sie sind (Voreinstellung)."
|
||||
|
||||
|
||||
@@ -23,7 +23,8 @@ translate german strings:
|
||||
|
||||
# 00gltest.rpy:93
|
||||
old "Enable"
|
||||
new "Enable"
|
||||
# Automatic translation.
|
||||
new "Aktivieren Sie"
|
||||
|
||||
# 00gltest.rpy:109
|
||||
old "Changes will take effect the next time this program is run."
|
||||
@@ -91,27 +92,33 @@ translate german strings:
|
||||
|
||||
# 00gamepad.rpy:32
|
||||
old "Select Gamepad to Calibrate"
|
||||
new "Select Gamepad to Calibrate"
|
||||
# Automatic translation.
|
||||
new "Gamepad zum Kalibrieren auswählen"
|
||||
|
||||
# 00gamepad.rpy:35
|
||||
old "No Gamepads Available"
|
||||
new "No Gamepads Available"
|
||||
# Automatic translation.
|
||||
new "Keine Gamepads verfügbar"
|
||||
|
||||
# 00gamepad.rpy:54
|
||||
old "Calibrating [name] ([i]/[total])"
|
||||
new "Calibrating [name] ([i]/[total])"
|
||||
# Automatic translation.
|
||||
new "Kalibrierung von [name] ([i]/[total])"
|
||||
|
||||
# 00gamepad.rpy:58
|
||||
old "Press or move the [control!s] [kind]."
|
||||
new "Press or move the [control!s] [kind]."
|
||||
# Automatic translation.
|
||||
new "Drücken Sie oder bewegen Sie die [control!s] [kind] ."
|
||||
|
||||
# 00gamepad.rpy:66
|
||||
old "Skip (A)"
|
||||
new "Skip (A)"
|
||||
# Automatic translation.
|
||||
new "Überspringen (A)"
|
||||
|
||||
# 00gamepad.rpy:69
|
||||
old "Back (B)"
|
||||
new "Back (B)"
|
||||
# Automatic translation.
|
||||
new "Rücken (B)"
|
||||
|
||||
# _errorhandling.rpym:495
|
||||
old "Open Traceback"
|
||||
@@ -123,11 +130,13 @@ translate german strings:
|
||||
|
||||
# _errorhandling.rpym:499
|
||||
old "Copy to Clipboard"
|
||||
new "Copy to Clipboard"
|
||||
# Automatic translation.
|
||||
new "In die Zwischenablage kopieren"
|
||||
|
||||
# _errorhandling.rpym:501
|
||||
old "Copies the traceback.txt file to the clipboard."
|
||||
new "Copies the traceback.txt file to the clipboard."
|
||||
# Automatic translation.
|
||||
new "Kopiert die Datei traceback.txt in die Zwischenablage."
|
||||
|
||||
# _errorhandling.rpym:519
|
||||
old "An exception has occurred."
|
||||
@@ -175,5 +184,136 @@ translate german strings:
|
||||
|
||||
# _errorhandling.rpym:612
|
||||
old "Copies the errors.txt file to the clipboard."
|
||||
new "Copies the errors.txt file to the clipboard."
|
||||
# Automatic translation.
|
||||
new "Kopiert die Datei errors.txt in die Zwischenablage."
|
||||
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00gltest.rpy:89
|
||||
old "Renderer"
|
||||
new "Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:100
|
||||
old "Force GL Renderer"
|
||||
new "Force GL Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:105
|
||||
old "Force ANGLE Renderer"
|
||||
new "Force ANGLE Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:110
|
||||
old "Force GLES Renderer"
|
||||
# Automatic translation.
|
||||
new "GLES-Renderer erzwingen"
|
||||
|
||||
# renpy/common/00gltest.rpy:116
|
||||
old "Force GL2 Renderer"
|
||||
# Automatic translation.
|
||||
new "GL2-Renderer erzwingen"
|
||||
|
||||
# renpy/common/00gltest.rpy:121
|
||||
old "Force ANGLE2 Renderer"
|
||||
# Automatic translation.
|
||||
new "ANGLE2-Renderer erzwingen"
|
||||
|
||||
# renpy/common/00gltest.rpy:126
|
||||
old "Force GLES2 Renderer"
|
||||
# Automatic translation.
|
||||
new "GLES2-Renderer erzwingen"
|
||||
|
||||
# renpy/common/00gltest.rpy:136
|
||||
old "Enable (No Blocklist)"
|
||||
# Automatic translation.
|
||||
new "Aktivieren (keine Sperrliste)"
|
||||
|
||||
# renpy/common/00gltest.rpy:159
|
||||
old "Powersave"
|
||||
new "Powersave"
|
||||
|
||||
# renpy/common/00gltest.rpy:173
|
||||
old "Framerate"
|
||||
new "Framerate"
|
||||
|
||||
# renpy/common/00gltest.rpy:177
|
||||
old "Screen"
|
||||
# Automatic translation.
|
||||
new "Bildschirm"
|
||||
|
||||
# renpy/common/00gltest.rpy:181
|
||||
old "60"
|
||||
new "60"
|
||||
|
||||
# renpy/common/00gltest.rpy:185
|
||||
old "30"
|
||||
new "30"
|
||||
|
||||
# renpy/common/00gltest.rpy:191
|
||||
old "Tearing"
|
||||
new "Tearing"
|
||||
|
||||
# renpy/common/00gltest.rpy:249
|
||||
old "This game requires use of GL2 that can't be initialised."
|
||||
# Automatic translation.
|
||||
new "Dieses Spiel erfordert die Verwendung von GL2, das nicht initialisiert werden kann."
|
||||
|
||||
# renpy/common/00gltest.rpy:259
|
||||
old "The {a=edit:1:log.txt}log.txt{/a} file may contain information to help you determine what is wrong with your computer."
|
||||
# Automatic translation.
|
||||
new "Die Datei {a=edit:1:log.txt}log.txt{/a} kann Informationen enthalten, die Ihnen helfen, das Problem mit Ihrem Computer zu lösen."
|
||||
|
||||
# renpy/common/00gltest.rpy:264
|
||||
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
|
||||
# Automatic translation.
|
||||
new "Weitere Einzelheiten zur Behebung dieses Problems finden Sie in der Dokumentation {a=[url]}{/a} ."
|
||||
|
||||
# renpy/common/00gltest.rpy:281
|
||||
old "Change render options"
|
||||
# Automatic translation.
|
||||
new "Renderoptionen ändern"
|
||||
|
||||
# renpy/common/00gamepad.rpy:58
|
||||
old "Press or move the '[control!s]' [kind]."
|
||||
# Automatic translation.
|
||||
new "Drücken Sie oder bewegen Sie die Taste '[control!s]' [kind]."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:555
|
||||
old "Open"
|
||||
# Automatic translation.
|
||||
new "Öffnen Sie"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:559
|
||||
old "Copy BBCode"
|
||||
# Automatic translation.
|
||||
new "BBCode kopieren"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:561
|
||||
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
|
||||
# Automatic translation.
|
||||
new "Kopiert die Datei traceback.txt in die Zwischenablage als BBcode für Foren wie https://lemmasoft.renai.us/."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:563
|
||||
old "Copy Markdown"
|
||||
# Automatic translation.
|
||||
new "Markdown kopieren"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:565
|
||||
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
|
||||
# Automatic translation.
|
||||
new "Kopiert die Datei traceback.txt in die Zwischenablage als Markdown für Discord."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:626
|
||||
old "Ignores the exception, allowing you to continue."
|
||||
# Automatic translation.
|
||||
new "Ignoriert die Ausnahme, so dass Sie fortfahren können."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:637
|
||||
old "Console"
|
||||
# Automatic translation.
|
||||
new "Konsole"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:639
|
||||
old "Opens a console to allow debugging the problem."
|
||||
# Automatic translation.
|
||||
new "Öffnet eine Konsole, um das Problem zu beheben."
|
||||
|
||||
|
||||
+268
-100
@@ -3,267 +3,333 @@ translate german strings:
|
||||
|
||||
# gui.rpy:2
|
||||
old "## Initialization"
|
||||
new "## Initialization"
|
||||
# Automatic translation.
|
||||
new "## Initialisierung"
|
||||
|
||||
# gui.rpy:5
|
||||
old "## The init offset statement causes the init code in this file to run before init code in any other file."
|
||||
new "## The init offset statement causes the init code in this file to run before init code in any other file."
|
||||
# Automatic translation.
|
||||
new "## Die Anweisung init offset bewirkt, dass der init-Code in dieser Datei vor dem init-Code in jeder anderen Datei ausgeführt wird."
|
||||
|
||||
# gui.rpy:9
|
||||
old "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
|
||||
new "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
|
||||
# Automatic translation.
|
||||
new "## Der Aufruf von gui.init setzt die Stile auf sinnvolle Standardwerte zurück und setzt die Breite und Höhe des Spiels."
|
||||
|
||||
# gui.rpy:21
|
||||
old "## Colors"
|
||||
new "## Colors"
|
||||
# Automatic translation.
|
||||
new "## Farben"
|
||||
|
||||
# gui.rpy:23
|
||||
old "## The colors of text in the interface."
|
||||
new "## The colors of text in the interface."
|
||||
# Automatic translation.
|
||||
new "## Die Farben des Textes in der Schnittstelle."
|
||||
|
||||
# gui.rpy:25
|
||||
old "## An accent color used throughout the interface to label and highlight text."
|
||||
new "## An accent color used throughout the interface to label and highlight text."
|
||||
# Automatic translation.
|
||||
new "## Eine Akzentfarbe, die in der gesamten Benutzeroberfläche zur Beschriftung und Hervorhebung von Text verwendet wird."
|
||||
|
||||
# gui.rpy:29
|
||||
old "## The color used for a text button when it is neither selected nor hovered."
|
||||
new "## The color used for a text button when it is neither selected nor hovered."
|
||||
# Automatic translation.
|
||||
new "## Die Farbe, die für eine Textschaltfläche verwendet wird, wenn sie weder ausgewählt ist noch mit dem Mauszeiger bewegt wird."
|
||||
|
||||
# gui.rpy:32
|
||||
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
|
||||
new "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
|
||||
# Automatic translation.
|
||||
new "## Die kleine Farbe wird für kleinen Text verwendet, der heller/dunkler sein muss, um den gleichen Effekt zu erzielen."
|
||||
|
||||
# gui.rpy:36
|
||||
old "## The color that is used for buttons and bars that are hovered."
|
||||
new "## The color that is used for buttons and bars that are hovered."
|
||||
# Automatic translation.
|
||||
new "## Die Farbe, die für Schaltflächen und Balken verwendet wird, die mit dem Mauszeiger bewegt werden."
|
||||
|
||||
# gui.rpy:39
|
||||
old "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
|
||||
new "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
|
||||
# Automatic translation.
|
||||
new "## Die Farbe, die für eine Textschaltfläche verwendet wird, wenn sie ausgewählt, aber nicht fokussiert ist. Eine Schaltfläche ist ausgewählt, wenn sie der aktuelle Bildschirm oder Einstellungswert ist."
|
||||
|
||||
# gui.rpy:43
|
||||
old "## The color used for a text button when it cannot be selected."
|
||||
new "## The color used for a text button when it cannot be selected."
|
||||
# Automatic translation.
|
||||
new "## Die Farbe, die für eine Textschaltfläche verwendet wird, wenn sie nicht ausgewählt werden kann."
|
||||
|
||||
# gui.rpy:46
|
||||
old "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
|
||||
new "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
|
||||
# Automatic translation.
|
||||
new "## Farben für die Teile der Balken, die nicht ausgefüllt sind. Diese Farben werden nicht direkt verwendet, aber bei der Neuerstellung von Balkenbilddateien eingesetzt."
|
||||
|
||||
# gui.rpy:51
|
||||
old "## The colors used for dialogue and menu choice text."
|
||||
new "## The colors used for dialogue and menu choice text."
|
||||
# Automatic translation.
|
||||
new "## Die Farben, die für Dialog- und Menüauswahltext verwendet werden."
|
||||
|
||||
# gui.rpy:56
|
||||
old "## Fonts and Font Sizes"
|
||||
new "## Fonts and Font Sizes"
|
||||
# Automatic translation.
|
||||
new "## Schriftarten und Schriftgrößen"
|
||||
|
||||
# gui.rpy:58
|
||||
old "## The font used for in-game text."
|
||||
new "## The font used for in-game text."
|
||||
# Automatic translation.
|
||||
new "## Die für den Text im Spiel verwendete Schriftart."
|
||||
|
||||
# gui.rpy:61
|
||||
old "## The font used for character names."
|
||||
new "## The font used for character names."
|
||||
# Automatic translation.
|
||||
new "## Die für Zeichennamen verwendete Schriftart."
|
||||
|
||||
# gui.rpy:64
|
||||
old "## The font used for out-of-game text."
|
||||
new "## The font used for out-of-game text."
|
||||
# Automatic translation.
|
||||
new "## Die Schriftart, die für den Text außerhalb des Spiels verwendet wird."
|
||||
|
||||
# gui.rpy:67
|
||||
old "## The size of normal dialogue text."
|
||||
new "## The size of normal dialogue text."
|
||||
# Automatic translation.
|
||||
new "## Die Größe des normalen Dialogtextes."
|
||||
|
||||
# gui.rpy:70
|
||||
old "## The size of character names."
|
||||
new "## The size of character names."
|
||||
# Automatic translation.
|
||||
new "## Die Größe der Zeichennamen."
|
||||
|
||||
# gui.rpy:73
|
||||
old "## The size of text in the game's user interface."
|
||||
new "## The size of text in the game's user interface."
|
||||
# Automatic translation.
|
||||
new "## Die Größe des Textes in der Benutzeroberfläche des Spiels."
|
||||
|
||||
# gui.rpy:76
|
||||
old "## The size of labels in the game's user interface."
|
||||
new "## The size of labels in the game's user interface."
|
||||
# Automatic translation.
|
||||
new "## Die Größe der Beschriftungen in der Benutzeroberfläche des Spiels."
|
||||
|
||||
# gui.rpy:79
|
||||
old "## The size of text on the notify screen."
|
||||
new "## The size of text on the notify screen."
|
||||
# Automatic translation.
|
||||
new "## Die Größe des Textes auf dem Benachrichtigungsbildschirm."
|
||||
|
||||
# gui.rpy:82
|
||||
old "## The size of the game's title."
|
||||
new "## The size of the game's title."
|
||||
# Automatic translation.
|
||||
new "## Die Größe des Titels des Spiels."
|
||||
|
||||
# gui.rpy:86
|
||||
old "## Main and Game Menus"
|
||||
new "## Main and Game Menus"
|
||||
# Automatic translation.
|
||||
new "## Haupt- und Spielmenü"
|
||||
|
||||
# gui.rpy:88
|
||||
old "## The images used for the main and game menus."
|
||||
new "## The images used for the main and game menus."
|
||||
# Automatic translation.
|
||||
new "## Die Bilder, die für das Haupt- und das Spielmenü verwendet werden."
|
||||
|
||||
# gui.rpy:92
|
||||
old "## Should we show the name and version of the game?"
|
||||
new "## Should we show the name and version of the game?"
|
||||
# Automatic translation.
|
||||
new "## Sollten wir den Namen und die Version des Spiels anzeigen?"
|
||||
|
||||
# gui.rpy:96
|
||||
old "## Dialogue"
|
||||
new "## Dialogue"
|
||||
# Automatic translation.
|
||||
new "*Dialog"
|
||||
|
||||
# gui.rpy:98
|
||||
old "## These variables control how dialogue is displayed on the screen one line at a time."
|
||||
new "## These variables control how dialogue is displayed on the screen one line at a time."
|
||||
# Automatic translation.
|
||||
new "## Diese Variablen steuern, wie der Dialog zeilenweise auf dem Bildschirm angezeigt wird."
|
||||
|
||||
# gui.rpy:101
|
||||
old "## The height of the textbox containing dialogue."
|
||||
new "## The height of the textbox containing dialogue."
|
||||
# Automatic translation.
|
||||
new "## Die Höhe des Textfeldes, das den Dialog enthält."
|
||||
|
||||
# gui.rpy:104
|
||||
old "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
|
||||
new "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
|
||||
# Automatic translation.
|
||||
new "## Die Platzierung des Textfeldes vertikal auf dem Bildschirm. 0.0 ist der obere Rand, 0.5 ist die Mitte und 1.0 ist der untere Rand."
|
||||
|
||||
# gui.rpy:109
|
||||
old "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
|
||||
new "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
|
||||
# Automatic translation.
|
||||
new "## Die Platzierung des Namens des sprechenden Charakters, relativ zum Textfeld. Dies kann eine ganze Anzahl von Pixeln von links oder oben sein, oder 0,5 bis zur Mitte."
|
||||
|
||||
# gui.rpy:114
|
||||
old "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
new "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
# Automatic translation.
|
||||
new "## Die horizontale Ausrichtung des Namens des Zeichens. Dies kann 0.0 für linksbündig, 0.5 für zentriert und 1.0 für rechtsbündig sein."
|
||||
|
||||
# gui.rpy:118
|
||||
old "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
|
||||
new "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
|
||||
# Automatic translation.
|
||||
new "## Die Breite, die Höhe und die Ränder des Feldes, das den Namen des Zeichens enthält, oder None, um es automatisch zu vergrößern."
|
||||
|
||||
# gui.rpy:123
|
||||
old "## The borders of the box containing the character's name, in left, top, right, bottom order."
|
||||
new "## The borders of the box containing the character's name, in left, top, right, bottom order."
|
||||
# Automatic translation.
|
||||
new "## Die Ränder des Feldes, das den Namen des Zeichens enthält, in der Reihenfolge links, oben, rechts, unten."
|
||||
|
||||
# gui.rpy:127
|
||||
old "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
|
||||
new "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
|
||||
# Automatic translation.
|
||||
new "## Wenn True, wird der Hintergrund des Namensfeldes gekachelt, wenn False, wird der Hintergrund des Namensfeldes skaliert."
|
||||
|
||||
# gui.rpy:132
|
||||
old "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
|
||||
new "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
|
||||
# Automatic translation.
|
||||
new "## Die Platzierung des Dialogs relativ zum Textfeld. Dies kann eine ganze Anzahl von Pixeln relativ zur linken oder oberen Seite des Textfeldes oder 0,5 zur Mitte sein."
|
||||
|
||||
# gui.rpy:138
|
||||
old "## The maximum width of dialogue text, in pixels."
|
||||
new "## The maximum width of dialogue text, in pixels."
|
||||
# Automatic translation.
|
||||
new "## Die maximale Breite des Dialogtextes, in Pixeln."
|
||||
|
||||
# gui.rpy:141
|
||||
old "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
new "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
# Automatic translation.
|
||||
new "## Die horizontale Ausrichtung des Dialogtextes. Dies kann 0.0 für linksbündig, 0.5 für zentriert und 1.0 für rechtsbündig sein."
|
||||
|
||||
# gui.rpy:146
|
||||
old "## Buttons"
|
||||
new "## Buttons"
|
||||
# Automatic translation.
|
||||
new "## Schaltflächen"
|
||||
|
||||
# gui.rpy:148
|
||||
old "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
|
||||
new "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
|
||||
# Automatic translation.
|
||||
new "## Diese Variablen, zusammen mit den Bilddateien in gui/button, steuern Aspekte der Darstellung von Schaltflächen."
|
||||
|
||||
# gui.rpy:151
|
||||
old "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
|
||||
new "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
|
||||
# Automatic translation.
|
||||
new "## Die Breite und Höhe einer Schaltfläche, in Pixeln. Falls keine, berechnet Ren'Py eine Größe."
|
||||
|
||||
# gui.rpy:155
|
||||
old "## The borders on each side of the button, in left, top, right, bottom order."
|
||||
new "## The borders on each side of the button, in left, top, right, bottom order."
|
||||
# Automatic translation.
|
||||
new "## Die Ränder auf jeder Seite der Schaltfläche, in der Reihenfolge links, oben, rechts, unten."
|
||||
|
||||
# gui.rpy:158
|
||||
old "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
|
||||
new "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
|
||||
# Automatic translation.
|
||||
new "## Wenn True, wird das Hintergrundbild gekachelt. Wenn False, wird das Hintergrundbild linear skaliert."
|
||||
|
||||
# gui.rpy:162
|
||||
old "## The font used by the button."
|
||||
new "## The font used by the button."
|
||||
# Automatic translation.
|
||||
new "## Die von der Schaltfläche verwendete Schriftart."
|
||||
|
||||
# gui.rpy:165
|
||||
old "## The size of the text used by the button."
|
||||
new "## The size of the text used by the button."
|
||||
# Automatic translation.
|
||||
new "## Die Größe des von der Schaltfläche verwendeten Textes."
|
||||
|
||||
# gui.rpy:179
|
||||
old "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
|
||||
new "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
|
||||
# Automatic translation.
|
||||
new "## Diese Variablen überschreiben die Einstellungen für verschiedene Arten von Schaltflächen. Bitte lesen Sie in der Gui-Dokumentation nach, welche Arten von Schaltflächen verfügbar sind und wofür sie jeweils verwendet werden."
|
||||
|
||||
# gui.rpy:183
|
||||
old "## These customizations are used by the default interface:"
|
||||
new "## These customizations are used by the default interface:"
|
||||
# Automatic translation.
|
||||
new "## Diese Anpassungen werden von der Standardschnittstelle verwendet:"
|
||||
|
||||
# gui.rpy:198
|
||||
old "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
|
||||
new "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
|
||||
# Automatic translation.
|
||||
new "## Sie können auch Ihre eigenen Anpassungen hinzufügen, indem Sie Variablen mit den richtigen Namen hinzufügen. Zum Beispiel können Sie die folgende Zeile auskommentieren, um die Breite einer Navigationsschaltfläche festzulegen."
|
||||
|
||||
# gui.rpy:205
|
||||
old "## Choice Buttons"
|
||||
new "## Choice Buttons"
|
||||
# Automatic translation.
|
||||
new "## Auswahltasten"
|
||||
|
||||
# gui.rpy:207
|
||||
old "## Choice buttons are used in the in-game menus."
|
||||
new "## Choice buttons are used in the in-game menus."
|
||||
# Automatic translation.
|
||||
new "## Wahltasten werden in den Menüs im Spiel verwendet."
|
||||
|
||||
# gui.rpy:220
|
||||
old "## File Slot Buttons"
|
||||
new "## File Slot Buttons"
|
||||
# Automatic translation.
|
||||
new "## Datei Slot Schaltflächen"
|
||||
|
||||
# gui.rpy:222
|
||||
old "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
|
||||
new "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
|
||||
# Automatic translation.
|
||||
new "## Eine Dateislot-Schaltfläche ist eine besondere Art von Schaltfläche. Er enthält ein Miniaturbild und einen Text, der den Inhalt des Speicherplatzes beschreibt. Ein Speicherslot verwendet Bilddateien in gui/button, wie die anderen Arten von Schaltflächen."
|
||||
|
||||
# gui.rpy:226
|
||||
old "## The save slot button."
|
||||
new "## The save slot button."
|
||||
# Automatic translation.
|
||||
new "## Die Schaltfläche \"Slot speichern\"."
|
||||
|
||||
# gui.rpy:234
|
||||
old "## The width and height of thumbnails used by the save slots."
|
||||
new "## The width and height of thumbnails used by the save slots."
|
||||
# Automatic translation.
|
||||
new "## Die Breite und Höhe der Miniaturbilder, die von den Speicherplätzen verwendet werden."
|
||||
|
||||
# gui.rpy:238
|
||||
old "## The number of columns and rows in the grid of save slots."
|
||||
new "## The number of columns and rows in the grid of save slots."
|
||||
# Automatic translation.
|
||||
new "## Die Anzahl der Spalten und Zeilen im Raster der Speicherplätze."
|
||||
|
||||
# gui.rpy:243
|
||||
old "## Positioning and Spacing"
|
||||
new "## Positioning and Spacing"
|
||||
# Automatic translation.
|
||||
new "## Positionierung und Abstände"
|
||||
|
||||
# gui.rpy:245
|
||||
old "## These variables control the positioning and spacing of various user interface elements."
|
||||
new "## These variables control the positioning and spacing of various user interface elements."
|
||||
# Automatic translation.
|
||||
new "## Diese Variablen steuern die Positionierung und den Abstand der verschiedenen Elemente der Benutzeroberfläche."
|
||||
|
||||
# gui.rpy:248
|
||||
old "## The position of the left side of the navigation buttons, relative to the left side of the screen."
|
||||
new "## The position of the left side of the navigation buttons, relative to the left side of the screen."
|
||||
# Automatic translation.
|
||||
new "## Die Position der linken Seite der Navigationstasten, relativ zur linken Seite des Bildschirms."
|
||||
|
||||
# gui.rpy:252
|
||||
old "## The vertical position of the skip indicator."
|
||||
new "## The vertical position of the skip indicator."
|
||||
# Automatic translation.
|
||||
new "## Die vertikale Position des Überspringungsanzeigers."
|
||||
|
||||
# gui.rpy:255
|
||||
old "## The vertical position of the notify screen."
|
||||
new "## The vertical position of the notify screen."
|
||||
# Automatic translation.
|
||||
new "## Die vertikale Position des Benachrichtigungsbildschirms."
|
||||
|
||||
# gui.rpy:258
|
||||
old "## The spacing between menu choices."
|
||||
new "## The spacing between menu choices."
|
||||
# Automatic translation.
|
||||
new "## Die Abstände zwischen den Menüoptionen."
|
||||
|
||||
# gui.rpy:261
|
||||
old "## Buttons in the navigation section of the main and game menus."
|
||||
new "## Buttons in the navigation section of the main and game menus."
|
||||
# Automatic translation.
|
||||
new "## Schaltflächen im Navigationsbereich des Haupt- und Spielmenüs."
|
||||
|
||||
# gui.rpy:264
|
||||
old "## Controls the amount of spacing between preferences."
|
||||
new "## Controls the amount of spacing between preferences."
|
||||
# Automatic translation.
|
||||
new "## Steuert den Abstand zwischen den Einstellungen."
|
||||
|
||||
# gui.rpy:267
|
||||
old "## Controls the amount of spacing between preference buttons."
|
||||
new "## Controls the amount of spacing between preference buttons."
|
||||
# Automatic translation.
|
||||
new "## Steuert den Abstand zwischen den Einstellungsschaltflächen."
|
||||
|
||||
# gui.rpy:270
|
||||
old "## The spacing between file page buttons."
|
||||
new "## The spacing between file page buttons."
|
||||
# Automatic translation.
|
||||
new "## Der Abstand zwischen den Schaltflächen der Dateiseite."
|
||||
|
||||
# gui.rpy:273
|
||||
old "## The spacing between file slots."
|
||||
new "## The spacing between file slots."
|
||||
# Automatic translation.
|
||||
new "## Der Abstand zwischen den Dateislots."
|
||||
|
||||
# gui.rpy:277
|
||||
old "## Frames"
|
||||
@@ -271,141 +337,243 @@ translate german strings:
|
||||
|
||||
# gui.rpy:279
|
||||
old "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
|
||||
new "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
|
||||
# Automatic translation.
|
||||
new "## Diese Variablen steuern das Aussehen von Frames, die Komponenten der Benutzeroberfläche enthalten können, wenn kein Overlay oder Fenster vorhanden ist."
|
||||
|
||||
# gui.rpy:282
|
||||
old "## Generic frames that are introduced by player code."
|
||||
new "## Generic frames that are introduced by player code."
|
||||
# Automatic translation.
|
||||
new "## Generische Frames, die vom Player-Code eingeführt werden."
|
||||
|
||||
# gui.rpy:285
|
||||
old "## The frame that is used as part of the confirm screen."
|
||||
new "## The frame that is used as part of the confirm screen."
|
||||
# Automatic translation.
|
||||
new "## Der Rahmen, der als Teil des Bestätigungsbildschirms verwendet wird."
|
||||
|
||||
# gui.rpy:288
|
||||
old "## The frame that is used as part of the skip screen."
|
||||
new "## The frame that is used as part of the skip screen."
|
||||
# Automatic translation.
|
||||
new "## Der Rahmen, der als Teil des Überspringungsbildschirms verwendet wird."
|
||||
|
||||
# gui.rpy:291
|
||||
old "## The frame that is used as part of the notify screen."
|
||||
new "## The frame that is used as part of the notify screen."
|
||||
# Automatic translation.
|
||||
new "## Der Rahmen, der als Teil des Benachrichtigungsbildschirms verwendet wird."
|
||||
|
||||
# gui.rpy:294
|
||||
old "## Should frame backgrounds be tiled?"
|
||||
new "## Should frame backgrounds be tiled?"
|
||||
# Automatic translation.
|
||||
new "## Sollen Rahmenhintergründe gekachelt werden?"
|
||||
|
||||
# gui.rpy:298
|
||||
old "## Bars, Scrollbars, and Sliders"
|
||||
new "## Bars, Scrollbars, and Sliders"
|
||||
# Automatic translation.
|
||||
new "## Balken, Bildlaufleisten und Schieberegler"
|
||||
|
||||
# gui.rpy:300
|
||||
old "## These control the look and size of bars, scrollbars, and sliders."
|
||||
new "## These control the look and size of bars, scrollbars, and sliders."
|
||||
# Automatic translation.
|
||||
new "## Diese steuern das Aussehen und die Größe von Balken, Bildlaufleisten und Schiebereglern."
|
||||
|
||||
# gui.rpy:302
|
||||
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
|
||||
new "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
|
||||
# Automatic translation.
|
||||
new "## Die Standard-GUI verwendet nur Schieberegler und vertikale Bildlaufleisten. Alle anderen Leisten werden nur im vom Ersteller geschriebenen Code verwendet."
|
||||
|
||||
# gui.rpy:305
|
||||
old "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
|
||||
new "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
|
||||
# Automatic translation.
|
||||
new "## Die Höhe der horizontalen Balken, Bildlaufleisten und Schieberegler. Die Breite der vertikalen Balken, Rollbalken und Schieberegler."
|
||||
|
||||
# gui.rpy:311
|
||||
old "## True if bar images should be tiled. False if they should be linearly scaled."
|
||||
new "## True if bar images should be tiled. False if they should be linearly scaled."
|
||||
# Automatic translation.
|
||||
new "## True, wenn die Balkenbilder gekachelt werden sollen. False, wenn sie linear skaliert werden sollen."
|
||||
|
||||
# gui.rpy:316
|
||||
old "## Horizontal borders."
|
||||
new "## Horizontal borders."
|
||||
# Automatic translation.
|
||||
new "## Horizontale Grenzen."
|
||||
|
||||
# gui.rpy:321
|
||||
old "## Vertical borders."
|
||||
new "## Vertical borders."
|
||||
# Automatic translation.
|
||||
new "## Vertikale Ränder."
|
||||
|
||||
# gui.rpy:326
|
||||
old "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
|
||||
new "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
|
||||
# Automatic translation.
|
||||
new "## Was man mit nicht scrollbaren Bildlaufleisten in der Benutzeroberfläche macht. \"hide\" blendet sie aus, während \"None\" sie anzeigt."
|
||||
|
||||
# gui.rpy:331
|
||||
old "## History"
|
||||
new "## History"
|
||||
# Automatic translation.
|
||||
new "## Geschichte"
|
||||
|
||||
# gui.rpy:333
|
||||
old "## The history screen displays dialogue that the player has already dismissed."
|
||||
new "## The history screen displays dialogue that the player has already dismissed."
|
||||
# Automatic translation.
|
||||
new "## Der Verlaufsbildschirm zeigt Dialoge an, die der Spieler bereits verworfen hat."
|
||||
|
||||
# gui.rpy:335
|
||||
old "## The number of blocks of dialogue history Ren'Py will keep."
|
||||
new "## The number of blocks of dialogue history Ren'Py will keep."
|
||||
# Automatic translation.
|
||||
new "## Die Anzahl der Blöcke des Dialogverlaufs, die Ren'Py behält."
|
||||
|
||||
# gui.rpy:338
|
||||
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
|
||||
new "## The height of a history screen entry, or None to make the height variable at the cost of performance."
|
||||
# Automatic translation.
|
||||
new "## Die Höhe eines Eintrags im Verlaufsbildschirm, oder None, um die Höhe auf Kosten der Leistung variabel zu machen."
|
||||
|
||||
# gui.rpy:342
|
||||
old "## The position, width, and alignment of the label giving the name of the speaking character."
|
||||
new "## The position, width, and alignment of the label giving the name of the speaking character."
|
||||
# Automatic translation.
|
||||
new "## Die Position, Breite und Ausrichtung der Beschriftung, die den Namen des sprechenden Zeichens angibt."
|
||||
|
||||
# gui.rpy:349
|
||||
old "## The position, width, and alignment of the dialogue text."
|
||||
new "## The position, width, and alignment of the dialogue text."
|
||||
# Automatic translation.
|
||||
new "## Die Position, Breite und Ausrichtung des Dialogtextes."
|
||||
|
||||
# gui.rpy:356
|
||||
old "## NVL-Mode"
|
||||
new "## NVL-Mode"
|
||||
# Automatic translation.
|
||||
new "## NVL-Modus"
|
||||
|
||||
# gui.rpy:358
|
||||
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
|
||||
new "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
|
||||
# Automatic translation.
|
||||
new "## Der NVL-Modus-Bildschirm zeigt den Dialog an, der von den Charakteren im NVL-Modus gesprochen wird."
|
||||
|
||||
# gui.rpy:360
|
||||
old "## The borders of the background of the NVL-mode background window."
|
||||
new "## The borders of the background of the NVL-mode background window."
|
||||
# Automatic translation.
|
||||
new "## Die Grenzen des Hintergrunds des Hintergrundfensters im NVL-Modus."
|
||||
|
||||
# gui.rpy:363
|
||||
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
|
||||
new "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
|
||||
# Automatic translation.
|
||||
new "## Die Höhe eines Eintrags im NVL-Modus. Setzen Sie dies auf None, um die Höhe der Einträge dynamisch anzupassen."
|
||||
|
||||
# gui.rpy:367
|
||||
old "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
|
||||
new "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
|
||||
# Automatic translation.
|
||||
new "## Der Abstand zwischen NVL-Mode-Einträgen, wenn gui.nvl_height None ist, und zwischen NVL-Mode-Einträgen und einem NVL-Mode-Menü."
|
||||
|
||||
# gui.rpy:384
|
||||
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
|
||||
new "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
|
||||
# Automatic translation.
|
||||
new "## Die Position, Breite und Ausrichtung des nvl_thought-Textes (der Text, der vom nvl_narrator-Zeichen gesprochen wird)."
|
||||
|
||||
# gui.rpy:391
|
||||
old "## The position of nvl menu_buttons."
|
||||
new "## The position of nvl menu_buttons."
|
||||
# Automatic translation.
|
||||
new "## Die Position der nvl menu_buttons."
|
||||
|
||||
# gui.rpy:403
|
||||
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
|
||||
new "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
|
||||
# Automatic translation.
|
||||
new "## Dadurch werden die Schnellschaltflächen größer, damit sie auf Tablets und Handys leichter zu erreichen sind."
|
||||
|
||||
# gui.rpy:409
|
||||
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
|
||||
new "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
|
||||
# Automatic translation.
|
||||
new "## Dies ändert die Größe und die Abstände verschiedener GUI-Elemente, um sicherzustellen, dass sie auf Handys gut sichtbar sind."
|
||||
|
||||
# gui.rpy:413
|
||||
old "## Font sizes."
|
||||
new "## Font sizes."
|
||||
# Automatic translation.
|
||||
new "## Schriftgrößen."
|
||||
|
||||
# gui.rpy:421
|
||||
old "## Adjust the location of the textbox."
|
||||
new "## Adjust the location of the textbox."
|
||||
# Automatic translation.
|
||||
new "## Passen Sie die Position des Textfeldes an."
|
||||
|
||||
# gui.rpy:427
|
||||
old "## Change the size and spacing of items in the game menu."
|
||||
new "## Change the size and spacing of items in the game menu."
|
||||
# Automatic translation.
|
||||
new "## Ändern Sie die Größe und die Abstände der Elemente im Spielmenü."
|
||||
|
||||
# gui.rpy:436
|
||||
old "## File button layout."
|
||||
new "## File button layout."
|
||||
# Automatic translation.
|
||||
new "## Layout der Schaltfläche Datei."
|
||||
|
||||
# gui.rpy:440
|
||||
old "## NVL-mode."
|
||||
new "## NVL-mode."
|
||||
# Automatic translation.
|
||||
new "## NVL-Modus."
|
||||
|
||||
# gui.rpy:456
|
||||
old "## Quick buttons."
|
||||
new "## Quick buttons."
|
||||
|
||||
|
||||
translate german strings:
|
||||
|
||||
# gui/game/gui.rpy:5
|
||||
old "## The init offset statement causes the initialization statements in this file to run before init statements in any other file."
|
||||
# Automatic translation.
|
||||
new "## Die Anweisung init offset bewirkt, dass die Initialisierungsanweisungen in dieser Datei vor den init-Anweisungen in allen anderen Dateien ausgeführt werden."
|
||||
|
||||
# gui/game/gui.rpy:14
|
||||
old "## Enable checks for invalid or unstable properties in screens or transforms"
|
||||
# Automatic translation.
|
||||
new "## Prüfungen auf ungültige oder instabile Eigenschaften in Bildschirmen oder Transformationen aktivieren"
|
||||
|
||||
# gui/game/gui.rpy:19
|
||||
old "## GUI Configuration Variables"
|
||||
# Automatic translation.
|
||||
new "## GUI-Konfigurationsvariablen"
|
||||
|
||||
# gui/game/gui.rpy:167
|
||||
old "## The color of button text in various states."
|
||||
# Automatic translation.
|
||||
new "## Die Farbe des Schaltflächentextes in verschiedenen Zuständen."
|
||||
|
||||
# gui/game/gui.rpy:173
|
||||
old "## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0 is right)."
|
||||
# Automatic translation.
|
||||
new "## Die horizontale Ausrichtung des Schaltflächentextes. (0.0 ist links, 0.5 ist mittig, 1.0 ist rechts)."
|
||||
|
||||
# gui/game/gui.rpy:278
|
||||
old "## The position of the main menu text."
|
||||
# Automatic translation.
|
||||
new "## Die Position des Hauptmenütextes."
|
||||
|
||||
# gui/game/gui.rpy:287
|
||||
old "## Generic frames."
|
||||
# Automatic translation.
|
||||
new "## Allgemeine Rahmen."
|
||||
|
||||
# gui/game/gui.rpy:307
|
||||
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written screens."
|
||||
# Automatic translation.
|
||||
new "## Die Standard-GUI verwendet nur Schieberegler und vertikale Bildlaufleisten. Alle anderen Leisten werden nur in vom Ersteller geschriebenen Bildschirmen verwendet."
|
||||
|
||||
# gui/game/gui.rpy:368
|
||||
old "## The maximum number of NVL-mode entries Ren'Py will display. When more entries than this are to be show, the oldest entry will be removed."
|
||||
# Automatic translation.
|
||||
new "## Die maximale Anzahl der Einträge im NVL-Modus, die Ren'Py anzeigt. Wenn mehr Einträge als diese Zahl angezeigt werden sollen, wird der älteste Eintrag entfernt."
|
||||
|
||||
# gui/game/gui.rpy:405
|
||||
old "## Localization"
|
||||
# Automatic translation.
|
||||
new "## Lokalisierung"
|
||||
|
||||
# gui/game/gui.rpy:407
|
||||
old "## This controls where a line break is permitted. The default is suitable for most languages. A list of available values can be found at https://www.renpy.org/doc/html/style_properties.html#style-property-language"
|
||||
# Automatic translation.
|
||||
new "## Dies steuert, wo ein Zeilenumbruch zulässig ist. Der Standardwert ist für die meisten Sprachen geeignet. Eine Liste der verfügbaren Werte finden Sie unter https://www.renpy.org/doc/html/style_properties.html#style-property-language."
|
||||
|
||||
# gui/game/gui.rpy:415
|
||||
old "## Mobile devices"
|
||||
# Automatic translation.
|
||||
new "## Mobile Geräte"
|
||||
|
||||
# gui/game/gui.rpy:446
|
||||
old "## Change the size and spacing of various things."
|
||||
# Automatic translation.
|
||||
new "## Ändern Sie die Größe und die Abstände verschiedener Dinge."
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,119 +3,148 @@ translate german strings:
|
||||
|
||||
# options.rpy:1
|
||||
old "## This file contains options that can be changed to customize your game."
|
||||
new "## This file contains options that can be changed to customize your game."
|
||||
# Automatic translation.
|
||||
new "## Diese Datei enthält Optionen, die geändert werden können, um das Spiel anzupassen."
|
||||
|
||||
# options.rpy:4
|
||||
old "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
|
||||
new "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
|
||||
# Automatic translation.
|
||||
new "## Zeilen, die mit zwei '#' beginnen, sind Kommentare und sollten nicht auskommentiert werden. Zeilen, die mit einem einzelnen '#' beginnen, sind auskommentierter Code, den Sie ggf. auskommentieren sollten."
|
||||
|
||||
# options.rpy:10
|
||||
old "## Basics"
|
||||
new "## Basics"
|
||||
# Automatic translation.
|
||||
new "## Grundlagen"
|
||||
|
||||
# options.rpy:12
|
||||
old "## A human-readable name of the game. This is used to set the default window title, and shows up in the interface and error reports."
|
||||
new "## A human-readable name of the game. This is used to set the default window title, and shows up in the interface and error reports."
|
||||
# Automatic translation.
|
||||
new "## Ein für Menschen lesbarer Name des Spiels. Dieser wird verwendet, um den Standard-Fenstertitel festzulegen, und wird in der Benutzeroberfläche und in Fehlerberichten angezeigt."
|
||||
|
||||
# options.rpy:15
|
||||
old "## The _() surrounding the string marks it as eligible for translation."
|
||||
new "## The _() surrounding the string marks it as eligible for translation."
|
||||
# Automatic translation.
|
||||
new "## Das _(), das die Zeichenkette umgibt, kennzeichnet sie als übersetzbar."
|
||||
|
||||
# options.rpy:17
|
||||
old "Ren'Py 7 Default GUI"
|
||||
new "Ren'Py 7 Default GUI"
|
||||
# Automatic translation.
|
||||
new "Ren'Py 7 Standard-GUI"
|
||||
|
||||
# options.rpy:20
|
||||
old "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
|
||||
new "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
|
||||
# Automatic translation.
|
||||
new "## Bestimmt, ob der oben angegebene Titel auf dem Hauptmenübildschirm angezeigt wird. Setzen Sie dies auf False, um den Titel auszublenden."
|
||||
|
||||
# options.rpy:26
|
||||
old "## The version of the game."
|
||||
new "## The version of the game."
|
||||
# Automatic translation.
|
||||
new "## Die Version des Spiels."
|
||||
|
||||
# options.rpy:31
|
||||
old "## Text that is placed on the game's about screen. To insert a blank line between paragraphs, write \\n\\n."
|
||||
new "## Text that is placed on the game's about screen. To insert a blank line between paragraphs, write \\n\\n."
|
||||
# Automatic translation.
|
||||
new "## Text, der auf dem Info-Bildschirm des Spiels erscheint. Um eine Leerzeile zwischen Absätzen einzufügen, schreiben Sie \\n\\n."
|
||||
|
||||
# options.rpy:37
|
||||
old "## A short name for the game used for executables and directories in the built distribution. This must be ASCII-only, and must not contain spaces, colons, or semicolons."
|
||||
new "## A short name for the game used for executables and directories in the built distribution. This must be ASCII-only, and must not contain spaces, colons, or semicolons."
|
||||
# Automatic translation.
|
||||
new "## Ein kurzer Name für das Spiel, der für ausführbare Dateien und Verzeichnisse in der erstellten Distribution verwendet wird. Er darf nur ASCII sein und keine Leerzeichen, Doppelpunkte oder Semikolons enthalten."
|
||||
|
||||
# options.rpy:44
|
||||
old "## Sounds and music"
|
||||
new "## Sounds and music"
|
||||
# Automatic translation.
|
||||
new "## Klänge und Musik"
|
||||
|
||||
# options.rpy:46
|
||||
old "## These three variables control which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
|
||||
new "## These three variables control which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
|
||||
# Automatic translation.
|
||||
new "## Diese drei Variablen steuern, welche Mixer dem Spieler standardmäßig angezeigt werden. Wird eine dieser Variablen auf False gesetzt, wird der entsprechende Mischer ausgeblendet."
|
||||
|
||||
# options.rpy:55
|
||||
old "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
|
||||
new "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
|
||||
# Automatic translation.
|
||||
new "## Um dem Benutzer die Möglichkeit zu geben, einen Testton auf dem Ton- oder Sprachkanal abzuspielen, entfernen Sie die Kommentarzeichen in der Zeile unten und verwenden Sie sie, um einen Beispielton abzuspielen."
|
||||
|
||||
# options.rpy:62
|
||||
old "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. This file will continue playing into the game, until it is stopped or another file is played."
|
||||
new "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. This file will continue playing into the game, until it is stopped or another file is played."
|
||||
# Automatic translation.
|
||||
new "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. Diese Datei wird im Spiel weiter abgespielt, bis sie gestoppt wird oder eine andere Datei abgespielt wird."
|
||||
|
||||
# options.rpy:69
|
||||
old "## Transitions"
|
||||
new "## Transitions"
|
||||
# Automatic translation.
|
||||
new "## Übergänge"
|
||||
|
||||
# options.rpy:71
|
||||
old "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
|
||||
new "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
|
||||
# Automatic translation.
|
||||
new "## Diese Variablen legen Übergänge fest, die bei bestimmten Ereignissen verwendet werden. Jede Variable sollte auf einen Übergang gesetzt werden, oder auf \"None\", um anzugeben, dass kein Übergang verwendet werden soll."
|
||||
|
||||
# options.rpy:75
|
||||
old "## Entering or exiting the game menu."
|
||||
new "## Entering or exiting the game menu."
|
||||
# Automatic translation.
|
||||
new "## Aufrufen oder Verlassen des Spielmenüs."
|
||||
|
||||
# options.rpy:81
|
||||
old "## A transition that is used after a game has been loaded."
|
||||
new "## A transition that is used after a game has been loaded."
|
||||
# Automatic translation.
|
||||
new "## Ein Übergang, der verwendet wird, nachdem ein Spiel geladen wurde."
|
||||
|
||||
# options.rpy:86
|
||||
old "## Used when entering the main menu after the game has ended."
|
||||
new "## Used when entering the main menu after the game has ended."
|
||||
# Automatic translation.
|
||||
new "## Wird verwendet, wenn das Hauptmenü nach Beendigung des Spiels aufgerufen wird."
|
||||
|
||||
# options.rpy:91
|
||||
old "## A variable to set the transition used when the game starts does not exist. Instead, use a with statement after showing the initial scene."
|
||||
new "## A variable to set the transition used when the game starts does not exist. Instead, use a with statement after showing the initial scene."
|
||||
# Automatic translation.
|
||||
new "## Eine Variable zum Festlegen des Übergangs, der beim Start des Spiels verwendet wird, existiert nicht. Verwenden Sie stattdessen eine with-Anweisung, nachdem Sie die Anfangsszene gezeigt haben."
|
||||
|
||||
# options.rpy:96
|
||||
old "## Window management"
|
||||
new "## Window management"
|
||||
# Automatic translation.
|
||||
new "## Fensterverwaltung"
|
||||
|
||||
# options.rpy:98
|
||||
old "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
|
||||
new "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
|
||||
# Automatic translation.
|
||||
new "## Dies steuert, wann das Dialogfenster angezeigt wird. Wenn \"show\", wird es immer angezeigt. Wenn \"hide\", wird es nur angezeigt, wenn ein Dialog vorhanden ist. Bei \"auto\" wird das Fenster vor Szenenanweisungen ausgeblendet und wieder eingeblendet, sobald der Dialog angezeigt wird."
|
||||
|
||||
# options.rpy:103
|
||||
old "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
|
||||
new "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
|
||||
# Automatic translation.
|
||||
new "## Nachdem das Spiel gestartet wurde, kann dies mit den Anweisungen \"window show\", \"window hide\" und \"window auto\" geändert werden."
|
||||
|
||||
# options.rpy:109
|
||||
old "## Transitions used to show and hide the dialogue window"
|
||||
new "## Transitions used to show and hide the dialogue window"
|
||||
# Automatic translation.
|
||||
new "## Übergänge zum Ein- und Ausblenden des Dialogfensters"
|
||||
|
||||
# options.rpy:115
|
||||
old "## Preference defaults"
|
||||
new "## Preference defaults"
|
||||
# Automatic translation.
|
||||
new "## Präferenzvorgaben"
|
||||
|
||||
# options.rpy:117
|
||||
old "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
|
||||
new "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
|
||||
# Automatic translation.
|
||||
new "## Steuert die Standard-Textgeschwindigkeit. Die Vorgabe 0 ist unendlich, während jede andere Zahl die Anzahl der zu tippenden Zeichen pro Sekunde angibt."
|
||||
|
||||
# options.rpy:123
|
||||
old "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
|
||||
new "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
|
||||
# Automatic translation.
|
||||
new "## Die Standardverzögerung für die automatische Weiterleitung. Größere Zahlen führen zu längeren Wartezeiten, wobei 0 bis 30 der gültige Bereich ist."
|
||||
|
||||
# options.rpy:129
|
||||
old "## Save directory"
|
||||
new "## Save directory"
|
||||
# Automatic translation.
|
||||
new "## Verzeichnis speichern"
|
||||
|
||||
# options.rpy:131
|
||||
old "## Controls the platform-specific place Ren'Py will place the save files for this game. The save files will be placed in:"
|
||||
new "## Controls the platform-specific place Ren'Py will place the save files for this game. The save files will be placed in:"
|
||||
# Automatic translation.
|
||||
new "## Legt den plattformspezifischen Ort fest, an dem Ren'Py die Speicherdateien für dieses Spiel ablegt. Die Speicherdateien werden in platziert:"
|
||||
|
||||
# options.rpy:134
|
||||
old "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
|
||||
@@ -131,7 +160,8 @@ translate german strings:
|
||||
|
||||
# options.rpy:140
|
||||
old "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
|
||||
new "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
|
||||
# Automatic translation.
|
||||
new "## Dies sollte in der Regel nicht geändert werden, und wenn doch, dann sollte es sich immer um eine Zeichenkette und nicht um einen Ausdruck handeln."
|
||||
|
||||
# options.rpy:146
|
||||
old "## Icon ########################################################################'"
|
||||
@@ -139,57 +169,98 @@ translate german strings:
|
||||
|
||||
# options.rpy:148
|
||||
old "## The icon displayed on the taskbar or dock."
|
||||
new "## The icon displayed on the taskbar or dock."
|
||||
# Automatic translation.
|
||||
new "## Das Symbol, das in der Taskleiste oder im Dock angezeigt wird."
|
||||
|
||||
# options.rpy:153
|
||||
old "## Build configuration"
|
||||
new "## Build configuration"
|
||||
# Automatic translation.
|
||||
new "## Konfiguration erstellen"
|
||||
|
||||
# options.rpy:155
|
||||
old "## This section controls how Ren'Py turns your project into distribution files."
|
||||
new "## This section controls how Ren'Py turns your project into distribution files."
|
||||
# Automatic translation.
|
||||
new "## Dieser Abschnitt steuert, wie Ren'Py Ihr Projekt in Distributionsdateien umwandelt."
|
||||
|
||||
# options.rpy:160
|
||||
old "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
|
||||
new "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
|
||||
# Automatic translation.
|
||||
new "## Die folgenden Funktionen nehmen Dateimuster an. Die Dateimuster unterscheiden nicht zwischen Groß- und Kleinschreibung und werden mit dem Pfad relativ zum Basisverzeichnis abgeglichen, mit oder ohne führendem /. Wenn mehrere Muster übereinstimmen, wird das erste verwendet."
|
||||
|
||||
# options.rpy:165
|
||||
old "## In a pattern:"
|
||||
new "## In a pattern:"
|
||||
# Automatic translation.
|
||||
new "## In einem Muster:"
|
||||
|
||||
# options.rpy:167
|
||||
old "## / is the directory separator."
|
||||
new "## / is the directory separator."
|
||||
# Automatic translation.
|
||||
new "## / ist das Verzeichnis-Trennzeichen."
|
||||
|
||||
# options.rpy:169
|
||||
old "## * matches all characters, except the directory separator."
|
||||
new "## * matches all characters, except the directory separator."
|
||||
# Automatic translation.
|
||||
new "## * trifft auf alle Zeichen zu, außer auf das Verzeichnistrennzeichen."
|
||||
|
||||
# options.rpy:171
|
||||
old "## ** matches all characters, including the directory separator."
|
||||
new "## ** matches all characters, including the directory separator."
|
||||
# Automatic translation.
|
||||
new "## ** passt auf alle Zeichen, auch auf das Verzeichnis-Trennzeichen."
|
||||
|
||||
# options.rpy:173
|
||||
old "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
|
||||
new "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
|
||||
# Automatic translation.
|
||||
new "*.txt\" findet beispielsweise txt-Dateien im Basisverzeichnis, \"game/**.ogg\" findet ogg-Dateien im Spielverzeichnis oder einem seiner Unterverzeichnisse und \"**.psd\" findet psd-Dateien überall im Projekt."
|
||||
|
||||
# options.rpy:177
|
||||
old "## Classify files as None to exclude them from the built distributions."
|
||||
new "## Classify files as None to exclude them from the built distributions."
|
||||
# Automatic translation.
|
||||
new "## Klassifizieren Sie Dateien als None, um sie von den erstellten Distributionen auszuschließen."
|
||||
|
||||
# options.rpy:185
|
||||
old "## To archive files, classify them as 'archive'."
|
||||
new "## To archive files, classify them as 'archive'."
|
||||
# Automatic translation.
|
||||
new "## Um Dateien zu archivieren, klassifizieren Sie sie als \"Archiv\"."
|
||||
|
||||
# options.rpy:190
|
||||
old "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
|
||||
new "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
|
||||
# Automatic translation.
|
||||
new "## Dateien, die den Dokumentationsmustern entsprechen, werden in einem Mac-App-Build dupliziert, sodass sie sowohl in der App als auch in der Zip-Datei erscheinen."
|
||||
|
||||
# options.rpy:196
|
||||
old "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
|
||||
new "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
|
||||
# Automatic translation.
|
||||
new "## Ein Google Play-Lizenzschlüssel ist erforderlich, um Erweiterungsdateien herunterzuladen und In-App-Käufe durchzuführen. Sie finden ihn auf der Seite \"Services & APIs\" in der Google Play-Entwicklerkonsole."
|
||||
|
||||
# options.rpy:203
|
||||
old "## The username and project name associated with an itch.io project, separated by a slash."
|
||||
new "## The username and project name associated with an itch.io project, separated by a slash."
|
||||
# Automatic translation.
|
||||
new "## Der mit einem itch.io-Projekt verbundene Benutzername und Projektname, getrennt durch einen Schrägstrich."
|
||||
|
||||
|
||||
translate german strings:
|
||||
|
||||
# gui/game/options.rpy:31
|
||||
old "## Text that is placed on the game's about screen. Place the text between the triple-quotes, and leave a blank line between paragraphs."
|
||||
# Automatic translation.
|
||||
new "## Text, der auf dem Info-Bildschirm des Spiels erscheint. Setzen Sie den Text zwischen die dreifachen Anführungszeichen und lassen Sie eine Leerzeile zwischen den Absätzen."
|
||||
|
||||
# gui/game/options.rpy:47
|
||||
old "## These three variables control, among other things, which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
|
||||
# Automatic translation.
|
||||
new "## Diese drei Variablen steuern unter anderem, welche Mixer dem Spieler standardmäßig angezeigt werden. Wird eine dieser Variablen auf False gesetzt, wird der entsprechende Mischer ausgeblendet."
|
||||
|
||||
# gui/game/options.rpy:82
|
||||
old "## Between screens of the game menu."
|
||||
# Automatic translation.
|
||||
new "## Zwischen den Bildschirmen des Spielmenüs."
|
||||
|
||||
# gui/game/options.rpy:152
|
||||
old "## Icon"
|
||||
new "## Icon"
|
||||
|
||||
# gui/game/options.rpy:203
|
||||
old "## A Google Play license key is required to perform in-app purchases. It can be found in the Google Play developer console, under \"Monetize\" > \"Monetization Setup\" > \"Licensing\"."
|
||||
# Automatic translation.
|
||||
new "## Für In-App-Käufe ist ein Google Play-Lizenzschlüssel erforderlich. Sie finden ihn in der Google Play-Entwicklerkonsole unter \"Monetize\" > \"Monetization Setup\" > \"Licensing\"."
|
||||
|
||||
|
||||
+353
-116
@@ -3,23 +3,28 @@ translate german strings:
|
||||
|
||||
# screens.rpy:9
|
||||
old "## Styles"
|
||||
new "## Styles"
|
||||
# Automatic translation.
|
||||
new "## Stile"
|
||||
|
||||
# screens.rpy:87
|
||||
old "## In-game screens"
|
||||
new "## In-game screens"
|
||||
# Automatic translation.
|
||||
new "## Bildschirme im Spiel"
|
||||
|
||||
# screens.rpy:91
|
||||
old "## Say screen"
|
||||
new "## Say screen"
|
||||
# Automatic translation.
|
||||
new "## Sagen Sie Bildschirm"
|
||||
|
||||
# screens.rpy:93
|
||||
old "## The say screen is used to display dialogue to the player. It takes two parameters, who and what, which are the name of the speaking character and the text to be displayed, respectively. (The who parameter can be None if no name is given.)"
|
||||
new "## The say screen is used to display dialogue to the player. It takes two parameters, who and what, which are the name of the speaking character and the text to be displayed, respectively. (The who parameter can be None if no name is given.)"
|
||||
# Automatic translation.
|
||||
new "## Der say-Bildschirm wird verwendet, um dem Spieler einen Dialog anzuzeigen. Er benötigt zwei Parameter, who und what, die den Namen des sprechenden Charakters bzw. den anzuzeigenden Text darstellen. (Der who-Parameter kann None sein, wenn kein Name angegeben wird.)"
|
||||
|
||||
# screens.rpy:98
|
||||
old "## This screen must create a text displayable with id \"what\", as Ren'Py uses this to manage text display. It can also create displayables with id \"who\" and id \"window\" to apply style properties."
|
||||
new "## This screen must create a text displayable with id \"what\", as Ren'Py uses this to manage text display. It can also create displayables with id \"who\" and id \"window\" to apply style properties."
|
||||
# Automatic translation.
|
||||
new "## Dieser Bildschirm muss ein Text-Displayable mit der id \"what\" erstellen, da Ren'Py dieses zur Verwaltung der Textanzeige verwendet. Es kann auch Displayables mit der id \"who\" und id \"window\" erstellen, um Stileigenschaften anzuwenden."
|
||||
|
||||
# screens.rpy:102
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#say"
|
||||
@@ -27,15 +32,18 @@ translate german strings:
|
||||
|
||||
# screens.rpy:169
|
||||
old "## Input screen"
|
||||
new "## Input screen"
|
||||
# Automatic translation.
|
||||
new "## Eingabebildschirm"
|
||||
|
||||
# screens.rpy:171
|
||||
old "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
|
||||
new "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
|
||||
# Automatic translation.
|
||||
new "## Dieser Bildschirm wird zur Anzeige von renpy.input verwendet. Der Prompt-Parameter wird verwendet, um eine Text-Eingabeaufforderung zu übergeben."
|
||||
|
||||
# screens.rpy:174
|
||||
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
|
||||
new "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
|
||||
# Automatic translation.
|
||||
new "## Dieser Bildschirm muss eine anzeigbare Eingabe mit der ID \"input\" erstellen, um die verschiedenen Eingabeparameter zu akzeptieren."
|
||||
|
||||
# screens.rpy:177
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#input"
|
||||
@@ -43,11 +51,13 @@ translate german strings:
|
||||
|
||||
# screens.rpy:205
|
||||
old "## Choice screen"
|
||||
new "## Choice screen"
|
||||
# Automatic translation.
|
||||
new "## Auswahlbildschirm"
|
||||
|
||||
# screens.rpy:207
|
||||
old "## This screen is used to display the in-game choices presented by the menu statement. The one parameter, items, is a list of objects, each with caption and action fields."
|
||||
new "## This screen is used to display the in-game choices presented by the menu statement. The one parameter, items, is a list of objects, each with caption and action fields."
|
||||
# Automatic translation.
|
||||
new "## Dieser Bildschirm wird verwendet, um die Auswahlmöglichkeiten im Spiel anzuzeigen, die von der Menüanweisung präsentiert werden. Der eine Parameter, items, ist eine Liste von Objekten, jedes mit Beschriftung und Aktionsfeldern."
|
||||
|
||||
# screens.rpy:211
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#choice"
|
||||
@@ -55,15 +65,18 @@ translate german strings:
|
||||
|
||||
# screens.rpy:221
|
||||
old "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
|
||||
new "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
|
||||
# Automatic translation.
|
||||
new "## Wenn dies wahr ist, werden die Menübeschriftungen vom Sprecher gesprochen. Bei \"false\" werden die Menübeschriftungen als leere Schaltflächen angezeigt."
|
||||
|
||||
# screens.rpy:244
|
||||
old "## Quick Menu screen"
|
||||
new "## Quick Menu screen"
|
||||
# Automatic translation.
|
||||
new "## Bildschirm Schnellmenü"
|
||||
|
||||
# screens.rpy:246
|
||||
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
|
||||
new "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
|
||||
# Automatic translation.
|
||||
new "## Das Schnellmenü wird im Spiel angezeigt, um einen einfachen Zugriff auf die Menüs außerhalb des Spiels zu ermöglichen."
|
||||
|
||||
# screens.rpy:261
|
||||
old "Back"
|
||||
@@ -71,7 +84,8 @@ translate german strings:
|
||||
|
||||
# screens.rpy:262
|
||||
old "History"
|
||||
new "History"
|
||||
# Automatic translation.
|
||||
new "Geschichte"
|
||||
|
||||
# screens.rpy:263
|
||||
old "Skip"
|
||||
@@ -99,15 +113,18 @@ translate german strings:
|
||||
|
||||
# screens.rpy:271
|
||||
old "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
|
||||
new "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
|
||||
# Automatic translation.
|
||||
new "## Dieser Code stellt sicher, dass der quick_menu-Bildschirm im Spiel angezeigt wird, wenn der Spieler die Benutzeroberfläche nicht explizit ausgeblendet hat."
|
||||
|
||||
# screens.rpy:291
|
||||
old "## Navigation screen"
|
||||
new "## Navigation screen"
|
||||
# Automatic translation.
|
||||
new "## Navigationsbildschirm"
|
||||
|
||||
# screens.rpy:293
|
||||
old "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
|
||||
new "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
|
||||
# Automatic translation.
|
||||
new "## Dieser Bildschirm ist im Haupt- und Spielmenü enthalten und ermöglicht die Navigation zu anderen Menüs und den Start des Spiels."
|
||||
|
||||
# screens.rpy:308
|
||||
old "Start"
|
||||
@@ -115,7 +132,8 @@ translate german strings:
|
||||
|
||||
# screens.rpy:316
|
||||
old "Load"
|
||||
new "Load"
|
||||
# Automatic translation.
|
||||
new "Laden Sie"
|
||||
|
||||
# screens.rpy:318
|
||||
old "Preferences"
|
||||
@@ -123,7 +141,8 @@ translate german strings:
|
||||
|
||||
# screens.rpy:322
|
||||
old "End Replay"
|
||||
new "End Replay"
|
||||
# Automatic translation.
|
||||
new "Wiederholung beenden"
|
||||
|
||||
# screens.rpy:326
|
||||
old "Main Menu"
|
||||
@@ -135,7 +154,8 @@ translate german strings:
|
||||
|
||||
# screens.rpy:332
|
||||
old "## Help isn't necessary or relevant to mobile devices."
|
||||
new "## Help isn't necessary or relevant to mobile devices."
|
||||
# Automatic translation.
|
||||
new "## Hilfe ist für mobile Geräte nicht notwendig oder relevant."
|
||||
|
||||
# screens.rpy:333
|
||||
old "Help"
|
||||
@@ -143,7 +163,8 @@ translate german strings:
|
||||
|
||||
# screens.rpy:335
|
||||
old "## The quit button is banned on iOS and unnecessary on Android."
|
||||
new "## The quit button is banned on iOS and unnecessary on Android."
|
||||
# Automatic translation.
|
||||
new "## Die Beenden-Schaltfläche ist auf iOS verboten und auf Android unnötig."
|
||||
|
||||
# screens.rpy:336
|
||||
old "Quit"
|
||||
@@ -151,11 +172,13 @@ translate german strings:
|
||||
|
||||
# screens.rpy:350
|
||||
old "## Main Menu screen"
|
||||
new "## Main Menu screen"
|
||||
# Automatic translation.
|
||||
new "## Hauptmenü-Bildschirm"
|
||||
|
||||
# screens.rpy:352
|
||||
old "## Used to display the main menu when Ren'Py starts."
|
||||
new "## Used to display the main menu when Ren'Py starts."
|
||||
# Automatic translation.
|
||||
new "## Wird verwendet, um das Hauptmenü beim Start von Ren'Py anzuzeigen."
|
||||
|
||||
# screens.rpy:354
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#main-menu"
|
||||
@@ -163,19 +186,18 @@ translate german strings:
|
||||
|
||||
# screens.rpy:369
|
||||
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
|
||||
new "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
|
||||
# Automatic translation.
|
||||
new "## Die Anweisung use enthält einen weiteren Bildschirm innerhalb dieses Bildschirms. Der eigentliche Inhalt des Hauptmenüs befindet sich auf dem Navigationsbildschirm."
|
||||
|
||||
# screens.rpy:413
|
||||
old "## Game Menu screen"
|
||||
new "## Game Menu screen"
|
||||
# Automatic translation.
|
||||
new "## Bildschirm Spielmenü"
|
||||
|
||||
# screens.rpy:415
|
||||
old "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
|
||||
new "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
|
||||
|
||||
# screens.rpy:418
|
||||
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
new "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
# Automatic translation.
|
||||
new "## Hier wird die allgemeine Grundstruktur eines Spielmenübildschirms festgelegt. Es wird mit dem Bildschirmtitel aufgerufen und zeigt den Hintergrund, den Titel und die Navigation an."
|
||||
|
||||
# screens.rpy:476
|
||||
old "Return"
|
||||
@@ -183,19 +205,23 @@ translate german strings:
|
||||
|
||||
# screens.rpy:539
|
||||
old "## About screen"
|
||||
new "## About screen"
|
||||
# Automatic translation.
|
||||
new "## Über den Bildschirm"
|
||||
|
||||
# screens.rpy:541
|
||||
old "## This screen gives credit and copyright information about the game and Ren'Py."
|
||||
new "## This screen gives credit and copyright information about the game and Ren'Py."
|
||||
# Automatic translation.
|
||||
new "## Dieser Bildschirm enthält Kredit- und Copyright-Informationen über das Spiel und Ren'Py."
|
||||
|
||||
# screens.rpy:544
|
||||
old "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
|
||||
new "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
|
||||
# Automatic translation.
|
||||
new "## Dieser Bildschirm ist nichts Besonderes und dient daher auch als Beispiel für die Erstellung eines benutzerdefinierten Bildschirms."
|
||||
|
||||
# screens.rpy:551
|
||||
old "## This use statement includes the game_menu screen inside this one. The vbox child is then included inside the viewport inside the game_menu screen."
|
||||
new "## This use statement includes the game_menu screen inside this one. The vbox child is then included inside the viewport inside the game_menu screen."
|
||||
# Automatic translation.
|
||||
new "## Diese Anweisung schließt den Bildschirm game_menu in diesen Bildschirm ein. Das vbox-Kind wird dann in das Viewport innerhalb des game_menu-Bildschirms aufgenommen."
|
||||
|
||||
# screens.rpy:561
|
||||
old "Version [config.version!t]\n"
|
||||
@@ -203,23 +229,28 @@ translate german strings:
|
||||
|
||||
# screens.rpy:563
|
||||
old "## gui.about is usually set in options.rpy."
|
||||
new "## gui.about is usually set in options.rpy."
|
||||
# Automatic translation.
|
||||
new "## gui.about wird normalerweise in options.rpy eingestellt."
|
||||
|
||||
# screens.rpy:567
|
||||
old "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
|
||||
new "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
|
||||
# Automatic translation.
|
||||
new "Hergestellt mit {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only] .\n\n[renpy.license!t]"
|
||||
|
||||
# screens.rpy:570
|
||||
old "## This is redefined in options.rpy to add text to the about screen."
|
||||
new "## This is redefined in options.rpy to add text to the about screen."
|
||||
# Automatic translation.
|
||||
new "## Dies wird in options.rpy neu definiert, um dem Info-Bildschirm Text hinzuzufügen."
|
||||
|
||||
# screens.rpy:582
|
||||
old "## Load and Save screens"
|
||||
new "## Load and Save screens"
|
||||
# Automatic translation.
|
||||
new "## Bildschirme laden und speichern"
|
||||
|
||||
# screens.rpy:584
|
||||
old "## These screens are responsible for letting the player save the game and load it again. Since they share nearly everything in common, both are implemented in terms of a third screen, file_slots."
|
||||
new "## These screens are responsible for letting the player save the game and load it again. Since they share nearly everything in common, both are implemented in terms of a third screen, file_slots."
|
||||
# Automatic translation.
|
||||
new "## Diese Bildschirme sind dafür verantwortlich, dass der Spieler das Spiel speichern und wieder laden kann. Da sie fast alles gemeinsam haben, sind beide in Form eines dritten Bildschirms, file_slots, implementiert."
|
||||
|
||||
# screens.rpy:588
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#save https://www.renpy.org/doc/html/screen_special.html#load"
|
||||
@@ -227,23 +258,28 @@ translate german strings:
|
||||
|
||||
# screens.rpy:607
|
||||
old "Page {}"
|
||||
new "Page {}"
|
||||
# Automatic translation.
|
||||
new "Seite {}"
|
||||
|
||||
# screens.rpy:607
|
||||
old "Automatic saves"
|
||||
new "Automatic saves"
|
||||
# Automatic translation.
|
||||
new "Automatisch speichern"
|
||||
|
||||
# screens.rpy:607
|
||||
old "Quick saves"
|
||||
new "Quick saves"
|
||||
# Automatic translation.
|
||||
new "Schnelles Speichern"
|
||||
|
||||
# screens.rpy:613
|
||||
old "## This ensures the input will get the enter event before any of the buttons do."
|
||||
new "## This ensures the input will get the enter event before any of the buttons do."
|
||||
# Automatic translation.
|
||||
new "## Dies stellt sicher, dass die Eingabe das Enter-Ereignis erhält, bevor es eine der Schaltflächen tut."
|
||||
|
||||
# screens.rpy:629
|
||||
old "## The grid of file slots."
|
||||
new "## The grid of file slots."
|
||||
# Automatic translation.
|
||||
new "## Das Raster der Dateislots."
|
||||
|
||||
# screens.rpy:649
|
||||
old "{#file_time}%A, %B %d %Y, %H:%M"
|
||||
@@ -251,11 +287,13 @@ translate german strings:
|
||||
|
||||
# screens.rpy:649
|
||||
old "empty slot"
|
||||
new "empty slot"
|
||||
# Automatic translation.
|
||||
new "leerer Steckplatz"
|
||||
|
||||
# screens.rpy:657
|
||||
old "## Buttons to access other pages."
|
||||
new "## Buttons to access other pages."
|
||||
# Automatic translation.
|
||||
new "## Schaltflächen für den Zugriff auf andere Seiten."
|
||||
|
||||
# screens.rpy:666
|
||||
old "<"
|
||||
@@ -275,11 +313,13 @@ translate german strings:
|
||||
|
||||
# screens.rpy:711
|
||||
old "## Preferences screen"
|
||||
new "## Preferences screen"
|
||||
# Automatic translation.
|
||||
new "## Bildschirm Präferenzen"
|
||||
|
||||
# screens.rpy:713
|
||||
old "## The preferences screen allows the player to configure the game to better suit themselves."
|
||||
new "## The preferences screen allows the player to configure the game to better suit themselves."
|
||||
# Automatic translation.
|
||||
new "## Der Einstellungsbildschirm ermöglicht es dem Spieler, das Spiel so zu konfigurieren, dass es besser zu ihm passt."
|
||||
|
||||
# screens.rpy:716
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#preferences"
|
||||
@@ -299,23 +339,28 @@ translate german strings:
|
||||
|
||||
# screens.rpy:744
|
||||
old "Rollback Side"
|
||||
new "Rollback Side"
|
||||
# Automatic translation.
|
||||
new "Rollback Seite"
|
||||
|
||||
# screens.rpy:745
|
||||
old "Disable"
|
||||
new "Disable"
|
||||
# Automatic translation.
|
||||
new "Deaktivieren Sie"
|
||||
|
||||
# screens.rpy:746
|
||||
old "Left"
|
||||
new "Left"
|
||||
# Automatic translation.
|
||||
new "Links"
|
||||
|
||||
# screens.rpy:747
|
||||
old "Right"
|
||||
new "Right"
|
||||
# Automatic translation.
|
||||
new "Rechts"
|
||||
|
||||
# screens.rpy:752
|
||||
old "Unseen Text"
|
||||
new "Unseen Text"
|
||||
# Automatic translation.
|
||||
new "Unsichtbarer Text"
|
||||
|
||||
# screens.rpy:753
|
||||
old "After Choices"
|
||||
@@ -327,7 +372,8 @@ translate german strings:
|
||||
|
||||
# screens.rpy:756
|
||||
old "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
|
||||
new "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
|
||||
# Automatic translation.
|
||||
new "## Hier können zusätzliche vboxes vom Typ \"radio_pref\" oder \"check_pref\" hinzugefügt werden, um weitere vom Ersteller definierte Einstellungen hinzuzufügen."
|
||||
|
||||
# screens.rpy:767
|
||||
old "Text Speed"
|
||||
@@ -355,15 +401,18 @@ translate german strings:
|
||||
|
||||
# screens.rpy:806
|
||||
old "Mute All"
|
||||
new "Mute All"
|
||||
# Automatic translation.
|
||||
new "Alle stummschalten"
|
||||
|
||||
# screens.rpy:882
|
||||
old "## History screen"
|
||||
new "## History screen"
|
||||
# Automatic translation.
|
||||
new "## Bildschirm Geschichte"
|
||||
|
||||
# screens.rpy:884
|
||||
old "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
|
||||
new "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
|
||||
# Automatic translation.
|
||||
new "## Dies ist ein Bildschirm, der dem Spieler den Dialogverlauf anzeigt. Es gibt zwar nichts Besonderes an diesem Bildschirm, aber er muss auf den Dialogverlauf zugreifen, der in _history_list gespeichert ist."
|
||||
|
||||
# screens.rpy:888
|
||||
old "## https://www.renpy.org/doc/html/history.html"
|
||||
@@ -371,35 +420,43 @@ translate german strings:
|
||||
|
||||
# screens.rpy:894
|
||||
old "## Avoid predicting this screen, as it can be very large."
|
||||
new "## Avoid predicting this screen, as it can be very large."
|
||||
# Automatic translation.
|
||||
new "## Vermeiden Sie es, diesen Bildschirm vorherzusehen, da er sehr groß sein kann."
|
||||
|
||||
# screens.rpy:905
|
||||
old "## This lays things out properly if history_height is None."
|
||||
new "## This lays things out properly if history_height is None."
|
||||
# Automatic translation.
|
||||
new "## Dies legt die Dinge richtig aus, wenn history_height None ist."
|
||||
|
||||
# screens.rpy:914
|
||||
old "## Take the color of the who text from the Character, if set."
|
||||
new "## Take the color of the who text from the Character, if set."
|
||||
# Automatic translation.
|
||||
new "## Übernimmt die Farbe des Wer-Textes aus dem Zeichen, falls festgelegt."
|
||||
|
||||
# screens.rpy:921
|
||||
old "The dialogue history is empty."
|
||||
new "The dialogue history is empty."
|
||||
# Automatic translation.
|
||||
new "Der Dialogverlauf ist leer."
|
||||
|
||||
# screens.rpy:965
|
||||
old "## Help screen"
|
||||
new "## Help screen"
|
||||
# Automatic translation.
|
||||
new "## Hilfe-Bildschirm"
|
||||
|
||||
# screens.rpy:967
|
||||
old "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
|
||||
new "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
|
||||
# Automatic translation.
|
||||
new "## Ein Bildschirm, der Informationen über Tasten- und Mausbelegungen liefert. Er verwendet andere Bildschirme (keyboard_help, mouse_help und gamepad_help), um die eigentliche Hilfe anzuzeigen."
|
||||
|
||||
# screens.rpy:986
|
||||
old "Keyboard"
|
||||
new "Keyboard"
|
||||
# Automatic translation.
|
||||
new "Tastatur"
|
||||
|
||||
# screens.rpy:987
|
||||
old "Mouse"
|
||||
new "Mouse"
|
||||
# Automatic translation.
|
||||
new "Maus"
|
||||
|
||||
# screens.rpy:990
|
||||
old "Gamepad"
|
||||
@@ -407,43 +464,53 @@ translate german strings:
|
||||
|
||||
# screens.rpy:1003
|
||||
old "Enter"
|
||||
new "Enter"
|
||||
# Automatic translation.
|
||||
new "Eingabe"
|
||||
|
||||
# screens.rpy:1004
|
||||
old "Advances dialogue and activates the interface."
|
||||
new "Advances dialogue and activates the interface."
|
||||
# Automatic translation.
|
||||
new "Erweitert den Dialog und aktiviert die Schnittstelle."
|
||||
|
||||
# screens.rpy:1007
|
||||
old "Space"
|
||||
new "Space"
|
||||
# Automatic translation.
|
||||
new "Weltraum"
|
||||
|
||||
# screens.rpy:1008
|
||||
old "Advances dialogue without selecting choices."
|
||||
new "Advances dialogue without selecting choices."
|
||||
# Automatic translation.
|
||||
new "Bringt den Dialog voran, ohne eine Auswahl zu treffen."
|
||||
|
||||
# screens.rpy:1011
|
||||
old "Arrow Keys"
|
||||
new "Arrow Keys"
|
||||
# Automatic translation.
|
||||
new "Pfeil-Tasten"
|
||||
|
||||
# screens.rpy:1012
|
||||
old "Navigate the interface."
|
||||
new "Navigate the interface."
|
||||
# Automatic translation.
|
||||
new "Navigieren Sie durch die Schnittstelle."
|
||||
|
||||
# screens.rpy:1015
|
||||
old "Escape"
|
||||
new "Escape"
|
||||
# Automatic translation.
|
||||
new "Flucht"
|
||||
|
||||
# screens.rpy:1016
|
||||
old "Accesses the game menu."
|
||||
new "Accesses the game menu."
|
||||
# Automatic translation.
|
||||
new "Ruft das Spielmenü auf."
|
||||
|
||||
# screens.rpy:1019
|
||||
old "Ctrl"
|
||||
new "Ctrl"
|
||||
# Automatic translation.
|
||||
new "Strg"
|
||||
|
||||
# screens.rpy:1020
|
||||
old "Skips dialogue while held down."
|
||||
new "Skips dialogue while held down."
|
||||
# Automatic translation.
|
||||
new "Überspringt Dialoge, wenn Sie die Taste gedrückt halten."
|
||||
|
||||
# screens.rpy:1023
|
||||
old "Tab"
|
||||
@@ -451,75 +518,93 @@ translate german strings:
|
||||
|
||||
# screens.rpy:1024
|
||||
old "Toggles dialogue skipping."
|
||||
new "Toggles dialogue skipping."
|
||||
# Automatic translation.
|
||||
new "Schaltet das Überspringen von Dialogen ein."
|
||||
|
||||
# screens.rpy:1027
|
||||
old "Page Up"
|
||||
new "Page Up"
|
||||
# Automatic translation.
|
||||
new "Seite oben"
|
||||
|
||||
# screens.rpy:1028
|
||||
old "Rolls back to earlier dialogue."
|
||||
new "Rolls back to earlier dialogue."
|
||||
# Automatic translation.
|
||||
new "Kehrt zu einem früheren Dialog zurück."
|
||||
|
||||
# screens.rpy:1031
|
||||
old "Page Down"
|
||||
new "Page Down"
|
||||
# Automatic translation.
|
||||
new "Seite unten"
|
||||
|
||||
# screens.rpy:1032
|
||||
old "Rolls forward to later dialogue."
|
||||
new "Rolls forward to later dialogue."
|
||||
# Automatic translation.
|
||||
new "Weiter geht's mit einem späteren Dialog."
|
||||
|
||||
# screens.rpy:1036
|
||||
old "Hides the user interface."
|
||||
new "Hides the user interface."
|
||||
# Automatic translation.
|
||||
new "Blendet die Benutzeroberfläche aus."
|
||||
|
||||
# screens.rpy:1040
|
||||
old "Takes a screenshot."
|
||||
new "Takes a screenshot."
|
||||
# Automatic translation.
|
||||
new "Nimmt einen Screenshot auf."
|
||||
|
||||
# screens.rpy:1044
|
||||
old "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
|
||||
new "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
|
||||
# Automatic translation.
|
||||
new "Schaltet das Hilfsmittel {a=https://www.renpy.org/l/voicing}selbststimmend{/a} um."
|
||||
|
||||
# screens.rpy:1050
|
||||
old "Left Click"
|
||||
new "Left Click"
|
||||
# Automatic translation.
|
||||
new "Links klicken"
|
||||
|
||||
# screens.rpy:1054
|
||||
old "Middle Click"
|
||||
new "Middle Click"
|
||||
# Automatic translation.
|
||||
new "Mittlerer Klick"
|
||||
|
||||
# screens.rpy:1058
|
||||
old "Right Click"
|
||||
new "Right Click"
|
||||
# Automatic translation.
|
||||
new "Rechtsklick"
|
||||
|
||||
# screens.rpy:1062
|
||||
old "Mouse Wheel Up\nClick Rollback Side"
|
||||
new "Mouse Wheel Up\nClick Rollback Side"
|
||||
# Automatic translation.
|
||||
new "Mausrad nach oben\nKlicken Sie auf Rollback Seite"
|
||||
|
||||
# screens.rpy:1066
|
||||
old "Mouse Wheel Down"
|
||||
new "Mouse Wheel Down"
|
||||
# Automatic translation.
|
||||
new "Mausrad nach unten"
|
||||
|
||||
# screens.rpy:1073
|
||||
old "Right Trigger\nA/Bottom Button"
|
||||
new "Right Trigger\nA/Bottom Button"
|
||||
# Automatic translation.
|
||||
new "Rechter Auslöser\nA/Unterer Knopf"
|
||||
|
||||
# screens.rpy:1074
|
||||
old "Advance dialogue and activates the interface."
|
||||
new "Advance dialogue and activates the interface."
|
||||
# Automatic translation.
|
||||
new "Erweitert den Dialog und aktiviert die Schnittstelle."
|
||||
|
||||
# screens.rpy:1078
|
||||
old "Roll back to earlier dialogue."
|
||||
new "Roll back to earlier dialogue."
|
||||
# Automatic translation.
|
||||
new "Gehen Sie zu einem früheren Dialog zurück."
|
||||
|
||||
# screens.rpy:1081
|
||||
old "Right Shoulder"
|
||||
new "Right Shoulder"
|
||||
# Automatic translation.
|
||||
new "Rechte Schulter"
|
||||
|
||||
# screens.rpy:1082
|
||||
old "Roll forward to later dialogue."
|
||||
new "Roll forward to later dialogue."
|
||||
# Automatic translation.
|
||||
new "Spulen Sie vor zu einem späteren Dialog."
|
||||
|
||||
# screens.rpy:1085
|
||||
old "D-Pad, Sticks"
|
||||
@@ -527,31 +612,38 @@ translate german strings:
|
||||
|
||||
# screens.rpy:1089
|
||||
old "Start, Guide"
|
||||
new "Start, Guide"
|
||||
# Automatic translation.
|
||||
new "Start, Leitfaden"
|
||||
|
||||
# screens.rpy:1090
|
||||
old "Access the game menu."
|
||||
new "Access the game menu."
|
||||
# Automatic translation.
|
||||
new "Rufen Sie das Spielmenü auf."
|
||||
|
||||
# screens.rpy:1093
|
||||
old "Y/Top Button"
|
||||
new "Y/Top Button"
|
||||
# Automatic translation.
|
||||
new "Y/Top-Taste"
|
||||
|
||||
# screens.rpy:1096
|
||||
old "Calibrate"
|
||||
new "Calibrate"
|
||||
# Automatic translation.
|
||||
new "Kalibrieren Sie"
|
||||
|
||||
# screens.rpy:1124
|
||||
old "## Additional screens"
|
||||
new "## Additional screens"
|
||||
# Automatic translation.
|
||||
new "## Zusätzliche Bildschirme"
|
||||
|
||||
# screens.rpy:1128
|
||||
old "## Confirm screen"
|
||||
new "## Confirm screen"
|
||||
# Automatic translation.
|
||||
new "## Bildschirm bestätigen"
|
||||
|
||||
# screens.rpy:1130
|
||||
old "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
|
||||
new "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
|
||||
# Automatic translation.
|
||||
new "## Der Bestätigungsbildschirm wird aufgerufen, wenn Ren'Py dem Spieler eine Ja- oder Nein-Frage stellen will."
|
||||
|
||||
# screens.rpy:1133
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#confirm"
|
||||
@@ -559,7 +651,8 @@ translate german strings:
|
||||
|
||||
# screens.rpy:1137
|
||||
old "## Ensure other screens do not get input while this screen is displayed."
|
||||
new "## Ensure other screens do not get input while this screen is displayed."
|
||||
# Automatic translation.
|
||||
new "## Stellen Sie sicher, dass andere Bildschirme keine Eingaben erhalten, während dieser Bildschirm angezeigt wird."
|
||||
|
||||
# screens.rpy:1161
|
||||
old "Yes"
|
||||
@@ -571,15 +664,18 @@ translate german strings:
|
||||
|
||||
# screens.rpy:1164
|
||||
old "## Right-click and escape answer \"no\"."
|
||||
new "## Right-click and escape answer \"no\"."
|
||||
# Automatic translation.
|
||||
new "## Klicken Sie mit der rechten Maustaste und geben Sie die Antwort \"Nein\" ein."
|
||||
|
||||
# screens.rpy:1191
|
||||
old "## Skip indicator screen"
|
||||
new "## Skip indicator screen"
|
||||
# Automatic translation.
|
||||
new "## Indikatorbildschirm überspringen"
|
||||
|
||||
# screens.rpy:1193
|
||||
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
|
||||
new "## The skip_indicator screen is displayed to indicate that skipping is in progress."
|
||||
# Automatic translation.
|
||||
new "## Der Bildschirm skip_indicator wird angezeigt, um zu signalisieren, dass das Überspringen im Gange ist."
|
||||
|
||||
# screens.rpy:1196
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
|
||||
@@ -587,19 +683,23 @@ translate german strings:
|
||||
|
||||
# screens.rpy:1208
|
||||
old "Skipping"
|
||||
new "Skipping"
|
||||
# Automatic translation.
|
||||
new "Überspringen"
|
||||
|
||||
# screens.rpy:1215
|
||||
old "## This transform is used to blink the arrows one after another."
|
||||
new "## This transform is used to blink the arrows one after another."
|
||||
# Automatic translation.
|
||||
new "## Diese Transformation wird verwendet, um die Pfeile nacheinander zu blinken."
|
||||
|
||||
# screens.rpy:1247
|
||||
old "## Notify screen"
|
||||
new "## Notify screen"
|
||||
# Automatic translation.
|
||||
new "## Bildschirm benachrichtigen"
|
||||
|
||||
# screens.rpy:1249
|
||||
old "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
|
||||
new "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
|
||||
# Automatic translation.
|
||||
new "## Der Benachrichtigungsbildschirm wird verwendet, um dem Spieler eine Nachricht anzuzeigen. (Zum Beispiel, wenn das Spiel schnell gespeichert wird oder ein Screenshot gemacht wurde)."
|
||||
|
||||
# screens.rpy:1252
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
|
||||
@@ -607,11 +707,13 @@ translate german strings:
|
||||
|
||||
# screens.rpy:1286
|
||||
old "## NVL screen"
|
||||
new "## NVL screen"
|
||||
# Automatic translation.
|
||||
new "## NVL-Bildschirm"
|
||||
|
||||
# screens.rpy:1288
|
||||
old "## This screen is used for NVL-mode dialogue and menus."
|
||||
new "## This screen is used for NVL-mode dialogue and menus."
|
||||
# Automatic translation.
|
||||
new "## Dieser Bildschirm wird für den Dialog und die Menüs im NVL-Modus verwendet."
|
||||
|
||||
# screens.rpy:1290
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#nvl"
|
||||
@@ -619,25 +721,160 @@ translate german strings:
|
||||
|
||||
# screens.rpy:1301
|
||||
old "## Displays dialogue in either a vpgrid or the vbox."
|
||||
new "## Displays dialogue in either a vpgrid or the vbox."
|
||||
# Automatic translation.
|
||||
new "## Zeigt den Dialog entweder in einem vpgrid oder in der vbox an."
|
||||
|
||||
# screens.rpy:1314
|
||||
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
|
||||
new "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
|
||||
# Automatic translation.
|
||||
new "## Zeigt das Menü an, falls vorhanden. Das Menü kann falsch angezeigt werden, wenn config.narrator_menu auf True gesetzt ist, wie es oben der Fall ist."
|
||||
|
||||
# screens.rpy:1344
|
||||
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
|
||||
new "## This controls the maximum number of NVL-mode entries that can be displayed at once."
|
||||
# Automatic translation.
|
||||
new "## Dies steuert die maximale Anzahl der Einträge im NVL-Modus, die gleichzeitig angezeigt werden können."
|
||||
|
||||
# screens.rpy:1406
|
||||
old "## Mobile Variants"
|
||||
new "## Mobile Variants"
|
||||
# Automatic translation.
|
||||
new "## Mobile Varianten"
|
||||
|
||||
# screens.rpy:1413
|
||||
old "## Since a mouse may not be present, we replace the quick menu with a version that uses fewer and bigger buttons that are easier to touch."
|
||||
new "## Since a mouse may not be present, we replace the quick menu with a version that uses fewer and bigger buttons that are easier to touch."
|
||||
# Automatic translation.
|
||||
new "## Da eine Maus möglicherweise nicht vorhanden ist, ersetzen wir das Schnellmenü durch eine Version mit weniger und größeren Tasten, die leichter zu berühren sind."
|
||||
|
||||
# screens.rpy:1429
|
||||
old "Menu"
|
||||
new "Menu"
|
||||
# Automatic translation.
|
||||
new "Menü"
|
||||
|
||||
|
||||
translate german strings:
|
||||
|
||||
# gui/game/screens.rpy:114
|
||||
old "## If there's a side image, display it above the text. Do not display on the phone variant - there's no room."
|
||||
# Automatic translation.
|
||||
new "## Wenn es ein Seitenbild gibt, zeigen Sie es über dem Text an. Nicht auf der Telefonvariante anzeigen - dort ist kein Platz."
|
||||
|
||||
# gui/game/screens.rpy:120
|
||||
old "## Make the namebox available for styling through the Character object."
|
||||
# Automatic translation.
|
||||
new "## Machen Sie das Namensfeld für die Gestaltung durch das Character-Objekt verfügbar."
|
||||
|
||||
# gui/game/screens.rpy:173
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#input"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#input"
|
||||
|
||||
# gui/game/screens.rpy:206
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#choice"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#choice"
|
||||
|
||||
# gui/game/screens.rpy:241
|
||||
old "## Ensure this appears on top of other screens."
|
||||
# Automatic translation.
|
||||
new "## Stellen Sie sicher, dass dies über den anderen Bildschirmen erscheint."
|
||||
|
||||
# gui/game/screens.rpy:280
|
||||
old "## Main and Game Menu Screens"
|
||||
# Automatic translation.
|
||||
new "## Haupt- und Spielmenü-Bildschirme"
|
||||
|
||||
# gui/game/screens.rpy:329
|
||||
old "## The quit button is banned on iOS and unnecessary on Android and Web."
|
||||
# Automatic translation.
|
||||
new "## Die Beenden-Schaltfläche ist auf iOS verboten und auf Android und Web unnötig."
|
||||
|
||||
# gui/game/screens.rpy:348
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#main-menu"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#main-menu"
|
||||
|
||||
# gui/game/screens.rpy:352
|
||||
old "## This ensures that any other menu screen is replaced."
|
||||
# Automatic translation.
|
||||
new "## Dadurch wird sichergestellt, dass jeder andere Menübildschirm ersetzt wird."
|
||||
|
||||
# gui/game/screens.rpy:357
|
||||
old "## This empty frame darkens the main menu."
|
||||
# Automatic translation.
|
||||
new "## Dieser leere Rahmen verdunkelt das Hauptmenü."
|
||||
|
||||
# gui/game/screens.rpy:429
|
||||
old "## Reserve space for the navigation section."
|
||||
# Automatic translation.
|
||||
new "## Reservieren Sie Platz für den Navigationsbereich."
|
||||
|
||||
# gui/game/screens.rpy:608
|
||||
old "## The page name, which can be edited by clicking on a button."
|
||||
# Automatic translation.
|
||||
new "## Der Seitenname, der durch Klicken auf eine Schaltfläche bearbeitet werden kann."
|
||||
|
||||
# gui/game/screens.rpy:668
|
||||
old "## range(1, 10) gives the numbers from 1 to 9."
|
||||
# Automatic translation.
|
||||
new "## bereich(1, 10) liefert die Zahlen von 1 bis 9."
|
||||
|
||||
# gui/game/screens.rpy:676
|
||||
old "Upload Sync"
|
||||
# Automatic translation.
|
||||
new "Sync hochladen"
|
||||
|
||||
# gui/game/screens.rpy:680
|
||||
old "Download Sync"
|
||||
# Automatic translation.
|
||||
new "Sync herunterladen"
|
||||
|
||||
# gui/game/screens.rpy:921
|
||||
old "## This determines what tags are allowed to be displayed on the history screen."
|
||||
# Automatic translation.
|
||||
new "## Hier wird festgelegt, welche Tags auf dem Verlaufsbildschirm angezeigt werden dürfen."
|
||||
|
||||
# gui/game/screens.rpy:1049
|
||||
old "Opens the accessibility menu."
|
||||
# Automatic translation.
|
||||
new "Öffnet das Menü Barrierefreiheit."
|
||||
|
||||
# gui/game/screens.rpy:1082
|
||||
old "Left Trigger\nLeft Shoulder"
|
||||
# Automatic translation.
|
||||
new "Linker Auslöser\nLinke Schulter"
|
||||
|
||||
# gui/game/screens.rpy:1139
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#confirm"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#confirm"
|
||||
|
||||
# gui/game/screens.rpy:1248
|
||||
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
|
||||
# Automatic translation.
|
||||
new "## Wir müssen eine Schriftart verwenden, die die Glyphe BLACK RIGHT-POINTING SMALL TRIANGLE enthält."
|
||||
|
||||
# gui/game/screens.rpy:1296
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#nvl"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#nvl"
|
||||
|
||||
# gui/game/screens.rpy:1320
|
||||
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True."
|
||||
# Automatic translation.
|
||||
new "## Zeigt das Menü an, falls vorhanden. Das Menü wird möglicherweise nicht korrekt angezeigt, wenn config.narrator_menu auf True gesetzt ist."
|
||||
|
||||
# gui/game/screens.rpy:1410
|
||||
old "## Bubble screen"
|
||||
# Automatic translation.
|
||||
new "## Blasenbildschirm"
|
||||
|
||||
# gui/game/screens.rpy:1412
|
||||
old "## The bubble screen is used to display dialogue to the player when using speech bubbles. The bubble screen takes the same parameters as the say screen, must create a displayable with the id of \"what\", and can create displayables with the \"namebox\", \"who\", and \"window\" ids."
|
||||
# Automatic translation.
|
||||
new "## Der Sprechblasenbildschirm wird verwendet, um dem Spieler einen Dialog anzuzeigen, wenn Sprechblasen verwendet werden. Der Sprechblasenbildschirm benötigt die gleichen Parameter wie der Sprechblasenbildschirm, muss ein Displayable mit der Id \"what\" erstellen und kann Displayables mit den Ids \"namebox\", \"who\" und \"window\" erstellen."
|
||||
|
||||
# gui/game/screens.rpy:1417
|
||||
old "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
|
||||
new "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# gui/game/screens.rpy:411
|
||||
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". This screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
# Automatic translation.
|
||||
new "## Der Parameter scroll kann None oder einer der Parameter \"viewport\" oder \"vpgrid\" sein. Dieser Bildschirm soll mit einem oder mehreren Kindern verwendet werden, die in ihn eingeschlossen (platziert) werden."
|
||||
|
||||
|
||||
@@ -199,7 +199,8 @@ translate greek strings:
|
||||
|
||||
# 00gui.rpy:236
|
||||
old "Are you sure you want to skip unseen dialogue to the next choice?"
|
||||
new "Are you sure you want to skip unseen dialogue to the next choice?"
|
||||
# Automatic translation.
|
||||
new "Είστε σίγουροι ότι θέλετε να παραλείψετε τον αθέατο διάλογο για την επόμενη επιλογή;"
|
||||
|
||||
# 00keymap.rpy:250
|
||||
old "Saved screenshot as %s."
|
||||
@@ -223,7 +224,8 @@ translate greek strings:
|
||||
|
||||
# 00library.rpy:262
|
||||
old "This program contains free software under a number of licenses, including the MIT License and GNU Lesser General Public License. A complete list of software, including links to full source code, can be found {a=https://www.renpy.org/l/license}here{/a}."
|
||||
new "This program contains free software under a number of licenses, including the MIT License and GNU Lesser General Public License. A complete list of software, including links to full source code, can be found {a=https://www.renpy.org/l/license}here{/a}."
|
||||
# Automatic translation.
|
||||
new "Αυτό το πρόγραμμα περιέχει ελεύθερο λογισμικό υπό διάφορες άδειες χρήσης, συμπεριλαμβανομένης της Άδειας MIT και της Άδειας GNU Lesser General Public License. Ένας πλήρης κατάλογος του λογισμικού, συμπεριλαμβανομένων των συνδέσμων προς τον πλήρη πηγαίο κώδικα, μπορεί να βρεθεί {a=https://www.renpy.org/l/license}εδώ{/a}."
|
||||
|
||||
# 00preferences.rpy:422
|
||||
old "Clipboard voicing enabled. Press 'shift+C' to disable."
|
||||
@@ -239,7 +241,8 @@ translate greek strings:
|
||||
|
||||
# 00iap.rpy:217
|
||||
old "Contacting App Store\nPlease Wait..."
|
||||
new "Contacting App Store\nPlease Wait..."
|
||||
# Automatic translation.
|
||||
new "Επικοινωνία με το App Store\nΠαρακαλώ περιμένετε..."
|
||||
|
||||
# 00updater.rpy:367
|
||||
old "The Ren'Py Updater is not supported on mobile devices."
|
||||
@@ -333,3 +336,651 @@ translate greek strings:
|
||||
old "return"
|
||||
new "επιστροφή"
|
||||
|
||||
|
||||
translate greek strings:
|
||||
|
||||
# renpy/common/00accessibility.rpy:32
|
||||
old "bar"
|
||||
# Automatic translation.
|
||||
new "μπαρ"
|
||||
|
||||
# renpy/common/00accessibility.rpy:33
|
||||
old "selected"
|
||||
# Automatic translation.
|
||||
new "επιλεγμένο"
|
||||
|
||||
# renpy/common/00accessibility.rpy:34
|
||||
old "viewport"
|
||||
# Automatic translation.
|
||||
new "παράθυρο προβολής"
|
||||
|
||||
# renpy/common/00accessibility.rpy:35
|
||||
old "horizontal scroll"
|
||||
# Automatic translation.
|
||||
new "οριζόντια κύλιση"
|
||||
|
||||
# renpy/common/00accessibility.rpy:36
|
||||
old "vertical scroll"
|
||||
# Automatic translation.
|
||||
new "κατακόρυφη κύλιση"
|
||||
|
||||
# renpy/common/00accessibility.rpy:37
|
||||
old "activate"
|
||||
# Automatic translation.
|
||||
new "ενεργοποιήστε το"
|
||||
|
||||
# renpy/common/00accessibility.rpy:38
|
||||
old "deactivate"
|
||||
# Automatic translation.
|
||||
new "απενεργοποίηση"
|
||||
|
||||
# renpy/common/00accessibility.rpy:39
|
||||
old "increase"
|
||||
# Automatic translation.
|
||||
new "αύξηση"
|
||||
|
||||
# renpy/common/00accessibility.rpy:40
|
||||
old "decrease"
|
||||
# Automatic translation.
|
||||
new "μείωση"
|
||||
|
||||
# renpy/common/00accessibility.rpy:138
|
||||
old "Font Override"
|
||||
# Automatic translation.
|
||||
new "Παράκαμψη γραμματοσειράς"
|
||||
|
||||
# renpy/common/00accessibility.rpy:142
|
||||
old "Default"
|
||||
# Automatic translation.
|
||||
new "Προεπιλογή"
|
||||
|
||||
# renpy/common/00accessibility.rpy:146
|
||||
old "DejaVu Sans"
|
||||
new "DejaVu Sans"
|
||||
|
||||
# renpy/common/00accessibility.rpy:150
|
||||
old "Opendyslexic"
|
||||
new "Opendyslexic"
|
||||
|
||||
# renpy/common/00accessibility.rpy:156
|
||||
old "Text Size Scaling"
|
||||
# Automatic translation.
|
||||
new "Κλιμάκωση μεγέθους κειμένου"
|
||||
|
||||
# renpy/common/00accessibility.rpy:162
|
||||
old "Reset"
|
||||
# Automatic translation.
|
||||
new "Επαναφορά"
|
||||
|
||||
# renpy/common/00accessibility.rpy:168
|
||||
old "Line Spacing Scaling"
|
||||
# Automatic translation.
|
||||
new "Απόσταση γραμμής Κλιμάκωση"
|
||||
|
||||
# renpy/common/00accessibility.rpy:180
|
||||
old "High Contrast Text"
|
||||
# Automatic translation.
|
||||
new "Κείμενο υψηλής αντίθεσης"
|
||||
|
||||
# renpy/common/00accessibility.rpy:193
|
||||
old "Self-Voicing"
|
||||
# Automatic translation.
|
||||
new "Αυτο-ομιλία"
|
||||
|
||||
# renpy/common/00accessibility.rpy:197
|
||||
old "Off"
|
||||
new "Off"
|
||||
|
||||
# renpy/common/00accessibility.rpy:201
|
||||
old "Text-to-speech"
|
||||
# Automatic translation.
|
||||
new "Μετατροπή κειμένου σε ομιλία"
|
||||
|
||||
# renpy/common/00accessibility.rpy:205
|
||||
old "Clipboard"
|
||||
# Automatic translation.
|
||||
new "Πρόχειρο"
|
||||
|
||||
# renpy/common/00accessibility.rpy:209
|
||||
old "Debug"
|
||||
# Automatic translation.
|
||||
new "Αποσφαλμάτωση"
|
||||
|
||||
# renpy/common/00accessibility.rpy:223
|
||||
old "Self-Voicing Volume Drop"
|
||||
# Automatic translation.
|
||||
new "Πτώση όγκου αυτο-ομιλίας"
|
||||
|
||||
# renpy/common/00accessibility.rpy:234
|
||||
old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was."
|
||||
# Automatic translation.
|
||||
new "Οι επιλογές σε αυτό το μενού αποσκοπούν στη βελτίωση της προσβασιμότητας. Ενδέχεται να μην λειτουργούν με όλα τα παιχνίδια και ορισμένοι συνδυασμοί επιλογών ενδέχεται να καταστήσουν το παιχνίδι μη αναπαραγώγιμο. Αυτό δεν αποτελεί πρόβλημα με το παιχνίδι ή τη μηχανή. Για καλύτερα αποτελέσματα κατά την αλλαγή των γραμματοσειρών, προσπαθήστε να διατηρήσετε το μέγεθος του κειμένου στο ίδιο μέγεθος με το αρχικό."
|
||||
|
||||
# renpy/common/00action_file.rpy:378
|
||||
old "Save slot %s: [text]"
|
||||
# Automatic translation.
|
||||
new "Αποθήκευση υποδοχής %s: [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:461
|
||||
old "Load slot %s: [text]"
|
||||
# Automatic translation.
|
||||
new "Φορτώστε την υποδοχή %s: [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:514
|
||||
old "Delete slot [text]"
|
||||
# Automatic translation.
|
||||
new "Διαγραφή υποδοχής [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:593
|
||||
old "File page auto"
|
||||
# Automatic translation.
|
||||
new "Αυτόματη σελίδα αρχείου"
|
||||
|
||||
# renpy/common/00action_file.rpy:595
|
||||
old "File page quick"
|
||||
# Automatic translation.
|
||||
new "Σελίδα αρχείου γρήγορη"
|
||||
|
||||
# renpy/common/00action_file.rpy:597
|
||||
old "File page [text]"
|
||||
# Automatic translation.
|
||||
new "Σελίδα αρχείου [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:796
|
||||
old "Next file page."
|
||||
# Automatic translation.
|
||||
new "Επόμενη σελίδα αρχείου."
|
||||
|
||||
# renpy/common/00action_file.rpy:868
|
||||
old "Previous file page."
|
||||
# Automatic translation.
|
||||
new "Προηγούμενη σελίδα αρχείου."
|
||||
|
||||
# renpy/common/00action_file.rpy:944
|
||||
old "Quick save."
|
||||
# Automatic translation.
|
||||
new "Γρήγορη αποθήκευση."
|
||||
|
||||
# renpy/common/00action_file.rpy:963
|
||||
old "Quick load."
|
||||
# Automatic translation.
|
||||
new "Γρήγορη φόρτωση."
|
||||
|
||||
# renpy/common/00action_other.rpy:381
|
||||
old "Language [text]"
|
||||
# Automatic translation.
|
||||
new "Γλώσσα [text]"
|
||||
|
||||
# renpy/common/00director.rpy:705
|
||||
old "The interactive director is not enabled here."
|
||||
# Automatic translation.
|
||||
new "Ο διαδραστικός σκηνοθέτης δεν είναι ενεργοποιημένος εδώ."
|
||||
|
||||
# renpy/common/00director.rpy:1504
|
||||
old "⬆"
|
||||
new "⬆"
|
||||
|
||||
# renpy/common/00director.rpy:1510
|
||||
old "⬇"
|
||||
new "⬇"
|
||||
|
||||
# renpy/common/00director.rpy:1574
|
||||
old "Done"
|
||||
# Automatic translation.
|
||||
new "Έγινε"
|
||||
|
||||
# renpy/common/00director.rpy:1584
|
||||
old "(statement)"
|
||||
# Automatic translation.
|
||||
new "(δήλωση)"
|
||||
|
||||
# renpy/common/00director.rpy:1585
|
||||
old "(tag)"
|
||||
# Automatic translation.
|
||||
new "(ετικέτα)"
|
||||
|
||||
# renpy/common/00director.rpy:1586
|
||||
old "(attributes)"
|
||||
# Automatic translation.
|
||||
new "(χαρακτηριστικά)"
|
||||
|
||||
# renpy/common/00director.rpy:1587
|
||||
old "(transform)"
|
||||
new "(transform)"
|
||||
|
||||
# renpy/common/00director.rpy:1612
|
||||
old "(transition)"
|
||||
new "(transition)"
|
||||
|
||||
# renpy/common/00director.rpy:1624
|
||||
old "(channel)"
|
||||
# Automatic translation.
|
||||
new "(κανάλι)"
|
||||
|
||||
# renpy/common/00director.rpy:1625
|
||||
old "(filename)"
|
||||
# Automatic translation.
|
||||
new "(όνομα αρχείου)"
|
||||
|
||||
# renpy/common/00director.rpy:1654
|
||||
old "Change"
|
||||
# Automatic translation.
|
||||
new "Αλλαγή"
|
||||
|
||||
# renpy/common/00director.rpy:1656
|
||||
old "Add"
|
||||
# Automatic translation.
|
||||
new "Προσθέστε"
|
||||
|
||||
# renpy/common/00director.rpy:1662
|
||||
old "Remove"
|
||||
# Automatic translation.
|
||||
new "Αφαιρέστε το"
|
||||
|
||||
# renpy/common/00director.rpy:1697
|
||||
old "Statement:"
|
||||
# Automatic translation.
|
||||
new "Δήλωση:"
|
||||
|
||||
# renpy/common/00director.rpy:1718
|
||||
old "Tag:"
|
||||
# Automatic translation.
|
||||
new "Ετικέτα:"
|
||||
|
||||
# renpy/common/00director.rpy:1734
|
||||
old "Attributes:"
|
||||
# Automatic translation.
|
||||
new "Χαρακτηριστικά:"
|
||||
|
||||
# renpy/common/00director.rpy:1745
|
||||
old "Click to toggle attribute, right click to toggle negative attribute."
|
||||
# Automatic translation.
|
||||
new "Κάντε κλικ για εναλλαγή χαρακτηριστικών, δεξί κλικ για εναλλαγή αρνητικών χαρακτηριστικών."
|
||||
|
||||
# renpy/common/00director.rpy:1757
|
||||
old "Transforms:"
|
||||
# Automatic translation.
|
||||
new "Μετασχηματισμοί:"
|
||||
|
||||
# renpy/common/00director.rpy:1768
|
||||
old "Click to set transform, right click to add to transform list."
|
||||
# Automatic translation.
|
||||
new "Κάντε κλικ για να ορίσετε μετασχηματισμό, κάντε δεξί κλικ για να προσθέσετε στη λίστα μετασχηματισμών."
|
||||
|
||||
# renpy/common/00director.rpy:1780
|
||||
old "Behind:"
|
||||
# Automatic translation.
|
||||
new "Πίσω:"
|
||||
|
||||
# renpy/common/00director.rpy:1789
|
||||
old "Click to set, right click to add to behind list."
|
||||
# Automatic translation.
|
||||
new "Κάντε κλικ για να ορίσετε, κάντε δεξί κλικ για να προσθέσετε στη λίστα πίσω."
|
||||
|
||||
# renpy/common/00director.rpy:1801
|
||||
old "Transition:"
|
||||
# Automatic translation.
|
||||
new "Μετάβαση:"
|
||||
|
||||
# renpy/common/00director.rpy:1819
|
||||
old "Channel:"
|
||||
# Automatic translation.
|
||||
new "Κανάλι:"
|
||||
|
||||
# renpy/common/00director.rpy:1837
|
||||
old "Audio Filename:"
|
||||
# Automatic translation.
|
||||
new "Όνομα αρχείου ήχου:"
|
||||
|
||||
# renpy/common/00gui.rpy:456
|
||||
old "This save was created on a different device. Maliciously constructed save files can harm your computer. Do you trust this save's creator and everyone who could have changed the file?"
|
||||
# Automatic translation.
|
||||
new "Αυτή η αποθήκευση δημιουργήθηκε σε διαφορετική συσκευή. Τα κακόβουλα κατασκευασμένα αρχεία αποθήκευσης μπορούν να βλάψουν τον υπολογιστή σας. Εμπιστεύεστε τον δημιουργό αυτής της αποθήκευσης και όλους όσους θα μπορούσαν να έχουν αλλάξει το αρχείο;"
|
||||
|
||||
# renpy/common/00gui.rpy:457
|
||||
old "Do you trust the device the save was created on? You should only choose yes if you are the device's sole user."
|
||||
# Automatic translation.
|
||||
new "Εμπιστεύεστε τη συσκευή στην οποία δημιουργήθηκε η αποθήκευση; Θα πρέπει να επιλέξετε ναι μόνο αν είστε ο μοναδικός χρήστης της συσκευής."
|
||||
|
||||
# renpy/common/00keymap.rpy:322
|
||||
old "Failed to save screenshot as %s."
|
||||
# Automatic translation.
|
||||
new "Απέτυχε η αποθήκευση στιγμιότυπου οθόνης ως %s."
|
||||
|
||||
# renpy/common/00preferences.rpy:271
|
||||
old "display"
|
||||
# Automatic translation.
|
||||
new "οθόνη"
|
||||
|
||||
# renpy/common/00preferences.rpy:283
|
||||
old "transitions"
|
||||
# Automatic translation.
|
||||
new "μεταβάσεις"
|
||||
|
||||
# renpy/common/00preferences.rpy:292
|
||||
old "skip transitions"
|
||||
# Automatic translation.
|
||||
new "παράλειψη μεταβάσεων"
|
||||
|
||||
# renpy/common/00preferences.rpy:294
|
||||
old "video sprites"
|
||||
# Automatic translation.
|
||||
new "sprites βίντεο"
|
||||
|
||||
# renpy/common/00preferences.rpy:303
|
||||
old "show empty window"
|
||||
# Automatic translation.
|
||||
new "Εμφάνιση κενού παραθύρου"
|
||||
|
||||
# renpy/common/00preferences.rpy:312
|
||||
old "text speed"
|
||||
# Automatic translation.
|
||||
new "ταχύτητα κειμένου"
|
||||
|
||||
# renpy/common/00preferences.rpy:320
|
||||
old "joystick"
|
||||
new "joystick"
|
||||
|
||||
# renpy/common/00preferences.rpy:320
|
||||
old "joystick..."
|
||||
new "joystick..."
|
||||
|
||||
# renpy/common/00preferences.rpy:327
|
||||
old "skip"
|
||||
# Automatic translation.
|
||||
new "παράλειψη"
|
||||
|
||||
# renpy/common/00preferences.rpy:330
|
||||
old "skip unseen [text]"
|
||||
new "skip unseen [text]"
|
||||
|
||||
# renpy/common/00preferences.rpy:335
|
||||
old "skip unseen text"
|
||||
# Automatic translation.
|
||||
new "παράλειψη αθέατου κειμένου"
|
||||
|
||||
# renpy/common/00preferences.rpy:337
|
||||
old "begin skipping"
|
||||
# Automatic translation.
|
||||
new "αρχίστε να παραλείπετε"
|
||||
|
||||
# renpy/common/00preferences.rpy:341
|
||||
old "after choices"
|
||||
# Automatic translation.
|
||||
new "μετά από επιλογές"
|
||||
|
||||
# renpy/common/00preferences.rpy:348
|
||||
old "skip after choices"
|
||||
# Automatic translation.
|
||||
new "skip μετά από επιλογές"
|
||||
|
||||
# renpy/common/00preferences.rpy:350
|
||||
old "auto-forward time"
|
||||
# Automatic translation.
|
||||
new "χρόνος αυτόματης προώθησης"
|
||||
|
||||
# renpy/common/00preferences.rpy:364
|
||||
old "auto-forward"
|
||||
# Automatic translation.
|
||||
new "αυτόματη προώθηση"
|
||||
|
||||
# renpy/common/00preferences.rpy:371
|
||||
old "Auto forward"
|
||||
# Automatic translation.
|
||||
new "Αυτόματη προώθηση"
|
||||
|
||||
# renpy/common/00preferences.rpy:374
|
||||
old "auto-forward after click"
|
||||
# Automatic translation.
|
||||
new "αυτόματη προώθηση μετά από κλικ"
|
||||
|
||||
# renpy/common/00preferences.rpy:383
|
||||
old "automatic move"
|
||||
# Automatic translation.
|
||||
new "αυτόματη κίνηση"
|
||||
|
||||
# renpy/common/00preferences.rpy:392
|
||||
old "wait for voice"
|
||||
# Automatic translation.
|
||||
new "περιμένετε τη φωνή"
|
||||
|
||||
# renpy/common/00preferences.rpy:401
|
||||
old "voice sustain"
|
||||
# Automatic translation.
|
||||
new "διατήρηση της φωνής"
|
||||
|
||||
# renpy/common/00preferences.rpy:410
|
||||
old "self voicing"
|
||||
# Automatic translation.
|
||||
new "αυτοφωνητική"
|
||||
|
||||
# renpy/common/00preferences.rpy:419
|
||||
old "self voicing volume drop"
|
||||
# Automatic translation.
|
||||
new "πτώση όγκου αυτοφωνήματος"
|
||||
|
||||
# renpy/common/00preferences.rpy:427
|
||||
old "clipboard voicing"
|
||||
# Automatic translation.
|
||||
new "εκφώνηση με πρόχειρο"
|
||||
|
||||
# renpy/common/00preferences.rpy:436
|
||||
old "debug voicing"
|
||||
new "debug voicing"
|
||||
|
||||
# renpy/common/00preferences.rpy:445
|
||||
old "emphasize audio"
|
||||
# Automatic translation.
|
||||
new "δώστε έμφαση στον ήχο"
|
||||
|
||||
# renpy/common/00preferences.rpy:454
|
||||
old "rollback side"
|
||||
# Automatic translation.
|
||||
new "πλευρά επαναφοράς"
|
||||
|
||||
# renpy/common/00preferences.rpy:464
|
||||
old "gl powersave"
|
||||
new "gl powersave"
|
||||
|
||||
# renpy/common/00preferences.rpy:470
|
||||
old "gl framerate"
|
||||
new "gl framerate"
|
||||
|
||||
# renpy/common/00preferences.rpy:473
|
||||
old "gl tearing"
|
||||
new "gl tearing"
|
||||
|
||||
# renpy/common/00preferences.rpy:476
|
||||
old "font transform"
|
||||
# Automatic translation.
|
||||
new "μετασχηματισμός γραμματοσειράς"
|
||||
|
||||
# renpy/common/00preferences.rpy:479
|
||||
old "font size"
|
||||
# Automatic translation.
|
||||
new "μέγεθος γραμματοσειράς"
|
||||
|
||||
# renpy/common/00preferences.rpy:487
|
||||
old "font line spacing"
|
||||
# Automatic translation.
|
||||
new "απόσταση γραμμών γραμματοσειράς"
|
||||
|
||||
# renpy/common/00preferences.rpy:495
|
||||
old "system cursor"
|
||||
# Automatic translation.
|
||||
new "δρομέας συστήματος"
|
||||
|
||||
# renpy/common/00preferences.rpy:504
|
||||
old "renderer menu"
|
||||
# Automatic translation.
|
||||
new "μενού renderer"
|
||||
|
||||
# renpy/common/00preferences.rpy:507
|
||||
old "accessibility menu"
|
||||
# Automatic translation.
|
||||
new "μενού προσβασιμότητας"
|
||||
|
||||
# renpy/common/00preferences.rpy:510
|
||||
old "high contrast text"
|
||||
# Automatic translation.
|
||||
new "κείμενο υψηλής αντίθεσης"
|
||||
|
||||
# renpy/common/00preferences.rpy:519
|
||||
old "audio when minimized"
|
||||
# Automatic translation.
|
||||
new "ήχος όταν ελαχιστοποιείται"
|
||||
|
||||
# renpy/common/00preferences.rpy:528
|
||||
old "audio when unfocused"
|
||||
# Automatic translation.
|
||||
new "ήχος όταν δεν είναι εστιασμένος"
|
||||
|
||||
# renpy/common/00preferences.rpy:537
|
||||
old "web cache preload"
|
||||
# Automatic translation.
|
||||
new "προφόρτωση της προσωρινής μνήμης web"
|
||||
|
||||
# renpy/common/00preferences.rpy:552
|
||||
old "voice after game menu"
|
||||
# Automatic translation.
|
||||
new "φωνή μετά το μενού του παιχνιδιού"
|
||||
|
||||
# renpy/common/00preferences.rpy:571
|
||||
old "main volume"
|
||||
# Automatic translation.
|
||||
new "κύριος όγκος"
|
||||
|
||||
# renpy/common/00preferences.rpy:572
|
||||
old "music volume"
|
||||
# Automatic translation.
|
||||
new "ένταση της μουσικής"
|
||||
|
||||
# renpy/common/00preferences.rpy:573
|
||||
old "sound volume"
|
||||
# Automatic translation.
|
||||
new "ένταση ήχου"
|
||||
|
||||
# renpy/common/00preferences.rpy:574
|
||||
old "voice volume"
|
||||
# Automatic translation.
|
||||
new "ένταση φωνής"
|
||||
|
||||
# renpy/common/00preferences.rpy:575
|
||||
old "mute main"
|
||||
new "mute main"
|
||||
|
||||
# renpy/common/00preferences.rpy:576
|
||||
old "mute music"
|
||||
# Automatic translation.
|
||||
new "σίγαση μουσικής"
|
||||
|
||||
# renpy/common/00preferences.rpy:577
|
||||
old "mute sound"
|
||||
# Automatic translation.
|
||||
new "σίγαση ήχου"
|
||||
|
||||
# renpy/common/00preferences.rpy:578
|
||||
old "mute voice"
|
||||
# Automatic translation.
|
||||
new "σίγαση φωνής"
|
||||
|
||||
# renpy/common/00preferences.rpy:579
|
||||
old "mute all"
|
||||
# Automatic translation.
|
||||
new "σίγαση όλων"
|
||||
|
||||
# renpy/common/00speechbubble.rpy:344
|
||||
old "Speech Bubble Editor"
|
||||
# Automatic translation.
|
||||
new "Επεξεργαστής φυσαλίδων ομιλίας"
|
||||
|
||||
# renpy/common/00speechbubble.rpy:349
|
||||
old "(hide)"
|
||||
# Automatic translation.
|
||||
new "(απόκρυψη)"
|
||||
|
||||
# renpy/common/00sync.rpy:70
|
||||
old "Sync downloaded."
|
||||
# Automatic translation.
|
||||
new "Συγχρονισμός κατεβάσει."
|
||||
|
||||
# renpy/common/00sync.rpy:190
|
||||
old "Could not connect to the Ren'Py Sync server."
|
||||
# Automatic translation.
|
||||
new "Δεν ήταν δυνατή η σύνδεση με τον διακομιστή Ren'Py Sync."
|
||||
|
||||
# renpy/common/00sync.rpy:192
|
||||
old "The Ren'Py Sync server timed out."
|
||||
# Automatic translation.
|
||||
new "Ο διακομιστής Ren'Py Sync έπαψε να λειτουργεί."
|
||||
|
||||
# renpy/common/00sync.rpy:194
|
||||
old "An unknown error occurred while connecting to the Ren'Py Sync server."
|
||||
# Automatic translation.
|
||||
new "Προέκυψε άγνωστο σφάλμα κατά τη σύνδεση με τον διακομιστή Ren'Py Sync."
|
||||
|
||||
# renpy/common/00sync.rpy:267
|
||||
old "The Ren'Py Sync server does not have a copy of this sync. The sync ID may be invalid, or it may have timed out."
|
||||
# Automatic translation.
|
||||
new "Ο διακομιστής Ren'Py Sync δεν έχει αντίγραφο αυτού του συγχρονισμού. Το αναγνωριστικό συγχρονισμού μπορεί να είναι άκυρο ή να έχει λήξει."
|
||||
|
||||
# renpy/common/00sync.rpy:409
|
||||
old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself."
|
||||
# Automatic translation.
|
||||
new "Εισάγετε το αναγνωριστικό συγχρονισμού που δημιουργήσατε.\nΠοτέ μην εισάγετε ένα αναγνωριστικό συγχρονισμού που δεν έχετε δημιουργήσει εσείς."
|
||||
|
||||
# renpy/common/00sync.rpy:428
|
||||
old "The sync ID is not in the correct format."
|
||||
# Automatic translation.
|
||||
new "Το αναγνωριστικό συγχρονισμού δεν έχει τη σωστή μορφή."
|
||||
|
||||
# renpy/common/00sync.rpy:448
|
||||
old "The sync could not be decrypted."
|
||||
# Automatic translation.
|
||||
new "Ο συγχρονισμός δεν μπόρεσε να αποκρυπτογραφηθεί."
|
||||
|
||||
# renpy/common/00sync.rpy:471
|
||||
old "The sync belongs to a different game."
|
||||
# Automatic translation.
|
||||
new "Ο συγχρονισμός ανήκει σε διαφορετικό παιχνίδι."
|
||||
|
||||
# renpy/common/00sync.rpy:476
|
||||
old "The sync contains a file with an invalid name."
|
||||
# Automatic translation.
|
||||
new "Ο συγχρονισμός περιέχει ένα αρχείο με μη έγκυρο όνομα."
|
||||
|
||||
# renpy/common/00sync.rpy:529
|
||||
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
|
||||
# Automatic translation.
|
||||
new "Αυτό θα μεταφορτώσει τις αποθηκεύσεις σας στον {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nΘέλετε να συνεχίσετε;"
|
||||
|
||||
# renpy/common/00sync.rpy:558
|
||||
old "Enter Sync ID"
|
||||
# Automatic translation.
|
||||
new "Εισάγετε το αναγνωριστικό συγχρονισμού"
|
||||
|
||||
# renpy/common/00sync.rpy:569
|
||||
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
|
||||
# Automatic translation.
|
||||
new "Αυτό θα επικοινωνήσει με τον διακομιστή συγχρονισμού {a=https://sync.renpy.org}Ren'Py{/a}."
|
||||
|
||||
# renpy/common/00sync.rpy:596
|
||||
old "Sync Success"
|
||||
# Automatic translation.
|
||||
new "Επιτυχία συγχρονισμού"
|
||||
|
||||
# renpy/common/00sync.rpy:599
|
||||
old "The Sync ID is:"
|
||||
# Automatic translation.
|
||||
new "Το αναγνωριστικό συγχρονισμού είναι:"
|
||||
|
||||
# renpy/common/00sync.rpy:605
|
||||
old "You can use this ID to download your save on another device.\nThis sync will expire in an hour.\nRen'Py Sync is supported by {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}."
|
||||
# Automatic translation.
|
||||
new "Μπορείτε να χρησιμοποιήσετε αυτό το αναγνωριστικό για να κατεβάσετε την αποθήκευσή σας σε άλλη συσκευή.\nΑυτός ο συγχρονισμός θα λήξει σε μία ώρα.\nΤο Ren'Py Sync υποστηρίζεται από το {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}."
|
||||
|
||||
# renpy/common/00sync.rpy:631
|
||||
old "Sync Error"
|
||||
# Automatic translation.
|
||||
new "Σφάλμα συγχρονισμού"
|
||||
|
||||
|
||||
@@ -75,7 +75,8 @@ translate greek strings:
|
||||
|
||||
# _developer/developer.rpym:532
|
||||
old "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
|
||||
new "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
|
||||
# Automatic translation.
|
||||
new "\n{color=#cfc}✔ προβλεπόμενη εικόνα (καλή){/color}\n{color=#fcc}✘ απρόβλεπτη εικόνα (κακή){/color}\n{color=#fff}Σύρετε για να μετακινηθείτε.{/color}"
|
||||
|
||||
# _developer/inspector.rpym:38
|
||||
old "Displayable Inspector"
|
||||
@@ -177,3 +178,110 @@ translate greek strings:
|
||||
old "jump <label>: jumps to label"
|
||||
new "jump <label>: μεταπηδάει την εκτέλεση κώδικα στην ετικέτα label"
|
||||
|
||||
|
||||
translate greek strings:
|
||||
|
||||
# renpy/common/_developer/developer.rpym:43
|
||||
old "Interactive Director (D)"
|
||||
# Automatic translation.
|
||||
new "Διευθυντής διαδραστικότητας (D)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:51
|
||||
old "Persistent Viewer"
|
||||
# Automatic translation.
|
||||
new "Επίμονη προβολή"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:59
|
||||
old "Show Image Load Log (F4)"
|
||||
# Automatic translation.
|
||||
new "Εμφάνιση αρχείου καταγραφής φόρτωσης εικόνας (F4)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:62
|
||||
old "Hide Image Load Log (F4)"
|
||||
# Automatic translation.
|
||||
new "Απόκρυψη αρχείου καταγραφής φόρτωσης εικόνας (F4)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:65
|
||||
old "Image Attributes"
|
||||
# Automatic translation.
|
||||
new "Χαρακτηριστικά εικόνας"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:70
|
||||
old "Speech Bubble Editor (Shift+B)"
|
||||
# Automatic translation.
|
||||
new "Επεξεργαστής φυσαλίδων ομιλίας (Shift+B)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:97
|
||||
old "[name] [attributes] (hidden)"
|
||||
# Automatic translation.
|
||||
new "[name] [attributes] (κρυφό)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:101
|
||||
old "[name] [attributes]"
|
||||
new "[name] [attributes]"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:162
|
||||
old "Hide deleted"
|
||||
# Automatic translation.
|
||||
new "Απόκρυψη διαγράφεται"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:162
|
||||
old "Show deleted"
|
||||
# Automatic translation.
|
||||
new "Εμφάνιση διαγράφεται"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:389
|
||||
old "Type to filter: "
|
||||
# Automatic translation.
|
||||
new "Τύπος για φιλτράρισμα: "
|
||||
|
||||
# renpy/common/_developer/developer.rpym:507
|
||||
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
|
||||
# Automatic translation.
|
||||
new "Υφές: [tex_count] ([tex_size_mb:.1f] MB)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:511
|
||||
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
# Automatic translation.
|
||||
new "Κρυφή μνήμη εικόνων: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
|
||||
# renpy/common/00console.rpy:789
|
||||
old "help: show this help\n help <expr>: show signature and documentation of <expr>"
|
||||
# Automatic translation.
|
||||
new "help: δείξτε αυτή τη βοήθεια\n help <expr>: Εμφάνιση της υπογραφής και της τεκμηρίωσης της <expr>"
|
||||
|
||||
# renpy/common/00console.rpy:813
|
||||
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
|
||||
# Automatic translation.
|
||||
new "Η βοήθεια μπορεί να εμφανίζει μη τεκμηριωμένες λειτουργίες. Ελέγξτε ότι η λειτουργία ή η\nκλάση που θέλετε να χρησιμοποιήσετε είναι τεκμηριωμένη.\n\n"
|
||||
|
||||
# renpy/common/00console.rpy:854
|
||||
old "stack: print the return stack"
|
||||
# Automatic translation.
|
||||
new "stack: εκτύπωση της στοίβας επιστροφής"
|
||||
|
||||
# renpy/common/00console.rpy:908
|
||||
old "watch <expression>: watch a python expression\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is"
|
||||
# Automatic translation.
|
||||
new "watch <expression>: παρακολουθήστε μια έκφραση python\n watch short: κάνει την αναπαράσταση των ανιχνευόμενων εκφράσεων σύντομη (προεπιλογή)\n watch long: κάνει την αναπαράσταση των ιχνηλατημένων εκφράσεων όπως είναι"
|
||||
|
||||
# renpy/common/00console.rpy:1028
|
||||
old "short: Shorten the representation of objects on the console (default)."
|
||||
# Automatic translation.
|
||||
new "short: Συντομεύει την αναπαράσταση των αντικειμένων στην κονσόλα (προεπιλογή)."
|
||||
|
||||
# renpy/common/00console.rpy:1032
|
||||
old "long: Print the full representation of objects on the console."
|
||||
# Automatic translation.
|
||||
new "long: Εκτύπωση της πλήρους αναπαράστασης των αντικειμένων στην κονσόλα."
|
||||
|
||||
# renpy/common/00console.rpy:1036
|
||||
old "escape: Enables escaping of unicode symbols in unicode strings."
|
||||
# Automatic translation.
|
||||
new "escape: Ενεργοποιεί τη διαφυγή συμβόλων unicode σε συμβολοσειρές unicode."
|
||||
|
||||
# renpy/common/00console.rpy:1040
|
||||
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
|
||||
# Automatic translation.
|
||||
new "unescape: Απενεργοποιεί τη διαφυγή των συμβόλων unicode σε συμβολοσειρές unicode και την εκτύπωση ως έχει (προεπιλογή)."
|
||||
|
||||
|
||||
@@ -177,3 +177,133 @@ translate greek strings:
|
||||
old "Copies the errors.txt file to the clipboard."
|
||||
new "Αντιγράφει το errors.txt στο clipboard."
|
||||
|
||||
|
||||
translate greek strings:
|
||||
|
||||
# renpy/common/00gltest.rpy:89
|
||||
old "Renderer"
|
||||
new "Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:100
|
||||
old "Force GL Renderer"
|
||||
new "Force GL Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:105
|
||||
old "Force ANGLE Renderer"
|
||||
new "Force ANGLE Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:110
|
||||
old "Force GLES Renderer"
|
||||
# Automatic translation.
|
||||
new "Εξαναγκασμός GLES Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:116
|
||||
old "Force GL2 Renderer"
|
||||
new "Force GL2 Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:121
|
||||
old "Force ANGLE2 Renderer"
|
||||
# Automatic translation.
|
||||
new "Δύναμη ANGLE2 Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:126
|
||||
old "Force GLES2 Renderer"
|
||||
# Automatic translation.
|
||||
new "Εξαναγκασμός GLES2 Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:136
|
||||
old "Enable (No Blocklist)"
|
||||
# Automatic translation.
|
||||
new "Ενεργοποίηση (Χωρίς λίστα αποκλεισμού)"
|
||||
|
||||
# renpy/common/00gltest.rpy:159
|
||||
old "Powersave"
|
||||
new "Powersave"
|
||||
|
||||
# renpy/common/00gltest.rpy:173
|
||||
old "Framerate"
|
||||
# Automatic translation.
|
||||
new "Ταχύτητα καρέ"
|
||||
|
||||
# renpy/common/00gltest.rpy:177
|
||||
old "Screen"
|
||||
# Automatic translation.
|
||||
new "Οθόνη"
|
||||
|
||||
# renpy/common/00gltest.rpy:181
|
||||
old "60"
|
||||
new "60"
|
||||
|
||||
# renpy/common/00gltest.rpy:185
|
||||
old "30"
|
||||
new "30"
|
||||
|
||||
# renpy/common/00gltest.rpy:191
|
||||
old "Tearing"
|
||||
new "Tearing"
|
||||
|
||||
# renpy/common/00gltest.rpy:249
|
||||
old "This game requires use of GL2 that can't be initialised."
|
||||
# Automatic translation.
|
||||
new "Αυτό το παιχνίδι απαιτεί τη χρήση του GL2 που δεν μπορεί να αρχικοποιηθεί."
|
||||
|
||||
# renpy/common/00gltest.rpy:259
|
||||
old "The {a=edit:1:log.txt}log.txt{/a} file may contain information to help you determine what is wrong with your computer."
|
||||
# Automatic translation.
|
||||
new "Το αρχείο {a=edit:1:log.txt}log.txt{/a} μπορεί να περιέχει πληροφορίες που θα σας βοηθήσουν να προσδιορίσετε τι συμβαίνει με τον υπολογιστή σας."
|
||||
|
||||
# renpy/common/00gltest.rpy:264
|
||||
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
|
||||
# Automatic translation.
|
||||
new "Περισσότερες λεπτομέρειες για το πώς να το διορθώσετε αυτό μπορείτε να βρείτε στην τεκμηρίωση {a=[url]}{/a} ."
|
||||
|
||||
# renpy/common/00gltest.rpy:281
|
||||
old "Change render options"
|
||||
# Automatic translation.
|
||||
new "Αλλαγή επιλογών απόδοσης"
|
||||
|
||||
# renpy/common/00gamepad.rpy:58
|
||||
old "Press or move the '[control!s]' [kind]."
|
||||
# Automatic translation.
|
||||
new "Πατήστε ή μετακινήστε το '[control!s]' [kind]."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:555
|
||||
old "Open"
|
||||
# Automatic translation.
|
||||
new "Ανοίξτε το"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:559
|
||||
old "Copy BBCode"
|
||||
# Automatic translation.
|
||||
new "Αντιγραφή κώδικα BBCode"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:561
|
||||
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
|
||||
# Automatic translation.
|
||||
new "Αντιγράφει το αρχείο traceback.txt στο πρόχειρο ως BBcode για φόρουμ όπως το https://lemmasoft.renai.us/."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:563
|
||||
old "Copy Markdown"
|
||||
# Automatic translation.
|
||||
new "Αντιγραφή Markdown"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:565
|
||||
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
|
||||
# Automatic translation.
|
||||
new "Αντιγράφει το αρχείο traceback.txt στο πρόχειρο ως Markdown για το Discord."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:626
|
||||
old "Ignores the exception, allowing you to continue."
|
||||
# Automatic translation.
|
||||
new "Αγνοεί την εξαίρεση, επιτρέποντάς σας να συνεχίσετε."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:637
|
||||
old "Console"
|
||||
# Automatic translation.
|
||||
new "Κονσόλα"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:639
|
||||
old "Opens a console to allow debugging the problem."
|
||||
# Automatic translation.
|
||||
new "Ανοίγει μια κονσόλα για να επιτρέψει την αποσφαλμάτωση του προβλήματος."
|
||||
|
||||
|
||||
+268
-100
@@ -3,267 +3,333 @@ translate greek strings:
|
||||
|
||||
# gui.rpy:2
|
||||
old "## Initialization"
|
||||
new "## Initialization"
|
||||
# Automatic translation.
|
||||
new "## Αρχικοποίηση"
|
||||
|
||||
# gui.rpy:5
|
||||
old "## The init offset statement causes the init code in this file to run before init code in any other file."
|
||||
new "## The init offset statement causes the init code in this file to run before init code in any other file."
|
||||
# Automatic translation.
|
||||
new "## Η εντολή offset init προκαλεί την εκτέλεση του κώδικα init αυτού του αρχείου πριν από τον κώδικα init οποιουδήποτε άλλου αρχείου."
|
||||
|
||||
# gui.rpy:9
|
||||
old "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
|
||||
new "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
|
||||
# Automatic translation.
|
||||
new "## Η κλήση του gui.init επαναφέρει τα στυλ στις λογικές προεπιλεγμένες τιμές και ορίζει το πλάτος και το ύψος του παιχνιδιού."
|
||||
|
||||
# gui.rpy:21
|
||||
old "## Colors"
|
||||
new "## Colors"
|
||||
# Automatic translation.
|
||||
new "## Χρώματα"
|
||||
|
||||
# gui.rpy:23
|
||||
old "## The colors of text in the interface."
|
||||
new "## The colors of text in the interface."
|
||||
# Automatic translation.
|
||||
new "## Τα χρώματα του κειμένου στη διεπαφή."
|
||||
|
||||
# gui.rpy:25
|
||||
old "## An accent color used throughout the interface to label and highlight text."
|
||||
new "## An accent color used throughout the interface to label and highlight text."
|
||||
# Automatic translation.
|
||||
new "## Ένα χρώμα έμφασης που χρησιμοποιείται σε όλη τη διασύνδεση για την επισήμανση και την υπογράμμιση του κειμένου."
|
||||
|
||||
# gui.rpy:29
|
||||
old "## The color used for a text button when it is neither selected nor hovered."
|
||||
new "## The color used for a text button when it is neither selected nor hovered."
|
||||
# Automatic translation.
|
||||
new "## Το χρώμα που χρησιμοποιείται για ένα κουμπί κειμένου όταν αυτό δεν είναι επιλεγμένο ούτε αιωρείται."
|
||||
|
||||
# gui.rpy:32
|
||||
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
|
||||
new "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
|
||||
# Automatic translation.
|
||||
new "## Το μικρό χρώμα χρησιμοποιείται για μικρό κείμενο, το οποίο πρέπει να είναι πιο φωτεινό/σκούρο για να επιτευχθεί το ίδιο αποτέλεσμα."
|
||||
|
||||
# gui.rpy:36
|
||||
old "## The color that is used for buttons and bars that are hovered."
|
||||
new "## The color that is used for buttons and bars that are hovered."
|
||||
# Automatic translation.
|
||||
new "## Το χρώμα που χρησιμοποιείται για τα κουμπιά και τις μπάρες που αιωρούνται."
|
||||
|
||||
# gui.rpy:39
|
||||
old "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
|
||||
new "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
|
||||
# Automatic translation.
|
||||
new "## Το χρώμα που χρησιμοποιείται για ένα κουμπί κειμένου όταν είναι επιλεγμένο αλλά όχι εστιασμένο. Ένα κουμπί είναι επιλεγμένο εάν είναι η τρέχουσα οθόνη ή η τιμή προτίμησης."
|
||||
|
||||
# gui.rpy:43
|
||||
old "## The color used for a text button when it cannot be selected."
|
||||
new "## The color used for a text button when it cannot be selected."
|
||||
# Automatic translation.
|
||||
new "## Το χρώμα που χρησιμοποιείται για ένα κουμπί κειμένου όταν αυτό δεν μπορεί να επιλεγεί."
|
||||
|
||||
# gui.rpy:46
|
||||
old "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
|
||||
new "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
|
||||
# Automatic translation.
|
||||
new "## Χρώματα που χρησιμοποιούνται για τα τμήματα των ράβδων που δεν είναι συμπληρωμένα. Αυτά δεν χρησιμοποιούνται άμεσα, αλλά χρησιμοποιούνται κατά την επαναδημιουργία αρχείων εικόνας ράβδων."
|
||||
|
||||
# gui.rpy:51
|
||||
old "## The colors used for dialogue and menu choice text."
|
||||
new "## The colors used for dialogue and menu choice text."
|
||||
# Automatic translation.
|
||||
new "## Τα χρώματα που χρησιμοποιούνται για το κείμενο των διαλόγων και των επιλογών μενού."
|
||||
|
||||
# gui.rpy:56
|
||||
old "## Fonts and Font Sizes"
|
||||
new "## Fonts and Font Sizes"
|
||||
# Automatic translation.
|
||||
new "## Γραμματοσειρές και μεγέθη γραμματοσειρών"
|
||||
|
||||
# gui.rpy:58
|
||||
old "## The font used for in-game text."
|
||||
new "## The font used for in-game text."
|
||||
# Automatic translation.
|
||||
new "## Η γραμματοσειρά που χρησιμοποιείται για το κείμενο στο παιχνίδι."
|
||||
|
||||
# gui.rpy:61
|
||||
old "## The font used for character names."
|
||||
new "## The font used for character names."
|
||||
# Automatic translation.
|
||||
new "## Η γραμματοσειρά που χρησιμοποιείται για τα ονόματα των χαρακτήρων."
|
||||
|
||||
# gui.rpy:64
|
||||
old "## The font used for out-of-game text."
|
||||
new "## The font used for out-of-game text."
|
||||
# Automatic translation.
|
||||
new "## Η γραμματοσειρά που χρησιμοποιείται για το κείμενο εκτός παιχνιδιού."
|
||||
|
||||
# gui.rpy:67
|
||||
old "## The size of normal dialogue text."
|
||||
new "## The size of normal dialogue text."
|
||||
# Automatic translation.
|
||||
new "## Το μέγεθος του κανονικού κειμένου διαλόγου."
|
||||
|
||||
# gui.rpy:70
|
||||
old "## The size of character names."
|
||||
new "## The size of character names."
|
||||
# Automatic translation.
|
||||
new "## Το μέγεθος των ονομάτων χαρακτήρων."
|
||||
|
||||
# gui.rpy:73
|
||||
old "## The size of text in the game's user interface."
|
||||
new "## The size of text in the game's user interface."
|
||||
# Automatic translation.
|
||||
new "## Το μέγεθος του κειμένου στη διεπαφή χρήστη του παιχνιδιού."
|
||||
|
||||
# gui.rpy:76
|
||||
old "## The size of labels in the game's user interface."
|
||||
new "## The size of labels in the game's user interface."
|
||||
# Automatic translation.
|
||||
new "## Το μέγεθος των ετικετών στη διεπαφή χρήστη του παιχνιδιού."
|
||||
|
||||
# gui.rpy:79
|
||||
old "## The size of text on the notify screen."
|
||||
new "## The size of text on the notify screen."
|
||||
# Automatic translation.
|
||||
new "## Το μέγεθος του κειμένου στην οθόνη ειδοποίησης."
|
||||
|
||||
# gui.rpy:82
|
||||
old "## The size of the game's title."
|
||||
new "## The size of the game's title."
|
||||
# Automatic translation.
|
||||
new "## Το μέγεθος του τίτλου του παιχνιδιού."
|
||||
|
||||
# gui.rpy:86
|
||||
old "## Main and Game Menus"
|
||||
new "## Main and Game Menus"
|
||||
# Automatic translation.
|
||||
new "## Κύριο μενού και μενού παιχνιδιού"
|
||||
|
||||
# gui.rpy:88
|
||||
old "## The images used for the main and game menus."
|
||||
new "## The images used for the main and game menus."
|
||||
# Automatic translation.
|
||||
new "## Οι εικόνες που χρησιμοποιούνται για το κύριο μενού και το μενού του παιχνιδιού."
|
||||
|
||||
# gui.rpy:92
|
||||
old "## Should we show the name and version of the game?"
|
||||
new "## Should we show the name and version of the game?"
|
||||
# Automatic translation.
|
||||
new "## Θα πρέπει να δείξουμε το όνομα και την έκδοση του παιχνιδιού;"
|
||||
|
||||
# gui.rpy:96
|
||||
old "## Dialogue"
|
||||
new "## Dialogue"
|
||||
# Automatic translation.
|
||||
new "## Διάλογος"
|
||||
|
||||
# gui.rpy:98
|
||||
old "## These variables control how dialogue is displayed on the screen one line at a time."
|
||||
new "## These variables control how dialogue is displayed on the screen one line at a time."
|
||||
# Automatic translation.
|
||||
new "## Αυτές οι μεταβλητές ελέγχουν τον τρόπο με τον οποίο ο διάλογος εμφανίζεται στην οθόνη μία γραμμή κάθε φορά."
|
||||
|
||||
# gui.rpy:101
|
||||
old "## The height of the textbox containing dialogue."
|
||||
new "## The height of the textbox containing dialogue."
|
||||
# Automatic translation.
|
||||
new "## Το ύψος του πλαισίου κειμένου που περιέχει το διάλογο."
|
||||
|
||||
# gui.rpy:104
|
||||
old "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
|
||||
new "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
|
||||
# Automatic translation.
|
||||
new "## Η τοποθέτηση του πλαισίου κειμένου κάθετα στην οθόνη. Το 0.0 είναι το πάνω μέρος, το 0.5 είναι το κέντρο και το 1.0 είναι το κάτω μέρος."
|
||||
|
||||
# gui.rpy:109
|
||||
old "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
|
||||
new "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
|
||||
# Automatic translation.
|
||||
new "## Η τοποθέτηση του ονόματος του χαρακτήρα που μιλάει, σε σχέση με το πλαίσιο κειμένου. Αυτά μπορεί να είναι ένας ακέραιος αριθμός εικονοστοιχείων από τα αριστερά ή την κορυφή ή 0,5 προς το κέντρο."
|
||||
|
||||
# gui.rpy:114
|
||||
old "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
new "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
# Automatic translation.
|
||||
new "## Η οριζόντια στοίχιση του ονόματος του χαρακτήρα. Αυτή μπορεί να είναι 0.0 για αριστερή στοίχιση, 0.5 για κεντραρισμένη και 1.0 για δεξιά στοίχιση."
|
||||
|
||||
# gui.rpy:118
|
||||
old "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
|
||||
new "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
|
||||
# Automatic translation.
|
||||
new "## Το πλάτος, το ύψος και τα περιθώρια του πλαισίου που περιέχει το όνομα του χαρακτήρα, ή Κανένα για αυτόματο μέγεθος."
|
||||
|
||||
# gui.rpy:123
|
||||
old "## The borders of the box containing the character's name, in left, top, right, bottom order."
|
||||
new "## The borders of the box containing the character's name, in left, top, right, bottom order."
|
||||
# Automatic translation.
|
||||
new "## Τα όρια του πλαισίου που περιέχει το όνομα του χαρακτήρα, με τη σειρά αριστερά, πάνω, δεξιά, κάτω."
|
||||
|
||||
# gui.rpy:127
|
||||
old "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
|
||||
new "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
|
||||
# Automatic translation.
|
||||
new "## Αν είναι True, το φόντο του πλαισίου ονόματος θα είναι τοποθετημένο σε πλακάκια, αν είναι False, το φόντο του πλαισίου ονόματος θα είναι κλιμακωτό."
|
||||
|
||||
# gui.rpy:132
|
||||
old "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
|
||||
new "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
|
||||
# Automatic translation.
|
||||
new "## Η τοποθέτηση του διαλόγου σε σχέση με το πλαίσιο κειμένου. Αυτά μπορεί να είναι ένας ακέραιος αριθμός εικονοστοιχείων σε σχέση με την αριστερή ή την επάνω πλευρά του πλαισίου κειμένου ή 0,5 στο κέντρο."
|
||||
|
||||
# gui.rpy:138
|
||||
old "## The maximum width of dialogue text, in pixels."
|
||||
new "## The maximum width of dialogue text, in pixels."
|
||||
# Automatic translation.
|
||||
new "## Το μέγιστο πλάτος του κειμένου διαλόγου, σε pixels."
|
||||
|
||||
# gui.rpy:141
|
||||
old "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
new "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
|
||||
# Automatic translation.
|
||||
new "## Η οριζόντια στοίχιση του κειμένου διαλόγου. Μπορεί να είναι 0.0 για αριστερή στοίχιση, 0.5 για κεντραρισμένη και 1.0 για δεξιά στοίχιση."
|
||||
|
||||
# gui.rpy:146
|
||||
old "## Buttons"
|
||||
new "## Buttons"
|
||||
# Automatic translation.
|
||||
new "## Κουμπιά"
|
||||
|
||||
# gui.rpy:148
|
||||
old "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
|
||||
new "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
|
||||
# Automatic translation.
|
||||
new "## Αυτές οι μεταβλητές, μαζί με τα αρχεία εικόνας στο gui/button, ελέγχουν πτυχές του τρόπου εμφάνισης των κουμπιών."
|
||||
|
||||
# gui.rpy:151
|
||||
old "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
|
||||
new "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
|
||||
# Automatic translation.
|
||||
new "## Το πλάτος και το ύψος ενός κουμπιού, σε pixels. Αν δεν υπάρχει, η Ren'Py υπολογίζει ένα μέγεθος."
|
||||
|
||||
# gui.rpy:155
|
||||
old "## The borders on each side of the button, in left, top, right, bottom order."
|
||||
new "## The borders on each side of the button, in left, top, right, bottom order."
|
||||
# Automatic translation.
|
||||
new "## Τα περιθώρια σε κάθε πλευρά του κουμπιού, με τη σειρά αριστερά, πάνω, δεξιά, κάτω."
|
||||
|
||||
# gui.rpy:158
|
||||
old "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
|
||||
new "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
|
||||
# Automatic translation.
|
||||
new "## Αν είναι True, η εικόνα φόντου θα είναι σε μορφή πλακιδίων. Αν False, η εικόνα φόντου θα κλιμακώνεται γραμμικά."
|
||||
|
||||
# gui.rpy:162
|
||||
old "## The font used by the button."
|
||||
new "## The font used by the button."
|
||||
# Automatic translation.
|
||||
new "## Η γραμματοσειρά που χρησιμοποιείται από το κουμπί."
|
||||
|
||||
# gui.rpy:165
|
||||
old "## The size of the text used by the button."
|
||||
new "## The size of the text used by the button."
|
||||
# Automatic translation.
|
||||
new "## Το μέγεθος του κειμένου που χρησιμοποιείται από το κουμπί."
|
||||
|
||||
# gui.rpy:179
|
||||
old "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
|
||||
new "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
|
||||
# Automatic translation.
|
||||
new "## Αυτές οι μεταβλητές παρακάμπτουν τις ρυθμίσεις για διαφορετικά είδη κουμπιών. Ανατρέξτε στην τεκμηρίωση του gui για τα είδη των διαθέσιμων κουμπιών και για τι χρησιμοποιείται το καθένα."
|
||||
|
||||
# gui.rpy:183
|
||||
old "## These customizations are used by the default interface:"
|
||||
new "## These customizations are used by the default interface:"
|
||||
# Automatic translation.
|
||||
new "## Αυτές οι προσαρμογές χρησιμοποιούνται από την προεπιλεγμένη διασύνδεση:"
|
||||
|
||||
# gui.rpy:198
|
||||
old "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
|
||||
new "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
|
||||
# Automatic translation.
|
||||
new "## Μπορείτε επίσης να προσθέσετε τις δικές σας προσαρμογές, προσθέτοντας μεταβλητές με τα κατάλληλα ονόματα. Για παράδειγμα, μπορείτε να ξεσχολιάσετε την ακόλουθη γραμμή για να ορίσετε το πλάτος ενός κουμπιού πλοήγησης."
|
||||
|
||||
# gui.rpy:205
|
||||
old "## Choice Buttons"
|
||||
new "## Choice Buttons"
|
||||
# Automatic translation.
|
||||
new "## Κουμπιά επιλογής"
|
||||
|
||||
# gui.rpy:207
|
||||
old "## Choice buttons are used in the in-game menus."
|
||||
new "## Choice buttons are used in the in-game menus."
|
||||
# Automatic translation.
|
||||
new "## Τα κουμπιά επιλογής χρησιμοποιούνται στα μενού του παιχνιδιού."
|
||||
|
||||
# gui.rpy:220
|
||||
old "## File Slot Buttons"
|
||||
new "## File Slot Buttons"
|
||||
# Automatic translation.
|
||||
new "## Κουμπιά υποδοχής αρχείων"
|
||||
|
||||
# gui.rpy:222
|
||||
old "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
|
||||
new "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
|
||||
# Automatic translation.
|
||||
new "## Το κουμπί υποδοχής αρχείων είναι ένα ειδικό είδος κουμπιού. Περιέχει μια εικόνα μικρογραφίας και κείμενο που περιγράφει τα περιεχόμενα της θυρίδας αποθήκευσης. Ένα save slot χρησιμοποιεί αρχεία εικόνας στο gui/button, όπως και τα άλλα είδη κουμπιών."
|
||||
|
||||
# gui.rpy:226
|
||||
old "## The save slot button."
|
||||
new "## The save slot button."
|
||||
# Automatic translation.
|
||||
new "## Το κουμπί save slot."
|
||||
|
||||
# gui.rpy:234
|
||||
old "## The width and height of thumbnails used by the save slots."
|
||||
new "## The width and height of thumbnails used by the save slots."
|
||||
# Automatic translation.
|
||||
new "## Το πλάτος και το ύψος των μικρογραφιών που χρησιμοποιούνται από τις υποδοχές αποθήκευσης."
|
||||
|
||||
# gui.rpy:238
|
||||
old "## The number of columns and rows in the grid of save slots."
|
||||
new "## The number of columns and rows in the grid of save slots."
|
||||
# Automatic translation.
|
||||
new "## Ο αριθμός των στηλών και των γραμμών στο πλέγμα των θέσεων αποθήκευσης."
|
||||
|
||||
# gui.rpy:243
|
||||
old "## Positioning and Spacing"
|
||||
new "## Positioning and Spacing"
|
||||
# Automatic translation.
|
||||
new "## Τοποθέτηση και απόσταση"
|
||||
|
||||
# gui.rpy:245
|
||||
old "## These variables control the positioning and spacing of various user interface elements."
|
||||
new "## These variables control the positioning and spacing of various user interface elements."
|
||||
# Automatic translation.
|
||||
new "## Αυτές οι μεταβλητές ελέγχουν την τοποθέτηση και την απόσταση μεταξύ των διαφόρων στοιχείων διεπαφής χρήστη."
|
||||
|
||||
# gui.rpy:248
|
||||
old "## The position of the left side of the navigation buttons, relative to the left side of the screen."
|
||||
new "## The position of the left side of the navigation buttons, relative to the left side of the screen."
|
||||
# Automatic translation.
|
||||
new "## Η θέση της αριστερής πλευράς των κουμπιών πλοήγησης, σε σχέση με την αριστερή πλευρά της οθόνης."
|
||||
|
||||
# gui.rpy:252
|
||||
old "## The vertical position of the skip indicator."
|
||||
new "## The vertical position of the skip indicator."
|
||||
# Automatic translation.
|
||||
new "## Η κατακόρυφη θέση της ένδειξης παράλειψης."
|
||||
|
||||
# gui.rpy:255
|
||||
old "## The vertical position of the notify screen."
|
||||
new "## The vertical position of the notify screen."
|
||||
# Automatic translation.
|
||||
new "## Η κάθετη θέση της οθόνης ειδοποίησης."
|
||||
|
||||
# gui.rpy:258
|
||||
old "## The spacing between menu choices."
|
||||
new "## The spacing between menu choices."
|
||||
# Automatic translation.
|
||||
new "## Η απόσταση μεταξύ των επιλογών του μενού."
|
||||
|
||||
# gui.rpy:261
|
||||
old "## Buttons in the navigation section of the main and game menus."
|
||||
new "## Buttons in the navigation section of the main and game menus."
|
||||
# Automatic translation.
|
||||
new "## Κουμπιά στην ενότητα πλοήγησης του κύριου μενού και του μενού παιχνιδιού."
|
||||
|
||||
# gui.rpy:264
|
||||
old "## Controls the amount of spacing between preferences."
|
||||
new "## Controls the amount of spacing between preferences."
|
||||
# Automatic translation.
|
||||
new "## Ελέγχει την απόσταση μεταξύ των προτιμήσεων."
|
||||
|
||||
# gui.rpy:267
|
||||
old "## Controls the amount of spacing between preference buttons."
|
||||
new "## Controls the amount of spacing between preference buttons."
|
||||
# Automatic translation.
|
||||
new "## Ελέγχει την απόσταση μεταξύ των κουμπιών προτίμησης."
|
||||
|
||||
# gui.rpy:270
|
||||
old "## The spacing between file page buttons."
|
||||
new "## The spacing between file page buttons."
|
||||
# Automatic translation.
|
||||
new "## Η απόσταση μεταξύ των κουμπιών σελίδας αρχείων."
|
||||
|
||||
# gui.rpy:273
|
||||
old "## The spacing between file slots."
|
||||
new "## The spacing between file slots."
|
||||
# Automatic translation.
|
||||
new "## Η απόσταση μεταξύ των θυρίδων αρχείων."
|
||||
|
||||
# gui.rpy:277
|
||||
old "## Frames"
|
||||
@@ -271,135 +337,168 @@ translate greek strings:
|
||||
|
||||
# gui.rpy:279
|
||||
old "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
|
||||
new "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
|
||||
# Automatic translation.
|
||||
new "## Αυτές οι μεταβλητές ελέγχουν την εμφάνιση των πλαισίων που μπορούν να περιέχουν στοιχεία διεπαφής χρήστη όταν δεν υπάρχει επικάλυψη ή παράθυρο."
|
||||
|
||||
# gui.rpy:282
|
||||
old "## Generic frames that are introduced by player code."
|
||||
new "## Generic frames that are introduced by player code."
|
||||
# Automatic translation.
|
||||
new "## Γενικά πλαίσια που εισάγονται από τον κώδικα του παίκτη."
|
||||
|
||||
# gui.rpy:285
|
||||
old "## The frame that is used as part of the confirm screen."
|
||||
new "## The frame that is used as part of the confirm screen."
|
||||
# Automatic translation.
|
||||
new "## Το πλαίσιο που χρησιμοποιείται ως μέρος της οθόνης επιβεβαίωσης."
|
||||
|
||||
# gui.rpy:288
|
||||
old "## The frame that is used as part of the skip screen."
|
||||
new "## The frame that is used as part of the skip screen."
|
||||
# Automatic translation.
|
||||
new "## Το πλαίσιο που χρησιμοποιείται ως μέρος της οθόνης παράλειψης."
|
||||
|
||||
# gui.rpy:291
|
||||
old "## The frame that is used as part of the notify screen."
|
||||
new "## The frame that is used as part of the notify screen."
|
||||
# Automatic translation.
|
||||
new "## Το πλαίσιο που χρησιμοποιείται ως μέρος της οθόνης ειδοποίησης."
|
||||
|
||||
# gui.rpy:294
|
||||
old "## Should frame backgrounds be tiled?"
|
||||
new "## Should frame backgrounds be tiled?"
|
||||
# Automatic translation.
|
||||
new "## Θα πρέπει τα φόντα των πλαισίων να τοποθετούνται σε κεραμίδια;"
|
||||
|
||||
# gui.rpy:298
|
||||
old "## Bars, Scrollbars, and Sliders"
|
||||
new "## Bars, Scrollbars, and Sliders"
|
||||
# Automatic translation.
|
||||
new "## Μπάρες, μπάρες κύλισης και ρυθμιστικά"
|
||||
|
||||
# gui.rpy:300
|
||||
old "## These control the look and size of bars, scrollbars, and sliders."
|
||||
new "## These control the look and size of bars, scrollbars, and sliders."
|
||||
# Automatic translation.
|
||||
new "## Αυτές ελέγχουν την εμφάνιση και το μέγεθος των ράβδων, των ράβδων κύλισης και των ρυθμιστικών."
|
||||
|
||||
# gui.rpy:302
|
||||
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
|
||||
new "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
|
||||
# Automatic translation.
|
||||
new "## Το προεπιλεγμένο γραφικό περιβάλλον χρησιμοποιεί μόνο ρυθμιστικά και κάθετες γραμμές κύλισης. Όλες οι άλλες μπάρες χρησιμοποιούνται μόνο στον κώδικα που γράφει ο δημιουργός."
|
||||
|
||||
# gui.rpy:305
|
||||
old "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
|
||||
new "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
|
||||
# Automatic translation.
|
||||
new "## Το ύψος των οριζόντιων ράβδων, των ράβδων κύλισης και των ρυθμιστικών. Το πλάτος των κατακόρυφων ράβδων, των ράβδων κύλισης και των ρυθμιστικών."
|
||||
|
||||
# gui.rpy:311
|
||||
old "## True if bar images should be tiled. False if they should be linearly scaled."
|
||||
new "## True if bar images should be tiled. False if they should be linearly scaled."
|
||||
# Automatic translation.
|
||||
new "## True αν οι εικόνες της μπάρας θα πρέπει να είναι σε κεραμίδια. False αν πρέπει να κλιμακώνονται γραμμικά."
|
||||
|
||||
# gui.rpy:316
|
||||
old "## Horizontal borders."
|
||||
new "## Horizontal borders."
|
||||
# Automatic translation.
|
||||
new "## Οριζόντια όρια."
|
||||
|
||||
# gui.rpy:321
|
||||
old "## Vertical borders."
|
||||
new "## Vertical borders."
|
||||
# Automatic translation.
|
||||
new "## Κατακόρυφα σύνορα."
|
||||
|
||||
# gui.rpy:326
|
||||
old "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
|
||||
new "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
|
||||
# Automatic translation.
|
||||
new "## Τι να κάνετε με μη κυλιόμενες γραμμές κύλισης στο gui. Το \"hide\" τις κρύβει, ενώ το \"None\" τις εμφανίζει."
|
||||
|
||||
# gui.rpy:331
|
||||
old "## History"
|
||||
new "## History"
|
||||
# Automatic translation.
|
||||
new "## Ιστορία"
|
||||
|
||||
# gui.rpy:333
|
||||
old "## The history screen displays dialogue that the player has already dismissed."
|
||||
new "## The history screen displays dialogue that the player has already dismissed."
|
||||
# Automatic translation.
|
||||
new "## Η οθόνη ιστορικού εμφανίζει διαλόγους που ο παίκτης έχει ήδη απορρίψει."
|
||||
|
||||
# gui.rpy:335
|
||||
old "## The number of blocks of dialogue history Ren'Py will keep."
|
||||
new "## The number of blocks of dialogue history Ren'Py will keep."
|
||||
# Automatic translation.
|
||||
new "## Ο αριθμός των μπλοκ ιστορικού διαλόγου που θα κρατήσει η Ren'Py."
|
||||
|
||||
# gui.rpy:338
|
||||
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
|
||||
new "## The height of a history screen entry, or None to make the height variable at the cost of performance."
|
||||
# Automatic translation.
|
||||
new "## Το ύψος μιας καταχώρησης στην οθόνη ιστορικού, ή Κανένα για να κάνετε το ύψος μεταβλητό με κόστος την απόδοση."
|
||||
|
||||
# gui.rpy:342
|
||||
old "## The position, width, and alignment of the label giving the name of the speaking character."
|
||||
new "## The position, width, and alignment of the label giving the name of the speaking character."
|
||||
# Automatic translation.
|
||||
new "## Η θέση, το πλάτος και η στοίχιση της ετικέτας που δίνει το όνομα του χαρακτήρα που μιλάει."
|
||||
|
||||
# gui.rpy:349
|
||||
old "## The position, width, and alignment of the dialogue text."
|
||||
new "## The position, width, and alignment of the dialogue text."
|
||||
# Automatic translation.
|
||||
new "## Η θέση, το πλάτος και η στοίχιση του κειμένου διαλόγου."
|
||||
|
||||
# gui.rpy:356
|
||||
old "## NVL-Mode"
|
||||
new "## NVL-Mode"
|
||||
# Automatic translation.
|
||||
new "## Λειτουργία NVL"
|
||||
|
||||
# gui.rpy:358
|
||||
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
|
||||
new "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
|
||||
# Automatic translation.
|
||||
new "## Η οθόνη της λειτουργίας NVL εμφανίζει τον διάλογο που μιλούν οι χαρακτήρες της λειτουργίας NVL."
|
||||
|
||||
# gui.rpy:360
|
||||
old "## The borders of the background of the NVL-mode background window."
|
||||
new "## The borders of the background of the NVL-mode background window."
|
||||
# Automatic translation.
|
||||
new "## Τα όρια του φόντου του παραθύρου φόντου της λειτουργίας NVL."
|
||||
|
||||
# gui.rpy:363
|
||||
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
|
||||
new "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
|
||||
# Automatic translation.
|
||||
new "## Το ύψος μιας καταχώρησης σε κατάσταση λειτουργίας NVL. Ορίστε την τιμή None για να ρυθμίζετε δυναμικά το ύψος των καταχωρήσεων."
|
||||
|
||||
# gui.rpy:367
|
||||
old "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
|
||||
new "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
|
||||
# Automatic translation.
|
||||
new "## Η απόσταση μεταξύ των καταχωρήσεων της λειτουργίας NVL όταν το gui.nvl_height είναι None, καθώς και μεταξύ των καταχωρήσεων της λειτουργίας NVL και ενός μενού της λειτουργίας NVL."
|
||||
|
||||
# gui.rpy:384
|
||||
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
|
||||
new "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
|
||||
# Automatic translation.
|
||||
new "## Η θέση, το πλάτος και η στοίχιση του κειμένου nvl_thought (το κείμενο που λέει ο χαρακτήρας nvl_narrator)."
|
||||
|
||||
# gui.rpy:391
|
||||
old "## The position of nvl menu_buttons."
|
||||
new "## The position of nvl menu_buttons."
|
||||
# Automatic translation.
|
||||
new "## Η θέση των nvl menu_buttons."
|
||||
|
||||
# gui.rpy:403
|
||||
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
|
||||
new "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
|
||||
# Automatic translation.
|
||||
new "## Αυτό αυξάνει το μέγεθος των γρήγορων κουμπιών για να είναι πιο εύκολο να τα αγγίξετε σε tablet και τηλέφωνα."
|
||||
|
||||
# gui.rpy:409
|
||||
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
|
||||
new "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
|
||||
# Automatic translation.
|
||||
new "## Αυτό αλλάζει το μέγεθος και την απόσταση μεταξύ των διαφόρων στοιχείων του γραφικού περιβάλλοντος για να διασφαλίσει ότι είναι εύκολα ορατά στα τηλέφωνα."
|
||||
|
||||
# gui.rpy:413
|
||||
old "## Font sizes."
|
||||
new "## Font sizes."
|
||||
# Automatic translation.
|
||||
new "## Μεγέθη γραμματοσειράς."
|
||||
|
||||
# gui.rpy:421
|
||||
old "## Adjust the location of the textbox."
|
||||
new "## Adjust the location of the textbox."
|
||||
# Automatic translation.
|
||||
new "## Προσαρμόστε τη θέση του πλαισίου κειμένου."
|
||||
|
||||
# gui.rpy:427
|
||||
old "## Change the size and spacing of items in the game menu."
|
||||
new "## Change the size and spacing of items in the game menu."
|
||||
# Automatic translation.
|
||||
new "## Αλλαγή του μεγέθους και της απόστασης των στοιχείων στο μενού του παιχνιδιού."
|
||||
|
||||
# gui.rpy:436
|
||||
old "## File button layout."
|
||||
new "## File button layout."
|
||||
# Automatic translation.
|
||||
new "## Διάταξη κουμπιών αρχείων."
|
||||
|
||||
# gui.rpy:440
|
||||
old "## NVL-mode."
|
||||
@@ -407,5 +506,74 @@ translate greek strings:
|
||||
|
||||
# gui.rpy:456
|
||||
old "## Quick buttons."
|
||||
new "## Quick buttons."
|
||||
# Automatic translation.
|
||||
new "## Γρήγορα κουμπιά."
|
||||
|
||||
|
||||
translate greek strings:
|
||||
|
||||
# gui/game/gui.rpy:5
|
||||
old "## The init offset statement causes the initialization statements in this file to run before init statements in any other file."
|
||||
# Automatic translation.
|
||||
new "## Η εντολή init offset προκαλεί την εκτέλεση των εντολών αρχικοποίησης σε αυτό το αρχείο πριν από τις εντολές init σε οποιοδήποτε άλλο αρχείο."
|
||||
|
||||
# gui/game/gui.rpy:14
|
||||
old "## Enable checks for invalid or unstable properties in screens or transforms"
|
||||
# Automatic translation.
|
||||
new "## Ενεργοποίηση ελέγχων για άκυρες ή ασταθείς ιδιότητες σε οθόνες ή μετασχηματισμούς"
|
||||
|
||||
# gui/game/gui.rpy:19
|
||||
old "## GUI Configuration Variables"
|
||||
# Automatic translation.
|
||||
new "## Μεταβλητές παραμέτρων GUI"
|
||||
|
||||
# gui/game/gui.rpy:167
|
||||
old "## The color of button text in various states."
|
||||
# Automatic translation.
|
||||
new "## Το χρώμα του κειμένου του κουμπιού σε διάφορες καταστάσεις."
|
||||
|
||||
# gui/game/gui.rpy:173
|
||||
old "## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0 is right)."
|
||||
# Automatic translation.
|
||||
new "## Η οριζόντια στοίχιση του κειμένου του κουμπιού. (0.0 είναι αριστερά, 0.5 είναι κέντρο, 1.0 είναι δεξιά)."
|
||||
|
||||
# gui/game/gui.rpy:278
|
||||
old "## The position of the main menu text."
|
||||
# Automatic translation.
|
||||
new "## Η θέση του κειμένου του κύριου μενού."
|
||||
|
||||
# gui/game/gui.rpy:287
|
||||
old "## Generic frames."
|
||||
# Automatic translation.
|
||||
new "## Γενικά πλαίσια."
|
||||
|
||||
# gui/game/gui.rpy:307
|
||||
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written screens."
|
||||
# Automatic translation.
|
||||
new "## Το προεπιλεγμένο γραφικό περιβάλλον χρησιμοποιεί μόνο ρυθμιστικά και κάθετες γραμμές κύλισης. Όλες οι άλλες μπάρες χρησιμοποιούνται μόνο σε οθόνες που έχουν γραφτεί από τον δημιουργό."
|
||||
|
||||
# gui/game/gui.rpy:368
|
||||
old "## The maximum number of NVL-mode entries Ren'Py will display. When more entries than this are to be show, the oldest entry will be removed."
|
||||
# Automatic translation.
|
||||
new "## Ο μέγιστος αριθμός καταχωρήσεων λειτουργίας NVL που θα εμφανίζει η Ren'Py. Όταν πρόκειται να εμφανιστούν περισσότερες εγγραφές από αυτό το όριο, η παλαιότερη εγγραφή θα αφαιρεθεί."
|
||||
|
||||
# gui/game/gui.rpy:405
|
||||
old "## Localization"
|
||||
# Automatic translation.
|
||||
new "## Εντοπισμός"
|
||||
|
||||
# gui/game/gui.rpy:407
|
||||
old "## This controls where a line break is permitted. The default is suitable for most languages. A list of available values can be found at https://www.renpy.org/doc/html/style_properties.html#style-property-language"
|
||||
# Automatic translation.
|
||||
new "## Αυτό ελέγχει πού επιτρέπεται η αλλαγή γραμμής. Η προεπιλογή είναι κατάλληλη για τις περισσότερες γλώσσες. Μια λίστα με τις διαθέσιμες τιμές μπορείτε να βρείτε στη διεύθυνση https://www.renpy.org/doc/html/style_properties.html#style-property-language."
|
||||
|
||||
# gui/game/gui.rpy:415
|
||||
old "## Mobile devices"
|
||||
# Automatic translation.
|
||||
new "## Κινητές συσκευές"
|
||||
|
||||
# gui/game/gui.rpy:446
|
||||
old "## Change the size and spacing of various things."
|
||||
# Automatic translation.
|
||||
new "## Αλλαγή του μεγέθους και του διαστήματος διαφόρων πραγμάτων."
|
||||
|
||||
|
||||
+1071
-46
File diff suppressed because it is too large
Load Diff
@@ -3,59 +3,73 @@ translate greek strings:
|
||||
|
||||
# options.rpy:1
|
||||
old "## This file contains options that can be changed to customize your game."
|
||||
new "## This file contains options that can be changed to customize your game."
|
||||
# Automatic translation.
|
||||
new "## Αυτό το αρχείο περιέχει επιλογές που μπορείτε να αλλάξετε για να προσαρμόσετε το παιχνίδι σας."
|
||||
|
||||
# options.rpy:4
|
||||
old "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
|
||||
new "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
|
||||
# Automatic translation.
|
||||
new "## Οι γραμμές που αρχίζουν με δύο σημάδια '#' είναι σχόλια, και δεν πρέπει να τις ξεσχολιάσετε. Οι γραμμές που αρχίζουν με ένα μόνο σημάδι '#' είναι σχολιασμένος κώδικας, και μπορεί να θέλετε να τις ξεσχολιάσετε όταν χρειάζεται."
|
||||
|
||||
# options.rpy:10
|
||||
old "## Basics"
|
||||
new "## Basics"
|
||||
# Automatic translation.
|
||||
new "## Βασικά"
|
||||
|
||||
# options.rpy:12
|
||||
old "## A human-readable name of the game. This is used to set the default window title, and shows up in the interface and error reports."
|
||||
new "## A human-readable name of the game. This is used to set the default window title, and shows up in the interface and error reports."
|
||||
# Automatic translation.
|
||||
new "## Ένα όνομα του παιχνιδιού που μπορεί να διαβαστεί από τον άνθρωπο. Αυτό χρησιμοποιείται για να ορίσει τον προεπιλεγμένο τίτλο του παραθύρου και εμφανίζεται στη διεπαφή και στις αναφορές σφαλμάτων."
|
||||
|
||||
# options.rpy:15
|
||||
old "## The _() surrounding the string marks it as eligible for translation."
|
||||
new "## The _() surrounding the string marks it as eligible for translation."
|
||||
# Automatic translation.
|
||||
new "## Το _() που περιβάλλει το αλφαριθμητικό το χαρακτηρίζει ως επιλέξιμο για μετάφραση."
|
||||
|
||||
# options.rpy:17
|
||||
old "Ren'Py 7 Default GUI"
|
||||
new "Ren'Py 7 Default GUI"
|
||||
# Automatic translation.
|
||||
new "Ren'Py 7 Προεπιλεγμένο GUI"
|
||||
|
||||
# options.rpy:20
|
||||
old "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
|
||||
new "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
|
||||
# Automatic translation.
|
||||
new "## Καθορίζει αν ο τίτλος που δόθηκε παραπάνω εμφανίζεται στην οθόνη του κύριου μενού. Ορίστε την τιμή False για να αποκρύψετε τον τίτλο."
|
||||
|
||||
# options.rpy:26
|
||||
old "## The version of the game."
|
||||
new "## The version of the game."
|
||||
# Automatic translation.
|
||||
new "## Η έκδοση του παιχνιδιού."
|
||||
|
||||
# options.rpy:31
|
||||
old "## Text that is placed on the game's about screen. To insert a blank line between paragraphs, write \\n\\n."
|
||||
new "## Text that is placed on the game's about screen. To insert a blank line between paragraphs, write \\n\\n."
|
||||
# Automatic translation.
|
||||
new "## Κείμενο που τοποθετείται στην οθόνη πληροφοριών του παιχνιδιού. Για να εισαγάγετε μια κενή γραμμή μεταξύ των παραγράφων, γράψτε \\n\\n."
|
||||
|
||||
# options.rpy:37
|
||||
old "## A short name for the game used for executables and directories in the built distribution. This must be ASCII-only, and must not contain spaces, colons, or semicolons."
|
||||
new "## A short name for the game used for executables and directories in the built distribution. This must be ASCII-only, and must not contain spaces, colons, or semicolons."
|
||||
# Automatic translation.
|
||||
new "## Ένα σύντομο όνομα για το παιχνίδι που χρησιμοποιείται για τα εκτελέσιμα αρχεία και τους καταλόγους στην ενσωματωμένη διανομή. Αυτό πρέπει να είναι μόνο ASCII και δεν πρέπει να περιέχει κενά, άνω και κάτω τελεία ή άνω τελεία."
|
||||
|
||||
# options.rpy:44
|
||||
old "## Sounds and music"
|
||||
new "## Sounds and music"
|
||||
# Automatic translation.
|
||||
new "## Ήχοι και μουσική"
|
||||
|
||||
# options.rpy:46
|
||||
old "## These three variables control which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
|
||||
new "## These three variables control which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
|
||||
# Automatic translation.
|
||||
new "## Αυτές οι τρεις μεταβλητές ελέγχουν ποιοι μείκτες εμφανίζονται στον παίκτη από προεπιλογή. Αν θέσετε μία από αυτές σε False, θα αποκρύψετε τον αντίστοιχο μίκτη."
|
||||
|
||||
# options.rpy:55
|
||||
old "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
|
||||
new "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
|
||||
# Automatic translation.
|
||||
new "## Για να επιτρέψετε στο χρήστη να αναπαράγει έναν δοκιμαστικό ήχο στο κανάλι ήχου ή φωνής, αποσυμπληρώστε την παρακάτω γραμμή και χρησιμοποιήστε την για να ορίσετε έναν δοκιμαστικό ήχο προς αναπαραγωγή."
|
||||
|
||||
# options.rpy:62
|
||||
old "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. This file will continue playing into the game, until it is stopped or another file is played."
|
||||
new "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. This file will continue playing into the game, until it is stopped or another file is played."
|
||||
# Automatic translation.
|
||||
new "## Ξεσχολιάστε την ακόλουθη γραμμή για να ορίσετε ένα αρχείο ήχου που θα αναπαράγεται όταν ο παίκτης βρίσκεται στο κύριο μενού. Αυτό το αρχείο θα συνεχίσει να παίζει κατά τη διάρκεια του παιχνιδιού, μέχρι να σταματήσει ή να αναπαραχθεί άλλο αρχείο."
|
||||
|
||||
# options.rpy:69
|
||||
old "## Transitions"
|
||||
@@ -63,59 +77,73 @@ translate greek strings:
|
||||
|
||||
# options.rpy:71
|
||||
old "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
|
||||
new "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
|
||||
# Automatic translation.
|
||||
new "## Αυτές οι μεταβλητές ορίζουν τις μεταβάσεις που χρησιμοποιούνται όταν συμβαίνουν ορισμένα γεγονότα. Κάθε μεταβλητή θα πρέπει να οριστεί σε μια μετάβαση ή σε None για να υποδείξει ότι δεν πρέπει να χρησιμοποιηθεί καμία μετάβαση."
|
||||
|
||||
# options.rpy:75
|
||||
old "## Entering or exiting the game menu."
|
||||
new "## Entering or exiting the game menu."
|
||||
# Automatic translation.
|
||||
new "## Είσοδος ή έξοδος από το μενού του παιχνιδιού."
|
||||
|
||||
# options.rpy:81
|
||||
old "## A transition that is used after a game has been loaded."
|
||||
new "## A transition that is used after a game has been loaded."
|
||||
# Automatic translation.
|
||||
new "## Μια μετάβαση που χρησιμοποιείται μετά τη φόρτωση ενός παιχνιδιού."
|
||||
|
||||
# options.rpy:86
|
||||
old "## Used when entering the main menu after the game has ended."
|
||||
new "## Used when entering the main menu after the game has ended."
|
||||
# Automatic translation.
|
||||
new "## Χρησιμοποιείται κατά την είσοδο στο κύριο μενού μετά το τέλος του παιχνιδιού."
|
||||
|
||||
# options.rpy:91
|
||||
old "## A variable to set the transition used when the game starts does not exist. Instead, use a with statement after showing the initial scene."
|
||||
new "## A variable to set the transition used when the game starts does not exist. Instead, use a with statement after showing the initial scene."
|
||||
# Automatic translation.
|
||||
new "## Δεν υπάρχει μεταβλητή για τον καθορισμό της μετάβασης που χρησιμοποιείται κατά την έναρξη του παιχνιδιού. Αντ' αυτού, χρησιμοποιήστε μια δήλωση with μετά την εμφάνιση της αρχικής σκηνής."
|
||||
|
||||
# options.rpy:96
|
||||
old "## Window management"
|
||||
new "## Window management"
|
||||
# Automatic translation.
|
||||
new "## Διαχείριση παραθύρων"
|
||||
|
||||
# options.rpy:98
|
||||
old "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
|
||||
new "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
|
||||
# Automatic translation.
|
||||
new "## Αυτό ελέγχει πότε εμφανίζεται το παράθυρο διαλόγου. Αν είναι \"show\", εμφανίζεται πάντα. Αν \"hide\", εμφανίζεται μόνο όταν υπάρχει διάλογος. Αν \"auto\", το παράθυρο αποκρύπτεται πριν από τις δηλώσεις σκηνής και εμφανίζεται ξανά μόλις εμφανιστεί ο διάλογος."
|
||||
|
||||
# options.rpy:103
|
||||
old "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
|
||||
new "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
|
||||
# Automatic translation.
|
||||
new "## Αφού ξεκινήσει το παιχνίδι, αυτό μπορεί να αλλάξει με τις εντολές \"window show\", \"window hide\" και \"window auto\"."
|
||||
|
||||
# options.rpy:109
|
||||
old "## Transitions used to show and hide the dialogue window"
|
||||
new "## Transitions used to show and hide the dialogue window"
|
||||
# Automatic translation.
|
||||
new "## Μεταβάσεις που χρησιμοποιούνται για την εμφάνιση και απόκρυψη του παραθύρου διαλόγου"
|
||||
|
||||
# options.rpy:115
|
||||
old "## Preference defaults"
|
||||
new "## Preference defaults"
|
||||
# Automatic translation.
|
||||
new "## Προεπιλογές προεπιλογής"
|
||||
|
||||
# options.rpy:117
|
||||
old "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
|
||||
new "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
|
||||
# Automatic translation.
|
||||
new "## Ελέγχει την προεπιλεγμένη ταχύτητα κειμένου. Η προεπιλογή, 0, είναι άπειρη, ενώ οποιοσδήποτε άλλος αριθμός είναι ο αριθμός των χαρακτήρων ανά δευτερόλεπτο που θα πληκτρολογούνται."
|
||||
|
||||
# options.rpy:123
|
||||
old "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
|
||||
new "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
|
||||
# Automatic translation.
|
||||
new "## Η προεπιλεγμένη καθυστέρηση αυτόματης προώθησης. Μεγαλύτεροι αριθμοί οδηγούν σε μεγαλύτερες αναμονές, με το 0 έως 30 να είναι το έγκυρο εύρος."
|
||||
|
||||
# options.rpy:129
|
||||
old "## Save directory"
|
||||
new "## Save directory"
|
||||
# Automatic translation.
|
||||
new "## Αποθήκευση καταλόγου"
|
||||
|
||||
# options.rpy:131
|
||||
old "## Controls the platform-specific place Ren'Py will place the save files for this game. The save files will be placed in:"
|
||||
new "## Controls the platform-specific place Ren'Py will place the save files for this game. The save files will be placed in:"
|
||||
# Automatic translation.
|
||||
new "## Ελέγχει το συγκεκριμένο για την πλατφόρμα μέρος στο οποίο το Ren'Py θα τοποθετεί τα αρχεία αποθήκευσης για αυτό το παιχνίδι. Τα αρχεία αποθήκευσης θα τοποθετούνται στο:"
|
||||
|
||||
# options.rpy:134
|
||||
old "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
|
||||
@@ -131,65 +159,108 @@ translate greek strings:
|
||||
|
||||
# options.rpy:140
|
||||
old "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
|
||||
new "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
|
||||
# Automatic translation.
|
||||
new "## Αυτό γενικά δεν θα πρέπει να αλλάζει, και αν αλλάξει, θα πρέπει πάντα να είναι μια κυριολεκτική συμβολοσειρά, όχι μια έκφραση."
|
||||
|
||||
# options.rpy:146
|
||||
old "## Icon ########################################################################'"
|
||||
new "## Icon ########################################################################'"
|
||||
# Automatic translation.
|
||||
new "## Εικονίδιο ########################################################################'"
|
||||
|
||||
# options.rpy:148
|
||||
old "## The icon displayed on the taskbar or dock."
|
||||
new "## The icon displayed on the taskbar or dock."
|
||||
# Automatic translation.
|
||||
new "## Το εικονίδιο που εμφανίζεται στη γραμμή εργασιών ή στο dock."
|
||||
|
||||
# options.rpy:153
|
||||
old "## Build configuration"
|
||||
new "## Build configuration"
|
||||
# Automatic translation.
|
||||
new "## Παραμετροποίηση κατασκευής"
|
||||
|
||||
# options.rpy:155
|
||||
old "## This section controls how Ren'Py turns your project into distribution files."
|
||||
new "## This section controls how Ren'Py turns your project into distribution files."
|
||||
# Automatic translation.
|
||||
new "## Αυτή η ενότητα ελέγχει τον τρόπο με τον οποίο η Ren'Py μετατρέπει το έργο σας σε αρχεία διανομής."
|
||||
|
||||
# options.rpy:160
|
||||
old "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
|
||||
new "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
|
||||
# Automatic translation.
|
||||
new "## Οι ακόλουθες συναρτήσεις δέχονται πρότυπα αρχείων. Τα μοτίβα αρχείων δεν διαχωρίζουν την πεζότητα και αντιστοιχίζονται με τη διαδρομή σχετικά με τον βασικό κατάλογο, με και χωρίς ένα αρχικό /. Αν ταιριάζουν πολλά μοτίβα, χρησιμοποιείται το πρώτο."
|
||||
|
||||
# options.rpy:165
|
||||
old "## In a pattern:"
|
||||
new "## In a pattern:"
|
||||
# Automatic translation.
|
||||
new "## Σε ένα μοτίβο:"
|
||||
|
||||
# options.rpy:167
|
||||
old "## / is the directory separator."
|
||||
new "## / is the directory separator."
|
||||
# Automatic translation.
|
||||
new "## Το / είναι το διαχωριστικό του καταλόγου."
|
||||
|
||||
# options.rpy:169
|
||||
old "## * matches all characters, except the directory separator."
|
||||
new "## * matches all characters, except the directory separator."
|
||||
# Automatic translation.
|
||||
new "## * ταιριάζει με όλους τους χαρακτήρες, εκτός από το διαχωριστικό καταλόγου."
|
||||
|
||||
# options.rpy:171
|
||||
old "## ** matches all characters, including the directory separator."
|
||||
new "## ** matches all characters, including the directory separator."
|
||||
# Automatic translation.
|
||||
new "## ** ταιριάζει με όλους τους χαρακτήρες, συμπεριλαμβανομένου του διαχωριστικού καταλόγου."
|
||||
|
||||
# options.rpy:173
|
||||
old "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
|
||||
new "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
|
||||
# Automatic translation.
|
||||
new "## Για παράδειγμα, το \"*.txt\" ταιριάζει με αρχεία txt στον βασικό κατάλογο, το \"game/**.ogg\" ταιριάζει με αρχεία ogg στον κατάλογο game ή σε οποιονδήποτε υποκατάλογό του και το \"**.psd\" ταιριάζει με αρχεία psd οπουδήποτε στο έργο."
|
||||
|
||||
# options.rpy:177
|
||||
old "## Classify files as None to exclude them from the built distributions."
|
||||
new "## Classify files as None to exclude them from the built distributions."
|
||||
# Automatic translation.
|
||||
new "## Ταξινομήστε τα αρχεία ως None για να τα αποκλείσετε από τις ενσωματωμένες διανομές."
|
||||
|
||||
# options.rpy:185
|
||||
old "## To archive files, classify them as 'archive'."
|
||||
new "## To archive files, classify them as 'archive'."
|
||||
# Automatic translation.
|
||||
new "## Για να αρχειοθετήσετε αρχεία, ταξινομήστε τα ως 'archive'."
|
||||
|
||||
# options.rpy:190
|
||||
old "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
|
||||
new "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
|
||||
# Automatic translation.
|
||||
new "## Τα αρχεία που ταιριάζουν με τα μοτίβα τεκμηρίωσης διπλασιάζονται στην κατασκευή μιας εφαρμογής mac, ώστε να εμφανίζονται τόσο στην εφαρμογή όσο και στο αρχείο zip."
|
||||
|
||||
# options.rpy:196
|
||||
old "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
|
||||
new "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
|
||||
# Automatic translation.
|
||||
new "## Για τη λήψη αρχείων επέκτασης και την πραγματοποίηση αγορών εντός της εφαρμογής απαιτείται κλειδί άδειας χρήσης του Google Play. Μπορείτε να το βρείτε στη σελίδα \"Services & APIs\" της κονσόλας προγραμματιστών του Google Play."
|
||||
|
||||
# options.rpy:203
|
||||
old "## The username and project name associated with an itch.io project, separated by a slash."
|
||||
new "## The username and project name associated with an itch.io project, separated by a slash."
|
||||
# Automatic translation.
|
||||
new "## Το όνομα χρήστη και το όνομα έργου που σχετίζονται με ένα έργο itch.io, χωρισμένα με κάθετο."
|
||||
|
||||
|
||||
translate greek strings:
|
||||
|
||||
# gui/game/options.rpy:31
|
||||
old "## Text that is placed on the game's about screen. Place the text between the triple-quotes, and leave a blank line between paragraphs."
|
||||
# Automatic translation.
|
||||
new "## Κείμενο που τοποθετείται στην οθόνη πληροφοριών του παιχνιδιού. Τοποθετήστε το κείμενο μεταξύ των τριπλών εισαγωγικών και αφήστε μια κενή γραμμή μεταξύ των παραγράφων."
|
||||
|
||||
# gui/game/options.rpy:47
|
||||
old "## These three variables control, among other things, which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
|
||||
# Automatic translation.
|
||||
new "## Αυτές οι τρεις μεταβλητές ελέγχουν, μεταξύ άλλων, ποιοι μείκτες εμφανίζονται στον παίκτη από προεπιλογή. Η ρύθμιση μιας από αυτές σε False θα αποκρύψει τον αντίστοιχο μίκτη."
|
||||
|
||||
# gui/game/options.rpy:82
|
||||
old "## Between screens of the game menu."
|
||||
# Automatic translation.
|
||||
new "## Μεταξύ των οθονών του μενού του παιχνιδιού."
|
||||
|
||||
# gui/game/options.rpy:152
|
||||
old "## Icon"
|
||||
new "## Icon"
|
||||
|
||||
# gui/game/options.rpy:203
|
||||
old "## A Google Play license key is required to perform in-app purchases. It can be found in the Google Play developer console, under \"Monetize\" > \"Monetization Setup\" > \"Licensing\"."
|
||||
# Automatic translation.
|
||||
new "## Για την πραγματοποίηση αγορών εντός εφαρμογής απαιτείται κλειδί άδειας χρήσης του Google Play. Μπορείτε να το βρείτε στην κονσόλα προγραμματιστών του Google Play, στην ενότητα \"Monetize\" > \"Monetization Setup\" > \"Licensing\"."
|
||||
|
||||
|
||||
+375
-127
@@ -7,7 +7,8 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:87
|
||||
old "## In-game screens"
|
||||
new "## In-game screens"
|
||||
# Automatic translation.
|
||||
new "## Οθόνες στο παιχνίδι"
|
||||
|
||||
# screens.rpy:91
|
||||
old "## Say screen"
|
||||
@@ -15,11 +16,13 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:93
|
||||
old "## The say screen is used to display dialogue to the player. It takes two parameters, who and what, which are the name of the speaking character and the text to be displayed, respectively. (The who parameter can be None if no name is given.)"
|
||||
new "## The say screen is used to display dialogue to the player. It takes two parameters, who and what, which are the name of the speaking character and the text to be displayed, respectively. (The who parameter can be None if no name is given.)"
|
||||
# Automatic translation.
|
||||
new "## Η οθόνη say χρησιμοποιείται για την εμφάνιση διαλόγου στον παίκτη. Λαμβάνει δύο παραμέτρους, who και what, οι οποίες είναι το όνομα του χαρακτήρα που μιλάει και το κείμενο που θα εμφανιστεί, αντίστοιχα. (Η παράμετρος who μπορεί να είναι None αν δεν έχει δοθεί όνομα)."
|
||||
|
||||
# screens.rpy:98
|
||||
old "## This screen must create a text displayable with id \"what\", as Ren'Py uses this to manage text display. It can also create displayables with id \"who\" and id \"window\" to apply style properties."
|
||||
new "## This screen must create a text displayable with id \"what\", as Ren'Py uses this to manage text display. It can also create displayables with id \"who\" and id \"window\" to apply style properties."
|
||||
# Automatic translation.
|
||||
new "## Αυτή η οθόνη πρέπει να δημιουργήσει ένα text displayable με id \"what\", καθώς η Ren'Py το χρησιμοποιεί για να διαχειρίζεται την εμφάνιση κειμένου. Μπορεί επίσης να δημιουργήσει displayables με id \"who\" και id \"window\" για να εφαρμόσει ιδιότητες στυλ."
|
||||
|
||||
# screens.rpy:102
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#say"
|
||||
@@ -27,15 +30,18 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:169
|
||||
old "## Input screen"
|
||||
new "## Input screen"
|
||||
# Automatic translation.
|
||||
new "## Οθόνη εισόδου"
|
||||
|
||||
# screens.rpy:171
|
||||
old "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
|
||||
new "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
|
||||
# Automatic translation.
|
||||
new "## Αυτή η οθόνη χρησιμοποιείται για την εμφάνιση του renpy.input. Η παράμετρος prompt χρησιμοποιείται για να περάσετε μια προτροπή κειμένου."
|
||||
|
||||
# screens.rpy:174
|
||||
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
|
||||
new "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
|
||||
# Automatic translation.
|
||||
new "## Αυτή η οθόνη πρέπει να δημιουργήσει ένα displayable εισόδου με id \"input\" για να δέχεται τις διάφορες παραμέτρους εισόδου."
|
||||
|
||||
# screens.rpy:177
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#input"
|
||||
@@ -43,11 +49,13 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:205
|
||||
old "## Choice screen"
|
||||
new "## Choice screen"
|
||||
# Automatic translation.
|
||||
new "## Οθόνη επιλογής"
|
||||
|
||||
# screens.rpy:207
|
||||
old "## This screen is used to display the in-game choices presented by the menu statement. The one parameter, items, is a list of objects, each with caption and action fields."
|
||||
new "## This screen is used to display the in-game choices presented by the menu statement. The one parameter, items, is a list of objects, each with caption and action fields."
|
||||
# Automatic translation.
|
||||
new "## Αυτή η οθόνη χρησιμοποιείται για την εμφάνιση των επιλογών εντός του παιχνιδιού που παρουσιάζονται από τη δήλωση του μενού. Η μία παράμετρος, τα αντικείμενα, είναι μια λίστα αντικειμένων, το καθένα με πεδία λεζάντας και δράσης."
|
||||
|
||||
# screens.rpy:211
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#choice"
|
||||
@@ -55,15 +63,18 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:221
|
||||
old "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
|
||||
new "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
|
||||
# Automatic translation.
|
||||
new "## Όταν αυτό είναι αληθές, οι λεζάντες του μενού θα εκφωνούνται από τον αφηγητή. Όταν είναι false, οι λεζάντες μενού θα εμφανίζονται ως κενά κουμπιά."
|
||||
|
||||
# screens.rpy:244
|
||||
old "## Quick Menu screen"
|
||||
new "## Quick Menu screen"
|
||||
# Automatic translation.
|
||||
new "## Οθόνη γρήγορου μενού"
|
||||
|
||||
# screens.rpy:246
|
||||
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
|
||||
new "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
|
||||
# Automatic translation.
|
||||
new "## Το γρήγορο μενού εμφανίζεται στο παιχνίδι για να παρέχει εύκολη πρόσβαση στα μενού εκτός παιχνιδιού."
|
||||
|
||||
# screens.rpy:261
|
||||
old "Back"
|
||||
@@ -71,11 +82,13 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:262
|
||||
old "History"
|
||||
new "History"
|
||||
# Automatic translation.
|
||||
new "Ιστορία"
|
||||
|
||||
# screens.rpy:263
|
||||
old "Skip"
|
||||
new "Skip"
|
||||
# Automatic translation.
|
||||
new "Παράλειψη"
|
||||
|
||||
# screens.rpy:264
|
||||
old "Auto"
|
||||
@@ -83,7 +96,8 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:265
|
||||
old "Save"
|
||||
new "Save"
|
||||
# Automatic translation.
|
||||
new "Αποθήκευση"
|
||||
|
||||
# screens.rpy:266
|
||||
old "Q.Save"
|
||||
@@ -95,39 +109,48 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:268
|
||||
old "Prefs"
|
||||
new "Prefs"
|
||||
# Automatic translation.
|
||||
new "Προτιμήσεις"
|
||||
|
||||
# screens.rpy:271
|
||||
old "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
|
||||
new "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
|
||||
# Automatic translation.
|
||||
new "## Αυτός ο κώδικας διασφαλίζει ότι η οθόνη quick_menu εμφανίζεται στο παιχνίδι, όποτε ο παίκτης δεν έχει αποκρύψει ρητά τη διεπαφή."
|
||||
|
||||
# screens.rpy:291
|
||||
old "## Navigation screen"
|
||||
new "## Navigation screen"
|
||||
# Automatic translation.
|
||||
new "## Οθόνη πλοήγησης"
|
||||
|
||||
# screens.rpy:293
|
||||
old "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
|
||||
new "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
|
||||
# Automatic translation.
|
||||
new "## Αυτή η οθόνη περιλαμβάνεται στο κύριο μενού και στο μενού του παιχνιδιού και παρέχει πλοήγηση σε άλλα μενού και για την εκκίνηση του παιχνιδιού."
|
||||
|
||||
# screens.rpy:308
|
||||
old "Start"
|
||||
new "Start"
|
||||
# Automatic translation.
|
||||
new "Έναρξη"
|
||||
|
||||
# screens.rpy:316
|
||||
old "Load"
|
||||
new "Load"
|
||||
# Automatic translation.
|
||||
new "Φορτίο"
|
||||
|
||||
# screens.rpy:318
|
||||
old "Preferences"
|
||||
new "Preferences"
|
||||
# Automatic translation.
|
||||
new "Προτιμήσεις"
|
||||
|
||||
# screens.rpy:322
|
||||
old "End Replay"
|
||||
new "End Replay"
|
||||
# Automatic translation.
|
||||
new "Τέλος επανάληψης"
|
||||
|
||||
# screens.rpy:326
|
||||
old "Main Menu"
|
||||
new "Main Menu"
|
||||
# Automatic translation.
|
||||
new "Κύριο μενού"
|
||||
|
||||
# screens.rpy:328
|
||||
old "About"
|
||||
@@ -135,15 +158,18 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:332
|
||||
old "## Help isn't necessary or relevant to mobile devices."
|
||||
new "## Help isn't necessary or relevant to mobile devices."
|
||||
# Automatic translation.
|
||||
new "## Η βοήθεια δεν είναι απαραίτητη ή σχετική με τις κινητές συσκευές."
|
||||
|
||||
# screens.rpy:333
|
||||
old "Help"
|
||||
new "Help"
|
||||
# Automatic translation.
|
||||
new "Βοήθεια"
|
||||
|
||||
# screens.rpy:335
|
||||
old "## The quit button is banned on iOS and unnecessary on Android."
|
||||
new "## The quit button is banned on iOS and unnecessary on Android."
|
||||
# Automatic translation.
|
||||
new "## Το κουμπί quit είναι απαγορευμένο στο iOS και περιττό στο Android."
|
||||
|
||||
# screens.rpy:336
|
||||
old "Quit"
|
||||
@@ -151,11 +177,13 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:350
|
||||
old "## Main Menu screen"
|
||||
new "## Main Menu screen"
|
||||
# Automatic translation.
|
||||
new "## Οθόνη κύριου μενού"
|
||||
|
||||
# screens.rpy:352
|
||||
old "## Used to display the main menu when Ren'Py starts."
|
||||
new "## Used to display the main menu when Ren'Py starts."
|
||||
# Automatic translation.
|
||||
new "## Χρησιμοποιείται για την εμφάνιση του κύριου μενού κατά την εκκίνηση του Ren'Py."
|
||||
|
||||
# screens.rpy:354
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#main-menu"
|
||||
@@ -163,19 +191,18 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:369
|
||||
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
|
||||
new "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
|
||||
# Automatic translation.
|
||||
new "## Η δήλωση use περιλαμβάνει μια άλλη οθόνη μέσα σε αυτήν εδώ. Τα πραγματικά περιεχόμενα του κύριου μενού βρίσκονται στην οθόνη πλοήγησης."
|
||||
|
||||
# screens.rpy:413
|
||||
old "## Game Menu screen"
|
||||
new "## Game Menu screen"
|
||||
# Automatic translation.
|
||||
new "## Οθόνη μενού παιχνιδιού"
|
||||
|
||||
# screens.rpy:415
|
||||
old "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
|
||||
new "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
|
||||
|
||||
# screens.rpy:418
|
||||
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
new "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
# Automatic translation.
|
||||
new "## Εδώ παρουσιάζεται η βασική κοινή δομή της οθόνης του μενού ενός παιχνιδιού. Καλείται με τον τίτλο της οθόνης και εμφανίζει το φόντο, τον τίτλο και την πλοήγηση."
|
||||
|
||||
# screens.rpy:476
|
||||
old "Return"
|
||||
@@ -183,43 +210,53 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:539
|
||||
old "## About screen"
|
||||
new "## About screen"
|
||||
# Automatic translation.
|
||||
new "## Σχετικά με την οθόνη"
|
||||
|
||||
# screens.rpy:541
|
||||
old "## This screen gives credit and copyright information about the game and Ren'Py."
|
||||
new "## This screen gives credit and copyright information about the game and Ren'Py."
|
||||
# Automatic translation.
|
||||
new "## Αυτή η οθόνη δίνει πληροφορίες για τα πιστωτικά και τα πνευματικά δικαιώματα του παιχνιδιού και του Ren'Py."
|
||||
|
||||
# screens.rpy:544
|
||||
old "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
|
||||
new "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
|
||||
# Automatic translation.
|
||||
new "## Δεν υπάρχει τίποτα το ιδιαίτερο σε αυτή την οθόνη, και ως εκ τούτου χρησιμεύει επίσης ως παράδειγμα για το πώς να φτιάξετε μια προσαρμοσμένη οθόνη."
|
||||
|
||||
# screens.rpy:551
|
||||
old "## This use statement includes the game_menu screen inside this one. The vbox child is then included inside the viewport inside the game_menu screen."
|
||||
new "## This use statement includes the game_menu screen inside this one. The vbox child is then included inside the viewport inside the game_menu screen."
|
||||
# Automatic translation.
|
||||
new "## Αυτή η δήλωση χρήσης περιλαμβάνει την οθόνη game_menu μέσα σε αυτήν. Το παιδί vbox περιλαμβάνεται στη συνέχεια μέσα στο παράθυρο προβολής μέσα στην οθόνη game_menu."
|
||||
|
||||
# screens.rpy:561
|
||||
old "Version [config.version!t]\n"
|
||||
new "Version [config.version!t]\n"
|
||||
# Automatic translation.
|
||||
new "Έκδοση [config.version!t]\n"
|
||||
|
||||
# screens.rpy:563
|
||||
old "## gui.about is usually set in options.rpy."
|
||||
new "## gui.about is usually set in options.rpy."
|
||||
# Automatic translation.
|
||||
new "## Το gui.about συνήθως ορίζεται στο options.rpy."
|
||||
|
||||
# screens.rpy:567
|
||||
old "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
|
||||
new "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
|
||||
# Automatic translation.
|
||||
new "Φτιαγμένο με {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only] .\n\n[renpy.license!t]"
|
||||
|
||||
# screens.rpy:570
|
||||
old "## This is redefined in options.rpy to add text to the about screen."
|
||||
new "## This is redefined in options.rpy to add text to the about screen."
|
||||
# Automatic translation.
|
||||
new "## Αυτό επαναπροσδιορίζεται στο options.rpy για να προσθέσει κείμενο στην οθόνη about."
|
||||
|
||||
# screens.rpy:582
|
||||
old "## Load and Save screens"
|
||||
new "## Load and Save screens"
|
||||
# Automatic translation.
|
||||
new "## Οθόνες φόρτωσης και αποθήκευσης"
|
||||
|
||||
# screens.rpy:584
|
||||
old "## These screens are responsible for letting the player save the game and load it again. Since they share nearly everything in common, both are implemented in terms of a third screen, file_slots."
|
||||
new "## These screens are responsible for letting the player save the game and load it again. Since they share nearly everything in common, both are implemented in terms of a third screen, file_slots."
|
||||
# Automatic translation.
|
||||
new "## Αυτές οι οθόνες είναι υπεύθυνες για να επιτρέπουν στον παίκτη να αποθηκεύει το παιχνίδι και να το φορτώνει ξανά. Δεδομένου ότι μοιράζονται σχεδόν τα πάντα από κοινού, και οι δύο υλοποιούνται με όρους μιας τρίτης οθόνης, της file_slots."
|
||||
|
||||
# screens.rpy:588
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#save https://www.renpy.org/doc/html/screen_special.html#load"
|
||||
@@ -227,23 +264,28 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:607
|
||||
old "Page {}"
|
||||
new "Page {}"
|
||||
# Automatic translation.
|
||||
new "Σελίδα {}"
|
||||
|
||||
# screens.rpy:607
|
||||
old "Automatic saves"
|
||||
new "Automatic saves"
|
||||
# Automatic translation.
|
||||
new "Αυτόματη αποθήκευση"
|
||||
|
||||
# screens.rpy:607
|
||||
old "Quick saves"
|
||||
new "Quick saves"
|
||||
# Automatic translation.
|
||||
new "Γρήγορες αποταμιεύσεις"
|
||||
|
||||
# screens.rpy:613
|
||||
old "## This ensures the input will get the enter event before any of the buttons do."
|
||||
new "## This ensures the input will get the enter event before any of the buttons do."
|
||||
# Automatic translation.
|
||||
new "## Αυτό εξασφαλίζει ότι η είσοδος θα λάβει το συμβάν enter πριν από οποιοδήποτε από τα κουμπιά."
|
||||
|
||||
# screens.rpy:629
|
||||
old "## The grid of file slots."
|
||||
new "## The grid of file slots."
|
||||
# Automatic translation.
|
||||
new "## Το πλέγμα των υποδοχών αρχείων."
|
||||
|
||||
# screens.rpy:649
|
||||
old "{#file_time}%A, %B %d %Y, %H:%M"
|
||||
@@ -251,11 +293,13 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:649
|
||||
old "empty slot"
|
||||
new "empty slot"
|
||||
# Automatic translation.
|
||||
new "κενή υποδοχή"
|
||||
|
||||
# screens.rpy:657
|
||||
old "## Buttons to access other pages."
|
||||
new "## Buttons to access other pages."
|
||||
# Automatic translation.
|
||||
new "## Κουμπιά για πρόσβαση σε άλλες σελίδες."
|
||||
|
||||
# screens.rpy:666
|
||||
old "<"
|
||||
@@ -275,11 +319,13 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:711
|
||||
old "## Preferences screen"
|
||||
new "## Preferences screen"
|
||||
# Automatic translation.
|
||||
new "## Οθόνη προτιμήσεων"
|
||||
|
||||
# screens.rpy:713
|
||||
old "## The preferences screen allows the player to configure the game to better suit themselves."
|
||||
new "## The preferences screen allows the player to configure the game to better suit themselves."
|
||||
# Automatic translation.
|
||||
new "## Η οθόνη προτιμήσεων επιτρέπει στον παίκτη να ρυθμίσει το παιχνίδι ώστε να ταιριάζει καλύτερα στον εαυτό του."
|
||||
|
||||
# screens.rpy:716
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#preferences"
|
||||
@@ -299,7 +345,8 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:744
|
||||
old "Rollback Side"
|
||||
new "Rollback Side"
|
||||
# Automatic translation.
|
||||
new "Πλευρά Rollback"
|
||||
|
||||
# screens.rpy:745
|
||||
old "Disable"
|
||||
@@ -307,39 +354,48 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:746
|
||||
old "Left"
|
||||
new "Left"
|
||||
# Automatic translation.
|
||||
new "Αριστερά"
|
||||
|
||||
# screens.rpy:747
|
||||
old "Right"
|
||||
new "Right"
|
||||
# Automatic translation.
|
||||
new "Δεξιά"
|
||||
|
||||
# screens.rpy:752
|
||||
old "Unseen Text"
|
||||
new "Unseen Text"
|
||||
# Automatic translation.
|
||||
new "Αθέατο κείμενο"
|
||||
|
||||
# screens.rpy:753
|
||||
old "After Choices"
|
||||
new "After Choices"
|
||||
# Automatic translation.
|
||||
new "Μετά τις επιλογές"
|
||||
|
||||
# screens.rpy:754
|
||||
old "Transitions"
|
||||
new "Transitions"
|
||||
# Automatic translation.
|
||||
new "Μεταβάσεις"
|
||||
|
||||
# screens.rpy:756
|
||||
old "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
|
||||
new "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
|
||||
# Automatic translation.
|
||||
new "## Εδώ μπορούν να προστεθούν επιπλέον vboxes τύπου \"radio_pref\" ή \"check_pref\", για να προσθέσετε επιπλέον προτιμήσεις που καθορίζονται από τον δημιουργό."
|
||||
|
||||
# screens.rpy:767
|
||||
old "Text Speed"
|
||||
new "Text Speed"
|
||||
# Automatic translation.
|
||||
new "Ταχύτητα κειμένου"
|
||||
|
||||
# screens.rpy:771
|
||||
old "Auto-Forward Time"
|
||||
new "Auto-Forward Time"
|
||||
# Automatic translation.
|
||||
new "Χρόνος αυτόματης προώθησης"
|
||||
|
||||
# screens.rpy:778
|
||||
old "Music Volume"
|
||||
new "Music Volume"
|
||||
# Automatic translation.
|
||||
new "Ένταση μουσικής"
|
||||
|
||||
# screens.rpy:785
|
||||
old "Sound Volume"
|
||||
@@ -347,23 +403,28 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:791
|
||||
old "Test"
|
||||
new "Test"
|
||||
# Automatic translation.
|
||||
new "Δοκιμή"
|
||||
|
||||
# screens.rpy:795
|
||||
old "Voice Volume"
|
||||
new "Voice Volume"
|
||||
# Automatic translation.
|
||||
new "Ένταση φωνής"
|
||||
|
||||
# screens.rpy:806
|
||||
old "Mute All"
|
||||
new "Mute All"
|
||||
# Automatic translation.
|
||||
new "Σίγαση όλων"
|
||||
|
||||
# screens.rpy:882
|
||||
old "## History screen"
|
||||
new "## History screen"
|
||||
# Automatic translation.
|
||||
new "## Οθόνη ιστορίας"
|
||||
|
||||
# screens.rpy:884
|
||||
old "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
|
||||
new "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
|
||||
# Automatic translation.
|
||||
new "## Αυτή είναι μια οθόνη που εμφανίζει το ιστορικό των διαλόγων στον παίκτη. Αν και δεν υπάρχει κάτι ιδιαίτερο σε αυτή την οθόνη, πρέπει να έχει πρόσβαση στο ιστορικό διαλόγων που είναι αποθηκευμένο στην _history_list."
|
||||
|
||||
# screens.rpy:888
|
||||
old "## https://www.renpy.org/doc/html/history.html"
|
||||
@@ -371,35 +432,43 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:894
|
||||
old "## Avoid predicting this screen, as it can be very large."
|
||||
new "## Avoid predicting this screen, as it can be very large."
|
||||
# Automatic translation.
|
||||
new "## Αποφύγετε την πρόβλεψη αυτής της οθόνης, καθώς μπορεί να είναι πολύ μεγάλη."
|
||||
|
||||
# screens.rpy:905
|
||||
old "## This lays things out properly if history_height is None."
|
||||
new "## This lays things out properly if history_height is None."
|
||||
# Automatic translation.
|
||||
new "## Αυτό τοποθετεί τα πράγματα σωστά αν το ύψος ιστορίας δεν είναι None."
|
||||
|
||||
# screens.rpy:914
|
||||
old "## Take the color of the who text from the Character, if set."
|
||||
new "## Take the color of the who text from the Character, if set."
|
||||
# Automatic translation.
|
||||
new "## Πάρτε το χρώμα του κειμένου who από το Character, αν έχει οριστεί."
|
||||
|
||||
# screens.rpy:921
|
||||
old "The dialogue history is empty."
|
||||
new "The dialogue history is empty."
|
||||
# Automatic translation.
|
||||
new "Το ιστορικό διαλόγου είναι κενό."
|
||||
|
||||
# screens.rpy:965
|
||||
old "## Help screen"
|
||||
new "## Help screen"
|
||||
# Automatic translation.
|
||||
new "## Οθόνη βοήθειας"
|
||||
|
||||
# screens.rpy:967
|
||||
old "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
|
||||
new "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
|
||||
# Automatic translation.
|
||||
new "## Μια οθόνη που δίνει πληροφορίες σχετικά με τις δεσμεύσεις πλήκτρων και ποντικιού. Χρησιμοποιεί άλλες οθόνες (keyboard_help, mouse_help και gamepad_help) για να εμφανίσει την πραγματική βοήθεια."
|
||||
|
||||
# screens.rpy:986
|
||||
old "Keyboard"
|
||||
new "Keyboard"
|
||||
# Automatic translation.
|
||||
new "Πληκτρολόγιο"
|
||||
|
||||
# screens.rpy:987
|
||||
old "Mouse"
|
||||
new "Mouse"
|
||||
# Automatic translation.
|
||||
new "Ποντίκι"
|
||||
|
||||
# screens.rpy:990
|
||||
old "Gamepad"
|
||||
@@ -407,35 +476,43 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:1003
|
||||
old "Enter"
|
||||
new "Enter"
|
||||
# Automatic translation.
|
||||
new "Εισάγετε το"
|
||||
|
||||
# screens.rpy:1004
|
||||
old "Advances dialogue and activates the interface."
|
||||
new "Advances dialogue and activates the interface."
|
||||
# Automatic translation.
|
||||
new "Προωθεί το διάλογο και ενεργοποιεί τη διεπαφή."
|
||||
|
||||
# screens.rpy:1007
|
||||
old "Space"
|
||||
new "Space"
|
||||
# Automatic translation.
|
||||
new "Διάστημα"
|
||||
|
||||
# screens.rpy:1008
|
||||
old "Advances dialogue without selecting choices."
|
||||
new "Advances dialogue without selecting choices."
|
||||
# Automatic translation.
|
||||
new "Προχωράει το διάλογο χωρίς να επιλέγει επιλογές."
|
||||
|
||||
# screens.rpy:1011
|
||||
old "Arrow Keys"
|
||||
new "Arrow Keys"
|
||||
# Automatic translation.
|
||||
new "Πλήκτρα βέλους"
|
||||
|
||||
# screens.rpy:1012
|
||||
old "Navigate the interface."
|
||||
new "Navigate the interface."
|
||||
# Automatic translation.
|
||||
new "Πλοηγηθείτε στη διεπαφή."
|
||||
|
||||
# screens.rpy:1015
|
||||
old "Escape"
|
||||
new "Escape"
|
||||
# Automatic translation.
|
||||
new "Απόδραση"
|
||||
|
||||
# screens.rpy:1016
|
||||
old "Accesses the game menu."
|
||||
new "Accesses the game menu."
|
||||
# Automatic translation.
|
||||
new "Πρόσβαση στο μενού του παιχνιδιού."
|
||||
|
||||
# screens.rpy:1019
|
||||
old "Ctrl"
|
||||
@@ -443,7 +520,8 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:1020
|
||||
old "Skips dialogue while held down."
|
||||
new "Skips dialogue while held down."
|
||||
# Automatic translation.
|
||||
new "Παραλείπει το διάλογο όσο το κρατάτε πατημένο."
|
||||
|
||||
# screens.rpy:1023
|
||||
old "Tab"
|
||||
@@ -451,91 +529,113 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:1024
|
||||
old "Toggles dialogue skipping."
|
||||
new "Toggles dialogue skipping."
|
||||
# Automatic translation.
|
||||
new "Ενεργοποιεί την παράλειψη διαλόγου."
|
||||
|
||||
# screens.rpy:1027
|
||||
old "Page Up"
|
||||
new "Page Up"
|
||||
# Automatic translation.
|
||||
new "Σελίδα επάνω"
|
||||
|
||||
# screens.rpy:1028
|
||||
old "Rolls back to earlier dialogue."
|
||||
new "Rolls back to earlier dialogue."
|
||||
# Automatic translation.
|
||||
new "Επιστρέφει σε προηγούμενο διάλογο."
|
||||
|
||||
# screens.rpy:1031
|
||||
old "Page Down"
|
||||
new "Page Down"
|
||||
# Automatic translation.
|
||||
new "Σελίδα κάτω"
|
||||
|
||||
# screens.rpy:1032
|
||||
old "Rolls forward to later dialogue."
|
||||
new "Rolls forward to later dialogue."
|
||||
# Automatic translation.
|
||||
new "Προχωράει προς τα εμπρός για τον μετέπειτα διάλογο."
|
||||
|
||||
# screens.rpy:1036
|
||||
old "Hides the user interface."
|
||||
new "Hides the user interface."
|
||||
# Automatic translation.
|
||||
new "Κρύβει το περιβάλλον εργασίας χρήστη."
|
||||
|
||||
# screens.rpy:1040
|
||||
old "Takes a screenshot."
|
||||
new "Takes a screenshot."
|
||||
# Automatic translation.
|
||||
new "Τραβάει ένα στιγμιότυπο οθόνης."
|
||||
|
||||
# screens.rpy:1044
|
||||
old "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
|
||||
new "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
|
||||
# Automatic translation.
|
||||
new "Εναλλαγή βοηθητικών {a=https://www.renpy.org/l/voicing}αυτοφωνημάτων{/a}."
|
||||
|
||||
# screens.rpy:1050
|
||||
old "Left Click"
|
||||
new "Left Click"
|
||||
# Automatic translation.
|
||||
new "Αριστερό κλικ"
|
||||
|
||||
# screens.rpy:1054
|
||||
old "Middle Click"
|
||||
new "Middle Click"
|
||||
# Automatic translation.
|
||||
new "Μεσαίο κλικ"
|
||||
|
||||
# screens.rpy:1058
|
||||
old "Right Click"
|
||||
new "Right Click"
|
||||
# Automatic translation.
|
||||
new "Δεξί κλικ"
|
||||
|
||||
# screens.rpy:1062
|
||||
old "Mouse Wheel Up\nClick Rollback Side"
|
||||
new "Mouse Wheel Up\nClick Rollback Side"
|
||||
# Automatic translation.
|
||||
new "Τροχός ποντικιού επάνω\nΚάντε κλικ στο Rollback Side"
|
||||
|
||||
# screens.rpy:1066
|
||||
old "Mouse Wheel Down"
|
||||
new "Mouse Wheel Down"
|
||||
# Automatic translation.
|
||||
new "Τροχός του ποντικιού προς τα κάτω"
|
||||
|
||||
# screens.rpy:1073
|
||||
old "Right Trigger\nA/Bottom Button"
|
||||
new "Right Trigger\nA/Bottom Button"
|
||||
# Automatic translation.
|
||||
new "Δεξί σκανδάλη\nA/κάτω κουμπί"
|
||||
|
||||
# screens.rpy:1074
|
||||
old "Advance dialogue and activates the interface."
|
||||
new "Advance dialogue and activates the interface."
|
||||
# Automatic translation.
|
||||
new "Προώθηση διαλόγου και ενεργοποίηση της διεπαφής."
|
||||
|
||||
# screens.rpy:1078
|
||||
old "Roll back to earlier dialogue."
|
||||
new "Roll back to earlier dialogue."
|
||||
# Automatic translation.
|
||||
new "Επιστροφή σε προηγούμενο διάλογο."
|
||||
|
||||
# screens.rpy:1081
|
||||
old "Right Shoulder"
|
||||
new "Right Shoulder"
|
||||
# Automatic translation.
|
||||
new "Δεξιός ώμος"
|
||||
|
||||
# screens.rpy:1082
|
||||
old "Roll forward to later dialogue."
|
||||
new "Roll forward to later dialogue."
|
||||
# Automatic translation.
|
||||
new "Προχωρήστε σε μεταγενέστερο διάλογο."
|
||||
|
||||
# screens.rpy:1085
|
||||
old "D-Pad, Sticks"
|
||||
new "D-Pad, Sticks"
|
||||
# Automatic translation.
|
||||
new "D-Pad, μπαστούνια"
|
||||
|
||||
# screens.rpy:1089
|
||||
old "Start, Guide"
|
||||
new "Start, Guide"
|
||||
# Automatic translation.
|
||||
new "Έναρξη, Οδηγός"
|
||||
|
||||
# screens.rpy:1090
|
||||
old "Access the game menu."
|
||||
new "Access the game menu."
|
||||
# Automatic translation.
|
||||
new "Πρόσβαση στο μενού του παιχνιδιού."
|
||||
|
||||
# screens.rpy:1093
|
||||
old "Y/Top Button"
|
||||
new "Y/Top Button"
|
||||
# Automatic translation.
|
||||
new "Y/Πάνω κουμπί"
|
||||
|
||||
# screens.rpy:1096
|
||||
old "Calibrate"
|
||||
@@ -543,15 +643,18 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:1124
|
||||
old "## Additional screens"
|
||||
new "## Additional screens"
|
||||
# Automatic translation.
|
||||
new "## Πρόσθετες οθόνες"
|
||||
|
||||
# screens.rpy:1128
|
||||
old "## Confirm screen"
|
||||
new "## Confirm screen"
|
||||
# Automatic translation.
|
||||
new "## Επιβεβαίωση οθόνης"
|
||||
|
||||
# screens.rpy:1130
|
||||
old "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
|
||||
new "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
|
||||
# Automatic translation.
|
||||
new "## Η οθόνη επιβεβαίωσης καλείται όταν ο Ren'Py θέλει να κάνει στον παίκτη μια ερώτηση ναι ή όχι."
|
||||
|
||||
# screens.rpy:1133
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#confirm"
|
||||
@@ -559,7 +662,8 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:1137
|
||||
old "## Ensure other screens do not get input while this screen is displayed."
|
||||
new "## Ensure other screens do not get input while this screen is displayed."
|
||||
# Automatic translation.
|
||||
new "## Βεβαιωθείτε ότι άλλες οθόνες δεν λαμβάνουν δεδομένα ενώ εμφανίζεται αυτή η οθόνη."
|
||||
|
||||
# screens.rpy:1161
|
||||
old "Yes"
|
||||
@@ -571,15 +675,18 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:1164
|
||||
old "## Right-click and escape answer \"no\"."
|
||||
new "## Right-click and escape answer \"no\"."
|
||||
# Automatic translation.
|
||||
new "## Κάντε δεξί κλικ και αποφύγετε την απάντηση \"όχι\"."
|
||||
|
||||
# screens.rpy:1191
|
||||
old "## Skip indicator screen"
|
||||
new "## Skip indicator screen"
|
||||
# Automatic translation.
|
||||
new "## Οθόνη ένδειξης παράλειψης"
|
||||
|
||||
# screens.rpy:1193
|
||||
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
|
||||
new "## The skip_indicator screen is displayed to indicate that skipping is in progress."
|
||||
# Automatic translation.
|
||||
new "## Εμφανίζεται η οθόνη skip_indicator για να υποδείξει ότι η παράλειψη βρίσκεται σε εξέλιξη."
|
||||
|
||||
# screens.rpy:1196
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
|
||||
@@ -587,19 +694,23 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:1208
|
||||
old "Skipping"
|
||||
new "Skipping"
|
||||
# Automatic translation.
|
||||
new "Παράλειψη"
|
||||
|
||||
# screens.rpy:1215
|
||||
old "## This transform is used to blink the arrows one after another."
|
||||
new "## This transform is used to blink the arrows one after another."
|
||||
# Automatic translation.
|
||||
new "## Αυτός ο μετασχηματισμός χρησιμοποιείται για να αναβοσβήνουν τα βέλη το ένα μετά το άλλο."
|
||||
|
||||
# screens.rpy:1247
|
||||
old "## Notify screen"
|
||||
new "## Notify screen"
|
||||
# Automatic translation.
|
||||
new "## Ειδοποίηση οθόνης"
|
||||
|
||||
# screens.rpy:1249
|
||||
old "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
|
||||
new "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
|
||||
# Automatic translation.
|
||||
new "## Η οθόνη ειδοποίησης χρησιμοποιείται για να δείξει στον παίκτη ένα μήνυμα. (Για παράδειγμα, όταν το παιχνίδι έχει αποθηκευτεί ή έχει ληφθεί ένα στιγμιότυπο οθόνης)."
|
||||
|
||||
# screens.rpy:1252
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
|
||||
@@ -607,11 +718,13 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:1286
|
||||
old "## NVL screen"
|
||||
new "## NVL screen"
|
||||
# Automatic translation.
|
||||
new "## Οθόνη NVL"
|
||||
|
||||
# screens.rpy:1288
|
||||
old "## This screen is used for NVL-mode dialogue and menus."
|
||||
new "## This screen is used for NVL-mode dialogue and menus."
|
||||
# Automatic translation.
|
||||
new "## Αυτή η οθόνη χρησιμοποιείται για τον διάλογο και τα μενού της λειτουργίας NVL."
|
||||
|
||||
# screens.rpy:1290
|
||||
old "## http://www.renpy.org/doc/html/screen_special.html#nvl"
|
||||
@@ -619,25 +732,160 @@ translate greek strings:
|
||||
|
||||
# screens.rpy:1301
|
||||
old "## Displays dialogue in either a vpgrid or the vbox."
|
||||
new "## Displays dialogue in either a vpgrid or the vbox."
|
||||
# Automatic translation.
|
||||
new "## Εμφανίζει το διάλογο είτε σε ένα vpgrid είτε στο vbox."
|
||||
|
||||
# screens.rpy:1314
|
||||
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
|
||||
new "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
|
||||
# Automatic translation.
|
||||
new "## Εμφανίζει το μενού, αν υπάρχει. Το μενού μπορεί να εμφανιστεί εσφαλμένα αν το config.narrator_menu έχει οριστεί σε True, όπως είναι παραπάνω."
|
||||
|
||||
# screens.rpy:1344
|
||||
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
|
||||
new "## This controls the maximum number of NVL-mode entries that can be displayed at once."
|
||||
# Automatic translation.
|
||||
new "## Ελέγχει τον μέγιστο αριθμό καταχωρήσεων της λειτουργίας NVL που μπορούν να εμφανιστούν ταυτόχρονα."
|
||||
|
||||
# screens.rpy:1406
|
||||
old "## Mobile Variants"
|
||||
new "## Mobile Variants"
|
||||
# Automatic translation.
|
||||
new "## Παραλλαγές κινητού"
|
||||
|
||||
# screens.rpy:1413
|
||||
old "## Since a mouse may not be present, we replace the quick menu with a version that uses fewer and bigger buttons that are easier to touch."
|
||||
new "## Since a mouse may not be present, we replace the quick menu with a version that uses fewer and bigger buttons that are easier to touch."
|
||||
# Automatic translation.
|
||||
new "## Δεδομένου ότι μπορεί να μην υπάρχει ποντίκι, αντικαθιστούμε το γρήγορο μενού με μια έκδοση που χρησιμοποιεί λιγότερα και μεγαλύτερα κουμπιά που είναι πιο εύκολο να αγγίξετε."
|
||||
|
||||
# screens.rpy:1429
|
||||
old "Menu"
|
||||
new "Menu"
|
||||
# Automatic translation.
|
||||
new "Μενού"
|
||||
|
||||
|
||||
translate greek strings:
|
||||
|
||||
# gui/game/screens.rpy:114
|
||||
old "## If there's a side image, display it above the text. Do not display on the phone variant - there's no room."
|
||||
# Automatic translation.
|
||||
new "## Αν υπάρχει εικόνα στο πλάι, εμφανίστε την πάνω από το κείμενο. Μην την εμφανίζετε στην παραλλαγή του τηλεφώνου - δεν υπάρχει χώρος."
|
||||
|
||||
# gui/game/screens.rpy:120
|
||||
old "## Make the namebox available for styling through the Character object."
|
||||
# Automatic translation.
|
||||
new "## Κάντε το πλαίσιο ονόματος διαθέσιμο για διαμόρφωση μέσω του αντικειμένου Character."
|
||||
|
||||
# gui/game/screens.rpy:173
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#input"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#input"
|
||||
|
||||
# gui/game/screens.rpy:206
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#choice"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#choice"
|
||||
|
||||
# gui/game/screens.rpy:241
|
||||
old "## Ensure this appears on top of other screens."
|
||||
# Automatic translation.
|
||||
new "## Βεβαιωθείτε ότι αυτό εμφανίζεται πάνω από άλλες οθόνες."
|
||||
|
||||
# gui/game/screens.rpy:280
|
||||
old "## Main and Game Menu Screens"
|
||||
# Automatic translation.
|
||||
new "## Οθόνες κύριου μενού και μενού παιχνιδιού"
|
||||
|
||||
# gui/game/screens.rpy:329
|
||||
old "## The quit button is banned on iOS and unnecessary on Android and Web."
|
||||
# Automatic translation.
|
||||
new "## Το κουμπί quit είναι απαγορευμένο στο iOS και περιττό στο Android και το Web."
|
||||
|
||||
# gui/game/screens.rpy:348
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#main-menu"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#main-menu"
|
||||
|
||||
# gui/game/screens.rpy:352
|
||||
old "## This ensures that any other menu screen is replaced."
|
||||
# Automatic translation.
|
||||
new "## Αυτό εξασφαλίζει ότι οποιαδήποτε άλλη οθόνη μενού αντικαθίσταται."
|
||||
|
||||
# gui/game/screens.rpy:357
|
||||
old "## This empty frame darkens the main menu."
|
||||
# Automatic translation.
|
||||
new "## Αυτό το κενό πλαίσιο σκουραίνει το κύριο μενού."
|
||||
|
||||
# gui/game/screens.rpy:429
|
||||
old "## Reserve space for the navigation section."
|
||||
# Automatic translation.
|
||||
new "## Κρατήστε χώρο για το τμήμα πλοήγησης."
|
||||
|
||||
# gui/game/screens.rpy:608
|
||||
old "## The page name, which can be edited by clicking on a button."
|
||||
# Automatic translation.
|
||||
new "## Το όνομα της σελίδας, το οποίο μπορεί να επεξεργαστεί κάνοντας κλικ σε ένα κουμπί."
|
||||
|
||||
# gui/game/screens.rpy:668
|
||||
old "## range(1, 10) gives the numbers from 1 to 9."
|
||||
# Automatic translation.
|
||||
new "## range(1, 10) δίνει τους αριθμούς από το 1 έως το 9."
|
||||
|
||||
# gui/game/screens.rpy:676
|
||||
old "Upload Sync"
|
||||
# Automatic translation.
|
||||
new "Συγχρονισμός φόρτωσης"
|
||||
|
||||
# gui/game/screens.rpy:680
|
||||
old "Download Sync"
|
||||
# Automatic translation.
|
||||
new "Λήψη Sync"
|
||||
|
||||
# gui/game/screens.rpy:921
|
||||
old "## This determines what tags are allowed to be displayed on the history screen."
|
||||
# Automatic translation.
|
||||
new "## Αυτό καθορίζει ποιες ετικέτες επιτρέπεται να εμφανίζονται στην οθόνη ιστορικού."
|
||||
|
||||
# gui/game/screens.rpy:1049
|
||||
old "Opens the accessibility menu."
|
||||
# Automatic translation.
|
||||
new "Ανοίγει το μενού προσβασιμότητας."
|
||||
|
||||
# gui/game/screens.rpy:1082
|
||||
old "Left Trigger\nLeft Shoulder"
|
||||
# Automatic translation.
|
||||
new "Αριστερό σκανδάλη\nΑριστερός ώμος"
|
||||
|
||||
# gui/game/screens.rpy:1139
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#confirm"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#confirm"
|
||||
|
||||
# gui/game/screens.rpy:1248
|
||||
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
|
||||
# Automatic translation.
|
||||
new "## Πρέπει να χρησιμοποιήσουμε μια γραμματοσειρά που να έχει τη γλυφή BLACK RIGHT-POINTING SMALL TRIANGLE."
|
||||
|
||||
# gui/game/screens.rpy:1296
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#nvl"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#nvl"
|
||||
|
||||
# gui/game/screens.rpy:1320
|
||||
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True."
|
||||
# Automatic translation.
|
||||
new "## Εμφανίζει το μενού, αν υπάρχει. Το μενού μπορεί να εμφανιστεί εσφαλμένα αν το config.narrator_menu έχει οριστεί σε True."
|
||||
|
||||
# gui/game/screens.rpy:1410
|
||||
old "## Bubble screen"
|
||||
# Automatic translation.
|
||||
new "## Οθόνη φυσαλίδων"
|
||||
|
||||
# gui/game/screens.rpy:1412
|
||||
old "## The bubble screen is used to display dialogue to the player when using speech bubbles. The bubble screen takes the same parameters as the say screen, must create a displayable with the id of \"what\", and can create displayables with the \"namebox\", \"who\", and \"window\" ids."
|
||||
# Automatic translation.
|
||||
new "## Η οθόνη φυσαλίδων χρησιμοποιείται για την εμφάνιση διαλόγου στον παίκτη όταν χρησιμοποιούνται φυσαλίδες ομιλίας. Η οθόνη φυσαλίδων λαμβάνει τις ίδιες παραμέτρους με την οθόνη say, πρέπει να δημιουργήσει ένα displayable με το id \"what\" και μπορεί να δημιουργήσει displayables με τα ids \"namebox\", \"who\" και \"window\"."
|
||||
|
||||
# gui/game/screens.rpy:1417
|
||||
old "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
|
||||
new "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
|
||||
|
||||
translate greek strings:
|
||||
|
||||
# gui/game/screens.rpy:411
|
||||
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". This screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
# Automatic translation.
|
||||
new "## Η παράμετρος κύλισης μπορεί να είναι None ή ένα από τα \"viewport\" ή \"vpgrid\". Αυτή η οθόνη προορίζεται να χρησιμοποιηθεί με ένα ή περισσότερα παιδιά, τα οποία μεταφέρονται (τοποθετούνται) μέσα σε αυτήν."
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
|
||||
# 00action_file.rpy:47
|
||||
old "{#month}February"
|
||||
new "{#month}Febuari"
|
||||
new "{#month}Februari"
|
||||
|
||||
# 00action_file.rpy:47
|
||||
old "{#month}March"
|
||||
@@ -118,7 +118,7 @@
|
||||
|
||||
# 00action_file.rpy:63
|
||||
old "{#month_short}Apr"
|
||||
new "{#month_short}Aprl"
|
||||
new "{#month_short}Apr"
|
||||
|
||||
# 00action_file.rpy:63
|
||||
old "{#month_short}May"
|
||||
@@ -134,7 +134,7 @@
|
||||
|
||||
# 00action_file.rpy:63
|
||||
old "{#month_short}Aug"
|
||||
new "{#month_short}Agust"
|
||||
new "{#month_short}Agu"
|
||||
|
||||
# 00action_file.rpy:63
|
||||
old "{#month_short}Sep"
|
||||
@@ -154,7 +154,8 @@
|
||||
|
||||
# 00action_file.rpy:235
|
||||
old "%b %d, %H:%M"
|
||||
new "%b %d, %H:%M"
|
||||
# Automatic translation.
|
||||
new "%b %d, %H: %M"
|
||||
|
||||
# 00action_file.rpy:820
|
||||
old "Quick save complete."
|
||||
@@ -238,11 +239,11 @@
|
||||
|
||||
# 00iap.rpy:217
|
||||
old "Contacting App Store\nPlease Wait..."
|
||||
new "Contacting App Store\nPlease Wait..."
|
||||
new "Contacting App Store\nTunggu sebenatar..."
|
||||
|
||||
# 00updater.rpy:367
|
||||
old "The Ren'Py Updater is not supported on mobile devices."
|
||||
new "Ren'Py Updater tidak di support di perangkat handphone."
|
||||
new "Pembaru Ren'Py tidak di support di perangkat handphone."
|
||||
|
||||
# 00updater.rpy:486
|
||||
old "An error is being simulated."
|
||||
@@ -250,39 +251,39 @@
|
||||
|
||||
# 00updater.rpy:662
|
||||
old "Either this project does not support updating, or the update status file was deleted."
|
||||
new "Antara proyek tidak mendukung update, atau file status update di hapus."
|
||||
new "Antara proyek tidak mendukung pembaharuan, atau status file pembaharuan di hapus."
|
||||
|
||||
# 00updater.rpy:676
|
||||
old "This account does not have permission to perform an update."
|
||||
new "Akun ini tidak memiliki izin untuk melakukan update."
|
||||
new "Akun ini tidak memiliki izin untuk melakukan pembaharuan."
|
||||
|
||||
# 00updater.rpy:679
|
||||
old "This account does not have permission to write the update log."
|
||||
new "Akun ini tidak memiliki izin untuk menulis log update."
|
||||
new "Akun ini tidak memiliki izin untuk menulis log pembaharuan."
|
||||
|
||||
# 00updater.rpy:704
|
||||
old "Could not verify update signature."
|
||||
new "Tidak dapat memverifikasi tandatangan update."
|
||||
new "Tidak dapat memverifikasi tandatangan pembaharuan."
|
||||
|
||||
# 00updater.rpy:975
|
||||
old "The update file was not downloaded."
|
||||
new "File update tidak di download."
|
||||
new "File pembaharuan tidak di unduh."
|
||||
|
||||
# 00updater.rpy:993
|
||||
old "The update file does not have the correct digest - it may have been corrupted."
|
||||
new "File update tiidak memiliki digest yang benar - mungkin file corrupt."
|
||||
new "File pembaharuan tidak memiliki digest yang benar - mungkin file corrupt/rusak."
|
||||
|
||||
# 00updater.rpy:1049
|
||||
old "While unpacking {}, unknown type {}."
|
||||
new "Ketika unppack {}, tipe tidak diketahui {}."
|
||||
new "Ketika unpack {}, tipe tidak diketahui {}."
|
||||
|
||||
# 00updater.rpy:1393
|
||||
old "Updater"
|
||||
new "Updater"
|
||||
new "Pembaru"
|
||||
|
||||
# 00updater.rpy:1404
|
||||
old "This program is up to date."
|
||||
new "Program ini sudah up to date."
|
||||
new "Program ini sudah up to date(terbaru)."
|
||||
|
||||
# 00updater.rpy:1406
|
||||
old "[u.version] is available. Do you want to install it?"
|
||||
@@ -290,27 +291,27 @@
|
||||
|
||||
# 00updater.rpy:1408
|
||||
old "Preparing to download the updates."
|
||||
new "Bersiap untuk mendownload update."
|
||||
new "Bersiap untuk mengunduh pembaharuan."
|
||||
|
||||
# 00updater.rpy:1410
|
||||
old "Downloading the updates."
|
||||
new "Mendownload update."
|
||||
new "Mengunduh pembaharuan."
|
||||
|
||||
# 00updater.rpy:1412
|
||||
old "Unpacking the updates."
|
||||
new "Meng unpack update."
|
||||
new "Mengunpack pembaharuan."
|
||||
|
||||
# 00updater.rpy:1416
|
||||
old "The updates have been installed. The program will restart."
|
||||
new "Update sudah terpasang. Program akan melakukan restart."
|
||||
new "Pembaharuan telah terpasang. Program akan melakukan restart."
|
||||
|
||||
# 00updater.rpy:1418
|
||||
old "The updates have been installed."
|
||||
new "Update sudah terpasang."
|
||||
new "Pembaharuan telah terpasang."
|
||||
|
||||
# 00updater.rpy:1420
|
||||
old "The updates were cancelled."
|
||||
new "Proses update di batalkan."
|
||||
new "Proses pembaharuan di batalkan."
|
||||
|
||||
# 00gallery.rpy:563
|
||||
old "Image [index] of [count] locked."
|
||||
@@ -345,7 +346,8 @@ translate indonesian strings:
|
||||
|
||||
# 00director.rpy:1469
|
||||
old "(statement)"
|
||||
new "(statement)"
|
||||
# Automatic translation.
|
||||
new "(pernyataan)"
|
||||
|
||||
# 00director.rpy:1470
|
||||
old "(tag)"
|
||||
@@ -353,23 +355,23 @@ translate indonesian strings:
|
||||
|
||||
# 00director.rpy:1471
|
||||
old "(attributes)"
|
||||
new "(attributes)"
|
||||
new "(atribut)"
|
||||
|
||||
# 00director.rpy:1472
|
||||
old "(transform)"
|
||||
new "(tramsform)"
|
||||
new "(tramsformasi)"
|
||||
|
||||
# 00director.rpy:1497
|
||||
old "(transition)"
|
||||
new "(transition)"
|
||||
new "(transisi)"
|
||||
|
||||
# 00director.rpy:1509
|
||||
old "(channel)"
|
||||
new "(channel)"
|
||||
new "(kanal)"
|
||||
|
||||
# 00director.rpy:1510
|
||||
old "(filename)"
|
||||
new "(filename)"
|
||||
new "(namafile)"
|
||||
|
||||
# 00director.rpy:1535
|
||||
old "Change"
|
||||
@@ -397,11 +399,11 @@ translate indonesian strings:
|
||||
|
||||
# 00director.rpy:1631
|
||||
old "Transforms:"
|
||||
new "Transforms:"
|
||||
new "Transformasi:"
|
||||
|
||||
# 00director.rpy:1650
|
||||
old "Behind:"
|
||||
new "Di Belakang:"
|
||||
new "Dibelakang:"
|
||||
|
||||
# 00director.rpy:1669
|
||||
old "Transition:"
|
||||
@@ -409,7 +411,7 @@ translate indonesian strings:
|
||||
|
||||
# 00director.rpy:1687
|
||||
old "Channel:"
|
||||
new "Channel:"
|
||||
new "Kanal:"
|
||||
|
||||
# 00director.rpy:1705
|
||||
old "Audio Filename:"
|
||||
@@ -421,13 +423,563 @@ translate indonesian strings:
|
||||
|
||||
# _developer\developer.rpym:67
|
||||
old "Show Texture Size"
|
||||
new "Tampilkan Ukuran Textur"
|
||||
new "Tampilkan Ukuran Tekstur"
|
||||
|
||||
# _developer\developer.rpym:70
|
||||
old "Hide Texture size"
|
||||
new "Sembunyikan Ukuran Textur"
|
||||
new "Sembunyikan Ukuran Tekstur"
|
||||
|
||||
# _developer\developer.rpym:569
|
||||
old "{size_mb:,.1f} MB in {count} textures."
|
||||
new "{size_mb:,.1f} MB pada {count} textur."
|
||||
new "{size_mb:,.1f} MB pada {count} tekstur."
|
||||
|
||||
translate indonesian strings:
|
||||
|
||||
# renpy/common/00accessibility.rpy:32
|
||||
old "bar"
|
||||
new "bar"
|
||||
|
||||
# renpy/common/00accessibility.rpy:33
|
||||
old "selected"
|
||||
# Automatic translation.
|
||||
new "dipilih"
|
||||
|
||||
# renpy/common/00accessibility.rpy:34
|
||||
old "viewport"
|
||||
new "viewport"
|
||||
|
||||
# renpy/common/00accessibility.rpy:35
|
||||
old "horizontal scroll"
|
||||
# Automatic translation.
|
||||
new "gulir horizontal"
|
||||
|
||||
# renpy/common/00accessibility.rpy:36
|
||||
old "vertical scroll"
|
||||
# Automatic translation.
|
||||
new "gulir vertikal"
|
||||
|
||||
# renpy/common/00accessibility.rpy:37
|
||||
old "activate"
|
||||
# Automatic translation.
|
||||
new "aktifkan"
|
||||
|
||||
# renpy/common/00accessibility.rpy:38
|
||||
old "deactivate"
|
||||
# Automatic translation.
|
||||
new "menonaktifkan"
|
||||
|
||||
# renpy/common/00accessibility.rpy:39
|
||||
old "increase"
|
||||
# Automatic translation.
|
||||
new "meningkat"
|
||||
|
||||
# renpy/common/00accessibility.rpy:40
|
||||
old "decrease"
|
||||
# Automatic translation.
|
||||
new "penurunan"
|
||||
|
||||
# renpy/common/00accessibility.rpy:138
|
||||
old "Font Override"
|
||||
# Automatic translation.
|
||||
new "Penggantian Font"
|
||||
|
||||
# renpy/common/00accessibility.rpy:142
|
||||
old "Default"
|
||||
new "Default"
|
||||
|
||||
# renpy/common/00accessibility.rpy:146
|
||||
old "DejaVu Sans"
|
||||
new "DejaVu Sans"
|
||||
|
||||
# renpy/common/00accessibility.rpy:150
|
||||
old "Opendyslexic"
|
||||
new "Opendyslexic"
|
||||
|
||||
# renpy/common/00accessibility.rpy:156
|
||||
old "Text Size Scaling"
|
||||
# Automatic translation.
|
||||
new "Penskalaan Ukuran Teks"
|
||||
|
||||
# renpy/common/00accessibility.rpy:162
|
||||
old "Reset"
|
||||
# Automatic translation.
|
||||
new "Atur ulang"
|
||||
|
||||
# renpy/common/00accessibility.rpy:168
|
||||
old "Line Spacing Scaling"
|
||||
# Automatic translation.
|
||||
new "Penskalaan Jarak Baris"
|
||||
|
||||
# renpy/common/00accessibility.rpy:180
|
||||
old "High Contrast Text"
|
||||
# Automatic translation.
|
||||
new "Teks Kontras Tinggi"
|
||||
|
||||
# renpy/common/00accessibility.rpy:193
|
||||
old "Self-Voicing"
|
||||
# Automatic translation.
|
||||
new "Menyuarakan Diri Sendiri"
|
||||
|
||||
# renpy/common/00accessibility.rpy:197
|
||||
old "Off"
|
||||
# Automatic translation.
|
||||
new "Mati"
|
||||
|
||||
# renpy/common/00accessibility.rpy:201
|
||||
old "Text-to-speech"
|
||||
# Automatic translation.
|
||||
new "Teks-ke-ucapan"
|
||||
|
||||
# renpy/common/00accessibility.rpy:205
|
||||
old "Clipboard"
|
||||
# Automatic translation.
|
||||
new "Papan klip"
|
||||
|
||||
# renpy/common/00accessibility.rpy:209
|
||||
old "Debug"
|
||||
new "Debug"
|
||||
|
||||
# renpy/common/00accessibility.rpy:223
|
||||
old "Self-Voicing Volume Drop"
|
||||
# Automatic translation.
|
||||
new "Penurunan Volume Suara Sendiri"
|
||||
|
||||
# renpy/common/00accessibility.rpy:234
|
||||
old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was."
|
||||
# Automatic translation.
|
||||
new "Opsi pada menu ini dimaksudkan untuk meningkatkan aksesibilitas. Opsi-opsi tersebut mungkin tidak berfungsi pada semua game, dan beberapa kombinasi opsi dapat membuat game tidak dapat dimainkan. Ini bukan masalah pada game atau mesin. Untuk hasil terbaik saat mengubah font, cobalah untuk menjaga ukuran teks tetap sama seperti aslinya."
|
||||
|
||||
# renpy/common/00action_file.rpy:378
|
||||
old "Save slot %s: [text]"
|
||||
# Automatic translation.
|
||||
new "Simpan slot %s: [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:461
|
||||
old "Load slot %s: [text]"
|
||||
# Automatic translation.
|
||||
new "Memuat slot %s: [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:514
|
||||
old "Delete slot [text]"
|
||||
# Automatic translation.
|
||||
new "Hapus slot [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:593
|
||||
old "File page auto"
|
||||
# Automatic translation.
|
||||
new "Halaman file otomatis"
|
||||
|
||||
# renpy/common/00action_file.rpy:595
|
||||
old "File page quick"
|
||||
# Automatic translation.
|
||||
new "Mengajukan halaman file dengan cepat"
|
||||
|
||||
# renpy/common/00action_file.rpy:597
|
||||
old "File page [text]"
|
||||
# Automatic translation.
|
||||
new "Halaman file [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:796
|
||||
old "Next file page."
|
||||
# Automatic translation.
|
||||
new "Halaman file berikutnya."
|
||||
|
||||
# renpy/common/00action_file.rpy:868
|
||||
old "Previous file page."
|
||||
# Automatic translation.
|
||||
new "Halaman file sebelumnya."
|
||||
|
||||
# renpy/common/00action_file.rpy:944
|
||||
old "Quick save."
|
||||
# Automatic translation.
|
||||
new "Simpan cepat."
|
||||
|
||||
# renpy/common/00action_file.rpy:963
|
||||
old "Quick load."
|
||||
# Automatic translation.
|
||||
new "Memuat dengan cepat."
|
||||
|
||||
# renpy/common/00action_other.rpy:381
|
||||
old "Language [text]"
|
||||
# Automatic translation.
|
||||
new "Bahasa [text]"
|
||||
|
||||
# renpy/common/00director.rpy:1504
|
||||
old "⬆"
|
||||
new "⬆"
|
||||
|
||||
# renpy/common/00director.rpy:1510
|
||||
old "⬇"
|
||||
new "⬇"
|
||||
|
||||
# renpy/common/00director.rpy:1745
|
||||
old "Click to toggle attribute, right click to toggle negative attribute."
|
||||
# Automatic translation.
|
||||
new "Klik untuk mengganti atribut, klik kanan untuk mengganti atribut negatif."
|
||||
|
||||
# renpy/common/00director.rpy:1768
|
||||
old "Click to set transform, right click to add to transform list."
|
||||
# Automatic translation.
|
||||
new "Klik untuk mengatur transformasi, klik kanan untuk menambahkan ke daftar transformasi."
|
||||
|
||||
# renpy/common/00director.rpy:1789
|
||||
old "Click to set, right click to add to behind list."
|
||||
# Automatic translation.
|
||||
new "Klik untuk mengatur, klik kanan untuk menambahkan ke daftar belakang."
|
||||
|
||||
# renpy/common/00gui.rpy:456
|
||||
old "This save was created on a different device. Maliciously constructed save files can harm your computer. Do you trust this save's creator and everyone who could have changed the file?"
|
||||
# Automatic translation.
|
||||
new "Penyimpanan ini dibuat pada perangkat yang berbeda. File penyimpanan yang dibuat dengan cara yang berbahaya dapat membahayakan komputer Anda. Apakah Anda mempercayai pembuat file penyimpanan ini dan semua orang yang dapat mengubah file tersebut?"
|
||||
|
||||
# renpy/common/00gui.rpy:457
|
||||
old "Do you trust the device the save was created on? You should only choose yes if you are the device's sole user."
|
||||
# Automatic translation.
|
||||
new "Apakah Anda mempercayai perangkat tempat penyimpanan dibuat? Anda sebaiknya hanya memilih ya jika Anda adalah satu-satunya pengguna perangkat."
|
||||
|
||||
# renpy/common/00keymap.rpy:322
|
||||
old "Failed to save screenshot as %s."
|
||||
# Automatic translation.
|
||||
new "Gagal menyimpan tangkapan layar sebagai %s."
|
||||
|
||||
# renpy/common/00preferences.rpy:271
|
||||
old "display"
|
||||
# Automatic translation.
|
||||
new "tampilan"
|
||||
|
||||
# renpy/common/00preferences.rpy:283
|
||||
old "transitions"
|
||||
# Automatic translation.
|
||||
new "transisi"
|
||||
|
||||
# renpy/common/00preferences.rpy:292
|
||||
old "skip transitions"
|
||||
# Automatic translation.
|
||||
new "lewati transisi"
|
||||
|
||||
# renpy/common/00preferences.rpy:294
|
||||
old "video sprites"
|
||||
# Automatic translation.
|
||||
new "sprite video"
|
||||
|
||||
# renpy/common/00preferences.rpy:303
|
||||
old "show empty window"
|
||||
# Automatic translation.
|
||||
new "tampilkan jendela kosong"
|
||||
|
||||
# renpy/common/00preferences.rpy:312
|
||||
old "text speed"
|
||||
# Automatic translation.
|
||||
new "kecepatan teks"
|
||||
|
||||
# renpy/common/00preferences.rpy:320
|
||||
old "joystick"
|
||||
new "joystick"
|
||||
|
||||
# renpy/common/00preferences.rpy:320
|
||||
old "joystick..."
|
||||
new "joystick..."
|
||||
|
||||
# renpy/common/00preferences.rpy:327
|
||||
old "skip"
|
||||
# Automatic translation.
|
||||
new "melewatkan"
|
||||
|
||||
# renpy/common/00preferences.rpy:330
|
||||
old "skip unseen [text]"
|
||||
# Automatic translation.
|
||||
new "lewati yang tak terlihat [text]"
|
||||
|
||||
# renpy/common/00preferences.rpy:335
|
||||
old "skip unseen text"
|
||||
# Automatic translation.
|
||||
new "lewati teks yang tidak terlihat"
|
||||
|
||||
# renpy/common/00preferences.rpy:337
|
||||
old "begin skipping"
|
||||
# Automatic translation.
|
||||
new "mulai melewatkan"
|
||||
|
||||
# renpy/common/00preferences.rpy:341
|
||||
old "after choices"
|
||||
# Automatic translation.
|
||||
new "setelah pilihan"
|
||||
|
||||
# renpy/common/00preferences.rpy:348
|
||||
old "skip after choices"
|
||||
# Automatic translation.
|
||||
new "lewati setelah pilihan"
|
||||
|
||||
# renpy/common/00preferences.rpy:350
|
||||
old "auto-forward time"
|
||||
# Automatic translation.
|
||||
new "waktu maju otomatis"
|
||||
|
||||
# renpy/common/00preferences.rpy:364
|
||||
old "auto-forward"
|
||||
# Automatic translation.
|
||||
new "maju otomatis"
|
||||
|
||||
# renpy/common/00preferences.rpy:371
|
||||
old "Auto forward"
|
||||
# Automatic translation.
|
||||
new "Maju otomatis"
|
||||
|
||||
# renpy/common/00preferences.rpy:374
|
||||
old "auto-forward after click"
|
||||
# Automatic translation.
|
||||
new "maju otomatis setelah klik"
|
||||
|
||||
# renpy/common/00preferences.rpy:383
|
||||
old "automatic move"
|
||||
# Automatic translation.
|
||||
new "gerakan otomatis"
|
||||
|
||||
# renpy/common/00preferences.rpy:392
|
||||
old "wait for voice"
|
||||
# Automatic translation.
|
||||
new "menunggu suara"
|
||||
|
||||
# renpy/common/00preferences.rpy:401
|
||||
old "voice sustain"
|
||||
# Automatic translation.
|
||||
new "mempertahankan suara"
|
||||
|
||||
# renpy/common/00preferences.rpy:410
|
||||
old "self voicing"
|
||||
# Automatic translation.
|
||||
new "menyuarakan diri sendiri"
|
||||
|
||||
# renpy/common/00preferences.rpy:419
|
||||
old "self voicing volume drop"
|
||||
# Automatic translation.
|
||||
new "penurunan volume suara sendiri"
|
||||
|
||||
# renpy/common/00preferences.rpy:427
|
||||
old "clipboard voicing"
|
||||
# Automatic translation.
|
||||
new "menyuarakan papan klip"
|
||||
|
||||
# renpy/common/00preferences.rpy:436
|
||||
old "debug voicing"
|
||||
# Automatic translation.
|
||||
new "men-debug suara"
|
||||
|
||||
# renpy/common/00preferences.rpy:445
|
||||
old "emphasize audio"
|
||||
# Automatic translation.
|
||||
new "menekankan audio"
|
||||
|
||||
# renpy/common/00preferences.rpy:454
|
||||
old "rollback side"
|
||||
# Automatic translation.
|
||||
new "sisi rollback"
|
||||
|
||||
# renpy/common/00preferences.rpy:464
|
||||
old "gl powersave"
|
||||
new "gl powersave"
|
||||
|
||||
# renpy/common/00preferences.rpy:470
|
||||
old "gl framerate"
|
||||
# Automatic translation.
|
||||
new "framerate gl"
|
||||
|
||||
# renpy/common/00preferences.rpy:473
|
||||
old "gl tearing"
|
||||
new "gl tearing"
|
||||
|
||||
# renpy/common/00preferences.rpy:476
|
||||
old "font transform"
|
||||
# Automatic translation.
|
||||
new "transformasi font"
|
||||
|
||||
# renpy/common/00preferences.rpy:479
|
||||
old "font size"
|
||||
# Automatic translation.
|
||||
new "ukuran font"
|
||||
|
||||
# renpy/common/00preferences.rpy:487
|
||||
old "font line spacing"
|
||||
# Automatic translation.
|
||||
new "spasi baris font"
|
||||
|
||||
# renpy/common/00preferences.rpy:495
|
||||
old "system cursor"
|
||||
# Automatic translation.
|
||||
new "kursor sistem"
|
||||
|
||||
# renpy/common/00preferences.rpy:504
|
||||
old "renderer menu"
|
||||
# Automatic translation.
|
||||
new "menu penyaji"
|
||||
|
||||
# renpy/common/00preferences.rpy:507
|
||||
old "accessibility menu"
|
||||
# Automatic translation.
|
||||
new "menu aksesibilitas"
|
||||
|
||||
# renpy/common/00preferences.rpy:510
|
||||
old "high contrast text"
|
||||
# Automatic translation.
|
||||
new "teks kontras tinggi"
|
||||
|
||||
# renpy/common/00preferences.rpy:519
|
||||
old "audio when minimized"
|
||||
# Automatic translation.
|
||||
new "audio saat diminimalkan"
|
||||
|
||||
# renpy/common/00preferences.rpy:528
|
||||
old "audio when unfocused"
|
||||
# Automatic translation.
|
||||
new "audio saat tidak fokus"
|
||||
|
||||
# renpy/common/00preferences.rpy:537
|
||||
old "web cache preload"
|
||||
# Automatic translation.
|
||||
new "preload cache web"
|
||||
|
||||
# renpy/common/00preferences.rpy:552
|
||||
old "voice after game menu"
|
||||
# Automatic translation.
|
||||
new "suara setelah menu permainan"
|
||||
|
||||
# renpy/common/00preferences.rpy:571
|
||||
old "main volume"
|
||||
# Automatic translation.
|
||||
new "volume utama"
|
||||
|
||||
# renpy/common/00preferences.rpy:572
|
||||
old "music volume"
|
||||
# Automatic translation.
|
||||
new "volume musik"
|
||||
|
||||
# renpy/common/00preferences.rpy:573
|
||||
old "sound volume"
|
||||
# Automatic translation.
|
||||
new "volume suara"
|
||||
|
||||
# renpy/common/00preferences.rpy:574
|
||||
old "voice volume"
|
||||
# Automatic translation.
|
||||
new "volume suara"
|
||||
|
||||
# renpy/common/00preferences.rpy:575
|
||||
old "mute main"
|
||||
# Automatic translation.
|
||||
new "membisukan utama"
|
||||
|
||||
# renpy/common/00preferences.rpy:576
|
||||
old "mute music"
|
||||
# Automatic translation.
|
||||
new "musik bisu"
|
||||
|
||||
# renpy/common/00preferences.rpy:577
|
||||
old "mute sound"
|
||||
# Automatic translation.
|
||||
new "suara bisu"
|
||||
|
||||
# renpy/common/00preferences.rpy:578
|
||||
old "mute voice"
|
||||
# Automatic translation.
|
||||
new "suara bisu"
|
||||
|
||||
# renpy/common/00preferences.rpy:579
|
||||
old "mute all"
|
||||
# Automatic translation.
|
||||
new "membungkam semua"
|
||||
|
||||
# renpy/common/00speechbubble.rpy:344
|
||||
old "Speech Bubble Editor"
|
||||
# Automatic translation.
|
||||
new "Editor Gelembung Ucapan"
|
||||
|
||||
# renpy/common/00speechbubble.rpy:349
|
||||
old "(hide)"
|
||||
# Automatic translation.
|
||||
new "(Sembunyikan)"
|
||||
|
||||
# renpy/common/00sync.rpy:70
|
||||
old "Sync downloaded."
|
||||
# Automatic translation.
|
||||
new "Sinkronisasi diunduh."
|
||||
|
||||
# renpy/common/00sync.rpy:190
|
||||
old "Could not connect to the Ren'Py Sync server."
|
||||
# Automatic translation.
|
||||
new "Tidak dapat tersambung ke server Ren'Py Sync."
|
||||
|
||||
# renpy/common/00sync.rpy:192
|
||||
old "The Ren'Py Sync server timed out."
|
||||
# Automatic translation.
|
||||
new "Server Ren'Py Sync habis masa berlakunya."
|
||||
|
||||
# renpy/common/00sync.rpy:194
|
||||
old "An unknown error occurred while connecting to the Ren'Py Sync server."
|
||||
# Automatic translation.
|
||||
new "Terjadi kesalahan yang tidak diketahui saat menyambung ke server Ren'Py Sync."
|
||||
|
||||
# renpy/common/00sync.rpy:267
|
||||
old "The Ren'Py Sync server does not have a copy of this sync. The sync ID may be invalid, or it may have timed out."
|
||||
# Automatic translation.
|
||||
new "Server Ren'Py Sync tidak memiliki salinan sinkronisasi ini. ID sinkronisasi mungkin tidak valid, atau mungkin telah habis masa berlakunya."
|
||||
|
||||
# renpy/common/00sync.rpy:409
|
||||
old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself."
|
||||
# Automatic translation.
|
||||
new "Masukkan ID sinkronisasi yang Anda buat.\nJangan pernah memasukkan ID sinkronisasi yang tidak Anda buat sendiri."
|
||||
|
||||
# renpy/common/00sync.rpy:428
|
||||
old "The sync ID is not in the correct format."
|
||||
# Automatic translation.
|
||||
new "ID sinkronisasi tidak dalam format yang benar."
|
||||
|
||||
# renpy/common/00sync.rpy:448
|
||||
old "The sync could not be decrypted."
|
||||
# Automatic translation.
|
||||
new "Sinkronisasi tidak dapat didekripsi."
|
||||
|
||||
# renpy/common/00sync.rpy:471
|
||||
old "The sync belongs to a different game."
|
||||
# Automatic translation.
|
||||
new "Sinkronisasi termasuk dalam permainan yang berbeda."
|
||||
|
||||
# renpy/common/00sync.rpy:476
|
||||
old "The sync contains a file with an invalid name."
|
||||
# Automatic translation.
|
||||
new "Sinkronisasi berisi file dengan nama yang tidak valid."
|
||||
|
||||
# renpy/common/00sync.rpy:529
|
||||
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
|
||||
# Automatic translation.
|
||||
new "Ini akan mengunggah simpanan Anda ke {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nApakah Anda ingin melanjutkan?"
|
||||
|
||||
# renpy/common/00sync.rpy:558
|
||||
old "Enter Sync ID"
|
||||
# Automatic translation.
|
||||
new "Masukkan ID Sinkronisasi"
|
||||
|
||||
# renpy/common/00sync.rpy:569
|
||||
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
|
||||
# Automatic translation.
|
||||
new "Ini akan menghubungi {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
|
||||
|
||||
# renpy/common/00sync.rpy:596
|
||||
old "Sync Success"
|
||||
# Automatic translation.
|
||||
new "Keberhasilan Sinkronisasi"
|
||||
|
||||
# renpy/common/00sync.rpy:599
|
||||
old "The Sync ID is:"
|
||||
# Automatic translation.
|
||||
new "ID Sinkronisasi adalah:"
|
||||
|
||||
# renpy/common/00sync.rpy:605
|
||||
old "You can use this ID to download your save on another device.\nThis sync will expire in an hour.\nRen'Py Sync is supported by {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}."
|
||||
# Automatic translation.
|
||||
new "Anda dapat menggunakan ID ini untuk mengunduh simpanan Anda di perangkat lain.\nSinkronisasi ini akan berakhir dalam satu jam.\nRen'Py Sync didukung oleh {a=https://www.renpy.org/sponsors.html}Sponsor Ren'Py{/a}."
|
||||
|
||||
# renpy/common/00sync.rpy:631
|
||||
old "Sync Error"
|
||||
# Automatic translation.
|
||||
new "Kesalahan Sinkronisasi"
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user