Compare commits
746 Commits
7.4.3.1397
...
start-7.5
| Author | SHA1 | Date | |
|---|---|---|---|
| 26dac5d067 | |||
| cbcc517294 | |||
| 73713248bc | |||
| 1d76c599fe | |||
| 1bd115d97f | |||
| 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 | |||
| 86af67b0b2 | |||
| 899584ea0e | |||
| d7cbf76f0c | |||
| 078e65030a | |||
| fde3d3757a | |||
| 305abf48bf | |||
| 37826e4403 | |||
| 082f119f16 | |||
| e186df3e5a | |||
| 87692792ac | |||
| cfd8530cf2 | |||
| f6e05f532e | |||
| 0af3eaa86e | |||
| 362b815503 | |||
| 9e93f30109 | |||
| c1c7b6259d | |||
| 45e9f2741e | |||
| 263ee6cac8 | |||
| 1e449a1509 | |||
| d80f614620 | |||
| 40fcc752a1 | |||
| 2228c4c0d3 | |||
| aad66b4240 | |||
| 4caf54a288 | |||
| 49e4a115e8 | |||
| 8b0cd77a54 | |||
| 5841dfb7aa | |||
| e828d3ff36 | |||
| 283633200e | |||
| be2ac1f31a | |||
| 0653bd9893 | |||
| 2284bcb7ef | |||
| 7e6570db8d | |||
| dd901ceefb | |||
| 54b7c25b1f | |||
| f509835746 | |||
| 0776a68814 | |||
| 9d62705ae9 | |||
| c61933e37e | |||
| b934c17fbf | |||
| 1f982784d0 | |||
| f6eb12a850 | |||
| 46d637369f | |||
| fe1ee915ac | |||
| 57d6832fde | |||
| d0f578cda6 | |||
| dfbfdd42cd | |||
| 16669a8ecd | |||
| 4973bb7d5d | |||
| 0b63d11f1f | |||
| 9105255f7b | |||
| ed1c6cf8f6 | |||
| f1509e1d25 | |||
| fad7c1e761 | |||
| efa4bde27c | |||
| 0a88cdfa14 | |||
| 4e821c0124 | |||
| 0117526793 | |||
| effab2f56b | |||
| 3d9596e9dc | |||
| 149f5a3788 | |||
| 972f612cda | |||
| 9556d15707 | |||
| e9a2370802 | |||
| 23cade695c | |||
| 64c936d083 | |||
| c4e6b8e6b5 | |||
| 834f1bef8b | |||
| d49cb97e19 | |||
| a21b8da9bb | |||
| 785c869886 | |||
| 0d0646efba | |||
| 54d008aed3 | |||
| f063bd7097 | |||
| 4fb8cc6f5f | |||
| b0e66a675c | |||
| 3091b59d45 | |||
| c2d187b9ae | |||
| b568f00270 | |||
| 2fc403fc27 | |||
| dd5bbaf70f | |||
| 1cad875471 | |||
| 05f39bde9d | |||
| 742f21beca | |||
| 1f700dc1a9 | |||
| 417e67d1c7 | |||
| 56fb31c979 | |||
| a3defaf161 | |||
| 02fa805355 | |||
| 753d5762b3 | |||
| 0340857237 | |||
| 9c38331682 | |||
| 62e4f3017b | |||
| 564a491948 | |||
| 0a2e29eb33 | |||
| a9f89e56ca | |||
| 4a9c9f1158 | |||
| 37d9e3ce4f | |||
| 849426917e | |||
| c7ebc46bcc | |||
| eba15b1e83 | |||
| 6b640bf6a7 | |||
| 3001a8aa90 | |||
| 7708bf0cbb | |||
| 49017f2df8 | |||
| a15a418a02 | |||
| 2c99d9df45 | |||
| f8c89541dc | |||
| 13cdf98fe4 | |||
| f92e9548b4 | |||
| baf646e350 | |||
| 5b915758cd | |||
| ba9a3f24a2 | |||
| 64db00a54a | |||
| 54759af09c | |||
| 734db16d1c | |||
| 6af6694cae | |||
| 14bb2d0fff | |||
| 3ec83dae1c | |||
| 4d3dec4e80 | |||
| 51eacdd597 | |||
| bf1a591e2d | |||
| f2be07a13d | |||
| 77e7b6a9a5 | |||
| 65d719ecac | |||
| ba8496de63 | |||
| 40fdecc0e0 | |||
| 39a12ae54d | |||
| 730a23255f | |||
| addda74f6f | |||
| cd859fc572 | |||
| 3f7831794f | |||
| 3187445cbe | |||
| 9784180a5f | |||
| 39b8d1621a | |||
| 6fb1562ce7 | |||
| 57e6b93934 | |||
| fc98fbb311 | |||
| 6a1160db1e | |||
| 354e145f7a | |||
| 9bcff3dada | |||
| 16012cd54b | |||
| cef7cad98f | |||
| 9b95f5682e | |||
| ec8aec642a | |||
| c18bb66f7b | |||
| f1b04dd944 | |||
| 9778498bf1 | |||
| 8de11ad0d1 | |||
| 1d57acd021 | |||
| eaa5d6d7eb | |||
| 025ffb4a51 | |||
| 0e4521a629 | |||
| 04dbdd8f30 | |||
| ea977dcf47 | |||
| db0fba0159 | |||
| cc4f4caf12 | |||
| 46248b7e9b | |||
| 24f5304412 | |||
| af7195faab | |||
| 6ec97b72fd | |||
| 6c813493bb | |||
| 64ff95c824 | |||
| 2c1155af7e | |||
| ca47f6c42d | |||
| 298f586565 | |||
| 5d9ac79bc2 | |||
| ed2eb6dfb7 | |||
| 8747f6b724 | |||
| 2d7dfc293d | |||
| 7a657b6299 | |||
| 997438e86a | |||
| a5b01b102f | |||
| fa2268b2c0 | |||
| ce3e819404 | |||
| 32eaef1e36 | |||
| 5cd716f79d | |||
| d52a2845c2 | |||
| 82af0d31ca | |||
| 6e35507663 | |||
| 28b1a25143 | |||
| 262f939b2c | |||
| fa19d60610 | |||
| a2dc2a5166 | |||
| 7a97807fbd | |||
| 912e72346d | |||
| 92cae35954 | |||
| 381bb2d9eb | |||
| ee91d6b5e6 | |||
| 6dc18a7b10 | |||
| 6e8074e360 | |||
| 62add895b4 | |||
| 6dd32af79d | |||
| 92871c75ae | |||
| 9403b74113 | |||
| 08a35003b8 | |||
| 6d864f1504 | |||
| 9594127c28 | |||
| 6c2d2eca77 | |||
| 44243cb8ff | |||
| 74b2ffffb3 | |||
| 5a1e2aae83 | |||
| 373b421bc8 | |||
| 739a8f5a47 | |||
| db30a5a590 | |||
| f7c9058e19 | |||
| bde233af40 | |||
| a484cfcb88 | |||
| 5c8d259258 | |||
| 2aec07d6b9 | |||
| bee4359ef1 | |||
| 78033f953f | |||
| a98d2df66a | |||
| 4917544cd8 | |||
| 6b7ebbad7c | |||
| 05914ae568 | |||
| 01b3592167 | |||
| adc575285a | |||
| 7355c73382 | |||
| 7528e10f28 | |||
| 212820c18a | |||
| a56ffb7efe | |||
| 05016c1ee9 | |||
| 92f9c15c49 | |||
| 521d0b3b13 | |||
| 1f1d7cd5b3 | |||
| cf558e1af3 | |||
| 4c098064ee | |||
| f26e3cc462 | |||
| 3178495acd | |||
| 0ad0778796 | |||
| a9c1424f03 | |||
| 99d052bd0c | |||
| e37615b0be | |||
| 554a89fc61 | |||
| 1a00655e42 | |||
| de045d96eb | |||
| cd30206152 | |||
| 773694f442 | |||
| a9c3afb0e4 | |||
| f6ff593501 | |||
| 0f0e24936a | |||
| bd96fa9f51 | |||
| 7950eb6d80 | |||
| 31d34a4716 | |||
| a87f37417f | |||
| 71d2c7f2d7 | |||
| 000e22d36e | |||
| eb83ce6a5a | |||
| f0bcf007b6 | |||
| 196e7e5ae3 | |||
| a1309906d0 | |||
| 0f28be2336 | |||
| 2d8770ddda | |||
| 53184c3061 | |||
| 4575414038 | |||
| bcadbffa41 | |||
| 2fc3721ef4 | |||
| 83aee2ecfc | |||
| 38564e29eb | |||
| ec5f9633c1 | |||
| 0eeeaef1e3 | |||
| 88c2e4843d | |||
| fb373f00c9 | |||
| c92151db70 | |||
| e921052bec | |||
| 3ec8d8968e | |||
| 18cf187f78 | |||
| 7ab1b21925 | |||
| a5fd514439 | |||
| 7bdc09f98e | |||
| fe5bdffba9 | |||
| 979ba6c310 | |||
| d8be65b689 | |||
| 91a56b0050 | |||
| 98fe346057 | |||
| b64c722704 | |||
| a8b94c5cbe | |||
| 2ed6477406 | |||
| ab53653e98 | |||
| e2806a0fdd | |||
| 97f4473510 | |||
| cd955e873e | |||
| 3e6d9837e1 | |||
| da13ff608f | |||
| e57dbe9309 | |||
| 52fd578c9b | |||
| 04e1b3fe1a | |||
| ab9b2056e2 | |||
| f0e5c55a92 | |||
| c476ae02d9 | |||
| 90cc7fd134 | |||
| d33f9ce8c8 | |||
| ebf2541a2b | |||
| a10eede56b | |||
| 668aa78210 | |||
| 3341571309 | |||
| a3d225eeef | |||
| 6cf1d9d0bc | |||
| 349dda4afc | |||
| 991e645983 | |||
| 723c1a2184 | |||
| 1191bd44ff | |||
| afa981802d | |||
| 26e0484977 | |||
| 084742864b | |||
| 71b5316d91 | |||
| b84c94ceb0 | |||
| 7cc7e6e539 | |||
| 1ae4c7724f | |||
| 6088d74398 | |||
| 7910963334 | |||
| 648e764afa | |||
| 4443cfb4bd | |||
| 963cbe07cf | |||
| 45de3635d2 | |||
| 74b8975a9f | |||
| 283574353e | |||
| 1e704bf620 | |||
| 3bcfcc58c8 | |||
| 4770ddcbb7 | |||
| 456d627086 | |||
| e151fd9984 | |||
| 038f5306a1 | |||
| 3427c5d6c7 | |||
| 9dde6770f8 | |||
| 8967662f44 | |||
| 05fbf106bc | |||
| 1c0117d6b1 | |||
| 7798de30d2 | |||
| c32c9182be | |||
| 1149c814e4 | |||
| 84989713a8 | |||
| ed62d691c5 | |||
| ffa1893cbb | |||
| d5f722e9e8 | |||
| 8cdc154a07 | |||
| 6512439006 | |||
| 9f96a82675 | |||
| d27fb4e5f6 | |||
| e8448d4980 | |||
| 31e653b449 | |||
| aba3ef89a3 | |||
| 2f7cee7364 | |||
| 295d2bec3e | |||
| 0d43c13a13 | |||
| 9b244ccaaa | |||
| 487c75a7db | |||
| 31ae188341 | |||
| 5ad5c86adf | |||
| 696e7edeac | |||
| c667a3d33f | |||
| 83bda35820 | |||
| b4ea1268b8 | |||
| a21c85e3f8 | |||
| c5d1729352 | |||
| 747a47bb74 | |||
| d801dc9f7a | |||
| d32c6c2a4f | |||
| 0c6d5e8092 | |||
| 10bd81ef50 | |||
| d0e4b33f4b | |||
| 4a74d3a763 | |||
| 80eeb9ae1f | |||
| b175042357 | |||
| 213e027b3c | |||
| e3a69e21b6 | |||
| de350efca3 | |||
| 47765c703e | |||
| 58d73e9ea3 | |||
| f2a30b8a02 | |||
| 836bc3dfc6 | |||
| efd6a5d042 | |||
| 293d07f539 | |||
| 758131f5fd | |||
| fd6cdffa43 | |||
| 163f696d3f | |||
| 4da0ec62cb | |||
| 391dc101b7 | |||
| f63be5c57a | |||
| 1103d0397e | |||
| 77b7a9e116 | |||
| ccdb23c6bd | |||
| ecdfda0a08 | |||
| a38e8c2a05 | |||
| 14b4a49e01 | |||
| 05c5db7e11 | |||
| 1220be752c | |||
| 2b34259319 | |||
| 20a29b8047 | |||
| 1ece5c9c55 | |||
| d50cbc33bc | |||
| df85cb5748 | |||
| 94031c2a69 | |||
| ae5b5c76bf | |||
| f39e64fd25 | |||
| bf1f499678 | |||
| a7d0751872 | |||
| a8adeace3f | |||
| 6f20c629f0 | |||
| 624973d518 | |||
| 25403b6cdf | |||
| 3a61739d69 | |||
| b8fc937781 | |||
| 7983d80527 | |||
| b0842a4f1b | |||
| a5920b2200 | |||
| cee512ea61 | |||
| 8aa0cf01cd | |||
| 360751b071 | |||
| 3f4bee5558 | |||
| 7229cc87ef | |||
| 15721dce53 | |||
| 06b4acea6e | |||
| 349b204405 | |||
| 5a441def70 | |||
| 4ebf1d0df8 | |||
| b5a8ba2b1b | |||
| ba44e94bfd | |||
| 1a0a569a12 | |||
| a98c667b97 | |||
| c0ddba8c4b | |||
| cdf4f71d88 | |||
| 10904d65c4 | |||
| f789128208 | |||
| 639d5d9ce1 | |||
| b5d552f9b3 | |||
| 8bd72ea824 | |||
| 9dc3152ddf | |||
| 0f98104e05 | |||
| fc4357ea02 | |||
| 02c009a859 | |||
| c8952a9f86 | |||
| 0fda299d86 | |||
| 97156ba471 | |||
| 04e8f89655 | |||
| 50aedffdd8 | |||
| ed17bcfc84 | |||
| b8d1b9a4dc | |||
| ea6de5a7af | |||
| 1d8f8a4220 | |||
| 040c7180de | |||
| e1e8deee2f | |||
| b782ebc0f6 | |||
| 7c0d6e3b5f | |||
| 8f306d06f6 | |||
| 51262b2062 | |||
| a1a381884d | |||
| 67773d9fe3 | |||
| 211f5368a4 | |||
| 2f2f5a3c30 | |||
| d2116b6216 | |||
| 9b7f14aafb | |||
| 8cf969bfee | |||
| 130eb08652 | |||
| 18e87547d1 | |||
| acc19171c3 | |||
| 2b90a11621 | |||
| 0f7edd23e4 | |||
| e407ac2f58 | |||
| ef7fc34984 | |||
| e56319e11c | |||
| 1064b88875 | |||
| beb26aac8a | |||
| 263f3caf13 | |||
| 4495531585 | |||
| 0091838950 | |||
| dd8739ad3f | |||
| bfe27a29fd | |||
| 0d918778be | |||
| 8a5db8b5ed | |||
| e4e32c1759 | |||
| 312dc3ad69 | |||
| 3114f0e061 | |||
| 27a6157d3e | |||
| 07925c94b4 | |||
| 9a9c682505 | |||
| 8c8f2ac255 | |||
| 70b1cc58c0 | |||
| c09e2e301a | |||
| c3acf457f4 | |||
| d056f45d84 | |||
| 5dde40fba4 | |||
| 66d74400d4 | |||
| f81483626a | |||
| 1745d47af0 | |||
| d069269e57 | |||
| 08d8b7cfcf | |||
| 9babae6c85 | |||
| e7c9ccc69e | |||
| d587dee63b | |||
| a41ee6b0fc | |||
| 80dd973b9d | |||
| 49ddd672b3 | |||
| cf199aa24e | |||
| 6a3e264055 | |||
| 64e8c8c921 |
@@ -109,3 +109,5 @@ rapt3
|
||||
renios2
|
||||
renios3
|
||||
notarized
|
||||
|
||||
CubismSdkForNative-4-*.zip
|
||||
|
||||
@@ -12,7 +12,7 @@ SOURCE = [
|
||||
"/home/tom/ab/renpy",
|
||||
"/home/tom/ab/renpy-build",
|
||||
"/home/tom/ab/pygame_sdl2",
|
||||
"/home/tom/ab/renpyweb",
|
||||
"/home/tom/ab/renpy-build/renpyweb",
|
||||
]
|
||||
|
||||
version = ".".join(str(i) for i in version_tuple)
|
||||
|
||||
+15
-9
@@ -74,9 +74,9 @@ 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]) # @UndefinedVariable
|
||||
|
||||
match_version = ".".join(str(i) for i in renpy.version_tuple[:2]) # @UndefinedVariable
|
||||
match_version = ".".join(str(i) for i in renpy.version_tuple[:2]) # @UndefinedVariable
|
||||
|
||||
s = subprocess.check_output([ "git", "describe", "--tags", "--dirty", "--match", "start-" + match_version ])
|
||||
parts = s.strip().split("-")
|
||||
@@ -90,20 +90,26 @@ def main():
|
||||
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
|
||||
reload(sys.modules['renpy.vc_version']) # @UndefinedVariable
|
||||
except:
|
||||
import renpy.vc_version # @UnusedImport
|
||||
import renpy.vc_version # @UnusedImport
|
||||
|
||||
reload(sys.modules['renpy'])
|
||||
|
||||
# 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.")
|
||||
@@ -142,8 +148,8 @@ def main():
|
||||
|
||||
sys.path.insert(0, os.path.join(ROOT, "rapt", "buildlib"))
|
||||
|
||||
import rapt.interface # @UnresolvedImport
|
||||
import rapt.build # @UnresolvedImport
|
||||
import rapt.interface # @UnresolvedImport
|
||||
import rapt.build # @UnresolvedImport
|
||||
|
||||
interface = rapt.interface.Interface()
|
||||
rapt.build.distclean(interface)
|
||||
@@ -232,7 +238,7 @@ def main():
|
||||
|
||||
sys.stdout.write("Creating -sdk.7z")
|
||||
|
||||
p = subprocess.Popen([ "7z", "a", sdk +".7z", sdk], stdout=subprocess.PIPE)
|
||||
p = subprocess.Popen([ "7z", "a", sdk + ".7z", sdk], stdout=subprocess.PIPE)
|
||||
for i, _l in enumerate(p.stdout):
|
||||
if i % 10 != 0:
|
||||
continue
|
||||
|
||||
@@ -442,6 +442,7 @@ init python:
|
||||
gui.slider_size = gui.scale(36)
|
||||
|
||||
gui.choice_button_width = gui.scale(1240)
|
||||
gui.choice_button_text_size = gui.scale(30)
|
||||
|
||||
gui.navigation_spacing = gui.scale(20)
|
||||
gui.pref_button_spacing = gui.scale(10)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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():
|
||||
|
||||
@@ -1505,10 +1509,10 @@ style vslider:
|
||||
base_bar Frame("gui/phone/slider/vertical_[prefix_]bar.png", gui.vslider_borders, tile=gui.slider_tile)
|
||||
thumb "gui/phone/slider/vertical_[prefix_]thumb.png"
|
||||
|
||||
style slider_pref_vbox:
|
||||
style slider_vbox:
|
||||
variant "small"
|
||||
xsize None
|
||||
|
||||
style slider_pref_slider:
|
||||
style slider_slider:
|
||||
variant "small"
|
||||
xsize gui.scale(600)
|
||||
|
||||
+144
-35
@@ -19,19 +19,25 @@
|
||||
# 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
|
||||
|
||||
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_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_BUNDLE_KEY_TEXT = _("RAPT has been installed, but a bundle key hasn't been configured. Please create a new key, or restore bundle.keystore.")
|
||||
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.")
|
||||
@@ -46,9 +52,13 @@ init python:
|
||||
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.")
|
||||
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
|
||||
@@ -102,8 +112,13 @@ init python:
|
||||
return ANDROID_NO_SDK
|
||||
if not os.path.exists(rapt.plat.path("project/local.properties")):
|
||||
return ANDROID_NO_KEY
|
||||
if not os.path.exists(rapt.plat.path("project/bundle.properties")):
|
||||
return ANDROID_NO_BUNDLE_KEY
|
||||
if not 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
|
||||
|
||||
|
||||
@@ -120,8 +135,12 @@ init python:
|
||||
return NO_SDK_TEXT
|
||||
if state == ANDROID_NO_KEY:
|
||||
return NO_KEY_TEXT
|
||||
if state == ANDROID_NO_BUNDLE_KEY:
|
||||
return NO_BUNDLE_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
|
||||
|
||||
@@ -187,7 +206,7 @@ init python:
|
||||
json.dump(android_json, f)
|
||||
|
||||
|
||||
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.
|
||||
"""
|
||||
@@ -266,7 +285,7 @@ init python:
|
||||
|
||||
|
||||
with interface.nolinks():
|
||||
rapt.build.build(rapt_interface, dist, command, launch=launch, finished=finished)
|
||||
rapt.build.build(rapt_interface, dist, bundle=bundle, install=install, launch=launch, finished=finished, permissions=p.dump['build']['android_permissions'])
|
||||
|
||||
|
||||
def android_build_argument(cmd):
|
||||
@@ -366,21 +385,6 @@ 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"):
|
||||
action AndroidIfState(state, ANDROID_NO_SDK, Jump("android_installsdk"))
|
||||
hovered tt.Action(INSTALL_SDK_TEXT)
|
||||
@@ -389,6 +393,20 @@ screen android:
|
||||
action AndroidIfState(state, ANDROID_NO_CONFIG, 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 +419,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
|
||||
# add SEPARATOR2
|
||||
|
||||
|
||||
|
||||
# Right side.
|
||||
frame:
|
||||
style "l_indent"
|
||||
xmaximum ONEHALF
|
||||
xfill True
|
||||
|
||||
has vbox
|
||||
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
@@ -420,15 +450,25 @@ 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)
|
||||
|
||||
|
||||
|
||||
add SPACER
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
@@ -480,20 +520,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 +548,91 @@ 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
|
||||
|
||||
|
||||
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,29 +29,19 @@ 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 do you want to allocate to Gradle?\n\nThis must be a positive integer number.")
|
||||
__("The RAM size must contain only numbers.")
|
||||
__("How would you like your application to be displayed?")
|
||||
__("In landscape orientation.")
|
||||
__("In portrait orientation.")
|
||||
__("In the user's preferred orientation.")
|
||||
__("Which app store would you like to support in-app purchasing through?")
|
||||
__("Google Play.")
|
||||
__("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.")
|
||||
__("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 +53,12 @@ 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?")
|
||||
__("Please enter your name or the name of your organization.")
|
||||
__("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?")
|
||||
__("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.")
|
||||
__("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?")
|
||||
__("Could not create bundle.keystore. Is keytool in your path?")
|
||||
__("It looks like you're ready to start packaging games.")
|
||||
|
||||
@@ -34,7 +34,7 @@ init python:
|
||||
if renpy.macintosh:
|
||||
fn = "console.command"
|
||||
nl = "\n"
|
||||
prefix = "#!/bin/bash"
|
||||
prefix = "#!/bin/sh"
|
||||
elif renpy.windows:
|
||||
fn = "console.bat"
|
||||
nl = "\r\n"
|
||||
@@ -49,7 +49,6 @@ init python:
|
||||
self.f = open(self.fn, "wb")
|
||||
self.nl = nl
|
||||
|
||||
|
||||
self.f.write(renpy.fsencode(prefix) + nl)
|
||||
|
||||
def add(self, *args):
|
||||
@@ -60,27 +59,33 @@ init python:
|
||||
args = [ '"{}"'.format(renpy.fsencode(i)) for i in args]
|
||||
self.f.write(" ".join(args) + self.nl)
|
||||
|
||||
def write(self, *args):
|
||||
"""
|
||||
Adds a command to be run.
|
||||
"""
|
||||
|
||||
args = [ '{}'.format(renpy.fsencode(i)) for i in args]
|
||||
self.f.write(" ".join(args) + self.nl)
|
||||
|
||||
def run(self):
|
||||
"""
|
||||
Runs the queued up commands.
|
||||
"""
|
||||
|
||||
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)
|
||||
|
||||
command = renpy.fsencode('"{}"'.format(self.fn.replace("\"", "\\\"")))
|
||||
|
||||
if renpy.windows:
|
||||
subprocess.Popen([ command ], shell=True)
|
||||
elif renpy.macintosh:
|
||||
subprocess.Popen([ "open", "-a", "Terminal", command ])
|
||||
else:
|
||||
if renpy.linux:
|
||||
command = renpy.fsencode('"{}"'.format(self.fn.replace("\"", "\\\"")))
|
||||
subprocess.Popen([ "x-terminal-emulator", "-e", command ])
|
||||
else:
|
||||
command = renpy.fsencode(self.fn)
|
||||
os.startfile(command)
|
||||
|
||||
interface.interaction(_("INFORMATION"), _("The command is being run in a new operating system console window."), pause=2.5)
|
||||
|
||||
@@ -316,7 +316,7 @@ init python in distribute:
|
||||
for f in list(self):
|
||||
|
||||
if f.name.startswith("lib/python2.7") and (not duplicate):
|
||||
name = app + "/Contents/MacOS/" + f.name
|
||||
name = app + "/Contents/Resources/" + f.name
|
||||
|
||||
elif f.name.startswith("lib/mac-x86_64"):
|
||||
name = app + "/Contents/MacOS/" + f.name[15:]
|
||||
@@ -448,6 +448,16 @@ init python in distribute:
|
||||
self.reporter.info(_("Scanning project files..."))
|
||||
project.update_dump(force=True, gui=False, compile=project.data['force_recompile'])
|
||||
|
||||
if project.data['force_recompile']:
|
||||
import compileall
|
||||
|
||||
compileall.compile_dir(
|
||||
os.path.join(config.renpy_base, "renpy"),
|
||||
ddir="renpy/",
|
||||
force=True,
|
||||
quiet=True,
|
||||
)
|
||||
|
||||
if project.dump.get("error", False):
|
||||
raise Exception("Could not get build data from the project. Please ensure the project runs.")
|
||||
|
||||
@@ -615,8 +625,17 @@ init python in distribute:
|
||||
match_name = name
|
||||
|
||||
for pattern, file_list in patterns:
|
||||
|
||||
if match(match_name, pattern):
|
||||
|
||||
# When we have ('test/**', None), avoid excluding test.
|
||||
if (not file_list) and is_dir:
|
||||
new_pattern = pattern.rstrip("*")
|
||||
if (pattern != new_pattern) and match(match_name, new_pattern):
|
||||
continue
|
||||
|
||||
break
|
||||
|
||||
else:
|
||||
print(str(match_name), "doesn't match anything.", file=self.log)
|
||||
|
||||
@@ -968,7 +987,7 @@ 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 + "/MacOS/lib/python2.7")
|
||||
self.add_directory(filelist, contents + "/Resources/lib/python2.7")
|
||||
|
||||
self.file_lists[filelist].mac_lib_transform(self.app, self.build['renpy'])
|
||||
|
||||
@@ -1575,4 +1594,4 @@ label distribute:
|
||||
)
|
||||
|
||||
|
||||
jump front_page
|
||||
jump post_build
|
||||
|
||||
@@ -276,6 +276,8 @@ label build_distributions:
|
||||
|
||||
call build_update_dump
|
||||
|
||||
label post_build:
|
||||
|
||||
if not project.current.dump["build"]["directory_name"]:
|
||||
jump build_missing
|
||||
|
||||
|
||||
@@ -23,6 +23,8 @@ define PROJECT_ADJUSTMENT = ui.adjustment()
|
||||
|
||||
init python:
|
||||
|
||||
import datetime
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
@@ -260,7 +262,16 @@ label start:
|
||||
show screen bottom_info
|
||||
$ dmgcheck()
|
||||
|
||||
jump expression renpy.session.pop("launcher_start_label", "front_page")
|
||||
|
||||
default persistent.has_update = False
|
||||
|
||||
label front_page:
|
||||
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
|
||||
|
||||
|
||||
@@ -309,7 +309,8 @@ label change_gui:
|
||||
project_name = project.current.name
|
||||
|
||||
mode = interface.choice(
|
||||
_("{b}Warning{/b}\nContinuing will overwrite customized bar, button, save slot, scrollbar, and slider images.\n\nWhat would you like to do?"),
|
||||
__("{b}Warning{/b}\nContinuing will overwrite customized bar, button, save slot, scrollbar, and slider images.\n\nWhat would you like to do?") +
|
||||
__("{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}"),
|
||||
[
|
||||
("change", _("Choose new colors, then regenerate image files.")),
|
||||
("regenerate", _("Regenerate the image files using the colors in gui.rpy.")),
|
||||
|
||||
@@ -323,6 +323,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)
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 77 B |
Binary file not shown.
|
Before Width: | Height: | Size: 83 B |
Binary file not shown.
|
Before Width: | Height: | Size: 78 B |
Binary file not shown.
|
Before Width: | Height: | Size: 78 B |
@@ -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:
|
||||
pass
|
||||
|
||||
renpy.write_log(fn + " -> " + dstfn)
|
||||
|
||||
|
||||
@@ -126,7 +126,10 @@ screen bottom_info:
|
||||
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)
|
||||
|
||||
+6
-18
@@ -212,8 +212,8 @@ init python:
|
||||
|
||||
def launch_xcode():
|
||||
dist = xcode_project(None)
|
||||
base = os.path.basename(dist)
|
||||
xcodeproj = "{}/{}.xcodeproj".format(dist, base)
|
||||
name = project.current.dump.get("name", None)
|
||||
xcodeproj = "{}/{}.xcodeproj".format(dist, name)
|
||||
|
||||
subprocess.call([ 'open', renpy.fsencode(xcodeproj) ])
|
||||
|
||||
@@ -300,22 +300,6 @@ screen ios:
|
||||
action IOSIfState(state, IOS_OK, launch_xcode)
|
||||
hovered tt.Action(IOS_XCODE_TEXT)
|
||||
|
||||
# textbutton _("Configure"):
|
||||
# action AndroidIfState(state, ANDROID_NO_CONFIG, Jump("android_configure"))
|
||||
# hovered tt.Action(CONFIGURE_TEXT)
|
||||
#
|
||||
# textbutton _("Build Package"):
|
||||
# action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build"))
|
||||
# hovered tt.Action(BUILD_TEXT)
|
||||
#
|
||||
# textbutton _("Build & Install"):
|
||||
# action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build_and_install"))
|
||||
# hovered tt.Action(BUILD_AND_INSTALL_TEXT)
|
||||
#
|
||||
# textbutton _("Build, Install & Launch"):
|
||||
# action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build_install_and_launch"))
|
||||
# hovered tt.Action(BUILD_INSTALL_AND_LAUNCH_TEXT)
|
||||
|
||||
add SPACER
|
||||
add SEPARATOR2
|
||||
|
||||
@@ -352,6 +336,10 @@ screen ios:
|
||||
|
||||
add SPACER
|
||||
|
||||
text _("There are known issues with the iOS simulator on Apple Silicon. Please test on x86_64 or iOS devices.")
|
||||
|
||||
add SPACER
|
||||
|
||||
if tt.value:
|
||||
text tt.value
|
||||
else:
|
||||
|
||||
@@ -290,7 +290,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)
|
||||
|
||||
@@ -53,9 +53,15 @@ init python:
|
||||
|
||||
show_legacy = os.path.exists(os.path.join(config.renpy_base, "templates", "english", "game", "script.rpy"))
|
||||
|
||||
class RestartAtPreferences(Action):
|
||||
def __call__(self):
|
||||
renpy.session["launcher_start_label"] = "preferences"
|
||||
renpy.utter_restart()
|
||||
|
||||
default persistent.legacy = False
|
||||
default persistent.force_new_tutorial = False
|
||||
default persistent.sponsor_message = True
|
||||
default persistent.daily_update_check = False
|
||||
|
||||
screen preferences:
|
||||
|
||||
@@ -196,6 +202,16 @@ screen preferences:
|
||||
|
||||
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
|
||||
|
||||
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:
|
||||
|
||||
|
||||
@@ -254,6 +254,8 @@ init python in project:
|
||||
if persistent.navigate_library:
|
||||
cmd.append("--json-dump-common")
|
||||
|
||||
cmd.append("--errors-in-editor")
|
||||
|
||||
environ = dict(os.environ)
|
||||
environ["RENPY_LAUNCHER_LANGUAGE"] = _preferences.language or "english"
|
||||
environ.update(env)
|
||||
@@ -761,6 +763,14 @@ init 10 python:
|
||||
if not directory_is_writable(persistent.projects_directory):
|
||||
persistent.projects_directory = None
|
||||
|
||||
label after_load:
|
||||
python:
|
||||
if project.current is not None:
|
||||
project.current.update_dump()
|
||||
|
||||
return
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Code to choose the projects directory.
|
||||
|
||||
|
||||
+150
-11
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
|
||||
# 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
|
||||
@@ -56,11 +56,11 @@ init -1 python:
|
||||
PATTERN = "images/pattern.png"
|
||||
|
||||
# A displayable used for the background of everything.
|
||||
BACKGROUND = "images/background.png"
|
||||
BACKGROUND = "background"
|
||||
|
||||
# A displayable used for the background of windows
|
||||
# containing commands, preferences, and navigation info.
|
||||
WINDOW = Frame("images/window.png", 0, 0, tile=True)
|
||||
WINDOW = Frame("window", 0, 0, tile=True)
|
||||
|
||||
# A displayable used for the background of the projects list.
|
||||
PROJECTS_WINDOW = Null()
|
||||
@@ -77,9 +77,146 @@ init -1 python:
|
||||
# The color of input text.
|
||||
INPUT_COLOR = "#d86b45"
|
||||
|
||||
if persistent.theme == 'dark':
|
||||
# The color of non-interactive text.
|
||||
TEXT = "#ababab"
|
||||
|
||||
# Colors for buttons in various states.
|
||||
IDLE = "#709cbe"
|
||||
HOVER = "#d86b45"
|
||||
DISABLED = "#7f7f7f"
|
||||
|
||||
# Colors for reversed text buttons (selected list entries).
|
||||
REVERSE_IDLE = "#78a5c5"
|
||||
REVERSE_HOVER = "#d86b45"
|
||||
REVERSE_TEXT = "#0a0a0a"
|
||||
|
||||
# Colors for the scrollbar thumb.
|
||||
SCROLLBAR_IDLE = "#282828"
|
||||
SCROLLBAR_HOVER = "#d86b45"
|
||||
|
||||
# An image used as a separator pattern.
|
||||
PATTERN = "images/pattern.png"
|
||||
|
||||
# A displayable used for the background of everything.
|
||||
BACKGROUND = Fixed(Solid(REVERSE_TEXT), xsize=800, ysize=600)
|
||||
|
||||
# A displayable used for the background of the projects list.
|
||||
PROJECTS_WINDOW = Null()
|
||||
|
||||
# A displayable used the background of information boxes.
|
||||
INFO_WINDOW = "#101010"
|
||||
|
||||
# Colors for the titles of information boxes.
|
||||
ERROR_COLOR = "#d15353"
|
||||
INFO_COLOR = "#ababab"
|
||||
INTERACTION_COLOR = "#d19753"
|
||||
QUESTION_COLOR = "#d19753"
|
||||
|
||||
# The color of input text.
|
||||
INPUT_COLOR = "#d86b45"
|
||||
|
||||
# A displayable used for the background of windows
|
||||
# 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 persistent.theme == 'clear':
|
||||
|
||||
# The color of non-interactive text.
|
||||
TEXT = "#545454"
|
||||
|
||||
# Colors for buttons in various states.
|
||||
IDLE = "#42637b"
|
||||
HOVER = "#d86b45"
|
||||
DISABLED = "#808080"
|
||||
|
||||
# Colors for reversed text buttons (selected list entries).
|
||||
REVERSE_IDLE = "#78a5c5"
|
||||
REVERSE_HOVER = "#d86b45"
|
||||
REVERSE_TEXT = "#ffffff"
|
||||
|
||||
# Colors for the scrollbar thumb.
|
||||
SCROLLBAR_IDLE = "#dfdfdf"
|
||||
SCROLLBAR_HOVER = "#d86b45"
|
||||
|
||||
# An image used as a separator pattern.
|
||||
PATTERN = "images/pattern.png"
|
||||
|
||||
# A displayable used for the background of everything.
|
||||
BACKGROUND = Fixed(Solid(REVERSE_TEXT), xsize=800, ysize=600)
|
||||
|
||||
# A displayable used for the background of the projects list.
|
||||
PROJECTS_WINDOW = Null()
|
||||
|
||||
# A displayable used the background of information boxes.
|
||||
INFO_WINDOW = "#f9f9f9"
|
||||
|
||||
# Colors for the titles of information boxes.
|
||||
ERROR_COLOR = "#d15353"
|
||||
INFO_COLOR = "#545454"
|
||||
INTERACTION_COLOR = "#d19753"
|
||||
QUESTION_COLOR = "#d19753"
|
||||
|
||||
# The color of input text.
|
||||
INPUT_COLOR = "#d86b45"
|
||||
|
||||
# A displayable used for the background of windows
|
||||
# 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':
|
||||
|
||||
# The color of non-interactive text.
|
||||
TEXT = custom_text
|
||||
|
||||
# Colors for buttons in various states.
|
||||
IDLE = custom_idle
|
||||
HOVER = custom_hover
|
||||
DISABLED = custom_disable
|
||||
|
||||
# Colors for reversed text buttons (selected list entries).
|
||||
REVERSE_IDLE = custom_reverse_idle
|
||||
REVERSE_HOVER = reverse_hover
|
||||
REVERSE_TEXT = custom_reverse_text
|
||||
|
||||
# Colors for the scrollbar thumb.
|
||||
SCROLLBAR_IDLE = custom_scrollbar_idle
|
||||
SCROLLBAR_HOVER = custom_scrollbar_hover
|
||||
|
||||
# An image used as a separator pattern.
|
||||
PATTERN = custom_pattern
|
||||
|
||||
# A displayable used for the background of everything.
|
||||
BACKGROUND = custom_background
|
||||
|
||||
# A displayable used for the background of the projects list.
|
||||
PROJECTS_WINDOW = custom_projects_window
|
||||
|
||||
# A displayable used the background of information boxes.
|
||||
INFO_WINDOW = custom_info_window
|
||||
|
||||
# Colors for the titles of information boxes.
|
||||
ERROR_COLOR = custom_error_color
|
||||
INFO_COLOR = custom_info_color
|
||||
INTERACTION_COLOR = custom_interaction_color
|
||||
QUESTION_COLOR = custom_question_color
|
||||
|
||||
# The color of input text.
|
||||
INPUT_COLOR = custom_imput_color
|
||||
|
||||
# A displayable used for the background of windows
|
||||
# containing commands, preferences, and navigation info.
|
||||
WINDOW = custom_window
|
||||
|
||||
|
||||
|
||||
init 1 python:
|
||||
|
||||
if not renpy.has_image('scrollbar_center'):
|
||||
renpy.image('scrollbar_center', Fixed(Solid(REVERSE_TEXT, area=(2, 2, 2, 4)), Solid(REVERSE_TEXT, area=(8, 2, 2, 4)), Solid(REVERSE_TEXT, area=(14, 2, 2, 4)), xysize=(18, 8)))
|
||||
if not renpy.has_image('vscrollbar_center'):
|
||||
renpy.image('vscrollbar_center', Fixed(Solid(REVERSE_TEXT, area=(2, 2, 4, 2)), Solid(REVERSE_TEXT, area=(2, 8, 4, 2)), Solid(REVERSE_TEXT, area=(2, 14, 4, 2)), xysize=(8, 18)))
|
||||
|
||||
def size(n):
|
||||
"""
|
||||
Adjusts the font size if we're in large-print mode.
|
||||
@@ -121,10 +258,13 @@ init 1 python:
|
||||
ONEHALF = 377
|
||||
|
||||
def checkbox(full, color):
|
||||
if full:
|
||||
return im.Twocolor("images/checkbox_full.png", color, color, style="l_checkbox_box")
|
||||
if renpy.has_image('checkbox_full'):
|
||||
check = im.Twocolor(''.join(["images/checkbox_", "full" if full else "empty", ".png"]), color, color)
|
||||
else:
|
||||
return im.Twocolor("images/checkbox_empty.png", color, color, style="l_checkbox_box")
|
||||
check = Fixed(Solid(color, xsize=1, xalign=.0), Solid(color, xsize=1, xalign=1.0), Solid(color, ysize=1, yalign=.0), Solid(color, ysize=1, yalign=1.0), xsize=10, ysize=10)
|
||||
if full:
|
||||
check = Fixed(check, Solid(color, xsize=6, ysize=6, align=(.5, .5)), xsize=10, ysize=10)
|
||||
return At(check, l_checkbox_box)
|
||||
|
||||
|
||||
|
||||
@@ -259,11 +399,11 @@ style l_list2_text is l_list_text
|
||||
style l_vscrollbar is l_default:
|
||||
thumb Fixed(
|
||||
Solid(SCROLLBAR_IDLE, xmaximum=8, xalign=0.5),
|
||||
Image("images/vscrollbar_center.png", xalign=0.5, yalign=0.5),
|
||||
Transform('vscrollbar_center', xalign=0.5, yalign=0.5),
|
||||
xmaximum = SCROLLBAR_SIZE)
|
||||
hover_thumb Fixed(
|
||||
Solid(SCROLLBAR_HOVER, xmaximum=8, xalign=0.5),
|
||||
Image("images/vscrollbar_center.png", xalign=0.5, yalign=0.5),
|
||||
Transform('vscrollbar_center', xalign=0.5, yalign=0.5),
|
||||
xmaximum = SCROLLBAR_SIZE)
|
||||
xmaximum SCROLLBAR_SIZE
|
||||
bar_vertical True
|
||||
@@ -341,9 +481,8 @@ style l_checkbox is l_button:
|
||||
selected_hover_background checkbox(True, HOVER)
|
||||
insensitive_background checkbox(False, DISABLED)
|
||||
|
||||
style l_checkbox_box:
|
||||
yanchor 0.5
|
||||
ypos 11
|
||||
transform l_checkbox_box:
|
||||
ycenter 11
|
||||
|
||||
style l_checkbox_text is l_button_text:
|
||||
selected_font light_font()
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
translate french strings:
|
||||
translate french strings:
|
||||
|
||||
# 00action_file.rpy:26
|
||||
old "{#weekday}Monday"
|
||||
@@ -353,7 +352,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 +360,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"
|
||||
@@ -770,3 +769,19 @@ 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é"
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
translate french strings:
|
||||
translate french strings:
|
||||
|
||||
# _developer/developer.rpym:38
|
||||
old "Developer Menu"
|
||||
@@ -195,4 +194,4 @@ 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ésacrive l'échappage des symboles unicode dans les chaînes de caractères unicode et les affiche telles quelles (par défaut)."
|
||||
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)."
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
translate french strings:
|
||||
translate french strings:
|
||||
|
||||
# 00gltest.rpy:64
|
||||
old "Graphics Acceleration"
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
translate french strings:
|
||||
translate french strings:
|
||||
|
||||
# gui.rpy:2
|
||||
old "## Initialization"
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
translate french strings:
|
||||
translate french strings:
|
||||
|
||||
# about.rpy:39
|
||||
old "[version!q]"
|
||||
@@ -1752,3 +1751,123 @@ translate french strings:
|
||||
# game/web.rpy:354
|
||||
old "Before packaging web apps, you'll need to download RenPyWeb, Ren'Py's web support. Would you like to download RenPyWeb now?"
|
||||
new "Avant l'empaquetage des apps web, vous devrez télécharger RenPyWeb, le support web de Ren'Py. Voulez-vous télécharger RenPyWeb maintenant ?"
|
||||
|
||||
# game/preferences.rpy:206
|
||||
old "Default theme"
|
||||
new "Thème par défaut"
|
||||
|
||||
# game/preferences.rpy:209
|
||||
old "Custom theme"
|
||||
new "Thème personnalisé"
|
||||
|
||||
# game/web.rpy:330
|
||||
old "Images and music can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
|
||||
new "Les images et la musique peuvent être téléchargées pendant le jeu. Un fichier 'progressive_download.txt' sera créé pour configurer cette fonction."
|
||||
|
||||
# game/web.rpy:334
|
||||
old "Current limitations in the web platform mean that loading large images may cause audio or framerate glitches, and lower performance in general. Movies aren't supported."
|
||||
new "Les limitations actuelles de la platforme web signifient que le chargement de grandes images peuvent causer des bugs audio ou des saccades. Les objets 'Movies' ne sont pas supportés."
|
||||
|
||||
# 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"
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
|
||||
translate french strings:
|
||||
translate french strings:
|
||||
|
||||
# screens.rpy:9
|
||||
old "## Styles"
|
||||
@@ -716,3 +715,7 @@ 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é."
|
||||
|
||||
@@ -49,59 +49,67 @@ translate piglatin strings:
|
||||
old "decrease"
|
||||
new "ecreaseday"
|
||||
|
||||
# renpy/common/00accessibility.rpy:128
|
||||
# renpy/common/00accessibility.rpy:138
|
||||
old "Font Override"
|
||||
new "Ontfay Verrideoay"
|
||||
|
||||
# renpy/common/00accessibility.rpy:132
|
||||
# renpy/common/00accessibility.rpy:142
|
||||
old "Default"
|
||||
new "Efaultday"
|
||||
|
||||
# renpy/common/00accessibility.rpy:136
|
||||
# renpy/common/00accessibility.rpy:146
|
||||
old "DejaVu Sans"
|
||||
new "Ejavuday Anssay"
|
||||
|
||||
# renpy/common/00accessibility.rpy:140
|
||||
# renpy/common/00accessibility.rpy:150
|
||||
old "Opendyslexic"
|
||||
new "Pendyslexicoay"
|
||||
|
||||
# renpy/common/00accessibility.rpy:146
|
||||
# renpy/common/00accessibility.rpy:156
|
||||
old "Text Size Scaling"
|
||||
new "Exttay Izesay Calingsay"
|
||||
|
||||
# renpy/common/00accessibility.rpy:152
|
||||
# renpy/common/00accessibility.rpy:162
|
||||
old "Reset"
|
||||
new "Esetray"
|
||||
|
||||
# renpy/common/00accessibility.rpy:158
|
||||
# renpy/common/00accessibility.rpy:168
|
||||
old "Line Spacing Scaling"
|
||||
new "Inelay Pacingsay Calingsay"
|
||||
|
||||
# renpy/common/00accessibility.rpy:171
|
||||
# renpy/common/00accessibility.rpy:180
|
||||
old "High Contrast Text"
|
||||
new "Ighhay Ontrastcay Exttay"
|
||||
|
||||
# renpy/common/00accessibility.rpy:182
|
||||
old "Enable"
|
||||
new "Nableeay"
|
||||
|
||||
# renpy/common/00accessibility.rpy:193
|
||||
old "Self-Voicing"
|
||||
new "Elfsay-Oicingvay"
|
||||
|
||||
# renpy/common/00accessibility.rpy:175
|
||||
# renpy/common/00accessibility.rpy:197
|
||||
old "Off"
|
||||
new "Ffoay"
|
||||
|
||||
# renpy/common/00accessibility.rpy:179
|
||||
# renpy/common/00accessibility.rpy:201
|
||||
old "Text-to-speech"
|
||||
new "Exttay-otay-peechsay"
|
||||
|
||||
# renpy/common/00accessibility.rpy:183
|
||||
# renpy/common/00accessibility.rpy:205
|
||||
old "Clipboard"
|
||||
new "Lipboardcay"
|
||||
|
||||
# renpy/common/00accessibility.rpy:187
|
||||
# renpy/common/00accessibility.rpy:209
|
||||
old "Debug"
|
||||
new "Ebugday"
|
||||
|
||||
# renpy/common/00accessibility.rpy:193
|
||||
# renpy/common/00accessibility.rpy:215
|
||||
old "Self-Voicing Volume Drop"
|
||||
new "Elfsay-Oicingvay Olumevay Ropday"
|
||||
|
||||
# renpy/common/00accessibility.rpy:202
|
||||
# renpy/common/00accessibility.rpy:224
|
||||
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 "Hetay optionsay onay histay enumay areay intendeday otay improveay accessibilityay. Heytay aymay otnay orkway ithway allay amesgay, anday omesay ombinationscay ofay optionsay aymay enderray hetay amegay unplayableay. Histay isay otnay anay issueay ithway hetay amegay oray engineay. Orfay hetay estbay esultsray henway angingchay ontsfay, ytray otay eepkay hetay exttay izesay hetay amesay asay itay originallyay asway."
|
||||
|
||||
@@ -257,51 +265,51 @@ translate piglatin strings:
|
||||
old "{#month_short}Dec"
|
||||
new "{#month_short}Ecday"
|
||||
|
||||
# renpy/common/00action_file.rpy:240
|
||||
# renpy/common/00action_file.rpy:250
|
||||
old "%b %d, %H:%M"
|
||||
new "%bay %day, %Hay:%May"
|
||||
|
||||
# renpy/common/00action_file.rpy:353
|
||||
# renpy/common/00action_file.rpy:363
|
||||
old "Save slot %s: [text]"
|
||||
new "Avesay otslay %say: [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:434
|
||||
# renpy/common/00action_file.rpy:444
|
||||
old "Load slot %s: [text]"
|
||||
new "Oadlay otslay %say: [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:487
|
||||
# renpy/common/00action_file.rpy:497
|
||||
old "Delete slot [text]"
|
||||
new "Eleteday otslay [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:566
|
||||
# renpy/common/00action_file.rpy:576
|
||||
old "File page auto"
|
||||
new "Ilefay agepay autoay"
|
||||
|
||||
# renpy/common/00action_file.rpy:568
|
||||
# renpy/common/00action_file.rpy:578
|
||||
old "File page quick"
|
||||
new "Ilefay agepay uickqay"
|
||||
|
||||
# renpy/common/00action_file.rpy:570
|
||||
# renpy/common/00action_file.rpy:580
|
||||
old "File page [text]"
|
||||
new "Ilefay agepay [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:769
|
||||
# renpy/common/00action_file.rpy:779
|
||||
old "Next file page."
|
||||
new "Extnay ilefay agepay."
|
||||
|
||||
# renpy/common/00action_file.rpy:842
|
||||
# renpy/common/00action_file.rpy:851
|
||||
old "Previous file page."
|
||||
new "Reviouspay ilefay agepay."
|
||||
|
||||
# renpy/common/00action_file.rpy:903
|
||||
# renpy/common/00action_file.rpy:912
|
||||
old "Quick save complete."
|
||||
new "Uickqay avesay ompletecay."
|
||||
|
||||
# renpy/common/00action_file.rpy:921
|
||||
# renpy/common/00action_file.rpy:930
|
||||
old "Quick save."
|
||||
new "Uickqay avesay."
|
||||
|
||||
# renpy/common/00action_file.rpy:940
|
||||
# renpy/common/00action_file.rpy:949
|
||||
old "Quick load."
|
||||
new "Uickqay oadlay."
|
||||
|
||||
@@ -401,51 +409,51 @@ translate piglatin strings:
|
||||
old "Audio Filename:"
|
||||
new "Udioaay Ilenamefay:"
|
||||
|
||||
# renpy/common/00gui.rpy:374
|
||||
# renpy/common/00gui.rpy:384
|
||||
old "Are you sure?"
|
||||
new "Reaay ouyay uresay?"
|
||||
|
||||
# renpy/common/00gui.rpy:375
|
||||
# renpy/common/00gui.rpy:385
|
||||
old "Are you sure you want to delete this save?"
|
||||
new "Reaay ouyay uresay ouyay antway otay eleteday histay avesay?"
|
||||
|
||||
# renpy/common/00gui.rpy:376
|
||||
# renpy/common/00gui.rpy:386
|
||||
old "Are you sure you want to overwrite your save?"
|
||||
new "Reaay ouyay uresay ouyay antway otay overwriteay ouryay avesay?"
|
||||
|
||||
# renpy/common/00gui.rpy:377
|
||||
# renpy/common/00gui.rpy:387
|
||||
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
|
||||
new "Oadinglay illway oselay unsaveday rogresspay.\nReaay ouyay uresay ouyay antway otay oday histay?"
|
||||
|
||||
# renpy/common/00gui.rpy:378
|
||||
# renpy/common/00gui.rpy:388
|
||||
old "Are you sure you want to quit?"
|
||||
new "Reaay ouyay uresay ouyay antway otay uitqay?"
|
||||
|
||||
# renpy/common/00gui.rpy:379
|
||||
# renpy/common/00gui.rpy:389
|
||||
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
|
||||
new "Reaay ouyay uresay ouyay antway otay eturnray otay hetay ainmay enumay?\nHistay illway oselay unsaveday rogresspay."
|
||||
|
||||
# renpy/common/00gui.rpy:380
|
||||
# renpy/common/00gui.rpy:390
|
||||
old "Are you sure you want to end the replay?"
|
||||
new "Reaay ouyay uresay ouyay antway otay enday hetay eplayray?"
|
||||
|
||||
# renpy/common/00gui.rpy:381
|
||||
# renpy/common/00gui.rpy:391
|
||||
old "Are you sure you want to begin skipping?"
|
||||
new "Reaay ouyay uresay ouyay antway otay eginbay kippingsay?"
|
||||
|
||||
# renpy/common/00gui.rpy:382
|
||||
# renpy/common/00gui.rpy:392
|
||||
old "Are you sure you want to skip to the next choice?"
|
||||
new "Reaay ouyay uresay ouyay antway otay kipsay otay hetay extnay oicechay?"
|
||||
|
||||
# renpy/common/00gui.rpy:383
|
||||
# renpy/common/00gui.rpy:393
|
||||
old "Are you sure you want to skip unseen dialogue to the next choice?"
|
||||
new "Reaay ouyay uresay ouyay antway otay kipsay unseenay ialogueday otay hetay extnay oicechay?"
|
||||
|
||||
# renpy/common/00keymap.rpy:301
|
||||
# renpy/common/00keymap.rpy:306
|
||||
old "Failed to save screenshot as %s."
|
||||
new "Ailedfay otay avesay creenshotsay asay %say."
|
||||
|
||||
# renpy/common/00keymap.rpy:313
|
||||
# renpy/common/00keymap.rpy:318
|
||||
old "Saved screenshot as %s."
|
||||
new "Avedsay creenshotsay asay %say."
|
||||
|
||||
@@ -457,179 +465,191 @@ translate piglatin strings:
|
||||
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 "Histay rogrampay ontainscay eefray oftwaresay underay aay umbernay ofay icenseslay, includingay hetay Itmay Icenselay anday Nugay Esserlay Eneralgay Ublicpay Icenselay. Aay ompletecay istlay ofay oftwaresay, includingay inkslay otay ullfay ourcesay odecay, ancay ebay oundfay {a=https://www.renpy.org/l/license}erehay{/a}."
|
||||
|
||||
# renpy/common/00preferences.rpy:240
|
||||
# renpy/common/00preferences.rpy:254
|
||||
old "display"
|
||||
new "isplayday"
|
||||
|
||||
# renpy/common/00preferences.rpy:252
|
||||
# renpy/common/00preferences.rpy:266
|
||||
old "transitions"
|
||||
new "ansitionstray"
|
||||
|
||||
# renpy/common/00preferences.rpy:261
|
||||
# renpy/common/00preferences.rpy:275
|
||||
old "skip transitions"
|
||||
new "kipsay ansitionstray"
|
||||
|
||||
# renpy/common/00preferences.rpy:263
|
||||
# renpy/common/00preferences.rpy:277
|
||||
old "video sprites"
|
||||
new "ideovay pritessay"
|
||||
|
||||
# renpy/common/00preferences.rpy:272
|
||||
# renpy/common/00preferences.rpy:286
|
||||
old "show empty window"
|
||||
new "owshay emptyay indowway"
|
||||
|
||||
# renpy/common/00preferences.rpy:281
|
||||
# renpy/common/00preferences.rpy:295
|
||||
old "text speed"
|
||||
new "exttay peedsay"
|
||||
|
||||
# renpy/common/00preferences.rpy:289
|
||||
# renpy/common/00preferences.rpy:303
|
||||
old "joystick"
|
||||
new "oystickjay"
|
||||
|
||||
# renpy/common/00preferences.rpy:289
|
||||
# renpy/common/00preferences.rpy:303
|
||||
old "joystick..."
|
||||
new "oystickjay..."
|
||||
|
||||
# renpy/common/00preferences.rpy:296
|
||||
# renpy/common/00preferences.rpy:310
|
||||
old "skip"
|
||||
new "kipsay"
|
||||
|
||||
# renpy/common/00preferences.rpy:299
|
||||
# renpy/common/00preferences.rpy:313
|
||||
old "skip unseen [text]"
|
||||
new "kipsay unseenay [text]"
|
||||
|
||||
# renpy/common/00preferences.rpy:304
|
||||
# renpy/common/00preferences.rpy:318
|
||||
old "skip unseen text"
|
||||
new "kipsay unseenay exttay"
|
||||
|
||||
# renpy/common/00preferences.rpy:306
|
||||
# renpy/common/00preferences.rpy:320
|
||||
old "begin skipping"
|
||||
new "eginbay kippingsay"
|
||||
|
||||
# renpy/common/00preferences.rpy:310
|
||||
# renpy/common/00preferences.rpy:324
|
||||
old "after choices"
|
||||
new "afteray oiceschay"
|
||||
|
||||
# renpy/common/00preferences.rpy:317
|
||||
# renpy/common/00preferences.rpy:331
|
||||
old "skip after choices"
|
||||
new "kipsay afteray oiceschay"
|
||||
|
||||
# renpy/common/00preferences.rpy:319
|
||||
# renpy/common/00preferences.rpy:333
|
||||
old "auto-forward time"
|
||||
new "autoay-orwardfay imetay"
|
||||
|
||||
# renpy/common/00preferences.rpy:333
|
||||
# renpy/common/00preferences.rpy:347
|
||||
old "auto-forward"
|
||||
new "autoay-orwardfay"
|
||||
|
||||
# renpy/common/00preferences.rpy:340
|
||||
# renpy/common/00preferences.rpy:354
|
||||
old "Auto forward"
|
||||
new "Utoaay orwardfay"
|
||||
|
||||
# renpy/common/00preferences.rpy:343
|
||||
# renpy/common/00preferences.rpy:357
|
||||
old "auto-forward after click"
|
||||
new "autoay-orwardfay afteray ickclay"
|
||||
|
||||
# renpy/common/00preferences.rpy:352
|
||||
# renpy/common/00preferences.rpy:366
|
||||
old "automatic move"
|
||||
new "automaticay ovemay"
|
||||
|
||||
# renpy/common/00preferences.rpy:361
|
||||
# renpy/common/00preferences.rpy:375
|
||||
old "wait for voice"
|
||||
new "aitway orfay oicevay"
|
||||
|
||||
# renpy/common/00preferences.rpy:370
|
||||
# renpy/common/00preferences.rpy:384
|
||||
old "voice sustain"
|
||||
new "oicevay ustainsay"
|
||||
|
||||
# renpy/common/00preferences.rpy:379
|
||||
# renpy/common/00preferences.rpy:393
|
||||
old "self voicing"
|
||||
new "elfsay oicingvay"
|
||||
|
||||
# renpy/common/00preferences.rpy:388
|
||||
# renpy/common/00preferences.rpy:402
|
||||
old "self voicing volume drop"
|
||||
new "elfsay oicingvay olumevay ropday"
|
||||
|
||||
# renpy/common/00preferences.rpy:396
|
||||
# renpy/common/00preferences.rpy:410
|
||||
old "clipboard voicing"
|
||||
new "ipboardclay oicingvay"
|
||||
|
||||
# renpy/common/00preferences.rpy:405
|
||||
# renpy/common/00preferences.rpy:419
|
||||
old "debug voicing"
|
||||
new "ebugday oicingvay"
|
||||
|
||||
# renpy/common/00preferences.rpy:414
|
||||
# renpy/common/00preferences.rpy:428
|
||||
old "emphasize audio"
|
||||
new "emphasizeay audioay"
|
||||
|
||||
# renpy/common/00preferences.rpy:423
|
||||
# renpy/common/00preferences.rpy:437
|
||||
old "rollback side"
|
||||
new "ollbackray idesay"
|
||||
|
||||
# renpy/common/00preferences.rpy:433
|
||||
# renpy/common/00preferences.rpy:447
|
||||
old "gl powersave"
|
||||
new "glay owersavepay"
|
||||
|
||||
# renpy/common/00preferences.rpy:439
|
||||
# renpy/common/00preferences.rpy:453
|
||||
old "gl framerate"
|
||||
new "glay ameratefray"
|
||||
|
||||
# renpy/common/00preferences.rpy:442
|
||||
# renpy/common/00preferences.rpy:456
|
||||
old "gl tearing"
|
||||
new "glay earingtay"
|
||||
|
||||
# renpy/common/00preferences.rpy:445
|
||||
# renpy/common/00preferences.rpy:459
|
||||
old "font transform"
|
||||
new "ontfay ansformtray"
|
||||
|
||||
# renpy/common/00preferences.rpy:448
|
||||
# renpy/common/00preferences.rpy:462
|
||||
old "font size"
|
||||
new "ontfay izesay"
|
||||
|
||||
# renpy/common/00preferences.rpy:456
|
||||
# renpy/common/00preferences.rpy:470
|
||||
old "font line spacing"
|
||||
new "ontfay inelay pacingsay"
|
||||
|
||||
# renpy/common/00preferences.rpy:464
|
||||
# renpy/common/00preferences.rpy:478
|
||||
old "system cursor"
|
||||
new "ystemsay ursorcay"
|
||||
|
||||
# renpy/common/00preferences.rpy:484
|
||||
# renpy/common/00preferences.rpy:487
|
||||
old "renderer menu"
|
||||
new "endererray enumay"
|
||||
|
||||
# renpy/common/00preferences.rpy:490
|
||||
old "accessibility menu"
|
||||
new "accessibilityay enumay"
|
||||
|
||||
# renpy/common/00preferences.rpy:493
|
||||
old "high contrast text"
|
||||
new "ighhay ontrastcay exttay"
|
||||
|
||||
# renpy/common/00preferences.rpy:512
|
||||
old "music volume"
|
||||
new "usicmay olumevay"
|
||||
|
||||
# renpy/common/00preferences.rpy:485
|
||||
# renpy/common/00preferences.rpy:513
|
||||
old "sound volume"
|
||||
new "oundsay olumevay"
|
||||
|
||||
# renpy/common/00preferences.rpy:486
|
||||
# renpy/common/00preferences.rpy:514
|
||||
old "voice volume"
|
||||
new "oicevay olumevay"
|
||||
|
||||
# renpy/common/00preferences.rpy:487
|
||||
# renpy/common/00preferences.rpy:515
|
||||
old "mute music"
|
||||
new "utemay usicmay"
|
||||
|
||||
# renpy/common/00preferences.rpy:488
|
||||
# renpy/common/00preferences.rpy:516
|
||||
old "mute sound"
|
||||
new "utemay oundsay"
|
||||
|
||||
# renpy/common/00preferences.rpy:489
|
||||
# renpy/common/00preferences.rpy:517
|
||||
old "mute voice"
|
||||
new "utemay oicevay"
|
||||
|
||||
# renpy/common/00preferences.rpy:490
|
||||
# renpy/common/00preferences.rpy:518
|
||||
old "mute all"
|
||||
new "utemay allay"
|
||||
|
||||
# renpy/common/00preferences.rpy:571
|
||||
# renpy/common/00preferences.rpy:599
|
||||
old "Clipboard voicing enabled. Press 'shift+C' to disable."
|
||||
new "Lipboardcay oicingvay enableday. Resspay 'iftshay+Cay' otay isableday."
|
||||
|
||||
# renpy/common/00preferences.rpy:573
|
||||
# renpy/common/00preferences.rpy:601
|
||||
old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
|
||||
new "Elfsay-oicingvay ouldway aysay \"[renpy.display.tts.last]\". Resspay 'altay+iftshay+Vay' otay isableday."
|
||||
|
||||
# renpy/common/00preferences.rpy:575
|
||||
# renpy/common/00preferences.rpy:603
|
||||
old "Self-voicing enabled. Press 'v' to disable."
|
||||
new "Elfsay-oicingvay enableday. Resspay 'vay' otay isableday."
|
||||
|
||||
@@ -637,75 +657,75 @@ translate piglatin strings:
|
||||
old "Contacting App Store\nPlease Wait..."
|
||||
new "Ontactingcay Ppaay Toresay\nLeasepay Aitway..."
|
||||
|
||||
# renpy/common/00updater.rpy:374
|
||||
# renpy/common/00updater.rpy:391
|
||||
old "The Ren'Py Updater is not supported on mobile devices."
|
||||
new "Hetay Enray'Ypay Pdateruay isay otnay upportedsay onay obilemay evicesday."
|
||||
|
||||
# renpy/common/00updater.rpy:493
|
||||
# renpy/common/00updater.rpy:520
|
||||
old "An error is being simulated."
|
||||
new "Naay erroray isay eingbay imulatedsay."
|
||||
|
||||
# renpy/common/00updater.rpy:677
|
||||
# renpy/common/00updater.rpy:704
|
||||
old "Either this project does not support updating, or the update status file was deleted."
|
||||
new "Ithereay histay rojectpay oesday otnay upportsay updatingay, oray hetay updateay atusstay ilefay asway eletedday."
|
||||
|
||||
# renpy/common/00updater.rpy:691
|
||||
# renpy/common/00updater.rpy:718
|
||||
old "This account does not have permission to perform an update."
|
||||
new "Histay accountay oesday otnay avehay ermissionpay otay erformpay anay updateay."
|
||||
|
||||
# renpy/common/00updater.rpy:694
|
||||
# renpy/common/00updater.rpy:721
|
||||
old "This account does not have permission to write the update log."
|
||||
new "Histay accountay oesday otnay avehay ermissionpay otay riteway hetay updateay oglay."
|
||||
|
||||
# renpy/common/00updater.rpy:721
|
||||
# renpy/common/00updater.rpy:746
|
||||
old "Could not verify update signature."
|
||||
new "Ouldcay otnay erifyvay updateay ignaturesay."
|
||||
|
||||
# renpy/common/00updater.rpy:992
|
||||
# renpy/common/00updater.rpy:1013
|
||||
old "The update file was not downloaded."
|
||||
new "Hetay updateay ilefay asway otnay ownloadedday."
|
||||
|
||||
# renpy/common/00updater.rpy:1010
|
||||
# renpy/common/00updater.rpy:1031
|
||||
old "The update file does not have the correct digest - it may have been corrupted."
|
||||
new "Hetay updateay ilefay oesday otnay avehay hetay orrectcay igestday - itay aymay avehay eenbay orruptedcay."
|
||||
|
||||
# renpy/common/00updater.rpy:1064
|
||||
# renpy/common/00updater.rpy:1181
|
||||
old "While unpacking {}, unknown type {}."
|
||||
new "Hileway unpackingay {}, unknownay ypetay {}."
|
||||
|
||||
# renpy/common/00updater.rpy:1430
|
||||
# renpy/common/00updater.rpy:1553
|
||||
old "Updater"
|
||||
new "Pdateruay"
|
||||
|
||||
# renpy/common/00updater.rpy:1441
|
||||
# renpy/common/00updater.rpy:1564
|
||||
old "This program is up to date."
|
||||
new "Histay rogrampay isay upay otay ateday."
|
||||
|
||||
# renpy/common/00updater.rpy:1443
|
||||
# renpy/common/00updater.rpy:1566
|
||||
old "[u.version] is available. Do you want to install it?"
|
||||
new "[u.version] isay availableay. Oday ouyay antway otay installay itay?"
|
||||
|
||||
# renpy/common/00updater.rpy:1445
|
||||
# renpy/common/00updater.rpy:1568
|
||||
old "Preparing to download the updates."
|
||||
new "Reparingpay otay ownloadday hetay updatesay."
|
||||
|
||||
# renpy/common/00updater.rpy:1447
|
||||
# renpy/common/00updater.rpy:1570
|
||||
old "Downloading the updates."
|
||||
new "Ownloadingday hetay updatesay."
|
||||
|
||||
# renpy/common/00updater.rpy:1449
|
||||
# renpy/common/00updater.rpy:1572
|
||||
old "Unpacking the updates."
|
||||
new "Npackinguay hetay updatesay."
|
||||
|
||||
# renpy/common/00updater.rpy:1453
|
||||
# renpy/common/00updater.rpy:1576
|
||||
old "The updates have been installed. The program will restart."
|
||||
new "Hetay updatesay avehay eenbay installeday. Hetay rogrampay illway estartray."
|
||||
|
||||
# renpy/common/00updater.rpy:1455
|
||||
# renpy/common/00updater.rpy:1578
|
||||
old "The updates have been installed."
|
||||
new "Hetay updatesay avehay eenbay installeday."
|
||||
|
||||
# renpy/common/00updater.rpy:1457
|
||||
# renpy/common/00updater.rpy:1580
|
||||
old "The updates were cancelled."
|
||||
new "Hetay updatesay ereway ancelledcay."
|
||||
|
||||
|
||||
@@ -157,71 +157,71 @@ translate piglatin strings:
|
||||
old "Ren'Py script disabled."
|
||||
new "Enray'Ypay criptsay isabledday."
|
||||
|
||||
# renpy/common/00console.rpy:745
|
||||
# renpy/common/00console.rpy:747
|
||||
old "help: show this help"
|
||||
new "elphay: owshay histay elphay"
|
||||
|
||||
# renpy/common/00console.rpy:750
|
||||
# renpy/common/00console.rpy:752
|
||||
old "commands:\n"
|
||||
new "ommandscay:\n"
|
||||
|
||||
# renpy/common/00console.rpy:760
|
||||
# renpy/common/00console.rpy:762
|
||||
old " <renpy script statement>: run the statement\n"
|
||||
new " <enpyray criptsay atementstay>: unray hetay atementstay\n"
|
||||
|
||||
# renpy/common/00console.rpy:762
|
||||
# renpy/common/00console.rpy:764
|
||||
old " <python expression or statement>: run the expression or statement"
|
||||
new " <ythonpay expressionay oray atementstay>: unray hetay expressionay oray atementstay"
|
||||
|
||||
# renpy/common/00console.rpy:770
|
||||
# renpy/common/00console.rpy:772
|
||||
old "clear: clear the console history"
|
||||
new "earclay: earclay hetay onsolecay istoryhay"
|
||||
|
||||
# renpy/common/00console.rpy:774
|
||||
# renpy/common/00console.rpy:776
|
||||
old "exit: exit the console"
|
||||
new "exitay: exitay hetay onsolecay"
|
||||
|
||||
# renpy/common/00console.rpy:782
|
||||
# renpy/common/00console.rpy:784
|
||||
old "load <slot>: loads the game from slot"
|
||||
new "oadlay <otslay>: oadslay hetay amegay omfray otslay"
|
||||
|
||||
# renpy/common/00console.rpy:795
|
||||
# renpy/common/00console.rpy:797
|
||||
old "save <slot>: saves the game in slot"
|
||||
new "avesay <otslay>: avessay hetay amegay inay otslay"
|
||||
|
||||
# renpy/common/00console.rpy:806
|
||||
# renpy/common/00console.rpy:808
|
||||
old "reload: reloads the game, refreshing the scripts"
|
||||
new "eloadray: eloadsray hetay amegay, efreshingray hetay criptssay"
|
||||
|
||||
# renpy/common/00console.rpy:814
|
||||
# renpy/common/00console.rpy:816
|
||||
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 "atchway <expressionay>: atchway aay ythonpay expressionay\n atchway ortshay: akesmay hetay epresentationray ofay acedtray expressionsay ortshay (efaultday)\n atchway onglay: akesmay hetay epresentationray ofay acedtray expressionsay asay isay"
|
||||
|
||||
# renpy/common/00console.rpy:849
|
||||
# renpy/common/00console.rpy:851
|
||||
old "unwatch <expression>: stop watching an expression"
|
||||
new "unwatchay <expressionay>: opstay atchingway anay expressionay"
|
||||
|
||||
# renpy/common/00console.rpy:884
|
||||
# renpy/common/00console.rpy:886
|
||||
old "unwatchall: stop watching all expressions"
|
||||
new "unwatchallay: opstay atchingway allay expressionsay"
|
||||
|
||||
# renpy/common/00console.rpy:901
|
||||
# renpy/common/00console.rpy:903
|
||||
old "jump <label>: jumps to label"
|
||||
new "umpjay <abellay>: umpsjay otay abellay"
|
||||
|
||||
# renpy/common/00console.rpy:917
|
||||
# renpy/common/00console.rpy:919
|
||||
old "short: Shorten the representation of objects on the console (default)."
|
||||
new "ortshay: Hortensay hetay epresentationray ofay objectsay onay hetay onsolecay (efaultday)."
|
||||
|
||||
# renpy/common/00console.rpy:921
|
||||
# renpy/common/00console.rpy:923
|
||||
old "long: Print the full representation of objects on the console."
|
||||
new "onglay: Rintpay hetay ullfay epresentationray ofay objectsay onay hetay onsolecay."
|
||||
|
||||
# renpy/common/00console.rpy:925
|
||||
# renpy/common/00console.rpy:927
|
||||
old "escape: Enables escaping of unicode symbols in unicode strings."
|
||||
new "escapeay: Nableseay escapingay ofay unicodeay ymbolssay inay unicodeay ringsstay."
|
||||
|
||||
# renpy/common/00console.rpy:929
|
||||
# renpy/common/00console.rpy:931
|
||||
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
|
||||
new "unescapeay: Isablesday escapingay ofay unicodeay ymbolssay inay unicodeay ringsstay anday rintpay itay asay isay (efaultday)."
|
||||
|
||||
|
||||
@@ -34,70 +34,74 @@ translate piglatin strings:
|
||||
new "Orcefay Les2gay Endererray"
|
||||
|
||||
# renpy/common/00gltest.rpy:136
|
||||
old "Enable"
|
||||
new "Nableeay"
|
||||
old "Enable (No Blocklist)"
|
||||
new "Nableeay (Onay Locklistbay)"
|
||||
|
||||
# renpy/common/00gltest.rpy:155
|
||||
# renpy/common/00gltest.rpy:159
|
||||
old "Powersave"
|
||||
new "Owersavepay"
|
||||
|
||||
# renpy/common/00gltest.rpy:169
|
||||
# renpy/common/00gltest.rpy:173
|
||||
old "Framerate"
|
||||
new "Rameratefay"
|
||||
|
||||
# renpy/common/00gltest.rpy:173
|
||||
# renpy/common/00gltest.rpy:177
|
||||
old "Screen"
|
||||
new "Creensay"
|
||||
|
||||
# renpy/common/00gltest.rpy:177
|
||||
# renpy/common/00gltest.rpy:181
|
||||
old "60"
|
||||
new "06ay"
|
||||
|
||||
# renpy/common/00gltest.rpy:181
|
||||
# renpy/common/00gltest.rpy:185
|
||||
old "30"
|
||||
new "03ay"
|
||||
|
||||
# renpy/common/00gltest.rpy:187
|
||||
# renpy/common/00gltest.rpy:191
|
||||
old "Tearing"
|
||||
new "Earingtay"
|
||||
|
||||
# renpy/common/00gltest.rpy:203
|
||||
# renpy/common/00gltest.rpy:207
|
||||
old "Changes will take effect the next time this program is run."
|
||||
new "Hangescay illway aketay effectay hetay extnay imetay histay rogrampay isay unray."
|
||||
|
||||
# renpy/common/00gltest.rpy:238
|
||||
# renpy/common/00gltest.rpy:242
|
||||
old "Performance Warning"
|
||||
new "Erformancepay Arningway"
|
||||
|
||||
# renpy/common/00gltest.rpy:243
|
||||
# renpy/common/00gltest.rpy:247
|
||||
old "This computer is using software rendering."
|
||||
new "Histay omputercay isay usingay oftwaresay enderingray."
|
||||
|
||||
# renpy/common/00gltest.rpy:245
|
||||
# renpy/common/00gltest.rpy:249
|
||||
old "This game requires use of GL2 that can't be initialised."
|
||||
new "Histay amegay equiresray useay ofay L2gay hattay ancay'tay ebay initialiseday."
|
||||
|
||||
# renpy/common/00gltest.rpy:247
|
||||
# renpy/common/00gltest.rpy:251
|
||||
old "This computer has a problem displaying graphics: [problem]."
|
||||
new "Histay omputercay ashay aay roblempay isplayingday aphicsgray: [problem]."
|
||||
|
||||
# renpy/common/00gltest.rpy:251
|
||||
# renpy/common/00gltest.rpy:255
|
||||
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
|
||||
new "Tsiay aphicsgray riversday aymay ebay outay ofay ateday oray otnay operatingay orrectlycay. Histay ancay eadlay otay owslay oray incorrectay aphicsgray isplayday."
|
||||
|
||||
# renpy/common/00gltest.rpy:256
|
||||
# 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."
|
||||
new "Hetay {a=edit:1:log.txt}oglay.xttay{/a} ilefay aymay ontaincay informationay otay elphay ouyay etermineday hatway isay rongway ithway ouryay omputercay."
|
||||
|
||||
# renpy/common/00gltest.rpy:264
|
||||
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
|
||||
new "Oremay etailsday onay owhay otay ixfay histay ancay ebay oundfay inay hetay {a=[url]}ocumentationday{/a}."
|
||||
|
||||
# renpy/common/00gltest.rpy:261
|
||||
# renpy/common/00gltest.rpy:269
|
||||
old "Continue, Show this warning again"
|
||||
new "Ontinuecay, Howsay histay arningway againay"
|
||||
|
||||
# renpy/common/00gltest.rpy:265
|
||||
# renpy/common/00gltest.rpy:273
|
||||
old "Continue, Don't show warning again"
|
||||
new "Ontinuecay, Onday'tay owshay arningway againay"
|
||||
|
||||
# renpy/common/00gltest.rpy:273
|
||||
# renpy/common/00gltest.rpy:281
|
||||
old "Change render options"
|
||||
new "Hangecay enderray optionsay"
|
||||
|
||||
@@ -125,87 +129,75 @@ translate piglatin strings:
|
||||
old "Back (B)"
|
||||
new "Ackbay (Bay)"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:540
|
||||
# renpy/common/_errorhandling.rpym:542
|
||||
old "Open"
|
||||
new "Penoay"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:542
|
||||
# renpy/common/_errorhandling.rpym:544
|
||||
old "Opens the traceback.txt file in a text editor."
|
||||
new "Pensoay hetay acebacktray.xttay ilefay inay aay exttay editoray."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:544
|
||||
# renpy/common/_errorhandling.rpym:546
|
||||
old "Copy BBCode"
|
||||
new "Opycay Bcodebay"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:546
|
||||
# renpy/common/_errorhandling.rpym:548
|
||||
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
|
||||
new "Opiescay hetay acebacktray.xttay ilefay otay hetay ipboardclay asay Bcodebay orfay orumsfay ikelay ttpshay://emmasoftlay.enairay.usay/."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:548
|
||||
# renpy/common/_errorhandling.rpym:550
|
||||
old "Copy Markdown"
|
||||
new "Opycay Arkdownmay"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:550
|
||||
# renpy/common/_errorhandling.rpym:552
|
||||
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
|
||||
new "Opiescay hetay acebacktray.xttay ilefay otay hetay ipboardclay asay Arkdownmay orfay Iscordday."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:579
|
||||
# renpy/common/_errorhandling.rpym:581
|
||||
old "An exception has occurred."
|
||||
new "Naay exceptionay ashay occurreday."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:602
|
||||
# renpy/common/_errorhandling.rpym:604
|
||||
old "Rollback"
|
||||
new "Ollbackray"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:604
|
||||
# renpy/common/_errorhandling.rpym:606
|
||||
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
|
||||
new "Ttemptsaay aay ollray ackbay otay aay riorpay imetay, allowingay ouyay otay avesay oray oosechay aay ifferentday oicechay."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:607
|
||||
# renpy/common/_errorhandling.rpym:609
|
||||
old "Ignore"
|
||||
new "Gnoreiay"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:611
|
||||
# renpy/common/_errorhandling.rpym:613
|
||||
old "Ignores the exception, allowing you to continue."
|
||||
new "Gnoresiay hetay exceptionay, allowingay ouyay otay ontinuecay."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:613
|
||||
# renpy/common/_errorhandling.rpym:615
|
||||
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
|
||||
new "Gnoresiay hetay exceptionay, allowingay ouyay otay ontinuecay. Histay oftenay eadslay otay additionalay errorsay."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:617
|
||||
# renpy/common/_errorhandling.rpym:619
|
||||
old "Reload"
|
||||
new "Eloadray"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:619
|
||||
# renpy/common/_errorhandling.rpym:621
|
||||
old "Reloads the game from disk, saving and restoring game state if possible."
|
||||
new "Eloadsray hetay amegay omfray iskday, avingsay anday estoringray amegay atestay ifay ossiblepay."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:622
|
||||
# renpy/common/_errorhandling.rpym:624
|
||||
old "Console"
|
||||
new "Onsolecay"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:624
|
||||
# renpy/common/_errorhandling.rpym:626
|
||||
old "Opens a console to allow debugging the problem."
|
||||
new "Pensoay aay onsolecay otay alloway ebuggingday hetay roblempay."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:637
|
||||
# renpy/common/_errorhandling.rpym:639
|
||||
old "Quits the game."
|
||||
new "Uitsqay hetay amegay."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:658
|
||||
# renpy/common/_errorhandling.rpym:660
|
||||
old "Parsing the script failed."
|
||||
new "Arsingpay hetay criptsay ailedfay."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:684
|
||||
old "Opens the errors.txt file in a text editor."
|
||||
new "Pensoay hetay errorsay.xttay ilefay inay aay exttay editoray."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:688
|
||||
old "Copies the errors.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
|
||||
new "Opiescay hetay errorsay.xttay ilefay otay hetay ipboardclay asay Bcodebay orfay orumsfay ikelay ttpshay://emmasoftlay.enairay.usay/."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:692
|
||||
old "Copies the errors.txt file to the clipboard as Markdown for Discord."
|
||||
new "Opiescay hetay errorsay.xttay ilefay otay hetay ipboardclay asay Arkdownmay orfay Iscordday."
|
||||
|
||||
|
||||
@@ -425,11 +425,11 @@ translate piglatin strings:
|
||||
old "## Change the size and spacing of various things."
|
||||
new "## Hangecay hetay izesay anday pacingsay ofay ariousvay hingstay."
|
||||
|
||||
# gui/game/gui.rpy:454
|
||||
# gui/game/gui.rpy:455
|
||||
old "## File button layout."
|
||||
new "## Ilefay uttonbay ayoutlay."
|
||||
|
||||
# gui/game/gui.rpy:458
|
||||
# gui/game/gui.rpy:459
|
||||
old "## NVL-mode."
|
||||
new "## Vlnay-odemay."
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -46,8 +46,8 @@ translate piglatin strings:
|
||||
new "## Oundssay anday usicmay"
|
||||
|
||||
# gui/game/options.rpy:47
|
||||
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 "## Hesetay hreetay ariablesvay ontrolcay hichway ixersmay areay ownshay otay hetay ayerplay ybay efaultday. Ettingsay oneay ofay hesetay otay Alsefay illway idehay hetay appropriateay ixermay."
|
||||
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 "## Hesetay hreetay ariablesvay ontrolcay, amongay otheray hingstay, hichway ixersmay areay ownshay otay hetay ayerplay ybay efaultday. Ettingsay oneay ofay hesetay otay Alsefay illway idehay hetay appropriateay ixermay."
|
||||
|
||||
# gui/game/options.rpy:56
|
||||
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."
|
||||
|
||||
@@ -181,11 +181,11 @@ translate piglatin strings:
|
||||
old "## This ensures that any other menu screen is replaced."
|
||||
new "## Histay ensuresay hattay anyay otheray enumay creensay isay eplacedray."
|
||||
|
||||
# gui/game/screens.rpy:363
|
||||
# gui/game/screens.rpy:361
|
||||
old "## This empty frame darkens the main menu."
|
||||
new "## Histay emptyay amefray arkensday hetay ainmay enumay."
|
||||
|
||||
# gui/game/screens.rpy:367
|
||||
# gui/game/screens.rpy:365
|
||||
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
|
||||
new "## Hetay useay atementstay includesay anotheray creensay insideay histay oneay. Hetay actualay ontentscay ofay hetay ainmay enumay areay inay hetay avigationnay creensay."
|
||||
|
||||
@@ -517,155 +517,159 @@ translate piglatin strings:
|
||||
old "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
|
||||
new "Ogglestay assistiveay {a=https://www.renpy.org/l/voicing}elfsay-oicingvay{/a}."
|
||||
|
||||
# gui/game/screens.rpy:1051
|
||||
# gui/game/screens.rpy:1049
|
||||
old "Opens the accessibility menu."
|
||||
new "Pensoay hetay accessibilityay enumay."
|
||||
|
||||
# gui/game/screens.rpy:1055
|
||||
old "Left Click"
|
||||
new "Eftlay Lickcay"
|
||||
|
||||
# gui/game/screens.rpy:1055
|
||||
# gui/game/screens.rpy:1059
|
||||
old "Middle Click"
|
||||
new "Iddlemay Lickcay"
|
||||
|
||||
# gui/game/screens.rpy:1059
|
||||
# gui/game/screens.rpy:1063
|
||||
old "Right Click"
|
||||
new "Ightray Lickcay"
|
||||
|
||||
# gui/game/screens.rpy:1063
|
||||
# gui/game/screens.rpy:1067
|
||||
old "Mouse Wheel Up\nClick Rollback Side"
|
||||
new "Ousemay Heelway Puay\nLickcay Ollbackray Idesay"
|
||||
|
||||
# gui/game/screens.rpy:1067
|
||||
# gui/game/screens.rpy:1071
|
||||
old "Mouse Wheel Down"
|
||||
new "Ousemay Heelway Ownday"
|
||||
|
||||
# gui/game/screens.rpy:1074
|
||||
# gui/game/screens.rpy:1078
|
||||
old "Right Trigger\nA/Bottom Button"
|
||||
new "Ightray Riggertay\nAay/Ottombay Uttonbay"
|
||||
|
||||
# gui/game/screens.rpy:1078
|
||||
# gui/game/screens.rpy:1082
|
||||
old "Left Trigger\nLeft Shoulder"
|
||||
new "Eftlay Riggertay\nEftlay Houldersay"
|
||||
|
||||
# gui/game/screens.rpy:1082
|
||||
# gui/game/screens.rpy:1086
|
||||
old "Right Shoulder"
|
||||
new "Ightray Houldersay"
|
||||
|
||||
# gui/game/screens.rpy:1087
|
||||
# gui/game/screens.rpy:1091
|
||||
old "D-Pad, Sticks"
|
||||
new "Day-Adpay, Tickssay"
|
||||
|
||||
# gui/game/screens.rpy:1091
|
||||
# gui/game/screens.rpy:1095
|
||||
old "Start, Guide"
|
||||
new "Tartsay, Uidegay"
|
||||
|
||||
# gui/game/screens.rpy:1095
|
||||
# gui/game/screens.rpy:1099
|
||||
old "Y/Top Button"
|
||||
new "Yay/Optay Uttonbay"
|
||||
|
||||
# gui/game/screens.rpy:1098
|
||||
# gui/game/screens.rpy:1102
|
||||
old "Calibrate"
|
||||
new "Alibratecay"
|
||||
|
||||
# gui/game/screens.rpy:1126
|
||||
# gui/game/screens.rpy:1130
|
||||
old "## Additional screens"
|
||||
new "## Dditionalaay creenssay"
|
||||
|
||||
# gui/game/screens.rpy:1130
|
||||
# gui/game/screens.rpy:1134
|
||||
old "## Confirm screen"
|
||||
new "## Onfirmcay creensay"
|
||||
|
||||
# gui/game/screens.rpy:1132
|
||||
# gui/game/screens.rpy:1136
|
||||
old "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
|
||||
new "## Hetay onfirmcay creensay isay alledcay henway Enray'Ypay antsway otay askay hetay ayerplay aay esyay oray onay uestionqay."
|
||||
|
||||
# gui/game/screens.rpy:1135
|
||||
# gui/game/screens.rpy:1139
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#confirm"
|
||||
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#onfirmcay"
|
||||
|
||||
# gui/game/screens.rpy:1139
|
||||
# gui/game/screens.rpy:1143
|
||||
old "## Ensure other screens do not get input while this screen is displayed."
|
||||
new "## Nsureeay otheray creenssay oday otnay etgay inputay hileway histay creensay isay isplayedday."
|
||||
|
||||
# gui/game/screens.rpy:1163
|
||||
# gui/game/screens.rpy:1167
|
||||
old "Yes"
|
||||
new "Esyay"
|
||||
|
||||
# gui/game/screens.rpy:1164
|
||||
# gui/game/screens.rpy:1168
|
||||
old "No"
|
||||
new "Onay"
|
||||
|
||||
# gui/game/screens.rpy:1166
|
||||
# gui/game/screens.rpy:1170
|
||||
old "## Right-click and escape answer \"no\"."
|
||||
new "## Ightray-ickclay anday escapeay answeray \"onay\"."
|
||||
|
||||
# gui/game/screens.rpy:1193
|
||||
# gui/game/screens.rpy:1197
|
||||
old "## Skip indicator screen"
|
||||
new "## Kipsay indicatoray creensay"
|
||||
|
||||
# gui/game/screens.rpy:1195
|
||||
# gui/game/screens.rpy:1199
|
||||
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
|
||||
new "## Hetay kip_indicatorsay creensay isay isplayedday otay indicateay hattay kippingsay isay inay rogresspay."
|
||||
|
||||
# gui/game/screens.rpy:1198
|
||||
# gui/game/screens.rpy:1202
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
|
||||
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#kipsay-indicatoray"
|
||||
|
||||
# gui/game/screens.rpy:1210
|
||||
# gui/game/screens.rpy:1214
|
||||
old "Skipping"
|
||||
new "Kippingsay"
|
||||
|
||||
# gui/game/screens.rpy:1217
|
||||
# gui/game/screens.rpy:1221
|
||||
old "## This transform is used to blink the arrows one after another."
|
||||
new "## Histay ansformtray isay useday otay inkblay hetay arrowsay oneay afteray anotheray."
|
||||
|
||||
# gui/game/screens.rpy:1244
|
||||
# gui/game/screens.rpy:1248
|
||||
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
|
||||
new "## Eway avehay otay useay aay ontfay hattay ashay hetay Lackbay Ightray-Ointingpay Mallsay Riangletay yphglay inay itay."
|
||||
|
||||
# gui/game/screens.rpy:1249
|
||||
# gui/game/screens.rpy:1253
|
||||
old "## Notify screen"
|
||||
new "## Otifynay creensay"
|
||||
|
||||
# gui/game/screens.rpy:1251
|
||||
# gui/game/screens.rpy:1255
|
||||
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 "## Hetay otifynay creensay isay useday otay owshay hetay ayerplay aay essagemay. (Orfay exampleay, henway hetay amegay isay uicksavedqay oray aay creenshotsay ashay eenbay akentay.)"
|
||||
|
||||
# gui/game/screens.rpy:1254
|
||||
# gui/game/screens.rpy:1258
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
|
||||
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#otifynay-creensay"
|
||||
|
||||
# gui/game/screens.rpy:1288
|
||||
# gui/game/screens.rpy:1292
|
||||
old "## NVL screen"
|
||||
new "## Vlnay creensay"
|
||||
|
||||
# gui/game/screens.rpy:1290
|
||||
# gui/game/screens.rpy:1294
|
||||
old "## This screen is used for NVL-mode dialogue and menus."
|
||||
new "## Histay creensay isay useday orfay Vlnay-odemay ialogueday anday enusmay."
|
||||
|
||||
# gui/game/screens.rpy:1292
|
||||
# gui/game/screens.rpy:1296
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#nvl"
|
||||
new "## ttpshay://wwway.enpyray.orgay/ocday/tmlhay/creen_specialsay.tmlhay#vlnay"
|
||||
|
||||
# gui/game/screens.rpy:1303
|
||||
# gui/game/screens.rpy:1307
|
||||
old "## Displays dialogue in either a vpgrid or the vbox."
|
||||
new "## Isplaysday ialogueday inay eitheray aay pgridvay oray hetay boxvay."
|
||||
|
||||
# gui/game/screens.rpy:1316
|
||||
# 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, as it is above."
|
||||
new "## Isplaysday hetay enumay, ifay ivengay. Hetay enumay aymay ebay isplayedday incorrectlyay ifay onfigcay.arrator_menunay isay etsay otay Ruetay, asay itay isay aboveay."
|
||||
|
||||
# gui/game/screens.rpy:1346
|
||||
# gui/game/screens.rpy:1350
|
||||
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
|
||||
new "## Histay ontrolscay hetay aximummay umbernay ofay Vlnay-odemay entriesay hattay ancay ebay isplayedday atay onceay."
|
||||
|
||||
# gui/game/screens.rpy:1408
|
||||
# gui/game/screens.rpy:1412
|
||||
old "## Mobile Variants"
|
||||
new "## Obilemay Ariantsvay"
|
||||
|
||||
# gui/game/screens.rpy:1415
|
||||
# gui/game/screens.rpy:1419
|
||||
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 "## Incesay aay ousemay aymay otnay ebay resentpay, eway eplaceray hetay uickqay enumay ithway aay ersionvay hattay usesay ewerfay anday iggerbay uttonsbay hattay areay easieray otay ouchtay."
|
||||
|
||||
# gui/game/screens.rpy:1433
|
||||
# gui/game/screens.rpy:1437
|
||||
old "Menu"
|
||||
new "Enumay"
|
||||
|
||||
|
||||
@@ -0,0 +1,907 @@
|
||||
|
||||
translate polish strings:
|
||||
|
||||
# renpy/common/00accessibility.rpy:28
|
||||
old "Self-voicing disabled."
|
||||
new "Własna-wypowiedź wyłączone (self-voicing)."
|
||||
|
||||
# renpy/common/00accessibility.rpy:29
|
||||
old "Clipboard voicing enabled. "
|
||||
new "Wypowiedź schowku włączona. "
|
||||
|
||||
# renpy/common/00accessibility.rpy:30
|
||||
old "Self-voicing enabled. "
|
||||
new "Własna-wypowiedź włączona (self-voicing)."
|
||||
|
||||
# renpy/common/00accessibility.rpy:32
|
||||
old "bar"
|
||||
new "pasek"
|
||||
|
||||
# renpy/common/00accessibility.rpy:33
|
||||
old "selected"
|
||||
new "zaznaczono"
|
||||
|
||||
# renpy/common/00accessibility.rpy:34
|
||||
old "viewport"
|
||||
new "Rzutnia"
|
||||
|
||||
# renpy/common/00accessibility.rpy:35
|
||||
old "horizontal scroll"
|
||||
new "Przewijanie w poziomie"
|
||||
|
||||
# renpy/common/00accessibility.rpy:36
|
||||
old "vertical scroll"
|
||||
new "przewijanie w pionie"
|
||||
|
||||
# renpy/common/00accessibility.rpy:37
|
||||
old "activate"
|
||||
new "Włącz"
|
||||
|
||||
# renpy/common/00accessibility.rpy:38
|
||||
old "deactivate"
|
||||
new "Wyłącz"
|
||||
|
||||
# renpy/common/00accessibility.rpy:39
|
||||
old "increase"
|
||||
new "zwiększ"
|
||||
|
||||
# renpy/common/00accessibility.rpy:40
|
||||
old "decrease"
|
||||
new "zmniejsz"
|
||||
|
||||
# renpy/common/00accessibility.rpy:128
|
||||
old "Font Override"
|
||||
new "Zastąpienie czcionki"
|
||||
|
||||
# renpy/common/00accessibility.rpy:132
|
||||
old "Default"
|
||||
new "Domyślna"
|
||||
|
||||
# renpy/common/00accessibility.rpy:136
|
||||
old "DejaVu Sans"
|
||||
new "DejaVu Sans"
|
||||
|
||||
# renpy/common/00accessibility.rpy:140
|
||||
old "Opendyslexic"
|
||||
new "Opendyslexic"
|
||||
|
||||
# renpy/common/00accessibility.rpy:146
|
||||
old "Text Size Scaling"
|
||||
new "Skalowanie rozmiaru tekstu"
|
||||
|
||||
# renpy/common/00accessibility.rpy:152
|
||||
old "Reset"
|
||||
new "Reset"
|
||||
|
||||
# renpy/common/00accessibility.rpy:158
|
||||
old "Line Spacing Scaling"
|
||||
new "Skalowanie interlinii"
|
||||
|
||||
# renpy/common/00accessibility.rpy:171
|
||||
old "Self-Voicing"
|
||||
new "Własna wypowiedź"
|
||||
|
||||
# renpy/common/00accessibility.rpy:175
|
||||
old "Off"
|
||||
new "Off"
|
||||
|
||||
# renpy/common/00accessibility.rpy:179
|
||||
old "Text-to-speech"
|
||||
new "Terkst-na-mowę"
|
||||
|
||||
# renpy/common/00accessibility.rpy:183
|
||||
old "Clipboard"
|
||||
new "Schowek"
|
||||
|
||||
# renpy/common/00accessibility.rpy:187
|
||||
old "Debug"
|
||||
new "Debug"
|
||||
|
||||
# renpy/common/00accessibility.rpy:193
|
||||
old "Self-Voicing Volume Drop"
|
||||
new "Własna-wypowiedź wyciszenie"
|
||||
|
||||
# renpy/common/00accessibility.rpy:202
|
||||
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 "Opcje tego menu mają na celu poprawę dostępności. Mogą nie działać we wszystkich grach, a niektóre kombinacje opcji mogą uniemożliwić grę. To nie jest problem z grą ani silnikiem. Aby uzyskać najlepsze wyniki podczas zmiany czcionek, staraj się zachować taki sam rozmiar tekstu, jaki był pierwotnie."
|
||||
|
||||
# renpy/common/00action_file.rpy:26
|
||||
old "{#weekday}Monday"
|
||||
new "{#weekday}Poniedziałek"
|
||||
|
||||
# renpy/common/00action_file.rpy:26
|
||||
old "{#weekday}Tuesday"
|
||||
new "{#weekday}Wtorek"
|
||||
|
||||
# renpy/common/00action_file.rpy:26
|
||||
old "{#weekday}Wednesday"
|
||||
new "{#weekday}Środa"
|
||||
|
||||
# renpy/common/00action_file.rpy:26
|
||||
old "{#weekday}Thursday"
|
||||
new "{#weekday}Czwartek"
|
||||
|
||||
# renpy/common/00action_file.rpy:26
|
||||
old "{#weekday}Friday"
|
||||
new "{#weekday}Piątek"
|
||||
|
||||
# renpy/common/00action_file.rpy:26
|
||||
old "{#weekday}Saturday"
|
||||
new "{#weekday}Sobota"
|
||||
|
||||
# renpy/common/00action_file.rpy:26
|
||||
old "{#weekday}Sunday"
|
||||
new "{#weekday}Niedziela"
|
||||
|
||||
# renpy/common/00action_file.rpy:37
|
||||
old "{#weekday_short}Mon"
|
||||
new "{#weekday_short}Pn."
|
||||
|
||||
# renpy/common/00action_file.rpy:37
|
||||
old "{#weekday_short}Tue"
|
||||
new "{#weekday_short}Wt."
|
||||
|
||||
# renpy/common/00action_file.rpy:37
|
||||
old "{#weekday_short}Wed"
|
||||
new "{#weekday_short}Śr."
|
||||
|
||||
# renpy/common/00action_file.rpy:37
|
||||
old "{#weekday_short}Thu"
|
||||
new "{#weekday_short}Czw."
|
||||
|
||||
# renpy/common/00action_file.rpy:37
|
||||
old "{#weekday_short}Fri"
|
||||
new "{#weekday_short}Pt."
|
||||
|
||||
# renpy/common/00action_file.rpy:37
|
||||
old "{#weekday_short}Sat"
|
||||
new "{#weekday_short}Sb."
|
||||
|
||||
# renpy/common/00action_file.rpy:37
|
||||
old "{#weekday_short}Sun"
|
||||
new "{#weekday_short}N."
|
||||
|
||||
# renpy/common/00action_file.rpy:47
|
||||
old "{#month}January"
|
||||
new "{#month}Styczeń"
|
||||
|
||||
# renpy/common/00action_file.rpy:47
|
||||
old "{#month}February"
|
||||
new "{#month}Luty"
|
||||
|
||||
# renpy/common/00action_file.rpy:47
|
||||
old "{#month}March"
|
||||
new "{#month}Marzec"
|
||||
|
||||
# renpy/common/00action_file.rpy:47
|
||||
old "{#month}April"
|
||||
new "{#month}Kwiecień"
|
||||
|
||||
# renpy/common/00action_file.rpy:47
|
||||
old "{#month}May"
|
||||
new "{#month}Maj"
|
||||
|
||||
# renpy/common/00action_file.rpy:47
|
||||
old "{#month}June"
|
||||
new "{#month}Czerwiec"
|
||||
|
||||
# renpy/common/00action_file.rpy:47
|
||||
old "{#month}July"
|
||||
new "{#month}Lipiec"
|
||||
|
||||
# renpy/common/00action_file.rpy:47
|
||||
old "{#month}August"
|
||||
new "{#month}Sierpień"
|
||||
|
||||
# renpy/common/00action_file.rpy:47
|
||||
old "{#month}September"
|
||||
new "{#month}Wrzesień"
|
||||
|
||||
# renpy/common/00action_file.rpy:47
|
||||
old "{#month}October"
|
||||
new "{#month}Październik"
|
||||
|
||||
# renpy/common/00action_file.rpy:47
|
||||
old "{#month}November"
|
||||
new "{#month}Listopad"
|
||||
|
||||
# renpy/common/00action_file.rpy:47
|
||||
old "{#month}December"
|
||||
new "{#month}Grudzień"
|
||||
|
||||
# renpy/common/00action_file.rpy:63
|
||||
old "{#month_short}Jan"
|
||||
new "{#month_short}St."
|
||||
|
||||
# renpy/common/00action_file.rpy:63
|
||||
old "{#month_short}Feb"
|
||||
new "{#month_short}Lut."
|
||||
|
||||
# renpy/common/00action_file.rpy:63
|
||||
old "{#month_short}Mar"
|
||||
new "{#month_short}Mrz."
|
||||
|
||||
# renpy/common/00action_file.rpy:63
|
||||
old "{#month_short}Apr"
|
||||
new "{#month_short}Kw."
|
||||
|
||||
# renpy/common/00action_file.rpy:63
|
||||
old "{#month_short}May"
|
||||
new "{#month_short}Maj"
|
||||
|
||||
# renpy/common/00action_file.rpy:63
|
||||
old "{#month_short}Jun"
|
||||
new "{#month_short}Cz."
|
||||
|
||||
# renpy/common/00action_file.rpy:63
|
||||
old "{#month_short}Jul"
|
||||
new "{#month_short}Lip."
|
||||
|
||||
# renpy/common/00action_file.rpy:63
|
||||
old "{#month_short}Aug"
|
||||
new "{#month_short}Sier."
|
||||
|
||||
# renpy/common/00action_file.rpy:63
|
||||
old "{#month_short}Sep"
|
||||
new "{#month_short}Wrz."
|
||||
|
||||
# renpy/common/00action_file.rpy:63
|
||||
old "{#month_short}Oct"
|
||||
new "{#month_short}Paź."
|
||||
|
||||
# renpy/common/00action_file.rpy:63
|
||||
old "{#month_short}Nov"
|
||||
new "{#month_short}Lis."
|
||||
|
||||
# renpy/common/00action_file.rpy:63
|
||||
old "{#month_short}Dec"
|
||||
new "{#month_short}Gr."
|
||||
|
||||
# renpy/common/00action_file.rpy:250
|
||||
old "%b %d, %H:%M"
|
||||
new "%b %d, %H:%M"
|
||||
|
||||
# renpy/common/00action_file.rpy:363
|
||||
old "Save slot %s: [text]"
|
||||
new "Zapisz plik %s: [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:444
|
||||
old "Load slot %s: [text]"
|
||||
new "Wczytaj plik %s: [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:497
|
||||
old "Delete slot [text]"
|
||||
new "Usuń plik [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:576
|
||||
old "File page auto"
|
||||
new "Zapis automatyczny"
|
||||
|
||||
# renpy/common/00action_file.rpy:578
|
||||
old "File page quick"
|
||||
new "Zapis szybki"
|
||||
|
||||
# renpy/common/00action_file.rpy:580
|
||||
old "File page [text]"
|
||||
new "Pliki [text]"
|
||||
|
||||
# renpy/common/00action_file.rpy:779
|
||||
old "Next file page."
|
||||
new "Następna strona."
|
||||
|
||||
# renpy/common/00action_file.rpy:851
|
||||
old "Previous file page."
|
||||
new "Poprzednia strona."
|
||||
|
||||
# renpy/common/00action_file.rpy:912
|
||||
old "Quick save complete."
|
||||
new "Wykonano szybki zapis."
|
||||
|
||||
# renpy/common/00action_file.rpy:930
|
||||
old "Quick save."
|
||||
new "Szybki zapis."
|
||||
|
||||
# renpy/common/00action_file.rpy:949
|
||||
old "Quick load."
|
||||
new "Szybkie wczytanie."
|
||||
|
||||
# renpy/common/00action_other.rpy:375
|
||||
old "Language [text]"
|
||||
new "Język [text]"
|
||||
|
||||
# renpy/common/00director.rpy:708
|
||||
old "The interactive director is not enabled here."
|
||||
new "Interakcja nie jest tutaj dostępna."
|
||||
|
||||
# renpy/common/00director.rpy:1481
|
||||
old "⬆"
|
||||
new "⬆"
|
||||
|
||||
# renpy/common/00director.rpy:1487
|
||||
old "⬇"
|
||||
new "⬆"
|
||||
|
||||
# renpy/common/00director.rpy:1551
|
||||
old "Done"
|
||||
new "Gotowe"
|
||||
|
||||
# renpy/common/00director.rpy:1561
|
||||
old "(statement)"
|
||||
new "(statement)"
|
||||
|
||||
# renpy/common/00director.rpy:1562
|
||||
old "(tag)"
|
||||
new "(tag)"
|
||||
|
||||
# renpy/common/00director.rpy:1563
|
||||
old "(attributes)"
|
||||
new "(attributes)"
|
||||
|
||||
# renpy/common/00director.rpy:1564
|
||||
old "(transform)"
|
||||
new "(transform)"
|
||||
|
||||
# renpy/common/00director.rpy:1589
|
||||
old "(transition)"
|
||||
new "(transition)"
|
||||
|
||||
# renpy/common/00director.rpy:1601
|
||||
old "(channel)"
|
||||
new "(channel)"
|
||||
|
||||
# renpy/common/00director.rpy:1602
|
||||
old "(filename)"
|
||||
new "(filename)"
|
||||
|
||||
# renpy/common/00director.rpy:1631
|
||||
old "Change"
|
||||
new "Zmiana"
|
||||
|
||||
# renpy/common/00director.rpy:1633
|
||||
old "Add"
|
||||
new "Dodaj"
|
||||
|
||||
# renpy/common/00director.rpy:1636
|
||||
old "Cancel"
|
||||
new "Anuluj"
|
||||
|
||||
# renpy/common/00director.rpy:1639
|
||||
old "Remove"
|
||||
new "Usuń"
|
||||
|
||||
# renpy/common/00director.rpy:1674
|
||||
old "Statement:"
|
||||
new "Komunikat:"
|
||||
|
||||
# renpy/common/00director.rpy:1695
|
||||
old "Tag:"
|
||||
new "Tag:"
|
||||
|
||||
# renpy/common/00director.rpy:1711
|
||||
old "Attributes:"
|
||||
new "Atrybuty:"
|
||||
|
||||
# renpy/common/00director.rpy:1729
|
||||
old "Transforms:"
|
||||
new "Przekształcenia:"
|
||||
|
||||
# renpy/common/00director.rpy:1748
|
||||
old "Behind:"
|
||||
new "Za:"
|
||||
|
||||
# renpy/common/00director.rpy:1767
|
||||
old "Transition:"
|
||||
new "Przejście:"
|
||||
|
||||
# renpy/common/00director.rpy:1785
|
||||
old "Channel:"
|
||||
new "Kanał:"
|
||||
|
||||
# renpy/common/00director.rpy:1803
|
||||
old "Audio Filename:"
|
||||
new "Nazwa pliku audio:"
|
||||
|
||||
# renpy/common/00gui.rpy:384
|
||||
old "Are you sure?"
|
||||
new "Czy na pewno?"
|
||||
|
||||
# renpy/common/00gui.rpy:385
|
||||
old "Are you sure you want to delete this save?"
|
||||
new "Czy na pewno chcesz usunąć ten zapis?"
|
||||
|
||||
# renpy/common/00gui.rpy:386
|
||||
old "Are you sure you want to overwrite your save?"
|
||||
new "Czy na pewno chcesz nadpisać twój zapis?"
|
||||
|
||||
# renpy/common/00gui.rpy:387
|
||||
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
|
||||
new "Wczytywanie spowoduje utratę niezapisanego progresu.\nCzy na pewno chcesz to zrobić?"
|
||||
|
||||
# renpy/common/00gui.rpy:388
|
||||
old "Are you sure you want to quit?"
|
||||
new "Czy na pewno chcesz wyjść?"
|
||||
|
||||
# renpy/common/00gui.rpy:389
|
||||
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
|
||||
new "Czy na pewno chcesz wrócić do menu głównego?\nSpowoduje to utratę niezapisanych postępów."
|
||||
|
||||
# renpy/common/00gui.rpy:390
|
||||
old "Are you sure you want to end the replay?"
|
||||
new "Czy na pewno chcesz zakończyć powtórkę?"
|
||||
|
||||
# renpy/common/00gui.rpy:391
|
||||
old "Are you sure you want to begin skipping?"
|
||||
new "Czy na pewno chcesz zacząć pomijać?"
|
||||
|
||||
# renpy/common/00gui.rpy:392
|
||||
old "Are you sure you want to skip to the next choice?"
|
||||
new "Czy na pewno chcesz pominąć do następnego wyboru?"
|
||||
|
||||
# renpy/common/00gui.rpy:393
|
||||
old "Are you sure you want to skip unseen dialogue to the next choice?"
|
||||
new "Czy na pewno chcesz pominąć nie spotkane dialogi do następnego wyboru?"
|
||||
|
||||
# renpy/common/00keymap.rpy:306
|
||||
old "Failed to save screenshot as %s."
|
||||
new "Nie udało się zapisać zrzutu ekranu jako %s."
|
||||
|
||||
# renpy/common/00keymap.rpy:318
|
||||
old "Saved screenshot as %s."
|
||||
new "Zapisano zrzut ekranu jako %s."
|
||||
|
||||
# renpy/common/00library.rpy:195
|
||||
old "Skip Mode"
|
||||
new "Tryb pomijania"
|
||||
|
||||
# renpy/common/00library.rpy:281
|
||||
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 "Ten program zawiera wolne oprogramowanie na wielu licencjach, w tym Licencji MIT i GNU Lesser General Public License. Pełną listę oprogramowania, w tym linki do pełnego kodu źródłowego, można znaleźć {a=https://www.renpy.org/l/license}tutaj{/a}."
|
||||
|
||||
# renpy/common/00preferences.rpy:247
|
||||
old "display"
|
||||
new "wyświetl"
|
||||
|
||||
# renpy/common/00preferences.rpy:259
|
||||
old "transitions"
|
||||
new "przejście"
|
||||
|
||||
# renpy/common/00preferences.rpy:268
|
||||
old "skip transitions"
|
||||
new "pomiń przejście"
|
||||
|
||||
# renpy/common/00preferences.rpy:270
|
||||
old "video sprites"
|
||||
new "sprity wideo"
|
||||
|
||||
# renpy/common/00preferences.rpy:279
|
||||
old "show empty window"
|
||||
new "Wyświetl puste okno"
|
||||
|
||||
# renpy/common/00preferences.rpy:288
|
||||
old "text speed"
|
||||
new "szybkość tekstu"
|
||||
|
||||
# renpy/common/00preferences.rpy:296
|
||||
old "joystick"
|
||||
new "joystick"
|
||||
|
||||
# renpy/common/00preferences.rpy:296
|
||||
old "joystick..."
|
||||
new "joystick..."
|
||||
|
||||
# renpy/common/00preferences.rpy:303
|
||||
old "skip"
|
||||
new "pomiń"
|
||||
|
||||
# renpy/common/00preferences.rpy:306
|
||||
old "skip unseen [text]"
|
||||
new "pomiń nieprzeczytane [text]"
|
||||
|
||||
# renpy/common/00preferences.rpy:311
|
||||
old "skip unseen text"
|
||||
new "pomiń nieprzeczytany tekst"
|
||||
|
||||
# renpy/common/00preferences.rpy:313
|
||||
old "begin skipping"
|
||||
new "rozpocznij pomijanie"
|
||||
|
||||
# renpy/common/00preferences.rpy:317
|
||||
old "after choices"
|
||||
new "po wyborze"
|
||||
|
||||
# renpy/common/00preferences.rpy:324
|
||||
old "skip after choices"
|
||||
new "pomiń po wyborach"
|
||||
|
||||
# renpy/common/00preferences.rpy:326
|
||||
old "auto-forward time"
|
||||
new "auto-przewijanie czas"
|
||||
|
||||
# renpy/common/00preferences.rpy:340
|
||||
old "auto-forward"
|
||||
new "auto-przewijanie"
|
||||
|
||||
# renpy/common/00preferences.rpy:347
|
||||
old "Auto forward"
|
||||
new "Auto przewijanie"
|
||||
|
||||
# renpy/common/00preferences.rpy:350
|
||||
old "auto-forward after click"
|
||||
new "auto-przewijanie po naciśnięciu"
|
||||
|
||||
# renpy/common/00preferences.rpy:359
|
||||
old "automatic move"
|
||||
new "ruch automatyczny"
|
||||
|
||||
# renpy/common/00preferences.rpy:368
|
||||
old "wait for voice"
|
||||
new "czekaj na dźwięk"
|
||||
|
||||
# renpy/common/00preferences.rpy:377
|
||||
old "voice sustain"
|
||||
new "podtrzymywanie dźwięku"
|
||||
|
||||
# renpy/common/00preferences.rpy:386
|
||||
old "self voicing"
|
||||
new "własna wypowiedź"
|
||||
|
||||
# renpy/common/00preferences.rpy:395
|
||||
old "self voicing volume drop"
|
||||
new "własna wypowiedź wyciszenie"
|
||||
|
||||
# renpy/common/00preferences.rpy:403
|
||||
old "clipboard voicing"
|
||||
new "wypowiedź schowku"
|
||||
|
||||
# renpy/common/00preferences.rpy:412
|
||||
old "debug voicing"
|
||||
new "wypowiedź debug"
|
||||
|
||||
# renpy/common/00preferences.rpy:421
|
||||
old "emphasize audio"
|
||||
new "uwydatnij dźwięk"
|
||||
|
||||
# renpy/common/00preferences.rpy:430
|
||||
old "rollback side"
|
||||
new "strona cofania"
|
||||
|
||||
# renpy/common/00preferences.rpy:440
|
||||
old "gl powersave"
|
||||
new "gl powersave"
|
||||
|
||||
# renpy/common/00preferences.rpy:446
|
||||
old "gl framerate"
|
||||
new "gl framerate"
|
||||
|
||||
# renpy/common/00preferences.rpy:449
|
||||
old "gl tearing"
|
||||
new "gl tearing"
|
||||
|
||||
# renpy/common/00preferences.rpy:452
|
||||
old "font transform"
|
||||
new "transformacja czcionki"
|
||||
|
||||
# renpy/common/00preferences.rpy:455
|
||||
old "font size"
|
||||
new "rozmiar czcionki"
|
||||
|
||||
# renpy/common/00preferences.rpy:463
|
||||
old "font line spacing"
|
||||
new "interlinia czcionki"
|
||||
|
||||
# renpy/common/00preferences.rpy:471
|
||||
old "system cursor"
|
||||
new "kursor systemu"
|
||||
|
||||
# renpy/common/00preferences.rpy:480
|
||||
old "renderer menu"
|
||||
new "menu renderowania"
|
||||
|
||||
# renpy/common/00preferences.rpy:483
|
||||
old "accessibility menu"
|
||||
new "menu dostępu"
|
||||
|
||||
# renpy/common/00preferences.rpy:496
|
||||
old "music volume"
|
||||
new "głośność muzyki"
|
||||
|
||||
# renpy/common/00preferences.rpy:497
|
||||
old "sound volume"
|
||||
new "głośność dźwięku"
|
||||
|
||||
# renpy/common/00preferences.rpy:498
|
||||
old "voice volume"
|
||||
new "głośność głosu"
|
||||
|
||||
# renpy/common/00preferences.rpy:499
|
||||
old "mute music"
|
||||
new "wycisz muzykę"
|
||||
|
||||
# renpy/common/00preferences.rpy:500
|
||||
old "mute sound"
|
||||
new "wycisz dźwięk"
|
||||
|
||||
# renpy/common/00preferences.rpy:501
|
||||
old "mute voice"
|
||||
new "wycisz głos"
|
||||
|
||||
# renpy/common/00preferences.rpy:502
|
||||
old "mute all"
|
||||
new "wycisz wszystko"
|
||||
|
||||
# renpy/common/00preferences.rpy:583
|
||||
old "Clipboard voicing enabled. Press 'shift+C' to disable."
|
||||
new "Dźwięki w schowku włączone. Naciśnij 'shift+C', aby wyłączyć"
|
||||
|
||||
# renpy/common/00preferences.rpy:585
|
||||
old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
|
||||
new "Własna-wypowiedź powiedziałaby \"[renpy.display.tts.last]\". Naciśnij 'alt+shift+V', aby wyłączyć."
|
||||
|
||||
# renpy/common/00preferences.rpy:587
|
||||
old "Self-voicing enabled. Press 'v' to disable."
|
||||
new "Własna-wypowiedź włączona. Naciśnij 'v' aby wyłączyć."
|
||||
|
||||
# renpy/common/_compat/gamemenu.rpym:198
|
||||
old "Empty Slot."
|
||||
new "Puste"
|
||||
|
||||
# renpy/common/_compat/gamemenu.rpym:355
|
||||
old "Previous"
|
||||
new "Poprzednie"
|
||||
|
||||
# renpy/common/_compat/gamemenu.rpym:362
|
||||
old "Next"
|
||||
new "Następne"
|
||||
|
||||
# renpy/common/_compat/preferences.rpym:428
|
||||
old "Joystick Mapping"
|
||||
new "Mapowanie joysticka"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:38
|
||||
old "Developer Menu"
|
||||
new "Menu developera"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:43
|
||||
old "Interactive Director (D)"
|
||||
new "Reżyser interaktywny (D)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:45
|
||||
old "Reload Game (Shift+R)"
|
||||
new "Wczytaj grę {Shift+R)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:47
|
||||
old "Console (Shift+O)"
|
||||
new "Konsola (Shift+O)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:49
|
||||
old "Variable Viewer"
|
||||
new "Wyswietl zmienne"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:51
|
||||
old "Image Location Picker"
|
||||
new "Selektor lokalizacji obrazu"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:53
|
||||
old "Filename List"
|
||||
new "Lista nazwy plików"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:57
|
||||
old "Show Image Load Log (F4)"
|
||||
new "Pokaż dziennik wczytanych obrazów (F4)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:60
|
||||
old "Hide Image Load Log (F4)"
|
||||
new "Schowaj dziennik wczytanych obrazów (F4)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:63
|
||||
old "Image Attributes"
|
||||
new "Atrybuty obrazu"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:90
|
||||
old "[name] [attributes] (hidden)"
|
||||
new "[name] [attributes] (hidden)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:94
|
||||
old "[name] [attributes]"
|
||||
new "[name] [attributes]"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:143
|
||||
old "Nothing to inspect."
|
||||
new "Nic do sprawdzenia"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:154
|
||||
old "Hide deleted"
|
||||
new "Schowaj usunięte"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:154
|
||||
old "Show deleted"
|
||||
new "Wyświetl usunięte"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:278
|
||||
old "Return to the developer menu"
|
||||
new "Powrót do menu developera"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:443
|
||||
old "Rectangle: %r"
|
||||
new "Prostokąt: %r"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:448
|
||||
old "Mouse position: %r"
|
||||
new "Położenie myszki: %r"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:453
|
||||
old "Right-click or escape to quit."
|
||||
new "Prawy przycisk myszy lub Escape, aby wyjść."
|
||||
|
||||
# renpy/common/_developer/developer.rpym:485
|
||||
old "Rectangle copied to clipboard."
|
||||
new "Prostokąt skopiowany do schowka."
|
||||
|
||||
# renpy/common/_developer/developer.rpym:488
|
||||
old "Position copied to clipboard."
|
||||
new "Pozycja skopiowana do schowka."
|
||||
|
||||
# renpy/common/_developer/developer.rpym:506
|
||||
old "Type to filter: "
|
||||
new "Typ do filtrowania:"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:631
|
||||
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
|
||||
new "Tekstury: [tex_count] ([tex_size_mb:.1f] MB"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:635
|
||||
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
new "Pamięć cache obrazów: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:645
|
||||
old "✔ "
|
||||
new "✔ "
|
||||
|
||||
# renpy/common/_developer/developer.rpym:648
|
||||
old "✘ "
|
||||
new "✘ "
|
||||
|
||||
# renpy/common/_developer/developer.rpym:653
|
||||
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}✔ przewidywany obraz (good){/color}\n{color=#fcc}✘ nieprzewidziany obraz (bad){/color}\n{color=#fff}Przeciągnij, aby przenieść."
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:38
|
||||
old "Displayable Inspector"
|
||||
new "Wyświetlany inspektor"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:61
|
||||
old "Size"
|
||||
new "Rozmiar"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:65
|
||||
old "Style"
|
||||
new "Styl"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:71
|
||||
old "Location"
|
||||
new "Lokalizacja"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:122
|
||||
old "Inspecting Styles of [displayable_name!q]"
|
||||
new "Sprawdzanie stylów [displayable_name!q]"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:139
|
||||
old "displayable:"
|
||||
new "wyświetlenie:"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:145
|
||||
old " (no properties affect the displayable)"
|
||||
new " (no properties affect the displayable)"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:147
|
||||
old " (default properties omitted)"
|
||||
new " (default properties omitted)"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:185
|
||||
old "<repr() failed>"
|
||||
new "<repr() failed>"
|
||||
|
||||
# renpy/common/_layout/classic_load_save.rpym:170
|
||||
old "a"
|
||||
new "a"
|
||||
|
||||
# renpy/common/_layout/classic_load_save.rpym:179
|
||||
old "q"
|
||||
new "q"
|
||||
|
||||
# renpy/common/00iap.rpy:219
|
||||
old "Contacting App Store\nPlease Wait..."
|
||||
new "Kontakt z App Store\nProszę czekać..."
|
||||
|
||||
# renpy/common/00updater.rpy:374
|
||||
old "The Ren'Py Updater is not supported on mobile devices."
|
||||
new "Aktualizator Ren'Py nie wspiera urządzenia mobilne."
|
||||
|
||||
# renpy/common/00updater.rpy:496
|
||||
old "An error is being simulated."
|
||||
new "Przebieg symulacji błędu."
|
||||
|
||||
# renpy/common/00updater.rpy:680
|
||||
old "Either this project does not support updating, or the update status file was deleted."
|
||||
new "Albo ten projekt nie obsługuje aktualizacji, albo plik stanu aktualizacji został usunięty."
|
||||
|
||||
# renpy/common/00updater.rpy:694
|
||||
old "This account does not have permission to perform an update."
|
||||
new "To konto nie ma uprawnień do przeprowadzenia aktualizacji."
|
||||
|
||||
# renpy/common/00updater.rpy:697
|
||||
old "This account does not have permission to write the update log."
|
||||
new "To konto nie ma uprawnień do zapisywania dziennika aktualizacji."
|
||||
|
||||
# renpy/common/00updater.rpy:724
|
||||
old "Could not verify update signature."
|
||||
new "Nie można zweryfikować podpisu aktualizacji."
|
||||
|
||||
# renpy/common/00updater.rpy:995
|
||||
old "The update file was not downloaded."
|
||||
new "Aktualizacja nie została pobrana."
|
||||
|
||||
# renpy/common/00updater.rpy:1013
|
||||
old "The update file does not have the correct digest - it may have been corrupted."
|
||||
new "Plik aktualizacji nie zawiera poprawnego skrótu - mógł być uszkodzony."
|
||||
|
||||
# renpy/common/00updater.rpy:1067
|
||||
old "While unpacking {}, unknown type {}."
|
||||
new "Podczas rozpakowywania {}, niewiadomy rodzaj {}."
|
||||
|
||||
# renpy/common/00updater.rpy:1433
|
||||
old "Updater"
|
||||
new "Aktualizator"
|
||||
|
||||
# renpy/common/00updater.rpy:1444
|
||||
old "This program is up to date."
|
||||
new "Program jest aktualny."
|
||||
|
||||
# renpy/common/00updater.rpy:1446
|
||||
old "[u.version] is available. Do you want to install it?"
|
||||
new "Wersja [u.version] jest dostępna. Czy chcesz ją zainstalować? "
|
||||
|
||||
# renpy/common/00updater.rpy:1448
|
||||
old "Preparing to download the updates."
|
||||
new "Przygotowanie do pobrania aktualizacji."
|
||||
|
||||
# renpy/common/00updater.rpy:1450
|
||||
old "Downloading the updates."
|
||||
new "Pobieranie aktualizacji."
|
||||
|
||||
# renpy/common/00updater.rpy:1452
|
||||
old "Unpacking the updates."
|
||||
new "Rozpakowywanie aktualizacji."
|
||||
|
||||
# renpy/common/00updater.rpy:1456
|
||||
old "The updates have been installed. The program will restart."
|
||||
new "Aktualizacja została zainstalowana. Program zostanie uruchomiony ponownie."
|
||||
|
||||
# renpy/common/00updater.rpy:1458
|
||||
old "The updates have been installed."
|
||||
new "Aktualizacja została zainstalowana"
|
||||
|
||||
# renpy/common/00updater.rpy:1460
|
||||
old "The updates were cancelled."
|
||||
new "Aktualizacja została anulowana"
|
||||
|
||||
# renpy/common/00gallery.rpy:590
|
||||
old "Image [index] of [count] locked."
|
||||
new "Zablokowane obrazy: [index] z [count]."
|
||||
|
||||
# renpy/common/00gallery.rpy:610
|
||||
old "prev"
|
||||
new "poprzednie"
|
||||
|
||||
# renpy/common/00gallery.rpy:611
|
||||
old "next"
|
||||
new "następne"
|
||||
|
||||
# renpy/common/00gallery.rpy:612
|
||||
old "slideshow"
|
||||
new "pokaz slajdów"
|
||||
|
||||
# renpy/common/00gallery.rpy:613
|
||||
old "return"
|
||||
new "powrót"
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
|
||||
translate polish strings:
|
||||
|
||||
# renpy/common/00console.rpy:492
|
||||
old "Press <esc> to exit console. Type help for help.\n"
|
||||
new "Naciśnij <esc> aby wyjść z konsoli. Wpisz 'help', aby wyświetlić pomoc."
|
||||
|
||||
# renpy/common/00console.rpy:496
|
||||
old "Ren'Py script enabled."
|
||||
new "Ren'Py skrypty - włączone (ON)."
|
||||
|
||||
# renpy/common/00console.rpy:498
|
||||
old "Ren'Py script disabled."
|
||||
new "Ren'Py skrypty - wyłączone (OFF)."
|
||||
|
||||
# renpy/common/00console.rpy:745
|
||||
old "help: show this help"
|
||||
new "help: wyświetla tę pomoc"
|
||||
|
||||
# renpy/common/00console.rpy:750
|
||||
old "commands:\n"
|
||||
new "commands:\n"
|
||||
|
||||
# renpy/common/00console.rpy:760
|
||||
old " <renpy script statement>: run the statement\n"
|
||||
new " <renpy script statement>: uruchomienie twierdzenia\n"
|
||||
|
||||
# renpy/common/00console.rpy:762
|
||||
old " <python expression or statement>: run the expression or statement"
|
||||
new " <python expression or statement>: uruchomienie wyrażenia lub twierdzenia"
|
||||
|
||||
# renpy/common/00console.rpy:770
|
||||
old "clear: clear the console history"
|
||||
new "clear: czyści historię w konsoli"
|
||||
|
||||
# renpy/common/00console.rpy:774
|
||||
old "exit: exit the console"
|
||||
new "exit: zamknięcie konsoli"
|
||||
|
||||
# renpy/common/00console.rpy:782
|
||||
old "load <slot>: loads the game from slot"
|
||||
new "load <slot>: wczytanie gry z stasnu (slot)"
|
||||
|
||||
# renpy/common/00console.rpy:795
|
||||
old "save <slot>: saves the game in slot"
|
||||
new "save <slot>: zapisanie gry do stanu (slot)"
|
||||
|
||||
# renpy/common/00console.rpy:806
|
||||
old "reload: reloads the game, refreshing the scripts"
|
||||
new "reload: ponownie ładuje grę, odświeżenie skryptów"
|
||||
|
||||
# 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>: obejżyj wyrażenie Pythona\n watch short: reprezentacja wyrażeń jest krótka (domyślnie)\n watch long: reprezentacja wyrażeń jest taka jaka jest"
|
||||
|
||||
# renpy/common/00console.rpy:849
|
||||
old "unwatch <expression>: stop watching an expression"
|
||||
new "unwatch <expression>: zatrzymanie reprezentacji"
|
||||
|
||||
# renpy/common/00console.rpy:884
|
||||
old "unwatchall: stop watching all expressions"
|
||||
new "unwatchall: zatrzymanie wszystkich reprezentacji"
|
||||
|
||||
# renpy/common/00console.rpy:901
|
||||
old "jump <label>: jumps to label"
|
||||
new "jump <label>: przejście do etykiety"
|
||||
|
||||
# renpy/common/00console.rpy:917
|
||||
old "short: Shorten the representation of objects on the console (default)."
|
||||
new "short: skróć reprezentację obiektów na konsoli (domyślnie)."
|
||||
|
||||
# renpy/common/00console.rpy:921
|
||||
old "long: Print the full representation of objects on the console."
|
||||
new "long: wyświetl pełną reprezentację obiektów na konsoli."
|
||||
|
||||
# renpy/common/00console.rpy:925
|
||||
old "escape: Enables escaping of unicode symbols in unicode strings."
|
||||
new "escape: umożliwia ucieczkę symboli Unicode w ciągach Unicode."
|
||||
|
||||
# renpy/common/00console.rpy:929
|
||||
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
|
||||
new "unescape: uniemożliwia ucieczkę symboli Unicode w ciągach Unicode i wyświetla je bez zmian (domyślnie)."
|
||||
|
||||
@@ -0,0 +1,219 @@
|
||||
|
||||
translate polish strings:
|
||||
|
||||
# renpy/common/00gltest.rpy:89
|
||||
old "Renderer"
|
||||
new "Renderer"
|
||||
|
||||
# renpy/common/00gltest.rpy:93
|
||||
old "Automatically Choose"
|
||||
new "Wybór automatyczny"
|
||||
|
||||
# renpy/common/00gltest.rpy:100
|
||||
old "Force GL Renderer"
|
||||
new "Wymuś Renderer GL"
|
||||
|
||||
# renpy/common/00gltest.rpy:105
|
||||
old "Force ANGLE Renderer"
|
||||
new "Wymuś Renderer ANGLE"
|
||||
|
||||
# renpy/common/00gltest.rpy:110
|
||||
old "Force GLES Renderer"
|
||||
new "Wymuś Renderer GLES"
|
||||
|
||||
# renpy/common/00gltest.rpy:116
|
||||
old "Force GL2 Renderer"
|
||||
new "Wymuś Renderer GL2"
|
||||
|
||||
# renpy/common/00gltest.rpy:121
|
||||
old "Force ANGLE2 Renderer"
|
||||
new "Wymuś Renderer ANGLE2"
|
||||
|
||||
# renpy/common/00gltest.rpy:126
|
||||
old "Force GLES2 Renderer"
|
||||
new "Wymuś Renderer GLES2"
|
||||
|
||||
# renpy/common/00gltest.rpy:136
|
||||
old "Enable (No Blocklist)"
|
||||
new "Włącz (brak zablokowanych)"
|
||||
|
||||
# renpy/common/00gltest.rpy:140
|
||||
old "Enable"
|
||||
new "Włącz"
|
||||
|
||||
# renpy/common/00gltest.rpy:159
|
||||
old "Powersave"
|
||||
new "Oszczędzanie energii"
|
||||
|
||||
# renpy/common/00gltest.rpy:173
|
||||
old "Framerate"
|
||||
new "Częstotliwość klatek"
|
||||
|
||||
# renpy/common/00gltest.rpy:177
|
||||
old "Screen"
|
||||
new "Ekran"
|
||||
|
||||
# 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 "Rozdzierający"
|
||||
|
||||
# renpy/common/00gltest.rpy:207
|
||||
old "Changes will take effect the next time this program is run."
|
||||
new "Wprowadzone zmiany będą zastosowane przy następnym uruchomieniu programu."
|
||||
|
||||
# renpy/common/00gltest.rpy:242
|
||||
old "Performance Warning"
|
||||
new "Ostrzeżenie wydajności"
|
||||
|
||||
# renpy/common/00gltest.rpy:247
|
||||
old "This computer is using software rendering."
|
||||
new "Komputer używa renderowania programowego."
|
||||
|
||||
# renpy/common/00gltest.rpy:249
|
||||
old "This game requires use of GL2 that can't be initialised."
|
||||
new "Ta gra wymaga użycia GL2, którego nie można zainicjować."
|
||||
|
||||
# renpy/common/00gltest.rpy:251
|
||||
old "This computer has a problem displaying graphics: [problem]."
|
||||
new "Komputer posiada problem przy wyświetleniu grafiki: [problem]."
|
||||
|
||||
# renpy/common/00gltest.rpy:255
|
||||
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
|
||||
new "Sterowniki graficzne mogą być nieaktualne bądź nie działają poprawnie. Może to prowadzić do spowolnień lub nieprawidłowego wyświetlenia grafiki."
|
||||
|
||||
# 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."
|
||||
new "Plik {a=edit:1:log.txt}log.txt{/a} może zawierać informacje, które pomogą Ci określić, co jest nie tak z Twoim komputerem."
|
||||
|
||||
# renpy/common/00gltest.rpy:264
|
||||
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
|
||||
new "Więcej informacji o tym, jak to naprawić, można znaleźć w {a=[url]}documentation{/a}."
|
||||
|
||||
# renpy/common/00gltest.rpy:269
|
||||
old "Continue, Show this warning again"
|
||||
new "Kontynuuj (jakby co, ponownie pokaż to ostrzeżenie)"
|
||||
|
||||
# renpy/common/00gltest.rpy:273
|
||||
old "Continue, Don't show warning again"
|
||||
new "Kontynuuj (i nie pokazuj tego ostrzeżenia ponownie)"
|
||||
|
||||
# renpy/common/00gltest.rpy:281
|
||||
old "Change render options"
|
||||
new "Zmień opcję renderowania"
|
||||
|
||||
# renpy/common/00gamepad.rpy:32
|
||||
old "Select Gamepad to Calibrate"
|
||||
new "Wybierz gamepada do kalibracji"
|
||||
|
||||
# renpy/common/00gamepad.rpy:35
|
||||
old "No Gamepads Available"
|
||||
new "Brak gamepada"
|
||||
|
||||
# renpy/common/00gamepad.rpy:54
|
||||
old "Calibrating [name] ([i]/[total])"
|
||||
new "Kalibrowanie [name] ([i]/[total])"
|
||||
|
||||
# renpy/common/00gamepad.rpy:58
|
||||
old "Press or move the '[control!s]' [kind]."
|
||||
new "Naciśnij lub rusz '[control!s]' [kind]."
|
||||
|
||||
# renpy/common/00gamepad.rpy:68
|
||||
old "Skip (A)"
|
||||
new "Pomiń (A)"
|
||||
|
||||
# renpy/common/00gamepad.rpy:71
|
||||
old "Back (B)"
|
||||
new "Wstecz (B)"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:542
|
||||
old "Open"
|
||||
new "Otwórz"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:544
|
||||
old "Opens the traceback.txt file in a text editor."
|
||||
new "Otwórz plik traceback.txt w edytorze tekstu."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:546
|
||||
old "Copy BBCode"
|
||||
new "Kopiuj BBCode (Forum)"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:548
|
||||
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
|
||||
new "Kopiuje plik traceback.txt do schowka jako BBcode dla forum, jak https://lemmasoft.renai.us/."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:550
|
||||
old "Copy Markdown"
|
||||
new "Kopiuj Markdown (Discord)"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:552
|
||||
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
|
||||
new "Kopiuje plik traceback.txt do schowka jako Markdown (format kodu) dla Discordów."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:581
|
||||
old "An exception has occurred."
|
||||
new "Wystąpił wyjątek"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:604
|
||||
old "Rollback"
|
||||
new "Cofnij"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:606
|
||||
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
|
||||
new "Próba cofnięcia do wcześniejszego czasu, co pozwala zapisać lub wybrać inny wybór."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:609
|
||||
old "Ignore"
|
||||
new "Ignoruj"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:613
|
||||
old "Ignores the exception, allowing you to continue."
|
||||
new "Ignoruje wyjątek, umożliwiając kontynuowanie."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:615
|
||||
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
|
||||
new "Ignoruje wyjątek, umożliwiając kontynuowanie. Prowadzi to często do dodatkowych błędów."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:619
|
||||
old "Reload"
|
||||
new "Przeładuj"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:621
|
||||
old "Reloads the game from disk, saving and restoring game state if possible."
|
||||
new "Ponownie wczytuje grę z dysku, zapisując i przywracając stan gry, jeśli to możliwe"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:624
|
||||
old "Console"
|
||||
new "Konsola"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:626
|
||||
old "Opens a console to allow debugging the problem."
|
||||
new "Otwiera konsolę umożliwiającą debugowanie problemu"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:639
|
||||
old "Quits the game."
|
||||
new "Zamknięcie gry."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:660
|
||||
old "Parsing the script failed."
|
||||
new "Przetwarzanie skryptu nie powiodło się."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:686
|
||||
old "Opens the errors.txt file in a text editor."
|
||||
new "Otwiera plik errors.txt w edytorze tekstu."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:690
|
||||
old "Copies the errors.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
|
||||
new "Kopiowanie pliku error.txt do schowka jako BBcode dla forum, jak https://lemmasoft.renai.us/."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:694
|
||||
old "Copies the errors.txt file to the clipboard as Markdown for Discord."
|
||||
new "Kopiuje plik error.txt do schowka jako Markdown (format kodu) dla Discordów."
|
||||
|
||||
@@ -0,0 +1,435 @@
|
||||
|
||||
translate polish strings:
|
||||
|
||||
# gui/game/gui.rpy:2
|
||||
old "## Initialization"
|
||||
new "## Inicjalizacja"
|
||||
|
||||
# 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."
|
||||
new "## Wyrażenie przesunięcia początkowego powoduje, że wyrażenie inicjalizajci w tym pliku są uruchamiane przed instrukcjami w jakimkolwiek innym pliku."
|
||||
|
||||
# gui/game/gui.rpy:9
|
||||
old "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
|
||||
new "## Wywołanie gui.init zresetuje style do rozsądnych wartości domyślnych oraz ustawia szerokość i wysokość gry."
|
||||
|
||||
# gui/game/gui.rpy:17
|
||||
old "## GUI Configuration Variables"
|
||||
new "## Zmienne konfiguracyjne GUI"
|
||||
|
||||
# gui/game/gui.rpy:21
|
||||
old "## Colors"
|
||||
new "## Kolory"
|
||||
|
||||
# gui/game/gui.rpy:23
|
||||
old "## The colors of text in the interface."
|
||||
new "## Kolory tekstu w interfejsie."
|
||||
|
||||
# gui/game/gui.rpy:25
|
||||
old "## An accent color used throughout the interface to label and highlight text."
|
||||
new "## Kolor akcentujący używany w całym interfejsie do oznaczania i wyróżniania tekstu."
|
||||
|
||||
# gui/game/gui.rpy:29
|
||||
old "## The color used for a text button when it is neither selected nor hovered."
|
||||
new "## Kolor używany dla przycisku tekstowego, gdy nie jest on zaznaczony ani najechany."
|
||||
|
||||
# gui/game/gui.rpy:32
|
||||
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
|
||||
new "## Mały kolor jest używany do małego tekstu, który musi być jaśniejszy/ciemniejszy, aby osiągnąć ten sam efekt."
|
||||
|
||||
# gui/game/gui.rpy:36
|
||||
old "## The color that is used for buttons and bars that are hovered."
|
||||
new "## Kolor używany dla przycisków i pasków, które są zaznaczone (najechane)."
|
||||
|
||||
# gui/game/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 "## Kolor używany dla przycisku tekstowego, gdy jest on zaznaczony, ale nie skupiony. Przycisk jest wybrany, jeśli jest to bieżący ekran lub wartość preferencji."
|
||||
|
||||
# gui/game/gui.rpy:43
|
||||
old "## The color used for a text button when it cannot be selected."
|
||||
new "## Kolor używany do przycisku tekstowego, gdy nie można go wybrać."
|
||||
|
||||
# gui/game/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 "## Kolory używane dla części pasków, które nie są wypełnione. Nie są używane bezpośrednio, ale są używane podczas ponownego generowania plików obrazów pasków."
|
||||
|
||||
# gui/game/gui.rpy:51
|
||||
old "## The colors used for dialogue and menu choice text."
|
||||
new "## Kolory używane w tekstach dialogów i menu wyboru."
|
||||
|
||||
# gui/game/gui.rpy:56
|
||||
old "## Fonts and Font Sizes"
|
||||
new "## Czcionki i ich rozmiary"
|
||||
|
||||
# gui/game/gui.rpy:58
|
||||
old "## The font used for in-game text."
|
||||
new "## Czcionka używana do tekstu w grze."
|
||||
|
||||
# gui/game/gui.rpy:61
|
||||
old "## The font used for character names."
|
||||
new "## Czcionka używana do nazw postaci."
|
||||
|
||||
# gui/game/gui.rpy:64
|
||||
old "## The font used for out-of-game text."
|
||||
new "## Czcionka używana w tekście poza grą."
|
||||
|
||||
# gui/game/gui.rpy:67
|
||||
old "## The size of normal dialogue text."
|
||||
new "## Rozmiar normalnego tekstu dialogowego."
|
||||
|
||||
# gui/game/gui.rpy:70
|
||||
old "## The size of character names."
|
||||
new "## Rozmiar imion postaci."
|
||||
|
||||
# gui/game/gui.rpy:73
|
||||
old "## The size of text in the game's user interface."
|
||||
new "## Rozmiar tekstu w interfejsie użytkownika gry."
|
||||
|
||||
# gui/game/gui.rpy:76
|
||||
old "## The size of labels in the game's user interface."
|
||||
new "## Rozmiar etykiet w interfejsie użytkownika gry."
|
||||
|
||||
# gui/game/gui.rpy:79
|
||||
old "## The size of text on the notify screen."
|
||||
new "## Rozmiar tekstu na ekranie powiadomień."
|
||||
|
||||
# gui/game/gui.rpy:82
|
||||
old "## The size of the game's title."
|
||||
new "## Rozmiar tytułu gry"
|
||||
|
||||
# gui/game/gui.rpy:86
|
||||
old "## Main and Game Menus"
|
||||
new "## Menu główna oraz menu gry "
|
||||
|
||||
# gui/game/gui.rpy:88
|
||||
old "## The images used for the main and game menus."
|
||||
new "## Obrazy używane w menu głównym i menu gry."
|
||||
|
||||
# gui/game/gui.rpy:93
|
||||
old "## Dialogue"
|
||||
new "## Dialog"
|
||||
|
||||
# gui/game/gui.rpy:95
|
||||
old "## These variables control how dialogue is displayed on the screen one line at a time."
|
||||
new "## Zmienne te kontrolują sposób wyświetlania dialogu na ekranie, wiersz po wierszu."
|
||||
|
||||
# gui/game/gui.rpy:98
|
||||
old "## The height of the textbox containing dialogue."
|
||||
new "## Wysokość pola tekstowego zawierającego dialog."
|
||||
|
||||
# gui/game/gui.rpy:101
|
||||
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 "## Umieszczenie pola tekstowego pionowo na ekranie. 0.0 to góra, 0.5 to środek, a 1.0 to dół."
|
||||
|
||||
# gui/game/gui.rpy:106
|
||||
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 "## Umieszczenie nazwy postaci mówiącej w stosunku do pola tekstowego. Może to być cała liczba pikseli od lewej lub od góry albo 0,5 do środka."
|
||||
|
||||
# gui/game/gui.rpy:111
|
||||
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 "## Poziome wyrównanie imienia postaci. Może to być 0,0 dla wyrównania do lewej, 0,5 do wyśrodkowania i 1,0 do wyrównania do prawej."
|
||||
|
||||
# gui/game/gui.rpy:115
|
||||
old "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
|
||||
new "## Szerokość, wysokość i krawędzie pola zawierającego nazwę postaci lub Brak, aby automatycznie zmienić jej rozmiar."
|
||||
|
||||
# gui/game/gui.rpy:120
|
||||
old "## The borders of the box containing the character's name, in left, top, right, bottom order."
|
||||
new "## Obramowanie pola zawierającego imię postaci w kolejności od lewej, od góry, od prawej, od dołu."
|
||||
|
||||
# gui/game/gui.rpy:124
|
||||
old "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
|
||||
new "## Jeśli 'True' (prawda), tło pola nazwy zostanie ułożone sąsiadująco, jeśli 'False' (fałsz), tło pola nazwy zostanie przeskalowane."
|
||||
|
||||
# gui/game/gui.rpy:129
|
||||
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 "## Umieszczenie dialogu względem pola tekstowego. Może to być całkowita liczba pikseli względem lewej lub górnej części pola tekstowego lub 0,5 względem środka."
|
||||
|
||||
# gui/game/gui.rpy:135
|
||||
old "## The maximum width of dialogue text, in pixels."
|
||||
new "## Maksymalna szerokość tekstu dialogowego w pikselach"
|
||||
|
||||
# gui/game/gui.rpy:138
|
||||
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 "## Poziome wyrównanie tekstu dialogu. Może to być 0,0 dla wyrównanego do lewej, 0,5 dla wyśrodkowanego i 1,0 dla wyrównanego do prawej."
|
||||
|
||||
# gui/game/gui.rpy:143
|
||||
old "## Buttons"
|
||||
new "## PRzyciski"
|
||||
|
||||
# gui/game/gui.rpy:145
|
||||
old "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
|
||||
new "## Te zmienne, wraz z plikami graficznymi w gui/button, kontrolują aspekty wyświetlania przycisków."
|
||||
|
||||
# gui/game/gui.rpy:148
|
||||
old "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
|
||||
new "## Szerokość i wysokość przycisku w pikselach. Jeśli brak, Ren'Py oblicza rozmiar."
|
||||
|
||||
# gui/game/gui.rpy:152
|
||||
old "## The borders on each side of the button, in left, top, right, bottom order."
|
||||
new "## Ramki po każdej stronie przycisku, w kolejności lewej, górnej, prawej, dolnej."
|
||||
|
||||
# gui/game/gui.rpy:155
|
||||
old "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
|
||||
new "## Jeśli 'True' (prawda), obraz tła zostanie ułożony sąsiadująco. Jeśli 'False' (fałsz), obraz tła będzie skalowany liniowo"
|
||||
|
||||
# gui/game/gui.rpy:159
|
||||
old "## The font used by the button."
|
||||
new "## Czcionka używana przez przycisk."
|
||||
|
||||
# gui/game/gui.rpy:162
|
||||
old "## The size of the text used by the button."
|
||||
new "## Rozmiar tekstu używanego przez przycisk."
|
||||
|
||||
# gui/game/gui.rpy:165
|
||||
old "## The color of button text in various states."
|
||||
new "## Kolor tekstu przycisku w różnych stanach."
|
||||
|
||||
# gui/game/gui.rpy:171
|
||||
old "## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0 is right)."
|
||||
new "## Poziome wyrównanie tekstu przycisku. (0.0 to lewe, 0.5 to środek, 1.0 to prawy)."
|
||||
|
||||
# gui/game/gui.rpy:176
|
||||
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 "## Zmienne zastępują ustawienia dla różnych rodzajów przycisków. Zapoznaj się z dokumentacją gui, aby dowiedzieć się, jakie rodzaje przycisków są dostępne i do czego służą."
|
||||
|
||||
# gui/game/gui.rpy:180
|
||||
old "## These customizations are used by the default interface:"
|
||||
new "## Poniższe ustawienia są używane przez domyślny interfejs:"
|
||||
|
||||
# gui/game/gui.rpy:195
|
||||
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 "## Możesz także dodać własne dostosowania, dodając odpowiednio nazwane zmienne. Na przykład możesz odkomentować następujący wiersz, aby ustawić szerokość przycisku nawigacyjnego."
|
||||
|
||||
# gui/game/gui.rpy:202
|
||||
old "## Choice Buttons"
|
||||
new "## Przyciski wyboru"
|
||||
|
||||
# gui/game/gui.rpy:204
|
||||
old "## Choice buttons are used in the in-game menus."
|
||||
new "## Przyciski wyboru są używane w menu w grze."
|
||||
|
||||
# gui/game/gui.rpy:218
|
||||
old "## File Slot Buttons"
|
||||
new "## Przycisk pliku zapisu"
|
||||
|
||||
# gui/game/gui.rpy:220
|
||||
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 "## Przycisk na pliki zapisu (slot) jest specjalnym rodzejem przycisku. Zawiera obraz miniatury oraz tekst opisujący zawartość slotu zapisu. Slot zapisu wykorzystuje pliki graficzne w gui/button, podobnie jak inne rodzaje przycisków."
|
||||
|
||||
# gui/game/gui.rpy:224
|
||||
old "## The save slot button."
|
||||
new "## Przycisk zapisu "
|
||||
|
||||
# gui/game/gui.rpy:234
|
||||
old "## The width and height of thumbnails used by the save slots."
|
||||
new "## Szerokość i wysokość miniatur używanych przez sloty zapisu."
|
||||
|
||||
# gui/game/gui.rpy:238
|
||||
old "## The number of columns and rows in the grid of save slots."
|
||||
new "## Liczba kolumn i wierszy w siatce slotów zapisu."
|
||||
|
||||
# gui/game/gui.rpy:243
|
||||
old "## Positioning and Spacing"
|
||||
new "## Pozycjonowanie i odstępy"
|
||||
|
||||
# gui/game/gui.rpy:245
|
||||
old "## These variables control the positioning and spacing of various user interface elements."
|
||||
new "## Te zmienne kontrolują położenie i odstępy różnych elementów interfejsu użytkownika."
|
||||
|
||||
# gui/game/gui.rpy:248
|
||||
old "## The position of the left side of the navigation buttons, relative to the left side of the screen."
|
||||
new "## Położenie lewej strony przycisków nawigacyjnych względem lewej strony ekranu.."
|
||||
|
||||
# gui/game/gui.rpy:252
|
||||
old "## The vertical position of the skip indicator."
|
||||
new "## Pozycja pionowa wskaźnika pominięcia."
|
||||
|
||||
# gui/game/gui.rpy:255
|
||||
old "## The vertical position of the notify screen."
|
||||
new "## Pionowa pozycja ekranu powiadomień"
|
||||
|
||||
# gui/game/gui.rpy:258
|
||||
old "## The spacing between menu choices."
|
||||
new "## Odstępy między opcjami menu."
|
||||
|
||||
# gui/game/gui.rpy:261
|
||||
old "## Buttons in the navigation section of the main and game menus."
|
||||
new "## Przyciski w sekcji nawigacji menu głównego i menu gry."
|
||||
|
||||
# gui/game/gui.rpy:264
|
||||
old "## Controls the amount of spacing between preferences."
|
||||
new "## Kontroluje ilość odstępów między preferencjami."
|
||||
|
||||
# gui/game/gui.rpy:267
|
||||
old "## Controls the amount of spacing between preference buttons."
|
||||
new "## Steruje odległością między przyciskami preferencji."
|
||||
|
||||
# gui/game/gui.rpy:270
|
||||
old "## The spacing between file page buttons."
|
||||
new "## Odstępy między przyciskami strony pliku."
|
||||
|
||||
# gui/game/gui.rpy:273
|
||||
old "## The spacing between file slots."
|
||||
new "## Odstępy między plikami zapisu (slotami)."
|
||||
|
||||
# gui/game/gui.rpy:276
|
||||
old "## The position of the main menu text."
|
||||
new "## Pozycja tekstu menu głównego."
|
||||
|
||||
# gui/game/gui.rpy:280
|
||||
old "## Frames"
|
||||
new "## Klatki"
|
||||
|
||||
# gui/game/gui.rpy:282
|
||||
old "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
|
||||
new "## Te zmienne sterują wyglądem ramek, które mogą zawierać komponenty interfejsu użytkownika, gdy nie ma nakładki lub okna."
|
||||
|
||||
# gui/game/gui.rpy:285
|
||||
old "## Generic frames."
|
||||
new "## Ramki ogólne."
|
||||
|
||||
# gui/game/gui.rpy:288
|
||||
old "## The frame that is used as part of the confirm screen."
|
||||
new "## Ramka używana jako część ekranu potwierdzenia."
|
||||
|
||||
# gui/game/gui.rpy:291
|
||||
old "## The frame that is used as part of the skip screen."
|
||||
new "## Ramka używana jako część ekranu pomijania."
|
||||
|
||||
# gui/game/gui.rpy:294
|
||||
old "## The frame that is used as part of the notify screen."
|
||||
new "## Ramka używana jako część ekranu powiadomień."
|
||||
|
||||
# gui/game/gui.rpy:297
|
||||
old "## Should frame backgrounds be tiled?"
|
||||
new "## Czy tła ramek powinny być kafelkowe?"
|
||||
|
||||
# gui/game/gui.rpy:301
|
||||
old "## Bars, Scrollbars, and Sliders"
|
||||
new "## Paski, paski przewijania i suwaki"
|
||||
|
||||
# gui/game/gui.rpy:303
|
||||
old "## These control the look and size of bars, scrollbars, and sliders."
|
||||
new "## Kontrolują one wygląd i rozmiar pasków, pasków przewijania i suwaków."
|
||||
|
||||
# gui/game/gui.rpy:305
|
||||
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written screens."
|
||||
new "## Domyślny GUI używa tylko suwaków i pionowych pasków przewijania. Wszystkie pozostałe paski są używane tylko na ekranach napisanych przez twórców."
|
||||
|
||||
# gui/game/gui.rpy:308
|
||||
old "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
|
||||
new "## Wysokość poziomych pasków, pasków przewijania i suwaków. Szerokość pionowych pasków, pasków przewijania i suwaków"
|
||||
|
||||
# gui/game/gui.rpy:314
|
||||
old "## True if bar images should be tiled. False if they should be linearly scaled."
|
||||
new "## 'True' (prawda), jeśli obrazy pasków powinny być kafelkowane. 'False' (fałsz), jeśli powinny być skalowane liniowo."
|
||||
|
||||
# gui/game/gui.rpy:319
|
||||
old "## Horizontal borders."
|
||||
new "## Granice poziome."
|
||||
|
||||
# gui/game/gui.rpy:324
|
||||
old "## Vertical borders."
|
||||
new "## Granice pionowe."
|
||||
|
||||
# gui/game/gui.rpy:329
|
||||
old "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
|
||||
new "## Ustawienie pasków GUI, które nie posiadają przewijania. Ustawienie \"hide\" (schowaj), ukryje owe paski, natomiast \"None\" (brak), wyświetli je."
|
||||
|
||||
# gui/game/gui.rpy:334
|
||||
old "## History"
|
||||
new "## Historia"
|
||||
|
||||
# gui/game/gui.rpy:336
|
||||
old "## The history screen displays dialogue that the player has already dismissed."
|
||||
new "## Ekran historii wyświetla dialog, który gracz już odrzucił."
|
||||
|
||||
# gui/game/gui.rpy:338
|
||||
old "## The number of blocks of dialogue history Ren'Py will keep."
|
||||
new "## Liczba bloków historii dialogów, które Ren'Py zachowa."
|
||||
|
||||
# gui/game/gui.rpy:341
|
||||
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
|
||||
new "## Wysokość wpisu na ekranie historii lub \"None\" (brak), aby wysokość była zmienna kosztem wydajności."
|
||||
|
||||
# gui/game/gui.rpy:345
|
||||
old "## The position, width, and alignment of the label giving the name of the speaking character."
|
||||
new "## Pozycja, szerokość i wyrównanie etykiety podającej nazwę postaci mówiącej."
|
||||
|
||||
# gui/game/gui.rpy:352
|
||||
old "## The position, width, and alignment of the dialogue text."
|
||||
new "## Pozycja, szerokość i wyrównanie tekstu dialogu."
|
||||
|
||||
# gui/game/gui.rpy:359
|
||||
old "## NVL-Mode"
|
||||
new "## Opcja NVL-Mode"
|
||||
|
||||
# gui/game/gui.rpy:361
|
||||
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
|
||||
new "## Ekran trybu NVL wyświetla dialog wypowiadany przez postacie trybu NVL"
|
||||
|
||||
# gui/game/gui.rpy:363
|
||||
old "## The borders of the background of the NVL-mode background window."
|
||||
new "## Granice tła okna tła trybu NVL."
|
||||
|
||||
# gui/game/gui.rpy:366
|
||||
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."
|
||||
new "## Wyświetlona zostanie maksymalna liczba wpisów trybu NVL Ren'Py. W przypadku wyświetlenia większej liczby wpisów, najstarszy wpis zostanie usunięty."
|
||||
|
||||
# gui/game/gui.rpy:370
|
||||
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
|
||||
new "## Wysokość wpisu trybu NVL. Ustaw to na Brak, aby wpisy dynamicznie dostosowywały wysokość."
|
||||
|
||||
# gui/game/gui.rpy:374
|
||||
old "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
|
||||
new "## Odstępy między wpisami trybu NVL, gdy gui.nvl_height ma wartość \"None\" (brak) oraz między wpisami trybu NVL a menu trybu NVL."
|
||||
|
||||
# gui/game/gui.rpy:391
|
||||
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
|
||||
new "## Pozycja, szerokość i wyrównanie tekstu nvl_thought (tekst wypowiadany przez postać nvl_narrator)."
|
||||
|
||||
# gui/game/gui.rpy:398
|
||||
old "## The position of nvl menu_buttons."
|
||||
new "## Pozycja przycisków menu nvl (menu_buttons)."
|
||||
|
||||
# gui/game/gui.rpy:402
|
||||
old "## Localization"
|
||||
new "## Lokalizacja"
|
||||
|
||||
# gui/game/gui.rpy:404
|
||||
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"
|
||||
new "## Kontroluje to, gdzie dozwolone jest łamanie wiersza. Ustawienie domyślne jest odpowiednie dla większości języków. Listę dostępnych wartości można znaleźć pod adresem https://www.renpy.org/doc/html/style_properties.html#style-property-language"
|
||||
|
||||
# gui/game/gui.rpy:412
|
||||
old "## Mobile devices"
|
||||
new "## Urządzenia mobilne"
|
||||
|
||||
# gui/game/gui.rpy:417
|
||||
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
|
||||
new "## Zwiększa to rozmiar szybkich przycisków, aby ułatwić ich dotykanie na tabletach i telefonach."
|
||||
|
||||
# gui/game/gui.rpy:423
|
||||
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
|
||||
new "## Zmienia to rozmiar i odstępy różnych elementów GUI, aby były dobrze widoczne na telefonach."
|
||||
|
||||
# gui/game/gui.rpy:427
|
||||
old "## Font sizes."
|
||||
new "## Roozmiar czcionki"
|
||||
|
||||
# gui/game/gui.rpy:435
|
||||
old "## Adjust the location of the textbox."
|
||||
new "## Dostosuj położenie pola tekstowego."
|
||||
|
||||
# gui/game/gui.rpy:441
|
||||
old "## Change the size and spacing of various things."
|
||||
new "## Zmieniaj rozmiar i odstępy różnych rzeczy."
|
||||
|
||||
# gui/game/gui.rpy:455
|
||||
old "## File button layout."
|
||||
new "## Układ przycisku pliku."
|
||||
|
||||
# gui/game/gui.rpy:459
|
||||
old "## NVL-mode."
|
||||
new "## Opcja NVL-mode."
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,199 @@
|
||||
|
||||
translate polish strings:
|
||||
|
||||
# gui/game/options.rpy:1
|
||||
old "## This file contains options that can be changed to customize your game."
|
||||
new "## Ten plik zawiera opcję, które można zmienić, aby dostosować grę."
|
||||
|
||||
# gui/game/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 "## Linie zaczynające się od dwóch znaków '#' są komentarzami i nie należy ich odkomentować. Wiersze zaczynające się od pojedynczego znaku '#' są kodem zakomentowanym i możesz chcieć je odkomentować, gdy jest to właściwe. "
|
||||
|
||||
# gui/game/options.rpy:10
|
||||
old "## Basics"
|
||||
new "## Podstawy"
|
||||
|
||||
# gui/game/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 "## Czytelna dla człowieka nazwa gry. Służy do ustawiania domyślnego tytułu okna i pojawia się w interfejsie oraz raportach o błędach."
|
||||
|
||||
# gui/game/options.rpy:15
|
||||
old "## The _() surrounding the string marks it as eligible for translation."
|
||||
new "## Znak _() otaczający ciąg znaków oznacza go jako kwalifikujący się do tłumaczenia."
|
||||
|
||||
# gui/game/options.rpy:17
|
||||
old "Ren'Py 7 Default GUI"
|
||||
new "Ren'Py 7 domyślne GUI"
|
||||
|
||||
# gui/game/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 "## Określa, czy tytuł podany powyżej jest wyświetlany na ekranie menu głównego. Ustaw to na 'False', aby ukryć tytuł."
|
||||
|
||||
# gui/game/options.rpy:26
|
||||
old "## The version of the game."
|
||||
new "## Wersja gry."
|
||||
|
||||
# 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."
|
||||
new "## Tekst, który jest umieszczony na ekranie, w sekcji o grze. Umieść tekst między potrójnymi cudzysłowami i zostaw pustą linię między akapitami."
|
||||
|
||||
# gui/game/options.rpy:38
|
||||
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 "## Krótka nazwa gry używana dla plików wykonywalnych i katalogów w zbudowanej dystrybucji. Musi zawierać tylko ASCII i nie może zawierać spacji, dwukropków ani średników."
|
||||
|
||||
# gui/game/options.rpy:45
|
||||
old "## Sounds and music"
|
||||
new "## Dźwięki i muzyka"
|
||||
|
||||
# gui/game/options.rpy:47
|
||||
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 "## Te trzy zmienne określają, które miksery są domyślnie pokazywane graczowi. Ustawienie jednego z nich na 'False' spowoduje ukrycie odpowiedniego miksera."
|
||||
|
||||
# gui/game/options.rpy:56
|
||||
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 "## Aby umożliwić użytkownikowi odtworzenie dźwięku testowego na kanale dźwiękowym lub głosowym, odkomentuj poniższą linię i użyj jej do ustawienia przykładowego dźwięku do odtworzenia."
|
||||
|
||||
# gui/game/options.rpy:63
|
||||
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 "## Odkomentuj następującą linię, aby ustawić plik audio, który będzie odtwarzany, gdy odtwarzacz jest w menu głównym. Ten plik będzie odtwarzany w grze, dopóki nie zostanie zatrzymany lub odtworzony inny plik."
|
||||
|
||||
# gui/game/options.rpy:70
|
||||
old "## Transitions"
|
||||
new "## Przejście"
|
||||
|
||||
# gui/game/options.rpy:72
|
||||
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 "## Te zmienne ustawiają przejścia, które są używane w przypadku wystąpienia określonych zdarzeń. Każda zmienna powinna być ustawiona na przejście lub brak (None), aby wskazać, że żadne przejście nie powinno być używane."
|
||||
|
||||
# gui/game/options.rpy:76
|
||||
old "## Entering or exiting the game menu."
|
||||
new "## Menu gry - wejście/wyjście"
|
||||
|
||||
# gui/game/options.rpy:82
|
||||
old "## Between screens of the game menu."
|
||||
new "## Menu gry - między scenami"
|
||||
|
||||
# gui/game/options.rpy:87
|
||||
old "## A transition that is used after a game has been loaded."
|
||||
new "## Przejście używane po wczytaniu gry."
|
||||
|
||||
# gui/game/options.rpy:92
|
||||
old "## Used when entering the main menu after the game has ended."
|
||||
new "## Przejście do menu głównego po zakończeniu gry."
|
||||
|
||||
# gui/game/options.rpy:97
|
||||
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 "## Zmienna do ustawienia przejścia używanego podczas uruchamiania gry nie istnieje. Zamiast tego po pokazaniu początkowej sceny użyj wyrażenia z (use a with statement)."
|
||||
|
||||
# gui/game/options.rpy:102
|
||||
old "## Window management"
|
||||
new "## Zarządzanie oknem"
|
||||
|
||||
# gui/game/options.rpy:104
|
||||
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 "## Opcja odpowiada za okno dialogowe. Jeżeli ustawiono \"show\" (pokaż), to będzie zawsze wyświetlone. Jeżeli ustawiono \"hide\" (ukryj), to zostanie wyświetlone kiedy będzie dialog. Jeżeli ustawiono \"auto\" to okno jest ukrywane przed wypowiedziami scen i ponownie wyświetlane po wyświetleniu dialogu."
|
||||
|
||||
# gui/game/options.rpy:109
|
||||
old "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
|
||||
new "## Po uruchomieniu gry, ustawienie te można zmienić za pomocą komend \"window show\", \"window hide\" oraz \"window auto\". "
|
||||
|
||||
# gui/game/options.rpy:115
|
||||
old "## Transitions used to show and hide the dialogue window"
|
||||
new "## Przejścia używane do pokazywania i ukrywania okna dialogowego"
|
||||
|
||||
# gui/game/options.rpy:121
|
||||
old "## Preference defaults"
|
||||
new "## Ustawienia domyślne"
|
||||
|
||||
# gui/game/options.rpy:123
|
||||
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 "## Opcja odpowiada za domyślną szybkość tekstu. Wartość domyślna, 0, jest nieskończona, podczas gdy każda inna liczba to liczba znaków na sekundę do wpisania. "
|
||||
|
||||
# gui/game/options.rpy:129
|
||||
old "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
|
||||
new "## Domyślne opóźnienie automatycznego przewijania. Większe liczby prowadzą do dłuższych czasów oczekiwania, przy czym prawidłowym zakresem jest od 0 do 30"
|
||||
|
||||
# gui/game/options.rpy:135
|
||||
old "## Save directory"
|
||||
new "## Katalog zapisu"
|
||||
|
||||
# gui/game/options.rpy:137
|
||||
old "## Controls the platform-specific place Ren'Py will place the save files for this game. The save files will be placed in:"
|
||||
new "## Ustawienie katalogu, w którym Ren'Py umieści pliki zapisu dla tej gry. Pliki zapisu zostaną umieszczone w:"
|
||||
|
||||
# gui/game/options.rpy:140
|
||||
old "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
|
||||
new "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
|
||||
|
||||
# gui/game/options.rpy:142
|
||||
old "## Macintosh: $HOME/Library/RenPy/<config.save_directory>"
|
||||
new "## Macintosh: $HOME/Library/RenPy/<config.save_directory>"
|
||||
|
||||
# gui/game/options.rpy:144
|
||||
old "## Linux: $HOME/.renpy/<config.save_directory>"
|
||||
new "## Linux: $HOME/.renpy/<config.save_directory>"
|
||||
|
||||
# gui/game/options.rpy:146
|
||||
old "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
|
||||
new "## Opcji tej zazwyczaj nie należy zmieniać. Jeżeli jest zmiana, to należy zastosować dosłowny ciąg, a nie wyrażenie."
|
||||
|
||||
# gui/game/options.rpy:152
|
||||
old "## Icon"
|
||||
new "## Ikona"
|
||||
|
||||
# gui/game/options.rpy:154
|
||||
old "## The icon displayed on the taskbar or dock."
|
||||
new "## Ikona wyświetlana na pasku zadań lub doku"
|
||||
|
||||
# gui/game/options.rpy:159
|
||||
old "## Build configuration"
|
||||
new "## Konfiguracja kompilacji "
|
||||
|
||||
# gui/game/options.rpy:161
|
||||
old "## This section controls how Ren'Py turns your project into distribution files."
|
||||
new "## Sekcja odpoaiwada za sposób w jaki Ren'Py zamienia Twój projekt w pliki dystrybucyjne."
|
||||
|
||||
# gui/game/options.rpy:166
|
||||
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 "## Poniższe funkcje przyjmują wzorce plików. Wzorce plików nie uwzględniają wielkości liter i są dopasowywane do ścieżki względem katalogu bazowego, z wiodącymi lub bez /. Jeśli pasuje wiele wzorów, używany jest pierwszy."
|
||||
|
||||
# gui/game/options.rpy:171
|
||||
old "## In a pattern:"
|
||||
new "## Wzór:"
|
||||
|
||||
# gui/game/options.rpy:173
|
||||
old "## / is the directory separator."
|
||||
new "## znak / jest separatorem katalogów."
|
||||
|
||||
# gui/game/options.rpy:175
|
||||
old "## * matches all characters, except the directory separator."
|
||||
new "## * uwzględnia wszystkie znaki, z wyjątkiem separatora katalogu."
|
||||
|
||||
# gui/game/options.rpy:177
|
||||
old "## ** matches all characters, including the directory separator."
|
||||
new "## ** uwzględnia wszystkie znaki, łącznie z separatorem katalogu."
|
||||
|
||||
# gui/game/options.rpy:179
|
||||
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 "## Na przykład \"*.txt\" dopasowuje pliki txt w katalogu podstawowym, \"game/**.ogg\" dopasowuje pliki ogg w katalogu gry lub dowolnym z jego podkatalogów, a \"**.psd\" dopasowuje pliki psd w dowolnym miejscu projektu."
|
||||
|
||||
# gui/game/options.rpy:183
|
||||
old "## Classify files as None to exclude them from the built distributions."
|
||||
new "## Klasyfikuj pliki jako Brak (None), aby wykluczyć je ze zbudowanych dystrybucji"
|
||||
|
||||
# gui/game/options.rpy:191
|
||||
old "## To archive files, classify them as 'archive'."
|
||||
new "## Aby zarchiwizować pliki, sklasyfikuj je jako 'archive' (archiwum)."
|
||||
|
||||
# gui/game/options.rpy:196
|
||||
old "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
|
||||
new "## Pliki pasujące do wzorców dokumentacji są duplikowane w kompilacji aplikacji na komputery Mac, więc pojawiają się zarówno w aplikacji, jak i pliku zip."
|
||||
|
||||
# gui/game/options.rpy:203
|
||||
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 "## Klucz licencyjny Google Play jest wymagany do pobierania plików rozszerzeń i dokonywania zakupów w aplikacji. Można go znaleźć na stronie usługi i interfejsy API (Services & APIs) w konsoli programisty Google Play."
|
||||
|
||||
# gui/game/options.rpy:210
|
||||
old "## The username and project name associated with an itch.io project, separated by a slash."
|
||||
new "## Nazwa użytkownika i nazwa projektu powiązane z projektem itch.io, oddzielone ukośnikiem"
|
||||
|
||||
@@ -0,0 +1,671 @@
|
||||
|
||||
translate polish strings:
|
||||
|
||||
# gui/game/screens.rpy:9
|
||||
old "## Styles"
|
||||
new "## Style"
|
||||
|
||||
# gui/game/screens.rpy:81
|
||||
old "## In-game screens"
|
||||
new "## Sceny podczas gry"
|
||||
|
||||
# gui/game/screens.rpy:85
|
||||
old "## Say screen"
|
||||
new "## Scena rozmowy"
|
||||
|
||||
# gui/game/screens.rpy:87
|
||||
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 "## Ekran rozmowy jest używany do wyświetlania dialogu. Wymagane są dwa parametry, kto i co, które są odpowiednio nazwą postaci mówiącej i tekstem, który ma być wyświetlany. Parametr \"who\" (kto) może mieć wartość \"None\" (brak), jeśli nie podano nazwy. "
|
||||
|
||||
# gui/game/screens.rpy:92
|
||||
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 "## Ten ekran musi tworzyć tekst do wyświetlenia z id \"what\" (co), ponieważ Ren'Py używa go do zarządzania wyświetlaniem tekstu. Może również tworzyć elementy do wyświetlania z id \"who\" (kto) i id \"window\" (okno), aby zastosować właściwości stylu."
|
||||
|
||||
# gui/game/screens.rpy:96
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#say"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#say"
|
||||
|
||||
# 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."
|
||||
new "## Jeśli jest obraz boczny, wyświetl go nad tekstem. Nie wyświetlaj w wariancie telefonu - nie ma miejsca"
|
||||
|
||||
# gui/game/screens.rpy:120
|
||||
old "## Make the namebox available for styling through the Character object."
|
||||
new "## Udostępnij pole nazwy do stylizacji za pomocą obiektu Character."
|
||||
|
||||
# gui/game/screens.rpy:164
|
||||
old "## Input screen"
|
||||
new "## Scena wprowadzenia"
|
||||
|
||||
# gui/game/screens.rpy:166
|
||||
old "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
|
||||
new "## Ten ekran służy do wyświetlania renpy.input. Parametr monitu służy do przekazywania monitu tekstowego."
|
||||
|
||||
# gui/game/screens.rpy:169
|
||||
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
|
||||
new "## Ten ekran musi utworzyć dane wejściowe wyświetlane z identyfikatorem \"input\", aby zaakceptować różne parametry wejściowe."
|
||||
|
||||
# gui/game/screens.rpy:172
|
||||
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:199
|
||||
old "## Choice screen"
|
||||
new "## Ekran wyboru"
|
||||
|
||||
# gui/game/screens.rpy:201
|
||||
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 "## Ten ekran służy do wyświetlania wyborów w grze przedstawionych w instrukcji menu. Jeden parametr, items, to lista obiektów, każdy z polami podpisu i akcji."
|
||||
|
||||
# gui/game/screens.rpy:205
|
||||
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:215
|
||||
old "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
|
||||
new "## Gdy ustawiono \"true\" (prawda), napisy menu zostaną wypowiedziane przez narratora. Gdy ustawiono \"false\" (fałsz), napisy menu zostaną wyświetlone jako puste przyciski."
|
||||
|
||||
# gui/game/screens.rpy:238
|
||||
old "## Quick Menu screen"
|
||||
new "## Szybkie menu"
|
||||
|
||||
# gui/game/screens.rpy:240
|
||||
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
|
||||
new "## Szybkie menu jest wyświetlane w grze, aby zapewnić łatwy dostęp do menu poza grą."
|
||||
|
||||
# gui/game/screens.rpy:245
|
||||
old "## Ensure this appears on top of other screens."
|
||||
new "## Upewnij się, że pojawia się nad innymi scenami."
|
||||
|
||||
# gui/game/screens.rpy:256
|
||||
old "Back"
|
||||
new "Powrót"
|
||||
|
||||
# gui/game/screens.rpy:257
|
||||
old "History"
|
||||
new "Historia"
|
||||
|
||||
# gui/game/screens.rpy:258
|
||||
old "Skip"
|
||||
new "Pomiń"
|
||||
|
||||
# gui/game/screens.rpy:259
|
||||
old "Auto"
|
||||
new "Auto"
|
||||
|
||||
# gui/game/screens.rpy:260
|
||||
old "Save"
|
||||
new "Zapis"
|
||||
|
||||
# gui/game/screens.rpy:261
|
||||
old "Q.Save"
|
||||
new "S.Zapis"
|
||||
|
||||
# gui/game/screens.rpy:262
|
||||
old "Q.Load"
|
||||
new "S.Wczytaj"
|
||||
|
||||
# gui/game/screens.rpy:263
|
||||
old "Prefs"
|
||||
new "Opcje"
|
||||
|
||||
# gui/game/screens.rpy:266
|
||||
old "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
|
||||
new "## Ten kod zapewnia, że ekran quick_menu jest wyświetlany w grze, gdy gracz nie ukrył jawnie interfejsu."
|
||||
|
||||
# gui/game/screens.rpy:284
|
||||
old "## Main and Game Menu Screens"
|
||||
new "## Ekrany główne i menu gry"
|
||||
|
||||
# gui/game/screens.rpy:287
|
||||
old "## Navigation screen"
|
||||
new "## Ekran nawigacji"
|
||||
|
||||
# gui/game/screens.rpy:289
|
||||
old "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
|
||||
new "## Ten ekran jest zawarty w menu głównym i menu gry i zapewnia nawigację do innych menu oraz rozpoczęcie gry."
|
||||
|
||||
# gui/game/screens.rpy:304
|
||||
old "Start"
|
||||
new "Start"
|
||||
|
||||
# gui/game/screens.rpy:312
|
||||
old "Load"
|
||||
new "Wczytaj"
|
||||
|
||||
# gui/game/screens.rpy:314
|
||||
old "Preferences"
|
||||
new "Preferencje"
|
||||
|
||||
# gui/game/screens.rpy:318
|
||||
old "End Replay"
|
||||
new "Zakończ powtórkę"
|
||||
|
||||
# gui/game/screens.rpy:322
|
||||
old "Main Menu"
|
||||
new "Menu główne"
|
||||
|
||||
# gui/game/screens.rpy:324
|
||||
old "About"
|
||||
new "Informacje"
|
||||
|
||||
# gui/game/screens.rpy:328
|
||||
old "## Help isn't necessary or relevant to mobile devices."
|
||||
new "## Pomoc nie jest potrzebna ani nie dotyczy urządzeń mobilnych."
|
||||
|
||||
# gui/game/screens.rpy:329
|
||||
old "Help"
|
||||
new "Pomoc"
|
||||
|
||||
# gui/game/screens.rpy:333
|
||||
old "## The quit button is banned on iOS and unnecessary on Android and Web."
|
||||
new "## Przycisk zamknij (quit) jest zabroniony w iOS, niepotrzebny w Androidzie i przeglądarkach."
|
||||
|
||||
# gui/game/screens.rpy:334
|
||||
old "Quit"
|
||||
new "Zamknij"
|
||||
|
||||
# gui/game/screens.rpy:348
|
||||
old "## Main Menu screen"
|
||||
new "## Ekran głównego menu"
|
||||
|
||||
# gui/game/screens.rpy:350
|
||||
old "## Used to display the main menu when Ren'Py starts."
|
||||
new "## Służy do wyświetlania menu głównego po uruchomieniu Ren'Py"
|
||||
|
||||
# gui/game/screens.rpy:352
|
||||
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:356
|
||||
old "## This ensures that any other menu screen is replaced."
|
||||
new "## Zapewnienie, że każdy inny ekran menu zostanie zastąpiony."
|
||||
|
||||
# gui/game/screens.rpy:361
|
||||
old "## This empty frame darkens the main menu."
|
||||
new "## Ta pusta ramka przyciemnia menu główne."
|
||||
|
||||
# gui/game/screens.rpy:365
|
||||
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
|
||||
new "## Wyrażenie \"use\" zawiera kolejny ekran(scenę) wewnątrz tego. Rzeczywista zawartość menu głównego znajduje się na ekranie nawigacji."
|
||||
|
||||
# gui/game/screens.rpy:410
|
||||
old "## Game Menu screen"
|
||||
new "## Ekran menu gry"
|
||||
|
||||
# gui/game/screens.rpy:412
|
||||
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 "## Podstawową wspólna struktura ekranu menu gry. Jest wywoływany z razem z ekranem tytułowym, wyświetla tło, tytuł i nawigację."
|
||||
|
||||
# gui/game/screens.rpy:415
|
||||
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 "## Parametr przewijania może mieć wartość \"None\" (Brak) lub \"viewport\" albo \"vpgrid\". Gdy ten ekran ma być używany z jednym lub większą liczbą dzieci, które są transkludowane (umieszczane) wewnątrz niego."
|
||||
|
||||
# gui/game/screens.rpy:433
|
||||
old "## Reserve space for the navigation section."
|
||||
new "## Zarezerwowane miejsce na sekcję nawigacji"
|
||||
|
||||
# gui/game/screens.rpy:475
|
||||
old "Return"
|
||||
new "Powrót"
|
||||
|
||||
# gui/game/screens.rpy:538
|
||||
old "## About screen"
|
||||
new "## Ekran o (np. o grze)"
|
||||
|
||||
# gui/game/screens.rpy:540
|
||||
old "## This screen gives credit and copyright information about the game and Ren'Py."
|
||||
new "## Ten ekran zawiera informacje (podziękowania - creditsy), prawach autorskich dotyczących gry i Ren'Py"
|
||||
|
||||
# gui/game/screens.rpy:543
|
||||
old "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
|
||||
new "## Nie ma nic specjalnego w tym ekranie, dlatego służy on również jako przykład, jak zrobić niestandardowy ekran."
|
||||
|
||||
# gui/game/screens.rpy:550
|
||||
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 "## Wyrażenie use zawiera ekran game_menu wewnątrz tego. Potomek vbox jest następnie dołączany do okna widoku na ekranie menu gry."
|
||||
|
||||
# gui/game/screens.rpy:560
|
||||
old "Version [config.version!t]\n"
|
||||
new "Wersja [config.version!t]\n"
|
||||
|
||||
# gui/game/screens.rpy:562
|
||||
old "## gui.about is usually set in options.rpy."
|
||||
new "## gui.about zazwyczaj jest ustawiony w options.rpy."
|
||||
|
||||
# gui/game/screens.rpy:566
|
||||
old "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
|
||||
new "Wykonano przy pomocy {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
|
||||
|
||||
# gui/game/screens.rpy:577
|
||||
old "## Load and Save screens"
|
||||
new "## Ekran wczytania i zapisu"
|
||||
|
||||
# gui/game/screens.rpy:579
|
||||
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 "## Ekrany te są odpowiedzialne za umożliwienie graczowi zapisania gry i ponownego jej wczytania. Ponieważ mają prawie wszystko wspólne, oba są zaimplementowane w postaci trzeciego ekranu, file_slots."
|
||||
|
||||
# gui/game/screens.rpy:583
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#save https://www.renpy.org/doc/html/screen_special.html#load"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#save https://www.renpy.org/doc/html/screen_special.html#load"
|
||||
|
||||
# gui/game/screens.rpy:602
|
||||
old "Page {}"
|
||||
new "Strona {}"
|
||||
|
||||
# gui/game/screens.rpy:602
|
||||
old "Automatic saves"
|
||||
new "Automatyczny zapis"
|
||||
|
||||
# gui/game/screens.rpy:602
|
||||
old "Quick saves"
|
||||
new "Szybki zapis"
|
||||
|
||||
# gui/game/screens.rpy:608
|
||||
old "## This ensures the input will get the enter event before any of the buttons do."
|
||||
new "## Opcja zapewnie wejście zdarzeniu wprowadzającemu, zanim to zrobi którykolwiek z przycisków."
|
||||
|
||||
# gui/game/screens.rpy:612
|
||||
old "## The page name, which can be edited by clicking on a button."
|
||||
new "## Nazwa strony, którą można edytować, klikając przycisk."
|
||||
|
||||
# gui/game/screens.rpy:624
|
||||
old "## The grid of file slots."
|
||||
new "## Siatka plików zapisów (file slots)."
|
||||
|
||||
# gui/game/screens.rpy:644
|
||||
old "{#file_time}%A, %B %d %Y, %H:%M"
|
||||
new "{#file_time}%A, %B %d %Y, %H:%M"
|
||||
|
||||
# gui/game/screens.rpy:644
|
||||
old "empty slot"
|
||||
new "Puste miejsce"
|
||||
|
||||
# gui/game/screens.rpy:652
|
||||
old "## Buttons to access other pages."
|
||||
new "## Przyciski dostępu do innych stron."
|
||||
|
||||
# gui/game/screens.rpy:661
|
||||
old "<"
|
||||
new "<"
|
||||
|
||||
# gui/game/screens.rpy:664
|
||||
old "{#auto_page}A"
|
||||
new "{#auto_page}A"
|
||||
|
||||
# gui/game/screens.rpy:667
|
||||
old "{#quick_page}Q"
|
||||
new "{#quick_page}Q"
|
||||
|
||||
# gui/game/screens.rpy:669
|
||||
old "## range(1, 10) gives the numbers from 1 to 9."
|
||||
new "## range(1, 10), zasięg zwraca liczby od 1 do 9."
|
||||
|
||||
# gui/game/screens.rpy:673
|
||||
old ">"
|
||||
new ">"
|
||||
|
||||
# gui/game/screens.rpy:708
|
||||
old "## Preferences screen"
|
||||
new "## Ekran preferencji"
|
||||
|
||||
# gui/game/screens.rpy:710
|
||||
old "## The preferences screen allows the player to configure the game to better suit themselves."
|
||||
new "## Ekran preferencji pozwala graczowi skonfigurować grę, by grało się wygodniej."
|
||||
|
||||
# gui/game/screens.rpy:713
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#preferences"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#preferences"
|
||||
|
||||
# gui/game/screens.rpy:730
|
||||
old "Display"
|
||||
new "Wyświetlenie"
|
||||
|
||||
# gui/game/screens.rpy:731
|
||||
old "Window"
|
||||
new "Okno"
|
||||
|
||||
# gui/game/screens.rpy:732
|
||||
old "Fullscreen"
|
||||
new "Pełny ekran"
|
||||
|
||||
# gui/game/screens.rpy:736
|
||||
old "Rollback Side"
|
||||
new "Strona cofania"
|
||||
|
||||
# gui/game/screens.rpy:737
|
||||
old "Disable"
|
||||
new "Wyłącz"
|
||||
|
||||
# gui/game/screens.rpy:738
|
||||
old "Left"
|
||||
new "Lewo"
|
||||
|
||||
# gui/game/screens.rpy:739
|
||||
old "Right"
|
||||
new "Prawo"
|
||||
|
||||
# gui/game/screens.rpy:744
|
||||
old "Unseen Text"
|
||||
new "Tekst niewidoczny"
|
||||
|
||||
# gui/game/screens.rpy:745
|
||||
old "After Choices"
|
||||
new "Tekst po wyborze"
|
||||
|
||||
# gui/game/screens.rpy:746
|
||||
old "Transitions"
|
||||
new "Przejścia"
|
||||
|
||||
# gui/game/screens.rpy:748
|
||||
old "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
|
||||
new "## Miejsce na dodatkowe vboksy typu \"radio_pref\" lub \"check_pref\", aby dodać dodatkowe preferencje zdefiniowane przez twórcę"
|
||||
|
||||
# gui/game/screens.rpy:759
|
||||
old "Text Speed"
|
||||
new "Szybkość tekstu"
|
||||
|
||||
# gui/game/screens.rpy:763
|
||||
old "Auto-Forward Time"
|
||||
new "Czas automatycznego przewijania"
|
||||
|
||||
# gui/game/screens.rpy:770
|
||||
old "Music Volume"
|
||||
new "Głośność muzyki"
|
||||
|
||||
# gui/game/screens.rpy:777
|
||||
old "Sound Volume"
|
||||
new "Głośność dźwięku"
|
||||
|
||||
# gui/game/screens.rpy:783
|
||||
old "Test"
|
||||
new "Test"
|
||||
|
||||
# gui/game/screens.rpy:787
|
||||
old "Voice Volume"
|
||||
new "Głośność głosu"
|
||||
|
||||
# gui/game/screens.rpy:798
|
||||
old "Mute All"
|
||||
new "Wycisz wszystko"
|
||||
|
||||
# gui/game/screens.rpy:874
|
||||
old "## History screen"
|
||||
new "## Ekran historii"
|
||||
|
||||
# gui/game/screens.rpy:876
|
||||
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 "## Jest to ekran, który wyświetla graczowi historię dialogów. Chociaż nie ma nic specjalnego w tym ekranie, musi on mieć dostęp do historii dialogów przechowywanej w _history_list."
|
||||
|
||||
# gui/game/screens.rpy:880
|
||||
old "## https://www.renpy.org/doc/html/history.html"
|
||||
new "## https://www.renpy.org/doc/html/history.html"
|
||||
|
||||
# gui/game/screens.rpy:886
|
||||
old "## Avoid predicting this screen, as it can be very large."
|
||||
new "## Unikaj przewidywania tego ekranu, ponieważ może być bardzo duży."
|
||||
|
||||
# gui/game/screens.rpy:897
|
||||
old "## This lays things out properly if history_height is None."
|
||||
new "## Wszystko jest wyświetlone poprawnie jeżeli history_height jest ustawione na None"
|
||||
|
||||
# gui/game/screens.rpy:907
|
||||
old "## Take the color of the who text from the Character, if set."
|
||||
new "## Pobranie koloru dla who postaci, jeżeli jest ustawione."
|
||||
|
||||
# gui/game/screens.rpy:916
|
||||
old "The dialogue history is empty."
|
||||
new "Historia dialogu jest pusta."
|
||||
|
||||
# gui/game/screens.rpy:919
|
||||
old "## This determines what tags are allowed to be displayed on the history screen."
|
||||
new "## Określa to, jakie tagi mogą być wyświetlane na ekranie historii."
|
||||
|
||||
# gui/game/screens.rpy:966
|
||||
old "## Help screen"
|
||||
new "## Ekran pomocy"
|
||||
|
||||
# gui/game/screens.rpy:968
|
||||
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 "## Ekran wyświetlający informacje o ustawieniach klawiatury i myszy. Używa innych ekranów (keyboard_help, mouse_help i gamepad_help) do wyświetlania aktualnej pomocy."
|
||||
|
||||
# gui/game/screens.rpy:987
|
||||
old "Keyboard"
|
||||
new "Klawiatura"
|
||||
|
||||
# gui/game/screens.rpy:988
|
||||
old "Mouse"
|
||||
new "Mysz"
|
||||
|
||||
# gui/game/screens.rpy:991
|
||||
old "Gamepad"
|
||||
new "Gamepad"
|
||||
|
||||
# gui/game/screens.rpy:1004
|
||||
old "Enter"
|
||||
new "Enter"
|
||||
|
||||
# gui/game/screens.rpy:1005
|
||||
old "Advances dialogue and activates the interface."
|
||||
new "Rozwija dialog i aktywuje interfejs"
|
||||
|
||||
# gui/game/screens.rpy:1008
|
||||
old "Space"
|
||||
new "Spacja"
|
||||
|
||||
# gui/game/screens.rpy:1009
|
||||
old "Advances dialogue without selecting choices."
|
||||
new "Rozwija dialog bez wybierania opcji."
|
||||
|
||||
# gui/game/screens.rpy:1012
|
||||
old "Arrow Keys"
|
||||
new "Strzałki"
|
||||
|
||||
# gui/game/screens.rpy:1013
|
||||
old "Navigate the interface."
|
||||
new "Poruszanie się po interfejsie."
|
||||
|
||||
# gui/game/screens.rpy:1016
|
||||
old "Escape"
|
||||
new "Escape"
|
||||
|
||||
# gui/game/screens.rpy:1017
|
||||
old "Accesses the game menu."
|
||||
new "Uruchomienie menu gry."
|
||||
|
||||
# gui/game/screens.rpy:1020
|
||||
old "Ctrl"
|
||||
new "Ctrl"
|
||||
|
||||
# gui/game/screens.rpy:1021
|
||||
old "Skips dialogue while held down."
|
||||
new "Pomija dialog, gdy jest wciśnięty."
|
||||
|
||||
# gui/game/screens.rpy:1024
|
||||
old "Tab"
|
||||
new "Tab"
|
||||
|
||||
# gui/game/screens.rpy:1025
|
||||
old "Toggles dialogue skipping."
|
||||
new "Przełącza pomijanie dialogów."
|
||||
|
||||
# gui/game/screens.rpy:1028
|
||||
old "Page Up"
|
||||
new "Page Up"
|
||||
|
||||
# gui/game/screens.rpy:1029
|
||||
old "Rolls back to earlier dialogue."
|
||||
new "Wraca do wcześniejszego dialogu."
|
||||
|
||||
# gui/game/screens.rpy:1032
|
||||
old "Page Down"
|
||||
new "Page Down"
|
||||
|
||||
# gui/game/screens.rpy:1033
|
||||
old "Rolls forward to later dialogue."
|
||||
new "Przechodzi do późniejszego dialogu."
|
||||
|
||||
# gui/game/screens.rpy:1037
|
||||
old "Hides the user interface."
|
||||
new "Ukrywa interfejs użytkownika."
|
||||
|
||||
# gui/game/screens.rpy:1041
|
||||
old "Takes a screenshot."
|
||||
new "Wykonanie zrzutu ekranu."
|
||||
|
||||
# gui/game/screens.rpy:1045
|
||||
old "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
|
||||
new "Przełącza wspomaganie {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
|
||||
|
||||
# gui/game/screens.rpy:1051
|
||||
old "Left Click"
|
||||
new "Lewy przycisk"
|
||||
|
||||
# gui/game/screens.rpy:1055
|
||||
old "Middle Click"
|
||||
new "Środkowy przycisk"
|
||||
|
||||
# gui/game/screens.rpy:1059
|
||||
old "Right Click"
|
||||
new "Prawy przycisk"
|
||||
|
||||
# gui/game/screens.rpy:1063
|
||||
old "Mouse Wheel Up\nClick Rollback Side"
|
||||
new "Kółko myszy w górę\nKliknij stronę wycofania"
|
||||
|
||||
# gui/game/screens.rpy:1067
|
||||
old "Mouse Wheel Down"
|
||||
new "Kółko myszy w dół"
|
||||
|
||||
# gui/game/screens.rpy:1074
|
||||
old "Right Trigger\nA/Bottom Button"
|
||||
new "Prawy spust\nA/dolny przycisk"
|
||||
|
||||
# gui/game/screens.rpy:1078
|
||||
old "Left Trigger\nLeft Shoulder"
|
||||
new "Lewy spust\nLewe ramię (L)"
|
||||
|
||||
# gui/game/screens.rpy:1082
|
||||
old "Right Shoulder"
|
||||
new "Prawe ramię (R)"
|
||||
|
||||
# gui/game/screens.rpy:1087
|
||||
old "D-Pad, Sticks"
|
||||
new "D-Pad, Gałka"
|
||||
|
||||
# gui/game/screens.rpy:1091
|
||||
old "Start, Guide"
|
||||
new "Start, Guide"
|
||||
|
||||
# gui/game/screens.rpy:1095
|
||||
old "Y/Top Button"
|
||||
new "Y/górny przycisk"
|
||||
|
||||
# gui/game/screens.rpy:1098
|
||||
old "Calibrate"
|
||||
new "Kalibracja"
|
||||
|
||||
# gui/game/screens.rpy:1126
|
||||
old "## Additional screens"
|
||||
new "## Dodatkowe ekrany"
|
||||
|
||||
# gui/game/screens.rpy:1130
|
||||
old "## Confirm screen"
|
||||
new "## Ekran potwierdzenia"
|
||||
|
||||
# gui/game/screens.rpy:1132
|
||||
old "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
|
||||
new "## Ekran potwierdzenia jest wywoływany, gdy Ren'Py chce zadać graczowi pytanie tak lub nie."
|
||||
|
||||
# gui/game/screens.rpy:1135
|
||||
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:1139
|
||||
old "## Ensure other screens do not get input while this screen is displayed."
|
||||
new "## Upewnienie, że inne ekrany nie otrzymają danych wejściowych, podczas wyświetlenia tego ekranu."
|
||||
|
||||
# gui/game/screens.rpy:1163
|
||||
old "Yes"
|
||||
new "Tak"
|
||||
|
||||
# gui/game/screens.rpy:1164
|
||||
old "No"
|
||||
new "Nie"
|
||||
|
||||
# gui/game/screens.rpy:1166
|
||||
old "## Right-click and escape answer \"no\"."
|
||||
new "## Prawy przycisk i Escape wybiera odpowiedź \"Nie\"."
|
||||
|
||||
# gui/game/screens.rpy:1193
|
||||
old "## Skip indicator screen"
|
||||
new "## Pomiń ekran wskaźnika"
|
||||
|
||||
# gui/game/screens.rpy:1195
|
||||
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
|
||||
new "## Wyświetlany jest ekran skip_indicator, który wskazuje, że pomijanie jest w toku."
|
||||
|
||||
# gui/game/screens.rpy:1198
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
|
||||
|
||||
# gui/game/screens.rpy:1210
|
||||
old "Skipping"
|
||||
new "Pomijanie"
|
||||
|
||||
# gui/game/screens.rpy:1217
|
||||
old "## This transform is used to blink the arrows one after another."
|
||||
new "## Transformacja służy do migania strzałek jedna po drugiej"
|
||||
|
||||
# gui/game/screens.rpy:1244
|
||||
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
|
||||
new "## Należy użyć czcionki, która zawiera mały czarny trójkącik (BLACK RIGHT-POINTING SMALL TRIANGLE glyph)."
|
||||
|
||||
# gui/game/screens.rpy:1249
|
||||
old "## Notify screen"
|
||||
new "## Ekran powiadomień"
|
||||
|
||||
# gui/game/screens.rpy:1251
|
||||
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 "## Ekran powiadomień służy do pokazywania graczowi wiadomości. (Na przykład, gdy gra została szybko zapisana lub zrobiono zrzut ekranu)."
|
||||
|
||||
# gui/game/screens.rpy:1254
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
|
||||
new "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
|
||||
|
||||
# gui/game/screens.rpy:1288
|
||||
old "## NVL screen"
|
||||
new "## Ekran NVL"
|
||||
|
||||
# gui/game/screens.rpy:1290
|
||||
old "## This screen is used for NVL-mode dialogue and menus."
|
||||
new "## Ten ekran jest używany do dialogów i menu w trybie NVL"
|
||||
|
||||
# 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:1303
|
||||
old "## Displays dialogue in either a vpgrid or the vbox."
|
||||
new "## Wyświetla dialog w vpgrid lub vbox."
|
||||
|
||||
# gui/game/screens.rpy:1316
|
||||
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 "## Wyświetla menu, jeśli jest podane. Menu może być wyświetlane niepoprawnie, jeśli config.narrator_menu jest ustawione na True, tak jak powyżej"
|
||||
|
||||
# gui/game/screens.rpy:1346
|
||||
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
|
||||
new "## Kontrola maksymalnej liczbę wpisów w trybie NVL, które można wyświetlić jednocześnie."
|
||||
|
||||
# gui/game/screens.rpy:1408
|
||||
old "## Mobile Variants"
|
||||
new "## Warianty mobilne"
|
||||
|
||||
# gui/game/screens.rpy:1415
|
||||
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 "## Ponieważ mysz może nie być obecna, zastępujemy szybkie menu wersją, która używa mniejszej liczby i większych przycisków, które są łatwiejsze w dotyku."
|
||||
|
||||
# gui/game/screens.rpy:1433
|
||||
old "Menu"
|
||||
new "Menu"
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# The script of the game goes in this file.
|
||||
|
||||
# Declare characters used by this game. The color argument colorizes the
|
||||
# name of the character.
|
||||
|
||||
define e = Character("Eileen")
|
||||
|
||||
|
||||
# The game starts here.
|
||||
|
||||
label start:
|
||||
|
||||
# Show a background. This uses a placeholder by default, but you can
|
||||
# add a file (named either "bg room.png" or "bg room.jpg") to the
|
||||
# images directory to show it.
|
||||
|
||||
scene bg room
|
||||
|
||||
# This shows a character sprite. A placeholder is used, but you can
|
||||
# replace it by adding a file named "eileen happy.png" to the images
|
||||
# directory.
|
||||
|
||||
show eileen happy
|
||||
|
||||
# These display lines of dialogue.
|
||||
|
||||
e "You've created a new Ren'Py game."
|
||||
|
||||
e "Once you add a story, pictures, and music, you can release it to the world!"
|
||||
|
||||
# This ends the game.
|
||||
|
||||
return
|
||||
@@ -892,3 +892,19 @@ translate russian strings:
|
||||
# renpy/common/00preferences.rpy:464
|
||||
old "system cursor"
|
||||
new "системный курсор"
|
||||
|
||||
# renpy/common/00accessibility.rpy:180
|
||||
old "High Contrast Text"
|
||||
new "Высококонтрастный текст"
|
||||
|
||||
# renpy/common/00preferences.rpy:487
|
||||
old "renderer menu"
|
||||
new "меню рендерера"
|
||||
|
||||
# renpy/common/00preferences.rpy:490
|
||||
old "accessibility menu"
|
||||
new "меню специальных возможностей"
|
||||
|
||||
# renpy/common/00preferences.rpy:493
|
||||
old "high contrast text"
|
||||
new "высококонтрастный текст"
|
||||
|
||||
@@ -276,3 +276,11 @@ translate russian strings:
|
||||
# renpy/common/00gamepad.rpy:58
|
||||
old "Press or move the '[control!s]' [kind]."
|
||||
new "Нажмите или сдвиньте [kind] '[control!s]'"
|
||||
|
||||
# renpy/common/00gltest.rpy:136
|
||||
old "Enable (No Blocklist)"
|
||||
new "Включить (игнорировать блоклист)"
|
||||
|
||||
# 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."
|
||||
new "Файл {a=edit:1:log.txt}log.txt{/a} может содержать информацию, которая поможет вам определить, что не так с вашим компьютером."
|
||||
|
||||
@@ -1684,3 +1684,167 @@ translate russian strings:
|
||||
# game/androidstrings.rpy:45
|
||||
old "Automatically installing expansion APKs {a=https://issuetracker.google.com/issues/160942333}may not work on Android 11{/a}."
|
||||
new "Автоматическая установка APK-расширения {a=https://issuetracker.google.com/issues/160942333}может не работать на Android 11{/a}."
|
||||
|
||||
# game/android.rpy:35
|
||||
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 "Для сборки пакетов Android под Windows требуется 64-bit/x64 Java 8 Development Kit. JDK отличается от JRE, поэтому возможно, что у вас есть Java без JDK.\n\n{a=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}Cкачайте и установите JDK{/a}, затем перезапустите лаунчер Ren'Py."
|
||||
|
||||
# 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 был установлен, но ключ Bundle не был настроен. Пожалуйста, создайте новый ключ или восстановите bundle.keystore."
|
||||
|
||||
# game/android.rpy:40
|
||||
old "Please select if you want a Play Bundle (for Google Play), or a Universal APK (for sideloading and other app stores)."
|
||||
new "Пожалуйста, выберите, хотите ли вы создать Play Bundle (для Google Play) или универсальный APK (для других магазинов приложений и распространения локально)."
|
||||
|
||||
# game/android.rpy:55
|
||||
old "Lists the connected devices."
|
||||
new "Список подключенных устройств."
|
||||
|
||||
# game/android.rpy:56
|
||||
old "Pairs with a device over Wi-Fi, on Android 11+."
|
||||
new "Сопряжение с устройством по Wi-Fi, на Android 11+"
|
||||
|
||||
# game/android.rpy:57
|
||||
old "Connects to a device over Wi-Fi, on Android 11+."
|
||||
new "Подключение к устройству по Wi-Fi, на Android 11+"
|
||||
|
||||
# game/android.rpy:58
|
||||
old "Disconnects a device connected over Wi-Fi."
|
||||
new "Отключение от устройства по Wi-Fi, на Android 11+"
|
||||
|
||||
# game/android.rpy:60
|
||||
old "Builds an Android App Bundle (ABB), intended to be uploaded to Google Play. This can include up to 2GB of data."
|
||||
new "Создает пакет приложений для Android (ABB), предназначенный для загрузки в Google Play. Он может включать до 2 ГБ данных."
|
||||
|
||||
# game/android.rpy:61
|
||||
old "Builds a Universal APK package, intended for sideloading and stores other than Google Play. This can include up to 2GB of data."
|
||||
new "Создает универсальный APK, предназначенный для магазинов, отличных от Google Play и локального распространения. Он может включать до 2 ГБ данных."
|
||||
|
||||
# game/android.rpy:396
|
||||
old "Play Bundle"
|
||||
new "Play Bundle"
|
||||
|
||||
# game/android.rpy:401
|
||||
old "Universal APK"
|
||||
new "Универсальный APK"
|
||||
|
||||
# game/android.rpy:451
|
||||
old "List Devices"
|
||||
new "Список устройств"
|
||||
|
||||
# game/android.rpy:455
|
||||
old "Wi-Fi Debugging Pair"
|
||||
new "Отладка сопряжения по Wi-Fi"
|
||||
|
||||
# game/android.rpy:459
|
||||
old "Wi-Fi Debugging Connect"
|
||||
new "Отладка подключения по Wi-Fi"
|
||||
|
||||
# game/android.rpy:463
|
||||
old "Wi-Fi Debugging Disconnect"
|
||||
new "Отладка отключения от Wi-Fi"
|
||||
|
||||
# game/android.rpy:562
|
||||
old "Wi-Fi Pairing Code"
|
||||
new "Код сопряжения по Wi-Fi"
|
||||
|
||||
# game/android.rpy:562
|
||||
old "If supported, this can be found in 'Developer options', 'Wireless debugging', 'Pair device with pairing code'."
|
||||
new "Если поддерживается, это можно найти в 'Настройки разработчика', 'Отладка беспроводной сети', 'Сопряжение устройства кодом сопряжения'."
|
||||
|
||||
# game/android.rpy:569
|
||||
old "Pairing Host & Port"
|
||||
new "Сопряжение через хост и порт"
|
||||
|
||||
# game/android.rpy:585
|
||||
old "IP Address & Port"
|
||||
new "IP-адрес и порт"
|
||||
|
||||
# game/android.rpy:585
|
||||
old "If supported, this can be found in 'Developer options', 'Wireless debugging'."
|
||||
new "Если поддерживается, это можно найти в 'Настройки разработчика', 'Отладка беспроводной сети'."
|
||||
|
||||
# game/android.rpy:601
|
||||
old "This can be found in 'List Devices'."
|
||||
new "Это можно найти в 'Список устройств'."
|
||||
|
||||
# game/androidstrings.rpy:16
|
||||
old "I'm installing the bundle."
|
||||
new "Установка Bundle."
|
||||
|
||||
# game/androidstrings.rpy:17
|
||||
old "Installing the bundle appears to have failed."
|
||||
new "Установка Bundle, похоже, не удалась."
|
||||
|
||||
# game/androidstrings.rpy:19
|
||||
old "Launching the app appears to have failed."
|
||||
new "Запуск приложения, похоже, не удался."
|
||||
|
||||
# game/androidstrings.rpy:32
|
||||
old "How much RAM do you want to allocate to Gradle?\n\nThis must be a positive integer number."
|
||||
new "Сколько оперативной памяти вы хотите выделить Gradle?\n\nЭто должно быть целое положительное число."
|
||||
|
||||
# game/androidstrings.rpy:33
|
||||
old "The RAM size must contain only numbers."
|
||||
new "Размер оперативной памяти должен содержать только числа."
|
||||
|
||||
# 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\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."
|
||||
new "Не удалось использовать javac для компиляции тестового файла. Если вы еще не установили Java Development Kit, пожалуйста, скачайте его с:\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nJDK отличается от JRE, поэтому возможно, что у вас есть Java без JDK. Без работающего JDK невозможно продолжить."
|
||||
|
||||
# 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 "Версия Java на вашем компьютере, похоже, не JDK 8, которая является единственной версией, поддерживаемой Android SDK. Если вам нужно установить JDK 8, вы можете загрузить его с:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nВы также можете установить переменную среды JAVA_HOME, чтобы использовать другую версию Java."
|
||||
|
||||
# game/androidstrings.rpy:57
|
||||
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 ""
|
||||
|
||||
# game/androidstrings.rpy:61
|
||||
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 "Я могу создать для вас ключ подписи приложения. Этот ключ необходим для создания универсального APK для магазинов, отличных от Google Play и локального распространения.\n\n Хотите создать ключ?"
|
||||
|
||||
# game/androidstrings.rpy:62
|
||||
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 "Я создам ключ в файле bundle.keystore.\n\nВам нужно создать резервную копию этого файла. Если вы потеряете его, вы не сможете обновить ваше приложение.\n\nВы также должны хранить ключ в безопасности. Если злоумышленники получат этот файл, они могут создать поддельную версию вашего приложения и, возможно, украсть данные ваших пользователей.\n\nСделаете ли вы резервную копию bundle.keystore и сохраните ее в безопасном месте?"
|
||||
|
||||
# game/androidstrings.rpy:63
|
||||
old "Could not create bundle.keystore. Is keytool in your path?"
|
||||
new "Не удалось создать bundle.keystore. Проверьте, есть ли keytool в path?"
|
||||
|
||||
# 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\пЭто не перезапишет gui/main_menu.png, gui/game_menu.png, и gui/window_icon.png, но создаст несуществующие файлы.{/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 "Существуют проблемы с симулятором iOS на Apple Silicon. Пожалуйста, протестируйте на x86_64 или iOS-устройствах."
|
||||
|
||||
# game/preferences.rpy:206
|
||||
old "Daily check for update"
|
||||
new "Ежедневная проверка обновлений"
|
||||
|
||||
# game/preferences.rpy:210
|
||||
old "Default theme"
|
||||
new "Тема по умолчанию"
|
||||
|
||||
# game/preferences.rpy:212
|
||||
old "Dark theme"
|
||||
new "Тёмная тема"
|
||||
|
||||
# game/preferences.rpy:213
|
||||
old "Custom theme"
|
||||
new "Пользовательская тема"
|
||||
|
||||
# game/web.rpy:330
|
||||
old "Images and music can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
|
||||
new "Изображения и музыка могут быть загружаемы во время игры. В созданном файле 'progressive_download.txt', вы можете настроить это поведение."
|
||||
|
||||
# game/web.rpy:334
|
||||
old "Current limitations in the web platform mean that loading large images may cause audio or framerate glitches, and lower performance in general. Movies aren't supported."
|
||||
new "Текущие ограничения веб-платформы означают, что загрузка больших изображений может привести к сбоям звука или частоты кадров, а также к снижению производительности в целом. Видео-файлы не поддерживаются."
|
||||
|
||||
# game/web.rpy:338
|
||||
old "There are known issues with Safari and other Webkit-based browsers that may prevent games from running."
|
||||
new "Существуют проблемы с Safari и другими браузерами на базе Webkit, которые могут не позволить запустить игру."
|
||||
|
||||
@@ -201,3 +201,6 @@ translate russian strings:
|
||||
old "## The username and project name associated with an itch.io project, separated by a slash."
|
||||
new "## Имя пользователя и название проекта, ассоциированные с проектом на itch.io, разделённые дробью."
|
||||
|
||||
# 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 "## Эти три переменные управляют, среди прочего, тем, какие микшеры показываются игроку по умолчанию. Установка одной из них в False скроет соответствующий микшер."
|
||||
|
||||
@@ -672,3 +672,7 @@ translate russian strings:
|
||||
# screens.rpy:1431
|
||||
old "Menu"
|
||||
new "Меню"
|
||||
|
||||
# gui/game/screens.rpy:1049
|
||||
old "Opens the accessibility menu."
|
||||
new "Открывает меню специальных возможностей."
|
||||
|
||||
@@ -692,7 +692,7 @@ translate spanish strings:
|
||||
|
||||
# 00accessibility.rpy:129
|
||||
old "Clipboard"
|
||||
new "Potapapeles"
|
||||
new "Portapapeles"
|
||||
|
||||
# 00accessibility.rpy:133
|
||||
old "Debug"
|
||||
@@ -750,3 +750,18 @@ translate spanish strings:
|
||||
old "system cursor"
|
||||
new "cursor del sistema"
|
||||
|
||||
# renpy/common/00accessibility.rpy:180
|
||||
old "High Contrast Text"
|
||||
new "Texto de Alto Contraste"
|
||||
|
||||
# renpy/common/00preferences.rpy:487
|
||||
old "renderer menu"
|
||||
new "menú de renderizado"
|
||||
|
||||
# renpy/common/00preferences.rpy:490
|
||||
old "accessibility menu"
|
||||
new "menú de accesibilidad"
|
||||
|
||||
# renpy/common/00preferences.rpy:493
|
||||
old "high contrast text"
|
||||
new "texto de alto contraste"
|
||||
|
||||
@@ -10,15 +10,15 @@
|
||||
|
||||
# 00gltest.rpy:79
|
||||
old "Force Angle/DirectX Renderer"
|
||||
new "Forzar 'Angle/DirectX Renderer'"
|
||||
new "Forzar Renderizador 'Angle/DirectX'"
|
||||
|
||||
# 00gltest.rpy:83
|
||||
old "Force OpenGL Renderer"
|
||||
new "Forzar 'OpenGL Renderer'"
|
||||
new "Forzar Renderizador 'OpenGL'"
|
||||
|
||||
# 00gltest.rpy:87
|
||||
old "Force Software Renderer"
|
||||
new "Forzar 'Software Renderer'"
|
||||
new "Forzar Renderizado por Software"
|
||||
|
||||
# 00gltest.rpy:93
|
||||
old "NPOT"
|
||||
@@ -242,23 +242,23 @@
|
||||
|
||||
# renpy/common/00gltest.rpy:81
|
||||
old "Force GL Renderer"
|
||||
new "Force renderizador GL"
|
||||
new "Forzar renderizador GL"
|
||||
|
||||
# renpy/common/00gltest.rpy:85
|
||||
old "Force GLES Renderer"
|
||||
new "Force renderizador GLES"
|
||||
new "Forzar renderizador GLES"
|
||||
|
||||
# renpy/common/00gltest.rpy:90
|
||||
old "Force ANGLE2 Renderer"
|
||||
new "Force renderizador ANGLE2"
|
||||
new "Forzar renderizador ANGLE2"
|
||||
|
||||
# renpy/common/00gltest.rpy:94
|
||||
old "Force GL2 Renderer"
|
||||
new "Force renderizador GL2"
|
||||
new "Forzar renderizador GL2"
|
||||
|
||||
# renpy/common/00gltest.rpy:98
|
||||
old "Force GLES2 Renderer"
|
||||
new "Force renderizador GLES2"
|
||||
new "Forzar renderizador GLES2"
|
||||
|
||||
# renpy/common/00gltest.rpy:218
|
||||
old "This game requires use of GL2 that can't be initialised."
|
||||
@@ -275,3 +275,12 @@
|
||||
# renpy/common/00gamepad.rpy:58
|
||||
old "Press or move the '[control!s]' [kind]."
|
||||
new "Presiona o mueve el '[control!s]' [kind]."
|
||||
|
||||
# renpy/common/00gltest.rpy:136
|
||||
old "Enable (No Blocklist)"
|
||||
new "Habilitar (sin Blocklist)"
|
||||
|
||||
# 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."
|
||||
new "El archivo {a=edit:1:log.txt}log.txt{/a} puede contener información para ayudarte a encontrar el problema en tu ordenador."
|
||||
|
||||
|
||||
@@ -32,9 +32,9 @@
|
||||
old "To build Android packages, please download RAPT, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher."
|
||||
new "Para construir un paquete para Android, por favor descarga RAPT, descomprímelo y colócalo dentro de la carpeta de Ren'Py. Después reinicia el launcher de Ren'Py."
|
||||
|
||||
# android.rpy:31
|
||||
old "An x86 Java 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=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Se necesita Java Development Kit de 32-bit para construir paquetes de Android en Windows. El JDK es diferente al JRE, es posible que tengas Java sin tener el JDK.\n\nPor favor {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}descarga e instala el JDK{/a}, después, reinicia Ren'Py."
|
||||
# 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 "Se requiere un kit de desarrollo Java 8 de 64 bits/x64 para construir paquetes de Android en Windows. El JDK es diferente del JRE, por lo que es posible que tengas Java sin el JDK.\n\nPor favor, {a=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}descarga e instala el JDK{/a}, luego reinicia el launcher de Ren'Py."
|
||||
|
||||
# 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."
|
||||
@@ -606,7 +606,7 @@
|
||||
|
||||
# gui7.rpy:358
|
||||
old "Custom. The GUI is optimized for a 16:9 aspect ratio."
|
||||
new "Personalizas. La GUI está optimizada para una ratio 16:9."
|
||||
new "Personalizado. La GUI está optimizada para una ratio 16:9."
|
||||
|
||||
# gui7.rpy:373
|
||||
old "WIDTH"
|
||||
@@ -1462,13 +1462,13 @@ translate spanish strings:
|
||||
old "I'm compiling a short test program, to see if you have a working JDK on your system."
|
||||
new "Estoy compilando un programa de prueba corto, para ver si tienes un JDK en funcionamiento en tu sistema."
|
||||
|
||||
# game/androidstrings.rpy:52
|
||||
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\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\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."
|
||||
new "No pude usar javac para compilar un archivo de prueba. Si aún no has instalado el Kit de desarrollo de Java, descárgalo de:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nEl JDK es diferente del JRE, por lo que es posible que tengas Java sin tener el JDK. Sin un JDK en funcionamiento, no puedo continuar."
|
||||
# game/androidstrings.rpy:54
|
||||
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\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."
|
||||
new "No pude usar javac para compilar un archivo de prueba. Si aún no has instalado el Kit de desarrollo de Java, descárgalo de:\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nEl JDK es diferente del JRE, por lo que es posible que tengas Java sin tener el JDK. Sin un JDK en funcionamiento, no puedo continuar."
|
||||
|
||||
# game/androidstrings.rpy:53
|
||||
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\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
|
||||
new "La versión de Java en su computadora no parece ser JDK 8, que es la única versión compatible con el SDK de Android. Si necesitas instalar JDK 8, puedes descargarlo de:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nTambién puedes configurar la Variable de entorno JAVA_HOME para usar una versión diferente de Java."
|
||||
# game/androidstrings.rpy:55
|
||||
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\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
|
||||
new "La versión de Java en su computadora no parece ser JDK 8, que es la única versión compatible con el SDK de Android. Si necesitas instalar JDK 8, puedes descargarlo de:\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nTambién puedes configurar la Variable de entorno JAVA_HOME para usar una versión diferente de Java."
|
||||
|
||||
# game/androidstrings.rpy:54
|
||||
old "The JDK is present and working. Good!"
|
||||
@@ -1532,7 +1532,7 @@ translate spanish strings:
|
||||
|
||||
# game/androidstrings.rpy:69
|
||||
old "Could not create android.keystore. Is keytool in your path?"
|
||||
new "No se pudo crear android.keystore. ¿Esta keytool en tu ruta?"
|
||||
new "No se pudo crear android.keystore. ¿Está keytool en tu ruta?"
|
||||
|
||||
# game/androidstrings.rpy:70
|
||||
old "I've finished creating android.keystore. Please back it up, and keep it in a safe place."
|
||||
@@ -1721,7 +1721,7 @@ translate spanish strings:
|
||||
# game/install.rpy:172
|
||||
old "Steam support has already been installed."
|
||||
new "El soporte de Steam ya está instalado."
|
||||
|
||||
|
||||
# game/androidstrings.rpy:21
|
||||
old "The universal version works everywhere but is larger."
|
||||
new "La versión universal funciona en todas partes pero es más grande."
|
||||
@@ -1730,4 +1730,131 @@ translate spanish strings:
|
||||
old "Automatically installing expansion APKs {a=https://issuetracker.google.com/issues/160942333}may not work on Android 11{/a}."
|
||||
new "Es posible que la instalación automática de APK de expansión {a=https://issuetracker.google.com/issues/160942333} no funcione en Android 11 {/a}."
|
||||
|
||||
# game/preferences.rpy:199
|
||||
old "Default theme"
|
||||
new "Tema predeterminado"
|
||||
|
||||
# game/preferences.rpy:201
|
||||
old "Clear theme"
|
||||
new "Tema claro"
|
||||
|
||||
# game/preferences.rpy:203
|
||||
old "Dark theme"
|
||||
new "Tema oscuro"
|
||||
|
||||
# game/preferences.rpy:209
|
||||
old "Custom theme"
|
||||
new "Tema personalizado"
|
||||
|
||||
# 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 "Se ha instalado RAPT, pero no se ha configurado una clave de paquete. Cree una nueva clave o restaure bundle.keystore."
|
||||
|
||||
# game/android.rpy:40
|
||||
old "Please select if you want a Play Bundle (for Google Play), or a Universal APK (for sideloading and other app stores)."
|
||||
new "Selecciona si quieres un Play Bundle (para Google Play) o un APK Universal (para descarga lateral y otras tiendas de aplicaciones)."
|
||||
|
||||
# game/android.rpy:55
|
||||
old "Pairs with a device over Wi-Fi, on Android 11+."
|
||||
new "Empareja con un dispositivo a través de Wi-Fi, en Android 11+."
|
||||
|
||||
# game/android.rpy:56
|
||||
old "Connects to a device over Wi-Fi, on Android 11+."
|
||||
new "Conecta a un dispositivo a través de Wi-Fi, en Android 11+."
|
||||
|
||||
# game/android.rpy:58
|
||||
old "Builds an Android App Bundle (ABB), intended to be uploaded to Google Play. This can include up to 2GB of data."
|
||||
new "Crea un paquete de aplicaciones de Android (ABB), destinado a cargarse en Google Play. Esto puede incluir hasta 2 GB de datos."
|
||||
|
||||
# game/android.rpy:59
|
||||
old "Builds a Universal APK package, intended for sideloading and stores other than Google Play. This can include up to 2GB of data."
|
||||
new "Crea un paquete de APK universal, destinado a la descarga lateral y a tiendas distintas de Google Play. Esto puede incluir hasta 2 GB de datos."
|
||||
|
||||
# game/android.rpy:388
|
||||
old "Play Bundle"
|
||||
new "Play Bundle"
|
||||
|
||||
# game/android.rpy:392
|
||||
old "Universal APK"
|
||||
new "APK Universal"
|
||||
|
||||
# game/android.rpy:449
|
||||
old "Wi-Fi Debugging Pair"
|
||||
new "Depuración de par de Wi-Fi "
|
||||
|
||||
# game/android.rpy:453
|
||||
old "Wi-Fi Debugging Connect"
|
||||
new "Depuración de conexión de Wi-Fi "
|
||||
|
||||
# game/android.rpy:541
|
||||
old "Wi-Fi Pairing Code"
|
||||
new "Código de emparejamiento de Wi-Fi"
|
||||
|
||||
# game/android.rpy:541
|
||||
old "If supported, this can be found in 'Developer options', 'Wireless debugging', 'Pair device with pairing code'."
|
||||
new "Si es compatible, puede encontrarlo en 'Opciones de desarrollador', 'Depuración inalámbrica', 'Emparejar dispositivo con código de emparejamiento'."
|
||||
|
||||
# game/android.rpy:548
|
||||
old "Pairing Host & Port"
|
||||
new "Emparejamiento de host y puerto"
|
||||
|
||||
# game/android.rpy:564
|
||||
old "IP Address & Port"
|
||||
new "Dirección IP y puerto"
|
||||
|
||||
# game/android.rpy:564
|
||||
old "If supported, this can be found in 'Developer options', 'Wireless debugging'."
|
||||
new "Si es compatible, puede encontrarlo en 'Opciones de desarrollador', 'Depuración inalámbrica'."
|
||||
|
||||
# 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\nEsto no sobrescribirá gui/main_menu.png, gui/game_menu.png y gui/window_icon.png, pero creará archivos que no existen.{/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 "Hay problemas conocidos con el simulador de iOS en Apple Silicon. Pruebe en dispositivos x86_64 o iOS."
|
||||
|
||||
# game/preferences.rpy:213
|
||||
old "Daily check for update"
|
||||
new "Comprobación diaria de actualizaciones"
|
||||
|
||||
# game/web.rpy:330
|
||||
old "Images and music can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
|
||||
new "Las imágenes y la música se pueden descargar mientras se reproduce. Se creará un archivo 'progress_download.txt' para que pueda configurar este comportamiento."
|
||||
|
||||
# game/web.rpy:334
|
||||
old "Current limitations in the web platform mean that loading large images may cause audio or framerate glitches, and lower performance in general. Movies aren't supported."
|
||||
new "Las limitaciones actuales en la plataforma web significan que la carga de imágenes grandes puede causar problemas de audio o de velocidad de fotogramas, y un rendimiento más bajo en general. No se admiten películas."
|
||||
|
||||
# game/web.rpy:338
|
||||
old "There are known issues with Safari and other Webkit-based browsers that may prevent games from running."
|
||||
new "Existen problemas conocidos con Safari y otros navegadores basados en Webkit que pueden impedir que los juegos se ejecuten."
|
||||
|
||||
# game/androidstrings.rpy:16
|
||||
old "I'm installing the bundle."
|
||||
new "Estoy instalando el paquete."
|
||||
|
||||
# game/androidstrings.rpy:30
|
||||
old "How much RAM do you want to allocate to Gradle?\n\nThis must be a positive integer number."
|
||||
new "¿Cuánta RAM desea asignar a Gradle?\n\nDebe ser un número entero positivo."
|
||||
|
||||
# game/androidstrings.rpy:31
|
||||
old "The RAM size must contain only numbers."
|
||||
new "El tamaño de la RAM debe contener solo números."
|
||||
|
||||
# game/androidstrings.rpy:61
|
||||
old "Could not create bundle.keystore. Is keytool in your path?"
|
||||
new "No se pudo crear bundle.keystore. ¿Está keytool en tu ruta?"
|
||||
|
||||
# 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 "Puedo crear una clave de firma de la aplicación para ti. Esta clave es necesaria para crear un APK universal para la descarga y las tiendas que no sean Google Play.\n\n¿Desea crear una clave?"
|
||||
|
||||
# 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 "Puedo crearte una clave de firma de paquete. Esta clave es necesaria para crear un paquete de aplicaciones de Android (AAB) para cargarlo en Google Play.\n\n¿Desea crear una clave?"
|
||||
|
||||
# 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 "Crearé la clave en el archivo bundle.keystore.\n\nNecesitas hacer una copia de seguridad de este archivo. Si la pierdes, no podrás actualizar tu aplicación.\n\nTambién necesitas mantener la clave segura. Si personas malvadas obtienen este archivo, podrían crear versiones falsas de tu aplicación y potencialmente robar los datos de tus usuarios.\n\n¿Harás una copia de seguridad de bundle.keystore y la guardarás en un lugar seguro?"
|
||||
|
||||
|
||||
@@ -199,3 +199,8 @@
|
||||
# options.rpy:216
|
||||
old "## The username and project name associated with an itch.io project, separated by a slash."
|
||||
new "## Los nombres de usuario y de proyecto asociados con un proyecto itch.io, separados por una barra."
|
||||
|
||||
# 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 "## Estas tres variables controlan, entre otras cosas, qué mezcladores se muestran al reproductor de forma predeterminada. Establecer uno de estos en False ocultará el mezclador apropiado. "
|
||||
|
||||
|
||||
@@ -677,3 +677,7 @@ translate spanish strings:
|
||||
old "## The quit button is banned on iOS and unnecessary on Android and Web."
|
||||
new "## El botón de salida está prohibido en iOS y no es necesario en Android y Web."
|
||||
|
||||
# gui/game/screens.rpy:1049
|
||||
old "Opens the accessibility menu."
|
||||
new "Abre el menú de accesibilidad."
|
||||
|
||||
|
||||
+29
-16
@@ -102,8 +102,8 @@ screen update_channel(channels):
|
||||
|
||||
for c in channels:
|
||||
|
||||
if c["split_version"] != list(renpy.version_tuple):
|
||||
$ action = updater.Update(c["url"], simulate=UPDATE_SIMULATE, public_key=PUBLIC_KEY, confirm=False)
|
||||
if c["split_version"] != list(renpy.version_tuple):
|
||||
$ action = [updater.Update(c["url"], simulate=UPDATE_SIMULATE, public_key=PUBLIC_KEY, confirm=False), SetField(persistent, "has_update", False)]
|
||||
$ current = ""
|
||||
else:
|
||||
$ action = None
|
||||
@@ -171,7 +171,7 @@ screen updater:
|
||||
|
||||
bar:
|
||||
range 1.0
|
||||
value u.progress
|
||||
value (u.progress or 0.0)
|
||||
style "l_progress_bar"
|
||||
|
||||
label _("Ren'Py Update") style "l_info_label"
|
||||
@@ -184,19 +184,32 @@ screen updater:
|
||||
|
||||
label update:
|
||||
|
||||
python hide:
|
||||
interface.processing(_("Fetching the list of update channels"))
|
||||
|
||||
import urllib2
|
||||
import json
|
||||
|
||||
with interface.error_handling(_("downloading the list of update channels")):
|
||||
channel_data = urllib2.urlopen(CHANNELS_URL, context=ssl_context())
|
||||
|
||||
with interface.error_handling(_("parsing the list of update channels")):
|
||||
channels = json.load(channel_data)["releases"]
|
||||
|
||||
renpy.call_screen("update_channel", channels)
|
||||
$ update_channels = fetch_update_channels(quiet=False)
|
||||
call screen update_channel(update_channels) nopredict
|
||||
|
||||
jump front_page
|
||||
|
||||
init python:
|
||||
|
||||
def fetch_update_channels(quiet=True):
|
||||
|
||||
if not quiet:
|
||||
interface.processing(_("Fetching the list of update channels"))
|
||||
|
||||
import requests
|
||||
|
||||
if not quiet:
|
||||
with interface.error_handling(_("downloading the list of update channels")):
|
||||
channels = requests.get(CHANNELS_URL).json()["releases"]
|
||||
else:
|
||||
channels = requests.get(CHANNELS_URL).json()["releases"]
|
||||
|
||||
persistent.has_update = False
|
||||
|
||||
for chan in channels:
|
||||
if chan["channel"] == "Release":
|
||||
if chan["split_version"] > list(renpy.version_tuple):
|
||||
persistent.has_update = True
|
||||
break
|
||||
|
||||
return channels
|
||||
|
||||
+7
-14
@@ -104,7 +104,7 @@ init python:
|
||||
+ "# +/- type path\n"
|
||||
+ '- image game/gui/**\n'
|
||||
+ '+ image game/**\n'
|
||||
+ '+ music game/music/**\n'
|
||||
+ '+ music game/audio/**\n'
|
||||
+ '+ voice game/voice/**\n'
|
||||
)
|
||||
|
||||
@@ -311,17 +311,6 @@ screen web():
|
||||
|
||||
add SPACER
|
||||
|
||||
text _("Support:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
frame style "l_indent":
|
||||
|
||||
has vbox
|
||||
|
||||
textbutton _("RenPyWeb Home") action OpenURL("https://renpy.beuc.net/")
|
||||
textbutton _("Beuc's Patreon") action OpenURL("https://www.beuc.net/donate/")
|
||||
|
||||
|
||||
# Right side.
|
||||
frame:
|
||||
@@ -338,11 +327,15 @@ screen web():
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
text _("Images and musics can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior.")
|
||||
text _("Images and music can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior.")
|
||||
|
||||
add SPACER
|
||||
|
||||
text _("Current limitations in the web platform mean that loading large images, audio files, or movies may cause audio or framerate glitches, and lower performance in general.")
|
||||
text _("Current limitations in the web platform mean that loading large images may cause audio or framerate glitches, and lower performance in general. Movies aren't supported.")
|
||||
|
||||
add SPACER
|
||||
|
||||
text _("There are known issues with Safari and other Webkit-based browsers that may prevent games from running.")
|
||||
|
||||
textbutton _("Return") action Jump("front_page") style "l_left_button"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -22,7 +22,6 @@ renpy.display.render gen/renpy.display.render.c
|
||||
renpy.display.accelerator gen/renpy.display.accelerator.c
|
||||
renpy.uguu.gl gen/renpy.uguu.gl.c
|
||||
renpy.uguu.uguu gen/renpy.uguu.uguu.c
|
||||
renpy.uguu.angle gen/renpy.uguu.angle.c
|
||||
renpy.gl.gldraw gen/renpy.gl.gldraw.c
|
||||
renpy.gl.gltexture gen/renpy.gl.gltexture.c
|
||||
renpy.gl.glenviron_shader gen/renpy.gl.glenviron_shader.c
|
||||
|
||||
+21
-1
@@ -116,6 +116,7 @@ cdef extern from "steam/steam_api.h":
|
||||
|
||||
cdef cppclass CSteamID:
|
||||
AccountID_t GetAccountID()
|
||||
uint64 ConvertToUint64()
|
||||
|
||||
cdef cppclass ISteamUser:
|
||||
CSteamID GetSteamID()
|
||||
@@ -490,6 +491,24 @@ def get_persona_name():
|
||||
return SteamFriends().GetPersonaName().decode("utf-8")
|
||||
|
||||
|
||||
cdef extern from "steam/steam_api_flat.h":
|
||||
ctypedef unsigned long long uint64_steamid
|
||||
ISteamUser *SteamAPI_SteamUser_v021();
|
||||
uint64_steamid SteamAPI_ISteamUser_GetSteamID( ISteamUser* self );
|
||||
|
||||
def get_csteam_id():
|
||||
"""
|
||||
:doc: steam_user
|
||||
|
||||
Returns the user's full CSteamID as a 64-bit number..
|
||||
"""
|
||||
|
||||
# Accessing methods on CSteamID was crashing on Windows, so use
|
||||
# the flat API instead.
|
||||
|
||||
return SteamAPI_ISteamUser_GetSteamID(SteamAPI_SteamUser_v021())
|
||||
|
||||
|
||||
def get_account_id():
|
||||
"""
|
||||
:doc: steam_user
|
||||
@@ -497,7 +516,8 @@ def get_account_id():
|
||||
Returns the user's account ID.
|
||||
"""
|
||||
|
||||
return SteamUser().GetSteamID().GetAccountID()
|
||||
return get_csteam_id() & 0xffffffff
|
||||
|
||||
|
||||
cdef HAuthTicket h_ticket = 0
|
||||
ticket = None
|
||||
|
||||
+32
-5
@@ -258,6 +258,13 @@ typedef struct MediaState {
|
||||
/* Are frame drops allowed? */
|
||||
int frame_drops;
|
||||
|
||||
/* The time the pause happened, or 0 if we're not paused. */
|
||||
double pause_time;
|
||||
|
||||
/* The offset between now and the time of the current frame, at least for video. */
|
||||
double time_offset;
|
||||
|
||||
|
||||
} MediaState;
|
||||
|
||||
static AVFrame *dequeue_frame(FrameQueue *fq);
|
||||
@@ -991,6 +998,12 @@ int media_video_ready(struct MediaState *ms) {
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (ms->pause_time > 0) {
|
||||
goto done;
|
||||
}
|
||||
|
||||
double offset_time = current_time - ms->time_offset;
|
||||
|
||||
/*
|
||||
* If we have an obsolete frame, drop it.
|
||||
*/
|
||||
@@ -1020,7 +1033,7 @@ int media_video_ready(struct MediaState *ms) {
|
||||
|
||||
if (ms->surface_queue) {
|
||||
if (ms->video_pts_offset) {
|
||||
if (ms->surface_queue->pts + ms->video_pts_offset <= current_time + frame_early_delivery) {
|
||||
if (ms->surface_queue->pts + ms->video_pts_offset <= offset_time + frame_early_delivery) {
|
||||
rv = 1;
|
||||
}
|
||||
} else {
|
||||
@@ -1051,6 +1064,8 @@ SDL_Surface *media_read_video(MediaState *ms) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
double offset_time = current_time - ms->time_offset;
|
||||
|
||||
SDL_LockMutex(ms->lock);
|
||||
|
||||
#ifndef __EMSCRIPTEN__
|
||||
@@ -1059,15 +1074,19 @@ SDL_Surface *media_read_video(MediaState *ms) {
|
||||
}
|
||||
#endif
|
||||
|
||||
if (ms->pause_time > 0) {
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (!ms->surface_queue_size) {
|
||||
goto done;
|
||||
}
|
||||
|
||||
if (ms->video_pts_offset == 0.0) {
|
||||
ms->video_pts_offset = current_time - ms->surface_queue->pts;
|
||||
ms->video_pts_offset = offset_time - ms->surface_queue->pts;
|
||||
}
|
||||
|
||||
if (ms->surface_queue->pts + ms->video_pts_offset <= current_time + frame_early_delivery) {
|
||||
if (ms->surface_queue->pts + ms->video_pts_offset <= offset_time + frame_early_delivery) {
|
||||
sqe = dequeue_surface(&ms->surface_queue);
|
||||
ms->surface_queue_size -= 1;
|
||||
|
||||
@@ -1078,7 +1097,7 @@ done:
|
||||
/* Only signal if we've consumed something. */
|
||||
if (sqe) {
|
||||
ms->needs_decode = 1;
|
||||
ms->video_read_time = current_time;
|
||||
ms->video_read_time = offset_time;
|
||||
SDL_CondBroadcast(ms->cond);
|
||||
}
|
||||
|
||||
@@ -1567,7 +1586,6 @@ void media_start_end(MediaState *ms, double start, double end) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Marks the channel as having video.
|
||||
*/
|
||||
@@ -1576,6 +1594,15 @@ void media_want_video(MediaState *ms, int video) {
|
||||
ms->frame_drops = (video != 2);
|
||||
}
|
||||
|
||||
void media_pause(MediaState *ms, int pause) {
|
||||
if (pause && (ms->pause_time == 0)) {
|
||||
ms->pause_time = current_time;
|
||||
} else if ((!pause) && (ms->pause_time > 0)) {
|
||||
ms->time_offset += current_time - ms->pause_time;
|
||||
ms->pause_time = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void media_close(MediaState *ms) {
|
||||
|
||||
if (!ms->thread) {
|
||||
|
||||
@@ -70,6 +70,7 @@ MediaState *media_open(SDL_RWops *, const char *);
|
||||
void media_want_video(MediaState *, int);
|
||||
void media_start_end(MediaState *, double, double);
|
||||
void media_start(MediaState *);
|
||||
void media_pause(MediaState *, int);
|
||||
void media_close(MediaState *);
|
||||
|
||||
int media_read_audio(struct MediaState *is, Uint8 *stream, int len);
|
||||
@@ -878,6 +879,10 @@ void RPS_pause(int channel, int pause) {
|
||||
|
||||
c->paused = pause;
|
||||
|
||||
if (c->playing) {
|
||||
media_pause(c->playing, pause);
|
||||
}
|
||||
|
||||
error(SUCCESS);
|
||||
|
||||
}
|
||||
@@ -899,6 +904,9 @@ void RPS_unpause_all(void) {
|
||||
|
||||
for (i = 0; i < num_channels; i++) {
|
||||
channels[i].paused = 0;
|
||||
if (channels[i].playing) {
|
||||
media_pause(channels[i].playing, 0);
|
||||
}
|
||||
}
|
||||
|
||||
error(SUCCESS);
|
||||
|
||||
@@ -195,7 +195,6 @@ cython("renpy.display.accelerator", libs=sdl + [ 'z', 'm' ])
|
||||
|
||||
cython("renpy.uguu.gl", libs=sdl)
|
||||
cython("renpy.uguu.uguu", libs=sdl)
|
||||
cython("renpy.uguu.angle", libs=sdl)
|
||||
|
||||
cython("renpy.gl.gldraw", libs=sdl)
|
||||
cython("renpy.gl.gltexture", libs=sdl)
|
||||
|
||||
@@ -2,7 +2,6 @@ from __future__ import print_function
|
||||
from sympy import symbols, Matrix, pi, cos, sin, simplify
|
||||
import io
|
||||
|
||||
|
||||
matrix_names = [
|
||||
"xdx",
|
||||
"xdy",
|
||||
@@ -191,6 +190,12 @@ def rotate(g):
|
||||
|
||||
`x`, `y`, `x`
|
||||
The amount to rotate around the origin, in degrees.
|
||||
|
||||
The rotations are applied in order:
|
||||
|
||||
* A clockwise rotation by `x` degrees in the Y/Z plane.
|
||||
* A clockwise rotation by `y` degrees in the Z/X plane.
|
||||
* A clockwise rotation by `z` degrees in the X/Y plane.
|
||||
"""
|
||||
|
||||
x, y, z = g.parameters("x y z")
|
||||
@@ -278,7 +283,7 @@ def perspective(g):
|
||||
projection = Matrix(4, 4, [
|
||||
2.0 * p / w, 0.0, 0.0, 0.0,
|
||||
0.0, 2.0 * p / h, 0.0, 0.0,
|
||||
0.0, 0.0, -(f+n)/(f-n), -2 * f * n / (f - n),
|
||||
0.0, 0.0, -(f + n) / (f - n), -2 * f * n / (f - n),
|
||||
0.0, 0.0, -1.0, 0.0,
|
||||
])
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from sdl2 cimport SDL_GL_GetProcAddress
|
||||
from sdl2 cimport SDL_GL_GetProcAddress, SDL_GetError
|
||||
|
||||
found_functions = set()
|
||||
|
||||
@@ -13,6 +13,8 @@ cdef void *find_gl_command(names):
|
||||
found_functions.add(names[0].decode("utf-8"))
|
||||
return rv
|
||||
|
||||
import renpy
|
||||
renpy.display.log.write("UGUU couldn't find {}: {}".format(names[0], SDL_GetError()))
|
||||
|
||||
return NULL
|
||||
|
||||
|
||||
@@ -38,6 +38,17 @@ UGUUGL_PXD_HEADER = snarf("uguugl_pxd_header.pxd")
|
||||
UGUUGL_PYX_HEADER = snarf("uguugl_pyx_header.pyx")
|
||||
UGUU_PYX_HEADER = snarf("uguu_pyx_header.pyx")
|
||||
|
||||
FRAMEBUFFER_EXT_FUNCTIONS = {
|
||||
"glBindFramebuffer",
|
||||
"glBindRenderbuffer",
|
||||
"glDeleteFramebuffers",
|
||||
"glDeleteRenderbuffers",
|
||||
"glFramebufferRenderbuffer",
|
||||
"glFramebufferTexture2D",
|
||||
"glGenFramebuffers",
|
||||
"glGenRenderbuffers",
|
||||
"glRenderbufferStorage",
|
||||
}
|
||||
|
||||
GL_FEATURES = [
|
||||
"GL_VERSION_1_0",
|
||||
@@ -319,6 +330,10 @@ class XMLToPYX:
|
||||
names.sort()
|
||||
names.insert(0, i)
|
||||
|
||||
if (i in FRAMEBUFFER_EXT_FUNCTIONS) and ((i + "EXT") not in names):
|
||||
names.append(i + "EXT")
|
||||
print(names)
|
||||
|
||||
names = [ i.encode("utf-8") for i in names ]
|
||||
|
||||
w(f"")
|
||||
|
||||
+37
-8
@@ -62,6 +62,7 @@ import sys
|
||||
import os
|
||||
import copy
|
||||
import types
|
||||
import site
|
||||
|
||||
################################################################################
|
||||
# Version information
|
||||
@@ -69,19 +70,38 @@ import types
|
||||
|
||||
# Version numbers.
|
||||
try:
|
||||
from renpy.vc_version import vc_version
|
||||
from renpy.vc_version import vc_version, official, nightly
|
||||
except ImportError:
|
||||
vc_version = 0
|
||||
official = False
|
||||
nightly = False
|
||||
|
||||
# The tuple giving the version number.
|
||||
version_tuple = (7, 4, 3, vc_version)
|
||||
official = official and getattr(site, "renpy_build_official", False)
|
||||
|
||||
# The name of this version.
|
||||
version_name = "The Best One."
|
||||
if PY2:
|
||||
|
||||
# A string giving the version number only (8.0.1.123).
|
||||
# The tuple giving the version number.
|
||||
version_tuple = (7, 5, 0, vc_version)
|
||||
|
||||
# The name of this version.
|
||||
version_name = ""
|
||||
|
||||
else:
|
||||
|
||||
# The tuple giving the version number.
|
||||
version_tuple = (8, 0, 0, vc_version)
|
||||
|
||||
# The name of this version.
|
||||
version_name = "Heck Freezes Over"
|
||||
|
||||
# A string giving the version number only (8.0.1.123), with a suffix if needed.
|
||||
version_only = ".".join(str(i) for i in version_tuple)
|
||||
|
||||
if not official:
|
||||
version_only += "u"
|
||||
elif nightly:
|
||||
version_only += "n"
|
||||
|
||||
# A verbose string giving the version.
|
||||
version = "Ren'Py " + version_only
|
||||
|
||||
@@ -404,6 +424,7 @@ def import_all():
|
||||
import renpy.python
|
||||
import renpy.script
|
||||
import renpy.statements
|
||||
import renpy.util
|
||||
|
||||
global plog
|
||||
plog = renpy.performance.log
|
||||
@@ -471,6 +492,7 @@ def import_all():
|
||||
import renpy.display.emulator
|
||||
import renpy.display.tts
|
||||
import renpy.display.gesture
|
||||
import renpy.display.model
|
||||
|
||||
import renpy.display.error
|
||||
|
||||
@@ -586,6 +608,9 @@ def reload_all():
|
||||
# Clear all pending exceptions.
|
||||
sys.exc_clear()
|
||||
|
||||
# Quit audio.
|
||||
renpy.audio.audio.quit()
|
||||
|
||||
# Reset the styles.
|
||||
renpy.style.reset() # @UndefinedVariable
|
||||
|
||||
@@ -603,10 +628,12 @@ def reload_all():
|
||||
renpy.display.render.mark_sweep()
|
||||
|
||||
# Get rid of the draw module and interface.
|
||||
renpy.display.draw.quit()
|
||||
renpy.display.draw = None
|
||||
renpy.display.interface = None
|
||||
|
||||
if not renpy.session.get("_keep_renderer", False):
|
||||
renpy.display.draw.quit()
|
||||
renpy.display.draw = None
|
||||
|
||||
py_compile_cache = renpy.python.py_compile_cache
|
||||
reload_modules = renpy.config.reload_modules
|
||||
|
||||
@@ -706,6 +733,7 @@ if False:
|
||||
import renpy.python
|
||||
import renpy.script
|
||||
import renpy.statements
|
||||
import renpy.util
|
||||
|
||||
import renpy.styledata # @UnresolvedImport
|
||||
import renpy.style
|
||||
@@ -763,6 +791,7 @@ if False:
|
||||
import renpy.display.gesture
|
||||
import renpy.display.matrix
|
||||
import renpy.display.render
|
||||
import renpy.display.model
|
||||
|
||||
import renpy.display.error
|
||||
|
||||
|
||||
+30
-10
@@ -30,19 +30,22 @@ from __future__ import division, absolute_import, with_statement, print_function
|
||||
from renpy.compat import *
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import renpy
|
||||
|
||||
try:
|
||||
import site
|
||||
site._renpy_argv_emulation() # @UndefinedVariable
|
||||
site._renpy_argv_emulation() # @UndefinedVariable
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
# A map from command name to a (function, flag) tuple. The flag is true if the
|
||||
# function will parse command line arguments, and false otherwise.
|
||||
commands = { }
|
||||
|
||||
# True if the command requires the display, false if it doesn't.
|
||||
display = { }
|
||||
|
||||
# Commands that force compile to be set.
|
||||
compile_commands = { "compile", "add_from", "merge_strings" }
|
||||
|
||||
@@ -120,6 +123,14 @@ class ArgumentParser(argparse.ArgumentParser):
|
||||
"--lint", action="store_true", dest="lint",
|
||||
help=argparse.SUPPRESS)
|
||||
|
||||
self.add_argument(
|
||||
"--errors-in-editor", action="store_true",
|
||||
help="Causes errors to open in a text editor.")
|
||||
|
||||
self.add_argument(
|
||||
'--safe-mode', dest='safe_mode', action='store_true', default=False,
|
||||
help="Forces Ren'Py to start in safe mode, allowing the player to configure graphics.")
|
||||
|
||||
dump = self.add_argument_group("JSON dump arguments", description="Ren'Py can dump information about the game to a JSON file. These options let you select the file, and choose what is dumped.")
|
||||
dump.add_argument("--json-dump", action="store", metavar="FILE", help="The name of the JSON file.")
|
||||
dump.add_argument("--json-dump-private", action="store_true", default=False, help="Include private names. (Names beginning with _.)")
|
||||
@@ -128,7 +139,7 @@ class ArgumentParser(argparse.ArgumentParser):
|
||||
if second_pass:
|
||||
self.add_argument("-h", "--help", action="help", help="Displays this help message, then exits.")
|
||||
|
||||
command = renpy.game.args.command # @UndefinedVariable
|
||||
command = renpy.game.args.command # @UndefinedVariable
|
||||
self.group = self.add_argument_group("{0} command arguments".format(command), description)
|
||||
|
||||
def add_argument(self, *args, **kwargs):
|
||||
@@ -184,7 +195,7 @@ def run():
|
||||
if args.warp:
|
||||
renpy.warp.warp_spec = args.warp
|
||||
|
||||
if args.profile_display: # @UndefinedVariable
|
||||
if args.profile_display: # @UndefinedVariable
|
||||
renpy.config.profile = True
|
||||
|
||||
if args.debug_image_cache:
|
||||
@@ -193,7 +204,7 @@ def run():
|
||||
return True
|
||||
|
||||
|
||||
def compile(): # @ReservedAssignment
|
||||
def compile(): # @ReservedAssignment
|
||||
"""
|
||||
This command forces the game script to be recompiled.
|
||||
"""
|
||||
@@ -203,7 +214,7 @@ def compile(): # @ReservedAssignment
|
||||
return False
|
||||
|
||||
|
||||
def quit(): # @ReservedAssignment
|
||||
def quit(): # @ReservedAssignment
|
||||
"""
|
||||
This command is used to quit without doing anything.
|
||||
"""
|
||||
@@ -226,7 +237,7 @@ def rmpersistent():
|
||||
return False
|
||||
|
||||
|
||||
def register_command(name, function):
|
||||
def register_command(name, function, uses_display=False):
|
||||
"""
|
||||
Registers a command that can be invoked when Ren'Py is run on the command
|
||||
line. When the command is run, `function` is called with no arguments.
|
||||
@@ -237,9 +248,14 @@ def register_command(name, function):
|
||||
|
||||
If `function` returns true, Ren'Py startup proceeds normally. Otherwise,
|
||||
Ren'Py will terminate when function() returns.
|
||||
|
||||
`uses_display`
|
||||
If true, Ren'Py will initialize the display. If False, Ren'Py will
|
||||
use dummy video and audio drivers.
|
||||
"""
|
||||
|
||||
commands[name] = function
|
||||
display[name] = uses_display
|
||||
|
||||
|
||||
def bootstrap():
|
||||
@@ -263,7 +279,7 @@ def pre_init():
|
||||
|
||||
global subparsers
|
||||
|
||||
register_command("run", run)
|
||||
register_command("run", run, True)
|
||||
register_command("lint", renpy.lint.lint)
|
||||
register_command("compile", compile)
|
||||
register_command("rmpersistent", rmpersistent)
|
||||
@@ -277,14 +293,18 @@ def post_init():
|
||||
if execution should continue and False otherwise.
|
||||
"""
|
||||
|
||||
command = renpy.game.args.command # @UndefinedVariable
|
||||
command = renpy.game.args.command # @UndefinedVariable
|
||||
|
||||
if command == "run" and renpy.game.args.lint: # @UndefinedVariable
|
||||
if command == "run" and renpy.game.args.lint: # @UndefinedVariable
|
||||
command = "lint"
|
||||
|
||||
if command not in commands:
|
||||
ArgumentParser().error("Command {0} is unknown.".format(command))
|
||||
|
||||
if not display[command]:
|
||||
os.environ.setdefault("SDL_AUDIODRIVER", "dummy")
|
||||
os.environ.setdefault("SDL_VIDEODRIVER", "dummy")
|
||||
|
||||
return commands[command]()
|
||||
|
||||
|
||||
|
||||
+57
-8
@@ -659,13 +659,14 @@ class Say(Node):
|
||||
rv.append("id")
|
||||
rv.append(getattr(self, "identifier", None))
|
||||
|
||||
if self.arguments:
|
||||
rv.append(self.arguments.get_code())
|
||||
|
||||
# This has to be at the end.
|
||||
if self.with_:
|
||||
rv.append("with")
|
||||
rv.append(self.with_)
|
||||
|
||||
if self.arguments:
|
||||
rv.append(self.arguments.get_code())
|
||||
|
||||
return " ".join(rv)
|
||||
|
||||
def execute(self):
|
||||
@@ -680,7 +681,12 @@ class Say(Node):
|
||||
who = eval_who(self.who, self.who_fast)
|
||||
|
||||
if who is not None:
|
||||
statement_name(getattr(who, "statement_name", "say"))
|
||||
stmt_name = getattr(who, "statement_name", "say")
|
||||
|
||||
if callable(stmt_name):
|
||||
stmt_name = stmt_name()
|
||||
|
||||
statement_name(stmt_name)
|
||||
else:
|
||||
statement_name("say")
|
||||
|
||||
@@ -700,8 +706,8 @@ class Say(Node):
|
||||
if self.arguments is not None:
|
||||
args, kwargs = self.arguments.evaluate()
|
||||
else:
|
||||
args = tuple()
|
||||
kwargs = dict()
|
||||
args = ()
|
||||
kwargs = {}
|
||||
|
||||
kwargs.setdefault("interact", self.interact)
|
||||
|
||||
@@ -1239,6 +1245,46 @@ class ShowLayer(Node):
|
||||
self.atl.mark_constant()
|
||||
|
||||
|
||||
class Camera(Node):
|
||||
|
||||
warp = True
|
||||
|
||||
__slots__ = [
|
||||
'layer',
|
||||
'at_list',
|
||||
'atl',
|
||||
]
|
||||
|
||||
def __init__(self, loc, layer, at_list, atl):
|
||||
super(Camera, self).__init__(loc)
|
||||
|
||||
self.layer = layer
|
||||
self.at_list = at_list
|
||||
self.atl = atl
|
||||
|
||||
def diff_info(self):
|
||||
return (ShowLayer, self.layer)
|
||||
|
||||
def execute(self):
|
||||
next_node(self.next)
|
||||
statement_name("show layer")
|
||||
|
||||
at_list = [ renpy.python.py_eval(i) for i in self.at_list ]
|
||||
|
||||
if self.atl is not None:
|
||||
atl = renpy.display.motion.ATLTransform(self.atl)
|
||||
at_list.append(atl)
|
||||
|
||||
renpy.exports.layer_at_list(at_list, layer=self.layer, camera=True)
|
||||
|
||||
def predict(self):
|
||||
return [ self.next ]
|
||||
|
||||
def analyze(self):
|
||||
if self.atl is not None:
|
||||
self.atl.mark_constant()
|
||||
|
||||
|
||||
class Scene(Node):
|
||||
|
||||
__slots__ = [
|
||||
@@ -1632,7 +1678,7 @@ class Menu(Node):
|
||||
if self.item_arguments and (self.item_arguments[i] is not None):
|
||||
item_arguments.append(self.item_arguments[i].evaluate())
|
||||
else:
|
||||
item_arguments.append((tuple(), dict()))
|
||||
item_arguments.append(((), {}))
|
||||
|
||||
if narration:
|
||||
renpy.exports.say(None, "\n".join(narration), interact=False)
|
||||
@@ -2061,6 +2107,7 @@ def create_store(name):
|
||||
|
||||
|
||||
class StoreNamespace(object):
|
||||
pure = True
|
||||
|
||||
def __init__(self, store):
|
||||
self.store = store
|
||||
@@ -2159,7 +2206,9 @@ class Define(Node):
|
||||
renpy.dump.definitions.append((self.store[6:] + "." + self.varname, self.filename, self.linenumber))
|
||||
|
||||
if self.operator == "=" and self.index is None:
|
||||
renpy.exports.pure(self.store + "." + self.varname)
|
||||
ns, _special = get_namespace(self.store)
|
||||
if getattr(ns, "pure", True):
|
||||
renpy.exports.pure(self.store + "." + self.varname)
|
||||
|
||||
self.set()
|
||||
|
||||
|
||||
+53
-74
@@ -85,7 +85,7 @@ def float_or_none(x):
|
||||
return float(x)
|
||||
|
||||
|
||||
def matrixcolor(x):
|
||||
def matrix(x):
|
||||
if x is None:
|
||||
return None
|
||||
elif callable(x):
|
||||
@@ -102,62 +102,8 @@ def mesh(x):
|
||||
|
||||
|
||||
# A dictionary giving property names and the corresponding default
|
||||
# values.
|
||||
PROPERTIES = {
|
||||
"pos" : (position, position),
|
||||
"xpos" : position,
|
||||
"ypos" : position,
|
||||
"anchor" : (position, position),
|
||||
"xanchor" : position,
|
||||
"yanchor" : position,
|
||||
"xaround" : position,
|
||||
"yaround" : position,
|
||||
"xanchoraround" : float,
|
||||
"yanchoraround" : float,
|
||||
"align" : (float, float),
|
||||
"xalign" : float,
|
||||
"yalign" : float,
|
||||
"rotate" : float,
|
||||
"rotate_pad" : bool,
|
||||
"transform_anchor" : bool,
|
||||
"xzoom" : float,
|
||||
"yzoom" : float,
|
||||
"zoom" : float,
|
||||
"nearest" : bool_or_none,
|
||||
"alpha" : float,
|
||||
"additive" : float,
|
||||
"around" : (position, position),
|
||||
"alignaround" : (float, float),
|
||||
"angle" : float,
|
||||
"radius" : float,
|
||||
"crop" : (float, float, float, float),
|
||||
"crop_relative" : bool,
|
||||
"xsize" : int,
|
||||
"ysize" : int,
|
||||
"size" : (int, int),
|
||||
"fit" : str,
|
||||
"maxsize" : (int, int),
|
||||
"corner1" : (float, float),
|
||||
"corner2" : (float, float),
|
||||
"subpixel" : bool,
|
||||
"delay" : float,
|
||||
"xoffset" : float,
|
||||
"yoffset" : float,
|
||||
"offset" : (int, int),
|
||||
"xcenter" : position,
|
||||
"ycenter" : position,
|
||||
"debug" : any_object,
|
||||
"events" : bool,
|
||||
"xpan" : float_or_none,
|
||||
"ypan" : float_or_none,
|
||||
"xtile" : int,
|
||||
"ytile" : int,
|
||||
"matrixcolor" : matrixcolor,
|
||||
"shader" : any_object,
|
||||
"mesh" : mesh,
|
||||
"mesh_pad" : any_object,
|
||||
"blur" : float_or_none,
|
||||
}
|
||||
# values. This is massively added to by renpy.display.transform.
|
||||
PROPERTIES = { }
|
||||
|
||||
|
||||
def correct_type(v, b, ty):
|
||||
@@ -390,12 +336,19 @@ class ATLTransformBase(renpy.object.Object):
|
||||
self.parent_transform = None
|
||||
|
||||
# The offset between st and when this ATL block first executed.
|
||||
self.atl_st_offset = 0
|
||||
if renpy.config.atl_start_on_show:
|
||||
self.atl_st_offset = None
|
||||
else:
|
||||
self.atl_st_offset = 0
|
||||
|
||||
if renpy.game.context().init_phase:
|
||||
compile_queue.append(self)
|
||||
|
||||
def _handles_event(self, event):
|
||||
|
||||
if (event == "replaced") and (self.atl_state is None):
|
||||
return True
|
||||
|
||||
if (self.block is not None) and (self.block._handles_event(event)):
|
||||
return True
|
||||
|
||||
@@ -425,6 +378,7 @@ class ATLTransformBase(renpy.object.Object):
|
||||
super(ATLTransformBase, self).take_execution_state(t)
|
||||
|
||||
self.atl_st_offset = None
|
||||
self.atl_state = None
|
||||
|
||||
if self is t:
|
||||
return
|
||||
@@ -452,7 +406,6 @@ class ATLTransformBase(renpy.object.Object):
|
||||
self.at = t.at
|
||||
self.st_offset = t.st_offset
|
||||
self.at_offset = t.at_offset
|
||||
|
||||
self.atl_st_offset = t.atl_st_offset
|
||||
|
||||
if self.child is renpy.display.motion.null:
|
||||
@@ -863,12 +816,16 @@ class Block(Statement):
|
||||
loop_end = target - arg
|
||||
duration = loop_end - loop_start
|
||||
|
||||
if duration <= 0:
|
||||
if (state is None) and (duration <= 0):
|
||||
raise Exception("ATL appears to be in an infinite loop.")
|
||||
|
||||
# Figure how many durations can occur between the
|
||||
# start of the loop and now.
|
||||
new_repeats = int((target - loop_start) / duration)
|
||||
|
||||
if duration:
|
||||
new_repeats = int((target - loop_start) / duration)
|
||||
else:
|
||||
new_repeats = 0
|
||||
|
||||
if count is not None:
|
||||
if repeats + new_repeats >= count:
|
||||
@@ -1185,12 +1142,27 @@ class Interpolation(Statement):
|
||||
|
||||
warper = warpers.get(self.warper, self.warper)
|
||||
|
||||
if (self.warper != "instant") and (state is None) and (
|
||||
(trans.atl_state is not None) or (trans.st == 0)
|
||||
):
|
||||
first = True
|
||||
if trans.atl.animation:
|
||||
st_or_at = trans.at
|
||||
else:
|
||||
first = False
|
||||
st_or_at = trans.st
|
||||
|
||||
# True if we want want to make sure this interpolation is shown for at
|
||||
# least one frame.
|
||||
if self.warper == "instant":
|
||||
first_frame = False
|
||||
elif state is not None:
|
||||
first_frame = False
|
||||
elif (self.duration == 0) and (not self.properties and not self.revolution and not self.splines):
|
||||
first_frame = True
|
||||
elif trans.atl_state is not None:
|
||||
first_frame = True
|
||||
elif st_or_at == 0:
|
||||
first_frame = True
|
||||
else:
|
||||
# This is the case when we're skipping through a displayable to
|
||||
# find the right time.
|
||||
first_frame = False
|
||||
|
||||
if self.duration:
|
||||
complete = min(1.0, st / self.duration)
|
||||
@@ -1314,7 +1286,7 @@ class Interpolation(Statement):
|
||||
value = interpolate_spline(complete, values)
|
||||
setattr(trans.state, name, value)
|
||||
|
||||
if ((not first) or (not renpy.config.atl_one_frame)) and (st >= self.duration):
|
||||
if (st >= self.duration) and ((not first_frame) or (not renpy.config.atl_one_frame)):
|
||||
return "next", st - self.duration, None
|
||||
else:
|
||||
if not self.properties and not self.revolution and not self.splines:
|
||||
@@ -1605,15 +1577,22 @@ class On(Statement):
|
||||
# handle it.
|
||||
for event in events:
|
||||
|
||||
if event in self.handlers:
|
||||
while event:
|
||||
if event in self.handlers:
|
||||
break
|
||||
|
||||
# Do not allow people to abort the hide or replaced event.
|
||||
lock_event = (name == "hide" and trans.hide_request) or (name == "replaced" and trans.replaced_request)
|
||||
event = event.partition("_")[2]
|
||||
|
||||
if not lock_event:
|
||||
name = event
|
||||
start = st
|
||||
cstate = None
|
||||
if not event:
|
||||
continue
|
||||
|
||||
# Do not allow people to abort the hide or replaced event.
|
||||
lock_event = (name == "hide" and trans.hide_request) or (name == "replaced" and trans.replaced_request)
|
||||
|
||||
if not lock_event:
|
||||
name = event
|
||||
start = st
|
||||
cstate = None
|
||||
|
||||
while True:
|
||||
|
||||
|
||||
+70
-9
@@ -353,12 +353,27 @@ class Channel(object):
|
||||
except:
|
||||
raise exception("expected float, got {!r}.".format(v))
|
||||
|
||||
def expect_channel():
|
||||
if not spec:
|
||||
raise exception("expected channel at end.")
|
||||
|
||||
v = spec.pop(0)
|
||||
|
||||
try:
|
||||
return renpy.audio.audio.get_channel(v)
|
||||
except:
|
||||
raise exception("expected channel, got {!r}.".format(v))
|
||||
|
||||
if isinstance(filename, AudioData):
|
||||
return filename, 0, -1
|
||||
|
||||
m = re.match(r'<(.*)>(.*)', filename)
|
||||
if not m:
|
||||
return filename, 0, -1
|
||||
return self.file_prefix + filename + self.file_suffix, 0, -1
|
||||
|
||||
spec = m.group(1)
|
||||
fn = m.group(2)
|
||||
fn = self.file_prefix + fn + self.file_suffix
|
||||
|
||||
spec = spec.split()
|
||||
|
||||
@@ -373,6 +388,13 @@ class Channel(object):
|
||||
start = expect_float()
|
||||
elif clause == "to":
|
||||
end = expect_float()
|
||||
elif clause == "sync":
|
||||
sync_channel = expect_channel()
|
||||
t = sync_channel.get_pos()
|
||||
if not t or t < 0:
|
||||
pass
|
||||
else:
|
||||
start = t
|
||||
elif clause == "loop":
|
||||
loop = expect_float()
|
||||
elif clause == "silence":
|
||||
@@ -403,6 +425,9 @@ class Channel(object):
|
||||
|
||||
vol = self.chan_volume * mixer_volume
|
||||
|
||||
if renpy.game.preferences.mute.get(self.mixer, False):
|
||||
vol = 0.0
|
||||
|
||||
if vol != self.actual_volume:
|
||||
renpysound.set_volume(self.number, vol)
|
||||
self.actual_volume = vol
|
||||
@@ -431,7 +456,10 @@ class Channel(object):
|
||||
# files. So this loop will only execute once, in practice.
|
||||
while True:
|
||||
|
||||
depth = renpysound.queue_depth(self.number)
|
||||
if self._number is not None:
|
||||
depth = renpysound.queue_depth(self.number)
|
||||
else:
|
||||
depth = 0
|
||||
|
||||
if depth == 0:
|
||||
self.wait_stop = False
|
||||
@@ -476,6 +504,9 @@ class Channel(object):
|
||||
try:
|
||||
filename, start, end = self.split_filename(topq.filename, topq.loop)
|
||||
|
||||
if renpy.config.audio_filename_callback is not None:
|
||||
filename = renpy.config.audio_filename_callback(filename)
|
||||
|
||||
self.set_tertiary_volume(topq.relative_volume)
|
||||
|
||||
if (end >= 0) and ((end - start) <= 0) and self.queue:
|
||||
@@ -484,7 +515,7 @@ class Channel(object):
|
||||
if isinstance(topq.filename, AudioData):
|
||||
topf = io.BytesIO(topq.filename.data)
|
||||
else:
|
||||
topf = load(self.file_prefix + filename + self.file_suffix)
|
||||
topf = load(filename)
|
||||
|
||||
renpysound.set_video(self.number, self.movie)
|
||||
|
||||
@@ -551,6 +582,9 @@ class Channel(object):
|
||||
if not pcm_ok:
|
||||
return
|
||||
|
||||
if self._number is None:
|
||||
return
|
||||
|
||||
if self.keep_queue == 0:
|
||||
renpysound.dequeue(self.number, even_tight)
|
||||
self.wait_stop = False
|
||||
@@ -595,6 +629,9 @@ class Channel(object):
|
||||
if not pcm_ok:
|
||||
return
|
||||
|
||||
if self._number is None:
|
||||
return
|
||||
|
||||
if secs == 0:
|
||||
renpysound.stop(self.number)
|
||||
else:
|
||||
@@ -626,7 +663,7 @@ class Channel(object):
|
||||
self.keep_queue += 1
|
||||
|
||||
for filename in filenames:
|
||||
qe = QueueEntry(filename, int(fadein * 1000), tight, False, relative_volume)
|
||||
qe = QueueEntry(filename, fadein, tight, False, relative_volume)
|
||||
self.queue.append(qe)
|
||||
|
||||
# Only fade the first thing in.
|
||||
@@ -645,6 +682,9 @@ class Channel(object):
|
||||
if not pcm_ok:
|
||||
return None
|
||||
|
||||
if self._number is None:
|
||||
return None
|
||||
|
||||
rv = renpysound.playing_name(self.number)
|
||||
|
||||
with lock:
|
||||
@@ -667,6 +707,9 @@ class Channel(object):
|
||||
if not pcm_ok:
|
||||
return -1
|
||||
|
||||
if self._number is None:
|
||||
return -1
|
||||
|
||||
return renpysound.get_pos(self.number)
|
||||
|
||||
def get_duration(self):
|
||||
@@ -674,6 +717,9 @@ class Channel(object):
|
||||
if not pcm_ok:
|
||||
return 0.0
|
||||
|
||||
if self._number is None:
|
||||
return 0.0
|
||||
|
||||
return renpysound.get_duration(self.number)
|
||||
|
||||
def set_pan(self, pan, delay):
|
||||
@@ -710,17 +756,19 @@ class Channel(object):
|
||||
renpysound.pause(self.number)
|
||||
|
||||
def unpause(self):
|
||||
if self._number is None:
|
||||
return
|
||||
|
||||
with lock:
|
||||
renpysound.unpause(self.number)
|
||||
|
||||
def read_video(self):
|
||||
if pcm_ok:
|
||||
return renpysound.read_video(self.number)
|
||||
if not pcm_ok:
|
||||
return None
|
||||
|
||||
return None
|
||||
return renpysound.read_video(self.number)
|
||||
|
||||
def video_ready(self):
|
||||
|
||||
if not pcm_ok:
|
||||
return 1
|
||||
|
||||
@@ -889,6 +937,10 @@ def init():
|
||||
mix_ok = False
|
||||
return
|
||||
|
||||
if renpy.emscripten and renpy.config.webaudio:
|
||||
import renpy.audio.webaudio as webaudio
|
||||
renpysound.__dict__.update(webaudio.__dict__)
|
||||
|
||||
if pcm_ok is None and renpysound:
|
||||
bufsize = 2048
|
||||
if renpy.emscripten:
|
||||
@@ -903,9 +955,17 @@ def init():
|
||||
renpysound.init(renpy.config.sound_sample_rate, 2, bufsize, False, renpy.config.equal_mono)
|
||||
pcm_ok = True
|
||||
except:
|
||||
|
||||
if renpy.config.debug_sound:
|
||||
raise
|
||||
pcm_ok = False
|
||||
|
||||
os.environ["SDL_AUDIODRIVER"] = "dummy"
|
||||
|
||||
try:
|
||||
renpysound.init(renpy.config.sound_sample_rate, 2, bufsize, False, renpy.config.equal_mono)
|
||||
pcm_ok = True
|
||||
except:
|
||||
pcm_ok = False
|
||||
|
||||
# Find all of the mixers in the game.
|
||||
mixers = [ ]
|
||||
@@ -951,6 +1011,7 @@ def quit(): # @ReservedAssignment
|
||||
for c in all_channels:
|
||||
c.dequeue()
|
||||
c.fadeout(0)
|
||||
c.unpause()
|
||||
|
||||
c.queue = [ ]
|
||||
c.loop = [ ]
|
||||
|
||||
+17
-1
@@ -365,7 +365,7 @@ def get_pos(channel="music"):
|
||||
if not t or t < 0:
|
||||
return None
|
||||
|
||||
return t / 1000.0
|
||||
return t
|
||||
|
||||
except:
|
||||
if renpy.config.debug_sound:
|
||||
@@ -422,6 +422,22 @@ def is_playing(channel="music"):
|
||||
return (get_playing(channel=channel) is not None)
|
||||
|
||||
|
||||
def get_loop(channel="music"):
|
||||
"""
|
||||
:doc: audio
|
||||
|
||||
Return a list of filenames that are being looped on `channel`, or None
|
||||
if no files are being looped. In the case where a loop is queued, but
|
||||
is not yet playing, the loop is returned, not the currently playing
|
||||
music.
|
||||
"""
|
||||
|
||||
c = get_channel(channel)
|
||||
ctx = c.get_context()
|
||||
|
||||
return ctx.last_filenames or None
|
||||
|
||||
|
||||
def set_volume(volume, delay=0, channel="music"):
|
||||
"""
|
||||
:doc: audio
|
||||
|
||||
@@ -46,6 +46,7 @@ the queued file. The queued file begins playing when the current file ends
|
||||
or is stopped.
|
||||
"""
|
||||
|
||||
# When changing this API, change webaudio.py, too!
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
@@ -108,7 +109,7 @@ def play(channel, file, name, paused=False, fadein=0, tight=False, start=0, end=
|
||||
If True, playback is paused rather than started.
|
||||
|
||||
`fadein`
|
||||
The time it should take the fade the music in.
|
||||
The time it should take the fade the music in, in seconds.
|
||||
|
||||
`tight`
|
||||
If true, the file is played in tight mode. This means that fadeouts
|
||||
@@ -121,7 +122,6 @@ def play(channel, file, name, paused=False, fadein=0, tight=False, start=0, end=
|
||||
A time in the file to end playing. `
|
||||
"""
|
||||
|
||||
|
||||
cdef SDL_RWops *rw
|
||||
|
||||
rw = RWopsFromPython(file)
|
||||
@@ -140,7 +140,7 @@ def play(channel, file, name, paused=False, fadein=0, tight=False, start=0, end=
|
||||
tight = 0
|
||||
|
||||
name = name.encode("utf-8")
|
||||
RPS_play(channel, rw, name, name, fadein, tight, pause, start, end)
|
||||
RPS_play(channel, rw, name, name, fadein * 1000, tight, pause, start, end)
|
||||
check_error()
|
||||
|
||||
def queue(channel, file, name, fadein=0, tight=False, start=0, end=0):
|
||||
@@ -164,7 +164,7 @@ def queue(channel, file, name, fadein=0, tight=False, start=0, end=0):
|
||||
tight = 0
|
||||
|
||||
name = name.encode("utf-8")
|
||||
RPS_queue(channel, rw, name, name, fadein, tight, start, end)
|
||||
RPS_queue(channel, rw, name, name, fadein * 1000, tight, start, end)
|
||||
check_error()
|
||||
|
||||
def stop(channel):
|
||||
@@ -249,16 +249,16 @@ def busy(channel):
|
||||
|
||||
def get_pos(channel):
|
||||
"""
|
||||
Returns the position of the audio file playing in `channel`. Returns None
|
||||
if not file is is playing or it is not known.
|
||||
Returns the position of the audio file playing in `channel`, in seconds.
|
||||
Returns None if not file is is playing or it is not known.
|
||||
"""
|
||||
|
||||
return RPS_get_pos(channel)
|
||||
return RPS_get_pos(channel) / 1000.0
|
||||
|
||||
def get_duration(channel):
|
||||
"""
|
||||
Reutrns the duration of the audio file playing in `channel`, or None if no
|
||||
file is playing or it is not known.
|
||||
Returns the duration of the audio file playing in `channel`, in seconds, or
|
||||
None if no file is playing or it is not known.
|
||||
"""
|
||||
|
||||
return RPS_get_duration(channel)
|
||||
@@ -428,3 +428,6 @@ def sample_surfaces(rgb, rgba):
|
||||
rgba_surface = rgb
|
||||
|
||||
RPS_sample_surfaces(rgb, rgba)
|
||||
|
||||
# When changing this API, change webaudio.py, too!
|
||||
|
||||
|
||||
@@ -0,0 +1,353 @@
|
||||
# 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.
|
||||
|
||||
import renpy
|
||||
import emscripten
|
||||
from json import dumps
|
||||
|
||||
|
||||
def call(function, *args):
|
||||
"""
|
||||
Calls a method on `function`.
|
||||
"""
|
||||
|
||||
emscripten.run_script("renpyAudio.{}.apply(null, {});".format(function, dumps(args)))
|
||||
|
||||
|
||||
def call_int(function, *args):
|
||||
"""
|
||||
Calls a method on `function`.
|
||||
"""
|
||||
|
||||
return emscripten.run_script_int("renpyAudio.{}.apply(null, {});".format(function, dumps(args)))
|
||||
|
||||
|
||||
def call_str(function, *args):
|
||||
"""
|
||||
Calls a method on `function`.
|
||||
"""
|
||||
|
||||
rv = emscripten.run_script_string("renpyAudio.{}.apply(null, {});".format(function, dumps(args))).decode("utf-8")
|
||||
|
||||
return rv
|
||||
|
||||
|
||||
def play(channel, file, name, paused=False, fadein=0, tight=False, start=0, end=0):
|
||||
"""
|
||||
Plays `file` on `channel`. This clears the playing and queued samples and
|
||||
replaces them with this file.
|
||||
|
||||
`name`
|
||||
A python object giving a readable name for the file.
|
||||
|
||||
`paused`
|
||||
If True, playback is paused rather than started.
|
||||
|
||||
`fadein`
|
||||
The time it should take the fade the music in, in seconds.
|
||||
|
||||
`tight`
|
||||
If true, the file is played in tight mode. This means that fadeouts
|
||||
can span between this file and the file queued after it.
|
||||
|
||||
`start`
|
||||
A time in the file to start playing.
|
||||
|
||||
`end`
|
||||
A time in the file to end playing. `
|
||||
"""
|
||||
|
||||
try:
|
||||
file = file.name
|
||||
except:
|
||||
return
|
||||
|
||||
call("stop", channel)
|
||||
call("queue", channel, file, name, paused, fadein, tight, start, end)
|
||||
|
||||
|
||||
def queue(channel, file, name, fadein=0, tight=False, start=0, end=0):
|
||||
"""
|
||||
Queues `file` on `channel` to play when the current file ends. If no file is
|
||||
playing, plays it.
|
||||
|
||||
The other arguments are as for play.
|
||||
"""
|
||||
|
||||
try:
|
||||
file = file.name
|
||||
except:
|
||||
return
|
||||
|
||||
call("queue", channel, file, name, False, fadein, tight, start, end)
|
||||
|
||||
|
||||
def stop(channel):
|
||||
"""
|
||||
Immediately stops `channel`, and unqueues any queued audio file.
|
||||
"""
|
||||
|
||||
call("stop", channel)
|
||||
|
||||
|
||||
def dequeue(channel, even_tight=False):
|
||||
"""
|
||||
Dequeues the queued sound file.
|
||||
|
||||
`even_tight`
|
||||
If true, a queued sound file that is tight is not dequeued. If false,
|
||||
a file marked as tight is dequeued.
|
||||
"""
|
||||
|
||||
call("dequeue", channel, even_tight)
|
||||
|
||||
|
||||
def queue_depth(channel):
|
||||
"""
|
||||
Returns the queue depth of the channel. 0 if no file is playing, 1 if
|
||||
a files is playing but there is no queued file, and 2 if a file is playing
|
||||
and one is queued.
|
||||
"""
|
||||
|
||||
return emscripten.run_script_int("renpyAudio.queue_depth({})".format(channel))
|
||||
|
||||
|
||||
def playing_name(channel):
|
||||
"""
|
||||
Returns the `name` argument of the playing sound. This was passed into
|
||||
`play` or `queue`.
|
||||
"""
|
||||
|
||||
rv = call_str("playing_name", channel)
|
||||
|
||||
if rv:
|
||||
return rv
|
||||
|
||||
return None
|
||||
|
||||
|
||||
def pause(channel):
|
||||
"""
|
||||
Pauses `channel`.
|
||||
"""
|
||||
|
||||
call("pause", channel)
|
||||
|
||||
|
||||
def unpause(channel):
|
||||
"""
|
||||
Unpauses `channel`.
|
||||
"""
|
||||
|
||||
call("unpause", channel)
|
||||
|
||||
|
||||
def unpause_all():
|
||||
"""
|
||||
Unpauses all channels that are paused.
|
||||
"""
|
||||
|
||||
call("unpause_all")
|
||||
|
||||
|
||||
def fadeout(channel, delay):
|
||||
"""
|
||||
Fades out `channel` over `delay` seconds.
|
||||
"""
|
||||
|
||||
call("fadeout", channel, delay)
|
||||
|
||||
|
||||
def busy(channel):
|
||||
"""
|
||||
Returns true if `channel` is currently playing something, and false
|
||||
otherwise
|
||||
"""
|
||||
|
||||
return queue_depth(channel) > 0
|
||||
|
||||
|
||||
def get_pos(channel):
|
||||
"""
|
||||
Returns the position of the audio file playing in `channel`. Returns None
|
||||
if not file is is playing or it is not known.
|
||||
"""
|
||||
|
||||
rv = call_int("get_pos", channel)
|
||||
|
||||
if rv >= 0:
|
||||
return rv / 1000.0
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
def get_duration(channel):
|
||||
"""
|
||||
Returns the duration of the audio file playing in `channel`, or None if no
|
||||
file is playing or it is not known.
|
||||
"""
|
||||
|
||||
rv = call_int("get_duration", channel)
|
||||
|
||||
if rv >= 0:
|
||||
return rv / 1000.0
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
def set_volume(channel, volume):
|
||||
"""
|
||||
Sets the primary volume for `channel` to `volume`, a number between
|
||||
0 and 1. This volume control is perceptual, taking into account the
|
||||
logarithmic nature of human hearing.
|
||||
"""
|
||||
|
||||
call("set_volume", channel, volume)
|
||||
|
||||
|
||||
def set_pan(channel, pan, delay):
|
||||
"""
|
||||
Sets the pan for channel.
|
||||
|
||||
`pan`
|
||||
A number between -1 and 1 that control the placement of the audio.
|
||||
If this is -1, then all audio is sent to the left channel.
|
||||
If it's 0, then the two channels are equally balanced. If it's 1,
|
||||
then all audio is sent to the right ear.
|
||||
|
||||
`delay`
|
||||
The amount of time it takes for the panning to occur.
|
||||
"""
|
||||
|
||||
call("set_pan", channel, pan, delay)
|
||||
|
||||
|
||||
def set_secondary_volume(channel, volume, delay):
|
||||
"""
|
||||
Sets the secondary volume for channel. This is linear, and is multiplied
|
||||
with the primary volume and scale factors derived from pan to find the
|
||||
actual multiplier used on the samples.
|
||||
|
||||
`delay`
|
||||
The time it takes for the change in volume to happen.
|
||||
"""
|
||||
|
||||
call("set_secondary_volume", channel, volume, delay)
|
||||
|
||||
|
||||
def get_volume(channel):
|
||||
"""
|
||||
Gets the primary volume associated with `channel`.
|
||||
"""
|
||||
|
||||
return call_int("get_volume", channel)
|
||||
|
||||
|
||||
def video_ready(channel):
|
||||
"""
|
||||
Returns true if the video playing on `channel` has a frame ready for
|
||||
presentation.
|
||||
"""
|
||||
|
||||
return False
|
||||
|
||||
|
||||
def read_video(channel):
|
||||
"""
|
||||
Returns the frame of video playing on `channel`. This should be returned
|
||||
as an SDL surface with 2px of padding on all sides.
|
||||
"""
|
||||
|
||||
return None
|
||||
|
||||
|
||||
# No video will be played from this channel.
|
||||
NO_VIDEO = 0
|
||||
|
||||
# The video will be played while avoiding framedrops.
|
||||
NODROP_VIDEO = 1
|
||||
|
||||
# The video will be played, allowing framedrops.
|
||||
DROP_VIDEO = 2
|
||||
|
||||
|
||||
def set_video(channel, video):
|
||||
"""
|
||||
Sets a flag that determines if this channel will attempt to decode video.
|
||||
"""
|
||||
|
||||
return
|
||||
|
||||
|
||||
def init(freq, stereo, samples, status=False, equal_mono=False):
|
||||
"""
|
||||
Initializes the audio system with the given parameters. The parameter are
|
||||
just informational - the audio system should be able to play all supported
|
||||
files.
|
||||
|
||||
`freq`
|
||||
The sample frequency to play back at.
|
||||
|
||||
`stereo`
|
||||
Should we play in stereo (generally true).
|
||||
|
||||
`samples`
|
||||
The length of the sample buffer.
|
||||
|
||||
`status`
|
||||
If true, the sound system will print errors out to the console.
|
||||
`
|
||||
"""
|
||||
|
||||
renpy.config.debug_sound = True
|
||||
|
||||
js = renpy.loader.load("_audio.js").read()
|
||||
emscripten.run_script(js)
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def quit(): # @ReservedAssignment
|
||||
"""
|
||||
De-initializes the audio system.
|
||||
"""
|
||||
|
||||
|
||||
def periodic():
|
||||
"""
|
||||
Called periodically (at 20 Hz).
|
||||
"""
|
||||
|
||||
|
||||
def advance_time():
|
||||
"""
|
||||
Called to advance time at the start of a frame.
|
||||
"""
|
||||
|
||||
|
||||
def sample_surfaces(rgb, rgba):
|
||||
"""
|
||||
Called to provide sample surfaces to the display system. The surfaces
|
||||
returned by read_video should be in the same format as these.
|
||||
"""
|
||||
|
||||
return
|
||||
|
||||
@@ -223,6 +223,11 @@ def bootstrap(renpy_base):
|
||||
sys.stderr.write("Base directory %r does not exist. Giving up.\n" % (basedir,))
|
||||
sys.exit(1)
|
||||
|
||||
# Make game/ on Android.
|
||||
if renpy.android:
|
||||
if not os.path.exists(basedir + "/game"):
|
||||
os.mkdir(basedir + "/game", 0o777)
|
||||
|
||||
gamedirs = [ name ]
|
||||
game_name = name
|
||||
|
||||
|
||||
+51
-19
@@ -560,8 +560,14 @@ def display_say(
|
||||
what_ctc = what_ctc._duplicate(None)
|
||||
what_ctc._unique()
|
||||
|
||||
if ctc is not what_ctc:
|
||||
if (ctc is not None) and ctc._duplicatable:
|
||||
ctc = ctc._duplicate(None)
|
||||
ctc._unique()
|
||||
|
||||
if delay == 0:
|
||||
what_ctc = None
|
||||
ctc = None
|
||||
|
||||
# Run the show callback.
|
||||
for c in callback:
|
||||
@@ -589,7 +595,13 @@ def display_say(
|
||||
if ctc_position == "nestled":
|
||||
what_text.set_ctc(what_ctc)
|
||||
elif ctc_position == "nestled-close":
|
||||
what_text.set_ctc([ u"\ufeff", what_ctc])
|
||||
what_text.set_ctc([ u"\ufeff", what_ctc, ])
|
||||
|
||||
if (not last_pause) and ctc:
|
||||
if ctc_position == "nestled":
|
||||
what_text.set_last_ctc(ctc)
|
||||
elif ctc_position == "nestled-close":
|
||||
what_text.set_last_ctc([ u"\ufeff", ctc, ])
|
||||
|
||||
if what_text.text[0] == what_string:
|
||||
|
||||
@@ -710,6 +722,8 @@ class ADVCharacter(object):
|
||||
voice_tag = None
|
||||
properties = { }
|
||||
|
||||
_statement_name = None
|
||||
|
||||
# When adding a new argument here, remember to add it to copy below.
|
||||
def __init__(
|
||||
self,
|
||||
@@ -777,6 +791,8 @@ class ADVCharacter(object):
|
||||
advance=d('advance'),
|
||||
)
|
||||
|
||||
self._statement_name = properties.pop("statement_name", None)
|
||||
|
||||
self.properties = collections.defaultdict(dict)
|
||||
|
||||
if kind:
|
||||
@@ -1099,6 +1115,31 @@ class ADVCharacter(object):
|
||||
|
||||
return True
|
||||
|
||||
def prefix_suffix(self, thing, prefix, body, suffix):
|
||||
|
||||
def sub(s, scope=None, force=False, translate=True):
|
||||
return renpy.substitutions.substitute(s, scope=scope, force=force, translate=translate)[0]
|
||||
|
||||
thingvar_quoted = "[[" + thing + "]"
|
||||
thingvar = "[" + thing + "]"
|
||||
|
||||
if not renpy.config.new_substitutions:
|
||||
return prefix + body + suffix
|
||||
|
||||
# Used before Ren'Py 7.4.
|
||||
elif renpy.config.who_what_sub_compat == 0:
|
||||
pattern = sub(prefix + thingvar_quoted + suffix)
|
||||
return pattern.replace(thingvar, sub(body))
|
||||
|
||||
# Used from Ren'Py 7.4 to Ren'Py 7.4.4
|
||||
elif renpy.config.who_what_sub_compat == 1:
|
||||
pattern = sub(sub(prefix) + thingvar_quoted + sub(suffix))
|
||||
return pattern.replace(thingvar, sub(body))
|
||||
|
||||
# 7.4.5 on.
|
||||
else:
|
||||
return (sub(prefix) + sub(body) + sub(suffix))
|
||||
|
||||
def __call__(self, what, interact=True, _call_done=True, multiple=None, **kwargs):
|
||||
|
||||
_mode = kwargs.pop("_mode", None)
|
||||
@@ -1175,21 +1216,10 @@ class ADVCharacter(object):
|
||||
else:
|
||||
who = renpy.python.py_eval(who)
|
||||
|
||||
def sub(s, scope=None, force=False, translate=True):
|
||||
return renpy.substitutions.substitute(s, scope=scope, force=force, translate=translate)[0]
|
||||
|
||||
if who is not None:
|
||||
if renpy.config.new_substitutions:
|
||||
who_pattern = sub(sub(self.who_prefix) + "[[who]" + sub(self.who_suffix))
|
||||
who = who_pattern.replace("[who]", sub(who))
|
||||
else:
|
||||
who = self.who_prefix + who + self.who_suffix
|
||||
who = self.prefix_suffix("who", self.who_prefix, who, self.who_suffix)
|
||||
|
||||
if renpy.config.new_substitutions:
|
||||
what_pattern = sub(sub(self.what_prefix) + "[[what]" + sub(self.what_suffix))
|
||||
what = what_pattern.replace("[what]", sub(what, translate=True))
|
||||
else:
|
||||
what = self.what_prefix + what + self.what_suffix
|
||||
what = self.prefix_suffix("what", self.what_prefix, what, self.what_suffix)
|
||||
|
||||
# Run the add_function, to add this character to the
|
||||
# things like NVL-mode.
|
||||
@@ -1232,9 +1262,10 @@ class ADVCharacter(object):
|
||||
after = images.get_attributes(None, self.image_tag)
|
||||
self.handle_say_transition('restore', before, after)
|
||||
|
||||
@property
|
||||
def statement_name(self):
|
||||
if not (self.condition is None or renpy.python.py_eval(self.condition)):
|
||||
if self._statement_name is not None:
|
||||
return self._statement_name
|
||||
elif not (self.condition is None or renpy.python.py_eval(self.condition)):
|
||||
return "say-condition-false"
|
||||
else:
|
||||
return "say"
|
||||
@@ -1342,7 +1373,7 @@ class ADVCharacter(object):
|
||||
def Character(name=NotSet, kind=None, **properties):
|
||||
"""
|
||||
:doc: character
|
||||
:args: (name, kind=adv, **args)
|
||||
:args: (name=..., kind=adv, **args)
|
||||
:name: Character
|
||||
|
||||
Creates and returns a Character object, which controls the look
|
||||
@@ -1350,8 +1381,9 @@ def Character(name=NotSet, kind=None, **properties):
|
||||
|
||||
`name`
|
||||
If a string, the name of the character for dialogue. When
|
||||
``name`` is None, display of the name is omitted, as for
|
||||
narration.
|
||||
`name` is None, display of the name is omitted, as for
|
||||
narration. If no name is given, the name is taken from
|
||||
`kind`, and otherwise defaults to None.
|
||||
|
||||
`kind`
|
||||
The Character to base this Character off of. When used, the
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
|
||||
python early in _warper:
|
||||
|
||||
from renpy.atl import pause, instant
|
||||
|
||||
# pause is defined internally, but would look like:
|
||||
#
|
||||
# @renpy.atl_warper
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
python early hide:
|
||||
|
||||
class _ObjectNamespace(object):
|
||||
pure = True
|
||||
|
||||
def __init__(self, nso, name):
|
||||
self.nso = nso
|
||||
self.name = name
|
||||
@@ -15,6 +17,8 @@
|
||||
return getattr(self.nso, name)
|
||||
|
||||
class _PersistentNamespace(object):
|
||||
pure = False
|
||||
|
||||
def set(self, name, value):
|
||||
if getattr(persistent, name) is None:
|
||||
setattr(persistent, name, value)
|
||||
@@ -24,9 +28,25 @@
|
||||
setattr(persistent, name, value)
|
||||
|
||||
def get(self, name):
|
||||
return getattre(persistent, name)
|
||||
return getattr(persistent, name)
|
||||
|
||||
class _ErrorNamespace(object):
|
||||
pure = False
|
||||
|
||||
def __init__(self, name):
|
||||
self.name = name
|
||||
|
||||
def set(self, name, value):
|
||||
raise Exception("The define statement can not be used with the {} namespace.".format(self.name))
|
||||
|
||||
def set_default(self, name, value):
|
||||
raise Exception("The default statement can not be used with the {} namespace.".format(self.name))
|
||||
|
||||
def get(self, name):
|
||||
raise Exception("The default and define statements can not be used with the {} namespace.".format(self.name))
|
||||
|
||||
class _PreferencesNamespace(object):
|
||||
pure = False
|
||||
|
||||
def set(self, name, value):
|
||||
raise Exception("The define statement can not be used with the preferences namespace.")
|
||||
@@ -60,6 +80,8 @@
|
||||
raise Exception("The define statement can not be used with the preferences namespace.")
|
||||
|
||||
class _GuiNamespace(object):
|
||||
pure = True
|
||||
|
||||
def set(self, name, value):
|
||||
setattr(gui, name, value)
|
||||
|
||||
@@ -73,4 +95,5 @@
|
||||
config.special_namespaces["store.persistent"] = _PersistentNamespace()
|
||||
config.special_namespaces["store.preferences"] = _PreferencesNamespace()
|
||||
config.special_namespaces["store.gui"] = _GuiNamespace()
|
||||
config.special_namespaces["store.renpy"] = _ErrorNamespace("renpy")
|
||||
|
||||
|
||||
@@ -454,7 +454,6 @@ python early hide:
|
||||
else:
|
||||
renpy.pause()
|
||||
|
||||
|
||||
renpy.register_statement('pause',
|
||||
parse=parse_pause,
|
||||
lint=lint_pause,
|
||||
|
||||
@@ -32,7 +32,7 @@ init -1200 python:
|
||||
config.window_auto_show = [ "say", "menu-with-caption" ]
|
||||
|
||||
# A list of statements that cause the window to be auto-hidden.
|
||||
config.window_auto_hide = [ "scene", "call screen", "menu" ]
|
||||
config.window_auto_hide = [ "scene", "call screen", "menu", "say-centered" ]
|
||||
|
||||
config.window_functions_set_auto = True
|
||||
|
||||
|
||||
@@ -57,10 +57,20 @@ init -1500 python:
|
||||
|
||||
return c(what, interact=interact)
|
||||
|
||||
def alt_statement_name():
|
||||
if _preferences.self_voicing:
|
||||
return "say"
|
||||
else:
|
||||
return "say-condition-false"
|
||||
|
||||
alt.statement_name = alt_statement_name
|
||||
del alt_statement_name
|
||||
|
||||
# Old name for alt.
|
||||
sv = alt
|
||||
|
||||
|
||||
|
||||
init -1500 python hide:
|
||||
|
||||
##########################################################################
|
||||
@@ -165,6 +175,18 @@ screen _accessibility():
|
||||
alt "reset font line spacing"
|
||||
action Preference("font line spacing", 1.0)
|
||||
|
||||
null height 10
|
||||
|
||||
label _("High Contrast Text")
|
||||
|
||||
textbutton _("Enable"):
|
||||
action Preference("high contrast text", "enable")
|
||||
style_suffix "radio_button"
|
||||
|
||||
textbutton _("Disable"):
|
||||
action Preference("high contrast text", "disable")
|
||||
style_suffix "radio_button"
|
||||
|
||||
|
||||
vbox:
|
||||
|
||||
|
||||
@@ -82,17 +82,23 @@ init -1500 python in achievement:
|
||||
if persistent._achievement_progress is None:
|
||||
persistent._achievement_progress = _dict()
|
||||
|
||||
self.stat_max = { }
|
||||
|
||||
def register(self, name, stat_max=None, **kwargs):
|
||||
self.stats[name] = stat_max
|
||||
if stat_max:
|
||||
self.stat_max[name] = stat_max
|
||||
|
||||
def grant(self, name):
|
||||
persistent._achievements.add(name)
|
||||
|
||||
def clear(self, name):
|
||||
persistent._achievements.discard(name)
|
||||
if name in persistent._achievement_progress:
|
||||
del persistent._achievement_progress[name]
|
||||
|
||||
def clear_all(self):
|
||||
persistent._achievements.clear()
|
||||
persistent._achievement_progress.clear()
|
||||
|
||||
def has(self, name):
|
||||
return name in persistent._achievements
|
||||
@@ -105,15 +111,13 @@ init -1500 python in achievement:
|
||||
|
||||
persistent._achievement_progress[name] = completed
|
||||
|
||||
if name not in self.stats:
|
||||
if name not in self.stat_max:
|
||||
if config.developer:
|
||||
raise Exception("To report progress, you must register {} with a stat_max.".format(name))
|
||||
else:
|
||||
return
|
||||
|
||||
stat_max = self.stats[name]
|
||||
|
||||
if completed >= stat_max:
|
||||
if completed >= self.stat_max[name]:
|
||||
self.grant(name)
|
||||
|
||||
def merge(old, new, current):
|
||||
@@ -235,7 +239,7 @@ init -1500 python in achievement:
|
||||
from config.steam_appid.
|
||||
"""
|
||||
|
||||
import os
|
||||
import os, sys
|
||||
|
||||
if config.early_script_version is not None:
|
||||
return
|
||||
@@ -243,7 +247,7 @@ init -1500 python in achievement:
|
||||
if config.steam_appid is None:
|
||||
return
|
||||
|
||||
with open(os.path.join(config.renpy_base, "steam_appid.txt"), "w") as f:
|
||||
with open(os.path.join(os.path.dirname(sys.executable), "steam_appid.txt"), "w") as f:
|
||||
f.write(str(config.steam_appid) + "\n")
|
||||
|
||||
# Are the steam libraries installed? Used by the launcher.
|
||||
@@ -324,9 +328,8 @@ init -1500 python in achievement:
|
||||
Clears the achievement with `name`.
|
||||
"""
|
||||
|
||||
if has(name):
|
||||
for i in backends:
|
||||
i.clear(name)
|
||||
for i in backends:
|
||||
i.clear(name)
|
||||
|
||||
def clear_all():
|
||||
"""
|
||||
|
||||
@@ -80,21 +80,31 @@ init -1500 python:
|
||||
A version of strftime that's meant to work with Ren'Py's translation
|
||||
system.
|
||||
"""
|
||||
rv = format
|
||||
|
||||
month = t[1] - 1
|
||||
wday = t[6]
|
||||
|
||||
rv = rv.replace("%a", __(_weekday_name_short[wday]))
|
||||
rv = rv.replace("%A", __(_weekday_name_long[wday]))
|
||||
rv = rv.replace("%b", __(_month_name_short[month]))
|
||||
rv = rv.replace("%B", __(_month_name_long[month]))
|
||||
import re
|
||||
import time
|
||||
|
||||
if "%" in rv:
|
||||
import time
|
||||
rv = time.strftime(rv, t)
|
||||
rv = [ ]
|
||||
|
||||
return rv
|
||||
for i in re.split(r'(%[-_^#]?[0-9]*[a-zA-Z])', format):
|
||||
|
||||
if i == "%a":
|
||||
rv.append(__(_weekday_name_short[wday]))
|
||||
elif i == "%A":
|
||||
rv.append(__(_weekday_name_long[wday]))
|
||||
elif i == "%b":
|
||||
rv.append(__(_month_name_short[month]))
|
||||
elif i == "%B":
|
||||
rv.append(__(_month_name_long[month]))
|
||||
elif "%" in i:
|
||||
rv.append(time.strftime(i, t))
|
||||
else:
|
||||
rv.append(i)
|
||||
|
||||
return "".join(rv)
|
||||
|
||||
|
||||
##########################################################################
|
||||
|
||||
@@ -41,10 +41,10 @@ init -1500 python:
|
||||
`screen` is usually the name of a screen, which is shown using
|
||||
the screen mechanism. If the screen doesn't exist, then "_screen"
|
||||
is appended to it, and that label is jumped to.
|
||||
|
||||
|
||||
If the optional keyword argument `_transition` is given, the
|
||||
menu will change screens using the provided transition.
|
||||
If not manually specified, the default transition is
|
||||
If not manually specified, the default transition is
|
||||
`config.intra_transition`.
|
||||
|
||||
* ShowMenu("load")
|
||||
@@ -151,18 +151,26 @@ init -1500 python:
|
||||
@renpy.pure
|
||||
class MainMenu(Action, DictEquality):
|
||||
"""
|
||||
:doc: menu_action
|
||||
:doc: menu_action
|
||||
|
||||
Causes Ren'Py to return to the main menu.
|
||||
Causes Ren'Py to return to the main menu.
|
||||
|
||||
`confirm`
|
||||
If true, causes Ren'Py to ask the user if he wishes to
|
||||
return to the main menu, rather than returning
|
||||
directly.
|
||||
"""
|
||||
`confirm`
|
||||
If true, causes Ren'Py to ask the user if he wishes to
|
||||
return to the main menu, rather than returning
|
||||
directly.
|
||||
|
||||
def __init__(self, confirm=True):
|
||||
`save`
|
||||
If true, the game is saved in :var:`_quit_slot` before Ren'Py
|
||||
restarts and returns the user to the main menu. The game is not
|
||||
saved if :var:`_quit_slot` is None.
|
||||
"""
|
||||
|
||||
save = True
|
||||
|
||||
def __init__(self, confirm=True, save=True):
|
||||
self.confirm = confirm
|
||||
self.save = save
|
||||
|
||||
def __call__(self):
|
||||
|
||||
@@ -173,9 +181,9 @@ init -1500 python:
|
||||
if config.autosave_on_quit:
|
||||
renpy.force_autosave()
|
||||
|
||||
layout.yesno_screen(layout.MAIN_MENU, MainMenu(False))
|
||||
layout.yesno_screen(layout.MAIN_MENU, MainMenu(False, save=self.save))
|
||||
else:
|
||||
renpy.full_restart(config.game_main_transition)
|
||||
renpy.full_restart(config.game_main_transition, save=self.save)
|
||||
|
||||
def get_sensitive(self):
|
||||
return not renpy.context()._main_menu
|
||||
|
||||
@@ -243,7 +243,7 @@ init -1500 python:
|
||||
force_step = False
|
||||
|
||||
identity_fields = [ 'object', ]
|
||||
equality_fields = [ 'range', 'max_is_zero', 'style', 'offset', 'step', 'action', 'force_step' ]
|
||||
equality_fields = [ 'range', 'max_is_zero', 'style', 'offset', 'step', 'action', 'force_step', 'field' ]
|
||||
|
||||
def __init__(self, object, field, range, max_is_zero=False, style="bar", offset=0, step=None, action=None, force_step=False):
|
||||
self.object = object
|
||||
|
||||
@@ -69,6 +69,8 @@ init -1500 python in build:
|
||||
|
||||
( "**/*.pyc", None),
|
||||
|
||||
( "**/steam_appid.txt", None),
|
||||
|
||||
( "renpy.py", "all"),
|
||||
|
||||
( "renpy/", "all"),
|
||||
@@ -101,7 +103,7 @@ init -1500 python in build:
|
||||
( "lib/mac-*/**", "mac"),
|
||||
|
||||
# Shared patterns.
|
||||
( "/lib/**", "windows linux mac android ios"),
|
||||
( "lib/**", "windows linux mac android ios"),
|
||||
( "renpy.sh", "linux mac"),
|
||||
])
|
||||
|
||||
@@ -127,6 +129,8 @@ init -1500 python in build:
|
||||
("common/", None),
|
||||
("update/", None),
|
||||
|
||||
("old-game/", None),
|
||||
|
||||
("icon.ico", None),
|
||||
("icon.icns", None),
|
||||
("project.json", None),
|
||||
@@ -413,6 +417,9 @@ init -1500 python in build:
|
||||
# Do we want to change the icon on the i686 binaries?
|
||||
change_icon_i686 = True
|
||||
|
||||
# A list of additional android permission names.
|
||||
android_permissions = [ ]
|
||||
|
||||
# This function is called by the json_dump command to dump the build data
|
||||
# into the json file.
|
||||
def dump():
|
||||
@@ -490,6 +497,8 @@ init -1500 python in build:
|
||||
rv["include_i686"] = include_i686
|
||||
rv["change_icon_i686"] = change_icon_i686
|
||||
|
||||
rv["android_permissions"] = android_permissions
|
||||
|
||||
return rv
|
||||
|
||||
init 1500 python in build:
|
||||
|
||||
@@ -193,11 +193,13 @@ init -1900 python:
|
||||
if version <= (7, 3, 2):
|
||||
config.audio_directory = None
|
||||
config.early_start_store = True
|
||||
config.compat_viewport_minimum = True
|
||||
|
||||
if version <= (7, 3, 5):
|
||||
config.side_image_requires_attributes = False
|
||||
config.window_functions_set_auto = False
|
||||
config.hw_video = True
|
||||
config.who_what_sub_compat = 0
|
||||
|
||||
if version <= (7, 4, 0):
|
||||
config.pause_with_transition = True
|
||||
@@ -205,6 +207,23 @@ init -1900 python:
|
||||
if version <= (7, 4, 2):
|
||||
config.dismiss_blocking_transitions = False
|
||||
|
||||
if version <= (7, 4, 4):
|
||||
config.pause_after_rollback = True
|
||||
config.gl2 = False
|
||||
config.gl_lod_bias = -1.0
|
||||
config.who_what_sub_compat = 1
|
||||
|
||||
if version == (7, 4, 5):
|
||||
config.scene_clears_layer_at_list = False
|
||||
|
||||
if version <= (7, 4, 6):
|
||||
config.adjust_minimums = False
|
||||
config.atl_start_on_show = False
|
||||
config.input_caret_blink = False
|
||||
|
||||
if version <= (7, 4, 8):
|
||||
config.relative_transform_size = False
|
||||
config.tts_front_to_back = False
|
||||
|
||||
# The version of Ren'Py this script is intended for, or
|
||||
# None if it's intended for the current version.
|
||||
|
||||
@@ -556,6 +556,8 @@ init -1500 python in _console:
|
||||
|
||||
return rv
|
||||
|
||||
renpy.ui.reset()
|
||||
|
||||
renpy.game.context().exception_handler = None
|
||||
|
||||
renpy.show_screen("_console", lines=self.lines[:-1], default=self.lines[-1], history=self.history, _transient=True)
|
||||
@@ -1050,7 +1052,11 @@ label _console:
|
||||
|
||||
while True:
|
||||
python in _console:
|
||||
console.interact()
|
||||
try:
|
||||
console.interact()
|
||||
finally:
|
||||
renpy.game.context().force_checkpoint = True
|
||||
renpy.exports.checkpoint(hard="not_greedy")
|
||||
|
||||
label _console_return:
|
||||
return
|
||||
|
||||
@@ -375,10 +375,73 @@ init -1400:
|
||||
define blinds = ImageDissolve(im.Tile("blindstile.png"), 1.0, 8)
|
||||
define squares = ImageDissolve(im.Tile("squarestile.png"), 1.0, 256)
|
||||
|
||||
transform Swing(delay=1.0, vertical=False, reverse=False, background="#000", flatten=True, new_widget=None, old_widget=None):
|
||||
delay delay
|
||||
|
||||
contains:
|
||||
background
|
||||
|
||||
contains:
|
||||
mesh flatten
|
||||
perspective True
|
||||
|
||||
# Note: (bool(x) * v) == v when x is true, or 0 otherwise.
|
||||
|
||||
old_widget
|
||||
matrixtransform RotateMatrix(0.0, 0.0, 0.0)
|
||||
linear (delay / 2.0) matrixtransform RotateMatrix(
|
||||
bool(vertical) * (-90.0 if reverse else 90.0),
|
||||
bool(not vertical) * (-90.0 if reverse else 90.0),
|
||||
0.0)
|
||||
|
||||
new_widget
|
||||
matrixtransform RotateMatrix(
|
||||
bool(vertical) * (90.0 if reverse else -90.0),
|
||||
bool(not vertical) * (90.0 if reverse else -90.0),
|
||||
0.0)
|
||||
|
||||
linear (delay / 2.0) matrixtransform RotateMatrix(0.0, 0.0, 0.0)
|
||||
|
||||
|
||||
python:
|
||||
Swing.__doc__ = """
|
||||
:doc: transition function
|
||||
:args: (delay=1.0, vertical=False, reverse=False, background="#000", flatten=True)
|
||||
|
||||
A transitions that rotates the old scene 90 degrees around an axis,
|
||||
so that it is edge on with the viewer, switches to the new scene,
|
||||
and then rotates that scene another 90 degrees to show the new
|
||||
scene to the viewer.
|
||||
|
||||
`delay`
|
||||
How long the transition should take.
|
||||
|
||||
`vertical`
|
||||
If true, the scene is rotate around the x-axis (pixels move
|
||||
vertically). If false, the scene is roated around the y axis,
|
||||
pixels moving horizontally.
|
||||
|
||||
`reverse`
|
||||
When true, the rotation occurs in the reverse direction.
|
||||
|
||||
`background`
|
||||
A displayable that is placed behind the scene as it rotates.
|
||||
|
||||
`flatten`
|
||||
If true, the scenes are flattened into images the size of
|
||||
the screen before being rotated. Use this if images being
|
||||
not entirely on the screen causes undesired effects.
|
||||
"""
|
||||
|
||||
swing = Swing()
|
||||
|
||||
init -1400:
|
||||
|
||||
# The default narrator.
|
||||
define _narrator = Character(None, kind=adv, what_style='say_thought')
|
||||
define centered = Character(None, what_style="centered_text", window_style="centered_window")
|
||||
define vcentered = Character(None, what_style="centered_vtext", window_style="centered_window")
|
||||
define centered = Character(None, what_style="centered_text", window_style="centered_window", statement_name="say-centered")
|
||||
define vcentered = Character(None, what_style="centered_vtext", window_style="centered_window", statement_name="say-centered")
|
||||
|
||||
|
||||
init 1400 python:
|
||||
if not hasattr(store, 'narrator'):
|
||||
@@ -389,4 +452,4 @@ init 1400 python:
|
||||
|
||||
# This is necessary to ensure that config.default_transform works.
|
||||
if config.default_transform:
|
||||
config.default_transform._show()
|
||||
config.default_transform.update_state()
|
||||
|
||||
@@ -379,6 +379,9 @@ init -1500 python:
|
||||
|
||||
label _gl_test:
|
||||
|
||||
if renpy.session.get("_keep_renderer", False):
|
||||
return
|
||||
|
||||
# Show the test image.
|
||||
scene black
|
||||
show expression config.gl_test_image
|
||||
|
||||
+12
-2
@@ -21,12 +21,13 @@
|
||||
|
||||
init -1100 python in gui:
|
||||
from store import config, layout, _preferences, Frame, Null, persistent, Action, DictEquality
|
||||
import math
|
||||
|
||||
config.translate_clean_stores.append("gui")
|
||||
|
||||
_null = Null()
|
||||
|
||||
def init(width, height):
|
||||
def init(width, height, fov=75):
|
||||
"""
|
||||
:doc: gui
|
||||
|
||||
@@ -37,6 +38,9 @@ init -1100 python in gui:
|
||||
|
||||
`height`
|
||||
The height of the default window.
|
||||
|
||||
`fov`
|
||||
The field of view of the 3d stage.
|
||||
"""
|
||||
|
||||
if (not renpy.is_init_phase()) and config.developer:
|
||||
@@ -45,6 +49,10 @@ init -1100 python in gui:
|
||||
config.screen_width = width
|
||||
config.screen_height = height
|
||||
|
||||
z = (width / 2) / math.tan(math.radians(fov / 2))
|
||||
|
||||
config.perspective = (100.0, z, 100000.0)
|
||||
|
||||
layout.defaults()
|
||||
|
||||
renpy.call_in_new_context("_style_reset")
|
||||
@@ -138,7 +146,9 @@ init -1100 python in gui:
|
||||
prefs = persistent._gui_preference
|
||||
|
||||
prefs[self.name] = self.value
|
||||
rebuild()
|
||||
|
||||
if self.rebuild:
|
||||
rebuild()
|
||||
|
||||
def get_selected(self):
|
||||
prefs = persistent._gui_preference
|
||||
|
||||
@@ -77,10 +77,14 @@ init -1600 python:
|
||||
input_up = [ 'K_UP', 'repeat_K_UP' ],
|
||||
input_down = [ 'K_DOWN', 'repeat_K_DOWN' ],
|
||||
input_delete = [ 'K_DELETE', 'repeat_K_DELETE' ],
|
||||
input_home = [ 'K_HOME' ],
|
||||
input_end = [ 'K_END' ],
|
||||
input_home = [ 'K_HOME', 'meta_K_LEFT' ],
|
||||
input_end = [ 'K_END', 'meta_K_RIGHT' ],
|
||||
input_copy = [ 'ctrl_noshift_K_INSERT', 'ctrl_noshift_K_c' ],
|
||||
input_paste = [ 'shift_K_INSERT', 'ctrl_noshift_K_v' ],
|
||||
input_jump_word_left = [ 'osctrl_K_LEFT' ],
|
||||
input_jump_word_right = [ 'osctrl_K_RIGHT' ],
|
||||
input_delete_word = [ 'osctrl_K_BACKSPACE' ],
|
||||
input_delete_full = [ 'meta_K_BACKSPACE' ],
|
||||
|
||||
# Viewport.
|
||||
viewport_leftarrow = [ 'K_LEFT', 'repeat_K_LEFT' ],
|
||||
@@ -280,10 +284,12 @@ init -1600 python:
|
||||
if renpy.macapp:
|
||||
dest = os.path.expanduser(b"~/Desktop")
|
||||
|
||||
pattern = renpy.store._screenshot_pattern or config.screenshot_pattern
|
||||
|
||||
# Try to pick a filename.
|
||||
i = 1
|
||||
while True:
|
||||
fn = os.path.join(dest, config.screenshot_pattern % i)
|
||||
fn = os.path.join(dest, pattern % i)
|
||||
if not os.path.exists(fn):
|
||||
break
|
||||
i += 1
|
||||
|
||||
@@ -6,6 +6,7 @@ python early in layeredimage:
|
||||
from collections import OrderedDict
|
||||
|
||||
ATL_PROPERTIES = [ i for i in renpy.atl.PROPERTIES ]
|
||||
ATL_PROPERTIES_SET = set(ATL_PROPERTIES)
|
||||
|
||||
# The properties for attribute layers.
|
||||
LAYER_PROPERTIES = [ "if_all", "if_any", "if_not", "at" ] + ATL_PROPERTIES
|
||||
@@ -90,7 +91,9 @@ python early in layeredimage:
|
||||
Base class for our layers.
|
||||
"""
|
||||
|
||||
def __init__(self, if_all=[ ], if_any=[ ], if_not=[ ], at=[ ], **kwargs):
|
||||
group_args = {}
|
||||
|
||||
def __init__(self, if_all=[ ], if_any=[ ], if_not=[ ], at=[ ], group_args={}, **kwargs):
|
||||
|
||||
if not isinstance(at, list):
|
||||
at = [ at ]
|
||||
@@ -112,6 +115,7 @@ python early in layeredimage:
|
||||
|
||||
self.if_not = if_not
|
||||
|
||||
self.group_args = group_args
|
||||
self.transform_args = kwargs
|
||||
|
||||
def check(self, attributes):
|
||||
@@ -144,9 +148,14 @@ python early in layeredimage:
|
||||
for i in self.at:
|
||||
d = i(d)
|
||||
|
||||
if self.transform_args:
|
||||
if self.group_args or self.transform_args:
|
||||
d = Transform(d)
|
||||
|
||||
d = Transform(d, **self.transform_args)
|
||||
for k, v in self.group_args.items():
|
||||
setattr(d, k, v)
|
||||
|
||||
for k, v in self.transform_args.items():
|
||||
setattr(d, k, v)
|
||||
|
||||
return d
|
||||
|
||||
@@ -205,12 +214,12 @@ python early in layeredimage:
|
||||
to generate an image filename.
|
||||
"""
|
||||
|
||||
def __init__(self, group, attribute, image=None, default=False, **kwargs):
|
||||
def __init__(self, group, attribute, image=None, default=False, group_args={}, **kwargs):
|
||||
|
||||
prefix = kwargs.pop("prefix", None)
|
||||
variant = kwargs.pop("variant", None)
|
||||
|
||||
super(Attribute, self).__init__(**kwargs)
|
||||
super(Attribute, self).__init__(group_args=group_args, **kwargs)
|
||||
|
||||
self.group = group
|
||||
|
||||
@@ -252,20 +261,20 @@ python early in layeredimage:
|
||||
self.image = None
|
||||
self.properties = OrderedDict()
|
||||
|
||||
def execute(self, group=None, properties=None):
|
||||
|
||||
if properties is not None:
|
||||
properties = dict(properties)
|
||||
else:
|
||||
properties = dict()
|
||||
def execute(self, group=None, group_properties=None):
|
||||
if group_properties is None:
|
||||
group_properties = {}
|
||||
|
||||
if self.image:
|
||||
image = eval(self.image)
|
||||
else:
|
||||
image = None
|
||||
|
||||
properties = { k : v for k, v in group_properties.items() if k not in ATL_PROPERTIES_SET }
|
||||
group_args = { k : v for k, v in group_properties.items() if k in ATL_PROPERTIES_SET }
|
||||
properties.update({ k : eval(v) for k, v in self.properties.items() })
|
||||
return [ Attribute(group, self.name, image, **properties) ]
|
||||
|
||||
return [ Attribute(group, self.name, image, group_args=group_args, **properties) ]
|
||||
|
||||
|
||||
class RawAttributeGroup(object):
|
||||
@@ -281,7 +290,6 @@ python early in layeredimage:
|
||||
|
||||
properties = { k : eval(v) for k, v in self.properties.items() }
|
||||
|
||||
|
||||
auto = properties.pop("auto", False)
|
||||
variant = properties.get("variant", None)
|
||||
multiple = properties.pop("multiple", False)
|
||||
@@ -294,7 +302,7 @@ python early in layeredimage:
|
||||
group = self.group
|
||||
|
||||
for i in self.children:
|
||||
rv.extend(i.execute(group=group, properties=properties))
|
||||
rv.extend(i.execute(group=group, group_properties=properties))
|
||||
|
||||
if auto:
|
||||
seen = set(i.raw_attribute for i in rv)
|
||||
@@ -591,7 +599,7 @@ python early in layeredimage:
|
||||
kwargs.setdefault("xfit", True)
|
||||
kwargs.setdefault("yfit", True)
|
||||
|
||||
self.transform_args = {k : kwargs.pop(k) for k, v in kwargs.items() if k not in (renpy.sl2.slproperties.position_property_names + renpy.sl2.slproperties.box_property_names)}
|
||||
self.transform_args = {k : kwargs.pop(k) for k, v in list(kwargs.items()) if k not in (renpy.sl2.slproperties.position_property_names + renpy.sl2.slproperties.box_property_names)}
|
||||
self.fixed_args = kwargs
|
||||
|
||||
def format(self, what, attribute=None, group=None, variant=None, image=None):
|
||||
@@ -658,12 +666,15 @@ python early in layeredimage:
|
||||
if self.attribute_function:
|
||||
attributes = set(self.attribute_function(attributes))
|
||||
|
||||
unknown = set(attributes)
|
||||
unknown = set([i[1:] if i.startswith('-') else i for i in attributes])
|
||||
|
||||
for a in self.attributes:
|
||||
|
||||
unknown.discard(a.attribute)
|
||||
|
||||
if a.variant:
|
||||
unknown.discard(a.variant)
|
||||
|
||||
rv = Fixed(**self.fixed_args)
|
||||
|
||||
for i in self.layers:
|
||||
@@ -735,34 +746,26 @@ python early in layeredimage:
|
||||
|
||||
return [ i[1] for i in group_attr ]
|
||||
|
||||
def _choose_attributes(self, tag, attributes, optional):
|
||||
def _choose_attributes(self, tag, required, optional):
|
||||
|
||||
unknown = list(attributes)
|
||||
rv = list(required)
|
||||
|
||||
attributes = set(attributes)
|
||||
banned = self.get_banned(attributes)
|
||||
|
||||
both = attributes & banned
|
||||
required = set(required)
|
||||
banned = self.get_banned(required)
|
||||
both = required & banned
|
||||
|
||||
if both:
|
||||
raise Exception("The attributes for {} conflict: {}".format(tag, " ".join(both)))
|
||||
|
||||
# The set of all available attributes.
|
||||
available_attributes = set(a.attribute for a in self.attributes)
|
||||
|
||||
if optional is not None:
|
||||
attributes |= (set(optional) - banned)
|
||||
optional = set(optional) & available_attributes
|
||||
rv.extend(optional - required - banned)
|
||||
|
||||
rv = [ ]
|
||||
|
||||
for a in self.attributes:
|
||||
|
||||
if a.attribute in attributes:
|
||||
if a.attribute not in rv:
|
||||
rv.append(a.attribute)
|
||||
|
||||
if a.attribute in unknown:
|
||||
unknown.remove(a.attribute)
|
||||
|
||||
if unknown:
|
||||
# If there is an unknown attribute.
|
||||
if set(rv) - available_attributes:
|
||||
return None
|
||||
|
||||
return tuple(rv)
|
||||
|
||||
@@ -366,8 +366,19 @@ wipeup
|
||||
zoomin
|
||||
zoominout
|
||||
zoomout
|
||||
|
||||
_autosave
|
||||
_confirm_quit
|
||||
_dismiss_pause
|
||||
_game_menu_screen
|
||||
_ignore_action
|
||||
_quit_slot
|
||||
_rollback
|
||||
_skipping
|
||||
_window_subtitle
|
||||
""".split():
|
||||
|
||||
# _history, history_list, and _version are set later, so aren't included.
|
||||
renpy.lint.renpy_builtins.remove(i)
|
||||
|
||||
del i
|
||||
|
||||
@@ -24,12 +24,13 @@
|
||||
init -1500 python:
|
||||
import math as _math
|
||||
|
||||
class ColorMatrix(object):
|
||||
class _BaseMatrix(object):
|
||||
"""
|
||||
:undocumented:
|
||||
|
||||
Documented in text. The base class for various *Matrix classes
|
||||
that are intended to return a Matrix that transforms colors.
|
||||
that are intended to return a Matrix, both ColorMatrix and
|
||||
TransformMatrix.
|
||||
"""
|
||||
|
||||
def __init__(self, value=1.0):
|
||||
@@ -55,6 +56,16 @@ init -1500 python:
|
||||
def __ne__(self, other):
|
||||
return not (self == other)
|
||||
|
||||
class ColorMatrix(_BaseMatrix):
|
||||
"""
|
||||
:undocumented:
|
||||
|
||||
Documented in text. The base class for various *Matrix classes
|
||||
that are intended to return a Matrix that transforms colors.
|
||||
"""
|
||||
|
||||
pass
|
||||
|
||||
class _MultiplyMatrix(ColorMatrix):
|
||||
"""
|
||||
:undocumented:
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
# 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 contains wrappers for the various Transform classes. It uses some
|
||||
# of the classes in 00matrixcolor.rpy.
|
||||
|
||||
init -1400 python:
|
||||
|
||||
|
||||
class TransformMatrix(_BaseMatrix):
|
||||
"""
|
||||
:undocumented:
|
||||
"""
|
||||
|
||||
function = None
|
||||
nargs = 0
|
||||
|
||||
|
||||
def __init__(self, *args):
|
||||
if len(args) != self.nargs:
|
||||
raise Exception("{} takes {} arguments, {} given.".format(type(self).__name__, self.nargs, len(args)))
|
||||
|
||||
self.args = args
|
||||
|
||||
|
||||
def __call__(self, other, done):
|
||||
|
||||
if type(other) is not type(self):
|
||||
return self.function(*self.args)
|
||||
else:
|
||||
args = tuple(a + (b - a) * done for a, b in zip(other.args, self.args))
|
||||
return self.function(*args)
|
||||
|
||||
@staticmethod
|
||||
def _document(function):
|
||||
if not function:
|
||||
return ":undocumented:"
|
||||
|
||||
rv = function.__doc__
|
||||
|
||||
rv = rv.replace(":doc: matrix", ":doc: transform_matrix")
|
||||
rv = rv.replace("Returns", "A TransformMatrix that returns")
|
||||
|
||||
return rv
|
||||
|
||||
|
||||
class OffsetMatrix(TransformMatrix):
|
||||
nargs = 3
|
||||
function = Matrix.offset
|
||||
__doc__ = TransformMatrix._document(Matrix.offset)
|
||||
|
||||
class RotateMatrix(TransformMatrix):
|
||||
nargs = 3
|
||||
function = Matrix.rotate
|
||||
__doc__ = TransformMatrix._document(Matrix.rotate)
|
||||
|
||||
class ScaleMatrix(TransformMatrix):
|
||||
nargs = 3
|
||||
function = Matrix.scale
|
||||
__doc__ = TransformMatrix._document(Matrix.scale)
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
# 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.
|
||||
|
||||
init -1500 python:
|
||||
|
||||
class MouseDisplayable(renpy.Displayable):
|
||||
"""
|
||||
:doc: mouse_displayable
|
||||
|
||||
A displayable that wraps a mouse cursor displayable, and causes
|
||||
it to move across the screen when the player moves their mouse.
|
||||
|
||||
`cursor`
|
||||
A displayable that is used to draw the mouse.
|
||||
|
||||
`x`, `y`
|
||||
The coordinates of the hotspot, relative to the upper left
|
||||
corner of the mouse, in virtual pixels.
|
||||
|
||||
.. method MouseDisplayable.add(name, cursor, x, y)
|
||||
|
||||
This adds a second cursor, that is used when the `name`
|
||||
mouse is displayed. This returns the MouseDisplayable,
|
||||
so that calls to this method can be chained.
|
||||
"""
|
||||
|
||||
def __init__(self, cursor, x, y):
|
||||
|
||||
super(MouseDisplayable, self).__init__()
|
||||
|
||||
self.cursors = { 'default': ( renpy.displayable(cursor), x, y) }
|
||||
|
||||
self.last_cursor = "_default_"
|
||||
self.last_cursor_st = 0
|
||||
|
||||
|
||||
def add(self, name, cursor, x, y):
|
||||
self.cursors[name] = ( renpy.displayable(cursor), x, y )
|
||||
return self
|
||||
|
||||
def render(self, width, height, st, at):
|
||||
|
||||
# Determine the name of the mouse to use.
|
||||
name = renpy.get_mouse_name()
|
||||
|
||||
# If it doesn't exist, use the default.
|
||||
if name not in self.cursors:
|
||||
name = "default"
|
||||
|
||||
# Adjust st when the cursor changes.
|
||||
if name != self.last_cursor:
|
||||
self.last_cursor = name
|
||||
self.last_cursor_st = st
|
||||
|
||||
st = st - self.last_cursor_st
|
||||
|
||||
# Render this displayable.
|
||||
rv = renpy.Render(width, height)
|
||||
|
||||
# If the user is on the screen,
|
||||
x, y = renpy.get_mouse_pos()
|
||||
d, xo, yo = self.cursors[name]
|
||||
|
||||
if (0 <= x < width) and (0 <= y < height) and renpy.is_mouse_visible():
|
||||
|
||||
cr = renpy.render(d, width, height, st, at)
|
||||
rv.subpixel_blit(cr, (x - xo, y - yo))
|
||||
|
||||
# This helps the mouse hide work.
|
||||
renpy.redraw(self, 1.0)
|
||||
|
||||
return rv
|
||||
|
||||
def visit(self):
|
||||
return [ i[0] for i in self.cursors.values() ]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user