Compare commits
743 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7f303a5fbf | |||
| 388cf6aac7 | |||
| c7db343855 | |||
| 7a45ec3e0a | |||
| 976aeebf0b | |||
| 98e85f83be | |||
| 9273c41437 | |||
| a590472f55 | |||
| 06e884ac70 | |||
| fd5f97289b | |||
| 8e2f926bc3 | |||
| 916a4b0f56 | |||
| 3191754e79 | |||
| 0770876b14 | |||
| b4783374a8 | |||
| 5c401c0406 | |||
| 4b39d4d0c4 | |||
| 3860fc7d8d | |||
| 50c70a8615 | |||
| 70f0362b4a | |||
| bd418d9541 | |||
| 95e764b411 | |||
| b173b7252d | |||
| 16fbd10e6f | |||
| feb9cd85ed | |||
| 362f9d6c33 | |||
| f2def9c148 | |||
| 1d994fa126 | |||
| 16685b6b9f | |||
| fd5841d2d2 | |||
| 753776973e | |||
| e546ac6c73 | |||
| e67c91d176 | |||
| 6252945a47 | |||
| 819d3386d7 | |||
| 430d01aa13 | |||
| ef8917e044 | |||
| 4d1be9e610 | |||
| e1b8de8512 | |||
| e55856d177 | |||
| fbe7cab9c6 | |||
| d6e3b4f492 | |||
| 7aac6fffb6 | |||
| 4e09103b09 | |||
| 3605298777 | |||
| 6b467eca81 | |||
| 9e966702ac | |||
| cc2486fa82 | |||
| 74cadd2b03 | |||
| caad552141 | |||
| 3202e0eab2 | |||
| 58434e2553 | |||
| 78ff61dd08 | |||
| 65edc55eb0 | |||
| 5bf35c8c4f | |||
| ef5777d6b6 | |||
| 033574e235 | |||
| 8a21aa55dc | |||
| 6c948bf046 | |||
| 95074ff55d | |||
| d836316e90 | |||
| 4804b04dcc | |||
| 6d08132e58 | |||
| dfb6c7beb1 | |||
| d2755faa5c | |||
| ef40de899c | |||
| d81f8264ff | |||
| 3b60afe8dc | |||
| 6783f22f3b | |||
| 3c59cac254 | |||
| 8de2bda1e6 | |||
| 57f9a1e508 | |||
| e0ca2992ed | |||
| 731cb8c53c | |||
| 37d7d71d2b | |||
| a672a6840a | |||
| 8603ca2cf1 | |||
| 6793d7e5fa | |||
| 24a8135657 | |||
| 1a945d9663 | |||
| 0196e6aa69 | |||
| dbee728716 | |||
| 86bb2b83c0 | |||
| 9586b0f685 | |||
| 6aa0ee45bf | |||
| 54e567160c | |||
| 6c40f39930 | |||
| 9eefa84bf2 | |||
| 9d1f34995a | |||
| 0883e74935 | |||
| f257dc1c41 | |||
| 1b079ef358 | |||
| 07b853f77f | |||
| 8db8651eb0 | |||
| 3568c02c42 | |||
| 5e3b209ba2 | |||
| 4a097934de | |||
| 159f6a94ce | |||
| c726573089 | |||
| b2499105ec | |||
| 315b0a9118 | |||
| cb6101eab4 | |||
| 8773f1b0ed | |||
| ecf19de428 | |||
| c182a7cc72 | |||
| 3b5be04369 | |||
| 38b91afaa1 | |||
| cb382804c3 | |||
| 364eef9392 | |||
| 773b428996 | |||
| 043a7c142e | |||
| a312a6f77e | |||
| ccc502e8a6 | |||
| b2af375e0a | |||
| 14c191cf7f | |||
| 3a47bea97f | |||
| 373235c179 | |||
| b0765aaf3a | |||
| 8b7b17c5ac | |||
| 82d2384b09 | |||
| 37647ecfea | |||
| 3dd9bff6ea | |||
| 8e5445c6bf | |||
| a6142487c8 | |||
| 2acbd61df4 | |||
| 2e45c3e609 | |||
| 87cc2c334d | |||
| 8c7a3b13bf | |||
| 83c75d1a0f | |||
| ac83e934a1 | |||
| 9ce1334039 | |||
| e8ece0a442 | |||
| 4a0738f2aa | |||
| 899eb6616f | |||
| 8cdc759126 | |||
| d1af90f096 | |||
| e88db2678b | |||
| 125f3b81d1 | |||
| dc4541553e | |||
| 6c4e86ac13 | |||
| a96174950f | |||
| 536fce4a22 | |||
| 4957280f4c | |||
| e9a0fdbbc7 | |||
| 9c86961cd1 | |||
| f3e1b12e61 | |||
| 805308d78a | |||
| d0fdf85658 | |||
| ebfcd1b153 | |||
| 52ae19a185 | |||
| 97f4b95969 | |||
| 9af6d13c08 | |||
| b4bbf4bd80 | |||
| 698d391033 | |||
| d9ecde9a62 | |||
| ca9e2dfe47 | |||
| 321434e95e | |||
| 33e633c1aa | |||
| 41b6e689d3 | |||
| cddda04e20 | |||
| 1a8eed69ac | |||
| 3bcc9c72b2 | |||
| 4f1ee9e601 | |||
| 732ef3af11 | |||
| 0c3b419dad | |||
| adf545a199 | |||
| 1a952fd87e | |||
| 96825cb518 | |||
| 7958f5445a | |||
| efd4cc6b5e | |||
| c57b7748f5 | |||
| acf1f8ae38 | |||
| 35c4ba4a41 | |||
| 13df1dc000 | |||
| 5361a8e9a5 | |||
| ba76f970c5 | |||
| a9b529b9fd | |||
| a4f4d49259 | |||
| 7d8d05107b | |||
| dfb31d28f9 | |||
| 181eb8adab | |||
| f0feb9b33e | |||
| 2639028ce7 | |||
| 85e055a3dc | |||
| cbc6986ae6 | |||
| c329714093 | |||
| abdf045277 | |||
| 8df7c8605d | |||
| 919e22059b | |||
| 10d04c1faf | |||
| 0a1e694e02 | |||
| 0f6379a797 | |||
| 9226d27605 | |||
| c2baefb2a1 | |||
| 7aeef3bae9 | |||
| 8d5dbe4f73 | |||
| 04cd9fe223 | |||
| beedbc0a22 | |||
| 36c00a5e19 | |||
| cedcc36418 | |||
| 6a828f6ade | |||
| 3df4aabba0 | |||
| ae20ebead0 | |||
| fc5ccc2f7b | |||
| 9c31ee66bb | |||
| 627c6c6a48 | |||
| 407f3ad859 | |||
| 2b63ccf21e | |||
| 2993629f22 | |||
| 77aaeaa514 | |||
| 7baac98ecb | |||
| ed155c4b43 | |||
| bfae063c3c | |||
| 2ee62542bb | |||
| 20f988a175 | |||
| 26c440f7a5 | |||
| b0e250d11e | |||
| 74157a4ad6 | |||
| 25b4a17d1a | |||
| a2f0747294 | |||
| 7c8f6fc6b7 | |||
| 6951397e17 | |||
| e46ba6c0db | |||
| 8737c5f2a7 | |||
| 16855d59a8 | |||
| cba492a109 | |||
| 2d0c3a3929 | |||
| 66fd602018 | |||
| 85eb29e25d | |||
| cfa27c3295 | |||
| 3bd1fe0d0c | |||
| ad68443ce9 | |||
| 29867c25da | |||
| 5aae0b2a4c | |||
| 02dee6d384 | |||
| bed1de4001 | |||
| 6fdb82a211 | |||
| 4e97001e47 | |||
| 389eac79fe | |||
| 18558cca21 | |||
| 0e9198ae0f | |||
| eee91e5f9c | |||
| 750fc33438 | |||
| 545f4200e4 | |||
| fe02e12192 | |||
| 57b2ce638e | |||
| 05d0bff24e | |||
| ee1a3cf44a | |||
| 5013b1f98f | |||
| 850a9f9b37 | |||
| 0b61e59d7f | |||
| b01928453c | |||
| 3af05dadf6 | |||
| 2508785591 | |||
| b8769d9800 | |||
| 1febfd4306 | |||
| 260cf63292 | |||
| d95d734912 | |||
| c35dc9a02a | |||
| f99c8acd62 | |||
| fbf533a003 | |||
| 03c31da5f0 | |||
| a794ee3b00 | |||
| c1afced29c | |||
| 02156e6e47 | |||
| 07b9a6da78 | |||
| a77170508e | |||
| 03cdfd091d | |||
| 2caf0adabb | |||
| 423f544dc9 | |||
| e207fdc435 | |||
| bfbc9b8b1f | |||
| ae04573e90 | |||
| 6c2baa1474 | |||
| ceb7dea7cc | |||
| 2da5f4ae6a | |||
| 8bbb827d25 | |||
| a535365da0 | |||
| 2450dcbfa8 | |||
| 439921baea | |||
| ac450c8b1f | |||
| 4163c1396c | |||
| d6ab06dd1f | |||
| 3db515db3c | |||
| 99cb4c0975 | |||
| b120ea6303 | |||
| cc654ebfeb | |||
| a8342ba40b | |||
| 72535d881a | |||
| 41458e274e | |||
| 5f8382a9aa | |||
| f389c13b29 | |||
| c57dbe7a9d | |||
| fba051737f | |||
| 83c87011ad | |||
| 9e9e9061e0 | |||
| 3bef0a10b0 | |||
| cedf98910f | |||
| ae08ac55c5 | |||
| e35fcb2e86 | |||
| 6c8030ad99 | |||
| 820bd815ca | |||
| 38b505ba36 | |||
| 9de620953d | |||
| c5f54a6d72 | |||
| 9968387f89 | |||
| 680fe45ec8 | |||
| 5c2258b970 | |||
| 4d976330ec | |||
| d8096effe4 | |||
| f04a303af0 | |||
| 2fdcd690a9 | |||
| 52e309aa1b | |||
| 293f0f5e5d | |||
| f132d49157 | |||
| 73333d16fc | |||
| 6cf5e23f6a | |||
| e6b92d5a27 | |||
| f2d3e0d20e | |||
| e41a4f85e9 | |||
| 6b4e61f3b2 | |||
| adfb70038b | |||
| 5146b83125 | |||
| 5bc46900f6 | |||
| b23a0df6e8 | |||
| 86dbd0d299 | |||
| 13919e7f94 | |||
| 63155fbc7e | |||
| ba0bc218c2 | |||
| 8a4a811a4c | |||
| 643fd38510 | |||
| 8ea6482788 | |||
| 97331e2464 | |||
| 2ba27b5549 | |||
| 8c26b986a3 | |||
| 8d38a6ae4d | |||
| bac6dbdba7 | |||
| 346b34d5a0 | |||
| 7d2a131995 | |||
| fd6eb01e5e | |||
| 81653b0daf | |||
| c97f8acadd | |||
| e3c4993487 | |||
| 62810b94ab | |||
| d0270729c1 | |||
| 3bc3bf3e19 | |||
| 831fb59d49 | |||
| 5db210473c | |||
| 0686c2621d | |||
| 3fcf634c8b | |||
| 9caf81c129 | |||
| f5555d6f1a | |||
| e7eb0e135b | |||
| 9d4fd5aef1 | |||
| 92514e4c1f | |||
| 40078a18f3 | |||
| 22153cb191 | |||
| bf9de85f75 | |||
| 6470a37b40 | |||
| b6aa7e7139 | |||
| 99a5ac89db | |||
| d594f15b23 | |||
| e46073b059 | |||
| 88ddee9d5e | |||
| d8283c958c | |||
| 31025cdadb | |||
| e66a9b8c6d | |||
| 2b5b9835b7 | |||
| 43441524cd | |||
| 3f667e3ef1 | |||
| f8cc239df6 | |||
| 3ece5ec173 | |||
| 823e235a1c | |||
| 2e2020be4a | |||
| 6666a285a7 | |||
| 1df2c15b07 | |||
| 4087f8de87 | |||
| cde2db2ebf | |||
| c1f85b21d5 | |||
| 2552c35581 | |||
| 86294e34f2 | |||
| 5c5252a516 | |||
| 70bb4208bc | |||
| 2e1c09dbbd | |||
| fc5f8e0d3e | |||
| 81198df4c5 | |||
| 9deaddbbd4 | |||
| 4dbddc88ed | |||
| 17e574866b | |||
| c59e787262 | |||
| 5f77306cba | |||
| 28ae4a7c0c | |||
| ec5738c6e0 | |||
| 2da8beecd7 | |||
| e0062cbebc | |||
| 9b290e07f5 | |||
| c0051f49b3 | |||
| f64c74ac78 | |||
| 5d217f6527 | |||
| e63efb05de | |||
| 48ef5c89b3 | |||
| 2145516173 | |||
| 864feaba02 | |||
| 76b068c6dc | |||
| ebc6e66433 | |||
| 9ee1562ff3 | |||
| f25dcea3cb | |||
| 78899cfef3 | |||
| 442c4fdc7a | |||
| 339c7357dc | |||
| 4a1182cdd5 | |||
| 9ff3bb67e8 | |||
| a84543fb99 | |||
| bb3d8254b1 | |||
| f7a5e874ea | |||
| 97f05000b5 | |||
| e7297b78f8 | |||
| 6f2bc54e1b | |||
| 07dc391c59 | |||
| ec758301ac | |||
| 83cada0b34 | |||
| 2fe65592db | |||
| 48bd8358d2 | |||
| 19122e45c8 | |||
| 89d5858d2b | |||
| 75ef4e4f7e | |||
| e6e72e3d94 | |||
| d5b1da1052 | |||
| cb10f2a21a | |||
| 089675bafa | |||
| 5a65eea075 | |||
| 4e5dd16606 | |||
| f746a61a1c | |||
| 28a35bfcea | |||
| dd61e71beb | |||
| 74b4674439 | |||
| 1a8dbd84fb | |||
| 358502391f | |||
| c3246406c2 | |||
| 70f30147df | |||
| bdd07c41ee | |||
| 55bc71c810 | |||
| 423e54de9f | |||
| b097fcf3de | |||
| fa84f0c61e | |||
| 74339b0432 | |||
| f6f4b3bce3 | |||
| 5dbd50159a | |||
| 1e85fd051a | |||
| 88185556c6 | |||
| dc65afd6f1 | |||
| 4cf058d823 | |||
| e3222ec11d | |||
| 37c78dccda | |||
| 1a7f0ca8c3 | |||
| 098b29a15c | |||
| 0ea39d7637 | |||
| 173e4ebef4 | |||
| f2badd8cc9 | |||
| be8831b4b2 | |||
| fc87c053c3 | |||
| 10cc039460 | |||
| fd027dbdbd | |||
| 15eb9a9c13 | |||
| 2ded06bc5d | |||
| 06f6c73e41 | |||
| bebf063872 | |||
| 8c759f7760 | |||
| 7fd921b1a0 | |||
| 54fb00100e | |||
| b87b105387 | |||
| bf142b2ba8 | |||
| 13285fe264 | |||
| a9159c5f71 | |||
| c5cdd0038e | |||
| 8bac98c29a | |||
| 421d8cc37d | |||
| c097434036 | |||
| e3cc4be1b8 | |||
| 2137eab4cb | |||
| 15f498516a | |||
| b5711f7e11 | |||
| 8f2649e3a7 | |||
| ab42c0f6e1 | |||
| 01eacd2932 | |||
| c25f22fe4f | |||
| e1ca5b3d8a | |||
| 03b6addae0 | |||
| bc31530843 | |||
| ad49dcae3c | |||
| fe3b800cab | |||
| ccde74bdb8 | |||
| 1817191f8f | |||
| ab6f469811 | |||
| f92b70d38c | |||
| e89338342a | |||
| 60db4ee41a | |||
| 62ca262aec | |||
| eb5a84d420 | |||
| 3280bcc5ff | |||
| 2155bb02ae | |||
| 5c5f72659c | |||
| bc6e2a63d0 | |||
| 204ca35321 | |||
| b9789ae25c | |||
| 899307d791 | |||
| 0bf4ab51d6 | |||
| 88d3870d5c | |||
| db7d998c38 | |||
| 58e56cff88 | |||
| b1623451e8 | |||
| 4b532ac11e | |||
| a7f16eee3f | |||
| af7314a8a1 | |||
| a8567d0811 | |||
| 74a6660ae1 | |||
| fff2558083 | |||
| 944b7d0e9c | |||
| 797e37678a | |||
| c4528cf6ad | |||
| 1417e58963 | |||
| 7022001dbe | |||
| 0ab9444676 | |||
| 65440785e5 | |||
| 0795565e07 | |||
| 3cf31edae2 | |||
| 8b356090d9 | |||
| c8a2c7036f | |||
| c512985741 | |||
| a2d6911b4e | |||
| 9f3be6e604 | |||
| d59029d66c | |||
| 0e6522f867 | |||
| 3cbe6fa1d8 | |||
| a9ecae1a59 | |||
| bb5588f182 | |||
| 45a6a08559 | |||
| 3bf1b78250 | |||
| 2eda0dc2e9 | |||
| 7084ee4b46 | |||
| 93d760c9fa | |||
| e1cb42f253 | |||
| dde19b8716 | |||
| 01f74075b8 | |||
| 906788fe88 | |||
| 69b019f03c | |||
| 51f523b3c3 | |||
| 9de1c93ef9 | |||
| faf1e15710 | |||
| ef4c0bd1d9 | |||
| 339300d2a0 | |||
| 51f6b0d756 | |||
| c4f478160b | |||
| f547ea3ed1 | |||
| 054535f0c8 | |||
| 8911825d46 | |||
| 16b9c2be67 | |||
| ddc3f67539 | |||
| 4a591d552b | |||
| 99915a3ed3 | |||
| 576a1138d3 | |||
| 50ef339f16 | |||
| 21774019a7 | |||
| 33fbe01388 | |||
| 0385bbcb9b | |||
| 82dd5968e3 | |||
| 43c6f83aff | |||
| e6fc6e3c26 | |||
| 7fe14c09c9 | |||
| 588824cf3f | |||
| ddf7b35160 | |||
| d85879b1fd | |||
| adfbb4970b | |||
| bbf2cff58f | |||
| a1a0b78cb4 | |||
| 4cd14e18b5 | |||
| 20a5d6cd69 | |||
| e70011862a | |||
| 34a1f57e50 | |||
| 5245fbb38e | |||
| 916c6cc9e9 | |||
| 937c91f314 | |||
| f1e2d074c6 | |||
| 6e83ae9bd1 | |||
| d3506085c8 | |||
| d90f1cdc30 | |||
| 02d7a3305a | |||
| 8c82667ae1 | |||
| 3085c15caf | |||
| 2e37df7103 | |||
| 9a75b6628b | |||
| cd590d78eb | |||
| 405d8d4399 | |||
| 0ed2c16ee9 | |||
| 56dda5590b | |||
| fc429eb984 | |||
| 623c5f6d1f | |||
| b430ca2243 | |||
| 86046383a8 | |||
| 8e21bcbc00 | |||
| f907fe119a | |||
| 14ced3377a | |||
| ad690d8a16 | |||
| 31ff6d3e95 | |||
| 6aadfe4d15 | |||
| 435fec2be6 | |||
| 6b507d5a57 | |||
| 1c830a0be1 | |||
| 25b0068b1d | |||
| b1a3171a40 | |||
| 30af1dfb70 | |||
| ee89717b47 | |||
| 6cfef151da | |||
| fca89d813e | |||
| 9050a9d5a5 | |||
| d257b9dc70 | |||
| 89c79e55fe | |||
| d7f194072e | |||
| 60ca4cd5ae | |||
| 20c1f572d7 | |||
| a73e20288c | |||
| 16fe7290fa | |||
| 8d2a6d2596 | |||
| f225453ff1 | |||
| ff04b3ea56 | |||
| 209eb580cf | |||
| 3103cff7f7 | |||
| 903e971395 | |||
| 138884b545 | |||
| 45e942de05 | |||
| 24a699ba12 | |||
| f5ed3d7947 | |||
| 1489a4e748 | |||
| 1a7fb9c008 | |||
| c761ba4c75 | |||
| 79fbc7718e | |||
| 7d4f7d17f9 | |||
| 439bcf73f3 | |||
| 6506a3a45e | |||
| dc81a5edeb | |||
| 331a4f0211 | |||
| 69f1a2bb0b | |||
| cd90dfa789 | |||
| d20d9f2aa7 | |||
| fb1d40db3c | |||
| 4f835f1250 | |||
| 0843e46e91 | |||
| a0963c18ee | |||
| f0dfe18bbf | |||
| 9c6cc41ec3 | |||
| 41e13911e3 | |||
| 35f6794db2 | |||
| 699c2a1679 | |||
| cad9dc37c2 | |||
| deb959a1e7 | |||
| 3913ca9c0c | |||
| 93c4c4e8df | |||
| c634ff91d2 | |||
| 4e03602bd6 | |||
| 5b0f4cf5a7 | |||
| ddd0896840 | |||
| a175edde26 | |||
| a2e08864c4 | |||
| 14563943ed | |||
| 4ebedb6a20 | |||
| d3c827fc55 | |||
| fc9744192d | |||
| 72602ab6ab | |||
| b78f1d1b41 | |||
| 5e91783620 | |||
| e8bbfde5b1 | |||
| cde01cf27b | |||
| 79bda8a568 | |||
| 1fefbeba52 | |||
| 1336b5cfb8 | |||
| 6d0b674c30 | |||
| 935a25490a | |||
| 5f73d6f1b2 | |||
| e42c774cd4 | |||
| 595e4d45bd | |||
| b46eabc2af | |||
| c42667b197 | |||
| 2c6e08247f | |||
| 32ab62f5dd | |||
| 003ac717d8 | |||
| e4089d2dce | |||
| 4076bc8ae9 | |||
| 00750cb5d5 | |||
| 13831d4c39 | |||
| 33552beb80 | |||
| 0da702db49 | |||
| 9d8329c766 | |||
| efc671e647 | |||
| 5f42c6bff9 | |||
| b2456f5a16 | |||
| 2ad7cebd7a | |||
| e6e11dab9f | |||
| 6351d60213 | |||
| 2928e5495c | |||
| 72a6d5d347 | |||
| 0b5a35a208 | |||
| ffd5eddaf9 | |||
| c34b2da03b | |||
| bd943f16a1 | |||
| 27b4c46013 | |||
| 26046d3b15 | |||
| 9ebe782866 | |||
| 327f6a32d5 | |||
| c8da44781d | |||
| a78af4ad86 | |||
| acf2347930 | |||
| 495d980277 | |||
| 07ab2c9e52 | |||
| c48e102658 | |||
| a40d302500 | |||
| 53f2d81f88 | |||
| 14ed5f4f76 | |||
| a53b06834d | |||
| e5d8581a7e | |||
| 325a349092 | |||
| bb0a201e2a | |||
| 8ad44080ae | |||
| c41b740ae6 | |||
| 67e508c979 | |||
| ba48755589 | |||
| d6cf8b37ab | |||
| a7e9d39c1d | |||
| 0e0ae03baa | |||
| 921ddb07f7 | |||
| 5d59d32634 | |||
| 06366a8f8f | |||
| b2b222f23e | |||
| af202584db | |||
| d38dbc79b2 | |||
| 15c6fdf8c1 | |||
| 5e02e88ec0 | |||
| 3337049968 | |||
| 2565157a5a | |||
| 5b0cd0bce7 | |||
| 2901314d05 | |||
| 9ec1cd3c4f | |||
| b120f82f98 | |||
| c213d17436 |
+41
-1
@@ -13,7 +13,6 @@ ehthumbs_vista.db
|
||||
# Python related files.
|
||||
*.pyc
|
||||
*.pyo
|
||||
*.pyi
|
||||
*.egg-info
|
||||
|
||||
# Editor/tool files.
|
||||
@@ -134,3 +133,44 @@ CubismSdkForNative-4-*.zip
|
||||
/cg
|
||||
/.vscode/launch.json
|
||||
/.vscode/tasks.json
|
||||
|
||||
|
||||
# Pyi Files (generated by scripts/generate_pyi.py)
|
||||
renpy/audio/filter.pyi
|
||||
renpy/audio/renpysound.pyi
|
||||
renpy/display/accelerator.pyi
|
||||
renpy/display/matrix.pyi
|
||||
renpy/display/quaternion.pyi
|
||||
renpy/display/render.pyi
|
||||
renpy/encryption.pyi
|
||||
renpy/gl2/gl2draw.pyi
|
||||
renpy/gl2/gl2mesh.pyi
|
||||
renpy/gl2/gl2mesh2.pyi
|
||||
renpy/gl2/gl2mesh3.pyi
|
||||
renpy/gl2/gl2model.pyi
|
||||
renpy/gl2/gl2polygon.pyi
|
||||
renpy/gl2/gl2shader.pyi
|
||||
renpy/gl2/gl2texture.pyi
|
||||
renpy/gl2/live2dmodel.pyi
|
||||
renpy/lexersupport.pyi
|
||||
renpy/pydict.pyi
|
||||
renpy/style.pyi
|
||||
renpy/style.pyi
|
||||
renpy/styledata/style_activate_functions.pyi
|
||||
renpy/styledata/style_functions.pyi
|
||||
renpy/styledata/style_hover_functions.pyi
|
||||
renpy/styledata/style_idle_functions.pyi
|
||||
renpy/styledata/style_insensitive_functions.pyi
|
||||
renpy/styledata/style_selected_activate_functions.pyi
|
||||
renpy/styledata/style_selected_functions.pyi
|
||||
renpy/styledata/style_selected_hover_functions.pyi
|
||||
renpy/styledata/style_selected_idle_functions.pyi
|
||||
renpy/styledata/style_selected_insensitive_functions.pyi
|
||||
renpy/styledata/styleclass.pyi
|
||||
renpy/styledata/stylesets.pyi
|
||||
renpy/text/ftfont.pyi
|
||||
renpy/text/hbfont.pyi
|
||||
renpy/text/textsupport.pyi
|
||||
renpy/text/texwrap.pyi
|
||||
renpy/uguu/gl.pyi
|
||||
renpy/uguu/uguu.pyi
|
||||
|
||||
Vendored
+57
-16
@@ -1,23 +1,22 @@
|
||||
{
|
||||
"files.watcherExclude": {
|
||||
"**/renpy/0old/**" : true,
|
||||
"**/renpy/atom/**" : true,
|
||||
"**/renpy/cubism/**" : true,
|
||||
"**/renpy/dists/**" : true,
|
||||
"**/renpy/dl/**" : true,
|
||||
"**/renpy/doc/**" : true,
|
||||
"**/renpy/doc-web/**" : true,
|
||||
"**/renpy/jedit/**" : true,
|
||||
"**/renpy/renpy*.app/**" : true,
|
||||
"**/renpy/tmp/**" : true,
|
||||
"**/renpy/web/**" : true,
|
||||
"**/renpy/0old/**": true,
|
||||
"**/renpy/atom/**": true,
|
||||
"**/renpy/cubism/**": true,
|
||||
"**/renpy/dists/**": true,
|
||||
"**/renpy/dl/**": true,
|
||||
"**/renpy/doc/**": true,
|
||||
"**/renpy/doc-web/**": true,
|
||||
"**/renpy/jedit/**": true,
|
||||
"**/renpy/renpy*.app/**": true,
|
||||
"**/renpy/tmp/**": true,
|
||||
"**/renpy/web/**": true
|
||||
},
|
||||
"files.exclude": {
|
||||
"0old": true,
|
||||
"**-dists": true,
|
||||
"**/*.pyc": true,
|
||||
"**/*.pyo": true,
|
||||
"renpy/**/*.pyi": true,
|
||||
"**/*.rpmc": true,
|
||||
"**/*.rpyc": true,
|
||||
"**/__pycache__": true,
|
||||
@@ -42,9 +41,45 @@
|
||||
"web3": true,
|
||||
"**/*.rpa": true,
|
||||
"**/*.rpymc": true,
|
||||
"**/cache/": true
|
||||
"**/cache/": true,
|
||||
"renpy/audio/filter.pyi": true,
|
||||
"renpy/audio/renpysound.pyi": true,
|
||||
"renpy/display/accelerator.pyi": true,
|
||||
"renpy/display/matrix.pyi": true,
|
||||
"renpy/display/quaternion.pyi": true,
|
||||
"renpy/display/render.pyi": true,
|
||||
"renpy/encryption.pyi": true,
|
||||
"renpy/gl2/gl2draw.pyi": true,
|
||||
"renpy/gl2/gl2mesh.pyi": true,
|
||||
"renpy/gl2/gl2mesh2.pyi": true,
|
||||
"renpy/gl2/gl2mesh3.pyi": true,
|
||||
"renpy/gl2/gl2model.pyi": true,
|
||||
"renpy/gl2/gl2polygon.pyi": true,
|
||||
"renpy/gl2/gl2shader.pyi": true,
|
||||
"renpy/gl2/gl2texture.pyi": true,
|
||||
"renpy/gl2/live2dmodel.pyi": true,
|
||||
"renpy/lexersupport.pyi": true,
|
||||
"renpy/pydict.pyi": true,
|
||||
"renpy/style.pyi": true,
|
||||
"renpy/styledata/style_activate_functions.pyi": true,
|
||||
"renpy/styledata/style_functions.pyi": true,
|
||||
"renpy/styledata/style_hover_functions.pyi": true,
|
||||
"renpy/styledata/style_idle_functions.pyi": true,
|
||||
"renpy/styledata/style_insensitive_functions.pyi": true,
|
||||
"renpy/styledata/style_selected_activate_functions.pyi": true,
|
||||
"renpy/styledata/style_selected_functions.pyi": true,
|
||||
"renpy/styledata/style_selected_hover_functions.pyi": true,
|
||||
"renpy/styledata/style_selected_idle_functions.pyi": true,
|
||||
"renpy/styledata/style_selected_insensitive_functions.pyi": true,
|
||||
"renpy/styledata/styleclass.pyi": true,
|
||||
"renpy/styledata/stylesets.pyi": true,
|
||||
"renpy/text/ftfont.pyi": true,
|
||||
"renpy/text/hbfont.pyi": true,
|
||||
"renpy/text/textsupport.pyi": true,
|
||||
"renpy/text/texwrap.pyi": true,
|
||||
"renpy/uguu/gl.pyi": true,
|
||||
"renpy/uguu/uguu.pyi": true
|
||||
},
|
||||
|
||||
"python.languageServer": "Pylance",
|
||||
"python.analysis.typeCheckingMode": "basic",
|
||||
"python.analysis.diagnosticMode": "workspace",
|
||||
@@ -186,6 +221,12 @@
|
||||
"foreground": "#ffffff"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "renpy.meta.color.#f00",
|
||||
"settings": {
|
||||
"foreground": "#f00"
|
||||
}
|
||||
},
|
||||
{
|
||||
"scope": "text.notes.info",
|
||||
"settings": {
|
||||
@@ -239,5 +280,5 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
+43
-18
@@ -4,8 +4,29 @@ The Ren'Py Visual Novel Engine
|
||||
|
||||
https://www.renpy.org
|
||||
|
||||
Ren'Py development takes place on the ``master`` branch, and occasionally
|
||||
on feature branches.
|
||||
|
||||
Branches
|
||||
========
|
||||
|
||||
The following branches are the most interesting.
|
||||
|
||||
``fix``
|
||||
The fix branch is used for fixes to the current version of Ren'Py that do
|
||||
not require dangerous changes. The fix branch is also the source of the
|
||||
documentation on https://www.renpy.org/. This branch is automatically
|
||||
merged into master on a regular basis.
|
||||
|
||||
Pull requests that contain fixes or documentation improvements should be
|
||||
made to the fix branch. When a release is made, the master branch is
|
||||
copied to the fix branch.
|
||||
|
||||
``master``
|
||||
The master branch is where the main focus of development is. This branch
|
||||
will eventually become the next release of Ren'Py.
|
||||
|
||||
Pull requests that contain new features, that require incompatible changes,
|
||||
or major changes to Ren'Py's internals should be targeted at the master
|
||||
branch.
|
||||
|
||||
|
||||
Getting Started
|
||||
@@ -37,7 +58,7 @@ renpy.app, or renpy.exe, as appropriate for your platform.
|
||||
|
||||
If the current nightly build doesn't work, please wait 24 hours for a new
|
||||
build to occur. If that build still doesn't work, contact Tom (`pytom at bishoujo.us`,
|
||||
or @renpytom on twitter) to find out what's wrong.
|
||||
or @renpytom on Twitter/X) to find out what's wrong.
|
||||
|
||||
The ``doc`` symlink will dangle until documentation is built, as described
|
||||
below.
|
||||
@@ -49,9 +70,9 @@ Building the modules requires you have the many dependencies installed on
|
||||
your system. On Ubuntu and Debian, these dependencies can be installed with
|
||||
the command::
|
||||
|
||||
sudo apt install virtualenvwrapper python3-dev libavcodec-dev libavformat-dev \
|
||||
sudo apt install virtualenvwrapper python3-dev libassimp-dev libavcodec-dev libavformat-dev \
|
||||
libswresample-dev libswscale-dev libharfbuzz-dev libfreetype6-dev libfribidi-dev libsdl2-dev \
|
||||
libsdl2-image-dev libsdl2-gfx-dev libsdl2-mixer-dev libsdl2-ttf-dev libjpeg-dev
|
||||
libsdl2-image-dev libsdl2-gfx-dev libsdl2-mixer-dev libsdl2-ttf-dev libjpeg-dev pkg-config
|
||||
|
||||
Ren'Py requires SDL_image 2.6 or greater. If your distribution doesn't include
|
||||
that version, you'll need to download it from:
|
||||
@@ -71,29 +92,18 @@ To return to this virtualenv later, run::
|
||||
|
||||
After activating the virtualenv, install additional dependencies::
|
||||
|
||||
pip install -U cython future six typing pefile requests ecdsa
|
||||
pip install -U setuptools cython future six typing pefile requests ecdsa
|
||||
|
||||
Then, install pygame_sdl2 by running the following commands::
|
||||
|
||||
git clone https://www.github.com/renpy/pygame_sdl2
|
||||
pushd pygame_sdl2
|
||||
python setup.py install
|
||||
python setup.py install_headers
|
||||
popd
|
||||
|
||||
Next, set RENPY_DEPS_INSTALL To a \:-separated (\;-separated on Windows)
|
||||
list of paths containing the dependencies, and RENPY_CYTHON to the name
|
||||
of the cython command::
|
||||
Finally, use setup.py to compile extension modules that support Ren'Py::
|
||||
|
||||
export RENPY_DEPS_INSTALL="/usr:/usr/lib/$(gcc -dumpmachine)/"
|
||||
export RENPY_CYTHON=cython
|
||||
|
||||
Finally, use setup.py in the Ren'Py ``module`` directory to compile and
|
||||
install the modules that support Ren'Py::
|
||||
|
||||
pushd module
|
||||
python setup.py install
|
||||
popd
|
||||
|
||||
Ren'Py will be installed into the activated virtualenv. It can then be run
|
||||
using the command::
|
||||
@@ -101,6 +111,21 @@ using the command::
|
||||
python renpy.py
|
||||
|
||||
|
||||
Other Platforms
|
||||
---------------
|
||||
|
||||
Where supported, Ren'Py will attempt to find include directories and library paths
|
||||
using pkg-config. If pkg-config is not present, include and library paths can be
|
||||
specified using CFLAGS and LDFLAGS.
|
||||
|
||||
If RENPY_CFLAGS is present in the environment and CFLAGS is not, setup.py
|
||||
will set CFLAGS to RENPY_CFLAGS. The same is true for RENPY_LDFLAGS,
|
||||
RENPY_CC, RENPY_CXX, and RENPY_LD.
|
||||
|
||||
Setup.py does not support cross-compiling. See https://github.com/renpy/renpy-build
|
||||
for software that cross-compiles Ren'Py for many platforms.
|
||||
|
||||
|
||||
Documentation
|
||||
=============
|
||||
|
||||
|
||||
+1
-1
@@ -252,7 +252,7 @@ def main():
|
||||
"-q",
|
||||
"egg_info",
|
||||
"--tag-build",
|
||||
"+renpy" + args.version,
|
||||
"+renpy" + args.version.replace("+", "-"),
|
||||
"sdist",
|
||||
"-d",
|
||||
os.path.abspath(destination)
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
*.c
|
||||
*.so
|
||||
*.egg-info
|
||||
*.html
|
||||
build
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
../../renpy/cslots.pyx
|
||||
@@ -0,0 +1,8 @@
|
||||
from setuptools import setup, Extension
|
||||
|
||||
setup(
|
||||
name="cslots",
|
||||
version="1.0.0",
|
||||
ext_modules=[
|
||||
Extension("cslots", [ "cslots.pyx" ]),
|
||||
])
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
cython -a cslots.pyx
|
||||
pip install -e .
|
||||
python3 -m pytest
|
||||
@@ -0,0 +1,262 @@
|
||||
import sys
|
||||
import pickle
|
||||
|
||||
from cslots import Object, Slot, IntegerSlot
|
||||
|
||||
class C1(Object):
|
||||
str1 : str|None = None
|
||||
int1 : int = 0
|
||||
|
||||
def __init__(self, str1=None, int1=1):
|
||||
self.str1 = str1
|
||||
self.int1 = int1
|
||||
|
||||
class C2(C1):
|
||||
str2 : str|None = None
|
||||
int2 : int = 0
|
||||
|
||||
def __init__(self, str1=None, int1=0, str2=None, int2=0):
|
||||
self.str1 = str1
|
||||
self.int1 = int1
|
||||
self.str2 = str2
|
||||
self.int2 = int2
|
||||
|
||||
|
||||
def test_slot_count():
|
||||
assert C1._cslot_count == 2
|
||||
assert C2._cslot_count == 4
|
||||
|
||||
def test_slots():
|
||||
|
||||
o = C2()
|
||||
|
||||
assert o.str1 is None
|
||||
assert o.int1 == 0
|
||||
assert o.str2 is None
|
||||
assert o.int2 == 0
|
||||
|
||||
o.str1 = "hello"
|
||||
o.int1 = 42
|
||||
o.str2 = "world"
|
||||
o.int2 = 43
|
||||
|
||||
assert o.str1 == "hello"
|
||||
assert o.int1 == 42
|
||||
assert o.str2 == "world"
|
||||
assert o.int2 == 43
|
||||
|
||||
o.str1 = None
|
||||
o.int1 = 0
|
||||
o.str2 = None
|
||||
o.int2 = 0
|
||||
|
||||
assert o.str1 is None
|
||||
assert o.int1 == 0
|
||||
assert o.str2 is None
|
||||
assert o.int2 == 0
|
||||
|
||||
|
||||
def test_compress():
|
||||
|
||||
def expect_size(o, values, indexes):
|
||||
assert sys.getsizeof(o) == 32 + 8 * values + indexes
|
||||
|
||||
o = C2()
|
||||
|
||||
o.str1 = "hello"
|
||||
o.int1 = 42
|
||||
o.str2 = "world"
|
||||
o.int2 = 43
|
||||
expect_size(o, 4, 4)
|
||||
|
||||
o._compress()
|
||||
|
||||
assert o.str1 == "hello"
|
||||
assert o.int1 == 42
|
||||
assert o.str2 == "world"
|
||||
assert o.int2 == 43
|
||||
expect_size(o, 4, 4)
|
||||
|
||||
o = C2()
|
||||
|
||||
o.str2 = "world"
|
||||
o.int2 = 43
|
||||
|
||||
o._compress()
|
||||
|
||||
assert o.str1 is None
|
||||
assert o.int1 == 0
|
||||
assert o.str2 == "world"
|
||||
assert o.int2 == 43
|
||||
expect_size(o, 2, 4)
|
||||
|
||||
o = C2()
|
||||
o.str1 = "hello"
|
||||
|
||||
o._compress()
|
||||
|
||||
assert o.str1 == "hello"
|
||||
assert o.int1 == 0
|
||||
assert o.str2 is None
|
||||
assert o.int2 == 0
|
||||
expect_size(o, 1, 1)
|
||||
|
||||
|
||||
def test_decompress():
|
||||
|
||||
def expect_size(o, values, indexes):
|
||||
assert sys.getsizeof(o) == 32 + 8 * values + indexes
|
||||
|
||||
o = C2()
|
||||
|
||||
o.str1 = "hello"
|
||||
o.int1 = 42
|
||||
o.str2 = "world"
|
||||
o.int2 = 43
|
||||
expect_size(o, 4, 4)
|
||||
|
||||
o._compress()
|
||||
o._decompress()
|
||||
|
||||
assert o.str1 == "hello"
|
||||
assert o.int1 == 42
|
||||
assert o.str2 == "world"
|
||||
assert o.int2 == 43
|
||||
expect_size(o, 4, 4)
|
||||
|
||||
o = C2()
|
||||
|
||||
o.str2 = "world"
|
||||
o.int2 = 43
|
||||
|
||||
o._compress()
|
||||
o._decompress()
|
||||
|
||||
assert o.str1 is None
|
||||
assert o.int1 == 0
|
||||
assert o.str2 == "world"
|
||||
assert o.int2 == 43
|
||||
expect_size(o, 4, 4)
|
||||
|
||||
o = C2()
|
||||
o.str1 = "hello"
|
||||
|
||||
o._compress()
|
||||
o._decompress()
|
||||
|
||||
assert o.str1 == "hello"
|
||||
assert o.int1 == 0
|
||||
assert o.str2 is None
|
||||
assert o.int2 == 0
|
||||
expect_size(o, 4, 4)
|
||||
|
||||
|
||||
def test_kill():
|
||||
|
||||
o = C2()
|
||||
|
||||
o.str1 = "hello"
|
||||
o.int1 = 42
|
||||
o.str2 = "world"
|
||||
o.int2 = 43
|
||||
|
||||
o._kill()
|
||||
|
||||
assert o.str1 is None
|
||||
assert o.int1 == 0
|
||||
assert o.str2 is None
|
||||
assert o.int2 == 0
|
||||
|
||||
o = C2()
|
||||
|
||||
o.str2 = "world"
|
||||
o.int2 = 43
|
||||
|
||||
o._compress()
|
||||
o._kill()
|
||||
|
||||
assert o.str1 is None
|
||||
assert o.int1 == 0
|
||||
assert o.str2 is None
|
||||
assert o.int2 == 0
|
||||
|
||||
|
||||
def test_pickle():
|
||||
o = C2()
|
||||
|
||||
o.str1 = "hello"
|
||||
o.int1 = 42
|
||||
o.str2 = "world"
|
||||
o.int2 = 43
|
||||
|
||||
o = pickle.loads(pickle.dumps(o))
|
||||
|
||||
assert o.str1 == "hello"
|
||||
assert o.int1 == 42
|
||||
assert o.str2 == "world"
|
||||
assert o.int2 == 43
|
||||
|
||||
o = C2()
|
||||
|
||||
o.str2 = "world"
|
||||
o.int2 = 43
|
||||
|
||||
o = pickle.loads(pickle.dumps(o))
|
||||
|
||||
assert o.str1 is None
|
||||
assert o.int1 == 0
|
||||
assert o.str2 == "world"
|
||||
assert o.int2 == 43
|
||||
|
||||
o = C2()
|
||||
o.str1 = "hello"
|
||||
|
||||
o = pickle.loads(pickle.dumps(o))
|
||||
|
||||
assert o.str1 == "hello"
|
||||
assert o.int1 == 0
|
||||
assert o.str2 is None
|
||||
assert o.int2 == 0
|
||||
|
||||
|
||||
|
||||
def test_pickle_compressed():
|
||||
o = C2()
|
||||
|
||||
o.str1 = "hello"
|
||||
o.int1 = 42
|
||||
o.str2 = "world"
|
||||
o.int2 = 43
|
||||
|
||||
o._compress()
|
||||
|
||||
o = pickle.loads(pickle.dumps(o))
|
||||
|
||||
assert o.str1 == "hello"
|
||||
assert o.int1 == 42
|
||||
assert o.str2 == "world"
|
||||
assert o.int2 == 43
|
||||
|
||||
o = C2()
|
||||
|
||||
o.str2 = "world"
|
||||
o.int2 = 43
|
||||
|
||||
o._compress()
|
||||
o = pickle.loads(pickle.dumps(o))
|
||||
|
||||
assert o.str1 is None
|
||||
assert o.int1 == 0
|
||||
assert o.str2 == "world"
|
||||
assert o.int2 == 43
|
||||
|
||||
o = C2()
|
||||
o.str1 = "hello"
|
||||
|
||||
o._compress()
|
||||
o = pickle.loads(pickle.dumps(o))
|
||||
|
||||
assert o.str1 == "hello"
|
||||
assert o.int1 == 0
|
||||
assert o.str2 is None
|
||||
assert o.int2 == 0
|
||||
+1
-1
@@ -328,7 +328,7 @@ define gui.vbar_borders = Borders(gui.scale(4), gui.scale(4), gui.scale(4), gui.
|
||||
define gui.vscrollbar_borders = Borders(gui.scale(4), gui.scale(4), gui.scale(4), gui.scale(4))
|
||||
define gui.vslider_borders = Borders(gui.scale(4), gui.scale(4), gui.scale(4), gui.scale(4))
|
||||
|
||||
## What to do with unscrollable scrollbars in the gui. "hide" hides them, while
|
||||
## What to do with unscrollable scrollbars in the game menu. "hide" hides them, while
|
||||
## None shows them.
|
||||
define gui.unscrollable = "hide"
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
## When this file exists, Ren'Py will load files in game/libs before other files in game.
|
||||
@@ -96,7 +96,6 @@ style frame:
|
||||
## https://www.renpy.org/doc/html/screen_special.html#say
|
||||
|
||||
screen say(who, what):
|
||||
style_prefix "say"
|
||||
|
||||
window:
|
||||
id "window"
|
||||
@@ -245,9 +244,7 @@ screen quick_menu():
|
||||
|
||||
hbox:
|
||||
style_prefix "quick"
|
||||
|
||||
xalign 0.5
|
||||
yalign 1.0
|
||||
style "quick_menu"
|
||||
|
||||
textbutton _("Back") action Rollback()
|
||||
textbutton _("History") action ShowMenu('history')
|
||||
@@ -266,9 +263,14 @@ init python:
|
||||
|
||||
default quick_menu = True
|
||||
|
||||
style quick_menu is hbox
|
||||
style quick_button is default
|
||||
style quick_button_text is button_text
|
||||
|
||||
style quick_menu:
|
||||
xalign 0.5
|
||||
yalign 1.0
|
||||
|
||||
style quick_button:
|
||||
properties gui.button_properties("quick_button")
|
||||
|
||||
@@ -701,6 +703,7 @@ style slot_name_text is slot_button_text
|
||||
style page_label:
|
||||
xpadding gui.scale(50)
|
||||
ypadding gui.scale(3)
|
||||
xalign 0.5
|
||||
|
||||
style page_label_text:
|
||||
textalign 0.5
|
||||
@@ -1520,11 +1523,9 @@ screen quick_menu():
|
||||
if quick_menu:
|
||||
|
||||
hbox:
|
||||
style "quick_menu"
|
||||
style_prefix "quick"
|
||||
|
||||
xalign 0.5
|
||||
yalign 1.0
|
||||
|
||||
textbutton _("Back") action Rollback()
|
||||
textbutton _("Skip") action Skip() alternate Skip(fast=True, confirm=True)
|
||||
textbutton _("Auto") action Preference("auto-forward", "toggle")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -76,24 +76,14 @@ class BinFile(object):
|
||||
self.addr = addr
|
||||
|
||||
def tostring(self):
|
||||
if PY2:
|
||||
return self.a.tostring() # type: ignore
|
||||
else:
|
||||
return self.a.tobytes()
|
||||
return self.a.tobytes()
|
||||
|
||||
def substring(self, start, len): # @ReservedAssignment
|
||||
if PY2:
|
||||
return self.a[start:start + len].tostring() # type: ignore
|
||||
else:
|
||||
return self.a[start:start + len].tobytes()
|
||||
return self.a[start:start + len].tobytes()
|
||||
|
||||
def __init__(self, data):
|
||||
self.a = array.array('B')
|
||||
|
||||
if PY2:
|
||||
self.a.fromstring(data) # type: ignore
|
||||
else:
|
||||
self.a.frombytes(data)
|
||||
self.a.frombytes(data)
|
||||
|
||||
##############################################################################
|
||||
# These functions parse data out of the file. In these functions, offset is
|
||||
@@ -396,7 +386,7 @@ def change_icons(oldexe, icofn):
|
||||
|
||||
|
||||
#Image size is the memory size of all sections + all headers, padded to memory alignment.
|
||||
#There's alread a header size, and this isn't changing headers, so just add.
|
||||
#There's already a header size, and this isn't changing headers, so just add.
|
||||
#imageSize = pe.OPTIONAL_HEADER.ImageBase + pe.OPTIONAL_HEADER.SizeOfHeaders
|
||||
imageSize = pe.OPTIONAL_HEADER.SizeOfHeaders
|
||||
for s in pe.sections:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -24,7 +24,6 @@ init python:
|
||||
import codecs
|
||||
import re
|
||||
import sys
|
||||
import future.utils
|
||||
|
||||
def theme_names():
|
||||
"""
|
||||
@@ -98,7 +97,7 @@ init python:
|
||||
return
|
||||
|
||||
renpy.style.restore(style_backup)
|
||||
future.utils.exec_(theme_data.THEME[theme][scheme], globals(), globals())
|
||||
exec(theme_data.THEME[theme][scheme], globals(), globals())
|
||||
|
||||
# Rebuild the style cache.
|
||||
renpy.style.rebuild(False)
|
||||
@@ -168,8 +167,8 @@ init python:
|
||||
|
||||
def list_logical_lines(filename):
|
||||
"""
|
||||
This reads in filename, and turns it into a list of logical
|
||||
lines.
|
||||
This reads in filename, and turns it into a list of logical
|
||||
lines.
|
||||
"""
|
||||
|
||||
f = codecs.open(filename, "rb", "utf-8")
|
||||
@@ -188,7 +187,7 @@ init python:
|
||||
# The line that we're building up.
|
||||
line = ""
|
||||
|
||||
# The number of open parenthesis there are right now.
|
||||
# The number of open parenthesis there are right now.
|
||||
parendepth = 0
|
||||
|
||||
# Looping over the characters in a single logical line.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -432,10 +432,7 @@ fix_dlc("renios", "renios")
|
||||
for f in sorted(self, key=lambda a : a.name):
|
||||
f.hash(sha, distributor)
|
||||
|
||||
if PY2:
|
||||
return sha.hexdigest().decode("utf-8")
|
||||
else:
|
||||
return sha.hexdigest()
|
||||
return sha.hexdigest()
|
||||
|
||||
def split_by_prefix(self, prefix):
|
||||
"""
|
||||
@@ -661,7 +658,6 @@ fix_dlc("renios", "renios")
|
||||
# Build the mac app and windows exes.
|
||||
self.add_mac_files()
|
||||
self.add_windows_files()
|
||||
self.add_main_py()
|
||||
|
||||
# Add the main.py.
|
||||
self.add_main_py()
|
||||
@@ -898,7 +894,7 @@ fix_dlc("renios", "renios")
|
||||
if not os.path.exists(path):
|
||||
raise Exception("{} does not exist.".format(path))
|
||||
|
||||
if isinstance(file_list, basestring):
|
||||
if isinstance(file_list, str):
|
||||
file_list = file_list.split()
|
||||
|
||||
f = File(name, path, False, executable)
|
||||
@@ -911,7 +907,7 @@ fix_dlc("renios", "renios")
|
||||
Adds an empty directory to the file lists.
|
||||
"""
|
||||
|
||||
if isinstance(file_list, basestring):
|
||||
if isinstance(file_list, str):
|
||||
file_list = file_list.split()
|
||||
|
||||
f = File(name, None, True, False)
|
||||
@@ -947,6 +943,15 @@ fix_dlc("renios", "renios")
|
||||
arcfn = arcname + ".rpa"
|
||||
arcpath = self.temp_filename(arcfn)
|
||||
|
||||
# Create new directories leading to the new archive file relative to the tmp root
|
||||
# if the archive's name indicates it should be in a subdirectory
|
||||
arc_relpath = os.path.relpath(arcpath, self.project.tmp)
|
||||
arc_subdir = os.path.dirname(arc_relpath)
|
||||
|
||||
if arc_subdir:
|
||||
abs_subdir = os.path.join(self.project.tmp, arc_subdir)
|
||||
os.makedirs(abs_subdir, exist_ok=True)
|
||||
|
||||
af = archiver.Archive(arcpath)
|
||||
|
||||
fll = len(self.file_lists[arcname])
|
||||
@@ -985,7 +990,7 @@ fix_dlc("renios", "renios")
|
||||
script_version_txt = self.temp_filename("script_version.txt")
|
||||
|
||||
with open(script_version_txt, "w") as f:
|
||||
f.write(unicode(repr(renpy.renpy.version_tuple[:-1])))
|
||||
f.write(repr(renpy.renpy.version_tuple[:-1]))
|
||||
|
||||
self.add_file("all", "game/script_version.txt", script_version_txt)
|
||||
|
||||
@@ -1075,11 +1080,8 @@ fix_dlc("renios", "renios")
|
||||
|
||||
rv = self.temp_filename("Info.plist")
|
||||
|
||||
if PY2:
|
||||
plistlib.writePlist(plist, rv)
|
||||
else:
|
||||
with open(rv, "wb") as f:
|
||||
plistlib.dump(plist, f)
|
||||
with open(rv, "wb") as f:
|
||||
plistlib.dump(plist, f)
|
||||
|
||||
return rv
|
||||
|
||||
@@ -1100,12 +1102,14 @@ fix_dlc("renios", "renios")
|
||||
|
||||
prefix = py("lib/py{major}-")
|
||||
|
||||
if os.path.exists(linux_i686):
|
||||
i686fn = os.path.join(config.renpy_base, prefix + "linux-i686/renpy")
|
||||
|
||||
if os.path.exists(i686fn):
|
||||
|
||||
self.add_file(
|
||||
linux_i686,
|
||||
prefix + "linux-i686/" + self.executable_name,
|
||||
os.path.join(config.renpy_base, prefix + "linux-i686/renpy"),
|
||||
i686fn,
|
||||
True)
|
||||
|
||||
self.add_file(
|
||||
@@ -1114,16 +1118,6 @@ fix_dlc("renios", "renios")
|
||||
os.path.join(config.renpy_base, prefix + "linux-x86_64/renpy"),
|
||||
True)
|
||||
|
||||
armfn = os.path.join(config.renpy_base, prefix + "linux-armv7l/renpy")
|
||||
|
||||
if os.path.exists(armfn):
|
||||
|
||||
self.add_file(
|
||||
raspi,
|
||||
prefix + "linux-armv7l/" + self.executable_name,
|
||||
armfn,
|
||||
True)
|
||||
|
||||
aarch64fn = os.path.join(config.renpy_base, prefix + "linux-aarch64/renpy")
|
||||
|
||||
if os.path.exists(aarch64fn):
|
||||
@@ -1226,19 +1220,8 @@ fix_dlc("renios", "renios")
|
||||
if os.path.exists(tmp):
|
||||
self.add_file(fl, dst, tmp)
|
||||
|
||||
if PY2:
|
||||
|
||||
if self.build["include_i686"]:
|
||||
write_exe("lib/py2-windows-i686/renpy.exe", self.exe32, self.exe32, windows_i686)
|
||||
write_exe("lib/py2-windows-i686/pythonw.exe", "lib/py2-windows-i686/pythonw.exe", "pythonw-32.exe", windows_i686)
|
||||
|
||||
write_exe("lib/py2-windows-x86_64/renpy.exe", self.exe, self.exe, windows)
|
||||
write_exe("lib/py2-windows-x86_64/pythonw.exe", "lib/py2-windows-x86_64/pythonw.exe", "pythonw-64.exe", windows)
|
||||
|
||||
else:
|
||||
|
||||
write_exe("lib/py3-windows-x86_64/renpy.exe", self.exe, self.exe, windows)
|
||||
write_exe("lib/py3-windows-x86_64/pythonw.exe", "lib/py3-windows-x86_64/pythonw.exe", "pythonw-64.exe", windows)
|
||||
write_exe("lib/py3-windows-x86_64/renpy.exe", self.exe, self.exe, windows)
|
||||
write_exe("lib/py3-windows-x86_64/pythonw.exe", "lib/py3-windows-x86_64/pythonw.exe", "pythonw-64.exe", windows)
|
||||
|
||||
|
||||
def add_main_py(self):
|
||||
@@ -1531,11 +1514,12 @@ fix_dlc("renios", "renios")
|
||||
|
||||
update = { variant : { "version" : self.update_versions[variant], "base_name" : self.base_name, "files" : update_files, "directories" : update_directories, "xbit" : update_xbit } }
|
||||
|
||||
update_fn = os.path.join(self.destination, filename + ".update.json")
|
||||
update_fn = self.temp_filename(filename + ".update.json")
|
||||
|
||||
|
||||
if self.include_update and not format.startswith("app-"):
|
||||
|
||||
with open(update_fn, "wb" if PY2 else "w") as f:
|
||||
with open(update_fn, "w") as f:
|
||||
json.dump(update, f, indent=2)
|
||||
|
||||
if (not dlc) or (format == "update"):
|
||||
@@ -1565,14 +1549,11 @@ fix_dlc("renios", "renios")
|
||||
in this thread or a background thread.
|
||||
"""
|
||||
|
||||
if self.include_update and not self.build_update and not dlc:
|
||||
if os.path.exists(update_fn):
|
||||
os.unlink(update_fn)
|
||||
final_update_fn = os.path.join(self.destination, filename + ".update.json")
|
||||
|
||||
if not directory:
|
||||
file_hash = hash_file(path)
|
||||
else:
|
||||
file_hash = ""
|
||||
if self.build_update or dlc:
|
||||
if os.path.exists(update_fn):
|
||||
shutil.copy(update_fn, final_update_fn)
|
||||
|
||||
if format == "tar.bz2" or format == "bare-tar.bz2":
|
||||
pkg = TarPackage(path, "w:bz2")
|
||||
@@ -1806,8 +1787,9 @@ fix_dlc("renios", "renios")
|
||||
reporter.info(_("Recompiling all rpy files into rpyc files..."))
|
||||
project.launch([ "compile", "--keep-orphan-rpyc" ], wait=True)
|
||||
|
||||
files = [fn + "c" for fn in project.script_files()
|
||||
if fn.startswith("game/") and project.exists(fn + "c")]
|
||||
files = [
|
||||
fn + "c" for fn in project.script_files()
|
||||
if fn.startswith("game/") and project.exists(fn + "c")]
|
||||
len_files = len(files)
|
||||
|
||||
if not files:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -52,7 +52,7 @@ init python:
|
||||
# This is set to true by cancel() to indicate the download should be cancelled.
|
||||
self.cancelled = False
|
||||
|
||||
# Set on succes or failure.
|
||||
# Set on success or failure.
|
||||
self.success = False
|
||||
self.failure = None
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -225,7 +225,7 @@ init 1 python in editor:
|
||||
_("JEdit is deprecated, using another editor is recommended."),
|
||||
"jedit",
|
||||
_("1.8 MB download required."),
|
||||
_("This may have occured because Java is not installed on this system."),
|
||||
_("This may have occurred because Java is not installed on this system."),
|
||||
deprecated=True,
|
||||
)
|
||||
|
||||
@@ -411,7 +411,7 @@ init 1 python in editor:
|
||||
|
||||
except Exception as e:
|
||||
exception = traceback.format_exception_only(type(e), e)[-1][:-1]
|
||||
renpy.invoke_in_new_context(interface.error, _("An exception occured while launching the text editor:\n[exception!q]"), error_message, exception=exception)
|
||||
renpy.invoke_in_new_context(interface.error, _("An exception occurred while launching the text editor:\n[exception!q]"), error_message, exception=exception)
|
||||
|
||||
class EditAbsolute(Action):
|
||||
def __init__(self, filename, line=None, check=False):
|
||||
@@ -457,7 +457,7 @@ init 1 python in editor:
|
||||
|
||||
except Exception as e:
|
||||
exception = traceback.format_exception_only(type(e), e)[-1][:-1]
|
||||
renpy.invoke_in_new_context(interface.error, _("An exception occured while launching the text editor:\n[exception!q]"), error_message, exception=exception)
|
||||
renpy.invoke_in_new_context(interface.error, _("An exception occurred while launching the text editor:\n[exception!q]"), error_message, exception=exception)
|
||||
|
||||
|
||||
class EditAll(Action):
|
||||
@@ -495,7 +495,7 @@ init 1 python in editor:
|
||||
|
||||
except Exception as e:
|
||||
exception = traceback.format_exception_only(type(e), e)[-1][:-1]
|
||||
renpy.invoke_in_new_context(interface.error, _("An exception occured while launching the text editor:\n[exception!q]"), error_message, exception=exception)
|
||||
renpy.invoke_in_new_context(interface.error, _("An exception occurred while launching the text editor:\n[exception!q]"), error_message, exception=exception)
|
||||
|
||||
|
||||
class EditProject(Action):
|
||||
@@ -518,7 +518,7 @@ init 1 python in editor:
|
||||
|
||||
except Exception as e:
|
||||
exception = traceback.format_exception_only(type(e), e)[-1][:-1]
|
||||
renpy.invoke_in_new_context(interface.error, _("An exception occured while launching the text editor:\n[exception!q]"), error_message, exception=exception)
|
||||
renpy.invoke_in_new_context(interface.error, _("An exception occurred while launching the text editor:\n[exception!q]"), error_message, exception=exception)
|
||||
|
||||
|
||||
def CanEditProject():
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -157,13 +157,11 @@ screen front_page_project:
|
||||
label _("Open Directory") style "l_label_small"
|
||||
|
||||
frame style "l_indent":
|
||||
has vbox
|
||||
has grid 2 max(5, (len(p.get_renpy_launcher()["open_directory"]) + 1) // 2):
|
||||
transpose True xfill True
|
||||
|
||||
textbutton "game" action OpenDirectory(os.path.join(p.path, "game"), absolute=True)
|
||||
textbutton "base" action OpenDirectory(os.path.join(p.path, "."), absolute=True)
|
||||
textbutton "images" action OpenDirectory(os.path.join(p.path, "game/images"), absolute=True)
|
||||
textbutton "audio" action OpenDirectory(os.path.join(p.path, "game/audio"), absolute=True)
|
||||
textbutton "gui" action OpenDirectory(os.path.join(p.path, "game/gui"), absolute=True)
|
||||
for button_name, path in p.get_renpy_launcher()["open_directory"].items():
|
||||
textbutton button_name action OpenDirectory(os.path.join(p.path, path), absolute=True)
|
||||
|
||||
vbox:
|
||||
if persistent.show_edit_funcs:
|
||||
@@ -173,10 +171,8 @@ screen front_page_project:
|
||||
frame style "l_indent":
|
||||
has vbox
|
||||
|
||||
textbutton "script.rpy" action editor.Edit("game/script.rpy", check=True)
|
||||
textbutton "options.rpy" action editor.Edit("game/options.rpy", check=True)
|
||||
textbutton "gui.rpy" action editor.Edit("game/gui.rpy", check=True)
|
||||
textbutton "screens.rpy" action editor.Edit("game/screens.rpy", check=True)
|
||||
for button_name, path in p.get_renpy_launcher()["edit_file"].items():
|
||||
textbutton button_name action editor.Edit(path, check=True)
|
||||
|
||||
if editor.CanEditProject():
|
||||
textbutton _("Open project") action editor.EditProject()
|
||||
@@ -216,7 +212,7 @@ screen front_page_project:
|
||||
|
||||
textbutton _("Android") action Jump("android")
|
||||
textbutton _("iOS") action Jump("ios")
|
||||
textbutton _("Web") + " " + _("(Beta)") action Jump("web")
|
||||
textbutton _("Web") action Jump("web")
|
||||
textbutton _("Generate Translations") action Jump("translate")
|
||||
textbutton _("Extract Dialogue") action Jump("extract_dialogue")
|
||||
|
||||
|
||||
+10
-1
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -26,6 +26,15 @@ define gui.asian = False
|
||||
# and provides the full path to the template project.
|
||||
default gui_template_path = None
|
||||
|
||||
define LIBS_TXT = _("""\
|
||||
The game/libs/ directory is meant for third-party libraries that ask to be
|
||||
put in game/libs.
|
||||
|
||||
When this file (game/libs/libs.txt) is present, Ren'Py will load all files
|
||||
in libs before any other file in game/, and will not consider directory names
|
||||
when loading these files.
|
||||
""")
|
||||
|
||||
init -1 python:
|
||||
|
||||
import gui7
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -28,15 +28,19 @@ import os
|
||||
import shutil
|
||||
|
||||
|
||||
|
||||
def finish(p):
|
||||
|
||||
for dn in [ "images", "audio" ]:
|
||||
for dn in [ "images", "audio", "libs" ]:
|
||||
|
||||
fulldn = os.path.join(p.prefix, dn)
|
||||
|
||||
if not os.path.exists(fulldn):
|
||||
os.mkdir(fulldn)
|
||||
|
||||
with open(os.path.join(p.prefix, "libs", "libs.txt"), "w") as f:
|
||||
f.write(renpy.translation.translate_string(renpy.store.LIBS_TXT, language=p.language))
|
||||
|
||||
def generate_gui(p):
|
||||
|
||||
ImageGenerator(p).generate_all()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -172,7 +172,7 @@ class CodeGenerator(object):
|
||||
|
||||
for l in self.lines:
|
||||
|
||||
m = re.match('^(\s*)define (.*?) =', l)
|
||||
m = re.match(r'^(\s*)define (.*?) =', l)
|
||||
|
||||
if m:
|
||||
indent = m.group(1)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -81,10 +81,7 @@ init python:
|
||||
|
||||
label install_live2d:
|
||||
python hide:
|
||||
if PY2:
|
||||
_prefix = r"lib/py2-"
|
||||
else:
|
||||
_prefix = r"lib/py3-"
|
||||
_prefix = r"lib/py3-"
|
||||
|
||||
patterns = [
|
||||
(r".*/Core/dll/linux/x86_64/(libLive2DCubismCore.so)", _prefix + r"linux-x86_64/\1"),
|
||||
@@ -97,11 +94,6 @@ label install_live2d:
|
||||
(r".*/Core/dll/android/(x86_64/libLive2DCubismCore.so)", r"rapt/prototype/renpyandroid/src/main/jniLibs/\1"),
|
||||
]
|
||||
|
||||
if PY2:
|
||||
patterns.extend([
|
||||
(r".*/Core/dll/windows/x86/(Live2DCubismCore.dll)", _prefix + r"windows-i686/\1"),
|
||||
])
|
||||
|
||||
install_from_zip("Live2D Cubism SDK for Native", "CubismSdkForNative-[45]-*.zip", patterns)
|
||||
|
||||
jump front_page
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -169,7 +169,7 @@ def _check_hash(filename, hashj):
|
||||
download_file = ""
|
||||
download_url = ""
|
||||
|
||||
def download(url, filename, hash=None):
|
||||
def download(url, filename, hash=None, headers=None, requests_kwargs={}):
|
||||
"""
|
||||
Downloads `url` to `filename`, a tempfile.
|
||||
"""
|
||||
@@ -188,9 +188,13 @@ def download(url, filename, hash=None):
|
||||
|
||||
progress_time = time.time()
|
||||
|
||||
all_headers = {"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36 renpy/8'}
|
||||
if headers:
|
||||
all_headers.update(headers)
|
||||
|
||||
try:
|
||||
|
||||
response = requests.get(url, stream=True, proxies=renpy.exports.proxies, timeout=15)
|
||||
response = requests.get(url, stream=True, proxies=renpy.exports.proxies, timeout=15, headers=all_headers, **requests_kwargs)
|
||||
response.raise_for_status()
|
||||
|
||||
total_size = int(response.headers.get('content-length', 1))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -33,6 +33,10 @@ init python in interface:
|
||||
DOC_URL = "http://www.renpy.org/doc/html/"
|
||||
DOC_LOCAL_URL = "file:///" + DOC_PATH
|
||||
|
||||
# If true, the launcher should not link back to renpy.org.
|
||||
NO_LAUNCHER_LINKS = os.path.exists(os.path.join(config.renpy_base, "no_launcher_links.txt"))
|
||||
|
||||
|
||||
local_doc_exists = os.path.exists(DOC_PATH)
|
||||
|
||||
def get_doc_url(page):
|
||||
@@ -40,7 +44,7 @@ init python in interface:
|
||||
Returns the URL to the documentation page.
|
||||
"""
|
||||
|
||||
if local_doc_exists and not persistent.use_web_doc:
|
||||
if local_doc_exists and (NO_LAUNCHER_LINKS or not persistent.use_web_doc):
|
||||
from urllib.parse import urljoin
|
||||
from urllib.request import pathname2url
|
||||
|
||||
@@ -117,7 +121,10 @@ screen bottom_info:
|
||||
hbox:
|
||||
spacing INDENT
|
||||
textbutton _("Documentation") style "l_link" action interface.OpenDocumentation()
|
||||
textbutton _("Ren'Py Website") style "l_link" action OpenURL(interface.RENPY_URL)
|
||||
|
||||
if not interface.NO_LAUNCHER_LINKS:
|
||||
textbutton _("Ren'Py Website") style "l_link" action OpenURL(interface.RENPY_URL)
|
||||
|
||||
textbutton _("[interface.version]") style "l_link" action Jump("about")
|
||||
|
||||
hbox:
|
||||
@@ -133,7 +140,7 @@ screen bottom_info:
|
||||
textbutton _("preferences") style "l_link" action Jump("preferences")
|
||||
textbutton _("quit") style "l_link" action Quit(confirm=False)
|
||||
|
||||
if persistent.sponsor_message:
|
||||
if persistent.sponsor_message and not interface.NO_LAUNCHER_LINKS:
|
||||
|
||||
textbutton _("Ren'Py Sponsor Information"):
|
||||
style "l_link"
|
||||
@@ -345,7 +352,7 @@ init python in interface:
|
||||
|
||||
def error(message, submessage=None, label="front_page", **kwargs):
|
||||
"""
|
||||
Indicates to the user that an error has occured.
|
||||
Indicates to the user that an error has occurred.
|
||||
|
||||
`message`
|
||||
The message to display.
|
||||
@@ -401,7 +408,7 @@ init python in interface:
|
||||
except Exception as e:
|
||||
renpy.renpy.error.report_exception(e, editor=False)
|
||||
|
||||
error(_("While [what!qt], an error occured:"),
|
||||
error(_("While [what!qt], an error occurred:"),
|
||||
_("[exception!q]"),
|
||||
what=what,
|
||||
label=label,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -164,9 +164,6 @@ init python:
|
||||
|
||||
print("Eliminating __pycache__...")
|
||||
|
||||
if PY2:
|
||||
return
|
||||
|
||||
import pathlib
|
||||
import sys
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -50,7 +50,7 @@ init python:
|
||||
pass
|
||||
|
||||
with interface.error_handling(_("Downloading the itch.io butler.")):
|
||||
url = "https://broth.itch.ovh/butler/{}/LATEST/archive/default".format(platform)
|
||||
url = "https://broth.itch.zone/butler/{}/LATEST/archive/default".format(platform)
|
||||
|
||||
response = requests.get(url, headers={'User-Agent' : "Renpy"}, proxies=renpy.proxies)
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -91,7 +91,7 @@ init -1 python:
|
||||
def log(self, msg):
|
||||
with open(self.filename, "a") as f:
|
||||
f.write("\n")
|
||||
f.write(unicode(msg))
|
||||
f.write(msg)
|
||||
f.write("\n")
|
||||
|
||||
def info(self, prompt):
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -34,9 +34,6 @@ label new_project:
|
||||
if persistent.projects_directory is None:
|
||||
$ interface.error(_("The projects directory could not be set. Giving up."))
|
||||
|
||||
if PY2:
|
||||
$ interface.info(_("Warning : you are using Ren'Py 7. It is recommended to start new projects using Ren'Py 8 instead."))
|
||||
|
||||
python:
|
||||
new_project_language = __("{#language name and font}")
|
||||
gui_kind = "new_gui_project"
|
||||
|
||||
+27
-30
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -301,6 +301,8 @@ init python:
|
||||
build.classify_renpy("**.new", None)
|
||||
build.classify_renpy("**.bak", None)
|
||||
|
||||
build.classify_renpy("**.keystore", None)
|
||||
|
||||
build.classify_renpy("**/log.txt", None)
|
||||
build.classify_renpy("**/traceback.txt", None)
|
||||
build.classify_renpy("**/errors.txt", None)
|
||||
@@ -320,7 +322,7 @@ init python:
|
||||
"""
|
||||
|
||||
if py is True:
|
||||
py = 'pyo' if PY2 else 'pycache'
|
||||
py = 'pycache'
|
||||
|
||||
if py == 'pycache':
|
||||
build.classify_renpy(pattern + "/**__pycache__/", binary)
|
||||
@@ -344,6 +346,8 @@ init python:
|
||||
build.classify_renpy(pattern + "/**.pyo", None)
|
||||
|
||||
build.classify_renpy(pattern + "/**.pyi", None)
|
||||
build.classify_renpy(pattern + "/**.pyx", "source_only")
|
||||
build.classify_renpy(pattern + "/**.pxd", "source_only")
|
||||
|
||||
build.classify_renpy(pattern + "/**.rpyc", binary)
|
||||
build.classify_renpy(pattern + "/**.rpymc", binary)
|
||||
@@ -355,6 +359,7 @@ init python:
|
||||
|
||||
build.classify_renpy(pattern + "/**", source)
|
||||
|
||||
build.classify_renpy("renpy/gl/", None)
|
||||
|
||||
build.classify_renpy("renpy.py", "binary")
|
||||
source_and_binary("renpy")
|
||||
@@ -390,39 +395,31 @@ init python:
|
||||
build.classify_renpy("sphinx/source/inc/", None)
|
||||
build.classify_renpy("sphinx/source/**", "source_only")
|
||||
|
||||
|
||||
# module.
|
||||
build.classify_renpy("module/", "source")
|
||||
build.classify_renpy("module/*.c", "source")
|
||||
build.classify_renpy("module/gen/", None)
|
||||
build.classify_renpy("module/*.h", "source")
|
||||
build.classify_renpy("module/*.py*", "source")
|
||||
build.classify_renpy("module/include/", "source")
|
||||
build.classify_renpy("module/include/*.pxd", "source")
|
||||
build.classify_renpy("module/include/*.pxi", "source")
|
||||
build.classify_renpy("module/pysdlsound/", "source")
|
||||
build.classify_renpy("module/pysdlsound/*.py", "source")
|
||||
build.classify_renpy("module/pysdlsound/*.pyx", "source")
|
||||
build.classify_renpy("module/fribidi-src/**", "source")
|
||||
build.classify_renpy("module/tinyfiledialogs/**", "source")
|
||||
build.classify_renpy("module/libhydrogen/**", "source")
|
||||
# Build System.
|
||||
build.classify_renpy("setup.py", "source_only")
|
||||
build.classify_renpy("src/**", "source_only")
|
||||
build.classify_renpy("scripts/", "source_only")
|
||||
build.classify_renpy("scripts/setuplib.py", "source_only")
|
||||
build.classify_renpy("scripts/generate_styles.py", "source_only")
|
||||
|
||||
# all-platforms binary.
|
||||
build.classify_renpy("lib/**/libpython{}.{}.dll".format(sys.version_info.major, sys.version_info.minor), "binary")
|
||||
build.classify_renpy("lib/**/libpython*.dll", None)
|
||||
|
||||
build.classify_renpy("lib/**/*steam_api*", "steam")
|
||||
build.classify_renpy("lib/**/*Live2D*", None)
|
||||
|
||||
if PY2:
|
||||
build.classify_renpy("lib/py2-linux-armv7l/**", "linux_arm")
|
||||
build.classify_renpy("lib/py2-linux-aarch64/**", "linux_arm")
|
||||
source_and_binary("lib/py2-**", "binary", "binary")
|
||||
source_and_binary("lib/python2**", "binary", "binary")
|
||||
build.classify_renpy("renpy2.sh", "binary")
|
||||
else:
|
||||
build.classify_renpy("lib/py3-linux-armv7l/**", "linux_arm")
|
||||
build.classify_renpy("lib/py3-linux-aarch64/**", "linux_arm")
|
||||
source_and_binary("lib/py3-**", "binary", "binary")
|
||||
source_and_binary("lib/python3**", "binary", "binary", py='pyc')
|
||||
build.classify_renpy("renpy3.sh", "binary")
|
||||
build.classify_renpy("lib/py3-linux-armv7l", None)
|
||||
build.classify_renpy("lib/py3-linux-aarch64/**", "linux_arm")
|
||||
source_and_binary("lib/py3-**", "binary", "binary")
|
||||
|
||||
libpython = "lib/python{}.{}".format(sys.version_info.major, sys.version_info.minor)
|
||||
source_and_binary(libpython, "binary", "binary", py='pyc')
|
||||
|
||||
build.classify_renpy("lib/python**", None)
|
||||
build.classify_renpy("lib/py2-**", None)
|
||||
|
||||
build.classify_renpy("renpy3.sh", "binary")
|
||||
|
||||
build.classify_renpy("lib/", "binary")
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -34,106 +34,21 @@ init python in distribute:
|
||||
from zipfile import crc32
|
||||
|
||||
# Since the long type doesn't exist on py3, define it here
|
||||
if not PY2:
|
||||
long = int
|
||||
long = int
|
||||
|
||||
zlib.Z_DEFAULT_COMPRESSION = 5
|
||||
|
||||
if PY2:
|
||||
class ZipFile(zipfile.ZipFile):
|
||||
|
||||
class ZipFile(zipfile.ZipFile):
|
||||
def write_with_info(self, zinfo, filename):
|
||||
|
||||
def write_with_info(self, zinfo, filename):
|
||||
"""Put the bytes from filename into the archive under the name
|
||||
arcname."""
|
||||
if not self.fp:
|
||||
raise RuntimeError(
|
||||
"Attempt to write to ZIP archive that was already closed")
|
||||
if zinfo.filename.endswith("/"):
|
||||
data = b''
|
||||
else:
|
||||
with open(filename, "rb") as f:
|
||||
data = f.read()
|
||||
|
||||
st = os.stat(filename)
|
||||
isdir = stat.S_ISDIR(st.st_mode)
|
||||
|
||||
zinfo.file_size = st.st_size
|
||||
zinfo.flag_bits = 0x00
|
||||
zinfo.header_offset = self.fp.tell() # Start of header bytes
|
||||
|
||||
self._writecheck(zinfo)
|
||||
self._didModify = True
|
||||
|
||||
if isdir:
|
||||
zinfo.file_size = 0
|
||||
zinfo.compress_size = 0
|
||||
zinfo.CRC = 0
|
||||
self.filelist.append(zinfo)
|
||||
self.NameToInfo[zinfo.filename] = zinfo
|
||||
self.fp.write(zinfo.FileHeader())
|
||||
return
|
||||
|
||||
with open(filename, "rb") as fp:
|
||||
# Must overwrite CRC and sizes with correct data later
|
||||
zinfo.CRC = CRC = 0
|
||||
zinfo.compress_size = compress_size = 0
|
||||
file_size = 0
|
||||
|
||||
zip64 = self._allowZip64 and \
|
||||
zinfo.file_size * 1.05 > zipfile.ZIP64_LIMIT
|
||||
|
||||
self.fp.write(zinfo.FileHeader(zip64))
|
||||
|
||||
if zinfo.compress_type == zipfile.ZIP_DEFLATED:
|
||||
cmpr = zlib.compressobj(zlib.Z_DEFAULT_COMPRESSION,
|
||||
zlib.DEFLATED, -15)
|
||||
else:
|
||||
cmpr = None
|
||||
while 1:
|
||||
buf = fp.read(1024 * 1024)
|
||||
if not buf:
|
||||
break
|
||||
file_size = file_size + len(buf)
|
||||
CRC = crc32(buf, CRC) & 0xffffffff
|
||||
if cmpr:
|
||||
buf = cmpr.compress(buf)
|
||||
compress_size = compress_size + len(buf)
|
||||
self.fp.write(buf)
|
||||
if cmpr:
|
||||
buf = cmpr.flush()
|
||||
compress_size = compress_size + len(buf)
|
||||
self.fp.write(buf)
|
||||
zinfo.compress_size = compress_size
|
||||
else:
|
||||
zinfo.compress_size = file_size
|
||||
zinfo.CRC = CRC
|
||||
zinfo.file_size = file_size
|
||||
|
||||
if not zip64 and self._allowZip64:
|
||||
if file_size > zipfile.ZIP64_LIMIT:
|
||||
raise RuntimeError('File size has increased during compressing')
|
||||
if compress_size > zipfile.ZIP64_LIMIT:
|
||||
raise RuntimeError('Compressed size larger than uncompressed size')
|
||||
|
||||
# Seek backwards and write CRC and file sizes
|
||||
position = self.fp.tell() # Preserve current position in file
|
||||
self.fp.seek(zinfo.header_offset, 0)
|
||||
|
||||
self.fp.write(zinfo.FileHeader(zip64))
|
||||
|
||||
self.fp.seek(position, 0)
|
||||
self.filelist.append(zinfo)
|
||||
self.NameToInfo[zinfo.filename] = zinfo
|
||||
|
||||
else:
|
||||
|
||||
class ZipFile(zipfile.ZipFile):
|
||||
|
||||
def write_with_info(self, zinfo, filename):
|
||||
|
||||
if zinfo.filename.endswith("/"):
|
||||
data = b''
|
||||
else:
|
||||
with open(filename, "rb") as f:
|
||||
data = f.read()
|
||||
|
||||
self.writestr(zinfo, data)
|
||||
self.writestr(zinfo, data)
|
||||
|
||||
|
||||
class ZipPackage(object):
|
||||
@@ -469,3 +384,5 @@ init python in distribute:
|
||||
for i in parallel_threads:
|
||||
if i.done:
|
||||
i.done()
|
||||
|
||||
parallel_threads.clear()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
|
||||
+45
-10
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -92,6 +92,10 @@ init python in project:
|
||||
# The mtime of the last dump file loaded.
|
||||
self.dump_mtime = 0
|
||||
|
||||
# A processed version of data['renpy_launcher'] with missing files
|
||||
# and directories removed.
|
||||
self.renpy_launcher = None
|
||||
|
||||
def get_dump_filename(self):
|
||||
|
||||
if os.path.exists(os.path.join(self.gamedir, "saves")):
|
||||
@@ -116,7 +120,7 @@ init python in project:
|
||||
|
||||
try:
|
||||
with open(os.path.join(self.path, "project.json"), "w") as f:
|
||||
json.dump(self.data, f)
|
||||
json.dump(self.data, f, indent=2)
|
||||
except Exception:
|
||||
self.load_data()
|
||||
|
||||
@@ -156,6 +160,43 @@ init python in project:
|
||||
data["renamed_steam"] = True
|
||||
|
||||
|
||||
def get_renpy_launcher(self):
|
||||
|
||||
if self.renpy_launcher is not None:
|
||||
return self.renpy_launcher
|
||||
|
||||
rv = { }
|
||||
|
||||
default_values = {
|
||||
"open_directory":
|
||||
{
|
||||
"game": "game",
|
||||
"base": ".",
|
||||
"images": "game/images",
|
||||
"audio": "game/audio",
|
||||
"gui": "game/gui",
|
||||
"libs": "game/libs",
|
||||
"mods": "game/mods",
|
||||
},
|
||||
"edit_file":
|
||||
{
|
||||
"script.rpy": "game/script.rpy",
|
||||
"options.rpy": "game/options.rpy",
|
||||
"gui.rpy": "game/gui.rpy",
|
||||
"screens.rpy": "game/screens.rpy"
|
||||
}
|
||||
}
|
||||
|
||||
for k, default_d in default_values.items():
|
||||
d = self.data.get("renpy_launcher", {}).get(k, default_d)
|
||||
rv[k] = { name : path for name, path in d.items() if os.path.exists(os.path.join(self.path, path)) }
|
||||
|
||||
self.renpy_launcher = rv
|
||||
|
||||
return rv
|
||||
|
||||
|
||||
|
||||
def make_tmp(self):
|
||||
"""
|
||||
Makes the project's temporary directory, if it doesn't exist
|
||||
@@ -352,12 +393,6 @@ init python in project:
|
||||
|
||||
line = line[:1024]
|
||||
|
||||
if PY2:
|
||||
try:
|
||||
line = line.decode("utf-8")
|
||||
except Exception:
|
||||
continue
|
||||
|
||||
m = re.search(r"#\s*TODO(\s*:\s*|\s+)(.*)", line, re.I)
|
||||
|
||||
if m is None:
|
||||
@@ -672,7 +707,7 @@ init python in project:
|
||||
The label to jump to when clicked.
|
||||
"""
|
||||
|
||||
if isinstance(p, basestring):
|
||||
if isinstance(p, str):
|
||||
p = manager.get(p)
|
||||
|
||||
self.project = p
|
||||
@@ -760,7 +795,7 @@ init python in project:
|
||||
def __init__(self, p=None):
|
||||
if p is None:
|
||||
self.project = current
|
||||
elif isinstance(p, basestring):
|
||||
elif isinstance(p, str):
|
||||
self.project = manager.get(p)
|
||||
else:
|
||||
self.project = p
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
|
||||
@@ -364,7 +364,7 @@
|
||||
new "{b}نقترح.{/b} محرر نص له واجهة سهلة الاستعمال ويعين على كتابة النصوص البرمجية يفضل برنامج يحتوي على مدقق لغوي. Editraحالياً لا يدعم اللغات الأجنبية مثل اللغه الكورية و الصينية و اليابانية. على نظام لينوكس, Editra يحتاج wxPython."
|
||||
|
||||
# editor.rpy:167
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
old "This may have occurred because wxPython is not installed on this system."
|
||||
new "قد يكون سبب ذلك ان wxPython غير موجود في نظام التشغيل لديك"
|
||||
|
||||
# editor.rpy:169
|
||||
@@ -380,7 +380,7 @@
|
||||
new "مطلوب تحميل ملف بحجم 1.8 ميغا بايت."
|
||||
|
||||
# editor.rpy:182
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "قد يكون السبب ان الجافا غير موجوده على هذا الجهاز."
|
||||
|
||||
# editor.rpy:191
|
||||
@@ -392,7 +392,7 @@
|
||||
new "يمنع رينباي من فتح اي محرر نصوص"
|
||||
|
||||
# editor.rpy:359
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "حصل استثناء اثناء فتح المحرر: \n[exception!q]"
|
||||
|
||||
# editor.rpy:457
|
||||
@@ -608,7 +608,7 @@
|
||||
new "خطأ"
|
||||
|
||||
# interface.rpy:356
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "حصل خطأ أثناء [what!qt]"
|
||||
|
||||
# interface.rpy:356
|
||||
@@ -1136,7 +1136,7 @@
|
||||
new "أحدث نسخة طازجة من رينباي التجريبي, قد يحتوي على آخر مستجدات رينباي و قد لا يعمل مطلقاً"
|
||||
|
||||
# updater.rpy:152
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "حصل خطأ:"
|
||||
|
||||
# updater.rpy:154
|
||||
|
||||
@@ -929,7 +929,7 @@
|
||||
new "Spildataene er blevet hentet."
|
||||
|
||||
# renpy/common/00updater.rpy:2078
|
||||
old "An error occured when trying to download game data:"
|
||||
old "An error occurred when trying to download game data:"
|
||||
new "En fejl opstod under forsøg på hentning af spildata:"
|
||||
|
||||
# renpy/common/00updater.rpy:2083
|
||||
|
||||
@@ -749,7 +749,7 @@
|
||||
new "Hentning af 1.8 MB påkrævet."
|
||||
|
||||
# game/editor.rpy:211
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "Dette er muligvis opstået, fordi Java ikke er installeret på dette system."
|
||||
|
||||
# game/editor.rpy:220
|
||||
@@ -781,7 +781,7 @@
|
||||
new "Rediger [text]."
|
||||
|
||||
# game/editor.rpy:401
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "En undtagelse opstod under opstart af tekstbehandleren:\n[exception!q]"
|
||||
|
||||
# game/editor.rpy:533
|
||||
@@ -1073,7 +1073,7 @@
|
||||
new "åbner logfilen"
|
||||
|
||||
# game/interface.rpy:407
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "En fejl opstod under [what!qt]:"
|
||||
|
||||
# game/interface.rpy:407
|
||||
@@ -1753,7 +1753,7 @@
|
||||
new "%d. %B, %Y"
|
||||
|
||||
# game/updater.rpy:163
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "En fejl er opstået:"
|
||||
|
||||
# game/updater.rpy:165
|
||||
|
||||
@@ -364,7 +364,7 @@
|
||||
new "{b}Suositeltu.{/b} Helppokäyttöinen beta-asteella oleva tekstieditori, joka sisältää kehitystä helpottavia toimintoja. Toistaiseksi Editrasta puuttuu täysin kiinalaisen, japanilaisen ja korealaisen tekstin kannatus."
|
||||
|
||||
# editor.rpy:167
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
old "This may have occurred because wxPython is not installed on this system."
|
||||
new "Tämä saattoi tapahtua, koska wxPythonia ei ole asennettu järjestelmään."
|
||||
|
||||
# editor.rpy:169
|
||||
@@ -380,7 +380,7 @@
|
||||
new "1.8 MB lataus vaaditaan."
|
||||
|
||||
# editor.rpy:182
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "Tämä saattoi tapahtua, koska Javaa ei ole asennettu."
|
||||
|
||||
# editor.rpy:191
|
||||
@@ -392,7 +392,7 @@
|
||||
new "Estää Ren'Py-ohjelmaa avaamasta tekstieditoria."
|
||||
|
||||
# editor.rpy:359
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "Virhe käynnistäessä tekstieditoria:\n[exception!q]"
|
||||
|
||||
# editor.rpy:457
|
||||
@@ -610,7 +610,7 @@
|
||||
new "VIRHE"
|
||||
|
||||
# interface.rpy:356
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "Kun [what!qt], tapahtui virhe:"
|
||||
|
||||
# interface.rpy:356
|
||||
@@ -1138,7 +1138,7 @@
|
||||
new "Upouudet Ren'Py-kehitysjulkaisut. Voi sisältää uusimmat toiminnot, tai ei ehkä toimi lainkaan."
|
||||
|
||||
# updater.rpy:152
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "On tapahtunut virhe:"
|
||||
|
||||
# updater.rpy:154
|
||||
|
||||
@@ -365,7 +365,7 @@
|
||||
new "{b}Recommandé.{/b} Un éditeur en version beta avec une interface simple et des fonctionnalités d’assistance au développement. Editra manque pour le moment du support pour les textes en chinois, japonais et coréen. Sur GNU-Linux, Editra nécessite wxPython."
|
||||
|
||||
# editor.rpy:167
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
old "This may have occurred because wxPython is not installed on this system."
|
||||
new "Cela est sans doute dû au fait que wxPython n’est pas installé sur votre système."
|
||||
|
||||
# editor.rpy:169
|
||||
@@ -381,7 +381,7 @@
|
||||
new "1.8 Mo de téléchargement requis."
|
||||
|
||||
# editor.rpy:182
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "Cela est sans doute produit parce que Java n’est pas installé sur ce système."
|
||||
|
||||
# editor.rpy:191
|
||||
@@ -393,7 +393,7 @@
|
||||
new "Empêcher Ren’Py d’ouvrir un éditeur de texte."
|
||||
|
||||
# editor.rpy:359
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "Une exception est survenue lors du lancement de l’éditeur de texte :\n[exception!q]"
|
||||
|
||||
# editor.rpy:457
|
||||
@@ -609,7 +609,7 @@
|
||||
new "ERREUR"
|
||||
|
||||
# interface.rpy:356
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "Pendant que [what!qt], une erreur est survenue :"
|
||||
|
||||
# interface.rpy:356
|
||||
@@ -1177,7 +1177,7 @@
|
||||
new "Une version journalière qui corrige les bugs de la dernière version stable."
|
||||
|
||||
# updater.rpy:152
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "Une erreur est survenue :"
|
||||
|
||||
# updater.rpy:154
|
||||
|
||||
@@ -376,7 +376,7 @@
|
||||
new "{b}Empfohlen.{/b} Ein Betaeditor mit einer leichten Benutzeroberfläche und Funktionen, die bei der Entwicklung helfen, wie eine Rechtschreibprüfung. Editra fehlt derzeit die Eingabemethode, die für Chinesisch, Japanisch und Koreanisch benötigt wird. Unter Linux benötigt Editra wxPython."
|
||||
|
||||
# editor.rpy:167
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
old "This may have occurred because wxPython is not installed on this system."
|
||||
new "Dies ist vermutlich passiert, weil wxPython nicht auf Deinem System installiert ist."
|
||||
|
||||
# editor.rpy:169
|
||||
@@ -392,7 +392,7 @@
|
||||
new "1,8 MB benötigt."
|
||||
|
||||
# editor.rpy:182
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "Dies ist vermutlich passiert, weil Java nicht auf Deinem System installiert ist."
|
||||
|
||||
# editor.rpy:191
|
||||
@@ -404,7 +404,7 @@
|
||||
new "Verhindert, dass Ren'Py einen Texteditor öffnet."
|
||||
|
||||
# editor.rpy:359
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "Ein Fehler ist beim Starten des Texteditors aufgetreten:\n[exception!q]"
|
||||
|
||||
# editor.rpy:457
|
||||
@@ -631,7 +631,7 @@
|
||||
new "FEHLER"
|
||||
|
||||
# interface.rpy:356
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "Während [what!qt] ist ein Fehler aufgetreten:"
|
||||
|
||||
# interface.rpy:356
|
||||
@@ -1193,7 +1193,7 @@
|
||||
new "Die allerneuste Ren'Py Version. Diese enthält die neusten Funktionen, könnte aber auch überhaupt nicht funktionieren."
|
||||
|
||||
# updater.rpy:152
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "Ein Fehler ist aufgetreten:"
|
||||
|
||||
# updater.rpy:154
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate german strings:
|
||||
|
||||
# screens.rpy:9
|
||||
|
||||
@@ -370,7 +370,7 @@
|
||||
new "{b}Συνιστάται.{/b} Ένας επεξεργαστής κειμένου σε έκδοση beta, με εύκολο περιβάλλον εργασίας και χαραχτηριστικά που σας βοηθούν, όπως π.χ. ορθογραφικό έλεγχο. Ο Editra προς το παρόν δεν υποστηρίζει IME για είσοδο κειμένου σε Κινέζικα, Ιαπωνέζικα και Κορεάτικα. Σε Linux ο Editra απαιτεί το wxPython."
|
||||
|
||||
# editor.rpy:167
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
old "This may have occurred because wxPython is not installed on this system."
|
||||
new "Αυτό πιθανώς να συνέβη, διότι το wxPython δεν έχει εγκατασταθεί σε αυτό το σύστημα."
|
||||
|
||||
# editor.rpy:169
|
||||
@@ -386,7 +386,7 @@
|
||||
new "1.8 MB απαιτείται να κατέβει."
|
||||
|
||||
# editor.rpy:182
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "Αυτό πιθανώς να συνέβη, διότι η Java δεν έχει εγκατασταθεί σε αυτό το σύστημα."
|
||||
|
||||
# editor.rpy:191
|
||||
@@ -398,7 +398,7 @@
|
||||
new "Εμποδίζει τη Ren'Py να ανοίξει επεξεργαστή κειμένου."
|
||||
|
||||
# editor.rpy:359
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "Μια προγραμματιστική εξαίρεση συνέβει κατά την εκκίνηση του επεξεργαστή κειμένου:\n[exception!q] "
|
||||
|
||||
# editor.rpy:457
|
||||
@@ -624,7 +624,7 @@
|
||||
new "ΣΦΑΛΜΑ"
|
||||
|
||||
# interface.rpy:356
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "Ενόσω [what!qt], συνέβη ένα σφάλμα:"
|
||||
|
||||
# interface.rpy:356
|
||||
@@ -1179,7 +1179,7 @@
|
||||
new "Η απόλυτη νεώτερη έκδοση της Ren'Py. Μπορεί να έχει τα πιο νέα χαρακτηριστικά, αλλά να μη μπορέι καν να φορτώσει."
|
||||
|
||||
# updater.rpy:152
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "Ένα σφάλμα συνέβη:"
|
||||
|
||||
# updater.rpy:154
|
||||
|
||||
@@ -366,7 +366,7 @@
|
||||
new "{b}Di Rekomendasikan.{/b} Editor dengan interface yang mudah untuk di gunakan dan fitur yang sesuai dengan development . Saat ini Editra belum mendukung text input IME yang di butuhkan untuk bahasa Cina,Jepang Dan Korea. Pada Linux, Editra memerlikan wxPython."
|
||||
|
||||
# editor.rpy:167
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
old "This may have occurred because wxPython is not installed on this system."
|
||||
new "Ini mungkin terjadi karena wxPython tidak terpasang di sistem ini."
|
||||
|
||||
# editor.rpy:169
|
||||
@@ -382,7 +382,7 @@
|
||||
new "1.8 MB download di butuhkan."
|
||||
|
||||
# editor.rpy:182
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "Ini mungkin terjadi karena Java tidak terpasang di sistem ini."
|
||||
|
||||
# editor.rpy:191
|
||||
@@ -394,7 +394,7 @@
|
||||
new "Larang Ren''Py untuk membuka editor text."
|
||||
|
||||
# editor.rpy:359
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "Kesalahan terjadi ketika menjalankan editor text: \n[exception!q]"
|
||||
|
||||
# editor.rpy:457
|
||||
@@ -612,7 +612,7 @@
|
||||
new "KESALAHAN"
|
||||
|
||||
# interface.rpy:356
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "Kesalahan terjadi ketika : [what!qt] adalah :"
|
||||
|
||||
# interface.rpy:356
|
||||
@@ -1146,7 +1146,7 @@
|
||||
new "Update terbaru dari pengembangan Ren'Py. Ini mungikin mempunyai fitur terbaru. Bahkan tidak jalan sama sekali."
|
||||
|
||||
# updater.rpy:152
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "Kesalahan telah terjadi:"
|
||||
|
||||
# updater.rpy:154
|
||||
|
||||
@@ -365,7 +365,7 @@
|
||||
new "{b}Raccomandato.{/b} Un editor in fase Beta con un'interfaccia facile da usare e funzionalità adatte allo sviluppo come il controllo ortografico. Editra al momento non offre il supporto IMO richiesto per Cinese, Giapponese e Coreano e richiede wxPython su Linux."
|
||||
|
||||
# editor.rpy:167
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
old "This may have occurred because wxPython is not installed on this system."
|
||||
new "Potrebbe essersi verificato per via dell'assenza di wxPython su questo sistema."
|
||||
|
||||
# editor.rpy:169
|
||||
@@ -381,7 +381,7 @@
|
||||
new "Verranno scaricati 1.8 MB."
|
||||
|
||||
# editor.rpy:182
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "Potrebbe essersi verificato per l'assenza di Java su questo sistema."
|
||||
|
||||
# editor.rpy:191
|
||||
@@ -393,7 +393,7 @@
|
||||
new "Impedisce a Ren'Py di aprire un editor di testo."
|
||||
|
||||
# editor.rpy:359
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "Si è verificata un'eccezione durante il lancio dell'editor:\n[exception!q]"
|
||||
|
||||
# editor.rpy:457
|
||||
@@ -609,7 +609,7 @@
|
||||
new "ERRORE"
|
||||
|
||||
# interface.rpy:356
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "Durante [what!qt], si è verificato un errore:"
|
||||
|
||||
# interface.rpy:356
|
||||
@@ -1141,7 +1141,7 @@
|
||||
new "La versione più recente di Ren'Py. Potrebbe avere maggiori funzionalità come anche non funzionare affatto."
|
||||
|
||||
# updater.rpy:152
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "Si è verificato un errore:"
|
||||
|
||||
# updater.rpy:154
|
||||
|
||||
@@ -969,7 +969,7 @@ translate japanese strings:
|
||||
new "ゲームデータがダウンロードされました"
|
||||
|
||||
# renpy/common/00updater.rpy:2078
|
||||
old "An error occured when trying to download game data:"
|
||||
old "An error occurred when trying to download game data:"
|
||||
new "ゲームデータダウンロード中にエラーが発生しました:"
|
||||
|
||||
# renpy/common/00updater.rpy:2083
|
||||
|
||||
@@ -364,7 +364,7 @@
|
||||
new "{b}推奨{/b} 使いやすいインターフェースと、スペルチュックのような開発を補助する機能を持つベータエディターです。Editra は現在、中国、韓国、日本語の入力に必要な IME のサポートに欠陥があります。Linux では Editra は wxpython を必要とします。"
|
||||
|
||||
# editor.rpy:167
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
old "This may have occurred because wxPython is not installed on this system."
|
||||
new "このエラーは wxPython がこのシステムにインストールされていないため発生したと思われます。"
|
||||
|
||||
# editor.rpy:169
|
||||
@@ -380,7 +380,7 @@
|
||||
new "1.8 MB のダウンロードが必要です。"
|
||||
|
||||
# editor.rpy:182
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "このエラーは Java がこのシステムにインストールされていないため発生しましたと思われます。"
|
||||
|
||||
# editor.rpy:191
|
||||
@@ -392,7 +392,7 @@
|
||||
new "Ren'Py のテキストエディターの実行を停止します。"
|
||||
|
||||
# editor.rpy:359
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "テキストエディターの選択中にエラーが発生しました:\n[exception!q]"
|
||||
|
||||
# editor.rpy:457
|
||||
@@ -608,7 +608,7 @@
|
||||
new "エラー"
|
||||
|
||||
# interface.rpy:356
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "[what!qt] 中にエラーが発生しました:"
|
||||
|
||||
# interface.rpy:356
|
||||
@@ -1136,7 +1136,7 @@
|
||||
new "Ren'Py の開発版で極めて不安定です。このバージョンには最新の機能が含まれていますが、全く動かないかもしれません。"
|
||||
|
||||
# updater.rpy:152
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "エラーが発生しました。"
|
||||
|
||||
# updater.rpy:154
|
||||
|
||||
@@ -624,7 +624,7 @@
|
||||
new "에디트라(Editra)는 현재 중국어, 일본어, 한국어 텍스트를 입력할 때 필요한 IME를 지원하지 않습니다. 리눅스에서, 에디트라는 wxPython이 필요합니다."
|
||||
|
||||
# game/editor.rpy:195
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
old "This may have occurred because wxPython is not installed on this system."
|
||||
new "wxPython이 설치되지 않아 문제가 발생했을 가능성이 있습니다."
|
||||
|
||||
# game/editor.rpy:197
|
||||
@@ -640,7 +640,7 @@
|
||||
new "1.8MB 내려받기 필요."
|
||||
|
||||
# game/editor.rpy:210
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "자바(Java)가 설치되지 않아 문제가 발생했을 수도 있습니다."
|
||||
|
||||
# game/editor.rpy:219
|
||||
@@ -664,7 +664,7 @@
|
||||
new "[text] 편집."
|
||||
|
||||
# game/editor.rpy:387
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "스크립트 에디터를 실행하던 도중 예외가 발생했습니다:\n[exception!q]"
|
||||
|
||||
# game/editor.rpy:519
|
||||
@@ -1480,7 +1480,7 @@
|
||||
new "%Y년 %m월 %d일"
|
||||
|
||||
# game/updater.rpy:140
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "오류가 발생했습니다:"
|
||||
|
||||
# game/updater.rpy:142
|
||||
@@ -1532,7 +1532,7 @@
|
||||
new "다음으로"
|
||||
|
||||
# game/interface.rpy:394
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "[what!qt]에 오류가 발생했습니다:"
|
||||
|
||||
# game/interface.rpy:394
|
||||
|
||||
@@ -384,7 +384,7 @@
|
||||
new "Penyunting matang. Editra tiada sokongan IME yang diperlukan untuk input tulisan bahasa Cina, Jepun, dan Korea. Di Linux, Editra memerlukan wxPython."
|
||||
|
||||
# editor.rpy:195
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
old "This may have occurred because wxPython is not installed on this system."
|
||||
new "Ini mungkin berlaku kerana wxPython tidak dipasangkan di sistem ini."
|
||||
|
||||
# editor.rpy:197
|
||||
@@ -400,7 +400,7 @@
|
||||
new "1.8 MB muat turun diperlukan."
|
||||
|
||||
# editor.rpy:210
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "Ini munhkin berlaku kerana Java tidak dipasangkan di sistem ini."
|
||||
|
||||
# editor.rpy:219
|
||||
@@ -424,7 +424,7 @@
|
||||
new "Sunting [text]"
|
||||
|
||||
# editor.rpy:387
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "Telah berlakunya pengecualian ralat ketika melancarkan penyunting tulisan:\n[exception!q]"
|
||||
|
||||
# editor.rpy:519
|
||||
@@ -1216,7 +1216,7 @@
|
||||
new "Penjujuhan pinggir pembangunan Ren'Py. Ini mungkin ada ciri-ciri paling baru, atau mungkin tak boleh dijalankan langsung."
|
||||
|
||||
# updater.rpy:158
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "Telah berlakunya ralat:"
|
||||
|
||||
# updater.rpy:160
|
||||
|
||||
@@ -942,7 +942,7 @@ translate piglatin strings:
|
||||
new "Hetay amegay ataday ashay eenbay ownloadedday."
|
||||
|
||||
# renpy/common/00updater.rpy:2078
|
||||
old "An error occured when trying to download game data:"
|
||||
old "An error occurred when trying to download game data:"
|
||||
new "Naay erroray occureday henway yingtray otay ownloadday amegay ataday:"
|
||||
|
||||
# renpy/common/00updater.rpy:2083
|
||||
|
||||
@@ -730,7 +730,7 @@ translate piglatin strings:
|
||||
new "1.8 Bmay ownloadday equiredray."
|
||||
|
||||
# game/editor.rpy:214
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "Histay aymay avehay occureday ecausebay Avajay isay otnay installeday onay histay ystemsay."
|
||||
|
||||
# game/editor.rpy:228
|
||||
@@ -762,7 +762,7 @@ translate piglatin strings:
|
||||
new "Diteay [text]."
|
||||
|
||||
# game/editor.rpy:409
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "Naay exceptionay occureday hileway aunchinglay hetay exttay editoray:\n[exception!q]"
|
||||
|
||||
# game/editor.rpy:541
|
||||
@@ -1070,7 +1070,7 @@ translate piglatin strings:
|
||||
new "openingay hetay oglay ilefay"
|
||||
|
||||
# game/interface.rpy:407
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "Hileway [what!qt], anay erroray occureday:"
|
||||
|
||||
# game/interface.rpy:407
|
||||
@@ -1778,7 +1778,7 @@ translate piglatin strings:
|
||||
new "%Bay %day, %Yay"
|
||||
|
||||
# game/updater.rpy:162
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "Naay erroray ashay occureday:"
|
||||
|
||||
# game/updater.rpy:164
|
||||
|
||||
@@ -632,7 +632,7 @@
|
||||
new "Wymagane pobieranie 1,8 MB."
|
||||
|
||||
# game/editor.rpy:177
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "Problem powstał prawdopodobnie przez brak zainstalowanego oprogramowania Java na tym systemie."
|
||||
|
||||
# game/editor.rpy:186
|
||||
@@ -656,7 +656,7 @@
|
||||
new "Edytuj [text]."
|
||||
|
||||
# game/editor.rpy:354
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "Wystąpił wyjątek podczas uruchamiania edytora tekstu:\n[exception!q]"
|
||||
|
||||
# game/editor.rpy:486
|
||||
@@ -965,7 +965,7 @@
|
||||
new "Otwieranie pliku dziennika"
|
||||
|
||||
# game/interface.rpy:394
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "Podczas [what!qt], wystąpił błąd:"
|
||||
|
||||
# game/interface.rpy:394
|
||||
@@ -1553,7 +1553,7 @@
|
||||
new "%B %d, %Y"
|
||||
|
||||
# game/updater.rpy:140
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "Wystąpił błąd:"
|
||||
|
||||
# game/updater.rpy:142
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
new "{b}Recomendado.{/b} Um editor beta com uma interface fácil para uso e características que ajudam no desenvolvimento, como correção ortográfica. Editra atualmente carece do suporte IME necessário para textos em Chinês, Japonês e Coreano. No Linux, Editra necessita do wxPython."
|
||||
|
||||
# game/editor.rpy:137
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
old "This may have occurred because wxPython is not installed on this system."
|
||||
new "Isto pode ter ocorrido porque wxPython não está instalado neste sistema."
|
||||
|
||||
# game/editor.rpy:144
|
||||
@@ -28,7 +28,7 @@
|
||||
new "Downlod de 1.8 MB é necessário."
|
||||
|
||||
# game/editor.rpy:158
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "Isto pode ter ocorrido porque Java não está instalado neste sistema"
|
||||
|
||||
# option: "System Editor"
|
||||
@@ -52,8 +52,8 @@
|
||||
new "Evita que Ren'Py abra um editor de texto."
|
||||
|
||||
# game/editor.rpy:327
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
new "Ocorreu uma exceção ao executar o editor de texto:\[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "Ocorreu uma exceção ao executar o editor de texto:\n[exception!q]"
|
||||
|
||||
# game/editor.rpy:423
|
||||
old "Select Editor"
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
new "ERRO"
|
||||
|
||||
# game/interface.rpy:328
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "Enquanto [what!qt], ocorreu um erro:"
|
||||
|
||||
# game/interface.rpy:329
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
new "Última versão, ainda instavél, do Ren'Py. Pode ter as últimas características ou pode não funcionar de vez."
|
||||
|
||||
# game/updater.rpy:119
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "Um erro ocorreu:"
|
||||
|
||||
# game/updater.rpy:121
|
||||
|
||||
@@ -1144,7 +1144,7 @@ translate russian strings:
|
||||
new "Данные игры загружены."
|
||||
|
||||
# renpy/common/00updater.rpy:2077
|
||||
old "An error occured when trying to download game data:"
|
||||
old "An error occurred when trying to download game data:"
|
||||
new "При попытке загрузить данные игры произошла ошибка:"
|
||||
|
||||
# renpy/common/00updater.rpy:2082
|
||||
|
||||
@@ -624,7 +624,7 @@
|
||||
new "Старый, проверенный бета-редактор. Editra на данный момент не поддерживает IME, необходимые для ввода Китайского, Японского и Корейского текстов. На Linux, Editra требует wxPython."
|
||||
|
||||
# editor.rpy:195
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
old "This may have occurred because wxPython is not installed on this system."
|
||||
new "Это могло случиться из-за того, что wxPython не установлен на этой системе."
|
||||
|
||||
# editor.rpy:197
|
||||
@@ -640,7 +640,7 @@
|
||||
new "Требуется скачать 1.8 МБ."
|
||||
|
||||
# editor.rpy:210
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "Это могло случиться из-за того, что Java не установлена в данной системе."
|
||||
|
||||
# editor.rpy:219
|
||||
@@ -664,7 +664,7 @@
|
||||
new "Редактировать [text]"
|
||||
|
||||
# editor.rpy:387
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "Возникла ошибка при запуске текстового редактора:\n[exception!q]"
|
||||
|
||||
# editor.rpy:519
|
||||
@@ -1457,7 +1457,7 @@
|
||||
new "%d %B %Y года"
|
||||
|
||||
# updater.rpy:140
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "Возникла ошибка:"
|
||||
|
||||
# updater.rpy:142
|
||||
@@ -1525,7 +1525,7 @@
|
||||
new "(Бета)"
|
||||
|
||||
# interface.rpy:394
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "В процессе выполнения \"[what!qt]\" произошла ошибка:"
|
||||
|
||||
# interface.rpy:394
|
||||
@@ -1874,7 +1874,7 @@
|
||||
|
||||
# game/androidstrings.rpy:43
|
||||
old "I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Please make sure you installed the 'JavaSoft (Oracle) registry keys'.\n\nWithout a working JDK, I can't continue."
|
||||
new "Не удалось использовать javac для компиляции тестового файла. Если вы еще не установили Java Development Kit, загрузите его с:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\JDK отличается от JRE, поэтому возможно, что у вас есть Java без JDK. Пожалуйста, убедитесь, что вы установили 'переменные окружения JavaSoft (Oracle)'.\n\nБез работающего JDK я не могу продолжать."
|
||||
new "Не удалось использовать javac для компиляции тестового файла. Если вы еще не установили Java Development Kit, загрузите его с:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nJDK отличается от JRE, поэтому возможно, что у вас есть Java без JDK. Пожалуйста, убедитесь, что вы установили 'переменные окружения JavaSoft (Oracle)'.\n\nБез работающего JDK я не могу продолжать."
|
||||
|
||||
# game/androidstrings.rpy:64
|
||||
old "I've opened the directory containing android.keystore and bundle.keystore. Please back them up, and keep them in a safe place."
|
||||
|
||||
@@ -1129,7 +1129,7 @@
|
||||
new "游戏数据已下载"
|
||||
|
||||
# renpy/common/00updater.rpy:2078
|
||||
old "An error occured when trying to download game data:"
|
||||
old "An error occurred when trying to download game data:"
|
||||
new "尝试下载游戏数据时发生错误:"
|
||||
|
||||
# renpy/common/00updater.rpy:2083
|
||||
|
||||
@@ -697,7 +697,7 @@
|
||||
new "需要下载 1.8 MB 的文件。"
|
||||
|
||||
# game/editor.rpy:200
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "这可能是由于您的系统中尚未安装 Java 造成的。"
|
||||
|
||||
# game/editor.rpy:209
|
||||
@@ -729,7 +729,7 @@
|
||||
new "编辑 [text]。"
|
||||
|
||||
# game/editor.rpy:390
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "启动编辑器时发生异常:\n[exception!q]"
|
||||
|
||||
# game/editor.rpy:522
|
||||
@@ -1037,7 +1037,7 @@
|
||||
new "打开日志文件"
|
||||
|
||||
# game/interface.rpy:399
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "[what!qt]时出错:"
|
||||
|
||||
# game/interface.rpy:399
|
||||
@@ -1697,7 +1697,7 @@
|
||||
new "%Y-%m-%d"
|
||||
|
||||
# game/updater.rpy:157
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "发生错误:"
|
||||
|
||||
# game/updater.rpy:159
|
||||
|
||||
@@ -884,7 +884,7 @@ translate spanish strings:
|
||||
|
||||
# renpy/common/00sync.rpy:593
|
||||
old "You can use this ID to download your save on another device.\nThis sync will expire in an hour.\nRen'Py Sync is supported by {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}."
|
||||
new "Puede usar esta ID para descargar su guardado en otro dispositivo.\nEsta sincronización caducará en una hora.\RenPy Sync está para {a=https://www.renpy.org/sponsors.html}los patrocinadores de Ren'Py{/a}."
|
||||
new "Puede usar esta ID para descargar su guardado en otro dispositivo.\nEsta sincronización caducará en una hora.\nRenPy Sync está para {a=https://www.renpy.org/sponsors.html}los patrocinadores de Ren'Py{/a}."
|
||||
|
||||
# renpy/common/00sync.rpy:619
|
||||
old "Sync Error"
|
||||
@@ -943,7 +943,7 @@ translate spanish strings:
|
||||
new "Descarga de los datos del juego."
|
||||
|
||||
# renpy/common/00updater.rpy:2078
|
||||
old "An error occured when trying to download game data:"
|
||||
old "An error occurred when trying to download game data:"
|
||||
new "Se ha producido un error al intentar descargar los datos del juego:"
|
||||
|
||||
# renpy/common/00updater.rpy:2083
|
||||
|
||||
@@ -384,7 +384,7 @@
|
||||
new "Un editor maduro. Editra carece de soporte IME, necesario para el texto en chino, japonés y coreano. En Linux, Editra necesita wxPython."
|
||||
|
||||
# editor.rpy:195
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
old "This may have occurred because wxPython is not installed on this system."
|
||||
new "Esto puede haber ocurrido porque wxPython no está instalado en este sistema."
|
||||
|
||||
# editor.rpy:197
|
||||
@@ -400,7 +400,7 @@
|
||||
new "Requiere descargar 1.8 MB."
|
||||
|
||||
# editor.rpy:210
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "Esto puede haber ocurrido porque Java no está instalado en este sistema"
|
||||
|
||||
# editor.rpy:219
|
||||
@@ -424,7 +424,7 @@
|
||||
new "Editar [text]."
|
||||
|
||||
# editor.rpy:387
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "Ha ocurrido una excepción mientras se ejecutaba el editor de texto:\\[exception!q]"
|
||||
|
||||
# editor.rpy:519
|
||||
@@ -1216,7 +1216,7 @@
|
||||
new "Versión de desarrollo de Ren'Py. Puede tener las últimas características o puede no funcionar."
|
||||
|
||||
# updater.rpy:152
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "Ha sucedido un error:"
|
||||
|
||||
# updater.rpy:154
|
||||
@@ -1568,7 +1568,7 @@
|
||||
new "abriendo el archivo de registro"
|
||||
|
||||
# game/interface.rpy:394
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "Mientras que [what!qt], ocurrió un error:"
|
||||
|
||||
# game/interface.rpy:394
|
||||
|
||||
@@ -738,7 +738,7 @@ translate tchinese strings:
|
||||
new "遊戲資料已下載。"
|
||||
|
||||
# renpy/common/00updater.rpy:2078
|
||||
old "An error occured when trying to download game data:"
|
||||
old "An error occurred when trying to download game data:"
|
||||
new "嘗試下載遊戲資料時發生錯誤:"
|
||||
|
||||
# renpy/common/00updater.rpy:2083
|
||||
|
||||
@@ -364,7 +364,7 @@
|
||||
new "{b}推薦{/b} 一個有簡單易用的介面和功能的測試版編輯器能夠幫助開發,例如拼字的校對功能。Editra 現在沒有中文,日文,韓文的輸入功能。在 linux 中 Editra 需要 wxPython(模組支援)。"
|
||||
|
||||
# editor.rpy:167
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
old "This may have occurred because wxPython is not installed on this system."
|
||||
new "這可能是因為 wxPython 沒有被安裝在當前系統中而發生的。"
|
||||
|
||||
# editor.rpy:169
|
||||
@@ -380,7 +380,7 @@
|
||||
new "1.8 MB 需要下載。"
|
||||
|
||||
# editor.rpy:182
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "這可能是因為 Java 沒有被安裝在當前系統中而發生的。"
|
||||
|
||||
# editor.rpy:191
|
||||
@@ -392,7 +392,7 @@
|
||||
new "防止 Ren'Py 開啟文字編輯器。"
|
||||
|
||||
# editor.rpy:359
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "啟動以下編輯器出現異常:\n[exception!q]"
|
||||
|
||||
# editor.rpy:457
|
||||
@@ -608,7 +608,7 @@
|
||||
new "錯誤"
|
||||
|
||||
# interface.rpy:356
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "[what!qt] 時,出現錯誤:"
|
||||
|
||||
# interface.rpy:356
|
||||
@@ -1136,7 +1136,7 @@
|
||||
new "Ren'Py 最新的開發版本。這可能會擁有最新的功能,或可能根本無法運作。"
|
||||
|
||||
# updater.rpy:152
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "一個錯誤發生:"
|
||||
|
||||
# updater.rpy:154
|
||||
|
||||
@@ -620,7 +620,7 @@
|
||||
new "Gelişmiş bir düzenleyici. Editra; Çince, Japonca ve Korece metin girişi için gerekli olan IME desteğinden yoksundur. Linux'ta Editra wxPython gerektirir."
|
||||
|
||||
# editor.rpy:195
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
old "This may have occurred because wxPython is not installed on this system."
|
||||
new "Bu sistemde wxPython kurulu olmadığı için olabilir."
|
||||
|
||||
# editor.rpy:197
|
||||
@@ -636,7 +636,7 @@
|
||||
new "1.8 MB indirme gerekir."
|
||||
|
||||
# editor.rpy:210
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "Bunun sebebi sistemde Java kurulu olmaması olabilir."
|
||||
|
||||
# editor.rpy:219
|
||||
@@ -660,7 +660,7 @@
|
||||
new "Düzenle [text]."
|
||||
|
||||
# editor.rpy:387
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "Metin düzenleyicisini başlatırken bir hata oluştu:\n[exception!q]"
|
||||
|
||||
# editor.rpy:519
|
||||
@@ -896,7 +896,7 @@
|
||||
new "HATA"
|
||||
|
||||
# interface.rpy:394
|
||||
old "While [what!q], an error occured:"
|
||||
old "While [what!q], an error occurred:"
|
||||
new "[what!q] sırasında bir hata meydana geldi:"
|
||||
|
||||
# interface.rpy:394
|
||||
@@ -1465,7 +1465,7 @@
|
||||
new "B %d, %Y"
|
||||
|
||||
# updater.rpy:140
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "Bir hata meydana geldi:"
|
||||
|
||||
# updater.rpy:142
|
||||
@@ -1913,7 +1913,7 @@ translate turkish strings:
|
||||
new "günlük dosyasının açılması"
|
||||
|
||||
# game/interface.rpy:407
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
# Automatic translation.
|
||||
new "[what!qt] adresindeyken bir hata oluştu:"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# 00action_file.rpy:26
|
||||
@@ -155,7 +155,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00action_file.rpy:240
|
||||
old "%b %d, %H:%M"
|
||||
new "%b %d, %H:%M"
|
||||
new "%d %b, %H:%M"
|
||||
|
||||
# 00action_file.rpy:353
|
||||
old "Save slot %s: [text]"
|
||||
@@ -207,7 +207,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00director.rpy:708
|
||||
old "The interactive director is not enabled here."
|
||||
new "Інтерактивний режисер тут не ввімкнений."
|
||||
new "Інтерактивний режисер тут не ввімкнено."
|
||||
|
||||
# 00director.rpy:1481
|
||||
old "⬆"
|
||||
@@ -223,7 +223,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00director.rpy:1561
|
||||
old "(statement)"
|
||||
new "(функція)"
|
||||
new "(оператор)"
|
||||
|
||||
# 00director.rpy:1562
|
||||
old "(tag)"
|
||||
@@ -235,7 +235,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00director.rpy:1564
|
||||
old "(transform)"
|
||||
new "(трансформація)"
|
||||
new "(перетворення)"
|
||||
|
||||
# 00director.rpy:1589
|
||||
old "(transition)"
|
||||
@@ -247,7 +247,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00director.rpy:1602
|
||||
old "(filename)"
|
||||
new "(ім’я файла)"
|
||||
new "(назва файлу)"
|
||||
|
||||
# 00director.rpy:1631
|
||||
old "Change"
|
||||
@@ -267,7 +267,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00director.rpy:1674
|
||||
old "Statement:"
|
||||
new "Функція:"
|
||||
new "Оператор:"
|
||||
|
||||
# 00director.rpy:1695
|
||||
old "Tag:"
|
||||
@@ -279,7 +279,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00director.rpy:1729
|
||||
old "Transforms:"
|
||||
new "Трансформації:"
|
||||
new "Перетворення:"
|
||||
|
||||
# 00director.rpy:1748
|
||||
old "Behind:"
|
||||
@@ -295,7 +295,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00director.rpy:1803
|
||||
old "Audio Filename:"
|
||||
new "Ім’я аудіофайлу::"
|
||||
new "Назва аудіофайлу:"
|
||||
|
||||
# 00gui.rpy:370
|
||||
old "Are you sure?"
|
||||
@@ -311,7 +311,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00gui.rpy:373
|
||||
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
|
||||
new "Завантаження гри приведе до втрати незбереженого прогресу.\nВи дійсно бажаєте це зробити?"
|
||||
new "Завантаження призведе до втрати незбереженого поступу.\nВи дійсно бажаєте продовжити?"
|
||||
|
||||
# 00gui.rpy:374
|
||||
old "Are you sure you want to quit?"
|
||||
@@ -319,7 +319,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00gui.rpy:375
|
||||
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
|
||||
new "Ви дійсно бажаєте повернутися до головного меню?\nЦе призведе до втрати незбереженого прогресу."
|
||||
new "Ви дійсно бажаєте повернутися до головного меню?\nЦя дія призведе до втрати незбереженого поступу."
|
||||
|
||||
# 00gui.rpy:376
|
||||
old "Are you sure you want to end the replay?"
|
||||
@@ -331,7 +331,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00gui.rpy:378
|
||||
old "Are you sure you want to skip to the next choice?"
|
||||
new "Ви дійсно бажаєте пропустити все до наступного вибору?"
|
||||
new "Ви дійсно бажаєте пропускати до наступного вибору?"
|
||||
|
||||
# 00gui.rpy:379
|
||||
old "Are you sure you want to skip unseen dialogue to the next choice?"
|
||||
@@ -351,7 +351,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00library.rpy:147
|
||||
old "Clipboard voicing enabled. "
|
||||
new "Озвучення буфера обміну увімкнено."
|
||||
new "Озвучення буфера обміну ввімкнено."
|
||||
|
||||
# 00library.rpy:148
|
||||
old "Self-voicing enabled. "
|
||||
@@ -371,11 +371,11 @@ translate ukrainian strings:
|
||||
|
||||
# 00library.rpy:153
|
||||
old "horizontal scroll"
|
||||
new "горизонтальне прокручування"
|
||||
new "горизонтальна прокрутка"
|
||||
|
||||
# 00library.rpy:154
|
||||
old "vertical scroll"
|
||||
new "вертикальне прокручування"
|
||||
new "вертикальна прокрутка"
|
||||
|
||||
# 00library.rpy:155
|
||||
old "activate"
|
||||
@@ -411,7 +411,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:228
|
||||
old "skip transitions"
|
||||
new "пропустити переходи"
|
||||
new "пропускати переходи"
|
||||
|
||||
# 00preferences.rpy:230
|
||||
old "video sprites"
|
||||
@@ -423,7 +423,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:248
|
||||
old "text speed"
|
||||
new "швидкість тексту"
|
||||
new "швидкість друку тексту"
|
||||
|
||||
# 00preferences.rpy:256
|
||||
old "joystick"
|
||||
@@ -435,19 +435,19 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:263
|
||||
old "skip"
|
||||
new "пропустити"
|
||||
new "пропускати"
|
||||
|
||||
# 00preferences.rpy:266
|
||||
old "skip unseen [text]"
|
||||
new "пропустити весь [text]"
|
||||
new "пропускати весь [text]"
|
||||
|
||||
# 00preferences.rpy:271
|
||||
old "skip unseen text"
|
||||
new "пропускати увесь текст"
|
||||
new "пропускати весь текст"
|
||||
|
||||
# 00preferences.rpy:273
|
||||
old "begin skipping"
|
||||
new "почати пропускати"
|
||||
new "почати пропуск"
|
||||
|
||||
# 00preferences.rpy:277
|
||||
old "after choices"
|
||||
@@ -471,7 +471,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:310
|
||||
old "auto-forward after click"
|
||||
new "перемотка після дотику"
|
||||
new "перемотка після клацу"
|
||||
|
||||
# 00preferences.rpy:319
|
||||
old "automatic move"
|
||||
@@ -479,7 +479,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:328
|
||||
old "wait for voice"
|
||||
new "чекати голос"
|
||||
new "чекати на голос"
|
||||
|
||||
# 00preferences.rpy:337
|
||||
old "voice sustain"
|
||||
@@ -495,7 +495,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:364
|
||||
old "debug voicing"
|
||||
new "режим налагодження синтезу мови"
|
||||
new "налагоджувальне озвучення"
|
||||
|
||||
# 00preferences.rpy:373
|
||||
old "emphasize audio"
|
||||
@@ -507,7 +507,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:392
|
||||
old "gl powersave"
|
||||
new "економія енергії"
|
||||
new "енергозбереження"
|
||||
|
||||
# 00preferences.rpy:398
|
||||
old "gl framerate"
|
||||
@@ -523,7 +523,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:414
|
||||
old "sound volume"
|
||||
new "гучність звук. ефектів"
|
||||
new "гучність звукових ефектів"
|
||||
|
||||
# 00preferences.rpy:415
|
||||
old "voice volume"
|
||||
@@ -535,7 +535,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:417
|
||||
old "mute sound"
|
||||
new "без звук. ефектів"
|
||||
new "без звукових ефектів"
|
||||
|
||||
# 00preferences.rpy:418
|
||||
old "mute voice"
|
||||
@@ -547,19 +547,19 @@ translate ukrainian strings:
|
||||
|
||||
# 00preferences.rpy:500
|
||||
old "Clipboard voicing enabled. Press 'shift+C' to disable."
|
||||
new "Озвучення буфера обміну увімкнено. Натисніть 'shift+C', щоб вимкнути."
|
||||
new "Озвучення буфера обміну ввімкнено. Натисніть «Shift+C», щоб вимкнути."
|
||||
|
||||
# 00preferences.rpy:502
|
||||
old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
|
||||
new "Синтез мовлення має сказати \"[renpy.display.tts.last]\". Натисніть 'alt+shift+V', щоб вимкнути."
|
||||
new "Синтез мовлення сказав би «[renpy.display.tts.last]». Натисніть «Alt+Shift+V», щоб вимкнути."
|
||||
|
||||
# 00preferences.rpy:504
|
||||
old "Self-voicing enabled. Press 'v' to disable."
|
||||
new "Синтез мовлення увімкнено. Натисніть 'v', щоб вимкнути його."
|
||||
new "Синтез мовлення увімкнено. Натисніть «V», щоб вимкнути."
|
||||
|
||||
# _compat\gamemenu.rpym:198
|
||||
old "Empty Slot."
|
||||
new "Порожній комірка."
|
||||
new "Порожня комірка."
|
||||
|
||||
# _compat\gamemenu.rpym:355
|
||||
old "Previous"
|
||||
@@ -595,7 +595,7 @@ translate ukrainian strings:
|
||||
|
||||
# _developer\developer.rpym:51
|
||||
old "Image Location Picker"
|
||||
new "Вибір розташування зображень"
|
||||
new "Вибирач розташування зображень"
|
||||
|
||||
# _developer\developer.rpym:53
|
||||
old "Filename List"
|
||||
@@ -603,15 +603,15 @@ translate ukrainian strings:
|
||||
|
||||
# _developer\developer.rpym:57
|
||||
old "Show Image Load Log (F4)"
|
||||
new "Показати журнал завант. зображень (F4)"
|
||||
new "Показати панель завантаження зображень (F4)"
|
||||
|
||||
# _developer\developer.rpym:60
|
||||
old "Hide Image Load Log (F4)"
|
||||
new "Сховати журнал завант. зображень (F4)"
|
||||
new "Сховати панель завантаження зображень (F4)"
|
||||
|
||||
# _developer\developer.rpym:63
|
||||
old "Image Attributes"
|
||||
new "Атрибути зображення"
|
||||
new "Атрибути зображень"
|
||||
|
||||
# _developer\developer.rpym:90
|
||||
old "[name] [attributes] (hidden)"
|
||||
@@ -639,7 +639,7 @@ translate ukrainian strings:
|
||||
|
||||
# _developer\developer.rpym:435
|
||||
old "Right-click or escape to quit."
|
||||
new "Натисніть ПКМ або Escape, щоб вийти."
|
||||
new "Натисніть ПКМ або ESC, щоб вийти."
|
||||
|
||||
# _developer\developer.rpym:467
|
||||
old "Rectangle copied to clipboard."
|
||||
@@ -655,11 +655,11 @@ translate ukrainian strings:
|
||||
|
||||
# _developer\developer.rpym:617
|
||||
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
|
||||
new "Текстури: [tex_count] ([tex_size_mb:.1f] Мб)"
|
||||
new "Текстури: [tex_count] ([tex_size_mb:.1f] МБ)"
|
||||
|
||||
# _developer\developer.rpym:621
|
||||
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
|
||||
new "Кеш зображень: [cache_pct:.1f]% ([cache_size_mb:.1f] Мб)"
|
||||
new "Кеш зображень: [cache_pct:.1f]% ([cache_size_mb:.1f] МБ)"
|
||||
|
||||
# _developer\developer.rpym:631
|
||||
old "✔ "
|
||||
@@ -671,7 +671,7 @@ translate ukrainian strings:
|
||||
|
||||
# _developer\developer.rpym:639
|
||||
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}✔ передбачене зображення (добре){/color}\n{color=#fcc}✘ раптове зображення (погано){/color}\n{color=#fff}Перетягніть, щоб перемістити.{/color}"
|
||||
new "\n{color=#cfc}✔ передбачене зображення (добре){/color}\n{color=#fcc}✘ непередбачене зображення (погано){/color}\n{color=#fff}Перетягніть для пересування.{/color}"
|
||||
|
||||
# _developer\inspector.rpym:38
|
||||
old "Displayable Inspector"
|
||||
@@ -699,7 +699,7 @@ translate ukrainian strings:
|
||||
|
||||
# _developer\inspector.rpym:145
|
||||
old " (no properties affect the displayable)"
|
||||
new " (на об’єкт не впливають жодні параметри)"
|
||||
new " (на об’єкт не впливають жодні властивості)"
|
||||
|
||||
# _developer\inspector.rpym:147
|
||||
old " (default properties omitted)"
|
||||
@@ -767,7 +767,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00updater.rpy:1452
|
||||
old "[u.version] is available. Do you want to install it?"
|
||||
new "[u.version] доступно. Бажаєте її встановити?"
|
||||
new "[u.version] доступно. Бажаєте її установити?"
|
||||
|
||||
# 00updater.rpy:1454
|
||||
old "Preparing to download the updates."
|
||||
@@ -783,7 +783,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00updater.rpy:1462
|
||||
old "The updates have been installed. The program will restart."
|
||||
new "Оновлення встановлено. Програма буде перезапущена."
|
||||
new "Оновлення було встановлено. Програму буде перезапущено."
|
||||
|
||||
# 00updater.rpy:1464
|
||||
old "The updates have been installed."
|
||||
@@ -823,11 +823,11 @@ translate ukrainian strings:
|
||||
|
||||
# 00accessibility.rpy:76
|
||||
old "Font Override"
|
||||
new "Замінити шрифт"
|
||||
new "Перевизначення шрифту"
|
||||
|
||||
# 00accessibility.rpy:80
|
||||
old "Default"
|
||||
new "Стандратний"
|
||||
new "Стандартний"
|
||||
|
||||
# 00accessibility.rpy:84
|
||||
old "DejaVu Sans"
|
||||
@@ -859,7 +859,7 @@ translate ukrainian strings:
|
||||
|
||||
# 00accessibility.rpy:125
|
||||
old "Text-to-speech"
|
||||
new "Перетворення тексту в мовлення"
|
||||
new "Текст-у-мовлення"
|
||||
|
||||
# 00accessibility.rpy:129
|
||||
old "Clipboard"
|
||||
@@ -879,7 +879,7 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00accessibility.rpy:191
|
||||
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 "Параметри цього меню призначені для покращення доступності. Вони можуть працювати не з усіма іграми, а деякі комбінації параметрів можуть зробити гру неможливою для гри. Це не є проблемою гри або рушія. Для досягнення найкращих результатів при зміні шрифтів намагайтеся зберігати розмір тексту таким, яким він був спочатку."
|
||||
new "Параметри цього меню призначені для покращення доступності. Вони можуть працювати не з усіма іграми, а деякі комбінації параметрів можуть зробити гру неможливою для гри. Це не є проблемою гри або рушія. Для отримання кращих результатів при зміні шрифтів намагайтеся зберігати розмір тексту таким, яким він був спочатку."
|
||||
|
||||
# renpy/common/00accessibility.rpy:193
|
||||
old "Self-Voicing Volume Drop"
|
||||
@@ -919,7 +919,7 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00preferences.rpy:535
|
||||
old "mute main"
|
||||
new "без основи"
|
||||
new "без основної гучності"
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
@@ -941,11 +941,11 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00director.rpy:1768
|
||||
old "Click to set transform, right click to add to transform list."
|
||||
new "Натисніть, щоб встановити трансформацію, натисніть ПКМ, щоб додати до списку трансформацій."
|
||||
new "Натисніть, щоб установити перетворення, клацніть ПКМ, щоб додати до списку перетворень."
|
||||
|
||||
# renpy/common/00director.rpy:1789
|
||||
old "Click to set, right click to add to behind list."
|
||||
new "Натисніть, щоб встановити, натисніть ПКМ, щоб додати до списку."
|
||||
new "Натисніть, щоб установити, клацніть ПКМ, щоб додати до списку."
|
||||
|
||||
# renpy/common/00gui.rpy:456
|
||||
old "This save was created on a different device. Maliciously constructed save files can harm your computer. Do you trust this save's creator and everyone who could have changed the file?"
|
||||
@@ -953,7 +953,7 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00gui.rpy:457
|
||||
old "Do you trust the device the save was created on? You should only choose yes if you are the device's sole user."
|
||||
new "Чи довіряєте ви пристрою, на якому було створено збереження? Ви повинні вибрати «Так», тільки якщо ви є єдиним користувачем пристрою."
|
||||
new "Чи довіряєте ви пристрою, на якому було створено збереження? Ви повинні натиснути «Так», лише якщо ви є єдиним користувачем пристрою."
|
||||
|
||||
# renpy/common/00preferences.rpy:528
|
||||
old "audio when unfocused"
|
||||
@@ -961,7 +961,7 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00preferences.rpy:537
|
||||
old "web cache preload"
|
||||
new "попер. завантаження вебкешу"
|
||||
new "попереднє завантаження вебкешу"
|
||||
|
||||
# renpy/common/00preferences.rpy:552
|
||||
old "voice after game menu"
|
||||
@@ -973,7 +973,7 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00speechbubble.rpy:349
|
||||
old "(hide)"
|
||||
new "(приховати)"
|
||||
new "(сховати)"
|
||||
|
||||
# renpy/common/00sync.rpy:70
|
||||
old "Sync downloaded."
|
||||
@@ -985,7 +985,7 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00sync.rpy:192
|
||||
old "The Ren'Py Sync server timed out."
|
||||
new "Сервер Ren'Py Sync вийшов з ладу."
|
||||
new "Час під’єднання до Ren'Py Sync закінчився."
|
||||
|
||||
# renpy/common/00sync.rpy:194
|
||||
old "An unknown error occurred while connecting to the Ren'Py Sync server."
|
||||
@@ -993,11 +993,11 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00sync.rpy:267
|
||||
old "The Ren'Py Sync server does not have a copy of this sync. The sync ID may be invalid, or it may have timed out."
|
||||
new "Сервер Ren'Py Sync не має копії цієї синхронізації. Ідентифікатор синхронізації може бути недійсним або його термін дії закінчився."
|
||||
new "Сервер Ren'Py Sync не має копії цієї синхронізації. Ідентифікатор синхронізації може бути недійсним або термін його дії закінчився."
|
||||
|
||||
# renpy/common/00sync.rpy:409
|
||||
old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself."
|
||||
new "Будь ласка, введіть згенерований вами ідентифікатор синхронізації.\nНіколи не вводьте ідентифікатор синхронізації, який ви не створювали."
|
||||
new "Введіть згенерований вами ідентифікатор синхронізації.\nНіколи не вводьте не створений вами ідентифікатор синхронізації."
|
||||
|
||||
# renpy/common/00sync.rpy:428
|
||||
old "The sync ID is not in the correct format."
|
||||
@@ -1013,19 +1013,19 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00sync.rpy:476
|
||||
old "The sync contains a file with an invalid name."
|
||||
new "Синхронізація містить файл з невірною назвою."
|
||||
new "Синхронізація містить файл з недійсною назвою."
|
||||
|
||||
# renpy/common/00sync.rpy:529
|
||||
old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?"
|
||||
new "Це завантажить ваші збереження на {a=https://sync.renpy.org}сервер Ren'Py Sync{/a}.\nБажаєте продовжити?"
|
||||
new "Ця дія вивантажить ваші збереження на {a=https://sync.renpy.org}сервер Ren'Py Sync{/a}.\nБажаєте продовжити?"
|
||||
|
||||
# renpy/common/00sync.rpy:558
|
||||
old "Enter Sync ID"
|
||||
new "Уведіть ідентифікатор синхронізації"
|
||||
new "Введіть ідентифікатор синхронізації"
|
||||
|
||||
# renpy/common/00sync.rpy:569
|
||||
old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}."
|
||||
new "Зв’язок зі {a=https://sync.renpy.org}сервером Ren'Py Sync{/a}."
|
||||
new "Ця дія зв’яжеться зі {a=https://sync.renpy.org}сервером Ren'Py Sync{/a}."
|
||||
|
||||
# renpy/common/00sync.rpy:596
|
||||
old "Sync Success"
|
||||
@@ -1047,7 +1047,7 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00accessibility.rpy:120
|
||||
old "Accessibility Menu. Use up and down arrows to navigate, and enter to activate buttons and bars."
|
||||
new "Меню доступності. Використовуйте стрілки вгору та вниз для навігації, а клавішу «Enter» для активації кнопок та панелей."
|
||||
new "Меню доступності. Використовуйте стрілки вгору та вниз для навігації, а клавішу Enter для взаємодії між кнопками та смуг."
|
||||
|
||||
# renpy/common/00accessibility.rpy:197
|
||||
old "Self-voicing support is limited when using a touch screen."
|
||||
@@ -1055,19 +1055,19 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/00director.rpy:1776
|
||||
old "Customize director.transforms to add more transforms."
|
||||
new "Налаштуйте director.transforms, щоб додати більше перетворень."
|
||||
new "Налаштуйте «director.transforms», щоб додати більше перетворень."
|
||||
|
||||
# renpy/common/00director.rpy:1821
|
||||
old "Click to set."
|
||||
new "Клацніть для установлення."
|
||||
new "Клацніть, щоб установити."
|
||||
|
||||
# renpy/common/00director.rpy:1822
|
||||
old "Customize director.transitions to add more transitions."
|
||||
new "Налаштуйте director.transitions, щоб додати більше переходів."
|
||||
new "Налаштуйте «director.transitions», щоб додати більше переходів."
|
||||
|
||||
# renpy/common/00director.rpy:1845
|
||||
old "Customize director.audio_channels to add more channels."
|
||||
new "Налаштуйте director.audio_channels, щоб додати більше каналів."
|
||||
new "Налаштуйте «director.audio_channels», щоб додати більше каналів."
|
||||
|
||||
# renpy/common/00gui.rpy:454
|
||||
old "Are you sure you want to continue where you left off?"
|
||||
@@ -1134,13 +1134,23 @@ translate ukrainian strings:
|
||||
new "Дані гри було завантажено."
|
||||
|
||||
# renpy/common/00updater.rpy:2078
|
||||
old "An error occured when trying to download game data:"
|
||||
old "An error occurred when trying to download game data:"
|
||||
new "Виникла помилка при спробі завантажити дані гри:"
|
||||
|
||||
# renpy/common/00updater.rpy:2083
|
||||
old "This game cannot be run until the game data has been downloaded."
|
||||
new "Цю гру не можна запустити, доки не будуть завантажені дані гри."
|
||||
new "Цю гру не можна буде запустити, доки не будуть завантажені дані гри."
|
||||
|
||||
# renpy/common/00updater.rpy:2090
|
||||
old "Retry"
|
||||
new "Повторити"
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# renpy/common/00translation.rpy:63
|
||||
old "Translation identifier: [identifier]"
|
||||
new "Ідентифікатор перекладу: [identifier]"
|
||||
|
||||
# renpy/common/00translation.rpy:84
|
||||
old " translates [tl.filename]:[tl.linenumber]"
|
||||
new " перекладає [tl.filename]:[tl.linenumber]"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# 00console.rpy:255
|
||||
@@ -89,8 +89,6 @@ translate ukrainian strings:
|
||||
old "stack: print the return stack"
|
||||
new "stack: вивести стек повернення"
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# renpy/common/_developer/developer.rpym:51
|
||||
old "Persistent Viewer"
|
||||
new "Переглядач даних"
|
||||
@@ -99,15 +97,13 @@ translate ukrainian strings:
|
||||
old "Speech Bubble Editor (Shift+B)"
|
||||
new "Редактор мовних бульбашок (Shift+B)"
|
||||
|
||||
# renpy/common/00console.rpy:789
|
||||
old "help: show this help\n help <expr>: show signature and documentation of <expr>"
|
||||
new "help: показує цю довідку\n help <вираз>: показує підпис та документацію <виразу>"
|
||||
# renpy/common/_developer/developer.rpym:70
|
||||
old "Show Translation Info"
|
||||
new "Показати відомості про переклад"
|
||||
|
||||
# renpy/common/00console.rpy:813
|
||||
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
|
||||
new "У довідці можуть бути недокументовані функції. Будь ласка, перевірте, чи функцію або\nклас, який бажаєте використати, задокументовано.\n\n"
|
||||
|
||||
translate ukrainian strings:
|
||||
# renpy/common/_developer/developer.rpym:73
|
||||
old "Hide Translation Info"
|
||||
new "Сховати відомості про переклад"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:69
|
||||
old "Show Translation Identifiers"
|
||||
@@ -143,8 +139,31 @@ translate ukrainian strings:
|
||||
|
||||
# renpy/common/_developer/developer.rpym:612
|
||||
old "\n{color=#fff}Click to copy.\nDrag to move.{/color}"
|
||||
new "\n{color=#fff}Клацніть для копіювання.\nПеретягнуть для пересування.{/color}"
|
||||
new "\n{color=#fff}Клацніть для копіювання.\nПеретягніть для пересування.{/color}"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:657
|
||||
old "Click to open in editor."
|
||||
new "Клацніть, щоб відкрити в редакторі."
|
||||
|
||||
# renpy/common/00console.rpy:725
|
||||
old "The console is using short representations. To disable this, type 'long', and to re-enable, type 'short'"
|
||||
new "Консоль використовує короткі представлення. Щоб вимкнути це, введіть 'long', а щоб увімкнути, введіть 'short'"
|
||||
|
||||
# renpy/common/00console.rpy:789
|
||||
old "help: show this help\n help <expr>: show signature and documentation of <expr>"
|
||||
new "help: показує цю довідку\n help <вираз>: показує підпис та документацію <виразу>"
|
||||
|
||||
# renpy/common/00console.rpy:813
|
||||
old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n"
|
||||
new "У довідці можуть бути недокументовані функції. Будь ласка, перевірте, чи бажана функція або\nклас задокументовано.\n\n"
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# renpy/common/_developer/developer.rpym:133
|
||||
old " [name!q] [attributes!q] (hidden)"
|
||||
new " [name!q] [attributes!q] (приховано)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:137
|
||||
old " [name!q] [attributes!q]"
|
||||
new " [name!q] [attributes!q]"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# 00gltest.rpy:70
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# gui/game/gui.rpy:2
|
||||
@@ -13,6 +13,10 @@ translate ukrainian strings:
|
||||
old "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
|
||||
new "## Виклик gui.init скидає стилі до розумних значень за замовчуванням і встановлює ширину та висоту гри."
|
||||
|
||||
# gui/game/gui.rpy:14
|
||||
old "## Enable checks for invalid or unstable properties in screens or transforms"
|
||||
new "## Увімкнути перевірку недійсних або нестабільних властивостей в екранах або перетвореннях"
|
||||
|
||||
# gui/game/gui.rpy:17
|
||||
old "## GUI Configuration Variables"
|
||||
new "## Змінні конфігурації GUI"
|
||||
@@ -357,6 +361,10 @@ translate ukrainian strings:
|
||||
old "## The position, width, and alignment of the label giving the name of the speaking character."
|
||||
new "## Положення, ширина та вирівнювання мітки, що вказує ім’я персонажа, що говорить."
|
||||
|
||||
# gui/game/gui.rpy:347
|
||||
old "## Additional space to add between history screen entries."
|
||||
new "## Додатковий простір для додавання між записами на екрані «Історія»."
|
||||
|
||||
# gui/game/gui.rpy:352
|
||||
old "## The position, width, and alignment of the dialogue text."
|
||||
new "## Позиція, ширина та вирівнювання тексту діалогу."
|
||||
@@ -435,12 +443,7 @@ translate ukrainian strings:
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# gui/game/gui.rpy:14
|
||||
old "## Enable checks for invalid or unstable properties in screens or transforms"
|
||||
new "## Увімкнути перевірку недійсних або нестабільних властивостей в екранах або перетвореннях"
|
||||
# gui/game/gui.rpy:331
|
||||
old "## What to do with unscrollable scrollbars in the game menu. \"hide\" hides them, while None shows them."
|
||||
new "## Що робити з не прокручуваними смугами прокрутки у меню гри. Параметр «hide» приховує їх, а «None» показує їх."
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# gui/game/gui.rpy:347
|
||||
old "## Additional space to add between history screen entries."
|
||||
new "## Додатковий простір для додавання між записами на екрані «Історія»."
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# game/about.rpy:39
|
||||
@@ -19,7 +19,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/add_file.rpy:37
|
||||
old "The file name may not be empty."
|
||||
new "Назва файлу не може бути пустою"
|
||||
new "Назва файлу не може бути пустою."
|
||||
|
||||
# game/add_file.rpy:41
|
||||
old "The filename must have the .rpy extension."
|
||||
@@ -27,7 +27,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/add_file.rpy:50
|
||||
old "The file already exists."
|
||||
new "Файл вже існує."
|
||||
new "Файл уже існує."
|
||||
|
||||
# game/add_file.rpy:61
|
||||
old "# Ren'Py automatically loads all script files ending with .rpy. To use this\n# file, define a label and jump to it from another file.\n"
|
||||
@@ -47,11 +47,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:37
|
||||
old "RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore."
|
||||
new "RAPT встановлено, але ключ не налаштовано. Створіть новий ключ або відновіть android.keystore."
|
||||
new "RAPT встановлено, але ключ не налаштовано. Створіть новий ключ або відновіть файл «android.keystore»."
|
||||
|
||||
# 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.keystore."
|
||||
new "RAPT встановлено, але пакет ключів не налаштовано. Створіть новий ключ або відновіть файл «bundle.keystore»."
|
||||
|
||||
# game/android.rpy:39
|
||||
old "The current project has not been configured. Use \"Configure\" to configure it before building."
|
||||
@@ -59,7 +59,7 @@ translate ukrainian strings:
|
||||
|
||||
# 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 (для стороннього завантаження та інших крамниць застосунків)."
|
||||
new "Оберіть, чи бажаєте ви зібрати Play Bundle (для Google Play) чи універсальний APK (для стороннього завантаження та інших крамниць застосунків)."
|
||||
|
||||
# game/android.rpy:41
|
||||
old "Choose \"Build\" to build the current project, or attach an Android device and choose \"Build & Install\" to build and install it on the device."
|
||||
@@ -75,11 +75,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:45
|
||||
old "Attempts to emulate a televison-based Android console, like the OUYA or Fire TV.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button."
|
||||
new "Спробує емулювати телевізійну приставку Android, як OUYA або Fire TV.\n\nВведення контролера налаштовано з клавішами зі стрілками, Enter як кнопку «Вибрати», ESC як кнопку «Меню», а PageUp як кнопку «Назад»."
|
||||
new "Спробує емулювати телевізійну приставку Android, як OUYA або Fire TV.\n\nВведення контролера налаштовано з клавішами стрілками, Enter як кнопку «Вибрати», ESC як кнопку «Меню», а PageUp як кнопку «Назад»."
|
||||
|
||||
# game/android.rpy:47
|
||||
old "Downloads and installs the Android SDK and supporting packages. Optionally, generates the keys required to sign the package."
|
||||
new "Завантажує та встановлює Android SDK і пакети підтримки. Додатково генерує ключі, необхідні для підписання пакета."
|
||||
new "Завантажує та встановлює Android SDK й пакети підтримки. Додатково генерує ключі, необхідні для підписання пакета."
|
||||
|
||||
# game/android.rpy:48
|
||||
old "Configures the package name, version, and other information about this project."
|
||||
@@ -99,7 +99,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:52
|
||||
old "Builds the Android package, installs it on an Android device connected to your computer, then launches the app on your device."
|
||||
new "Збирає пакет для Android, встановлює його на пристрій Android, підʼєднаний до вашого ПК, а потім запускає застосунок на пристрої Android."
|
||||
new "Збирає пакет Android, встановлює його на пристрій Android, підʼєднаний до вашого ПК, а потім запускає застосунок на пристрої."
|
||||
|
||||
# game/android.rpy:54
|
||||
old "Retrieves the log from the Android device and writes it to a file."
|
||||
@@ -115,7 +115,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:57
|
||||
old "Connects to a device over Wi-Fi, on Android 11+."
|
||||
new "Підключається до пристрою через Wi-Fi, на Android 11+."
|
||||
new "Під’єднується до пристрою через Wi-Fi, на Android 11+."
|
||||
|
||||
# game/android.rpy:58
|
||||
old "Disconnects a device connected over Wi-Fi."
|
||||
@@ -135,7 +135,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:266
|
||||
old "Copying Android files to distributions directory."
|
||||
new "Копіювання файлів Android до теки розповсюдження."
|
||||
new "Копіювання файлів Android до теки файлів розповсюдження."
|
||||
|
||||
# game/android.rpy:335
|
||||
old "Android: [project.current.display_name!q]"
|
||||
@@ -191,7 +191,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:427
|
||||
old "Force Recompile"
|
||||
new "Перекомпілювати"
|
||||
new "Перекомпілювати проєкт"
|
||||
|
||||
# game/android.rpy:444
|
||||
old "Other:"
|
||||
@@ -239,7 +239,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:576
|
||||
old "Pairing Host & Port"
|
||||
new "З’єднання хоста та порту"
|
||||
new "З’єднання хоста та порт"
|
||||
|
||||
# game/android.rpy:592
|
||||
old "IP Address & Port"
|
||||
@@ -267,7 +267,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:10
|
||||
old "Run configure before attempting to build the app."
|
||||
new "Запустіть конфігурацію перед тим, як спробувати зібрати застосунок."
|
||||
new "Запустіть конфігурацію перед зібранням застосунок."
|
||||
|
||||
# game/androidstrings.rpy:11
|
||||
old "Updating project."
|
||||
@@ -295,7 +295,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:17
|
||||
old "Installing the bundle appears to have failed."
|
||||
new "Не вдалося встановити пакет."
|
||||
new "Не вдалося установити пакет."
|
||||
|
||||
# game/androidstrings.rpy:18
|
||||
old "Launching app."
|
||||
@@ -319,7 +319,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:23
|
||||
old "What is the name of the package?\n\nThis is usually of the form com.domain.program or com.domain.email.program. It may only contain ASCII letters and dots. It must contain at least one dot."
|
||||
new "Як назва пакета?\n\nЗазвичай назва має вигляд com.domain.program або com.domain.email.program. Вона може містити лише літери ASCII та крапки. Принаймні одна крапка має бути обов’язково."
|
||||
new "Як назва пакета?\n\nЗазвичай назва має вигляд «com.domain.program» або «com.domain.email.program». Вона може містити лише літери ASCII та крапки. Принаймні одна крапка має бути обов’язково."
|
||||
|
||||
# game/androidstrings.rpy:24
|
||||
old "The package name may not be empty."
|
||||
@@ -363,7 +363,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:34
|
||||
old "How would you like your application to be displayed?"
|
||||
new "Як би ви хотіли, щоб ваш додаток відображався?"
|
||||
new "Як би ви хотіли, щоб ваш застосунок відображався?"
|
||||
|
||||
# game/androidstrings.rpy:35
|
||||
old "In landscape orientation."
|
||||
@@ -455,15 +455,15 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:58
|
||||
old "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?"
|
||||
new "Створення ключа у файлі android.keystore.\n\nВам потрібно створити резервну копію цього файлу. Якщо ви його втратите, ви не зможете оновити ваш застосунок.\n\nВам також потрібно зберігати ключ у безпеці. Якщо зловмисники отримають цей файл, вони зможуть створити підроблені версії вашого застосунка і, можливо, викрасти дані ваших користувачів.\n\nБажаєте зробити резервну копію android.keystore і зберегти її у безпечному місці?"
|
||||
new "Створення ключа у файлі «android.keystore».\n\nВам потрібно створити резервну копію цього файлу. Якщо ви його втратите, ви не зможете оновити ваш застосунок.\n\nВам також потрібно зберігати ключ у безпеці. Якщо зловмисники отримають цей файл, вони зможуть створити підроблені версії вашого застосунка і, можливо, викрасти дані ваших користувачів.\n\nБажаєте зробити резервну копію «android.keystore» і зберегти її у безпечному місці?"
|
||||
|
||||
# game/androidstrings.rpy:59
|
||||
old "Could not create android.keystore. Is keytool in your path?"
|
||||
new "Не вдалося створити android.keystore. Чи є keytool у вашому шляху?"
|
||||
new "Не вдалося створити «android.keystore». Чи є «keytool» у вашому шляху?"
|
||||
|
||||
# game/androidstrings.rpy:60
|
||||
old "I've finished creating android.keystore. Please back it up, and keep it in a safe place."
|
||||
new "Створення android.keystore завершено. Будь ласка, створіть резервну копію та збережіть її у безпечному місці."
|
||||
new "Створення «android.keystore» завершено. Будь ласка, створіть резервну копію та збережіть його у безпечному місці."
|
||||
|
||||
# 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?"
|
||||
@@ -471,15 +471,15 @@ translate ukrainian strings:
|
||||
|
||||
# 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 і зберегти її у безпечному місці?"
|
||||
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 у вашому шляху?"
|
||||
new "Не вдалося створити «bundle.keystore». Чи є «keytool» у вашому шляху?"
|
||||
|
||||
# game/androidstrings.rpy:64
|
||||
old "I've opened the directory containing android.keystore and bundle.keystore. Please back them up, and keep them in a safe place."
|
||||
new "Відкрито теку, що містить android.keystore та bundle.keystore. Будь ласка, створіть їх резервну копію та зберігайте у безпечному місці."
|
||||
new "Відкрито теку, що містить «android.keystore» та «bundle.keystore». Створіть їх резервну копію та зберігайте у безпечному місці."
|
||||
|
||||
# game/androidstrings.rpy:65
|
||||
old "It looks like you're ready to start packaging games."
|
||||
@@ -495,7 +495,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/choose_theme.rpy:304
|
||||
old "Could not change the theme. Perhaps options.rpy was changed too much."
|
||||
new "Не вдалося змінити тему. Можливо, options.rpy було змінено дуже багато разів."
|
||||
new "Не вдалося змінити тему. Можливо, файл «options.rpy» було змінено дуже багато разів."
|
||||
|
||||
# game/choose_theme.rpy:371
|
||||
old "Planetarium"
|
||||
@@ -519,11 +519,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/choose_theme.rpy:508
|
||||
old "changing the theme"
|
||||
new "зміна теми"
|
||||
new "зміни теми"
|
||||
|
||||
# game/consolecommand.rpy:91
|
||||
old "INFORMATION"
|
||||
new "ВІДОМОСТІ"
|
||||
new "ІНФОРМАЦІЯ"
|
||||
|
||||
# game/consolecommand.rpy:91
|
||||
old "The command is being run in a new operating system console window."
|
||||
@@ -535,11 +535,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute.rpy:516
|
||||
old "Building distributions failed:\n\nThe build.directory_name variable may not include the space, colon, or semicolon characters."
|
||||
new "Помилка збірки файлів для розповсюдження:\n\nЗмінна build.directory_name не може містити пробіл, двокрапку або крапку з комою."
|
||||
new "Помилка збірки файлів розповсюдження:\n\nЗмінна «build.directory_name» не може містити пробіл, двокрапку або крапку з комою."
|
||||
|
||||
# game/distribute.rpy:562
|
||||
old "No packages are selected, so there's nothing to do."
|
||||
new "Жодні пакети вибрано, створювати нічого."
|
||||
new "Жодні пакети не вибрано, створювати нічого."
|
||||
|
||||
# game/distribute.rpy:574
|
||||
old "Scanning Ren'Py files..."
|
||||
@@ -547,7 +547,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute.rpy:654
|
||||
old "All packages have been built.\n\nDue to the presence of permission information, unpacking and repacking the Linux and Macintosh distributions on Windows is not supported."
|
||||
new "Усі пакети зібрано.\n\nЧерез наявність інформації про дозволи, розпакування та перепакування файлів для розповсюдження Linux та Macintosh у Windows не підтримується."
|
||||
new "Усі пакети зібрано.\n\nЧерез наявність інформації про дозволи, розпакування та перепакування файлів розповсюдження Linux та Macintosh у Windows не підтримується."
|
||||
|
||||
# game/distribute.rpy:857
|
||||
old "Archiving files..."
|
||||
@@ -583,7 +583,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute.rpy:1675
|
||||
old "Recompiling all rpy files into rpyc files..."
|
||||
new "Перекомпіляція усіх файлів .rpy у файли .rpyc..."
|
||||
new "Перекомпіляція усіх файлів rpy у файли rpyc..."
|
||||
|
||||
# game/distribute.rpy:1690
|
||||
old "Copying files..."
|
||||
@@ -591,7 +591,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute_gui.rpy:157
|
||||
old "Build Distributions: [project.current.display_name!q]"
|
||||
new "Збірка файлів для розповсюдження: [project.current.display_name!q]"
|
||||
new "Збірка файлів розповсюдження: [project.current.display_name!q]"
|
||||
|
||||
# game/distribute_gui.rpy:171
|
||||
old "Directory Name:"
|
||||
@@ -603,7 +603,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute_gui.rpy:185
|
||||
old "Actions:"
|
||||
new "Дії:"
|
||||
new "Дії з проєктом:"
|
||||
|
||||
# game/distribute_gui.rpy:193
|
||||
old "Edit options.rpy"
|
||||
@@ -611,7 +611,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute_gui.rpy:194
|
||||
old "Add from clauses to calls, once"
|
||||
new "Додати з класів до викликів, один раз"
|
||||
new "Один раз додати «from clauses to calls»"
|
||||
|
||||
# game/distribute_gui.rpy:195
|
||||
old "Update old-game"
|
||||
@@ -639,7 +639,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute_gui.rpy:242
|
||||
old "Add from clauses to calls"
|
||||
new "Додати з класів для викликів"
|
||||
new "Додати «from clauses to calls»"
|
||||
|
||||
# game/distribute_gui.rpy:247
|
||||
old "Build"
|
||||
@@ -647,15 +647,15 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute_gui.rpy:251
|
||||
old "Adding from clauses to call statements that do not have them."
|
||||
new "Додавання з класів для виклику операторів, які їх не мають."
|
||||
new "Додавання «from clauses to call» операторів, які їх не мають."
|
||||
|
||||
# game/distribute_gui.rpy:275
|
||||
old "Errors were detected when running the project. Please ensure the project runs without errors before building distributions."
|
||||
new "Під час запуску проєкту було виявлено помилки. Будь ласка, переконайтеся, що проєкт працює без помилок, перш ніж збирати дистрибутиви."
|
||||
new "Під час запуску проєкту було виявлено помилки. Переконайтеся, що проєкт працює без помилок, перш ніж збирати файли розповсюдження."
|
||||
|
||||
# game/distribute_gui.rpy:294
|
||||
old "Your project does not contain build information. Would you like to add build information to the end of options.rpy?"
|
||||
new "Ваш проєкт не містить інформації про збірку. Бажаєте додати інформацію про збірку в кінець options.rpy?"
|
||||
new "Ваш проєкт не містить інформації про збірку. Бажаєте додати інформацію про збірку в кінці файлу options.rpy?"
|
||||
|
||||
# game/dmgcheck.rpy:50
|
||||
old "Ren'Py is running from a read only folder. Some functionality will not work."
|
||||
@@ -663,7 +663,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/dmgcheck.rpy:50
|
||||
old "This is probably because Ren'Py is running directly from a Macintosh drive image. To fix this, quit this launcher, copy the entire %s folder somewhere else on your computer, and run Ren'Py again."
|
||||
new "Імовірно, це пов’язано з тим, що Ren'Py запускається безпосередньо з образу диска Macintosh. Щоб виправити це, закрийте запускач, скопіюйте усю теку %s кудись на комп’ютері і запустіть Ren'Py знову."
|
||||
new "Імовірно, це сталося через те, що Ren'Py запускається безпосередньо з образу диска Macintosh. Щоб виправити це, закрийте запускач, скопіюйте усю теку %s кудись на вашому ПК і запустіть Ren'Py знову."
|
||||
|
||||
# game/editor.rpy:152
|
||||
old "A modern editor with many extensions including advanced Ren'Py integration."
|
||||
@@ -679,7 +679,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/editor.rpy:169
|
||||
old "Up to 110 MB download required."
|
||||
new "Необхідно завантажити до 110 МБ."
|
||||
new "Розмір завантаження — до 110 МБ."
|
||||
|
||||
# game/editor.rpy:182
|
||||
old "A modern and approachable text editor."
|
||||
@@ -691,7 +691,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/editor.rpy:196
|
||||
old "Up to 150 MB download required."
|
||||
new "Необхідно завантажити до 150 МБ."
|
||||
new "Розмір завантаження — до 150 МБ."
|
||||
|
||||
# game/editor.rpy:211
|
||||
old "jEdit"
|
||||
@@ -699,14 +699,14 @@ translate ukrainian strings:
|
||||
|
||||
# game/editor.rpy:211
|
||||
old "A mature editor that requires Java."
|
||||
new "Розвинутий редактор, який потребує Java."
|
||||
new "Сталий редактор, який потребує Java."
|
||||
|
||||
# game/editor.rpy:211
|
||||
old "1.8 MB download required."
|
||||
new "Необхідно завантажити 1,8 МБ."
|
||||
new "Розмір завантаження — 1,8 МБ."
|
||||
|
||||
# game/editor.rpy:211
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "Це могло статися через те, що на цій системі не встановлено Java."
|
||||
|
||||
# game/editor.rpy:220
|
||||
@@ -715,30 +715,30 @@ translate ukrainian strings:
|
||||
|
||||
# game/editor.rpy:220
|
||||
old "Uses a copy of Visual Studio Code that you have installed outside of Ren'Py. It's recommended you install the language-renpy extension to add support for Ren'Py files."
|
||||
new "Використовує копію Visual Studio Code, яку ви встановили поза Ren'Py. Рекомендується установити розширення language-renpy, щоб додати підтримку файлів Ren'Py."
|
||||
new "Використовує копію Visual Studio Code, яку ви встановили не через Ren'Py. Рекомендується установити розширення «language-renpy», щоб додати підтримку файлів Ren'Py."
|
||||
|
||||
# game/editor.rpy:226
|
||||
old "System Editor"
|
||||
new "Системний редактор"
|
||||
new "Редактор системи"
|
||||
|
||||
# game/editor.rpy:226
|
||||
old "Invokes the editor your operating system has associated with .rpy files."
|
||||
new "Викликає редактор, який ваша операційна система пов’язала з файлами .rpy."
|
||||
new "Відкриває редактор, який ваша операційна система пов’язала з файлами .rpy."
|
||||
|
||||
# game/editor.rpy:245
|
||||
old "None"
|
||||
new "немає"
|
||||
new "Немає"
|
||||
|
||||
# game/editor.rpy:245
|
||||
old "Prevents Ren'Py from opening a text editor."
|
||||
new "Забороняє Ren'Py відкривати текстовий редактор."
|
||||
new "Запобігає Ren'Py відкривати текстовий редактор."
|
||||
|
||||
# game/editor.rpy:352
|
||||
old "Edit [text]."
|
||||
new "Редагувати [text]."
|
||||
|
||||
# game/editor.rpy:401
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "Під час запуску текстового редактора виникла помилка:\n[exception!q]"
|
||||
|
||||
# game/editor.rpy:533
|
||||
@@ -747,7 +747,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/editor.rpy:548
|
||||
old "A text editor is the program you'll use to edit Ren'Py script files. Here, you can select the editor Ren'Py will use. If not already present, the editor will be automatically downloaded and installed."
|
||||
new "Текстовий редактор – це програма, яку ви використовуватимете для редагування файлів скриптів Ren'Py. Тут ви можете вибрати редактор, який використовуватиме Ren'Py. Якщо редактор ще не присутній, він буде автоматично завантажений і встановлений."
|
||||
new "Текстовий редактор – це програма, яку ви будете використовувати для редагування файлів скриптів Ren'Py. Тут ви можете обрати редактор, який буде використовувати Ren'Py. Якщо його ще немає, редактор буде автоматично завантажено й установлено."
|
||||
|
||||
# game/front_page.rpy:58
|
||||
old "PROJECTS:"
|
||||
@@ -823,7 +823,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/front_page.rpy:188
|
||||
old "Actions"
|
||||
new "Дії"
|
||||
new "Дії з проєктом"
|
||||
|
||||
# game/front_page.rpy:197
|
||||
old "Navigate Script"
|
||||
@@ -847,7 +847,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/front_page.rpy:215
|
||||
old "Build Distributions"
|
||||
new "Зібрати дистрибутиви"
|
||||
new "Зібрати файли розповсюдження"
|
||||
|
||||
# game/front_page.rpy:217
|
||||
old "Android"
|
||||
@@ -867,7 +867,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/front_page.rpy:223
|
||||
old "Generate Translations"
|
||||
new "Генерувати переклади"
|
||||
new "Згенерувати переклади"
|
||||
|
||||
# game/front_page.rpy:224
|
||||
old "Extract Dialogue"
|
||||
@@ -883,11 +883,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/gui7.rpy:243
|
||||
old "Select Accent and Background Colors"
|
||||
new "Оберіть акцентні та фонові кольори"
|
||||
new "Оберіть кольори акценту та тла"
|
||||
|
||||
# game/gui7.rpy:257
|
||||
old "Please click on the color scheme you wish to use, then click Continue. These colors can be changed and customized later."
|
||||
new "Натисніть на колірну схему, яку бажаєте використовувати, а потім натисніть «Продовжити». Ці кольори можна змінити та налаштувати пізніше."
|
||||
new "Оберіть колірну схему, яку бажаєте використовувати, а потім натисніть «Продовжити». Ці кольори можна змінити та налаштувати пізніше."
|
||||
|
||||
# game/gui7.rpy:302
|
||||
old "{b}Warning{/b}\nContinuing will overwrite customized bar, button, save slot, scrollbar, and slider images.\n\nWhat would you like to do?"
|
||||
@@ -899,7 +899,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/gui7.rpy:302
|
||||
old "Choose new colors, then regenerate image files."
|
||||
new "Оберіть нові кольори, а потім регенеруйте файли зображень."
|
||||
new "Обрати нові кольори, а потім регенерувати файли зображень."
|
||||
|
||||
# game/gui7.rpy:302
|
||||
old "Regenerate the image files using the colors in gui.rpy."
|
||||
@@ -907,7 +907,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/gui7.rpy:333
|
||||
old "What resolution should the project use? Although Ren'Py can scale the window up and down, this is the initial size of the window, the size at which assets should be drawn, and the size at which the assets will be at their sharpest.\n\nThe default of [default_size[0]]x[default_size[1]] is a reasonable compromise."
|
||||
new "Яку роздільність має використовувати проєкт? Хоча Ren'Py може масштабувати вікно вгору і вниз, це початковий розмір вікна, розмір, у якому мають бути намальовані ресурси, і розмір, у якому ресурси будуть найчіткішими.\n\nСтандартна роздільність [default_size[0]]x[default_size[1]] є розумним компромісом."
|
||||
new "Яку роздільність має використовувати проєкт? Хоч Ren'Py може масштабувати вікно вгору і вниз, це буде початковий розмір вікна, розмір, у якому мають бути намальовані ресурси, і розмір, у якому ресурси будуть найчіткішими.\n\nСтандартна роздільність [default_size[0]]x[default_size[1]] є розумним компромісом."
|
||||
|
||||
# game/gui7.rpy:333
|
||||
old "Custom. The GUI is optimized for a 16:9 aspect ratio."
|
||||
@@ -951,7 +951,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/gui7.rpy:428
|
||||
old "activating the new project"
|
||||
new "активація нового проєкту"
|
||||
new "активації нового проєкту"
|
||||
|
||||
# game/install.rpy:33
|
||||
old "Could not install [name!t], as a file matching [zipglob] was not found in the Ren'Py SDK directory."
|
||||
@@ -963,7 +963,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/install.rpy:114
|
||||
old "This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed."
|
||||
new "На цьому екрані ви можете встановити бібліотеки, які не можна розповсюджувати разом з Ren'Py. Деякі з цих бібліотек можуть вимагати, щоб ви погодилися з ліцензією третьої сторони перед використанням або розповсюдженням."
|
||||
new "Тут ви можете встановити бібліотеки, які не можуть бути розповсюджені разом з Ren'Py. Деякі з цих бібліотек можуть вимагати, щоб ви погодилися з ліцензією третіх сторін перед використанням або розповсюдженням."
|
||||
|
||||
# game/install.rpy:120
|
||||
old "Install Steam Support"
|
||||
@@ -1039,7 +1039,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/interface.rpy:269
|
||||
old "Due to package format limitations, non-ASCII file and directory names are not allowed."
|
||||
new "Через обмеження формату пакетів, назви файлів та тек, що не належать до ASCII, не допускаються."
|
||||
new "Через обмеження формату пакетів, назви файлів та тек, що не містять символів ASCII, не допускаються."
|
||||
|
||||
# game/interface.rpy:365
|
||||
old "ERROR"
|
||||
@@ -1050,7 +1050,7 @@ translate ukrainian strings:
|
||||
new "відкриття файлу журналу"
|
||||
|
||||
# game/interface.rpy:399
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "Під час [what!qt] сталася помилка:"
|
||||
|
||||
# game/interface.rpy:399
|
||||
@@ -1071,11 +1071,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/interface.rpy:511
|
||||
old "PROCESSING"
|
||||
new "ОБРОБКА"
|
||||
new "ОБРОБЛЕННЯ"
|
||||
|
||||
# game/interface.rpy:528
|
||||
old "QUESTION"
|
||||
new "ЗАПИТАННЯ"
|
||||
new "ПИТАННЯ"
|
||||
|
||||
# game/interface.rpy:541
|
||||
old "CHOICE"
|
||||
@@ -1175,7 +1175,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/ios.rpy:404
|
||||
old "Please choose the Xcode Projects Directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"
|
||||
new "Оберіть теку проєктів Xcode із засобом вибору теки.\n{b}Засіб вибору теки могло бути відкрито за цим вікном.{/b}"
|
||||
new "Оберіть теку проєктів Xcode через засіб вибору теки.\n{b}Засіб вибору теки міг уже відкритися позаду цього вікна.{/b}"
|
||||
|
||||
# game/ios.rpy:409
|
||||
old "Ren'Py has set the Xcode Projects Directory to:"
|
||||
@@ -1187,7 +1187,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/itch.rpy:91
|
||||
old "The built distributions could not be found. Please choose 'Build' and try again."
|
||||
new "Не вдалося знайти зібрані дистрибутиви. Будь ласка, оберіть «Зібрати» і спробуйте ще раз."
|
||||
new "Не вдалося знайти зібрані файли розповсюдження. Натисніть «Зібрати» і спробуйте ще раз."
|
||||
|
||||
# game/itch.rpy:129
|
||||
old "No uploadable files were found. Please choose 'Build' and try again."
|
||||
@@ -1203,11 +1203,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/itch.rpy:144
|
||||
old "The name of the itch project has not been set."
|
||||
new "Назва проєкту itch ще не задано."
|
||||
new "Назва проєкту itch ще не встановлено."
|
||||
|
||||
# game/itch.rpy:144
|
||||
old "Please {a=https://itch.io/game/new}create your project{/a}, then add a line like \n{vspace=5}define build.itch_project = \"user-name/game-name\"\n{vspace=5} to options.rpy."
|
||||
new "Будь ласка {a=https://itch.io/game/new}створіть свій проєкт{/a}, а потім додайте рядок на зразок \n{vspace=5}define build.itch_project = \"user-name/game-name \"\n{vspace=5} до файлу options.rpy."
|
||||
new "Будь ласка, {a=https://itch.io/game/new}створіть проєкт{/a}, а потім додайте рядок типу \n{vspace=5}define build.itch_project = \"ім’я-користувача/назва-гри\"\n{vspace=5} до файлу options.rpy."
|
||||
|
||||
# game/mobilebuild.rpy:114
|
||||
old "{a=%s}%s{/a}"
|
||||
@@ -1259,23 +1259,27 @@ translate ukrainian strings:
|
||||
|
||||
# game/navigation.rpy:203
|
||||
old "callables"
|
||||
new "викликані"
|
||||
new "викликувані"
|
||||
|
||||
# game/navigation.rpy:204
|
||||
old "TODOs"
|
||||
new "TODO"
|
||||
|
||||
# game/navigation.rpy:230
|
||||
old "Show translation files"
|
||||
new "Показати файли перекладу"
|
||||
|
||||
# game/navigation.rpy:243
|
||||
old "+ Add script file"
|
||||
new "+ Додати файл скрипта"
|
||||
|
||||
# game/navigation.rpy:251
|
||||
old "No TODO comments found.\n\nTo create one, include \"# TODO\" in your script."
|
||||
new "Не знайдено жодного коментаря TODO.\n\nЩоб створити його, включіть «# TODO» у ваш скрипт."
|
||||
new "Не знайдено жодного коментаря TODO.\n\nЩоб створити його, вставте «# TODO» у ваш скрипт."
|
||||
|
||||
# game/navigation.rpy:258
|
||||
old "The list of names is empty."
|
||||
new "Список назв порожній."
|
||||
new "Список імен порожній."
|
||||
|
||||
# game/new_project.rpy:38
|
||||
old "New GUI Interface"
|
||||
@@ -1291,7 +1295,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/new_project.rpy:52
|
||||
old "Only the legacy theme interface has been translated to your language."
|
||||
new "На вашу мову перекладено лише інтерфейс старої теми."
|
||||
new "На вашу мову перекладено лише інтерфейс класичної теми."
|
||||
|
||||
# game/new_project.rpy:54
|
||||
old "Neither interface has been translated to your language."
|
||||
@@ -1299,15 +1303,15 @@ translate ukrainian strings:
|
||||
|
||||
# game/new_project.rpy:63
|
||||
old "The projects directory could not be set. Giving up."
|
||||
new "Не вдалося встановити теку проєктів. Здаюся."
|
||||
new "Не вдалося установити теку проєктів. Здаюся."
|
||||
|
||||
# game/new_project.rpy:70
|
||||
old "Which interface would you like to use? The new GUI has a modern look, supports wide screens and mobile devices, and is easier to customize. Legacy themes might be necessary to work with older example code.\n\n[language_support!t]\n\nIf in doubt, choose the new GUI, then click Continue on the bottom-right."
|
||||
new "Який інтерфейс ви хотіли б використовувати? Новий інтерфейс має сучасний вигляд, підтримує широкі екрани і мобільні пристрої, і його легше налаштовувати. Старі теми можуть знадобитися для роботи зі старими прикладами коду.\n\n[language_support!t]\n\nЯкщо ви сумніваєтеся, оберіть новий інтерфейс, а потім натисніть «Продовжити» знизу праворуч."
|
||||
new "Який інтерфейс ви хотіли б використовувати? Новий інтерфейс має сучасний вигляд, підтримує широкі екрани й екрани мобільних пристроїв, і його легше налаштувати. Класичні теми можуть знадобитися для роботи зі старими прикладами коду.\n\n[language_support!t]\n\nЯкщо сумніваєтеся, оберіть новий інтерфейс, а потім натисніть «Продовжити» знизу праворуч."
|
||||
|
||||
# game/new_project.rpy:70
|
||||
old "Legacy Theme Interface"
|
||||
new "Стара тема інтерфейсу"
|
||||
new "Класична тема інтерфейсу"
|
||||
|
||||
# game/new_project.rpy:77
|
||||
old "{#language name and font}"
|
||||
@@ -1343,7 +1347,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/new_project.rpy:142
|
||||
old "Please select a template to use for your new project. The template sets the default font and the user interface language. If your language is not supported, choose 'english'."
|
||||
new "Будь ласка, оберіть шаблон для нового проєкту. Шаблон установлює стандартний шрифт і мову інтерфейсу. Якщо ваша мова не підтримується, оберіть «english»."
|
||||
new "Будь ласка, оберіть шаблон для вашого нового проєкту. Шаблон матиме стандартний шрифт і мову інтерфейсу. Якщо ваша мова не підтримується, оберіть «english»."
|
||||
|
||||
# game/preferences.rpy:88
|
||||
old "Launcher Preferences"
|
||||
@@ -1371,7 +1375,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/preferences.rpy:142
|
||||
old "Not Set"
|
||||
new "не задано"
|
||||
new "Не задано"
|
||||
|
||||
# game/preferences.rpy:155
|
||||
old "Text Editor:"
|
||||
@@ -1443,7 +1447,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/preferences.rpy:273
|
||||
old "Install Libraries:"
|
||||
new "Установити бібліотеки:"
|
||||
new "Установлення бібліотек:"
|
||||
|
||||
# game/preferences.rpy:299
|
||||
old "Open launcher project"
|
||||
@@ -1471,15 +1475,15 @@ translate ukrainian strings:
|
||||
|
||||
# game/project.rpy:46
|
||||
old "After making changes to the script, press shift+R to reload your game."
|
||||
new "Після внесення змін до скрипту натисніть shift+R, щоб перезавантажити гру."
|
||||
new "Після внесення змін до скрипту натисніть «Shift+R», щоб перезавантажити гру."
|
||||
|
||||
# game/project.rpy:46
|
||||
old "Press shift+O (the letter) to access the console."
|
||||
new "Натисніть shift+O (літера), щоб відкрити консоль."
|
||||
new "Натисніть «Shift+O (літера)» для відкриття консолі."
|
||||
|
||||
# game/project.rpy:46
|
||||
old "Press shift+D to access the developer menu."
|
||||
new "Натисніть shift+D, щоб відкрити меню розробника."
|
||||
new "Натисніть «Shift+D» для відкриття меню розробника."
|
||||
|
||||
# game/project.rpy:46
|
||||
old "Have you backed up your projects recently?"
|
||||
@@ -1491,7 +1495,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/project.rpy:280
|
||||
old "This may be because the project is not writeable."
|
||||
new "Це може бути пов’язано з тим, що проєкт не може бути записаний."
|
||||
new "Це може бути пов’язано з тим, що проєкт не доступний для запису."
|
||||
|
||||
# game/project.rpy:282
|
||||
old "Please ensure that your project launches normally before running this command."
|
||||
@@ -1515,7 +1519,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/project.rpy:794
|
||||
old "This launcher will scan for projects in this directory, will create new projects in this directory, and will place built projects into this directory."
|
||||
new "Цей запускач буде шукати проєкти у цій теці, створювати нові проєкти у цій теці і розміщувати створені проєкти у цій теці."
|
||||
new "Цей запускач буде шукати проєкти, створювати нові проєкти й розміщувати створені проєкти у цій теці."
|
||||
|
||||
# game/project.rpy:799
|
||||
old "Ren'Py has set the projects directory to:"
|
||||
@@ -1527,7 +1531,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/translations.rpy:132
|
||||
old "The language to work with. This should only contain lower-case ASCII characters and underscores."
|
||||
new "Мова, з якою будете працювати. Вона повинна містити лише малі літери ASCII та символи підкреслення."
|
||||
new "Мова, з якою будете працювати. Вона повинна містити лише малі літери ASCII та знаки підкреслення."
|
||||
|
||||
# game/translations.rpy:158
|
||||
old "Generate empty strings for translations"
|
||||
@@ -1535,15 +1539,15 @@ translate ukrainian strings:
|
||||
|
||||
# game/translations.rpy:176
|
||||
old "Generates or updates translation files. The files will be placed in game/tl/[persistent.translate_language!q]."
|
||||
new "Генерує або оновлює файли перекладу. Файли буде розміщено в теці game/tl/[persistent.translate_language!q]."
|
||||
new "Генерує або оновлює файли перекладу. Файли буде розміщено в теці «game/tl/[persistent.translate_language!q]»."
|
||||
|
||||
# game/translations.rpy:196
|
||||
old "Extract String Translations"
|
||||
new "Витягти рядки перекладу"
|
||||
new "Витягнути переклади рядків"
|
||||
|
||||
# game/translations.rpy:198
|
||||
old "Merge String Translations"
|
||||
new "Об’єднати рядки перекладу"
|
||||
new "Об’єднати переклади рядків"
|
||||
|
||||
# game/translations.rpy:203
|
||||
old "Replace existing translations"
|
||||
@@ -1567,27 +1571,27 @@ translate ukrainian strings:
|
||||
|
||||
# game/translations.rpy:263
|
||||
old "Ren'Py has finished generating [language] translations."
|
||||
new "Ren'Py завершив генерування перекладів мови: [language]."
|
||||
new "Ren'Py завершив генерування перекладів для мови: [language]."
|
||||
|
||||
# game/translations.rpy:276
|
||||
old "Ren'Py is extracting string translations..."
|
||||
new "Ren'Py витягує переклад рядків..."
|
||||
new "Ren'Py витягує переклади рядків..."
|
||||
|
||||
# game/translations.rpy:279
|
||||
old "Ren'Py has finished extracting [language] string translations."
|
||||
new "Ren'Py завершив витягування перекладу рядків мови: [language]."
|
||||
new "Ren'Py завершив витягування перекладів рядків для мови: [language]."
|
||||
|
||||
# game/translations.rpy:299
|
||||
old "Ren'Py is merging string translations..."
|
||||
new "Ren'Py об’єднує переклад рядків..."
|
||||
new "Ren'Py об’єднує переклади рядків..."
|
||||
|
||||
# game/translations.rpy:302
|
||||
old "Ren'Py has finished merging [language] string translations."
|
||||
new "Ren'Py завершив об’єднання перекладу рядків мови: [language]."
|
||||
new "Ren'Py завершив об’єднання перекладів рядків для мови: [language]."
|
||||
|
||||
# game/translations.rpy:313
|
||||
old "Updating default interface translations..."
|
||||
new "Оновлення стандартного перекладу інтерфейсу..."
|
||||
new "Оновлення стандартних перекладів інтерфейсу..."
|
||||
|
||||
# game/translations.rpy:342
|
||||
old "Extract Dialogue: [project.current.display_name!q]"
|
||||
@@ -1611,11 +1615,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/translations.rpy:381
|
||||
old "Escape quotes and other special characters."
|
||||
new "Лапки та інші спеціальні символи."
|
||||
new "Уникати лапки та інші спеціальні символи."
|
||||
|
||||
# game/translations.rpy:382
|
||||
old "Extract all translatable strings, not just dialogue."
|
||||
new "Витягнути всі рядки, які мона перекласти, а не лише діалоги."
|
||||
new "Витягнути всі рядки, які можна перекласти, а не лише діалоги."
|
||||
|
||||
# game/translations.rpy:391
|
||||
old "Language (or None for the default language):"
|
||||
@@ -1647,15 +1651,15 @@ translate ukrainian strings:
|
||||
|
||||
# game/updater.rpy:68
|
||||
old "Prerelease"
|
||||
new "Попередній випуск"
|
||||
new "Пре-випуск"
|
||||
|
||||
# game/updater.rpy:69
|
||||
old "Prerelease (Ren'Py 8, Python 3)"
|
||||
new "Попередній випуск (Ren'Py 8, Python 3)"
|
||||
new "Пре-випуск (Ren'Py 8, Python 3)"
|
||||
|
||||
# game/updater.rpy:70
|
||||
old "Prerelease (Ren'Py 7, Python 2)"
|
||||
new "Попередній випуск (Ren'Py 7, Python 2)"
|
||||
new "Пре-випуск (Ren'Py 7, Python 2)"
|
||||
|
||||
# game/updater.rpy:71
|
||||
old "A preview of the next version of Ren'Py that can be used for testing and taking advantage of new features, but not for final releases of games."
|
||||
@@ -1663,7 +1667,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/updater.rpy:73
|
||||
old "Experimental"
|
||||
new "Експериментальний"
|
||||
new "Експериментальна"
|
||||
|
||||
# game/updater.rpy:74
|
||||
old "Experimental versions of Ren'Py. You shouldn't select this channel unless asked by a Ren'Py developer."
|
||||
@@ -1671,19 +1675,23 @@ translate ukrainian strings:
|
||||
|
||||
# game/updater.rpy:76
|
||||
old "Nightly"
|
||||
new "Рання"
|
||||
new "Нічна"
|
||||
|
||||
# game/updater.rpy:77
|
||||
old "Nightly (Ren'Py 8, Python 3)"
|
||||
new "Рання (Ren'Py 8, Python 3)"
|
||||
new "Нічна (Ren'Py 8, Python 3)"
|
||||
|
||||
# game/updater.rpy:78
|
||||
old "Nightly (Ren'Py 7, Python 2)"
|
||||
new "Рання (Ren'Py 7, Python 2)"
|
||||
new "Нічна (Ren'Py 7, Python 2)"
|
||||
|
||||
# game/updater.rpy:79
|
||||
old "The bleeding edge of Ren'Py development. This may have the latest features, or might not run at all."
|
||||
new "Крайня точка розробки Ren'Py. Може мати найновіші функції, а може не працювати взагалі."
|
||||
new "Кривавий край розробки Ren'Py. Може мати найновіші функції, а може не працювати взагалі."
|
||||
|
||||
# game/updater.rpy:79
|
||||
old "A nightly build of fixes to the release version of Ren'Py."
|
||||
new "Нічна збірка виправлень до випускної версії Ren'Py."
|
||||
|
||||
# game/updater.rpy:96
|
||||
old "Select Update Channel"
|
||||
@@ -1691,7 +1699,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/updater.rpy:107
|
||||
old "The update channel controls the version of Ren'Py the updater will download."
|
||||
new "Канал оновлення визначає версію Ren'Py, яку завантажить оновлювач."
|
||||
new "Канал оновлення контролює версію Ren'Py, яку завантажить оновлювач."
|
||||
|
||||
# game/updater.rpy:115
|
||||
old "• {a=https://www.renpy.org/doc/html/changelog.html}View change log{/a}"
|
||||
@@ -1703,14 +1711,14 @@ translate ukrainian strings:
|
||||
|
||||
# game/updater.rpy:123
|
||||
old "• This version is installed and up-to-date."
|
||||
new "• Ця версія встановлена та актуальна."
|
||||
new "• Цю версію установлено та є актуальною."
|
||||
|
||||
# game/updater.rpy:135
|
||||
old "%B %d, %Y"
|
||||
new "%d %B, %Y"
|
||||
|
||||
# game/updater.rpy:157
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "Сталася помилка:"
|
||||
|
||||
# game/updater.rpy:159
|
||||
@@ -1743,15 +1751,15 @@ translate ukrainian strings:
|
||||
|
||||
# game/updater.rpy:173
|
||||
old "The update has been installed. Ren'Py will restart."
|
||||
new "Оновлення встановлено. Ren'Py перезапуститься."
|
||||
new "Оновлення було встановлено. Ren'Py перезапуститься."
|
||||
|
||||
# game/updater.rpy:175
|
||||
old "The update has been installed."
|
||||
new "Оновлення встановлено."
|
||||
new "Оновлення було встановлено."
|
||||
|
||||
# game/updater.rpy:177
|
||||
old "The update was cancelled."
|
||||
new "Оновлення скасовано."
|
||||
new "Оновлення було скасовано."
|
||||
|
||||
# game/updater.rpy:194
|
||||
old "Ren'Py Update"
|
||||
@@ -1795,7 +1803,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/web.rpy:332
|
||||
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', щоб ви могли налаштувати цю поведінку."
|
||||
new "Зображення та музики можуть бути завантажені під час гри. Буде створено файл «progressive_download.txt», щоб ви могли налаштувати цю поведінку."
|
||||
|
||||
# game/web.rpy:336
|
||||
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."
|
||||
@@ -1807,21 +1815,21 @@ translate ukrainian strings:
|
||||
|
||||
# game/web.rpy:344
|
||||
old "We will restore support in a future release of Ren'Py 8. Until then, please use Ren'Py 7 for web support."
|
||||
new "Ми відновимо підтримку в майбутньому випуску Ren'Py 8. До того часу використовуйте Ren'Py 7 для підтримки Web."
|
||||
new "Ми відновимо підтримку в майбутньому випуску Ren'Py 8. До того часу використовуйте Ren'Py 7 для вебпідтримки."
|
||||
|
||||
# game/web.rpy:348
|
||||
old "Before packaging web apps, you'll need to download RenPyWeb, Ren'Py's web support. Would you like to download RenPyWeb now?"
|
||||
new "Перш ніж створювати пакети вебзастосунки, вам потрібно буде завантажити RenPyWeb, вебпідтримку Ren'Py. Бажаєте завантажити RenPyWeb зараз?"
|
||||
new "Перш ніж створювати пакети вебзастосунків, вам потрібно буде завантажити RenPyWeb, вебпідтримку Ren'Py. Бажаєте завантажити RenPyWeb зараз?"
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# game/android.rpy:39
|
||||
old "RAPT has been installed, but a key hasn't been configured. Please generate new keys, or copy android.keystore and bundle.keystore to the base directory."
|
||||
new "RAPT встановлено, але ключ не налаштовано. Згенеруйте нові ключі або скопіюйте android.keystore та bundle.keystore до базової теки."
|
||||
new "RAPT встановлено, але ключ не налаштовано. Згенеруйте нові ключі або скопіюйте «android.keystore» та «bundle.keystore» до базової теки."
|
||||
|
||||
# game/android.rpy:46
|
||||
old "Attempts to emulate a televison-based Android console.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button."
|
||||
new "Спробує емулювати телевізійну приставку Android.\n\nВведення контролера налаштовано з клавішами зі стрілками, Enter як кнопку «Вибрати», ESC як кнопку «Меню», а PageUp як кнопку «Назад»."
|
||||
new "Спробує емулювати телевізійну приставку Android.\n\nВведення контролера налаштовано з клавішами стрілками, Enter як кнопку «Вибрати», ESC як кнопку «Меню», а PageUp як кнопку «Назад»."
|
||||
|
||||
# game/android.rpy:48
|
||||
old "Downloads and installs the Android SDK and supporting packages."
|
||||
@@ -1849,7 +1857,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:38
|
||||
old "Which app store would you like to support in-app purchasing through?"
|
||||
new "Через яку крамницю застосунків ви хотіли б підтримувати внутрішні покупки?"
|
||||
new "Через яку крамницю застосунків ви хотіли б підтримувати внутрішні придбання?"
|
||||
|
||||
# game/androidstrings.rpy:39
|
||||
old "Google Play."
|
||||
@@ -1869,7 +1877,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:63
|
||||
old "I found an android.keystore file in the rapt directory. Do you want to use this file?"
|
||||
new "Знайдено файл android.keystore у теці rapt. Бажаєте використовувати цей файл?"
|
||||
new "Знайдено файл «android.keystore» у теці «rapt». Бажаєте використовувати цей файл?"
|
||||
|
||||
# game/androidstrings.rpy:66
|
||||
old "\n\nSaying 'No' will prevent key creation."
|
||||
@@ -1877,7 +1885,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:69
|
||||
old "I found a bundle.keystore file in the rapt directory. Do you want to use this file?"
|
||||
new "Знайдено файл bundle.keystore у теці rapt. Бажаєте використовувати цей файл?"
|
||||
new "Знайдено файл «bundle.keystore» у теці «rapt». Бажаєте використовувати цей файл?"
|
||||
|
||||
# game/distribute_gui.rpy:231
|
||||
old "(DLC)"
|
||||
@@ -1885,18 +1893,12 @@ translate ukrainian strings:
|
||||
|
||||
# game/project.rpy:46
|
||||
old "Lint checks your game for potential mistakes, and gives you statistics."
|
||||
new "«Lint» перевіряє вашу гру на наявність потенційних помилок і надає вам статистику."
|
||||
new "Lint перевіряє вашу гру на наявність потенційних помилок і надає вам статистику."
|
||||
|
||||
# game/web.rpy:485
|
||||
old "Creating package..."
|
||||
new "Створення пакету..."
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# game/updater.rpy:79
|
||||
old "A nightly build of fixes to the release version of Ren'Py."
|
||||
new "Рання збірка виправлень до випуску версії Ren'Py."
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:46
|
||||
@@ -1905,7 +1907,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/androidstrings.rpy:47
|
||||
old "The version of Java on your computer does not appear to be JDK [JDK_REQUIREMENT], which is required to build Android apps. If you need to install a newer JDK, you can download it from:\n\n{a=https://adoptium.net/}https://adoptium.net/{/a}, and add it to your PATH.\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
|
||||
new "Версія Java на вашому ПК не є JDK [JDK_REQUIREMENT], яка необхідна для створення застосунків на Android. Якщо вам потрібно встановити новішу версію JDK, ви можете завантажити її з:\n\n{a=https://adoptium.net/}https://adoptium.net/{/a}, і додати до вашої змінни середовища PATH.\n\nВи також можете встановити змінну середовища JAVA_HOME для використання іншої версії Java."
|
||||
new "Версія Java на вашому ПК не є JDK [JDK_REQUIREMENT], яка необхідна для збірки застосунків на Android. Якщо вам потрібно встановити новішу версію JDK, ви можете завантажити її звідси:\n\n{a=https://adoptium.net/}https://adoptium.net/{/a}, і додати до вашої змінни середовища PATH.\n\nВи також можете встановити змінну середовища JAVA_HOME для використання іншої версії Java."
|
||||
|
||||
# game/choose_directory.rpy:72
|
||||
old "No directory was selected, but one is required."
|
||||
@@ -1921,11 +1923,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/distribute.rpy:543
|
||||
old "Building distributions failed:\n\nThe project is the Ren'Py Tutorial, which can't be distributed outside of Ren'Py. Consider using The Question as a test project."
|
||||
new "Помилка збірки дистрибутивів:\n\nПроєкт є навчальним посібником Ren'Py, який не може поширюватися за межами Ren'Py. Подумайте про використання «Запитання» як тестового проєкту."
|
||||
new "Помилка збірки файлів розповсюдження:\n\nПроєкт є навчальним посібником Ren'Py, який не може поширюватися за межами Ren'Py. Подумайте про проєкт «Запитання» як тестового проєкту."
|
||||
|
||||
# game/distribute.rpy:570
|
||||
old "This may be derived from build.name and config.version or build.version."
|
||||
new "Це може бути отримане з build.name та config.version або build.version."
|
||||
new "Це можна отримати з «build.name» та «config.version» або «build.version»."
|
||||
|
||||
# game/distribute.rpy:1606
|
||||
old "Finishing the [variant] [format] package."
|
||||
@@ -1933,11 +1935,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/editor.rpy:185
|
||||
old "Atom is deprecated and its bugs are known for corrupting games, using another editor is recommended."
|
||||
new "Atom застарілий, а його помилки, як відомо, призводять до пошкодження ігор, тому рекомендується використовувати інший редактор."
|
||||
new "Atom застарілий, а його помилки, як відомо, призводять до пошкодження ігор, тому рекомендуємо використовувати інший редактор."
|
||||
|
||||
# game/editor.rpy:214
|
||||
old "JEdit is deprecated, using another editor is recommended."
|
||||
new "JEdit застарілий, рекомендується використовувати інший редактор."
|
||||
new "JEdit застарілий, рекомендуємо використовувати інший редактор."
|
||||
|
||||
# game/editor.rpy:607
|
||||
old "The Atom text editor is no longer supported by its developers. We suggest switching to Visual Studio Code or another editor."
|
||||
@@ -1945,7 +1947,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/editor.rpy:607
|
||||
old "Select editor now."
|
||||
new "Обрати редактора зараз."
|
||||
new "Обрати редактор зараз."
|
||||
|
||||
# game/editor.rpy:607
|
||||
old "Ignore until next launch."
|
||||
@@ -1955,6 +1957,14 @@ translate ukrainian strings:
|
||||
old "Do not ask again."
|
||||
new "Не запитувати знову."
|
||||
|
||||
# game/editor.rpy:667
|
||||
old "You are using an old version of the Ren'Py Language support for Visual Studio Code. Would you like to upgrade?"
|
||||
new "Ви використовуєте стару версію підтримки мови Ren'Py для Visual Studio Code. Бажаєте оновити версію?"
|
||||
|
||||
# game/editor.rpy:667
|
||||
old "Upgrade."
|
||||
new "Оновити."
|
||||
|
||||
# game/install.rpy:186
|
||||
old "The {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} adds support for displaying Live2D models. Place CubismSdkForNative-{i}version{/i}.zip in the Ren'Py SDK directory, and then click Install. Distributing a game with Live2D requires you to accept a license from Live2D, Inc."
|
||||
new "{a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} додає підтримку відображення моделей Live2D. Розмістіть файл CubismSdkForNative-{i}версія{/i}.zip у теку Ren'Py SDK, і натисніть кнопку «Установити». Розповсюдження гри з Live2D вимагає від вас прийняття ліцензії від Live2D, Inc."
|
||||
@@ -1973,11 +1983,11 @@ translate ukrainian strings:
|
||||
|
||||
# game/preferences.rpy:95
|
||||
old "Lint"
|
||||
new "Lint"
|
||||
new "Перевірка скриптів (Lint)"
|
||||
|
||||
# game/preferences.rpy:234
|
||||
old "Game Options:"
|
||||
new "Параметри гри:"
|
||||
new "Параметри ігор:"
|
||||
|
||||
# game/preferences.rpy:241
|
||||
old "Skip splashscreen"
|
||||
@@ -1989,7 +1999,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/preferences.rpy:262
|
||||
old "Restore window position"
|
||||
new "Відновити положення вікна"
|
||||
new "Відновлювати позицію вікна"
|
||||
|
||||
# game/preferences.rpy:266
|
||||
old "Prefer RPU updates"
|
||||
@@ -2001,19 +2011,19 @@ translate ukrainian strings:
|
||||
|
||||
# game/preferences.rpy:364
|
||||
old "Lint toggles:"
|
||||
new "Lint перемикає:"
|
||||
new "Параметри перевірки скриптів (Lint):"
|
||||
|
||||
# game/preferences.rpy:368
|
||||
old "Check for orphan/obsolete translations"
|
||||
new "Перевірка «сирітських» / застарілих перекладів"
|
||||
new "Перевірка на наявність непотрібних/застарілих перекладів"
|
||||
|
||||
# game/preferences.rpy:371
|
||||
old "Check parameters shadowing reserved names"
|
||||
new "Перевірка параметрів затінення зарезервованих імен"
|
||||
new "Перевірка параметрів перезаписування зарезервованих імен"
|
||||
|
||||
# game/preferences.rpy:374
|
||||
old "Print block, word, and character counts by speaking character."
|
||||
new "Кількість блоків друку, слів і символів за кожним розмовним персонажем."
|
||||
new "Друкувати кількість блоків, слів і символів кожного персонажа."
|
||||
|
||||
# game/preferences.rpy:377
|
||||
old "Unclosed text tags"
|
||||
@@ -2021,7 +2031,7 @@ translate ukrainian strings:
|
||||
|
||||
# game/preferences.rpy:380
|
||||
old "Show all unreachable blocks and orphaned translations."
|
||||
new "Показувати всі недосяжні блоки та «осиротілі» переклади."
|
||||
new "Показувати всі недосяжні блоки та непотрібні переклади."
|
||||
|
||||
# game/project.rpy:776
|
||||
old "Splashscreen skipped in launcher preferences."
|
||||
@@ -2029,12 +2039,12 @@ translate ukrainian strings:
|
||||
|
||||
# game/updater.rpy:76
|
||||
old "Nightly Fix"
|
||||
new "Раннє виправлення"
|
||||
new "Нічне виправлення"
|
||||
|
||||
# game/updater.rpy:77
|
||||
old "Nightly Fix (Ren'Py 8, Python 3)"
|
||||
new "Раннє виправлення (Ren'Py 8, Python 3)"
|
||||
new "Нічне виправлення (Ren'Py 8, Python 3)"
|
||||
|
||||
# game/updater.rpy:78
|
||||
old "Nightly Fix (Ren'Py 7, Python 2)"
|
||||
new "Раннє виправлення (Ren'Py 7, Python 2)"
|
||||
new "Нічне виправлення (Ren'Py 7, Python 2)"
|
||||
|
||||
@@ -179,7 +179,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/options.rpy:183
|
||||
old "## Classify files as None to exclude them from the built distributions."
|
||||
new "## Для виключення файлів із збірок для розповсюдження, класифікуйте їх як «None»."
|
||||
new "## Для виключення файлів із збірки файлів розповсюдження, класифікуйте їх як «None»."
|
||||
|
||||
# gui/game/options.rpy:191
|
||||
old "## To archive files, classify them as 'archive'."
|
||||
@@ -197,10 +197,8 @@ translate ukrainian strings:
|
||||
old "## The username and project name associated with an itch.io project, separated by a slash."
|
||||
new "## Ім’я користувача та назва проєкту, пов’язані з проєктом itch.io, розділені скісною рискою."
|
||||
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# gui/game/options.rpy:203
|
||||
old "## A Google Play license key is required to perform in-app purchases. It can be found in the Google Play developer console, under \"Monetize\" > \"Monetization Setup\" > \"Licensing\"."
|
||||
new "## Для здійснення покупок у застосунку потрібен ліцензійний ключ Google Play. Його можна знайти в консолі розробника Google Play у розділі «Монетизація» > «Налаштування монетизації» > «Ліцензування»."
|
||||
|
||||
new "## Для здійснення внутрішньоігрового придбання потрібен ліцензійний ключ Google Play. Його можна знайти в консолі розробника Google Play у розділі «Монетизація» > «Налаштування монетизації» > «Ліцензування»."
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:9
|
||||
@@ -11,15 +11,15 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:85
|
||||
old "## Say screen"
|
||||
new "## Екран Say"
|
||||
new "## Екран промови"
|
||||
|
||||
# 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 "## Екран Say використовується для відображення діалогу гравцеві. Він приймає два параметри, who і what, ім’я персонажа, що говорить, і текст, який буде відображатися відповідно. (Параметр who може мати значення None, якщо ім’я не вказано.)"
|
||||
new "## Екран промови використовується для показу діалогу гравцеві. Він приймає два параметри, «who» та «what», ім’я персонажа й текст, який буде показано відповідно. (Параметр «who» може мати значення «None», якщо ім’я не вказано.)"
|
||||
|
||||
# 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 "## Цей екран має створювати текст, який можна відображати з ідентифікатором «what», оскільки Ren'Py використовує це для керування відображенням тексту. Він також може створювати відображувані елементи з ідентифікаторами «who» та «window» для застосування властивостей стилю."
|
||||
new "## Цей екран має створювати текст з ідентифікатором «what», оскільки Ren'Py використовує його для керування показу тексту. Він також може створювати елементи з ідентифікаторами «who» та «window» для застосування властивостей стилю."
|
||||
|
||||
# gui/game/screens.rpy:96
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#say"
|
||||
@@ -39,11 +39,11 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:167
|
||||
old "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
|
||||
new "## Цей екран використовується для відображення renpy.input. Параметр prompt використовується для передачі текстової підказки."
|
||||
new "## Цей екран використовується для показу «renpy.input». Параметр «prompt» використовується для передачі текстової підказки."
|
||||
|
||||
# gui/game/screens.rpy:170
|
||||
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
|
||||
new "## Цей екран має створити відображуваний вхід з ідентифікатором «input» для прийняття різних вхідних параметрів."
|
||||
new "## Цей екран має створити введення з ідентифікатором «input» для прийняття різних параметрів введення."
|
||||
|
||||
# gui/game/screens.rpy:173
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#input"
|
||||
@@ -55,7 +55,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:202
|
||||
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 "## Цей екран використовується для відображення вибору в грі, представленого командою 'menu'. Один параметр, 'items' — це список об’єктів, кожен із полями заголовка та дії."
|
||||
new "## Цей екран використовується для показу ігрових варіантів вибору, представлених оператором «menu». Один параметр, «items», являє собою список об’єктів, кожен з яких має підпис і поле дії."
|
||||
|
||||
# gui/game/screens.rpy:206
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#choice"
|
||||
@@ -67,11 +67,11 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:236
|
||||
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
|
||||
new "## Швидке меню відображається в грі, щоб забезпечити легкий доступ до меню поза грою."
|
||||
new "## Швидке меню показується у грі, щоб забезпечити легкий доступ до меню поза грою."
|
||||
|
||||
# gui/game/screens.rpy:241
|
||||
old "## Ensure this appears on top of other screens."
|
||||
new "## Переконайтеся, що це відображається поверх інших екранів."
|
||||
new "## Переконайтеся, що воно показується поверх інших екранів."
|
||||
|
||||
# gui/game/screens.rpy:252
|
||||
old "Back"
|
||||
@@ -83,7 +83,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:254
|
||||
old "Skip"
|
||||
new "Пропустити"
|
||||
new "Пропускати"
|
||||
|
||||
# gui/game/screens.rpy:255
|
||||
old "Auto"
|
||||
@@ -107,7 +107,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:262
|
||||
old "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
|
||||
new "## Цей код гарантує, що екран quick_menu відображається в грі, якщо гравець явно не приховав інтерфейс."
|
||||
new "## Цей код гарантує, що екран «quick_menu» показується у грі, якщо гравець не приховав інтерфейс явно."
|
||||
|
||||
# gui/game/screens.rpy:280
|
||||
old "## Main and Game Menu Screens"
|
||||
@@ -119,7 +119,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:285
|
||||
old "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
|
||||
new "## Цей екран включено в головне та ігрове меню та забезпечує навігацію до інших меню та початок гри."
|
||||
new "## Цей екран включено в головне та ігрове меню і забезпечує навігацію до інших меню та початку гри."
|
||||
|
||||
# gui/game/screens.rpy:300
|
||||
old "Start"
|
||||
@@ -147,7 +147,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:324
|
||||
old "## Help isn't necessary or relevant to mobile devices."
|
||||
new "## Допомога не є необхідною або актуальною для мобільних пристроїв."
|
||||
new "## Довідка не є необхідною або доречною для мобільних пристроїв."
|
||||
|
||||
# gui/game/screens.rpy:325
|
||||
old "Help"
|
||||
@@ -155,7 +155,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:329
|
||||
old "## The quit button is banned on iOS and unnecessary on Android and Web."
|
||||
new "## Кнопка виходу заборонена на iOS і непотрібна на Android і в Web."
|
||||
new "## Кнопка виходу заборонена на iOS й непотрібна на Android та Web."
|
||||
|
||||
# gui/game/screens.rpy:330
|
||||
old "Quit"
|
||||
@@ -167,7 +167,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:346
|
||||
old "## Used to display the main menu when Ren'Py starts."
|
||||
new "## Використовується для відображення головного меню під час запуску Ren'Py."
|
||||
new "## Використовується для показу головного меню під час запуску Ren'Py."
|
||||
|
||||
# gui/game/screens.rpy:348
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#main-menu"
|
||||
@@ -183,19 +183,19 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:361
|
||||
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
|
||||
new "## Інструкція використання включає інший екран всередині цього. Фактичний вміст головного меню знаходиться на екрані навігації."
|
||||
new "## Оператор «use» включає інший екран усередині цього. Фактичний вміст головного меню знаходиться на екрані навігації."
|
||||
|
||||
# gui/game/screens.rpy:406
|
||||
old "## Game Menu screen"
|
||||
new "## Екран меню гри"
|
||||
new "## Екран ігрового меню"
|
||||
|
||||
# gui/game/screens.rpy:408
|
||||
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 "## Це описує базову структуру екрана меню гри. Він викликається за допомогою заголовка екрана та відображає тло, заголовок і навігацію."
|
||||
new "## Тут викладено основну загальну структуру екрана ігрового меню. Він викликається заголовком екрана і показує тло, заголовок і навігацію."
|
||||
|
||||
# gui/game/screens.rpy:411
|
||||
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". This screen is intended to be used with one or more children, which are transcluded (placed) inside it."
|
||||
new "## Параметр прокручування може бути None або одним із «viewport» чи «vpgrid». Цей екран призначений для використання з одним або декількома об’єктами, які включені (розміщені) всередині нього."
|
||||
new "## Параметр «scroll» може мати значення «None» або один з «viewport» чи «vpgrid». Цей екран призначений для використання з одним або декількома об’єктами, які включені (розміщені) всередині нього."
|
||||
|
||||
# gui/game/screens.rpy:429
|
||||
old "## Reserve space for the navigation section."
|
||||
@@ -211,7 +211,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:536
|
||||
old "## This screen gives credit and copyright information about the game and Ren'Py."
|
||||
new "## Цей екран містить інформацію про авторство та авторські права щодо гри та Ren'Py."
|
||||
new "## Цей екран містить інформацію про авторів та авторські права щодо гри та Ren'Py."
|
||||
|
||||
# gui/game/screens.rpy:539
|
||||
old "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
|
||||
@@ -219,7 +219,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:546
|
||||
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 "## Цей оператор використання включає екран «game_menu» всередині цього. Потім дочірній елемент «vbox» включається в область перегляду всередині екрана «game_menu»."
|
||||
new "## Цей оператор «use» включає екран «game_menu» всередині цього. Потім дочірній елемент «vbox» буде включено до «viewport» всередині екрана «game_menu»."
|
||||
|
||||
# gui/game/screens.rpy:556
|
||||
old "Version [config.version!t]\n"
|
||||
@@ -227,7 +227,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:558
|
||||
old "## gui.about is usually set in options.rpy."
|
||||
new "## «gui.about» зазвичай встановлюється в «options.rpy»."
|
||||
new "## Значення «gui.about» зазвичай задається у файлі «options.rpy»."
|
||||
|
||||
# gui/game/screens.rpy:562
|
||||
old "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
|
||||
@@ -259,7 +259,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:604
|
||||
old "## This ensures the input will get the enter event before any of the buttons do."
|
||||
new "## Це гарантує, що введення отримає подію «enter» раніше, ніж будь-яка кнопка."
|
||||
new "## Це гарантує, що введення отримає подію входу раніше, ніж будь-яка кнопка."
|
||||
|
||||
# gui/game/screens.rpy:608
|
||||
old "## The page name, which can be edited by clicking on a button."
|
||||
@@ -267,11 +267,11 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:620
|
||||
old "## The grid of file slots."
|
||||
new "## Сітка комірок для файлів."
|
||||
new "## Сітка комірок збережень."
|
||||
|
||||
# gui/game/screens.rpy:640
|
||||
old "{#file_time}%A, %B %d %Y, %H:%M"
|
||||
new "{#file_time}%A, %B %d %Y, %H:%M"
|
||||
new "{#file_time}%A, %d %B %Y, %H:%M"
|
||||
|
||||
# gui/game/screens.rpy:640
|
||||
old "empty slot"
|
||||
@@ -279,7 +279,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:648
|
||||
old "## Buttons to access other pages."
|
||||
new "## Кнопки для доступу до інших сторінок."
|
||||
new "## Кнопки для відкриття інших сторінок."
|
||||
|
||||
# gui/game/screens.rpy:657
|
||||
old "<"
|
||||
@@ -295,7 +295,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:665
|
||||
old "## range(1, 10) gives the numbers from 1 to 9."
|
||||
new "## range(1, 10) дає числа від 1 до 9."
|
||||
new "## range(1, 10) повертає числа від 1 до 9."
|
||||
|
||||
# gui/game/screens.rpy:669
|
||||
old ">"
|
||||
@@ -339,11 +339,11 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:737
|
||||
old "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
|
||||
new "## Сюди можна долучити додаткові вікна vbox типу «radio_pref» або «check_pref», щоб долучити додаткові параметри, визначені творцем."
|
||||
new "## Сюди можна додати додаткові vbox'и типу «radio_pref» або «check_pref», щоб додати додаткові налаштування, визначені автором."
|
||||
|
||||
# gui/game/screens.rpy:748
|
||||
old "Text Speed"
|
||||
new "Швидкість тексту"
|
||||
new "Швидкість друку тексту"
|
||||
|
||||
# gui/game/screens.rpy:752
|
||||
old "Auto-Forward Time"
|
||||
@@ -355,7 +355,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:766
|
||||
old "Sound Volume"
|
||||
new "Гучність звук. ефектів"
|
||||
new "Гучність звукових ефектів"
|
||||
|
||||
# gui/game/screens.rpy:772
|
||||
old "Test"
|
||||
@@ -375,7 +375,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:865
|
||||
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 "## Це екран, на якому гравцеві відображається історія діалогів. Хоча в цьому екрані немає нічого особливого, він має доступ до історії діалогів, що зберігається в _history_list."
|
||||
new "## Це екран, на якому гравцеві буде показано історію діалогів. Хоч й в цьому екрані немає нічого особливого, він має мати доступ до історії діалогів, що зберігається в «_history_list»."
|
||||
|
||||
# gui/game/screens.rpy:869
|
||||
old "## https://www.renpy.org/doc/html/history.html"
|
||||
@@ -383,15 +383,15 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:875
|
||||
old "## Avoid predicting this screen, as it can be very large."
|
||||
new "## Не намагайтеся передбачити цей екран, оскільки він може бути дуже великим."
|
||||
new "## Уникайте виклику цього екрану, оскільки він може бути дуже великим."
|
||||
|
||||
# gui/game/screens.rpy:886
|
||||
old "## This lays things out properly if history_height is None."
|
||||
new "## Тут все буде правильно, якщо history_height дорівнює None."
|
||||
new "## Тут усе буде показано правильно, якщо «history_height» дорівнює «None»."
|
||||
|
||||
# gui/game/screens.rpy:896
|
||||
old "## Take the color of the who text from the Character, if set."
|
||||
new "## Бере колір тексту who з Character, якщо він заданий."
|
||||
new "## Бере колір тексту «who» з «Character», якщо він заданий."
|
||||
|
||||
# gui/game/screens.rpy:905
|
||||
old "The dialogue history is empty."
|
||||
@@ -399,7 +399,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:908
|
||||
old "## This determines what tags are allowed to be displayed on the history screen."
|
||||
new "## Це визначає теги, які можна відображати на екрані історії."
|
||||
new "## Визначає, які теги дозволено показувати на екрані історії."
|
||||
|
||||
# gui/game/screens.rpy:953
|
||||
old "## Help screen"
|
||||
@@ -407,7 +407,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:955
|
||||
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 "## Екран, що надає інформацію про прив’язку клавіш і миші. Він використовує інші екрани (keyboard_help, mouse_help і gamepad_help), щоб відобразити фактичну довідку."
|
||||
new "## Екран, що надає інформацію про призначення клавіш і миші. Він використовує інші екрани (keyboard_help, mouse_help та gamepad_help), щоб показати саму довідку."
|
||||
|
||||
# gui/game/screens.rpy:974
|
||||
old "Keyboard"
|
||||
@@ -439,7 +439,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:999
|
||||
old "Arrow Keys"
|
||||
new "Клавіші зі стрілками"
|
||||
new "Клавіші стрілок"
|
||||
|
||||
# gui/game/screens.rpy:1000
|
||||
old "Navigate the interface."
|
||||
@@ -451,7 +451,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1004
|
||||
old "Accesses the game menu."
|
||||
new "Доступ до меню гри."
|
||||
new "Відкриває ігрове меню."
|
||||
|
||||
# gui/game/screens.rpy:1007
|
||||
old "Ctrl"
|
||||
@@ -467,7 +467,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1012
|
||||
old "Toggles dialogue skipping."
|
||||
new "Вмикає пропуск діалогу."
|
||||
new "Перемикає пропуск діалогу."
|
||||
|
||||
# gui/game/screens.rpy:1015
|
||||
old "Page Up"
|
||||
@@ -475,7 +475,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1016
|
||||
old "Rolls back to earlier dialogue."
|
||||
new "Відкат до попереднього діалогу."
|
||||
new "Відкатує до попереднього діалогу."
|
||||
|
||||
# gui/game/screens.rpy:1019
|
||||
old "Page Down"
|
||||
@@ -483,7 +483,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1020
|
||||
old "Rolls forward to later dialogue."
|
||||
new "Перехід до наступного діалогу."
|
||||
new "Переходить до наступного діалогу."
|
||||
|
||||
# gui/game/screens.rpy:1024
|
||||
old "Hides the user interface."
|
||||
@@ -503,15 +503,15 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1042
|
||||
old "Left Click"
|
||||
new "ЛКМ"
|
||||
new "Ліва кнопка миші"
|
||||
|
||||
# gui/game/screens.rpy:1046
|
||||
old "Middle Click"
|
||||
new "СКМ"
|
||||
new "Середня кнопка миші"
|
||||
|
||||
# gui/game/screens.rpy:1050
|
||||
old "Right Click"
|
||||
new "ПКМ"
|
||||
new "Права кнопка миші"
|
||||
|
||||
# gui/game/screens.rpy:1054
|
||||
old "Mouse Wheel Up"
|
||||
@@ -523,7 +523,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1065
|
||||
old "Right Trigger\nA/Bottom Button"
|
||||
new "Правий тригер\nA/Нижня кнопка"
|
||||
new "Правий тригер\nКнопка A/Униз"
|
||||
|
||||
# gui/game/screens.rpy:1069
|
||||
old "Left Trigger\nLeft Shoulder"
|
||||
@@ -535,7 +535,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1078
|
||||
old "D-Pad, Sticks"
|
||||
new "Хрестовина, Стики"
|
||||
new "Хрестовина, стики"
|
||||
|
||||
# gui/game/screens.rpy:1082
|
||||
old "Start, Guide"
|
||||
@@ -543,7 +543,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1086
|
||||
old "Y/Top Button"
|
||||
new "Y/Верхня кнопка"
|
||||
new "Кнопка Y/Угору"
|
||||
|
||||
# gui/game/screens.rpy:1089
|
||||
old "Calibrate"
|
||||
@@ -551,7 +551,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1098
|
||||
old "Start, Guide, B/Right Button"
|
||||
new "Кнопка Start, Guide, B/Управо"
|
||||
new "Start, Guide, Кнопка B/Управо"
|
||||
|
||||
# gui/game/screens.rpy:1117
|
||||
old "## Additional screens"
|
||||
@@ -563,7 +563,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1123
|
||||
old "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
|
||||
new "## Екран підтвердження викликається, коли Ren'Py хоче поставити гравцеві запитання «Так» або «Ні»."
|
||||
new "## Екран підтвердження викликається, коли Ren'Py хоче поставити гравцеві запитання з відповіддю «Так» або «Ні»."
|
||||
|
||||
# gui/game/screens.rpy:1126
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#confirm"
|
||||
@@ -571,7 +571,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1130
|
||||
old "## Ensure other screens do not get input while this screen is displayed."
|
||||
new "## Переконайтеся, що інші екрани не отримують введення, поки відображається цей екран."
|
||||
new "## Переконайтеся, що на інші екранах не отримується введення під час показу цього екрана."
|
||||
|
||||
# gui/game/screens.rpy:1154
|
||||
old "Yes"
|
||||
@@ -583,7 +583,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1157
|
||||
old "## Right-click and escape answer \"no\"."
|
||||
new "## Клацніть ПКМ та вийдіть із відповіді «Ні»."
|
||||
new "## Клацніть ПКМ й оберіть відповідь «Ні»."
|
||||
|
||||
# gui/game/screens.rpy:1184
|
||||
old "## Skip indicator screen"
|
||||
@@ -591,7 +591,7 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1186
|
||||
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
|
||||
new "## Екран skip_indicator відображається, щоб вказати, що триває пропуск."
|
||||
new "## Екран «skip_indicator» показується, що вказати на те, що виконується пропуск."
|
||||
|
||||
# gui/game/screens.rpy:1189
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
|
||||
@@ -603,19 +603,19 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1208
|
||||
old "## This transform is used to blink the arrows one after another."
|
||||
new "## Це перетворення використовується для миготіння стрілок одна за одною."
|
||||
new "## Це перетворення використовується для блимання стрілок одна за одною."
|
||||
|
||||
# gui/game/screens.rpy:1235
|
||||
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
|
||||
new "## Ми повинні використовувати шрифт із гліфом МАЛЕНЬКИЙ ЧОРНИЙ ТРИКУТНИК ВПРАВО."
|
||||
new "## Ми маємо використовувати шрифт, в якому є гліф «BLACK RIGHT-POINTING SMALL TRIANGLE»."
|
||||
|
||||
# gui/game/screens.rpy:1240
|
||||
old "## Notify screen"
|
||||
new "## Екран сповіщень"
|
||||
new "## Екран оповіщення"
|
||||
|
||||
# gui/game/screens.rpy:1242
|
||||
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 "## Екран сповіщень використовується, щоб показати гравцеві повідомлення. (Наприклад, коли гра швидко збережена або зроблено знімок екрана.)"
|
||||
new "## Екран оповіщення використовується, щоб показати гравцеві повідомлення. (Наприклад, коли гру збережено або зроблено знімок екрана)."
|
||||
|
||||
# gui/game/screens.rpy:1245
|
||||
old "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
|
||||
@@ -635,15 +635,15 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1294
|
||||
old "## Displays dialogue in either a vpgrid or the vbox."
|
||||
new "## Відображає діалог у vpgrid або vbox."
|
||||
new "## Показує діалог у типі «vpgrid» або «vbox»."
|
||||
|
||||
# gui/game/screens.rpy:1307
|
||||
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True."
|
||||
new "## Відображає меню, якщо є. Меню може відображатися неправильно, якщо для config.narrator_menu задано значення True."
|
||||
new "## Показує меню, якщо його задано. Меню може показуватися некоректно, якщо «config.narrator_menu» має значення «True»."
|
||||
|
||||
# gui/game/screens.rpy:1337
|
||||
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
|
||||
new "## Це визначає максимальну кількість записів у режимі NVL, які можуть бути відображені одночасно."
|
||||
new "## Цей параметр контролює максимальну кількість реплік у режимі NVL, які можуть бути показані одночасно."
|
||||
|
||||
# gui/game/screens.rpy:1399
|
||||
old "## Mobile Variants"
|
||||
@@ -669,11 +669,11 @@ translate ukrainian strings:
|
||||
|
||||
# gui/game/screens.rpy:1410
|
||||
old "## Bubble screen"
|
||||
new "## Екран з бульбашками"
|
||||
new "## Екран бульбашок"
|
||||
|
||||
# gui/game/screens.rpy:1412
|
||||
old "## The bubble screen is used to display dialogue to the player when using speech bubbles. The bubble screen takes the same parameters as the say screen, must create a displayable with the id of \"what\", and can create displayables with the \"namebox\", \"who\", and \"window\" ids."
|
||||
new "## Екран бульбашок використовується для показу діалогу гравцеві під час використання мовних бульбашок. Екран бульбашок має ті самі параметри, що й екран слів, має створювати елемент відображення з ідентифікатором «what», а також може створювати елементи відображення з ідентифікаторами «namebox», «who» і «window»."
|
||||
new "## Екран бульбашок використовується для показу діалогу гравцеві під час використання мовних бульбашок. Екран бульбашок має ті самі параметри, що й екран промови, має створювати об’єкт з ідентифікатором «what», а також може створювати об’єкти з ідентифікаторами «namebox», «who» і «window»."
|
||||
|
||||
# gui/game/screens.rpy:1417
|
||||
old "## https://www.renpy.org/doc/html/bubble.html#bubble-screen"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# У цьому файлі міститься скрипт гри.
|
||||
# У цьому файлі міститься сценарій гри.
|
||||
|
||||
# Оголошення персонажів, які використовуються в цій грі. Колірний аргумент розфарбовує
|
||||
# ім’я персонажа.
|
||||
# Визначення персонажів для гри.
|
||||
# Аргумент color змінює колір ім’я персонажа.
|
||||
|
||||
define e = Character("Ейлін")
|
||||
|
||||
@@ -10,23 +10,23 @@ define e = Character("Ейлін")
|
||||
|
||||
label start:
|
||||
|
||||
# Це показує тло. За стандратом використовується заповнювач, але ви можете
|
||||
# Показ тла. Типово використовується заповнювач, але ви можете
|
||||
# додати файл (з назвою «bg room.png» або «bg room.jpg») до
|
||||
# теки images, щоб показати його.
|
||||
|
||||
scene bg room
|
||||
|
||||
# Це показує спрайт персонажа. Використовується заповнювач, але ви можете
|
||||
# замінити його, додавши до зображень файл із назвою «eileen happy.png».
|
||||
# до теки.
|
||||
# Наступний рядок показує спрайт персонажа. Тут використано заповнювач,
|
||||
# але ви можете замінити його, додавши файл з назвою «eileen happy.png»,
|
||||
# до теки images.
|
||||
|
||||
show eileen happy
|
||||
|
||||
# Це репліки діалогу.
|
||||
# Ці рядки показують репліки діалогу.
|
||||
|
||||
e "Ви створили нову гру Ren'Py."
|
||||
|
||||
e "Додавши історію, зображення та музику, ви можете оприлюднити це світові!"
|
||||
e "Додавши сюжет, зображення та музику, ви зможете оприлюднити її світові!"
|
||||
|
||||
# На цьому гра закінчується.
|
||||
|
||||
|
||||
@@ -364,7 +364,7 @@
|
||||
new "{b}Khuyến khích{/b} Một trình biên tập có giao diện thân thiện và chức năng hỗ trợ phát triển, chẳng hạn như kiểm tra lỗi chính tả. Editra hiện đang thiếu sự hỗ trợ IME cần thiết để nhập văn bản Trung Quốc, Nhật Bản, và Hàn Quốc. Với Linux Editra cần thêm wxPython."
|
||||
|
||||
# editor.rpy:167
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
old "This may have occurred because wxPython is not installed on this system."
|
||||
new "Lỗi xảy ra có thể là do wxPython chưa được cài đặt vào hệ thống."
|
||||
|
||||
# editor.rpy:169
|
||||
@@ -380,7 +380,7 @@
|
||||
new "Cần tải về 1.8 MB tập tin"
|
||||
|
||||
# editor.rpy:182
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
old "This may have occurred because Java is not installed on this system."
|
||||
new "Lỗi xảy ra có thể là do Java chưa được cài đặt vào hệ thống."
|
||||
|
||||
# editor.rpy:191
|
||||
@@ -392,7 +392,7 @@
|
||||
new "Chặn Ren'py mở một trình biên tập văn bản"
|
||||
|
||||
# editor.rpy:359
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
old "An exception occurred while launching the text editor:\n[exception!q]"
|
||||
new "Một lỗi xuất hiện khi đang mở trình biên tập văn bản:\n[exception!q]"
|
||||
|
||||
# editor.rpy:457
|
||||
@@ -608,7 +608,7 @@
|
||||
new "LỖI"
|
||||
|
||||
# interface.rpy:356
|
||||
old "While [what!qt], an error occured:"
|
||||
old "While [what!qt], an error occurred:"
|
||||
new "Trong khi [what!qt], một lỗi xảy ra:"
|
||||
|
||||
# interface.rpy:356
|
||||
@@ -1136,7 +1136,7 @@
|
||||
new "Rìa gần nhất tới sự phát triển của Ren'Py. Nó có thể chứa các tính năng mới nhất hoặc chẳng chạy được luôn."
|
||||
|
||||
# updater.rpy:152
|
||||
old "An error has occured:"
|
||||
old "An error has occurred:"
|
||||
new "Một lỗi đã xảy ra:"
|
||||
|
||||
# updater.rpy:154
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -159,7 +159,7 @@ screen updater:
|
||||
has vbox
|
||||
|
||||
if u.state == u.ERROR:
|
||||
text _("An error has occured:")
|
||||
text _("An error has occurred:")
|
||||
elif u.state == u.CHECKING:
|
||||
text _("Checking for updates.")
|
||||
elif u.state == u.UPDATE_NOT_AVAILABLE:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -55,7 +55,7 @@ init -1 python in util:
|
||||
|
||||
for subdir, directories, files in os.walk(directory):
|
||||
for fn in directories:
|
||||
if not isinstance(fn, unicode):
|
||||
if not isinstance(fn, str):
|
||||
continue
|
||||
|
||||
fullfn = os.path.join(subdir, fn)
|
||||
@@ -66,7 +66,7 @@ init -1 python in util:
|
||||
yield relfn, True
|
||||
|
||||
for fn in files:
|
||||
if not isinstance(fn, unicode):
|
||||
if not isinstance(fn, str):
|
||||
continue
|
||||
|
||||
fullfn = os.path.join(subdir, fn)
|
||||
|
||||
+11
-16
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
@@ -440,13 +440,12 @@ init python:
|
||||
# Find the presplash and copy it over.
|
||||
presplash = None
|
||||
|
||||
if not PY2:
|
||||
for fn in [ "web-presplash.png", "web-presplash.jpg", "web-presplash.webp" ]:
|
||||
fullfn = os.path.join(project.current.path, fn)
|
||||
for fn in [ "web-presplash.png", "web-presplash.jpg", "web-presplash.webp" ]:
|
||||
fullfn = os.path.join(project.current.path, fn)
|
||||
|
||||
if os.path.exists(fullfn):
|
||||
presplash = fn
|
||||
break
|
||||
if os.path.exists(fullfn):
|
||||
presplash = fn
|
||||
break
|
||||
|
||||
if presplash:
|
||||
os.unlink(os.path.join(destination, "web-presplash.jpg"))
|
||||
@@ -456,20 +455,16 @@ init python:
|
||||
with io.open(os.path.join(WEB_PATH, "index.html"), encoding='utf-8') as f:
|
||||
html = f.read()
|
||||
|
||||
if PY2:
|
||||
html = html.replace("%%TITLE%%", display_name)
|
||||
else:
|
||||
html = html.replace("Ren'Py Web Game", display_name)
|
||||
html = html.replace("Ren'Py Web Game", display_name)
|
||||
|
||||
if presplash:
|
||||
html = html.replace("web-presplash.jpg", presplash)
|
||||
if presplash:
|
||||
html = html.replace("web-presplash.jpg", presplash)
|
||||
|
||||
with io.open(os.path.join(destination, "index.html"), "w", encoding='utf-8') as f:
|
||||
f.write(html)
|
||||
|
||||
if not PY2:
|
||||
generate_web_icons(p, destination)
|
||||
prepare_pwa_files(p, destination)
|
||||
generate_web_icons(p, destination)
|
||||
prepare_pwa_files(p, destination)
|
||||
|
||||
# Zip up the game.
|
||||
|
||||
|
||||
@@ -17,6 +17,8 @@ root = ""
|
||||
|
||||
import renpy
|
||||
|
||||
class BannedException(Exception):
|
||||
pass
|
||||
|
||||
class WebHandler(http.server.BaseHTTPRequestHandler):
|
||||
|
||||
@@ -59,7 +61,13 @@ class WebHandler(http.server.BaseHTTPRequestHandler):
|
||||
None, in which case the caller has nothing further to do.
|
||||
|
||||
"""
|
||||
path = self.translate_path(self.path)
|
||||
|
||||
try:
|
||||
path = self.translate_path(self.path)
|
||||
except BannedException:
|
||||
self.send_error(403, "File not found")
|
||||
return None
|
||||
|
||||
f = None
|
||||
if os.path.isdir(path):
|
||||
parts = urllib.parse.urlsplit(self.path)
|
||||
@@ -192,6 +200,9 @@ class WebHandler(http.server.BaseHTTPRequestHandler):
|
||||
path = root
|
||||
|
||||
for word in words:
|
||||
if word.startswith("."):
|
||||
raise BannedException("Invalid path.")
|
||||
|
||||
if os.path.dirname(word) or word in (os.curdir, os.pardir):
|
||||
# Ignore components that are not a simple file/directory name
|
||||
continue
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
_renpy gen/_renpy.c IMG_savepng.c core.c
|
||||
_renpybidi gen/_renpybidi.c renpybidicore.c
|
||||
renpy.audio.renpysound gen/renpy.audio.renpysound.c renpysound_core.c ffmedia.c
|
||||
renpy.audio.filter gen/renpy.audio.filter.c
|
||||
renpy.lexersupport gen/renpy.lexersupport.c
|
||||
renpy.pydict gen/renpy.pydict.c
|
||||
renpy.style gen/renpy.style.c
|
||||
renpy.encryption gen/renpy.encryption.c
|
||||
renpy.compat.dictviews gen/renpy.compat.dictviews.c
|
||||
renpy.styledata.styleclass gen/renpy.styledata.styleclass.c
|
||||
renpy.styledata.stylesets gen/renpy.styledata.stylesets.c
|
||||
renpy.styledata.style_selected_hover_functions gen/renpy.styledata.style_selected_hover_functions.c
|
||||
renpy.styledata.style_selected_idle_functions gen/renpy.styledata.style_selected_idle_functions.c
|
||||
renpy.styledata.style_selected_insensitive_functions gen/renpy.styledata.style_selected_insensitive_functions.c
|
||||
renpy.styledata.style_selected_functions gen/renpy.styledata.style_selected_functions.c
|
||||
renpy.styledata.style_hover_functions gen/renpy.styledata.style_hover_functions.c
|
||||
renpy.styledata.style_idle_functions gen/renpy.styledata.style_idle_functions.c
|
||||
renpy.styledata.style_insensitive_functions gen/renpy.styledata.style_insensitive_functions.c
|
||||
renpy.styledata.style_functions gen/renpy.styledata.style_functions.c
|
||||
renpy.styledata.style_activate_functions gen/renpy.styledata.style_activate_functions.c
|
||||
renpy.styledata.style_selected_activate_functions gen/renpy.styledata.style_selected_activate_functions.c
|
||||
renpy.display.matrix gen/renpy.display.matrix.c
|
||||
renpy.display.render gen/renpy.display.render.c
|
||||
renpy.display.accelerator gen/renpy.display.accelerator.c
|
||||
renpy.display.quaternion gen/renpy.display.quaternion.c
|
||||
renpy.uguu.gl gen/renpy.uguu.gl.c
|
||||
renpy.uguu.uguu gen/renpy.uguu.uguu.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
|
||||
renpy.gl.glrtt_copy gen/renpy.gl.glrtt_copy.c
|
||||
renpy.gl.glrtt_fbo gen/renpy.gl.glrtt_fbo.c
|
||||
renpy.gl2.gl2mesh gen/renpy.gl2.gl2mesh.c
|
||||
renpy.gl2.gl2mesh2 gen/renpy.gl2.gl2mesh2.c
|
||||
renpy.gl2.gl2mesh3 gen/renpy.gl2.gl2mesh3.c
|
||||
renpy.gl2.gl2polygon gen/renpy.gl2.gl2polygon.c
|
||||
renpy.gl2.gl2model gen/renpy.gl2.gl2model.c
|
||||
renpy.gl2.gl2draw gen/renpy.gl2.gl2draw.c
|
||||
renpy.gl2.gl2texture gen/renpy.gl2.gl2texture.c
|
||||
renpy.gl2.gl2shader gen/renpy.gl2.gl2shader.c
|
||||
renpy.gl2.live2dmodel gen/renpy.gl2.live2dmodel.c
|
||||
renpy.text.textsupport gen/renpy.text.textsupport.c
|
||||
renpy.text.texwrap gen/renpy.text.texwrap.c
|
||||
renpy.text.ftfont gen/renpy.text.ftfont.c ftsupport.c ttgsubtable.c
|
||||
renpy.text.hbfont gen/renpy.text.hbfont.c
|
||||
@@ -1 +0,0 @@
|
||||
_renpytfd gen/_renpytfd.c tinyfiledialogs/tinyfiledialogs.c
|
||||
-219
@@ -1,219 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Copyright 2004-2024 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.
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import platform
|
||||
import sys
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
import future
|
||||
|
||||
# Change to the directory containing this file.
|
||||
BASE = os.path.abspath(os.path.dirname(sys.argv[0]))
|
||||
os.chdir(BASE)
|
||||
|
||||
# Create the gen directory if it doesn't exist.
|
||||
try:
|
||||
os.makedirs("gen")
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# Generate styles.
|
||||
import generate_styles
|
||||
generate_styles.generate()
|
||||
|
||||
# If RENPY_CC or RENPY_LD are in the environment, and CC or LD are not, use them.
|
||||
def setup_env(name):
|
||||
renpy_name = "RENPY_" + name
|
||||
if (renpy_name in os.environ) and (name not in os.environ):
|
||||
os.environ[name] = os.environ[renpy_name]
|
||||
|
||||
|
||||
setup_env("CC")
|
||||
setup_env("LD")
|
||||
setup_env("CXX")
|
||||
|
||||
import setuplib
|
||||
from setuplib import android, ios, emscripten, raspi, include, library, cython, cmodule, copyfile, find_unnecessary_gen, generate_all_cython, PY2
|
||||
|
||||
# These control the level of optimization versus debugging.
|
||||
setuplib.extra_compile_args = [ "-Wno-unused-function" ]
|
||||
setuplib.extra_link_args = [ ]
|
||||
|
||||
# Detect win32.
|
||||
if platform.win32_ver()[0]:
|
||||
windows = True
|
||||
setuplib.extra_compile_args.append("-fno-strict-aliasing")
|
||||
tfd_libs = [ "comdlg32", "ole32" ]
|
||||
|
||||
else:
|
||||
windows = False
|
||||
tfd_libs = [ ]
|
||||
|
||||
if raspi:
|
||||
setuplib.extra_compile_args.append("-DRASPBERRY_PI")
|
||||
|
||||
include("zlib.h")
|
||||
include("png.h")
|
||||
include("SDL.h", directory="SDL2")
|
||||
include("ft2build.h")
|
||||
include("freetype/freetype.h", directory="freetype2", optional=True) or include("freetype.h", directory="freetype2") # type: ignore
|
||||
include("libavutil/avstring.h", directory="ffmpeg", optional=True) or include("libavutil/avstring.h") # type: ignore
|
||||
include("libavformat/avformat.h", directory="ffmpeg", optional=True) or include("libavformat/avformat.h") # type: ignore
|
||||
include("libavcodec/avcodec.h", directory="ffmpeg", optional=True) or include("libavcodec/avcodec.h") # type: ignore
|
||||
include("libswscale/swscale.h", directory="ffmpeg", optional=True) or include("libswscale/swscale.h") # type: ignore
|
||||
include("GL/glew.h")
|
||||
include("pygame_sdl2/pygame_sdl2.h", directory="python{}.{}".format(sys.version_info.major, sys.version_info.minor))
|
||||
include("hb.h", directory="harfbuzz")
|
||||
|
||||
library("SDL2")
|
||||
library("png")
|
||||
library("avformat")
|
||||
library("avcodec")
|
||||
library("avutil")
|
||||
has_avresample = library("avresample", optional=True)
|
||||
has_swresample = library("swresample", optional=True)
|
||||
has_swscale = library("swscale", optional=True)
|
||||
library("freetype")
|
||||
library("z")
|
||||
has_libglew = library("GLEW", optional=True)
|
||||
has_libglew32 = library("glew32", optional=True)
|
||||
|
||||
if android:
|
||||
sdl = [ 'SDL2', 'GLESv2', 'log' ]
|
||||
png = 'png16'
|
||||
else:
|
||||
sdl = [ 'SDL2' ]
|
||||
png = 'png'
|
||||
|
||||
cubism = os.environ.get("CUBISM", None)
|
||||
if cubism:
|
||||
setuplib.include_dirs.append("{}/Core/include".format(cubism))
|
||||
|
||||
# Modules directory.
|
||||
cython(
|
||||
"_renpy",
|
||||
[ "IMG_savepng.c", "core.c" ],
|
||||
sdl + [ png, 'z', 'm' ])
|
||||
|
||||
cython("_renpybidi", [ "renpybidicore.c" ], [ "fribidi" ])
|
||||
|
||||
if not (android or ios or emscripten):
|
||||
cython("_renpytfd", [ "tinyfiledialogs/tinyfiledialogs.c" ], libs=tfd_libs)
|
||||
|
||||
# Sound.
|
||||
|
||||
sound = [ "avformat", "avcodec", "avutil", "z" ]
|
||||
macros = [ ]
|
||||
|
||||
if has_swresample:
|
||||
sound.insert(3, "swresample")
|
||||
|
||||
if has_avresample:
|
||||
sound.insert(0, "avresample")
|
||||
macros.append(("HAS_RESAMPLE", 1))
|
||||
|
||||
if has_swscale:
|
||||
sound.insert(0, "swscale")
|
||||
|
||||
cython(
|
||||
"renpy.audio.renpysound",
|
||||
[ "renpysound_core.c", "ffmedia.c" ],
|
||||
libs=sdl + sound,
|
||||
define_macros=macros,
|
||||
compile_args=[ "-Wno-deprecated-declarations" ] if ("RENPY_FFMPEG_NO_DEPRECATED_DECLARATIONS" in os.environ) else [ ])
|
||||
|
||||
cython("renpy.audio.filter")
|
||||
|
||||
# renpy
|
||||
cython("renpy.lexersupport")
|
||||
cython("renpy.pydict")
|
||||
cython("renpy.style")
|
||||
|
||||
cython("renpy.encryption")
|
||||
|
||||
# renpy.compat
|
||||
if PY2:
|
||||
cython("renpy.compat.dictviews")
|
||||
|
||||
# renpy.styledata
|
||||
cython("renpy.styledata.styleclass")
|
||||
cython("renpy.styledata.stylesets")
|
||||
|
||||
for p in generate_styles.prefixes:
|
||||
cython("renpy.styledata.style_{}functions".format(p), pyx=setuplib.gen + "/style_{}functions.pyx".format(p))
|
||||
|
||||
# renpy.display
|
||||
cython("renpy.display.matrix")
|
||||
cython("renpy.display.render", libs=[ 'z', 'm' ])
|
||||
cython("renpy.display.accelerator", libs=sdl + [ 'z', 'm' ])
|
||||
cython("renpy.display.quaternion", libs=[ 'm' ])
|
||||
|
||||
cython("renpy.uguu.gl", libs=sdl)
|
||||
cython("renpy.uguu.uguu", libs=sdl)
|
||||
|
||||
cython("renpy.gl.gldraw", libs=sdl)
|
||||
cython("renpy.gl.gltexture", libs=sdl)
|
||||
cython("renpy.gl.glenviron_shader", libs=sdl)
|
||||
cython("renpy.gl.glrtt_copy", libs=sdl)
|
||||
cython("renpy.gl.glrtt_fbo", libs=sdl)
|
||||
|
||||
cython("renpy.gl2.gl2mesh")
|
||||
cython("renpy.gl2.gl2mesh2")
|
||||
cython("renpy.gl2.gl2mesh3")
|
||||
cython("renpy.gl2.gl2polygon")
|
||||
cython("renpy.gl2.gl2model")
|
||||
cython("renpy.gl2.gl2draw", libs=sdl)
|
||||
cython("renpy.gl2.gl2texture", libs=sdl)
|
||||
cython("renpy.gl2.gl2shader", libs=sdl)
|
||||
|
||||
if cubism:
|
||||
cython("renpy.gl2.live2dmodel", libs=sdl)
|
||||
|
||||
# renpy.text
|
||||
cython("renpy.text.textsupport")
|
||||
cython("renpy.text.texwrap")
|
||||
|
||||
cython(
|
||||
"renpy.text.ftfont",
|
||||
[ "ftsupport.c", "ttgsubtable.c" ],
|
||||
libs=sdl + [ 'freetype', 'z', 'm' ])
|
||||
|
||||
if not (PY2 and emscripten):
|
||||
|
||||
cython(
|
||||
"renpy.text.hbfont",
|
||||
[ "ftsupport.c" ],
|
||||
libs=sdl + [ 'harfbuzz', 'freetype', 'z', 'm' ])
|
||||
|
||||
generate_all_cython()
|
||||
find_unnecessary_gen()
|
||||
|
||||
# Figure out the version, and call setup.
|
||||
sys.path.insert(0, '..')
|
||||
|
||||
import renpy
|
||||
|
||||
setuplib.setup("Ren'Py", renpy.version[7:].rstrip('un')) # @UndefinedVariable
|
||||
+29
-4
@@ -1,9 +1,9 @@
|
||||
[tool.pyright]
|
||||
|
||||
include = [
|
||||
"*.py",
|
||||
"renpy/",
|
||||
"module/"
|
||||
include = [
|
||||
"*.py",
|
||||
"renpy/",
|
||||
"src/"
|
||||
]
|
||||
|
||||
exclude = [
|
||||
@@ -21,3 +21,28 @@ reportOptionalIterable = false
|
||||
reportOptionalContextManager = false
|
||||
reportOptionalOperand = false
|
||||
reportMissingModuleSource = false
|
||||
|
||||
|
||||
[tool.cyright]
|
||||
include = [
|
||||
"*.py",
|
||||
"renpy/",
|
||||
"src/"
|
||||
]
|
||||
|
||||
exclude = [
|
||||
"module/build/",
|
||||
]
|
||||
|
||||
ignore = [
|
||||
"renpycoverage.py"
|
||||
]
|
||||
|
||||
reportGeneralTypeIssues = false
|
||||
reportOptionalSubscript = false
|
||||
reportOptionalMemberAccess = false
|
||||
reportOptionalCall = false
|
||||
reportOptionalIterable = false
|
||||
reportOptionalContextManager = false
|
||||
reportOptionalOperand = false
|
||||
reportMissingModuleSource = false
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# This file is part of Ren'Py. The license below applies to Ren'Py only.
|
||||
# Games and other projects that use Ren'Py may use a different license.
|
||||
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
|
||||
+201
-198
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -22,60 +22,90 @@
|
||||
# This file ensures that renpy packages will be imported in the right
|
||||
# order.
|
||||
|
||||
from __future__ import division, absolute_import, with_statement, print_function, unicode_literals
|
||||
from typing import Any
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any, NamedTuple
|
||||
import sys
|
||||
import os
|
||||
import types
|
||||
import site
|
||||
|
||||
# Set up the hook for any renpy __init__ modules to import binary modules from
|
||||
# a libexec directory if it available.
|
||||
# This is relevant only for development RenPy itself, when compiled binaries
|
||||
# are stored in the libexec directory.
|
||||
try:
|
||||
import _renpy # type: ignore
|
||||
|
||||
if getattr(_renpy, "__file__", "built-in") != "built-in":
|
||||
import importlib.util
|
||||
|
||||
libexec : str = os.path.dirname(_renpy.__file__)
|
||||
|
||||
class _LibExecFinder:
|
||||
def __init__(self):
|
||||
self.in_find_spec: bool = False
|
||||
|
||||
def find_spec(self, fullname: str, path, target=None, /):
|
||||
if not fullname.startswith("renpy."):
|
||||
return None
|
||||
|
||||
if self.in_find_spec:
|
||||
return None
|
||||
|
||||
self.in_find_spec = True
|
||||
|
||||
try:
|
||||
spec = importlib.util.find_spec(fullname)
|
||||
finally:
|
||||
self.in_find_spec = False
|
||||
|
||||
if spec is None:
|
||||
return None
|
||||
|
||||
# Is a package.
|
||||
if spec.submodule_search_locations is not None:
|
||||
name = fullname.split(".")
|
||||
spec.submodule_search_locations.append(os.path.join(libexec, *name))
|
||||
|
||||
return spec
|
||||
|
||||
sys.meta_path.insert(0, _LibExecFinder())
|
||||
|
||||
# Add the libexec directory to this module.
|
||||
try:
|
||||
__spec__.submodule_search_locations.append(os.path.join(libexec, "renpy"))
|
||||
__path__ = list(__spec__.submodule_search_locations)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
except ImportError:
|
||||
pass
|
||||
|
||||
# All imports should go below renpy.compat.
|
||||
import renpy.compat.pickle as pickle
|
||||
|
||||
# Initial import of the __main__ module. This gets replaced in renpy.py
|
||||
# whatever that module has been imported as.
|
||||
import __main__
|
||||
|
||||
# All imports should go below renpy.compat.
|
||||
|
||||
# Backup object, as it'll be overwritten when renpy.object is imported.
|
||||
_object = object # type: ignore
|
||||
|
||||
def update_path():
|
||||
"""
|
||||
Update the __path__ of package, to import binary modules from a libexec
|
||||
directory.
|
||||
"""
|
||||
import sys
|
||||
import os.path
|
||||
|
||||
name = sys._getframe(1).f_globals["__name__"]
|
||||
package = sys.modules[name]
|
||||
name = name.split(".")
|
||||
|
||||
try:
|
||||
import _renpy
|
||||
if hasattr(_renpy, '__file__') and _renpy.__file__ != "built-in":
|
||||
libexec = os.path.dirname(_renpy.__file__)
|
||||
package.__path__.append(os.path.join(libexec, *name))
|
||||
except ImportError:
|
||||
return
|
||||
|
||||
|
||||
from renpy.compat import PY2, basestring, bchr, bord, chr, open, pystr, range, round, str, tobytes, unicode # *
|
||||
|
||||
|
||||
update_path()
|
||||
|
||||
import renpy.compat.pickle as pickle
|
||||
|
||||
import sys
|
||||
import os
|
||||
import copy
|
||||
import types
|
||||
import site
|
||||
from collections import namedtuple
|
||||
|
||||
################################################################################
|
||||
# Version information
|
||||
################################################################################
|
||||
|
||||
# Version numbers.
|
||||
official: bool
|
||||
nightly: bool
|
||||
version_name: str
|
||||
version: str
|
||||
try:
|
||||
from renpy.vc_version import official, nightly, version_name, version
|
||||
from renpy.vc_version import ( # type: ignore
|
||||
official,
|
||||
nightly,
|
||||
version_name,
|
||||
version,
|
||||
)
|
||||
|
||||
except ImportError:
|
||||
import renpy.versions
|
||||
version_dict = renpy.versions.get_version()
|
||||
@@ -87,7 +117,13 @@ except ImportError:
|
||||
|
||||
official = official and getattr(site, "renpy_build_official", False)
|
||||
|
||||
VersionTuple = namedtuple("VersionTuple", ["major", "minor", "patch", "commit"])
|
||||
|
||||
class VersionTuple(NamedTuple):
|
||||
major: int
|
||||
minor: int
|
||||
patch: int
|
||||
commit: int
|
||||
|
||||
version_tuple = VersionTuple(*(int(i) for i in version.split(".")))
|
||||
|
||||
# A string giving the version number only (8.0.1.123), with a suffix if needed.
|
||||
@@ -102,68 +138,31 @@ elif nightly:
|
||||
version = "Ren'Py " + version_only
|
||||
|
||||
# Other versions.
|
||||
script_version = 5003000
|
||||
savegame_suffix = "-LT1.save"
|
||||
bytecode_version = 1
|
||||
script_version: int = 5003000
|
||||
savegame_suffix: str = "-LT1.save"
|
||||
bytecode_version: int = 1
|
||||
|
||||
################################################################################
|
||||
# Platform Information
|
||||
################################################################################
|
||||
|
||||
# Information about the platform we're running on. We break the platforms
|
||||
# up into 5 groups - windows-like, mac-like, linux-like, android-like,
|
||||
# and ios-like.
|
||||
windows = False
|
||||
macintosh = False
|
||||
linux = False
|
||||
android = False
|
||||
ios = False
|
||||
emscripten = False
|
||||
# up into 6 groups - windows-like, mac-like, linux-like, android-like,
|
||||
# ios-like and web (aka. emscripten).
|
||||
windows: bool = False
|
||||
macintosh: bool = False
|
||||
linux: bool = False
|
||||
android: bool = False
|
||||
ios: bool = False
|
||||
emscripten: bool = False
|
||||
|
||||
# Should we enable experimental features and debugging?
|
||||
experimental = "RENPY_EXPERIMENTAL" in os.environ
|
||||
|
||||
import platform
|
||||
|
||||
|
||||
def get_windows_version():
|
||||
"""
|
||||
When called on windows, returns the windows version.
|
||||
"""
|
||||
|
||||
import ctypes
|
||||
|
||||
class OSVERSIONINFOEXW(ctypes.Structure):
|
||||
_fields_ = [('dwOSVersionInfoSize', ctypes.c_ulong),
|
||||
('dwMajorVersion', ctypes.c_ulong),
|
||||
('dwMinorVersion', ctypes.c_ulong),
|
||||
('dwBuildNumber', ctypes.c_ulong),
|
||||
('dwPlatformId', ctypes.c_ulong),
|
||||
('szCSDVersion', ctypes.c_wchar * 128),
|
||||
('wServicePackMajor', ctypes.c_ushort),
|
||||
('wServicePackMinor', ctypes.c_ushort),
|
||||
('wSuiteMask', ctypes.c_ushort),
|
||||
('wProductType', ctypes.c_byte),
|
||||
('wReserved', ctypes.c_byte)]
|
||||
|
||||
try:
|
||||
|
||||
os_version = OSVERSIONINFOEXW() # type: ignore
|
||||
os_version.dwOSVersionInfoSize = ctypes.sizeof(os_version)
|
||||
retcode = ctypes.windll.Ntdll.RtlGetVersion(ctypes.byref(os_version)) # type: ignore
|
||||
|
||||
# Om failure, assume we have a newer version of windows
|
||||
if retcode != 0:
|
||||
return (10, 0)
|
||||
|
||||
return (os_version.dwMajorVersion, os_version.dwMinorVersion) # type: ignore
|
||||
|
||||
except Exception:
|
||||
return (10, 0)
|
||||
|
||||
|
||||
if platform.win32_ver()[0]:
|
||||
windows = get_windows_version()
|
||||
windows = True
|
||||
elif os.environ.get("RENPY_PLATFORM", "").startswith("ios"):
|
||||
ios = True
|
||||
elif platform.mac_ver()[0]:
|
||||
@@ -175,28 +174,28 @@ elif sys.platform == 'emscripten' or "RENPY_EMSCRIPTEN" in os.environ:
|
||||
else:
|
||||
linux = True
|
||||
|
||||
arch = os.environ.get("RENPY_PLATFORM", "unknown-unknown-unknown").rpartition("-")[2]
|
||||
arch: str = os.environ.get("RENPY_PLATFORM", "unknown-unknown-unknown").rpartition("-")[2]
|
||||
|
||||
# A flag that's true if we're on a smartphone or tablet-like platform.
|
||||
mobile = android or ios or emscripten
|
||||
mobile: bool = android or ios or emscripten
|
||||
|
||||
# A flag that's set to true if the game directory is bundled inside a mac app.
|
||||
macapp = False
|
||||
macapp: bool = False
|
||||
|
||||
################################################################################
|
||||
# Backup Data for Reload
|
||||
################################################################################
|
||||
|
||||
# True if we're done with safe mode checks.
|
||||
safe_mode_checked = False
|
||||
safe_mode_checked: bool = False
|
||||
|
||||
# True if autoreload mode is enabled. This has to live here, because it
|
||||
# needs to survive through an utter restart.
|
||||
autoreload = False
|
||||
autoreload: bool = False
|
||||
|
||||
# A dict that persists through utter restarts. Accessible to all code as
|
||||
# renpy.session.
|
||||
session = { }
|
||||
session: dict[str, Any] = {}
|
||||
|
||||
# A list of modules beginning with "renpy" that we don't want
|
||||
# to backup.
|
||||
@@ -223,7 +222,6 @@ backup_blacklist = {
|
||||
"renpy.test.testmouse",
|
||||
"renpy.test.testparser",
|
||||
"renpy.gl2",
|
||||
"renpy.gl",
|
||||
"renpycoverage",
|
||||
}
|
||||
|
||||
@@ -243,6 +241,7 @@ name_blacklist = {
|
||||
"renpy.savelocation.disk_lock",
|
||||
"renpy.character.TAG_RE",
|
||||
"renpy.display.im.cache",
|
||||
"renpy.display.render.main_thread",
|
||||
"renpy.display.render.blit_lock",
|
||||
"renpy.display.render.IDENTITY",
|
||||
"renpy.loader.auto_lock",
|
||||
@@ -253,10 +252,13 @@ name_blacklist = {
|
||||
"renpy.persistent.MP_instances",
|
||||
"renpy.exports.sdl_dll",
|
||||
"renpy.sl2.slast.serial",
|
||||
"renpy.gl2.assimp.loader",
|
||||
"renpy.gl2.assimp.loader_lock",
|
||||
"renpy.gl2.gl2draw.default_position",
|
||||
}
|
||||
|
||||
class Backup(_object):
|
||||
|
||||
class Backup:
|
||||
"""
|
||||
This represents a backup of all of the fields in the python modules
|
||||
comprising Ren'Py, shortly after they were imported.
|
||||
@@ -278,6 +280,7 @@ class Backup(_object):
|
||||
# A map from module to the set of names in that module.
|
||||
self.names = { }
|
||||
|
||||
def backup(self):
|
||||
for m in sys.modules.values():
|
||||
if m is None:
|
||||
continue
|
||||
@@ -357,14 +360,14 @@ class Backup(_object):
|
||||
|
||||
|
||||
# A backup of the Ren'Py modules after initial import.
|
||||
backup = None
|
||||
backup = Backup()
|
||||
|
||||
################################################################################
|
||||
# Import
|
||||
################################################################################
|
||||
|
||||
|
||||
def plog(level, even, *args):
|
||||
def plog(depth, event, *args):
|
||||
"""
|
||||
Empty version of renpy.plog that is replaced by the real implementation
|
||||
in import_all.
|
||||
@@ -383,12 +386,12 @@ def import_all():
|
||||
# Note: If we add a new module, it should be added at the bottom of this file so it shows up in
|
||||
# code analysis.
|
||||
|
||||
import renpy # @UnresolvedImport
|
||||
import renpy
|
||||
|
||||
import renpy.config
|
||||
import renpy.log
|
||||
|
||||
import renpy.arguments # @UnresolvedImport
|
||||
import renpy.arguments
|
||||
|
||||
import renpy.compat.fixes
|
||||
|
||||
@@ -396,7 +399,7 @@ def import_all():
|
||||
|
||||
import renpy.debug
|
||||
|
||||
# Should probably be early, as we will add it as a base to serialized things.
|
||||
# Should probably be early, as we will add these as a base to serialized things.
|
||||
import renpy.object
|
||||
|
||||
import renpy.game
|
||||
@@ -405,14 +408,12 @@ def import_all():
|
||||
# Adds in the Ren'Py loader.
|
||||
import renpy.loader
|
||||
|
||||
if not PY2:
|
||||
import renpy.py3analysis
|
||||
else:
|
||||
import renpy.py2analysis
|
||||
|
||||
import renpy.pyanalysis
|
||||
import renpy.parameter
|
||||
sys.modules["renpy.py3analysis"] = renpy.pyanalysis
|
||||
|
||||
import renpy.astsupport
|
||||
|
||||
import renpy.parameter
|
||||
import renpy.ast
|
||||
import renpy.atl
|
||||
import renpy.curry
|
||||
@@ -420,6 +421,7 @@ def import_all():
|
||||
import renpy.easy
|
||||
import renpy.encryption
|
||||
import renpy.execution
|
||||
import renpy.tokenizer
|
||||
import renpy.lexer
|
||||
import renpy.loadsave
|
||||
import renpy.savelocation
|
||||
@@ -438,14 +440,14 @@ def import_all():
|
||||
import renpy.versions
|
||||
|
||||
global plog
|
||||
plog = renpy.performance.log # type:ignore
|
||||
plog = renpy.performance.log
|
||||
|
||||
import renpy.styledata
|
||||
|
||||
import renpy.style
|
||||
renpy.styledata.import_style_functions()
|
||||
|
||||
sys.modules[pystr('renpy.styleclass')] = renpy.style
|
||||
sys.modules['renpy.styleclass'] = renpy.style
|
||||
|
||||
import renpy.substitutions
|
||||
import renpy.translation
|
||||
@@ -477,9 +479,8 @@ def import_all():
|
||||
import renpy.text.extras
|
||||
import renpy.text.shader
|
||||
|
||||
sys.modules[pystr('renpy.display.text')] = renpy.text.text
|
||||
sys.modules['renpy.display.text'] = renpy.text.text
|
||||
|
||||
import renpy.gl
|
||||
import renpy.gl2
|
||||
|
||||
import renpy.display.layout
|
||||
@@ -550,6 +551,7 @@ def import_all():
|
||||
import renpy.gl2.gl2shader
|
||||
import renpy.gl2.gl2texture
|
||||
import renpy.gl2.live2d
|
||||
import renpy.gl2.assimp
|
||||
|
||||
import renpy.minstore
|
||||
import renpy.defaultstore
|
||||
@@ -566,13 +568,10 @@ def import_all():
|
||||
|
||||
global six
|
||||
import six
|
||||
sys.modules[pystr('renpy.six')] = six
|
||||
sys.modules['renpy.six'] = six
|
||||
|
||||
# Back up the Ren'Py modules.
|
||||
|
||||
global backup
|
||||
|
||||
backup = Backup()
|
||||
backup.backup()
|
||||
|
||||
post_import()
|
||||
|
||||
@@ -583,7 +582,7 @@ def post_import():
|
||||
of various modules.
|
||||
"""
|
||||
|
||||
import renpy # @UnresolvedImport
|
||||
import renpy
|
||||
|
||||
# Create the store.
|
||||
renpy.python.create_store("store")
|
||||
@@ -595,9 +594,13 @@ def post_import():
|
||||
sys.modules['renpy.store'] = sys.modules['store']
|
||||
|
||||
import subprocess
|
||||
sys.modules[pystr('renpy.subprocess')] = subprocess
|
||||
sys.modules['renpy.subprocess'] = subprocess
|
||||
|
||||
for k, v in renpy.defaultstore.__dict__.items():
|
||||
|
||||
if k in ("__all__", "__name__", "__doc__", "__package__", "__loader__", "__spec__", "__file__", "__cached__"):
|
||||
continue
|
||||
|
||||
renpy.store.__dict__.setdefault(k, v) # type: ignore
|
||||
|
||||
renpy.store.eval = renpy.defaultstore.eval # type: ignore
|
||||
@@ -618,9 +621,6 @@ def reload_all():
|
||||
returned.
|
||||
"""
|
||||
|
||||
# if mobile:
|
||||
# raise Exception("Reloading is not supported on mobile platforms.")
|
||||
|
||||
import renpy
|
||||
|
||||
# Quit audio.
|
||||
@@ -666,7 +666,7 @@ def reload_all():
|
||||
del sys.modules[i]
|
||||
|
||||
# Restore the state of all modules from backup.
|
||||
backup.restore() # type: ignore
|
||||
backup.restore()
|
||||
|
||||
renpy.python.old_py_compile_cache = py_compile_cache
|
||||
|
||||
@@ -677,76 +677,79 @@ def reload_all():
|
||||
# Re-initialize the importer.
|
||||
renpy.loader.init_importer()
|
||||
|
||||
if 1 == 0:
|
||||
store = None # type: Any
|
||||
|
||||
# renpy.store and sub-modules can have names of any type inside.
|
||||
store: Any = None
|
||||
|
||||
|
||||
# Generated by scripts/relative_imports.py, do not edit below this line.
|
||||
if 1 == 0:
|
||||
from . import add_from
|
||||
from . import arguments
|
||||
from . import ast
|
||||
from . import atl
|
||||
from . import audio
|
||||
from . import bootstrap
|
||||
from . import character
|
||||
from . import color
|
||||
from . import compat
|
||||
from . import config
|
||||
from . import curry
|
||||
from . import debug
|
||||
from . import defaultstore
|
||||
from . import display
|
||||
from . import dump
|
||||
from . import easy
|
||||
from . import editor
|
||||
from . import encryption
|
||||
from . import error
|
||||
from . import execution
|
||||
from . import exports
|
||||
from . import game
|
||||
from . import gl
|
||||
from . import gl2
|
||||
from . import lexer
|
||||
from . import lexersupport
|
||||
from . import lint
|
||||
from . import loader
|
||||
from . import loadsave
|
||||
from . import log
|
||||
from . import main
|
||||
from . import memory
|
||||
from . import minstore
|
||||
from . import object
|
||||
from . import parameter
|
||||
from . import parser
|
||||
from . import performance
|
||||
from . import persistent
|
||||
from . import preferences
|
||||
from . import py2analysis
|
||||
from . import py3analysis
|
||||
from . import pyanalysis
|
||||
from . import pydict
|
||||
from . import python
|
||||
from . import revertable
|
||||
from . import rollback
|
||||
from . import savelocation
|
||||
from . import savetoken
|
||||
from . import screenlang
|
||||
from . import script
|
||||
from . import scriptedit
|
||||
from . import sl2
|
||||
from . import statements
|
||||
from . import style
|
||||
from . import styledata
|
||||
from . import substitutions
|
||||
from . import test
|
||||
from . import text
|
||||
from . import translation
|
||||
from . import uguu
|
||||
from . import ui
|
||||
from . import update
|
||||
from . import util
|
||||
from . import vc_version
|
||||
from . import versions
|
||||
from . import warp
|
||||
from . import webloader
|
||||
import typing
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
from . import add_from as add_from
|
||||
from . import arguments as arguments
|
||||
from . import ast as ast
|
||||
from . import astsupport as astsupport
|
||||
from . import atl as atl
|
||||
from . import audio as audio
|
||||
from . import bootstrap as bootstrap
|
||||
from . import character as character
|
||||
from . import color as color
|
||||
from . import compat as compat
|
||||
from . import config as config
|
||||
from . import cslots as cslots
|
||||
from . import curry as curry
|
||||
from . import debug as debug
|
||||
from . import defaultstore as defaultstore
|
||||
from . import display as display
|
||||
from . import dump as dump
|
||||
from . import easy as easy
|
||||
from . import editor as editor
|
||||
from . import encryption as encryption
|
||||
from . import error as error
|
||||
from . import execution as execution
|
||||
from . import exports as exports
|
||||
from . import game as game
|
||||
from . import gl2 as gl2
|
||||
from . import lexer as lexer
|
||||
from . import lexersupport as lexersupport
|
||||
from . import lint as lint
|
||||
from . import loader as loader
|
||||
from . import loadsave as loadsave
|
||||
from . import log as log
|
||||
from . import main as main
|
||||
from . import memory as memory
|
||||
from . import minstore as minstore
|
||||
from . import object as object
|
||||
from . import parameter as parameter
|
||||
from . import parser as parser
|
||||
from . import performance as performance
|
||||
from . import persistent as persistent
|
||||
from . import preferences as preferences
|
||||
from . import pyanalysis as pyanalysis
|
||||
from . import pydict as pydict
|
||||
from . import python as python
|
||||
from . import revertable as revertable
|
||||
from . import rollback as rollback
|
||||
from . import savelocation as savelocation
|
||||
from . import savetoken as savetoken
|
||||
from . import screenlang as screenlang
|
||||
from . import script as script
|
||||
from . import scriptedit as scriptedit
|
||||
from . import sl2 as sl2
|
||||
from . import statements as statements
|
||||
from . import style as style
|
||||
from . import styledata as styledata
|
||||
from . import substitutions as substitutions
|
||||
from . import test as test
|
||||
from . import text as text
|
||||
from . import tokenizer as tokenizer
|
||||
from . import translation as translation
|
||||
from . import uguu as uguu
|
||||
from . import ui as ui
|
||||
from . import update as update
|
||||
from . import util as util
|
||||
from . import vc_version as vc_version
|
||||
from . import versions as versions
|
||||
from . import warp as warp
|
||||
from . import webloader as webloader
|
||||
|
||||
+33
-36
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
@@ -19,26 +19,23 @@
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
from __future__ import division, absolute_import, with_statement, print_function, unicode_literals
|
||||
from renpy.compat import PY2, basestring, bchr, bord, chr, open, pystr, range, round, str, tobytes, unicode # *
|
||||
|
||||
|
||||
|
||||
import collections
|
||||
from collections import defaultdict
|
||||
from pathlib import Path
|
||||
import renpy
|
||||
import os
|
||||
|
||||
# A map from filename to position, target label pairs.
|
||||
missing = collections.defaultdict(list)
|
||||
missing = defaultdict[str, list[tuple[int, str]]](list)
|
||||
|
||||
|
||||
def report_missing(target, filename, position):
|
||||
def report_missing(target: str, filename: str, number: int):
|
||||
"""
|
||||
Reports that the call statement ending at `position` in `filename`
|
||||
is missing a from clause.
|
||||
"""
|
||||
|
||||
missing[filename].append((position, target))
|
||||
missing[filename].append((number, target))
|
||||
|
||||
|
||||
# Labels that we've created while running add_from.
|
||||
@@ -69,44 +66,43 @@ def generate_label(target):
|
||||
return label
|
||||
|
||||
|
||||
def process_file(fn):
|
||||
def process_file(fn: str, full_fn: str):
|
||||
"""
|
||||
Adds missing from clauses to `fn`.
|
||||
"""
|
||||
|
||||
if not os.path.exists(fn):
|
||||
path = Path(full_fn)
|
||||
if not path.exists():
|
||||
return
|
||||
|
||||
if (lines := renpy.scriptedit.ensure_loaded(full_fn)) is None:
|
||||
return
|
||||
|
||||
edits = missing[fn]
|
||||
edits.sort()
|
||||
edits = iter(edits)
|
||||
next_edit, target = next(edits)
|
||||
|
||||
with open(fn, "rb") as f:
|
||||
data = f.read().decode("utf-8")
|
||||
new_lines = []
|
||||
for lineno, line in lines.items():
|
||||
if lineno == next_edit:
|
||||
code = f" from {generate_label(target)}"
|
||||
full_text = line.with_added_code(code)
|
||||
else:
|
||||
full_text = line.full_text
|
||||
|
||||
# How much of the input has been consumed.
|
||||
consumed = 0
|
||||
new_lines.append(full_text)
|
||||
|
||||
# The output.
|
||||
output = u""
|
||||
new_path = path.with_suffix(f"{path.suffix}.new")
|
||||
with new_path.open("w", encoding="utf-8") as f:
|
||||
f.write("\ufeff")
|
||||
f.writelines(new_lines)
|
||||
|
||||
for position, target in edits:
|
||||
output += data[consumed:position]
|
||||
consumed = position
|
||||
bak_path = path.with_suffix(f"{path.suffix}.bak")
|
||||
bak_path.unlink(missing_ok=True)
|
||||
|
||||
output += " from {}".format(generate_label(target))
|
||||
|
||||
output += data[consumed:]
|
||||
|
||||
with open(fn + ".new", "wb") as f:
|
||||
f.write(output.encode("utf-8"))
|
||||
|
||||
try:
|
||||
os.unlink(fn + ".bak")
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
os.rename(fn, fn + ".bak")
|
||||
os.rename(fn + ".new", fn)
|
||||
path.rename(bak_path)
|
||||
new_path.rename(path)
|
||||
|
||||
|
||||
def add_from():
|
||||
@@ -114,8 +110,9 @@ def add_from():
|
||||
renpy.arguments.takes_no_arguments("Adds from clauses to call statements that are missing them.")
|
||||
|
||||
for fn in missing:
|
||||
if fn.startswith(renpy.config.gamedir):
|
||||
process_file(fn)
|
||||
full_fn = renpy.parser.unelide_filename(fn)
|
||||
if full_fn.startswith(renpy.config.gamedir):
|
||||
process_file(fn, full_fn)
|
||||
|
||||
return False
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2024 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2025 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
|
||||
|
||||
+1263
-1012
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user