Compare commits
859 Commits
start-6.99
...
6.99.8
| Author | SHA1 | Date | |
|---|---|---|---|
| d1f3c9dc8a | |||
| d3db4b099b | |||
| adc2c96e71 | |||
| a1b572da61 | |||
| ed653831a0 | |||
| 8d6ec39c33 | |||
| d83d2045b3 | |||
| 229df03363 | |||
| 4d141b7bc2 | |||
| 219fccf588 | |||
| 5c92d6cfb7 | |||
| b3545fbce4 | |||
| c055d253c4 | |||
| c9a35bd23f | |||
| a0e7ab2b2b | |||
| 194a79069b | |||
| 936a0bf1e5 | |||
| a0ab3c845f | |||
| d61e4adef7 | |||
| a244516b81 | |||
| 717b133a0e | |||
| be288feb13 | |||
| 1df06a92b5 | |||
| daee66a17e | |||
| 7ccc26276a | |||
| d7c3aadf62 | |||
| 9831b68ac9 | |||
| bec4cabf8d | |||
| f64e050f9b | |||
| 33fda314a0 | |||
| a4b8da9119 | |||
| 1bb51d6953 | |||
| 5fd7282fdd | |||
| 27f8f5092f | |||
| 6d8562cf97 | |||
| 8cfe83eab6 | |||
| c87b4087b1 | |||
| f0258aa269 | |||
| ed871863df | |||
| 31de7c5ef0 | |||
| b1f59d9eaa | |||
| 20c71c6312 | |||
| b781769a0a | |||
| d75417d081 | |||
| 2a90549cb9 | |||
| 158d798bb8 | |||
| a46ee80ec6 | |||
| 093dc4e79c | |||
| 8a8240e2a0 | |||
| 8e5fbb2ef5 | |||
| eb3a203fdc | |||
| 6ac39d096f | |||
| ae6060b31a | |||
| c08acaef56 | |||
| e8f98816ab | |||
| 7be67acb0c | |||
| 03043c1250 | |||
| a5375963a9 | |||
| e18f96b827 | |||
| 7b8fbf2e49 | |||
| d641bb1f54 | |||
| 91c46dab72 | |||
| e7cd340ec7 | |||
| 345276cacc | |||
| 089a6bccf2 | |||
| ddd9a702e5 | |||
| 4dceccc491 | |||
| 04c17a71a3 | |||
| 4e381dcc22 | |||
| 3f14961d0d | |||
| 4b867d4220 | |||
| cd9bac3052 | |||
| dec43b1f81 | |||
| e408f297d9 | |||
| f0b90920bf | |||
| fc7eccef70 | |||
| 879fc8814c | |||
| 8a188c9c3f | |||
| 45e860458d | |||
| f22af1d7dc | |||
| 60371bead8 | |||
| 89050fbac7 | |||
| 7ddb4bf602 | |||
| 6fc1227cd3 | |||
| 49e544c5f1 | |||
| 5505cc53f0 | |||
| 147b6c26de | |||
| 984c0fcc29 | |||
| 8e1abf2b49 | |||
| 76eb82f50b | |||
| 6ed3affddf | |||
| 8a32179792 | |||
| b65c5de62d | |||
| 8ec6174dc2 | |||
| 61dc7a33fa | |||
| 14c7a7d416 | |||
| 906e4de0a5 | |||
| 44ef126806 | |||
| 41a35618f4 | |||
| d296d5c17c | |||
| 21b9fc1453 | |||
| 70bc84b394 | |||
| 04449bb37b | |||
| e1bb500e00 | |||
| c54f3d4ce1 | |||
| a397f653d7 | |||
| 0f8c0d30fd | |||
| b77c540235 | |||
| e68986d59d | |||
| 7541bc6f51 | |||
| c6d003486c | |||
| 08f8df326a | |||
| 702a4a8463 | |||
| c77b0933c8 | |||
| 46bdc6c703 | |||
| 4db4bc1836 | |||
| 9e7e78ac79 | |||
| 671a76c184 | |||
| b2eb4d0783 | |||
| e0a7728f62 | |||
| 6bcca2e39c | |||
| 1fdce5897c | |||
| a4bfc86668 | |||
| 91e3f05093 | |||
| b095378f71 | |||
| 7ca8e480e0 | |||
| 28e645720f | |||
| 40de88d213 | |||
| a4d54abf7c | |||
| 36b7d7813f | |||
| 826cc817c8 | |||
| 7ad0c85681 | |||
| 122c974d95 | |||
| 4ce304afb6 | |||
| 166929aaff | |||
| a6f97435a9 | |||
| 82afa0aa13 | |||
| 3a4f4e6ebd | |||
| b6a420ed52 | |||
| af6991ab0f | |||
| 6d6261fced | |||
| 7462532a77 | |||
| 52776d93b1 | |||
| 9723153455 | |||
| 6cc4ac5d8c | |||
| 75d9cdfc5d | |||
| 43abcd902d | |||
| e93e58c0df | |||
| a52135893c | |||
| 1e0a10a852 | |||
| 35eb168c41 | |||
| f53461c207 | |||
| 35806f1897 | |||
| 0dd0f37ebd | |||
| 52a0b874a3 | |||
| 0d98166503 | |||
| 112eeb00fd | |||
| 424e90eeeb | |||
| 1c2b5f3361 | |||
| a38a6c8c1f | |||
| 060ac47872 | |||
| a7ebac3006 | |||
| e256c168f9 | |||
| af04859f97 | |||
| 18a06e88db | |||
| 46798413ed | |||
| feec3f0dbb | |||
| 3b3c691a23 | |||
| 5a3de5660a | |||
| 59a1ca923d | |||
| 04942b371b | |||
| db6918927c | |||
| c235f2b598 | |||
| dc834779fb | |||
| 3386e9f0aa | |||
| 9ad4b3b0a9 | |||
| 3a179cca2c | |||
| 0d8f470af6 | |||
| 01c7d1d328 | |||
| b63078f414 | |||
| 27aaa0aab9 | |||
| 6bd1ab30e8 | |||
| 2fae816769 | |||
| b03201a7e2 | |||
| 1cfb2a2cd8 | |||
| 5854ca77d7 | |||
| 657fdd5efd | |||
| c1ed41f82d | |||
| b331e6f61b | |||
| 21fe9c1094 | |||
| 56bb1c8f15 | |||
| 02a6fa0c0f | |||
| 48f1e1e9c8 | |||
| 0eddb65538 | |||
| cdbac9af62 | |||
| 22a1bc60de | |||
| 53af0a28ee | |||
| 7e5078996a | |||
| bafc714076 | |||
| acd7de7524 | |||
| dc73a22849 | |||
| bf8b7fece6 | |||
| eb3c2f541d | |||
| 73f0a85f70 | |||
| 8a16e1b018 | |||
| 9c65db7e6d | |||
| 3cd3f8ceee | |||
| 5d3d3506be | |||
| 1349ab7ad9 | |||
| 849c1eca2c | |||
| ed0e68c7e1 | |||
| 9198f4a610 | |||
| 1ebbcb32ef | |||
| 31384e8b7f | |||
| 00efc0086f | |||
| c6c1f45e0a | |||
| 610565756a | |||
| 7e2df8223b | |||
| 749e99e0f3 | |||
| 274d8cfc35 | |||
| c1d3418a1b | |||
| e0dfd732af | |||
| 00e4d7d30e | |||
| d685425752 | |||
| 3b7c797e11 | |||
| a8a809702d | |||
| 081c604d88 | |||
| 1553c90e41 | |||
| 3298cdd5fe | |||
| 1a61d24568 | |||
| 4aeae19752 | |||
| 7bf315db29 | |||
| 1b4044e2f9 | |||
| 0f5eb2e4ac | |||
| 5835888c04 | |||
| e18af36f20 | |||
| daecfc8d27 | |||
| 4784deb4a4 | |||
| b5a97a75e1 | |||
| 6206427e1a | |||
| 03eee36de1 | |||
| dd1ca318e0 | |||
| 691cdc0a7f | |||
| 8d59605aa9 | |||
| c48baeb6a4 | |||
| ddc1c490db | |||
| f7914576aa | |||
| 27eb710a7c | |||
| 8c37a1e7d5 | |||
| a9d67162e8 | |||
| a5c815f889 | |||
| ac272df001 | |||
| 89b344fb70 | |||
| 77bf797d18 | |||
| 4887b172f6 | |||
| 10674b0426 | |||
| d253606562 | |||
| 5da52a7ad2 | |||
| af5c549bff | |||
| a6959a3743 | |||
| 8774e58b10 | |||
| d111e05674 | |||
| 531f39d516 | |||
| 58ddd537aa | |||
| 203b0f9710 | |||
| 71a2961ab3 | |||
| c553d7206d | |||
| fdcb2142d6 | |||
| 562651371d | |||
| be7ed3fb7e | |||
| 8ff7e6d6df | |||
| 859a4f316e | |||
| 7102e8788c | |||
| 8909283061 | |||
| 3215946b58 | |||
| 6b4df749d2 | |||
| 8caf6db689 | |||
| 598ae2b07b | |||
| af8aaf176b | |||
| 01c0dcf7c5 | |||
| 3c19c4d866 | |||
| 5855c622a4 | |||
| 77b6e739a2 | |||
| 2e963045b4 | |||
| 3e7476020f | |||
| b1d84e3d51 | |||
| 35b22b1eee | |||
| 52f6d70cf3 | |||
| 0ec79a2388 | |||
| c0ce6df88b | |||
| 9c33391720 | |||
| 47a6e827e2 | |||
| 4b09cf1828 | |||
| 89e8d79b63 | |||
| 3024d49a57 | |||
| 275e6ddf8c | |||
| 9436cb8386 | |||
| 593a37af83 | |||
| abca0c4083 | |||
| 5d70224fa7 | |||
| e3e0e9338d | |||
| cbbd1b58c0 | |||
| e3509f1368 | |||
| 097d3973a0 | |||
| 8048c7d94a | |||
| a26a5bd42f | |||
| a9ca5b03de | |||
| 7de4bb96cd | |||
| 0484e3f091 | |||
| e2ace16bfc | |||
| b93a106c1c | |||
| b42a0a3b7a | |||
| 29e4fe5616 | |||
| 70d2778754 | |||
| 893a27fca4 | |||
| 8ec1a6e17f | |||
| 979ae96475 | |||
| e035918f04 | |||
| b5eab3f362 | |||
| 3a41ad4469 | |||
| e93a8a594b | |||
| 16750f2437 | |||
| dc2ba0eb7f | |||
| 707de937a2 | |||
| e407b8a59e | |||
| 57e73ebc6e | |||
| 5259f93472 | |||
| 218bb0a42b | |||
| 290cab6832 | |||
| 9d98e8541e | |||
| e2ff897bb7 | |||
| ae4e58c657 | |||
| a0e7822635 | |||
| e211f07d26 | |||
| 4a264851ea | |||
| 5833e8d010 | |||
| ba36763539 | |||
| 36e09691dc | |||
| 445f048ba8 | |||
| f4bac1768f | |||
| caaf1e6a05 | |||
| f6c8ed43e5 | |||
| ed7546507d | |||
| 97ddbf8e49 | |||
| c4a134b432 | |||
| 327482f9d1 | |||
| 729ce82bae | |||
| 0b450d9ace | |||
| 5736ce1a16 | |||
| 74c840b8c6 | |||
| 06d371209c | |||
| d2cbfd2a35 | |||
| 57f4fe43be | |||
| ce8f837aee | |||
| ab45fc780d | |||
| 64be59df5a | |||
| ccbe692e69 | |||
| 4cd51dffc3 | |||
| 2260874891 | |||
| a1abfb9c1a | |||
| fd6af5655a | |||
| 9aa08acb92 | |||
| 0e255aca7f | |||
| c3a54e3854 | |||
| f24821d53b | |||
| 3d768959c6 | |||
| 03fcefe1a7 | |||
| 24037ed374 | |||
| 1fe8615fdf | |||
| 9030483ff6 | |||
| 43980d614f | |||
| f3e306d987 | |||
| 736d5b5749 | |||
| e6f192523d | |||
| 52dbf270bf | |||
| de2b243690 | |||
| 3e52e4d8d2 | |||
| 243a4fe816 | |||
| c687a1f522 | |||
| 634ec1d217 | |||
| 9c922dea02 | |||
| 80924ee921 | |||
| c6ab27ab2a | |||
| b9f83c1502 | |||
| 68c1fbf0d2 | |||
| e2e165ce4b | |||
| 442cf570f9 | |||
| d81ea29ed8 | |||
| 67d72bd1da | |||
| d0286a0c33 | |||
| 372c302d37 | |||
| c5a9d011cc | |||
| bb33778aba | |||
| a41c83fc3a | |||
| 3f3b46c109 | |||
| 838cbb2720 | |||
| 7f15147bf7 | |||
| e232bab6f8 | |||
| ecadc55616 | |||
| 68962de022 | |||
| 41d601a391 | |||
| 53a4ad89bb | |||
| 31dc28ee51 | |||
| 3be1a2b6c1 | |||
| 8ad4a8ed1c | |||
| 5319072cf6 | |||
| c4c82ff525 | |||
| 90be953e7a | |||
| 2409f7ceb8 | |||
| e1c3e55198 | |||
| 2899f79c8a | |||
| e586410e78 | |||
| 7192bcd164 | |||
| c08848b7c5 | |||
| 161533860a | |||
| c041eeed26 | |||
| 6ab1b3af74 | |||
| 82f7673f56 | |||
| ab952ffefb | |||
| c6c551c7f5 | |||
| a947e784a2 | |||
| 192f3a702b | |||
| b2c8ce8df3 | |||
| 416d872a40 | |||
| 7be1916b85 | |||
| 6e46743d53 | |||
| 2b0ede0a12 | |||
| c211788e1c | |||
| 0ebecfc6c0 | |||
| 5c7474f2bf | |||
| 0eafdf6fc3 | |||
| e29877b5ea | |||
| a815bfbceb | |||
| 03c394ae99 | |||
| 70d81a2b92 | |||
| 7884b49c9e | |||
| 3b0f430344 | |||
| df792b05c7 | |||
| 903dfaaf0c | |||
| a127504d38 | |||
| d8154ea196 | |||
| d1492e110e | |||
| 5d5b159ca6 | |||
| f771ff18be | |||
| 6a2f062ed8 | |||
| 991d8a7683 | |||
| 52068c32c9 | |||
| 2ceb298434 | |||
| 59709e1bac | |||
| 161eaa27c2 | |||
| 55e8088c3c | |||
| 0e667b3188 | |||
| 24339e7a64 | |||
| 8d1142e0dc | |||
| 43b4309aec | |||
| 52ba2f1b8b | |||
| 81284dcee5 | |||
| 0004954f4d | |||
| 10616d9fed | |||
| 2bf3049c23 | |||
| c30afc791b | |||
| edda89750e | |||
| b70a004f09 | |||
| e1ad973475 | |||
| bd082ea55e | |||
| 7639325203 | |||
| 6ce7f2c62d | |||
| 64bc5f02db | |||
| e2b27696a9 | |||
| 7e463c3356 | |||
| 9ee8e5573e | |||
| 77c2178462 | |||
| 84156d2a3d | |||
| 63f1f6c0bc | |||
| 4857cb789c | |||
| 40805225bd | |||
| 3773624ab0 | |||
| b2a02aa982 | |||
| 010b3a3d2f | |||
| 9cb9d7c210 | |||
| 46afd62be7 | |||
| eac9ee5b02 | |||
| f316315456 | |||
| efb62b030a | |||
| 6ea65debb6 | |||
| 5823474904 | |||
| e4bd06f4e0 | |||
| 9c569a8716 | |||
| 3a35aca5ef | |||
| a25c578b5f | |||
| 6e01fbc52e | |||
| 571cd76f21 | |||
| afa272bac3 | |||
| 59e021d1d8 | |||
| a0af700b43 | |||
| c3d035a5ae | |||
| 791e35d8fb | |||
| 2ab145ac19 | |||
| 51ba6d932b | |||
| 9fd33a16ac | |||
| 41bd5fa920 | |||
| df9e305639 | |||
| 6a54f8576c | |||
| 9658283e58 | |||
| 689d33760f | |||
| 9011554540 | |||
| 6ec7ccbe6b | |||
| 94ba4e62e1 | |||
| 9a3bc75241 | |||
| 3a27dfec9d | |||
| 00ee5d8eb3 | |||
| ce4086d58e | |||
| 815a297ae2 | |||
| 712306ffc3 | |||
| 33b802e749 | |||
| b26ea78a4b | |||
| e9343befc0 | |||
| d59dd71602 | |||
| b99e9d3afa | |||
| d5ee62fa13 | |||
| b8e1d39e49 | |||
| 868d0afb60 | |||
| b52a3ab75c | |||
| 7d5ca94f4a | |||
| 7cce474ca8 | |||
| 4a8c87f019 | |||
| 0cd3553099 | |||
| f929d3fa3d | |||
| 7f21671fc3 | |||
| 354862ba65 | |||
| 9e51fc584c | |||
| 54f9cd752a | |||
| 3614d6659f | |||
| 2bc3929540 | |||
| c050a2dbd7 | |||
| 00c55c31a7 | |||
| f1cd67446b | |||
| 22f95f7d83 | |||
| 8b6026cf7f | |||
| d18232093d | |||
| ce1bcb3535 | |||
| fc8fd41e90 | |||
| 3f23fa3606 | |||
| 023a8b9b47 | |||
| 04ed3ff098 | |||
| 36a3ecbbd3 | |||
| 66fc3c47ae | |||
| 6a730bbffc | |||
| 0b91488206 | |||
| ea8c3a69fb | |||
| 324d637607 | |||
| daf7619e52 | |||
| 1914c1b6fe | |||
| 4f9eabeb28 | |||
| 80158aa151 | |||
| 907fc3f29e | |||
| b65089fbed | |||
| c334aeece2 | |||
| b7be16b987 | |||
| c2f07ca7ca | |||
| 9b1c9ff25d | |||
| f89191bbf9 | |||
| 98120814da | |||
| 6af546147a | |||
| ff177be12c | |||
| 3e6ddc46b6 | |||
| 1094f693f0 | |||
| f0efeede9a | |||
| ecbe84ad39 | |||
| 302fa846ca | |||
| 511d48f067 | |||
| 5b0a6ede56 | |||
| cec6ebd9df | |||
| cd3b7c1239 | |||
| 86f759c80f | |||
| 7ce97dbaeb | |||
| 0b317c4c24 | |||
| 4c6fd3c8fa | |||
| f5cc5e5829 | |||
| f284d82f9d | |||
| 8c1f6c7701 | |||
| 82d40f75f5 | |||
| a755b04ab1 | |||
| 8c5fcc9a95 | |||
| 6625a46dcb | |||
| c7b7e26c33 | |||
| 45c61c4972 | |||
| b944591ec7 | |||
| 3c3c8c7933 | |||
| e0207369c3 | |||
| 40de615c66 | |||
| 53c50b1e00 | |||
| 95f39c725f | |||
| 0e251e1bf4 | |||
| cd136bc6a0 | |||
| b66ede5e19 | |||
| ba7d4e6582 | |||
| bda9f96f28 | |||
| 2f77e1fd4a | |||
| 3d4ef2df96 | |||
| 2b20ef7834 | |||
| e4fe7f3586 | |||
| 7cfc6ad1ba | |||
| 57c27cfde4 | |||
| 3ceec0b62d | |||
| fe1d1e5499 | |||
| ca944b5089 | |||
| 92163cd704 | |||
| edfd705a52 | |||
| 4a1557edf3 | |||
| 4c55cab9fc | |||
| 8a9eb86bac | |||
| 077c7818ec | |||
| 136db345c9 | |||
| 31b711b672 | |||
| 7aeed18720 | |||
| 7da86f27e9 | |||
| e851096b77 | |||
| 91cdebd401 | |||
| 0fbdd3b68f | |||
| 939034a481 | |||
| 4ae3092877 | |||
| db23bd0f91 | |||
| 5e0de94e9a | |||
| cdfbfcd481 | |||
| 5d49b6b75b | |||
| f9a7b7dc21 | |||
| 61b7550157 | |||
| fc7fcc8db9 | |||
| 2cdb8adb64 | |||
| a22b406f46 | |||
| cff0b43f96 | |||
| 0a2bee8a78 | |||
| 0e53af427f | |||
| 3120b5e438 | |||
| 01689fc02a | |||
| afc9a2d97c | |||
| df5d891ee7 | |||
| d7ba76f44f | |||
| 10cda2103f | |||
| 616cdbd218 | |||
| 2199a4db1c | |||
| c4b673099f | |||
| c61b01ee0c | |||
| 24f26acea4 | |||
| f4e5e0f297 | |||
| a78d9bbccf | |||
| 89ec94a72b | |||
| cf495ac494 | |||
| 0eb54ef113 | |||
| 3043543901 | |||
| 6f56cbb12e | |||
| a7542015ab | |||
| 3e20a92c80 | |||
| 93812b4a1b | |||
| 4f3a0c546f | |||
| 097978b044 | |||
| da041e5170 | |||
| 9b626fe039 | |||
| c51db4ce64 | |||
| 01b66c6197 | |||
| 2a31925ef7 | |||
| 9480b544fb | |||
| 8c989bb684 | |||
| d9dd895775 | |||
| a149858701 | |||
| 3a1105935c | |||
| c5fa5ca98b | |||
| e40e780834 | |||
| 5f23501413 | |||
| 0631221d98 | |||
| 87fc8b0468 | |||
| b6d16ef601 | |||
| 72704eb945 | |||
| 23c202e25f | |||
| 253cf2a5c7 | |||
| dfce28b881 | |||
| 013cfdadea | |||
| 71545e6d3a | |||
| 8282084f48 | |||
| 5d53028f62 | |||
| c43f364eab | |||
| 93b25e9627 | |||
| 3051687b4c | |||
| 94cca9458b | |||
| c63e58f170 | |||
| 3aa40537e9 | |||
| 495fa5512c | |||
| f561b1ce04 | |||
| 7def90322f | |||
| 75c8861de9 | |||
| 9b5de49aae | |||
| 3e5197f909 | |||
| 152ba2d7e5 | |||
| 1d4d093a88 | |||
| 955e02ce26 | |||
| b499d95390 | |||
| df36d206d3 | |||
| 9af5e19054 | |||
| 8492045273 | |||
| 49a3b15816 | |||
| f015bb7b81 | |||
| 44aa9c6fc8 | |||
| d4eebdff49 | |||
| f42572c1f8 | |||
| 356c6e346a | |||
| 22eb62afff | |||
| 7d17c87ed0 | |||
| 7c8e93a046 | |||
| 86d250079b | |||
| b2cb51a61b | |||
| 4cfe681d00 | |||
| c670a25f8b | |||
| db5ee1e91f | |||
| ca1f1f1032 | |||
| 32800f1c48 | |||
| 66544cd4b2 | |||
| 94df2f93b7 | |||
| 4c1269c62e | |||
| a94989eb06 | |||
| 0cc2df8800 | |||
| d62f28d849 | |||
| 31de055d6f | |||
| a3daed1409 | |||
| d7ccd581ae | |||
| f559367d6a | |||
| 064d24e838 | |||
| ec894fc458 | |||
| 845f802a59 | |||
| 6680a16db6 | |||
| d838a3d07a | |||
| 1e35f405fb | |||
| 9900bf6ecc | |||
| ab36e3d59a | |||
| d370760071 | |||
| 0310e60b1c | |||
| 54614e2b83 | |||
| 92032f123b | |||
| f799dfcb31 | |||
| 99698fdd06 | |||
| 4bf0b7ca67 | |||
| 685fd09a75 | |||
| 75825e7c2c | |||
| 052ec96f54 | |||
| a4ab8fa083 | |||
| 75e5a29470 | |||
| 04db67cad7 | |||
| 0550a85716 | |||
| 91d5f6cc21 | |||
| 82433d3dc0 | |||
| 663cac933f | |||
| 520ff08595 | |||
| 95e12cab07 | |||
| 52093520fd | |||
| f92e459801 | |||
| b8d08dda5a | |||
| f8453fc4fd | |||
| c5c3a57f9d | |||
| 83245c7432 | |||
| 5715bdec00 | |||
| c57253cfce | |||
| 85fa790711 | |||
| c379dd6bc3 | |||
| e42d04ad9e | |||
| f361f7d0ef | |||
| 69bd85f98f | |||
| b4cee2db25 | |||
| b16e7ebf8e | |||
| 4f9dcd4fdc | |||
| 3dc33d4238 | |||
| aa16b64225 | |||
| f93d3b9fc9 | |||
| 250103bf4e | |||
| bc6767bdf4 | |||
| 15a6b39a40 | |||
| 83352e3e29 | |||
| c8c52477c9 | |||
| 042ae30b62 | |||
| b9f3bbe950 | |||
| 2fd1416ce4 | |||
| 722c99ed04 | |||
| b59c94ad7f | |||
| 547a504f7b | |||
| 51a168c12f | |||
| 3573a42ef7 | |||
| 23d69c7c8e | |||
| 77e44a5ab5 | |||
| b892ca4791 | |||
| 4775d4f082 | |||
| 2148a68df8 | |||
| 52a8fd1b63 | |||
| 422db61d71 | |||
| 749462beec | |||
| 8726c6d50b | |||
| 6ae531e893 | |||
| dc117ffbe1 | |||
| 40e3eaaf64 | |||
| 72e4607e82 | |||
| cfdaa95bea | |||
| 2be0638602 | |||
| 6ec5a0c122 | |||
| fd1902ecd2 | |||
| ec77844b1a | |||
| 8c238ae4ff | |||
| 4c909922d4 | |||
| 8358539667 | |||
| 5c87617652 | |||
| a102a7dca9 | |||
| a2e8758965 | |||
| 5914e9317c | |||
| 094dbe7386 | |||
| 84debf31c7 | |||
| 5afacd4dec | |||
| 4221eb049f | |||
| 4971ff139f | |||
| e5a50b4b4d | |||
| 5222a47b9d | |||
| 98afd6402c | |||
| 24fdc18a47 | |||
| e5632b27b2 | |||
| 14db5d588f | |||
| dbb990c0f7 | |||
| a34bed7e11 | |||
| 7c61befcb0 | |||
| 9381c7399b | |||
| 439365977f | |||
| 5b3a7bf02e | |||
| 1be45fb2d4 | |||
| a327517cf8 | |||
| f9204ad5a0 | |||
| 5b5a7ab907 | |||
| 634bb3ad64 | |||
| 329d8d3ee1 | |||
| 24c7e845c3 | |||
| 3f01f49da3 | |||
| 6d7c28560c | |||
| 23931a5676 | |||
| b4dd9f6878 | |||
| 2903b81360 | |||
| 942cf82354 | |||
| 4dcdd1ad65 | |||
| a2a3c284a3 | |||
| 4497d5e30f | |||
| 9c5e037db6 | |||
| 2b6c7941d6 | |||
| 4e11d77258 | |||
| 9791e379e3 | |||
| b59dc7906c | |||
| 253726c433 | |||
| 06e3a75515 | |||
| 2925e1e64f | |||
| ead574ae6b | |||
| 1f4d4cd974 | |||
| 2deaf3689a | |||
| 2847f42707 | |||
| 28872407c3 | |||
| ab7adb8b3a | |||
| e70be78e65 | |||
| cd95838191 |
+10
-4
@@ -10,10 +10,11 @@
|
||||
saves
|
||||
tmp
|
||||
cache
|
||||
env
|
||||
|
||||
log.txt
|
||||
/errors.txt
|
||||
/traceback.txt
|
||||
errors.txt
|
||||
traceback.txt
|
||||
|
||||
styles.txt
|
||||
|
||||
@@ -48,7 +49,12 @@ styles.txt
|
||||
/launcher/game/theme
|
||||
/launcher/game/script_version.rpy
|
||||
|
||||
dl
|
||||
/dl
|
||||
renpy/vc_version.py
|
||||
.externalToolBuilders
|
||||
rapt
|
||||
/rapt
|
||||
/evil
|
||||
/iaptest
|
||||
/pygame_sdl2
|
||||
/renios
|
||||
/steam_appid.txt
|
||||
|
||||
+24
-10
@@ -49,30 +49,44 @@ Building the modules requires you have the many dependencies installed on
|
||||
your system. On Ubuntu and Debian, these dependencies can be installed with
|
||||
the command::
|
||||
|
||||
apt-get install python-dev python-pygame libavcodec-dev libavformat-dev \
|
||||
libavresample-dev libfreetype6-dev libglew1.6-dev libsdl1.2-dev \
|
||||
libsdl-image1.2-dev libfribidi-dev libswscale-dev libesd0-dev libpulse-dev
|
||||
|
||||
Other platforms may have an equivalent command. Otherwise, you'll need to
|
||||
build `renpy-deps <https://github.com/renpy/renpy-deps>`_.
|
||||
apt-get install virtualenvwrapper python-dev libavcodec-dev libavformat-dev \
|
||||
libavresample-dev libswscale-dev libfreetype6-dev libglew1.6-dev \
|
||||
libfribidi-dev libsdl2-dev libsdl2-image-dev libsdl2-gfx-dev \
|
||||
libsdl2-mixer-dev libsdl2-ttf-dev libjpeg-turbo8-dev
|
||||
|
||||
We strongly suggest installing the Ren'Py modules into a Python
|
||||
virtualenv. `This page <http://dabapps.com/blog/introduction-to-pip-and-virtualenv-python/>`_
|
||||
describes how to install pip and the virtualenv tool, and set up a new virtualenv.
|
||||
virtualenv. To create a new virtualenv, open a new terminal and run::
|
||||
|
||||
mkvirtualenv renpy
|
||||
|
||||
To return to this virtualenv later, run::
|
||||
|
||||
workon renpy
|
||||
|
||||
After activating the virtualenv, install cython::
|
||||
|
||||
pip install -U cython
|
||||
|
||||
Then, install pygame_sdl2 by running the following commands::
|
||||
|
||||
git clone https://www.github.com/renpy/pygame_sdl2
|
||||
pushd pygame_sdl2
|
||||
python fix_virtualenv.py $VIRTUAL_ENV
|
||||
python setup.py install
|
||||
popd
|
||||
|
||||
Next, set RENPY_DEPS_INSTALL To a \::-separated list of paths containing the
|
||||
dependencies, and RENPY_CYTHON to the name of the cython command::
|
||||
|
||||
export RENPY_DEPS_INSTALL=/usr::/usr/lib/x86_64-linux-gnu/
|
||||
export RENPY_DEPS_INSTALL="/usr::/usr/lib/x86_64-linux-gnu/"
|
||||
export RENPY_CYTHON=cython
|
||||
|
||||
Finally, change into the `modules` directory, and run::
|
||||
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::
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env python
|
||||
#!/usr/bin/env python2
|
||||
|
||||
import argparse
|
||||
import os
|
||||
@@ -7,6 +7,15 @@ import sys
|
||||
|
||||
from renpy import version_tuple #@UnresolvedImport
|
||||
|
||||
SOURCE = [
|
||||
"/home/tom/ab/renpy",
|
||||
"/home/tom/ab/android/",
|
||||
"/home/tom/ab/android/python-for-android",
|
||||
"/home/tom/ab/ripe/renios",
|
||||
"/home/tom/ab/renpy-deps",
|
||||
"/home/tom/ab/pygame_sdl2",
|
||||
]
|
||||
|
||||
version = ".".join(str(i) for i in version_tuple)
|
||||
short_version = ".".join(str(i) for i in version_tuple[:3])
|
||||
print "Version", version
|
||||
@@ -17,9 +26,36 @@ ap.add_argument("--release", action="store_true")
|
||||
ap.add_argument("--prerelease", action="store_true")
|
||||
ap.add_argument("--experimental", action="store_true")
|
||||
ap.add_argument("--no-tag", "-n", action="store_true")
|
||||
ap.add_argument("--push-tags", action="store_true")
|
||||
ap.add_argument("--delete-tag")
|
||||
|
||||
args = ap.parse_args()
|
||||
|
||||
if args.delete_tag:
|
||||
for i in SOURCE:
|
||||
|
||||
os.chdir(i)
|
||||
|
||||
if i == SOURCE[0]:
|
||||
tag = args.delete_tag
|
||||
else:
|
||||
tag = "renpy-" + args.delete_tag
|
||||
|
||||
subprocess.call([ "git", "tag", "-d", tag, ])
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
if args.push_tags:
|
||||
for i in SOURCE:
|
||||
os.chdir(i)
|
||||
|
||||
if subprocess.call([ "git", "push", "--tags" ]):
|
||||
print "Tags not pushed: {}".format(os.getcwd())
|
||||
sys.exit(1)
|
||||
|
||||
print "Pushed tags."
|
||||
sys.exit(0)
|
||||
|
||||
if args.release:
|
||||
links = [ "release", "prerelease", "experimental" ]
|
||||
tag = True
|
||||
@@ -33,23 +69,28 @@ else:
|
||||
links = [ ]
|
||||
tag = False
|
||||
|
||||
if args.no_tag:
|
||||
tag = False
|
||||
|
||||
def check_dirty():
|
||||
if args.no_tag:
|
||||
return
|
||||
if tag:
|
||||
for i in SOURCE:
|
||||
os.chdir(i)
|
||||
|
||||
if subprocess.check_call([ "git", "diff", "--quiet", "HEAD" ]):
|
||||
print "Directory not checked in: {}".format(os.getcwd())
|
||||
sys.exit(1)
|
||||
if subprocess.call([ "git", "diff", "--quiet", "HEAD" ]):
|
||||
print "Directory not checked in: {}".format(os.getcwd())
|
||||
sys.exit(1)
|
||||
|
||||
os.chdir("/home/tom/ab/renpy")
|
||||
check_dirty()
|
||||
for i in SOURCE:
|
||||
|
||||
os.chdir("/home/tom/ab/renpy/android")
|
||||
check_dirty()
|
||||
os.chdir(i)
|
||||
|
||||
if i == SOURCE[0]:
|
||||
tag = version
|
||||
else:
|
||||
tag = "renpy-" + version
|
||||
|
||||
subprocess.check_call([ "git", "tag", "-a", tag, "-m", "Tagging Ren'Py + " + version + " release." ])
|
||||
|
||||
if not args.no_tag:
|
||||
subprocess.check_call([ "git", "tag", "-a", "rapt-" + version, "-m", "Tagging RAPT release." ])
|
||||
|
||||
os.chdir("/home/tom/ab/renpy/dl")
|
||||
|
||||
@@ -58,11 +99,7 @@ for i in links:
|
||||
os.unlink(i)
|
||||
os.symlink(short_version, i)
|
||||
|
||||
os.chdir("/home/tom/ab/renpy")
|
||||
|
||||
if tag and not args.no_tag:
|
||||
cmd = [ "git", "tag", "-a", version, "-m", "Ren'Py " + version ]
|
||||
subprocess.check_call(cmd)
|
||||
|
||||
os.chdir("/home/tom/ab/website")
|
||||
subprocess.check_call("./upload.sh")
|
||||
|
||||
print "Version", version
|
||||
|
||||
+1
-1
@@ -1,2 +1,2 @@
|
||||
lib\windows-i686\python.exe -OO renpy.py
|
||||
lib\windows-i686\python.exe -OO renpy.py tutorial
|
||||
pause
|
||||
|
||||
+33
-34
@@ -1,4 +1,4 @@
|
||||
#!/home/tom/bin/renpython -O
|
||||
#!/home/tom/ab/renpy/lib/linux-x86_64/python -O
|
||||
|
||||
# Builds a distribution of Ren'Py.
|
||||
|
||||
@@ -10,6 +10,9 @@ import subprocess
|
||||
import argparse
|
||||
import glob
|
||||
|
||||
if not sys.flags.optimize:
|
||||
raise Exception("Optimization disabled.")
|
||||
|
||||
ROOT = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
def copy_tutorial_file(src, dest):
|
||||
@@ -45,6 +48,8 @@ def main():
|
||||
ap = argparse.ArgumentParser()
|
||||
ap.add_argument("version")
|
||||
ap.add_argument("--fast", action="store_true")
|
||||
ap.add_argument("--pygame", action="store", default=None)
|
||||
ap.add_argument("--no-rapt", action="store_true")
|
||||
|
||||
args = ap.parse_args()
|
||||
|
||||
@@ -56,7 +61,6 @@ def main():
|
||||
import renpy
|
||||
|
||||
match_version = ".".join(str(i) for i in renpy.version_tuple[:2]) #@UndefinedVariable
|
||||
zip_version = ".".join(str(i) for i in renpy.version_tuple[:3]) #@UndefinedVariable
|
||||
|
||||
s = subprocess.check_output([ "git", "describe", "--tags", "--dirty", "--match", match_version ])
|
||||
parts = s.strip().split("-")
|
||||
@@ -80,13 +84,13 @@ def main():
|
||||
reload(sys.modules['renpy'])
|
||||
|
||||
# Check that the versions match.
|
||||
full_version = ".".join(str(i) for i in renpy.version_tuple) #@UndefinedVariable
|
||||
if args.version != "renpy-experimental" \
|
||||
and not args.version.startswith("renpy-nightly-") \
|
||||
full_version = renpy.version_only #@UndefinedVariable
|
||||
if "-" not in args.version \
|
||||
and not full_version.startswith(args.version):
|
||||
|
||||
raise Exception("The command-line and Ren'Py versions do not match.")
|
||||
|
||||
os.environ['RENPY_BUILD_VERSION'] = args.version
|
||||
|
||||
# The destination directory.
|
||||
destination = os.path.join("dl", args.version)
|
||||
|
||||
@@ -103,42 +107,29 @@ def main():
|
||||
# Compile all the python files.
|
||||
compileall.compile_dir("renpy/", ddir="renpy/", force=1, quiet=1)
|
||||
|
||||
# Generate launcher/game/script_version.rpy
|
||||
with open("launcher/game/script_version.rpy", "w") as f:
|
||||
f.write("init -999 python:\n")
|
||||
f.write(" config.script_version = {!r}\n".format(renpy.version_tuple[:3])) # @UndefinedVariable
|
||||
|
||||
# Compile the various games.
|
||||
if not args.fast:
|
||||
for i in [ 'tutorial', 'launcher', 'the_question' ] + glob.glob("templates/*"):
|
||||
for i in [ 'tutorial', 'launcher', 'the_question' ]:
|
||||
print "Compiling", i
|
||||
subprocess.check_call(["./renpy.sh", i, "quit" ])
|
||||
|
||||
|
||||
# Kick off the rapt build.
|
||||
if not args.fast:
|
||||
out = open("/tmp/rapt_build.txt", "wb")
|
||||
|
||||
print("Building RAPT.")
|
||||
print "Cleaning RAPT."
|
||||
|
||||
android = os.path.abspath("android")
|
||||
sys.path.insert(0, os.path.join(ROOT, "rapt", "buildlib"))
|
||||
|
||||
rapt_build = subprocess.Popen([
|
||||
os.path.join(android, "build_renpy.sh"),
|
||||
"renpy",
|
||||
ROOT,
|
||||
],
|
||||
cwd = android,
|
||||
stdout=out,
|
||||
stderr=out)
|
||||
import rapt.interface # @UnresolvedImport
|
||||
import rapt.build # @UnresolvedImport
|
||||
|
||||
code = rapt_build.wait()
|
||||
interface = rapt.interface.Interface()
|
||||
rapt.build.distclean(interface)
|
||||
|
||||
if code:
|
||||
print "RAPT build failed. The output is in /tmp/rapt_build.txt."
|
||||
sys.exit(1)
|
||||
else:
|
||||
print "RAPT build succeeded."
|
||||
print "Compiling RAPT and renios."
|
||||
|
||||
compileall.compile_dir("rapt/buildlib/", ddir="rapt/buildlib/", quiet=1)
|
||||
compileall.compile_dir("renios/buildlib/", ddir="renios/buildlib/", quiet=1)
|
||||
|
||||
if not os.path.exists(destination):
|
||||
os.makedirs(destination)
|
||||
@@ -178,12 +169,17 @@ def main():
|
||||
os.path.join(destination, "updates.json"),
|
||||
])
|
||||
|
||||
# Package pygame_sdl2.
|
||||
if not args.fast:
|
||||
subprocess.check_call([
|
||||
"pygame_sdl2/distribute.py",
|
||||
"for-renpy-" + args.version,
|
||||
"--dest",
|
||||
os.path.abspath(destination)
|
||||
])
|
||||
|
||||
# Write 7z.exe.
|
||||
sdk = "renpy-{}-sdk".format(zip_version)
|
||||
|
||||
if args.version.startswith("renpy-nightly-"):
|
||||
sdk = args.version + "-sdk"
|
||||
sdk = "renpy-{}-sdk".format(args.version)
|
||||
|
||||
if not args.fast:
|
||||
|
||||
@@ -233,5 +229,8 @@ def main():
|
||||
|
||||
print
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
@@ -2,131 +2,177 @@
|
||||
<head>
|
||||
<title>README</title>
|
||||
<style>
|
||||
|
||||
BODY {
|
||||
background: #fff;
|
||||
color: #444;
|
||||
padding-left: 20%;
|
||||
padding-top: 1em;
|
||||
padding-bottom: 1em;
|
||||
padding-right: 20%;
|
||||
font-family: sans-serif;
|
||||
line-height: 1.6em;
|
||||
background: #fff;
|
||||
color: #444;
|
||||
padding-left: 20%;
|
||||
padding-top: 1em;
|
||||
padding-bottom: 1em;
|
||||
padding-right: 20%;
|
||||
font-family: sans-serif;
|
||||
line-height: 1.6em;
|
||||
}
|
||||
|
||||
DT {
|
||||
font-weight: bold;
|
||||
margin-top: .33em;
|
||||
font-weight: bold;
|
||||
margin-top: .33em;
|
||||
}
|
||||
|
||||
H2 {
|
||||
color: #000;
|
||||
margin-left: -2.5em;
|
||||
color: #000;
|
||||
margin-left: -2.5em;
|
||||
}
|
||||
|
||||
H3 {
|
||||
color: #000;
|
||||
margin-left: -1.5em;
|
||||
color: #000;
|
||||
margin-left: -1.5em;
|
||||
}
|
||||
|
||||
.editsection {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="renpy_help"></div>
|
||||
<h2>Basic Help</h2>
|
||||
<p>
|
||||
To advance through the game, <tt>left-click</tt> or press the <tt>space</tt> or <tt>enter</tt> keys. When at a menu,
|
||||
<tt>left-click</tt> to make a choice, or use the arrow keys to select a choice and <tt>enter</tt> to activate it.
|
||||
</p>
|
||||
|
||||
<h3>Game Menu</h3>
|
||||
<p>
|
||||
When playing a game, <tt>right-click</tt> or press the <tt>escape</tt> key to enter the game menu. The game menu
|
||||
gives the following choices:
|
||||
</p>
|
||||
|
||||
<dl>
|
||||
<dt>Return</dt>
|
||||
<dd>Returns to the game.</dd>
|
||||
<dt>Save Game</dt>
|
||||
<dd>Allows you to save a game by clicking on a save slot.</dd>
|
||||
<dt>Load Game</dt>
|
||||
<dd>Allows you to load a game by clicking on a save slot. Clicking on "Auto" accesses the automatic save slots.</dd>
|
||||
<dt>Preferences</dt>
|
||||
<dd>
|
||||
Changes the game preferences (options/configuration):
|
||||
<dl>
|
||||
<dt>Display</dt>
|
||||
<dd>Switches between fullscreen and windowed mode.</dd>
|
||||
<dt>Transitions</dt>
|
||||
<dd>Controls the display of transitions between game screens.</dd>
|
||||
<dt>Text Speed</dt>
|
||||
<dd>Controls the rate at which text displays. The further to the right this slider is, the faster the text
|
||||
will display. All the way to the right causes text to be shown instantly.</dd>
|
||||
<dt>Joystick</dt>
|
||||
<dd>Lets you control the game using a joystick.</dd>
|
||||
<dt>Skip</dt>
|
||||
<dd>Chooses between skipping messages that have been already seen (in any play through the game), and
|
||||
skipping all messages.</dd>
|
||||
<dt>Begin Skipping</dt>
|
||||
<dd>Returns to the game, while skipping.</dd>
|
||||
<dt>After Choices</dt>
|
||||
<dd>Controls if skipping stops upon reaching a menu.</dd>
|
||||
<dt>Auto-Forward Time</dt>
|
||||
<dd>Controls automatic advance. The further to the left this slider is, the shorter the amount of time
|
||||
before the game advances. All the way to the right means text will never auto-forward.</dd>
|
||||
<dt>Music, Sound, and Voice Volume</dt>
|
||||
<dd>Controls the volume of the Music, Sound effect, and Voice channels, respectively. The further to the
|
||||
right these are, the louder the volume.</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
<dt>Main Menu</dt>
|
||||
<dd>Returns to the main menu, ending the current game.</dd>
|
||||
<dt>Help</dt>
|
||||
<dd>Shows this help screen.</dd>
|
||||
<dt>Quit</dt>
|
||||
<dd>Exits the game; the game will be closed and ended.</dd>
|
||||
</dl>
|
||||
|
||||
<h3>Key and Mouse Bindings</h3>
|
||||
<dl>
|
||||
<dt>Left-click, Enter</dt>
|
||||
<dd>Advances through the game, activates menu choices, buttons, and sliders.</dd>
|
||||
<dt>Space</dt>
|
||||
<dd>Advances through the game, but does not activate choices.</dd>
|
||||
<dt>Arrow Keys</dt>
|
||||
<dd>Navigates between menu choices, buttons, and sliders.</dd>
|
||||
<dt>Ctrl</dt>
|
||||
<dd>Causes skipping to occur while the ctrl key is held down.</dd>
|
||||
<dt>Tab</dt>
|
||||
<dd>Toggles skipping, causing it to occur until tab is pressed again.</dd>
|
||||
<dt>Mousewheel-Up, PageUp</dt>
|
||||
<dd>Causes rollback to occur. Rollback reverses the game back in time, showing prior text and even allowing
|
||||
menu choices to be changed.</dd>
|
||||
<dt>Mousewheel-Down, PageDown</dt>
|
||||
<dd>Causes rollforward to occur, canceling out a previous rollback.</dd>
|
||||
<dt>Right-click, Escape</dt>
|
||||
<dd>Enters the game menu. When in the game menu, returns to the game.</dd>
|
||||
<dt>Middle-click, H</dt>
|
||||
<dd>Hides the text window and other transient displays.</dd>
|
||||
<dt>F</dt>
|
||||
<dd>Toggles fullscreen mode</dd>
|
||||
<dt>S</dt>
|
||||
<dd>Takes a screenshot, saving it in a file named screenshotxxxx.png, where xxxx is a serial number.</dd>
|
||||
<dt>Alt-M, Command-H</dt>
|
||||
<dd>Hides (iconifies) the window.</dd>
|
||||
<dt>Alt-F4, Command-Q</dt>
|
||||
<dd>Quits the game.</dd>
|
||||
<dt>Delete</dt>
|
||||
<dd>When a save slot is selected, deletes that save slot.</dd>
|
||||
<dt>v</dt>
|
||||
<dd>
|
||||
Toggles self-voicing mode, which reads text to the user using an os-supplied speech synthesizer. For more
|
||||
information, please read the <a href="http://www.renpy.org/doc/html/self_voicing.html">self-voicing</a>
|
||||
documentation.
|
||||
</dd>
|
||||
<dt>Shift+C</dt>
|
||||
<dd>Toggles clipboard-voicing mode, which copies text to the clipboard so it can be read by a screen reader.</dd>
|
||||
</dl>
|
||||
|
||||
<p><a name="Basic_Help" id="Basic_Help"></a></p>
|
||||
<h2><span class="editsection">[<a href="/w/index.php?title=renpy/Help&action=edit&section=1" title="Edit section: Basic Help">edit</a>]</span> <span class="mw-headline">Basic Help</span></h2>
|
||||
<p>To advance through the game, <tt>left-click</tt> or press the <tt>space</tt> or <tt>enter</tt> keys. When at a menu, <tt>left-click</tt> to make a choice, or use the arrow keys to select a choice and <tt>enter</tt> to activate it.</p>
|
||||
<p><a name="Game_Menu" id="Game_Menu"></a></p>
|
||||
<h3><span class="editsection">[<a href="/w/index.php?title=renpy/Help&action=edit&section=2" title="Edit section: Game Menu">edit</a>]</span> <span class="mw-headline">Game Menu</span></h3>
|
||||
<p>When playing a game, <tt>right-click</tt> or press the <tt>escape</tt> key to enter the game menu. The game menu gives the following choices:</p>
|
||||
<dl>
|
||||
<dt>Return</dt>
|
||||
<dd>Returns to the game.</dd>
|
||||
<dt>Save Game</dt>
|
||||
<dd>Allows you to save a game by clicking on a save slot.</dd>
|
||||
<dt>Load Game</dt>
|
||||
<dd>Allows you to load a game by clicking on a save slot. Clicking on "Auto" accesses the automatic save slots.</dd>
|
||||
<dt>Preferences</dt>
|
||||
<dd>Changes the game preferences (options/configuration):
|
||||
<dl>
|
||||
<dt>Display</dt>
|
||||
<dd>Switches between fullscreen and windowed mode.</dd>
|
||||
<dt>Transitions</dt>
|
||||
<dd>Controls the display of transitions between game screens.</dd>
|
||||
<dt>Text Speed</dt>
|
||||
<dd>Controls the rate at which text displays. The further to the right this slider is, the faster the text will display. All the way to the right causes text to be shown instantly.</dd>
|
||||
<dt>Joystick</dt>
|
||||
<dd>Lets you control the game using a joystick.</dd>
|
||||
<dt>Skip</dt>
|
||||
<dd>Chooses between skipping messages that have been already seen (in any play through the game), and skipping all messages.</dd>
|
||||
<dt>Begin Skipping</dt>
|
||||
<dd>Returns to the game, while skipping.</dd>
|
||||
<dt>After Choices</dt>
|
||||
<dd>Controls if skipping stops upon reaching a menu.</dd>
|
||||
<dt>Auto-Forward Time</dt>
|
||||
<dd>Controls automatic advance. The further to the left this slider is, the shorter the amount of time before the game advances. All the way to the right means text will never auto-forward.</dd>
|
||||
<dt>Music, Sound, and Voice Volume</dt>
|
||||
<dd>Controls the volume of the Music, Sound effect, and Voice channels, respectively. The further to the right these are, the louder the volume.</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt>Main Menu</dt>
|
||||
<dd>Returns to the main menu, ending the current game.</dd>
|
||||
<dt>Help</dt>
|
||||
<dd>Shows this help screen.</dd>
|
||||
<dt>Quit</dt>
|
||||
<dd>Exits the game; the game will be closed and ended.</dd>
|
||||
</dl>
|
||||
<p><a name="Key_and_Mouse_Bindings" id="Key_and_Mouse_Bindings"></a></p>
|
||||
<h3><span class="editsection">[<a href="/w/index.php?title=renpy/Help&action=edit&section=3" title="Edit section: Key and Mouse Bindings">edit</a>]</span> <span class="mw-headline">Key and Mouse Bindings</span></h3>
|
||||
<dl>
|
||||
<dt>Left-click, Enter</dt>
|
||||
<dd>Advances through the game, activates menu choices, buttons, and sliders.</dd>
|
||||
<dt>Space</dt>
|
||||
<dd>Advances through the game, but does not activate choices.</dd>
|
||||
<dt>Arrow Keys</dt>
|
||||
<dd>Selects menu choices, buttons, and sliders.</dd>
|
||||
<dt>Ctrl</dt>
|
||||
<dd>Causes skipping to occur while the ctrl key is held down.</dd>
|
||||
<dt>Tab</dt>
|
||||
<dd>Toggles skipping, causing it to occur until tab is pressed again.</dd>
|
||||
<dt>Mousewheel-Up, PageUp</dt>
|
||||
<dd>Causes rollback to occur. Rollback reverses the game back in time, showing prior text and even allowing menu choices to be changed.</dd>
|
||||
<dt>Mousewheel-Down, PageDown</dt>
|
||||
<dd>Causes rollforward to occur, cancelling out a previous rollback.</dd>
|
||||
<dt>Right-click, Escape</dt>
|
||||
<dd>Enters the game menu. When in the game menu, returns to the game.</dd>
|
||||
<dt>Middle-click, H</dt>
|
||||
<dd>Hides the text window and other transient displays.</dd>
|
||||
<dt>F</dt>
|
||||
<dd>Toggles fullscreen mode</dd>
|
||||
<dt>S</dt>
|
||||
<dd>Takes a screenshot, saving it in a file named screenshotxxxx.png, where xxxx is a serial number.</dd>
|
||||
<dt>Alt-M, Command-H</dt>
|
||||
<dd>Hides (iconifies) the window.</dd>
|
||||
<dt>Alt-F4, Command-Q</dt>
|
||||
<dd>Quits the game.</dd>
|
||||
<dt>Delete</dt>
|
||||
<dd>When a save slot is selected, deletes that save slot.</dd>
|
||||
<dt>v</dt>
|
||||
<dd>Toggles self-voicing mode, which reads text to the user using an os-supplied
|
||||
speech synthesizer. For more information, please read the <a href="http://www.renpy.org/dev-doc/html/self_voicing.html">self-voicing</a>
|
||||
documentation.</dd>
|
||||
</dl>
|
||||
<p><a name="Legal_Notice" id="Legal_Notice"></a></p>
|
||||
<h2><span class="editsection">[<a href="/w/index.php?title=renpy/Help&action=edit&section=4" title="Edit section: Legal Notice">edit</a>]</span> <span class="mw-headline">Legal Notice</span></h2>
|
||||
<p>This game uses source code from a number of open source projects. For a list, and a location where the source code can be downloaded from, please view the LICENSE.txt file in the renpy directory, or visit <a href="http://www.renpy.org/wiki/renpy/License" class="external free" title="http://www.renpy.org/wiki/renpy/License" rel="nofollow">http://www.renpy.org/wiki/renpy/License</a> .</p>
|
||||
<h3>Controller Support and Bindings</h3>
|
||||
|
||||
<p>
|
||||
This game should automatically detect and use game controllers supported by
|
||||
SDL2. Other controllers can be configured using third-party configuration tools
|
||||
like the <a href="http://www.generalarcade.com/gamepadtool/">SDL2 Gampad Tool</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
A small number of systems may have problems using detected game controllers. Should
|
||||
that happen, hold down shift as the game starts, and disable the controller support.
|
||||
</p>
|
||||
|
||||
<p>The following bindings are used:</p>
|
||||
|
||||
<dl>
|
||||
<dt>Right Trigger, A (Bottom Button)</dt>
|
||||
<dd>Advances through the game, activates menu choices, buttons, and sliders.</dd>
|
||||
|
||||
<dt>Guide, Start</dt>
|
||||
<dd>Enters the game menu. When in the game menu, returns to the game.</dd>
|
||||
|
||||
<dt>Directional Pad, Analog Sticks</dt>
|
||||
<dd>Navigates between menu choices, buttons, and sliders.</dd>
|
||||
|
||||
<dt>Left Trigger, Left Shoulder, Back</dt>
|
||||
<dd>Causes rollback to occur. Rollback reverses the game back in time, showing prior text and even allowing
|
||||
menu choices to be changed.</dd>
|
||||
|
||||
<dt>Right Shoulder</dt>
|
||||
<dd>Causes rollforward to occur, canceling out a previous rollback.</dd>
|
||||
|
||||
<dt>Y (Top Button)</dt>
|
||||
<dd>Hides the text window and other transient displays.</dd>
|
||||
|
||||
</dl>
|
||||
|
||||
<h2>Legal Notice</h2>
|
||||
<p>
|
||||
This program contains free software licensed under a number of licenses, including the GNU Lesser Public License. A
|
||||
complete list of software is available at <a href="http://www.renpy.org/doc/html/license.html">http://www.renpy.org/doc/html/license.html</a>.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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
|
||||
|
||||
+100
-212
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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
|
||||
@@ -43,15 +43,18 @@ init python:
|
||||
PLAY_KEYS_TEXT = _("Opens the file containing the Google Play keys in the editor.\n\nThis is only needed if the application is using an expansion APK. Read the documentation for more details.")
|
||||
BUILD_TEXT = _("Builds the Android package.")
|
||||
BUILD_AND_INSTALL_TEXT = _("Builds the Android package, and installs it on an Android device connected to your computer.")
|
||||
BUILD_INSTALL_AND_LAUNCH_TEXT = _("Builds the Android package, installs it on an Android device connected to your computer, then launches the app on your device.")
|
||||
|
||||
CONNECT_TEXT = _("Connects to an Android device running ADB in TCP/IP mode.")
|
||||
DISCONNECT_TEXT = _("Disconnects from an Android device running ADB in TCP/IP mode.")
|
||||
LOGCAT_TEXT = _("Retrieves the log from the Android device and writes it to a file.")
|
||||
|
||||
|
||||
import subprocess
|
||||
import re
|
||||
import os
|
||||
import json
|
||||
import glob
|
||||
|
||||
def find_rapt():
|
||||
|
||||
@@ -61,12 +64,11 @@ init python:
|
||||
|
||||
RAPT_PATH = os.path.join(config.renpy_base, "rapt")
|
||||
|
||||
if os.path.isdir(RAPT_PATH):
|
||||
if os.path.isdir(RAPT_PATH) and check_hash_txt("rapt"):
|
||||
import sys
|
||||
sys.path.insert(0, os.path.join(RAPT_PATH, "buildlib"))
|
||||
else:
|
||||
RAPT_PATH = None
|
||||
RAPT_PATH is None
|
||||
|
||||
find_rapt()
|
||||
|
||||
@@ -79,6 +81,8 @@ init python:
|
||||
import rapt.install_sdk
|
||||
import rapt.plat
|
||||
import rapt.interface
|
||||
|
||||
rapt.plat.renpy = True
|
||||
else:
|
||||
rapt = None
|
||||
|
||||
@@ -131,184 +135,6 @@ init python:
|
||||
else:
|
||||
return None
|
||||
|
||||
class AndroidInterface(object):
|
||||
|
||||
def __init__(self):
|
||||
self.process = None
|
||||
self.filename = project.current.temp_filename("android.txt")
|
||||
|
||||
self.info_msg = ""
|
||||
|
||||
with open(self.filename, "w"):
|
||||
pass
|
||||
|
||||
def log(self, msg):
|
||||
with open(self.filename, "a") as f:
|
||||
f.write("\n")
|
||||
f.write(msg)
|
||||
f.write("\n")
|
||||
|
||||
def info(self, prompt):
|
||||
self.info_msg = prompt
|
||||
interface.processing(prompt, pause=False)
|
||||
self.log(prompt)
|
||||
|
||||
def yesno(self, prompt, submessage=None):
|
||||
return interface.yesno(prompt, submessage=submessage)
|
||||
|
||||
def yesno_choice(self, prompt, default=None):
|
||||
choices = [ (True, "Yes"), (False, "No") ]
|
||||
return interface.choice(prompt, choices, default)
|
||||
|
||||
def terms(self, url, prompt):
|
||||
submessage = _("{a=%s}%s{/a}") % (url, url)
|
||||
|
||||
if not interface.yesno(prompt, submessage=submessage):
|
||||
self.fail("You must accept the terms and conditions to proceed.", edit=False)
|
||||
|
||||
|
||||
def input(self, prompt, empty=None):
|
||||
|
||||
if empty is None:
|
||||
empty = ''
|
||||
|
||||
while True:
|
||||
rv = interface.input(_("QUESTION"), prompt, default=empty, cancel=Jump("android"))
|
||||
|
||||
rv = rv.strip()
|
||||
|
||||
if rv:
|
||||
return rv
|
||||
|
||||
def choice(self, prompt, choices, default):
|
||||
return interface.choice(prompt, choices, default, cancel=Jump("android"))
|
||||
|
||||
def fail(self, prompt, edit=True):
|
||||
self.log(prompt)
|
||||
prompt = re.sub(r'(http://\S+)', r'{a=\1}\1{/a}', prompt)
|
||||
|
||||
# Open android.txt in the editor.
|
||||
if edit:
|
||||
editor.EditAbsolute(self.filename)()
|
||||
|
||||
interface.error(prompt, label="android")
|
||||
|
||||
def success(self, prompt):
|
||||
self.log(prompt)
|
||||
interface.info(prompt, pause=False)
|
||||
|
||||
def final_success(self, prompt):
|
||||
self.log(prompt)
|
||||
interface.info(prompt, label="android")
|
||||
|
||||
def run_yes_thread(self):
|
||||
import time
|
||||
|
||||
try:
|
||||
while self.run_yes:
|
||||
self.process.stdin.write('y\n')
|
||||
self.process.stdin.flush()
|
||||
time.sleep(.2)
|
||||
except:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
def call(self, cmd, cancel=False, use_path=False, yes=False):
|
||||
|
||||
print
|
||||
print " ".join(cmd)
|
||||
|
||||
self.cmd = cmd
|
||||
|
||||
f = open(self.filename, "a")
|
||||
|
||||
f.write("\n\n\n")
|
||||
|
||||
if cancel:
|
||||
cancel_action = self.cancel
|
||||
else:
|
||||
cancel_action = None
|
||||
|
||||
startupinfo = None
|
||||
if renpy.windows:
|
||||
startupinfo = subprocess.STARTUPINFO()
|
||||
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
|
||||
|
||||
self.yes_thread = None
|
||||
|
||||
try:
|
||||
interface.processing(self.info_msg, show_screen=True, cancel=cancel_action)
|
||||
|
||||
kwargs = { }
|
||||
if yes:
|
||||
kwargs["stdin"] = subprocess.PIPE
|
||||
|
||||
try:
|
||||
self.process = subprocess.Popen(cmd, cwd=RAPT_PATH, stdout=f, stderr=f, startupinfo=startupinfo, **kwargs)
|
||||
except:
|
||||
import traceback
|
||||
traceback.print_exc(file=f)
|
||||
raise
|
||||
|
||||
if yes:
|
||||
import threading
|
||||
self.run_yes = True
|
||||
self.yes_thread = threading.Thread(target=self.run_yes_thread)
|
||||
self.yes_thread.daemon = True
|
||||
self.yes_thread.start()
|
||||
|
||||
renpy.call_screen("android_process", interface=self)
|
||||
finally:
|
||||
f.close()
|
||||
interface.hide_screen()
|
||||
|
||||
if yes and self.yes_thread:
|
||||
self.run_yes = False
|
||||
self.yes_thread.join()
|
||||
|
||||
self.process = None
|
||||
self.yes_thread = None
|
||||
|
||||
def check_process(self):
|
||||
rv = self.process.poll()
|
||||
|
||||
if rv is not None:
|
||||
if rv:
|
||||
raise subprocess.CalledProcessError(rv, self.cmd)
|
||||
else:
|
||||
return True
|
||||
|
||||
def download(self, url, dest):
|
||||
try:
|
||||
d = Downloader(url, dest)
|
||||
cancel_action = [ d.cancel, Jump("android") ]
|
||||
interface.processing(self.info_msg, show_screen=True, cancel=cancel_action, bar_value=DownloaderValue(d))
|
||||
ui.timer(.1, action=d.check, repeat=True)
|
||||
ui.interact()
|
||||
finally:
|
||||
interface.hide_screen()
|
||||
|
||||
def background(self, f):
|
||||
try:
|
||||
t = threading.Thread(target=f)
|
||||
t.start()
|
||||
|
||||
interface.processing(self.info_msg, show_screen=True)
|
||||
|
||||
while t.is_alive():
|
||||
renpy.pause(0)
|
||||
t.join(0.25)
|
||||
|
||||
finally:
|
||||
interface.hide_screen()
|
||||
|
||||
|
||||
def cancel(self):
|
||||
if self.process:
|
||||
self.process.terminate()
|
||||
|
||||
renpy.jump("android")
|
||||
|
||||
|
||||
class AndroidBuild(Action):
|
||||
"""
|
||||
@@ -321,22 +147,6 @@ init python:
|
||||
def __call__(self):
|
||||
renpy.jump(self.label)
|
||||
|
||||
class LaunchEmulator(Action):
|
||||
|
||||
def __init__(self, emulator, variants):
|
||||
self.emulator = emulator
|
||||
self.variants = variants
|
||||
|
||||
def __call__(self):
|
||||
|
||||
env = {
|
||||
"RENPY_EMULATOR" : self.emulator,
|
||||
"RENPY_VARIANT" : self.variants,
|
||||
}
|
||||
|
||||
p = project.current
|
||||
p.launch(env=env)
|
||||
|
||||
def update_android_json(p, gui):
|
||||
"""
|
||||
Updates .android.json to include the google play information.
|
||||
@@ -372,7 +182,7 @@ init python:
|
||||
with open(filename, "w") as f:
|
||||
json.dump(android_json, f)
|
||||
|
||||
def android_build(command, p=None, gui=True):
|
||||
def android_build(command, p=None, gui=True, launch=False, destination=None, opendir=False):
|
||||
"""
|
||||
This actually builds the package.
|
||||
"""
|
||||
@@ -389,7 +199,7 @@ init python:
|
||||
|
||||
if gui:
|
||||
reporter = distribute.GuiReporter()
|
||||
rapt_interface = AndroidInterface()
|
||||
rapt_interface = MobileInterface("android")
|
||||
else:
|
||||
reporter = distribute.TextReporter()
|
||||
rapt_interface = rapt.interface.Interface()
|
||||
@@ -403,8 +213,57 @@ init python:
|
||||
report_success=False,
|
||||
)
|
||||
|
||||
def finished(files, destination=destination):
|
||||
|
||||
source_dir = rapt.plat.path("bin")
|
||||
|
||||
try:
|
||||
|
||||
destination_dir = destination
|
||||
|
||||
# Use default destination if not configured
|
||||
if gui and destination is None:
|
||||
build = p.dump['build']
|
||||
destination = build["destination"]
|
||||
|
||||
if destination != "-dists":
|
||||
parent = os.path.dirname(p.path)
|
||||
destination_dir = os.path.join(parent, destination)
|
||||
|
||||
except:
|
||||
destination_dir = None
|
||||
|
||||
dir_to_open = source_dir
|
||||
|
||||
if destination_dir is not None:
|
||||
|
||||
reporter.info(_("Copying Android files to distributions directory."))
|
||||
|
||||
try:
|
||||
os.makedirs(destination_dir)
|
||||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
|
||||
for i in files:
|
||||
shutil.copy(i, renpy.fsencode(destination_dir))
|
||||
|
||||
dir_to_open = destination_dir
|
||||
|
||||
except:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
pass
|
||||
|
||||
if opendir:
|
||||
store.OpenDirectory(dir_to_open)()
|
||||
|
||||
|
||||
with interface.nolinks():
|
||||
rapt.build.build(rapt_interface, dist, command)
|
||||
rapt.build.build(rapt_interface, dist, command, launch=launch, finished=finished)
|
||||
|
||||
|
||||
|
||||
# The android support can stick unicode into os.environ. Fix that.
|
||||
init 100 python:
|
||||
@@ -468,7 +327,8 @@ screen android:
|
||||
|
||||
frame style "l_indent":
|
||||
|
||||
has vbox
|
||||
has hbox:
|
||||
spacing 15
|
||||
|
||||
textbutton _("Phone"):
|
||||
action LaunchEmulator("touch", "small phone touch android")
|
||||
@@ -478,8 +338,8 @@ screen android:
|
||||
action LaunchEmulator("touch", "medium tablet touch android")
|
||||
hovered tt.Action(TABLET_TEXT)
|
||||
|
||||
textbutton _("Television / OUYA"):
|
||||
action LaunchEmulator("tv", "small tv ouya android")
|
||||
textbutton _("Television"):
|
||||
action LaunchEmulator("tv", "small tv android")
|
||||
hovered tt.Action(OUYA_TEXT)
|
||||
|
||||
|
||||
@@ -514,6 +374,10 @@ screen android:
|
||||
action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build_and_install"))
|
||||
hovered tt.Action(BUILD_AND_INSTALL_TEXT)
|
||||
|
||||
textbutton _("Build, Install & Launch"):
|
||||
action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build_install_and_launch"))
|
||||
hovered tt.Action(BUILD_INSTALL_AND_LAUNCH_TEXT)
|
||||
|
||||
add SPACER
|
||||
add SEPARATOR2
|
||||
|
||||
@@ -537,6 +401,10 @@ screen android:
|
||||
action AndroidIfState(state, ANDROID_OK, Jump("android_disconnect"))
|
||||
hovered tt.Action(DISCONNECT_TEXT)
|
||||
|
||||
textbutton _("Logcat"):
|
||||
action AndroidIfState(state, ANDROID_NO_KEY, Jump("logcat"))
|
||||
hovered tt.Action(LOGCAT_TEXT)
|
||||
|
||||
|
||||
# Right side.
|
||||
frame:
|
||||
@@ -576,7 +444,7 @@ label android_installsdk:
|
||||
|
||||
python:
|
||||
with interface.nolinks():
|
||||
rapt.install_sdk.install_sdk(AndroidInterface())
|
||||
rapt.install_sdk.install_sdk(MobileInterface("android"))
|
||||
|
||||
jump android
|
||||
|
||||
@@ -584,14 +452,14 @@ label android_installsdk:
|
||||
label android_configure:
|
||||
|
||||
python:
|
||||
rapt.configure.configure(AndroidInterface(), project.current.path)
|
||||
rapt.configure.configure(MobileInterface("android", edit=False), project.current.path)
|
||||
|
||||
jump android
|
||||
|
||||
|
||||
label android_build:
|
||||
|
||||
$ android_build([ 'release' ])
|
||||
$ android_build([ 'release' ], opendir=True)
|
||||
|
||||
jump android
|
||||
|
||||
@@ -602,6 +470,13 @@ label android_build_and_install:
|
||||
|
||||
jump android
|
||||
|
||||
label android_build_install_and_launch:
|
||||
|
||||
$ android_build([ 'release', 'install' ], launch=True)
|
||||
|
||||
jump android
|
||||
|
||||
|
||||
label android_connect:
|
||||
|
||||
python hide:
|
||||
@@ -641,7 +516,7 @@ label android_connect:
|
||||
|
||||
persistent.connect_address = address
|
||||
|
||||
rapt_interface = AndroidInterface()
|
||||
rapt_interface = MobileInterface("android")
|
||||
rapt.build.connect(rapt_interface, address)
|
||||
|
||||
jump android
|
||||
@@ -650,23 +525,36 @@ label android_disconnect:
|
||||
|
||||
python hide:
|
||||
|
||||
rapt_interface = AndroidInterface()
|
||||
rapt_interface = MobileInterface("android")
|
||||
rapt.build.disconnect(rapt_interface)
|
||||
|
||||
jump android
|
||||
|
||||
label logcat:
|
||||
|
||||
python hide:
|
||||
|
||||
interface = MobileInterface("android", filename="logcat.txt")
|
||||
interface.info(_("Retrieving logcat information from device."))
|
||||
interface.call([ rapt.plat.adb, "logcat", "-d" ], cancel=True)
|
||||
interface.open_editor()
|
||||
|
||||
jump android
|
||||
|
||||
init python:
|
||||
|
||||
def android_build_command():
|
||||
ap = renpy.arguments.ArgumentParser()
|
||||
ap.add_argument("project", help="The path to the project directory.")
|
||||
ap.add_argument("command", help="Commands to pass to ant. (Try 'release' 'install'.)", nargs='+')
|
||||
ap.add_argument("android_project", help="The path to the project directory.")
|
||||
ap.add_argument("ant_commands", help="Commands to pass to ant. (Try 'release' 'install'.)", nargs='+')
|
||||
ap.add_argument("--launch", action="store_true", help="Launches the app after build and install compete.")
|
||||
ap.add_argument("--destination", "--dest", default=None, action="store", help="The directory where the packaged files should be placed.")
|
||||
|
||||
args = ap.parse_args()
|
||||
|
||||
p = project.Project(args.project)
|
||||
p = project.Project(args.android_project)
|
||||
|
||||
android_build(args.command, p=p, gui=False)
|
||||
android_build(args.ant_commands, p=p, gui=False, launch=args.launch, destination=args.destination)
|
||||
|
||||
return False
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
# Copyright 2004-2015 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
# (the "Software"), to deal in the Software without restriction,
|
||||
# including without limitation the rights to use, copy, modify, merge,
|
||||
# publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
# and to permit persons to whom the Software is furnished to do so,
|
||||
# subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be
|
||||
# included in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
init python:
|
||||
|
||||
|
||||
def choose_directory(path):
|
||||
"""
|
||||
Pops up a directory chooser.
|
||||
|
||||
`path`
|
||||
The directory that is selected by default. If None, config.renpy_base
|
||||
is selected.
|
||||
|
||||
Returns a (path, is_default) tuple, where path is the chosen directory,
|
||||
and is_default is true if and only if it was chosen by default mechanism
|
||||
rather than user choice.
|
||||
"""
|
||||
|
||||
if path:
|
||||
default_path = path
|
||||
else:
|
||||
try:
|
||||
default_path = os.path.dirname(os.path.abspath(config.renpy_base))
|
||||
except:
|
||||
default_path = os.path.abspath(config.renpy_base)
|
||||
|
||||
if EasyDialogs:
|
||||
|
||||
choice = EasyDialogs.AskFolder(defaultLocation=default_path, wanted=unicode)
|
||||
|
||||
if choice is not None:
|
||||
path = choice
|
||||
else:
|
||||
path = None
|
||||
|
||||
else:
|
||||
|
||||
try:
|
||||
|
||||
cmd = [ "/usr/bin/python", os.path.join(config.gamedir, "tkaskdir.py"), renpy.fsencode(default_path) ]
|
||||
|
||||
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
|
||||
choice = p.stdout.read()
|
||||
code = p.wait()
|
||||
|
||||
except:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
code = 0
|
||||
choice = ""
|
||||
path = None
|
||||
|
||||
interface.error(_("Ren'Py was unable to run python with tkinter to choose the directory. Please install the python-tk or tkinter package."), label=None)
|
||||
|
||||
if code:
|
||||
interface.error(_("Ren'Py was unable to run python with tkinter to choose the directory. Please install the python-tk or tkinter package."), label=None)
|
||||
|
||||
elif choice:
|
||||
path = choice.decode("utf-8")
|
||||
|
||||
is_default = False
|
||||
|
||||
if path is None:
|
||||
path = default_path
|
||||
is_default = True
|
||||
|
||||
path = renpy.fsdecode(path)
|
||||
|
||||
if not os.path.isdir(path):
|
||||
path = os.path.abspath(config.renpy_base)
|
||||
is_default = True
|
||||
|
||||
return path, is_default
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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
|
||||
@@ -398,9 +398,23 @@ init -2 python:
|
||||
|
||||
style.soundtest_button.xalign = 1.0
|
||||
|
||||
|
||||
screen choose_theme:
|
||||
|
||||
default scheme_yadjustment = ui.adjustment()
|
||||
default theme_yadjustment = ui.adjustment()
|
||||
|
||||
default first = True
|
||||
|
||||
python:
|
||||
if first:
|
||||
theme_yinitial_value = theme_yinitial()
|
||||
scheme_yinitial_value = scheme_yinitial()
|
||||
else:
|
||||
theme_yinitial_value = None
|
||||
scheme_yinitial_value = None
|
||||
|
||||
first = False
|
||||
|
||||
frame:
|
||||
style_group "l"
|
||||
style "l_root"
|
||||
@@ -426,8 +440,9 @@ screen choose_theme:
|
||||
|
||||
viewport:
|
||||
scrollbars "vertical"
|
||||
yinitial theme_yinitial()
|
||||
mousewheel True
|
||||
yadjustment theme_yadjustment
|
||||
yinitial theme_yinitial_value
|
||||
|
||||
has vbox
|
||||
|
||||
@@ -451,7 +466,8 @@ screen choose_theme:
|
||||
viewport:
|
||||
scrollbars "vertical"
|
||||
mousewheel True
|
||||
yinitial scheme_yinitial()
|
||||
yadjustment scheme_yadjustment
|
||||
yinitial scheme_yinitial_value
|
||||
|
||||
has vbox
|
||||
|
||||
|
||||
+253
-88
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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
|
||||
@@ -111,6 +111,25 @@ init python in distribute:
|
||||
|
||||
return False
|
||||
|
||||
def hash_file(fn):
|
||||
"""
|
||||
Returns the hash of `fn`.
|
||||
"""
|
||||
|
||||
sha = hashlib.sha256()
|
||||
|
||||
with open(renpy.fsencode(fn), "rb") as f:
|
||||
while True:
|
||||
|
||||
data = f.read(8 * 1024 * 1024)
|
||||
|
||||
if not data:
|
||||
break
|
||||
|
||||
sha.update(data)
|
||||
|
||||
return sha.hexdigest()
|
||||
|
||||
class File(object):
|
||||
"""
|
||||
Represents a file that we can distribute.
|
||||
@@ -149,6 +168,28 @@ init python in distribute:
|
||||
def copy(self):
|
||||
return File(self.name, self.path, self.directory, self.executable)
|
||||
|
||||
def hash(self, hash, distributor):
|
||||
"""
|
||||
Update hash with information about this entry.
|
||||
"""
|
||||
|
||||
key = (self.name, self.path, self.directory, self.executable)
|
||||
|
||||
hash.update(repr(key))
|
||||
|
||||
if self.path is None:
|
||||
return
|
||||
|
||||
if self.directory:
|
||||
return
|
||||
|
||||
if self.path in distributor.hash_cache:
|
||||
digest = distributor.hash_cache[self.path]
|
||||
else:
|
||||
digest = hash_file(self.path)
|
||||
distributor.hash_cache[self.path] = digest
|
||||
|
||||
hash.update(digest)
|
||||
|
||||
class FileList(list):
|
||||
"""
|
||||
@@ -261,6 +302,18 @@ init python in distribute:
|
||||
|
||||
return rv
|
||||
|
||||
def hash(self, distributor):
|
||||
"""
|
||||
Returns a hex digest representing this file list.
|
||||
"""
|
||||
|
||||
sha = hashlib.sha256()
|
||||
|
||||
for f in sorted(self, key=lambda a : a.name):
|
||||
f.hash(sha, distributor)
|
||||
|
||||
return sha.hexdigest()
|
||||
|
||||
|
||||
class Distributor(object):
|
||||
"""
|
||||
@@ -300,6 +353,16 @@ init python in distribute:
|
||||
If true, we report that the build succeeded.
|
||||
"""
|
||||
|
||||
# Map from destination file with extension to (that file's hash,
|
||||
# hash of the file list)
|
||||
self.build_cache = { }
|
||||
|
||||
# A map from file to its hash.
|
||||
self.hash_cache = { }
|
||||
|
||||
# Status reporter.
|
||||
self.reporter = reporter
|
||||
|
||||
if packagedest is not None:
|
||||
if packages is None or len(packages) != 1:
|
||||
raise Exception("Packagedest requires a single package be given.")
|
||||
@@ -318,7 +381,9 @@ init python in distribute:
|
||||
# dictionaries.
|
||||
data = project.data
|
||||
|
||||
project.update_dump(force=True, gui=False)
|
||||
self.reporter.info(_("Scanning project files..."))
|
||||
project.update_dump(force=True, gui=False, compile=project.data['force_recompile'])
|
||||
|
||||
if project.dump.get("error", False):
|
||||
raise Exception("Could not get build data from the project. Please ensure the project runs.")
|
||||
|
||||
@@ -350,10 +415,9 @@ init python in distribute:
|
||||
except:
|
||||
pass
|
||||
|
||||
self.packagedest = packagedest
|
||||
self.load_build_cache()
|
||||
|
||||
# Status reporter.
|
||||
self.reporter = reporter
|
||||
self.packagedest = packagedest
|
||||
|
||||
self.include_update = build['include_update']
|
||||
self.build_update = self.include_update and build_update
|
||||
@@ -382,9 +446,6 @@ init python in distribute:
|
||||
self.log.close()
|
||||
return
|
||||
|
||||
# add the game.
|
||||
self.reporter.info(_("Scanning project files..."))
|
||||
|
||||
self.scan_and_classify(project.path, build["base_patterns"])
|
||||
|
||||
if noarchive:
|
||||
@@ -399,13 +460,15 @@ init python in distribute:
|
||||
# Add Python (with the same name as our executables)
|
||||
self.add_python()
|
||||
|
||||
# Build the mac app.
|
||||
# Build the mac app and windows exes.
|
||||
self.add_mac_files()
|
||||
self.add_windows_files()
|
||||
|
||||
# Add generated/special files.
|
||||
if not build['renpy']:
|
||||
self.add_renpy_files()
|
||||
self.add_windows_files()
|
||||
if build['renpy']:
|
||||
self.add_renpy_distro_files()
|
||||
else:
|
||||
self.add_renpy_game_files()
|
||||
|
||||
# Assign the x-bit as necessary.
|
||||
self.mark_executable()
|
||||
@@ -431,12 +494,14 @@ init python in distribute:
|
||||
p["name"],
|
||||
"update",
|
||||
p["file_lists"],
|
||||
dlc=False)
|
||||
|
||||
dlc=p["dlc"])
|
||||
|
||||
if self.build_update:
|
||||
self.finish_updates(build_packages)
|
||||
|
||||
if not packagedest:
|
||||
self.save_build_cache()
|
||||
|
||||
# Finish up.
|
||||
self.log.close()
|
||||
|
||||
@@ -576,26 +641,46 @@ init python in distribute:
|
||||
|
||||
self.add_file(file_list, "game/" + arcfn, arcpath)
|
||||
|
||||
def add_renpy_files(self):
|
||||
def add_renpy_game_files(self):
|
||||
"""
|
||||
Add Ren'Py-generic files to the project.
|
||||
Add Ren'Py file to the game.
|
||||
"""
|
||||
|
||||
SCRIPT_VERSION_RPY = os.path.join(config.gamedir, "script_version.rpy")
|
||||
SCRIPT_VERSION_RPYC = os.path.join(config.gamedir, "script_version.rpyc")
|
||||
LICENSE_TXT = os.path.join(config.renpy_base, "LICENSE.txt")
|
||||
|
||||
if os.path.exists(SCRIPT_VERSION_RPY):
|
||||
if not os.path.exists(os.path.join(self.project.path, "game", "script_version.rpy")):
|
||||
self.add_file("all", "game/script_version.rpy", SCRIPT_VERSION_RPY)
|
||||
|
||||
if os.path.exists(SCRIPT_VERSION_RPYC):
|
||||
if not os.path.exists(os.path.join(self.project.path, "game", "script_version.rpyc")):
|
||||
self.add_file("all", "game/script_version.rpyc", SCRIPT_VERSION_RPYC)
|
||||
|
||||
if os.path.exists(LICENSE_TXT):
|
||||
self.add_file("renpy", "renpy/LICENSE.txt", LICENSE_TXT)
|
||||
|
||||
if (not os.path.exists(os.path.join(self.project.path, "game", "script_version.rpy"))) and \
|
||||
(not os.path.exists(os.path.join(self.project.path, "game", "script_version.rpyc"))):
|
||||
|
||||
script_version_txt = self.temp_filename("script_version.txt")
|
||||
|
||||
with open(script_version_txt, "w") as f:
|
||||
f.write(repr(renpy.renpy.version_tuple[:-1]))
|
||||
|
||||
self.add_file("all", "game/script_version.txt", script_version_txt)
|
||||
|
||||
def add_file_list_hash(self, list_name):
|
||||
"""
|
||||
Hashes a file list, then adds that file to the Ren'Py distribution.
|
||||
"""
|
||||
|
||||
tfn = self.temp_filename(list_name + "_hash.txt")
|
||||
|
||||
with open(tfn, "w") as tf:
|
||||
tf.write(self.file_lists[list_name].hash(self))
|
||||
|
||||
self.add_file("binary", "launcher/game/" + list_name + "_hash.txt", tfn)
|
||||
self.add_file(list_name, list_name + "/hash.txt", tfn)
|
||||
|
||||
def add_renpy_distro_files(self):
|
||||
"""
|
||||
Add additional files to Ren'Py.
|
||||
"""
|
||||
|
||||
self.add_file_list_hash("rapt")
|
||||
self.add_file_list_hash("renios")
|
||||
|
||||
def write_plist(self):
|
||||
|
||||
@@ -630,6 +715,9 @@ init python in distribute:
|
||||
],
|
||||
)
|
||||
|
||||
if self.build.get('allow_integrated_gpu', False):
|
||||
plist["NSSupportsAutomaticGraphicsSwitching"] = True
|
||||
|
||||
rv = self.temp_filename("Info.plist")
|
||||
plistlib.writePlist(plist, rv)
|
||||
return rv
|
||||
@@ -663,10 +751,10 @@ init python in distribute:
|
||||
os.path.join(config.renpy_base, "lib/darwin-x86_64/pythonw"),
|
||||
True)
|
||||
|
||||
self.add_file(
|
||||
windows,
|
||||
"lib/windows-i686/" + self.executable_name + ".exe",
|
||||
os.path.join(config.renpy_base, "lib/windows-i686/pythonw.exe"))
|
||||
# self.add_file(
|
||||
# windows,
|
||||
# "lib/windows-i686/" + self.executable_name + ".exe",
|
||||
# os.path.join(config.renpy_base, "lib/windows-i686/renpy.exe"))
|
||||
|
||||
def add_mac_files(self):
|
||||
"""
|
||||
@@ -700,19 +788,31 @@ init python in distribute:
|
||||
Adds windows-specific files.
|
||||
"""
|
||||
|
||||
if self.build['renpy']:
|
||||
windows = 'binary'
|
||||
else:
|
||||
windows = 'windows'
|
||||
|
||||
icon_fn = os.path.join(self.project.path, "icon.ico")
|
||||
old_exe_fn = os.path.join(config.renpy_base, "renpy.exe")
|
||||
old_main_fn = os.path.join(config.renpy_base, "lib/windows-i686/renpy.exe")
|
||||
|
||||
if os.path.exists(icon_fn):
|
||||
exe_fn = self.temp_filename("renpy.exe")
|
||||
main_fn = self.temp_filename("main.exe")
|
||||
|
||||
with open(exe_fn, "wb") as f:
|
||||
f.write(change_icons(old_exe_fn, icon_fn))
|
||||
|
||||
with open(main_fn, "wb") as f:
|
||||
f.write(change_icons(old_main_fn, icon_fn))
|
||||
|
||||
else:
|
||||
exe_fn = old_exe_fn
|
||||
main_fn = old_main_fn
|
||||
|
||||
self.add_file("windows", "renpy.exe", exe_fn)
|
||||
self.add_file(windows, self.exe, exe_fn)
|
||||
self.add_file(windows, "lib/windows-i686/" + self.exe, main_fn)
|
||||
|
||||
def mark_executable(self):
|
||||
"""
|
||||
@@ -737,9 +837,7 @@ init python in distribute:
|
||||
parts = fn.split('/')
|
||||
p = parts[0]
|
||||
|
||||
if p == "renpy.exe":
|
||||
p = self.exe
|
||||
elif p == "renpy.sh":
|
||||
if p == "renpy.sh":
|
||||
p = self.sh
|
||||
elif p == "renpy.py":
|
||||
p = self.py
|
||||
@@ -799,14 +897,17 @@ init python in distribute:
|
||||
|
||||
update = { variant : { "version" : self.update_version, "pretty_version" : self.pretty_version, "files" : update_files, "directories" : update_directories, "xbit" : update_xbit } }
|
||||
|
||||
if self.include_update and not dlc:
|
||||
if self.include_update and (variant not in [ 'ios', 'android']):
|
||||
|
||||
update_fn = os.path.join(self.destination, filename + ".update.json")
|
||||
|
||||
with open(update_fn, "wb") as f:
|
||||
json.dump(update, f)
|
||||
|
||||
fl.append(File("update", None, True, False))
|
||||
fl.append(File("update/current.json", update_fn, False, False))
|
||||
if not dlc:
|
||||
|
||||
fl.append(File("update", None, True, False))
|
||||
fl.append(File("update/current.json", update_fn, False, False))
|
||||
|
||||
# The mac transform.
|
||||
if format == "app-zip":
|
||||
@@ -817,60 +918,85 @@ init python in distribute:
|
||||
fl.prepend_directory(filename)
|
||||
|
||||
if format == "tar.bz2":
|
||||
path += ".tar.bz2"
|
||||
pkg = TarPackage(path, "w:bz2")
|
||||
ext = ".tar.bz2"
|
||||
elif format == "update":
|
||||
path += ".update"
|
||||
pkg = TarPackage(path, "w", notime=True)
|
||||
ext = ".update"
|
||||
elif format == "zip" or format == "app-zip":
|
||||
path += ".zip"
|
||||
pkg = ZipPackage(path)
|
||||
ext = ".zip"
|
||||
elif format == "directory":
|
||||
pkg = DirectoryPackage(path)
|
||||
ext = ""
|
||||
|
||||
for i, f in enumerate(fl):
|
||||
self.reporter.progress(_("Writing the [variant] [format] package."), i, len(fl), variant=variant, format=format)
|
||||
full_filename = filename + ext
|
||||
path += ext
|
||||
|
||||
if f.directory:
|
||||
pkg.add_directory(f.name, f.path)
|
||||
if self.build['renpy']:
|
||||
fl_hash = fl.hash(self)
|
||||
else:
|
||||
fl_hash = '<not building renpy>'
|
||||
|
||||
file_hash, old_fl_hash = self.build_cache.get(full_filename, ("", ""))
|
||||
|
||||
if format == "directory" or old_fl_hash != fl_hash:
|
||||
|
||||
if format == "tar.bz2":
|
||||
pkg = TarPackage(path, "w:bz2")
|
||||
elif format == "update":
|
||||
pkg = TarPackage(path, "w", notime=True)
|
||||
elif format == "zip" or format == "app-zip":
|
||||
pkg = ZipPackage(path)
|
||||
elif format == "directory":
|
||||
pkg = DirectoryPackage(path)
|
||||
|
||||
for i, f in enumerate(fl):
|
||||
self.reporter.progress(_("Writing the [variant] [format] package."), i, len(fl), variant=variant, format=format)
|
||||
|
||||
if f.directory:
|
||||
pkg.add_directory(f.name, f.path)
|
||||
else:
|
||||
pkg.add_file(f.name, f.path, f.executable)
|
||||
|
||||
self.reporter.progress_done()
|
||||
pkg.close()
|
||||
|
||||
if format == "update":
|
||||
# Build the zsync file.
|
||||
|
||||
self.reporter.info(_("Making the [variant] update zsync file."), variant=variant)
|
||||
|
||||
cmd = [
|
||||
updater.zsync_path("zsyncmake"),
|
||||
"-z",
|
||||
# -u url to gzipped data - not a local filename!
|
||||
"-u", filename + ".update.gz",
|
||||
"-o", os.path.join(self.destination, filename + ".zsync"),
|
||||
os.path.abspath(path),
|
||||
]
|
||||
|
||||
subprocess.check_call([ renpy.fsencode(i) for i in cmd ])
|
||||
|
||||
# Build the sums file. This is a file with an adler32 hash of each 64k block
|
||||
# of the zsync file. It's used to help us determine how much of the file is
|
||||
# downloaded.
|
||||
with open(path, "rb") as src:
|
||||
with open(renpy.fsencode(os.path.join(self.destination, filename + ".sums")), "wb") as sums:
|
||||
while True:
|
||||
data = src.read(65536)
|
||||
|
||||
if not data:
|
||||
break
|
||||
|
||||
sums.write(struct.pack("<I", zlib.adler32(data) & 0xffffffff))
|
||||
|
||||
if self.include_update and not self.build_update and not dlc:
|
||||
os.unlink(update_fn)
|
||||
|
||||
if format != "directory":
|
||||
file_hash = hash_file(path)
|
||||
else:
|
||||
pkg.add_file(f.name, f.path, f.executable)
|
||||
|
||||
self.reporter.progress_done()
|
||||
pkg.close()
|
||||
|
||||
if format == "update":
|
||||
# Build the zsync file.
|
||||
|
||||
self.reporter.info(_("Making the [variant] update zsync file."), variant=variant)
|
||||
|
||||
cmd = [
|
||||
updater.zsync_path("zsyncmake"),
|
||||
"-z",
|
||||
# -u url to gzipped data - not a local filename!
|
||||
"-u", filename + ".update.gz",
|
||||
"-o", os.path.join(self.destination, filename + ".zsync"),
|
||||
os.path.abspath(path),
|
||||
]
|
||||
|
||||
subprocess.check_call([ renpy.fsencode(i) for i in cmd ])
|
||||
|
||||
# Build the sums file. This is a file with an adler32 hash of each 64k block
|
||||
# of the zsync file. It's used to help us determine how much of the file is
|
||||
# downloaded.
|
||||
with open(path, "rb") as src:
|
||||
with open(renpy.fsencode(os.path.join(self.destination, filename + ".sums")), "wb") as sums:
|
||||
while True:
|
||||
data = src.read(65536)
|
||||
|
||||
if not data:
|
||||
break
|
||||
|
||||
sums.write(struct.pack("I", zlib.adler32(data) & 0xffffffff))
|
||||
|
||||
if self.include_update and not self.build_update and not dlc:
|
||||
os.unlink(update_fn)
|
||||
file_hash = ""
|
||||
|
||||
if file_hash:
|
||||
self.build_cache[full_filename] = (file_hash, fl_hash)
|
||||
|
||||
def finish_updates(self, packages):
|
||||
"""
|
||||
@@ -883,10 +1009,13 @@ init python in distribute:
|
||||
index = { }
|
||||
|
||||
def add_variant(variant):
|
||||
fn = renpy.fsencode(os.path.join(self.destination, self.base_name + "-" + variant + ".update"))
|
||||
|
||||
with open(fn, "rb") as f:
|
||||
digest = hashlib.sha256(f.read()).hexdigest()
|
||||
# with open(fn, "rb") as f:
|
||||
# digest = hashlib.sha256(f.read()).hexdigest()
|
||||
|
||||
digest = self.build_cache[self.base_name + "-" + variant + ".update"][0]
|
||||
|
||||
sums_size = os.path.getsize(self.destination + "/" + self.base_name + "-" + variant + ".sums")
|
||||
|
||||
index[variant] = {
|
||||
"version" : self.update_version,
|
||||
@@ -894,10 +1023,14 @@ init python in distribute:
|
||||
"digest" : digest,
|
||||
"zsync_url" : self.base_name + "-" + variant + ".zsync",
|
||||
"sums_url" : self.base_name + "-" + variant + ".sums",
|
||||
"sums_size" : sums_size,
|
||||
"json_url" : self.base_name + "-" + variant + ".update.json",
|
||||
}
|
||||
|
||||
os.unlink(fn)
|
||||
fn = renpy.fsencode(os.path.join(self.destination, self.base_name + "-" + variant + ".update"))
|
||||
|
||||
if os.path.exists(fn):
|
||||
os.unlink(fn)
|
||||
|
||||
for p in packages:
|
||||
if p["update"]:
|
||||
@@ -908,6 +1041,38 @@ init python in distribute:
|
||||
json.dump(index, f)
|
||||
|
||||
|
||||
def save_build_cache(self):
|
||||
if not self.build['renpy']:
|
||||
return
|
||||
|
||||
fn = renpy.fsencode(os.path.join(self.destination, ".build_cache"))
|
||||
|
||||
with open(fn, "wb") as f:
|
||||
for k, v in self.build_cache.items():
|
||||
l = "\t".join([k, v[0], v[1]]) + "\n"
|
||||
f.write(l.encode("utf-8"))
|
||||
|
||||
def load_build_cache(self):
|
||||
if not self.build['renpy']:
|
||||
return
|
||||
|
||||
fn = renpy.fsencode(os.path.join(self.destination, ".build_cache"))
|
||||
|
||||
if not os.path.exists(fn):
|
||||
return
|
||||
|
||||
with open(fn, "rb") as f:
|
||||
for l in f:
|
||||
if not l:
|
||||
continue
|
||||
|
||||
l = l.decode("utf-8").rstrip()
|
||||
l = l.split("\t")
|
||||
|
||||
self.build_cache[l[0]] = (l[1], l[2])
|
||||
|
||||
os.unlink(fn)
|
||||
|
||||
def dump(self):
|
||||
for k, v in sorted(self.file_lists.items()):
|
||||
print
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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
|
||||
@@ -191,6 +191,7 @@ screen build_distributions:
|
||||
has vbox
|
||||
|
||||
textbutton _("Edit options.rpy") action editor.Edit("game/options.rpy", check=True)
|
||||
textbutton _("Add from clauses to calls, once") action Jump("add_from")
|
||||
textbutton _("Refresh") action Jump("build_distributions")
|
||||
|
||||
|
||||
@@ -219,14 +220,45 @@ screen build_distributions:
|
||||
$ description = pkg["description"]
|
||||
textbutton "[description!q]" action PackageToggle(pkg["name"]) style "l_checkbox"
|
||||
|
||||
add SPACER
|
||||
add SPACER
|
||||
add HALF_SPACER
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
text _("Options:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
if project.current.dump["build"]["include_update"]:
|
||||
textbutton _("Build Updates") action DataToggle("build_update") style "l_checkbox"
|
||||
|
||||
textbutton _("Add from clauses to calls") action DataToggle("add_from") style "l_checkbox"
|
||||
textbutton _("Force Recompile") action DataToggle("force_recompile") style "l_checkbox"
|
||||
|
||||
|
||||
textbutton _("Back") action Jump("front_page") style "l_left_button"
|
||||
textbutton _("Build") action Jump("distribute") style "l_right_button"
|
||||
textbutton _("Build") action Jump("start_distribute") style "l_right_button"
|
||||
|
||||
label add_from_common:
|
||||
python:
|
||||
interface.processing(_("Adding from clauses to call statements that do not have them."))
|
||||
project.current.launch([ "add_from" ], wait=True)
|
||||
|
||||
return
|
||||
|
||||
label add_from:
|
||||
call add_from_common
|
||||
jump build_distributions
|
||||
|
||||
|
||||
label start_distribute:
|
||||
if project.current.data["add_from"]:
|
||||
call add_from_common
|
||||
|
||||
jump distribute
|
||||
|
||||
label build_update_dump:
|
||||
python:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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
|
||||
@@ -297,7 +297,7 @@ init 1 python in editor:
|
||||
if not set_editor:
|
||||
return True
|
||||
|
||||
if persistent.editor:
|
||||
if persistent.editor and persistent.editor != "None":
|
||||
return True
|
||||
|
||||
return renpy.invoke_in_new_context(renpy.call_screen, "editor")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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
|
||||
@@ -130,6 +130,7 @@ screen front_page:
|
||||
|
||||
if project.current is not None:
|
||||
textbutton _("Launch Project") action project.Launch() style "l_right_button"
|
||||
key "K_F5" action project.Launch()
|
||||
|
||||
|
||||
|
||||
@@ -195,20 +196,21 @@ screen front_page_project:
|
||||
|
||||
textbutton _("game") action OpenDirectory("game")
|
||||
textbutton _("base") action OpenDirectory(".")
|
||||
# textbutton _("images") action OpenDirectory("game/images") style "l_list"
|
||||
textbutton _("images") action OpenDirectory("game/images")
|
||||
# textbutton _("save") action None style "l_list"
|
||||
|
||||
vbox:
|
||||
if persistent.show_edit_funcs:
|
||||
|
||||
label _("Edit File") style "l_label_small"
|
||||
label _("Edit File") style "l_label_small"
|
||||
|
||||
frame style "l_indent":
|
||||
has vbox
|
||||
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 "screens.rpy" action editor.Edit("game/screens.rpy", check=True)
|
||||
textbutton _("All script files") action editor.EditAll()
|
||||
textbutton "script.rpy" action editor.Edit("game/script.rpy", check=True)
|
||||
textbutton "options.rpy" action editor.Edit("game/options.rpy", check=True)
|
||||
textbutton "screens.rpy" action editor.Edit("game/screens.rpy", check=True)
|
||||
textbutton _("All script files") action editor.EditAll()
|
||||
|
||||
add SPACER
|
||||
add SEPARATOR
|
||||
@@ -242,6 +244,7 @@ screen front_page_project:
|
||||
textbutton _("Build Distributions") action Jump("build_distributions")
|
||||
|
||||
textbutton _("Android") action Jump("android")
|
||||
textbutton _("iOS") action Jump("ios")
|
||||
textbutton _("Generate Translations") action Jump("translate")
|
||||
textbutton _("Extract Dialogue") action Jump("extract_dialogue")
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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
|
||||
@@ -203,6 +203,7 @@ screen common:
|
||||
|
||||
if continue_:
|
||||
textbutton _("Continue") action continue_ style "l_right_button"
|
||||
key "input_enter" action continue_
|
||||
|
||||
|
||||
screen launcher_input:
|
||||
|
||||
@@ -0,0 +1,374 @@
|
||||
# Copyright 2004-2015 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
# (the "Software"), to deal in the Software without restriction,
|
||||
# including without limitation the rights to use, copy, modify, merge,
|
||||
# publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
# and to permit persons to whom the Software is furnished to do so,
|
||||
# subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be
|
||||
# included in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
init python:
|
||||
IOS_NO_RENIOS = 0
|
||||
IOS_NO_DIRECTORY = 1
|
||||
IOS_NO_PROJECT = 2
|
||||
IOS_OK = 3
|
||||
|
||||
IOS_NO_RENIOS_TEXT = _("To build iOS packages, please download renios, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher.")
|
||||
IOS_NO_DIRECTORY_TEXT = _("The directory in where Xcode projects will be placed has not been selected. Choose 'Select Directory' to select it.")
|
||||
IOS_NO_PROJECT_TEXT = _("There is no Xcode project corresponding to the current Ren'Py project. Choose 'Create Xcode Project' to create one.")
|
||||
IOS_OK_TEXT = _("An Xcode project exists. Choose 'Update Xcode Project' to update it with the latest game files, or use Xcode to build and install it.")
|
||||
|
||||
IPHONE_TEXT = _("Attempts to emulate an iPhone.\n\nTouch input is emulated through the mouse, but only when the button is held down.")
|
||||
IPAD_TEXT = _("Attempts to emulate an iPad.\n\nTouch input is emulated through the mouse, but only when the button is held down.")
|
||||
|
||||
IOS_SELECT_DIRECTORY_TEXT = _("Selects the directory where Xcode projects will be placed.")
|
||||
IOS_CREATE_PROJECT_TEXT = _("Creates an Xcode project corresponding to the current Ren'Py project.")
|
||||
IOS_UPDATE_PROJECT_TEXT = _("Updates the Xcode project with the latest game files. This must be done each time the Ren'Py project changes.")
|
||||
IOS_XCODE_TEXT = _("Opens the Xcode project in Xcode.")
|
||||
|
||||
IOS_OPEN_DIRECTORY_TEXT = _("Opens the directory containing Xcode projects.")
|
||||
|
||||
def find_renios():
|
||||
|
||||
global RENIOS_PATH
|
||||
|
||||
candidates = [ ]
|
||||
|
||||
RENIOS_PATH = os.path.join(config.renpy_base, "renios")
|
||||
|
||||
if os.path.isdir(RENIOS_PATH) and check_hash_txt("renios"):
|
||||
import sys
|
||||
sys.path.insert(0, os.path.join(RENIOS_PATH, "buildlib"))
|
||||
else:
|
||||
RENIOS_PATH = None
|
||||
|
||||
find_renios()
|
||||
|
||||
if RENIOS_PATH:
|
||||
import renios.create
|
||||
|
||||
def IOSState():
|
||||
if not RENIOS_PATH:
|
||||
return IOS_NO_RENIOS
|
||||
elif not persistent.xcode_projects_directory:
|
||||
return IOS_NO_DIRECTORY
|
||||
elif not os.path.exists(xcode_project()):
|
||||
return IOS_NO_PROJECT
|
||||
else:
|
||||
return IOS_OK
|
||||
|
||||
def IOSStateText(state):
|
||||
if state == IOS_NO_RENIOS:
|
||||
return IOS_NO_RENIOS_TEXT
|
||||
elif state == IOS_NO_DIRECTORY:
|
||||
return IOS_NO_DIRECTORY_TEXT
|
||||
elif state == IOS_NO_PROJECT:
|
||||
return IOS_NO_PROJECT_TEXT
|
||||
else:
|
||||
return IOS_OK_TEXT
|
||||
|
||||
def IOSIfState(state, needed, action):
|
||||
"""
|
||||
If `state` is `needed` or better, `action` is returned. Otherwise,
|
||||
returns None, disabling the button.
|
||||
"""
|
||||
|
||||
if state >= needed:
|
||||
return action
|
||||
else:
|
||||
return None
|
||||
|
||||
xcode_name_cache = { }
|
||||
|
||||
def xcode_name(s):
|
||||
"""
|
||||
Returns a version of `s` that's safe to use in Xcode.
|
||||
"""
|
||||
|
||||
if s in xcode_name_cache:
|
||||
return xcode_name_cache[s]
|
||||
|
||||
s = re.sub(r'[^\w\-\.]', '', s)
|
||||
xcode_name_cache[s] = s
|
||||
return s
|
||||
|
||||
def xcode_project(p=None):
|
||||
"""
|
||||
Return the path to the Xcode project corresponding to `p`, or the current
|
||||
project if `p` is None
|
||||
"""
|
||||
|
||||
if p is None:
|
||||
p = project.current
|
||||
|
||||
if persistent.xcode_projects_directory is None:
|
||||
raise Exception("The Xcode projects directory has not been set.")
|
||||
|
||||
return os.path.join(persistent.xcode_projects_directory, xcode_name(p.name))
|
||||
|
||||
def ios_create(p=None, gui=True):
|
||||
|
||||
dest = xcode_project(p)
|
||||
|
||||
if os.path.exists(dest):
|
||||
interface.yesno(_("The Xcode project already exists. Would you like to rename the old project, and replace it with a new one?"), no=Jump("ios"))
|
||||
|
||||
i = 0
|
||||
while True:
|
||||
i += 1
|
||||
backup = dest + "." + str(i)
|
||||
if not os.path.exists(backup):
|
||||
break
|
||||
|
||||
os.rename(dest, backup)
|
||||
|
||||
iface = MobileInterface("ios")
|
||||
renios.create.create_project(iface, dest)
|
||||
|
||||
ios_populate(p, gui=gui)
|
||||
|
||||
def ios_populate(p=None, gui=True):
|
||||
"""
|
||||
This actually builds the package.
|
||||
"""
|
||||
|
||||
import shutil
|
||||
|
||||
if p is None:
|
||||
p = project.current
|
||||
|
||||
dist = os.path.join(xcode_project(p), "base")
|
||||
|
||||
if os.path.exists(dist):
|
||||
shutil.rmtree(dist)
|
||||
|
||||
if gui:
|
||||
reporter = distribute.GuiReporter()
|
||||
else:
|
||||
reporter = distribute.TextReporter()
|
||||
|
||||
distribute.Distributor(p,
|
||||
reporter=reporter,
|
||||
packages=[ 'ios' ],
|
||||
build_update=False,
|
||||
noarchive=True,
|
||||
packagedest=dist,
|
||||
report_success=False,
|
||||
)
|
||||
|
||||
main_fn = os.path.join(dist, "main.py")
|
||||
|
||||
for fn in os.listdir(dist):
|
||||
if fn.endswith(".py"):
|
||||
py_fn = os.path.join(dist, fn)
|
||||
break
|
||||
else:
|
||||
raise Exception("Could not find a .py file.")
|
||||
|
||||
with open(py_fn, "r") as py_f:
|
||||
with open(main_fn, "w") as main_f:
|
||||
for l in py_f:
|
||||
if l.startswith("#!"):
|
||||
continue
|
||||
|
||||
main_f.write(l)
|
||||
|
||||
os.unlink(py_fn)
|
||||
|
||||
|
||||
def launch_xcode():
|
||||
dist = xcode_project(None)
|
||||
base = os.path.basename(dist)
|
||||
xcodeproj = "{}/{}.xcodeproj".format(dist, base)
|
||||
|
||||
subprocess.call([ 'open', renpy.fsencode(xcodeproj) ])
|
||||
|
||||
screen ios:
|
||||
|
||||
default tt = Tooltip(None)
|
||||
$ state = IOSState()
|
||||
|
||||
frame:
|
||||
style_group "l"
|
||||
style "l_root"
|
||||
|
||||
window:
|
||||
|
||||
has vbox
|
||||
|
||||
label _("iOS: [project.current.name!q]")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
hbox:
|
||||
|
||||
# Left side.
|
||||
frame:
|
||||
style "l_indent"
|
||||
xmaximum ONEHALF
|
||||
xfill True
|
||||
|
||||
has vbox
|
||||
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
text _("Emulation:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
frame style "l_indent":
|
||||
|
||||
has hbox:
|
||||
spacing 15
|
||||
|
||||
textbutton _("iPhone"):
|
||||
action LaunchEmulator("ios-touch", "small phone touch ios")
|
||||
hovered tt.Action(IPHONE_TEXT)
|
||||
|
||||
textbutton _("iPad"):
|
||||
action LaunchEmulator("ios-touch", "medium tablet touch ios")
|
||||
hovered tt.Action(IPAD_TEXT)
|
||||
|
||||
|
||||
add SPACER
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
text _("Build:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
frame style "l_indent":
|
||||
|
||||
has vbox
|
||||
|
||||
textbutton _("Select Xcode Projects Directory"):
|
||||
action IOSIfState(state, IOS_NO_DIRECTORY, Jump("select_xcode_projects_directory"))
|
||||
hovered tt.Action(IOS_SELECT_DIRECTORY_TEXT)
|
||||
|
||||
textbutton _("Create Xcode Project"):
|
||||
action IOSIfState(state, IOS_NO_PROJECT, Jump("create_xcode_project"))
|
||||
hovered tt.Action(IOS_CREATE_PROJECT_TEXT)
|
||||
|
||||
textbutton _("Update Xcode Project"):
|
||||
action IOSIfState(state, IOS_NO_PROJECT, Jump("update_xcode_project"))
|
||||
hovered tt.Action(IOS_UPDATE_PROJECT_TEXT)
|
||||
|
||||
if renpy.macintosh:
|
||||
textbutton _("Launch Xcode"):
|
||||
action IOSIfState(state, IOS_OK, launch_xcode)
|
||||
hovered tt.Action(IOS_XCODE_TEXT)
|
||||
|
||||
# textbutton _("Configure"):
|
||||
# action AndroidIfState(state, ANDROID_NO_CONFIG, Jump("android_configure"))
|
||||
# hovered tt.Action(CONFIGURE_TEXT)
|
||||
#
|
||||
# textbutton _("Build Package"):
|
||||
# action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build"))
|
||||
# hovered tt.Action(BUILD_TEXT)
|
||||
#
|
||||
# textbutton _("Build & Install"):
|
||||
# action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build_and_install"))
|
||||
# hovered tt.Action(BUILD_AND_INSTALL_TEXT)
|
||||
#
|
||||
# textbutton _("Build, Install & Launch"):
|
||||
# action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build_install_and_launch"))
|
||||
# hovered tt.Action(BUILD_INSTALL_AND_LAUNCH_TEXT)
|
||||
|
||||
add SPACER
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
text _("Other:")
|
||||
|
||||
add HALF_SPACER
|
||||
|
||||
frame style "l_indent":
|
||||
|
||||
has vbox
|
||||
|
||||
textbutton _("Open Xcode Projects Directory"):
|
||||
action IOSIfState(state, IOS_NO_PROJECT, OpenDirectory(persistent.xcode_projects_directory, absolute=True))
|
||||
hovered tt.Action(IOS_OPEN_DIRECTORY_TEXT)
|
||||
|
||||
|
||||
# Right side.
|
||||
frame:
|
||||
style "l_indent"
|
||||
xmaximum ONEHALF
|
||||
xfill True
|
||||
|
||||
has vbox
|
||||
|
||||
add SEPARATOR2
|
||||
|
||||
frame:
|
||||
style "l_indent"
|
||||
has vbox
|
||||
|
||||
add SPACER
|
||||
|
||||
if tt.value:
|
||||
text tt.value
|
||||
else:
|
||||
text IOSStateText(state)
|
||||
|
||||
|
||||
textbutton _("Back") action Jump("front_page") style "l_left_button"
|
||||
|
||||
|
||||
label ios:
|
||||
|
||||
if RENIOS_PATH is None:
|
||||
$ interface.yesno(_("Before packaging iOS apps, you'll need to download renios, Ren'Py's iOS support. Would you like to download renios now?"), no=Jump("front_page"))
|
||||
$ add_dlc("renios", restart=True)
|
||||
|
||||
call screen ios
|
||||
|
||||
label select_xcode_projects_directory:
|
||||
|
||||
python hide:
|
||||
|
||||
interface.interaction(_("XCODE PROJECTS DIRECTORY"), _("Please choose the Xcode Projects Directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"))
|
||||
|
||||
path, is_default = choose_directory(persistent.xcode_projects_directory)
|
||||
|
||||
if is_default:
|
||||
interface.info(_("Ren'Py has set the Xcode Projects Directory to:"), "[path!q]", path=path)
|
||||
|
||||
persistent.xcode_projects_directory = path
|
||||
|
||||
jump ios
|
||||
|
||||
label create_xcode_project:
|
||||
|
||||
$ ios_create(None, True)
|
||||
|
||||
jump ios
|
||||
|
||||
label update_xcode_project:
|
||||
$ ios_populate(None, True)
|
||||
|
||||
jump ios
|
||||
@@ -0,0 +1,258 @@
|
||||
# Copyright 2004-2015 Tom Rothamel <pytom@bishoujo.us>
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person
|
||||
# obtaining a copy of this software and associated documentation files
|
||||
# (the "Software"), to deal in the Software without restriction,
|
||||
# including without limitation the rights to use, copy, modify, merge,
|
||||
# publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
# and to permit persons to whom the Software is furnished to do so,
|
||||
# subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be
|
||||
# included in all copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
# This file contains mobile build things that are shared by the android
|
||||
# and iOS builds.
|
||||
|
||||
init -1 python:
|
||||
|
||||
def check_hash_txt(module):
|
||||
fn1 = module + "_hash.txt"
|
||||
fn2 = renpy.fsencode(os.path.join(config.renpy_base, module, "hash.txt"))
|
||||
|
||||
# No hash file? We're in dev mode - ignore.
|
||||
if not renpy.loadable(fn1):
|
||||
return True
|
||||
|
||||
hash1 = renpy.file(fn1).read()
|
||||
|
||||
if not os.path.exists(fn2):
|
||||
return False
|
||||
|
||||
hash2 = open(fn2).read()
|
||||
|
||||
return hash1.strip() == hash2.strip()
|
||||
|
||||
class LaunchEmulator(Action):
|
||||
|
||||
def __init__(self, emulator, variants):
|
||||
self.emulator = emulator
|
||||
self.variants = variants
|
||||
|
||||
def __call__(self):
|
||||
|
||||
env = {
|
||||
"RENPY_EMULATOR" : self.emulator,
|
||||
"RENPY_VARIANT" : self.variants,
|
||||
}
|
||||
|
||||
p = project.current
|
||||
p.launch(env=env)
|
||||
|
||||
class MobileInterface(object):
|
||||
"""
|
||||
This is used to interface between the launcher and RAPT/RENIOS.
|
||||
"""
|
||||
|
||||
def __init__(self, platform, edit=True, filename=None):
|
||||
"""
|
||||
`platform`
|
||||
The name of the platform we're using for. Used for libraries,
|
||||
cancel labels, and logfiles.
|
||||
|
||||
`edit`
|
||||
If true, we launch the log file in the editor on failure.
|
||||
"""
|
||||
|
||||
self.platform = platform
|
||||
self.edit = edit
|
||||
|
||||
self.process = None
|
||||
|
||||
if filename is None:
|
||||
filename = platform + ".txt"
|
||||
|
||||
self.filename = project.current.temp_filename(filename)
|
||||
|
||||
self.info_msg = ""
|
||||
|
||||
with open(self.filename, "w"):
|
||||
pass
|
||||
|
||||
def log(self, msg):
|
||||
with open(self.filename, "a") as f:
|
||||
f.write("\n")
|
||||
f.write(msg)
|
||||
f.write("\n")
|
||||
|
||||
def info(self, prompt):
|
||||
self.info_msg = prompt
|
||||
interface.processing(prompt, pause=False)
|
||||
self.log(prompt)
|
||||
|
||||
def yesno(self, prompt, submessage=None):
|
||||
return interface.yesno(prompt, submessage=submessage)
|
||||
|
||||
def yesno_choice(self, prompt, default=None):
|
||||
choices = [ (True, "Yes"), (False, "No") ]
|
||||
return interface.choice(prompt, choices, default)
|
||||
|
||||
def terms(self, url, prompt):
|
||||
submessage = _("{a=%s}%s{/a}") % (url, url)
|
||||
|
||||
if not interface.yesno(prompt, submessage=submessage):
|
||||
self.fail("You must accept the terms and conditions to proceed.", edit=False)
|
||||
|
||||
|
||||
def input(self, prompt, empty=None):
|
||||
|
||||
if empty is None:
|
||||
empty = ''
|
||||
|
||||
while True:
|
||||
rv = interface.input(_("QUESTION"), prompt, default=empty, cancel=Jump("android"))
|
||||
|
||||
rv = rv.strip()
|
||||
|
||||
if rv:
|
||||
return rv
|
||||
|
||||
def choice(self, prompt, choices, default):
|
||||
return interface.choice(prompt, choices, default, cancel=Jump("android"))
|
||||
|
||||
def fail(self, prompt, edit=True):
|
||||
self.log(prompt)
|
||||
prompt = re.sub(r'(http://\S+)', r'{a=\1}\1{/a}', prompt)
|
||||
|
||||
# Open android.txt in the editor.
|
||||
if edit and self.edit:
|
||||
self.open_editor()
|
||||
|
||||
interface.error(prompt, label="android")
|
||||
|
||||
def open_editor(self):
|
||||
editor.EditAbsolute(self.filename)()
|
||||
|
||||
def success(self, prompt):
|
||||
self.log(prompt)
|
||||
interface.info(prompt, pause=False)
|
||||
|
||||
def final_success(self, prompt):
|
||||
self.log(prompt)
|
||||
interface.info(prompt, label="android")
|
||||
|
||||
def run_yes_thread(self):
|
||||
import time
|
||||
|
||||
try:
|
||||
while self.run_yes:
|
||||
self.process.stdin.write('y\n')
|
||||
self.process.stdin.flush()
|
||||
time.sleep(.2)
|
||||
except:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
def call(self, cmd, cancel=False, use_path=False, yes=False):
|
||||
|
||||
cmd = [ renpy.fsencode(i) for i in cmd ]
|
||||
|
||||
self.cmd = cmd
|
||||
|
||||
f = open(self.filename, "a")
|
||||
|
||||
f.write("\n\n\n")
|
||||
|
||||
if cancel:
|
||||
cancel_action = self.cancel
|
||||
else:
|
||||
cancel_action = None
|
||||
|
||||
startupinfo = None
|
||||
if renpy.windows:
|
||||
startupinfo = subprocess.STARTUPINFO()
|
||||
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
|
||||
|
||||
self.yes_thread = None
|
||||
|
||||
try:
|
||||
interface.processing(self.info_msg, show_screen=True, cancel=cancel_action)
|
||||
|
||||
kwargs = { }
|
||||
if yes:
|
||||
kwargs["stdin"] = subprocess.PIPE
|
||||
|
||||
try:
|
||||
self.process = subprocess.Popen(cmd, cwd=renpy.fsencode(RAPT_PATH), stdout=f, stderr=f, startupinfo=startupinfo, **kwargs)
|
||||
except:
|
||||
import traceback
|
||||
traceback.print_exc(file=f)
|
||||
raise
|
||||
|
||||
if yes:
|
||||
import threading
|
||||
self.run_yes = True
|
||||
self.yes_thread = threading.Thread(target=self.run_yes_thread)
|
||||
self.yes_thread.daemon = True
|
||||
self.yes_thread.start()
|
||||
|
||||
renpy.call_screen("android_process", interface=self)
|
||||
finally:
|
||||
f.close()
|
||||
interface.hide_screen()
|
||||
|
||||
if yes and self.yes_thread:
|
||||
self.run_yes = False
|
||||
self.yes_thread.join()
|
||||
|
||||
self.process = None
|
||||
self.yes_thread = None
|
||||
|
||||
def check_process(self):
|
||||
rv = self.process.poll()
|
||||
|
||||
if rv is not None:
|
||||
if rv:
|
||||
raise subprocess.CalledProcessError(rv, self.cmd)
|
||||
else:
|
||||
return True
|
||||
|
||||
def download(self, url, dest):
|
||||
try:
|
||||
d = Downloader(url, dest)
|
||||
cancel_action = [ d.cancel, Jump(self.platform) ]
|
||||
interface.processing(self.info_msg, show_screen=True, cancel=cancel_action, bar_value=DownloaderValue(d))
|
||||
ui.timer(.1, action=d.check, repeat=True)
|
||||
ui.interact()
|
||||
finally:
|
||||
interface.hide_screen()
|
||||
|
||||
def background(self, f):
|
||||
try:
|
||||
t = threading.Thread(target=f)
|
||||
t.start()
|
||||
|
||||
interface.processing(self.info_msg, show_screen=True)
|
||||
|
||||
while t.is_alive():
|
||||
renpy.pause(0)
|
||||
t.join(0.25)
|
||||
|
||||
finally:
|
||||
interface.hide_screen()
|
||||
|
||||
|
||||
def cancel(self):
|
||||
if self.process:
|
||||
self.process.terminate()
|
||||
|
||||
renpy.jump(self.platform)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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
-17
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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
|
||||
@@ -220,8 +220,8 @@ init python:
|
||||
## this is 'mygame-1.0', the windows distribution will be in the
|
||||
## directory 'mygame-1.0-win', in the 'mygame-1.0-win.zip' file.
|
||||
|
||||
if 'RENPY_NIGHTLY' in os.environ:
|
||||
build.directory_name = os.environ['RENPY_NIGHTLY']
|
||||
if 'RENPY_BUILD_VERSION' in os.environ:
|
||||
build.directory_name = "renpy-" + os.environ['RENPY_BUILD_VERSION']
|
||||
else:
|
||||
build.directory_name = "renpy-" + config.version.rsplit('.', 1)[0]
|
||||
|
||||
@@ -234,6 +234,9 @@ init python:
|
||||
## allows the updater to run.
|
||||
build.include_update = True
|
||||
|
||||
## Allow empty directories, so we can distribute the images directory.
|
||||
build.exclude_empty_directories = False
|
||||
|
||||
## Clear out various file patterns.
|
||||
build.renpy_patterns = [ ]
|
||||
build.early_base_patterns = [ ]
|
||||
@@ -245,13 +248,23 @@ init python:
|
||||
|
||||
## Now, add the Ren'Py distribution in using classify_renpy.
|
||||
|
||||
build.classify_renpy("rapt/**", "rapt")
|
||||
|
||||
build.classify_renpy("**~", None)
|
||||
build.classify_renpy("**/#*", None)
|
||||
build.classify_renpy("**/thumbs.db", None)
|
||||
build.classify_renpy("**/.*", None)
|
||||
|
||||
build.classify_renpy("rapt/**", "rapt")
|
||||
|
||||
build.classify_renpy("renios/prototype/base/", None)
|
||||
build.classify_renpy("renios/prototype/prototype.xcodeproj/*.xcworkspace/", None)
|
||||
build.classify_renpy("renios/prototype/prototype.xcodeproj/xcuserdata/", None)
|
||||
build.classify_renpy("renios/prototype/**", "renios")
|
||||
build.classify_renpy("renios/buildlib/**", "renios")
|
||||
build.classify_renpy("renios/ios.py", "renios")
|
||||
build.classify_renpy("renios/version.txt", "renios")
|
||||
build.classify_renpy("renios/", "renios")
|
||||
|
||||
build.classify_renpy("**.old", None)
|
||||
build.classify_renpy("**.new", None)
|
||||
build.classify_renpy("**.bak", None)
|
||||
@@ -266,28 +279,29 @@ init python:
|
||||
|
||||
# main source.
|
||||
|
||||
def source_and_binary(pattern):
|
||||
def source_and_binary(pattern, source="source", binary="binary"):
|
||||
"""
|
||||
Classifies source and binary files beginning with `pattern`.
|
||||
.pyo, .rpyc, .rpycm, and .rpyb go into binary, everything
|
||||
else goes into source.
|
||||
"""
|
||||
|
||||
build.classify_renpy(pattern + ".pyo", "binary")
|
||||
build.classify_renpy(pattern + ".rpyc", "binary")
|
||||
build.classify_renpy(pattern + ".rpymc", "binary")
|
||||
build.classify_renpy(pattern + ".rpyb", "binary")
|
||||
build.classify_renpy(pattern, "source")
|
||||
build.classify_renpy(pattern + "/**.pyo", binary)
|
||||
build.classify_renpy(pattern + "/**.rpyc", binary)
|
||||
build.classify_renpy(pattern + "/**.rpymc", binary)
|
||||
build.classify_renpy(pattern + "/**/cache/*", binary)
|
||||
|
||||
build.classify_renpy(pattern + "/**", source)
|
||||
|
||||
build.classify_renpy("renpy.py", "source")
|
||||
source_and_binary("renpy/**")
|
||||
source_and_binary("renpy")
|
||||
|
||||
# games.
|
||||
build.classify_renpy("launcher/game/theme/", None)
|
||||
source_and_binary("launcher/**")
|
||||
source_and_binary("templates/**")
|
||||
source_and_binary("the_question/**")
|
||||
source_and_binary("tutorial/**")
|
||||
source_and_binary("launcher")
|
||||
source_and_binary("templates", binary=None)
|
||||
source_and_binary("the_question")
|
||||
source_and_binary("tutorial")
|
||||
|
||||
# docs.
|
||||
build.classify_renpy("doc/", "source")
|
||||
@@ -305,16 +319,18 @@ init python:
|
||||
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")
|
||||
|
||||
# all-platforms binary.
|
||||
build.classify_renpy("lib/**/_renpysteam*", None)
|
||||
build.classify_renpy("lib/**/*steam_api*", None)
|
||||
build.classify_renpy("lib/*/renpy", None)
|
||||
build.classify_renpy("lib/*/renpy.exe", None)
|
||||
build.classify_renpy("lib/**", "binary")
|
||||
build.classify_renpy("renpy.sh", "binary")
|
||||
build.classify_renpy("renpy.exe", "binary")
|
||||
# renpy.app is now built from scratch from distribute.rpy.
|
||||
|
||||
# jedit rules.
|
||||
@@ -343,4 +359,4 @@ init python:
|
||||
build.package("editra-mac", "zip", "editra-all editra-mac", dlc=True)
|
||||
build.package("editra-windows", "zip", "editra-all editra-windows", dlc=True)
|
||||
build.package("rapt", "zip", "rapt", dlc=True)
|
||||
|
||||
build.package("renios", "zip", "renios", dlc=True)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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
|
||||
@@ -107,7 +107,28 @@ init python in distribute:
|
||||
"""
|
||||
|
||||
def __init__(self, filename):
|
||||
self.zipfile = ZipFile(filename, "w", zipfile.ZIP_DEFLATED)
|
||||
self.zipfile = ZipFile(filename, "w", zipfile.ZIP_DEFLATED, True)
|
||||
|
||||
def get_date_time(self, path):
|
||||
"""
|
||||
Gets the datetime for a file. If the time doesn't exist or is
|
||||
weird, use the current time instead.
|
||||
"""
|
||||
|
||||
try:
|
||||
s = os.stat(path)
|
||||
rv = time.gmtime(s.st_mtime)[:6]
|
||||
|
||||
# Check that the time is sensible.
|
||||
if rv[0] < 2000:
|
||||
rv = None
|
||||
except:
|
||||
rv = None
|
||||
|
||||
if rv is None:
|
||||
rv = time.gmtime()[:6]
|
||||
|
||||
return rv
|
||||
|
||||
def add_file(self, name, path, xbit):
|
||||
|
||||
@@ -115,13 +136,7 @@ init python in distribute:
|
||||
raise Exception("path for " + name + " must not be None.")
|
||||
|
||||
zi = zipfile.ZipInfo(name)
|
||||
|
||||
try:
|
||||
s = os.stat(path)
|
||||
zi.date_time = time.gmtime(s.st_mtime)[:6]
|
||||
except:
|
||||
zi.date_time = time.gmtime()[:6]
|
||||
|
||||
zi.date_time = self.get_date_time(path)
|
||||
zi.compress_type = zipfile.ZIP_DEFLATED
|
||||
zi.create_system = 3
|
||||
|
||||
@@ -137,9 +152,7 @@ init python in distribute:
|
||||
return
|
||||
|
||||
zi = zipfile.ZipInfo(name + "/")
|
||||
|
||||
s = os.stat(path)
|
||||
zi.date_time = time.gmtime(s.st_mtime)[:6]
|
||||
zi.date_time = self.get_date_time(path)
|
||||
zi.compress_type = zipfile.ZIP_STORED
|
||||
zi.create_system = 3
|
||||
zi.external_attr = (long(0040755) << 16) | 0x10
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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
|
||||
@@ -25,6 +25,9 @@ init python:
|
||||
|
||||
config.gl_enable = persistent.gl_enable
|
||||
|
||||
if persistent.show_edit_funcs is None:
|
||||
persistent.show_edit_funcs = True
|
||||
|
||||
if persistent.windows_console is None:
|
||||
persistent.windows_console = False
|
||||
|
||||
@@ -168,7 +171,9 @@ screen preferences:
|
||||
|
||||
textbutton _("Hardware rendering") style "l_checkbox" action ToggleField(persistent, "gl_enable")
|
||||
textbutton _("Show templates") style "l_checkbox" action ToggleField(persistent, "show_templates")
|
||||
textbutton _("Show edit file section") style "l_checkbox" action ToggleField(persistent, "show_edit_funcs")
|
||||
textbutton _("Large fonts") style "l_checkbox" action [ ToggleField(persistent, "large_print"), renpy.utter_restart ]
|
||||
textbutton _("Generate empty strings for translations") style "l_checkbox" action ToggleField(persistent, "generate_empty_strings")
|
||||
|
||||
if renpy.windows:
|
||||
textbutton _("Console output") style "l_checkbox" action ToggleField(persistent, "windows_console")
|
||||
|
||||
+13
-58
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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,9 +22,9 @@
|
||||
# Code that manages projects.
|
||||
|
||||
init python:
|
||||
try:
|
||||
if renpy.windows:
|
||||
import EasyDialogsWin as EasyDialogs
|
||||
except:
|
||||
else:
|
||||
EasyDialogs = None
|
||||
|
||||
import os
|
||||
@@ -121,6 +121,8 @@ init python in project:
|
||||
|
||||
data.setdefault("build_update", False)
|
||||
data.setdefault("packages", [ "all" ])
|
||||
data.setdefault("add_from", True)
|
||||
data.setdefault("force_recompile", True)
|
||||
|
||||
def make_tmp(self):
|
||||
"""
|
||||
@@ -222,7 +224,7 @@ init python in project:
|
||||
if p.wait():
|
||||
interface.error(_("Launching the project failed."), _("Please ensure that your project launches normally before running this command."))
|
||||
|
||||
def update_dump(self, force=False, gui=True):
|
||||
def update_dump(self, force=False, gui=True, compile=False):
|
||||
"""
|
||||
If the dumpfile does not exist, runs Ren'Py to create it. Otherwise,
|
||||
loads it in iff it's newer than the one that's already loaded.
|
||||
@@ -235,7 +237,10 @@ init python in project:
|
||||
if gui:
|
||||
interface.processing(_("Ren'Py is scanning the project..."))
|
||||
|
||||
self.launch(["quit"], wait=True)
|
||||
if compile:
|
||||
self.launch(["compile"], wait=True)
|
||||
else:
|
||||
self.launch(["quit"], wait=True)
|
||||
|
||||
if not os.path.exists(dump_filename):
|
||||
self.dump["error"] = True
|
||||
@@ -553,62 +558,12 @@ label choose_projects_directory:
|
||||
|
||||
interface.interaction(_("PROJECTS DIRECTORY"), _("Please choose the projects directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"), _("This launcher will scan for projects in this directory, will create new projects in this directory, and will place built projects into this directory."),)
|
||||
|
||||
path = persistent.projects_directory
|
||||
path, is_default = choose_directory(persistent.projects_directory)
|
||||
|
||||
if path:
|
||||
default_path = path
|
||||
else:
|
||||
try:
|
||||
default_path = os.path.dirname(os.path.abspath(config.renpy_base))
|
||||
except:
|
||||
default_path = os.path.abspath(config.renpy_base)
|
||||
|
||||
|
||||
if EasyDialogs:
|
||||
|
||||
choice = EasyDialogs.AskFolder(defaultLocation=default_path, wanted=unicode)
|
||||
|
||||
if choice is not None:
|
||||
path = choice
|
||||
else:
|
||||
path = None
|
||||
|
||||
else:
|
||||
|
||||
try:
|
||||
|
||||
cmd = [ "/usr/bin/python", os.path.join(config.gamedir, "tkaskdir.py"), renpy.fsencode(default_path) ]
|
||||
|
||||
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
|
||||
choice = p.stdout.read()
|
||||
code = p.wait()
|
||||
|
||||
except:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
code = 0
|
||||
choice = ""
|
||||
path = None
|
||||
|
||||
interface.error(_("Ren'Py was unable to run python with tkinter to choose the projects directory. Please install the python-tk or tkinter package."), label=None)
|
||||
|
||||
if code:
|
||||
interface.error(_("Ren'Py was unable to run python with tkinter to choose the projects directory. Please install the python-tk or tkinter package."), label=None)
|
||||
|
||||
elif choice:
|
||||
path = choice.decode("utf-8")
|
||||
|
||||
if path is None:
|
||||
path = default_path
|
||||
if is_default:
|
||||
interface.info(_("Ren'Py has set the projects directory to:"), "[path!q]", path=path)
|
||||
|
||||
path = renpy.fsdecode(path)
|
||||
|
||||
if os.path.isdir(path):
|
||||
persistent.projects_directory = path
|
||||
else:
|
||||
path = os.path.abspath(config.renpy_base)
|
||||
persistent.projects_directory = path
|
||||
|
||||
project.manager.scan()
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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
|
||||
@@ -104,9 +104,9 @@ init 1 python:
|
||||
|
||||
def checkbox(full, color):
|
||||
if full:
|
||||
return im.Twocolor("images/checkbox_full.png", color, color, yalign=0.5)
|
||||
return im.Twocolor("images/checkbox_full.png", color, color, style="l_checkbox_box")
|
||||
else:
|
||||
return im.Twocolor("images/checkbox_empty.png", color, color, yalign=0.5)
|
||||
return im.Twocolor("images/checkbox_empty.png", color, color, style="l_checkbox_box")
|
||||
|
||||
init 1:
|
||||
|
||||
@@ -322,6 +322,10 @@ init 1:
|
||||
selected_hover_background checkbox(True, HOVER)
|
||||
insensitive_background checkbox(False, DISABLED)
|
||||
|
||||
style l_checkbox_box:
|
||||
yanchor 0.5
|
||||
ypos 11
|
||||
|
||||
style l_checkbox_text is l_button_text:
|
||||
selected_font LIGHT
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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,6 +1,6 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# Copyright 2004-2014 Tom Rothamel <pytom@bishoujo.us>
|
||||
# Copyright 2004-2015 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 @@
|
||||
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# game/about.rpy:21
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# game/add_file.rpy:7
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# : Translation updated at 2013-11-17 23:18
|
||||
# : Translation updated at 2013-11-17 23:18
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
@@ -80,7 +80,7 @@ translate arabic strings:
|
||||
|
||||
# game/android.rpy:409
|
||||
old "Build:"
|
||||
new ""
|
||||
new "بناء"
|
||||
|
||||
# game/android.rpy:417
|
||||
old "Install SDK & Create Keys"
|
||||
@@ -162,3 +162,39 @@ translate arabic strings:
|
||||
old "The port must be a number."
|
||||
new "يجب ان يكون العنوان مكون من أرقام فقط"
|
||||
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# game/android.rpy:46
|
||||
old "Builds the Android package, installs it on an Android device connected to your computer, then launches the app on your device."
|
||||
new "يبني الحزمة الخاصة بالأندرويد و يقوم بتنصيبها على جهاز أندرويد متصل بجهازك, ثم يقوم بإقلاع البرنامج على جهاز الأندرويد."
|
||||
|
||||
# game/android.rpy:290
|
||||
old "Television"
|
||||
new "تلفاز"
|
||||
|
||||
# game/android.rpy:326
|
||||
old "Build, Install & Launch"
|
||||
new "بناء,تنصيب و إقلاع."
|
||||
|
||||
# : Translation updated at 2015-06-19 08:55
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# game/android.rpy:50
|
||||
old "Retrieves the log from the Android device and writes it to a file."
|
||||
new "يجلب قائمة المهام من جعاز الأندرويد و يكتبها في ملف."
|
||||
|
||||
# game/android.rpy:240
|
||||
old "Copying Android files to distributions directory."
|
||||
new "يتم الآن نسخ ملفات الأندرويد إلى المجلد الخاص بالنشر"
|
||||
|
||||
# game/android.rpy:404
|
||||
old "Logcat"
|
||||
new "Logcat"
|
||||
|
||||
# game/android.rpy:538
|
||||
old "Retrieving logcat information from device."
|
||||
new "يتم النسخ من الجهاز لمعلومات Logcat"
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# game/choose_directory.rpy:73
|
||||
old "Ren'Py was unable to run python with tkinter to choose the directory. Please install the python-tk or tkinter package."
|
||||
new "لم يتمكن رينباي من تشغيل بايثون باستخدام tkinter لاختيار المجلد. الرجال تنصيب حزمة tkinter أو python-tk."
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# game/choose_theme.rpy:274
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# : Translation updated at 2013-04-30 07:54
|
||||
# : Translation updated at 2013-04-30 07:54
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
@@ -526,3 +526,64 @@ translate arabic strings:
|
||||
old "Location"
|
||||
new "الموقع"
|
||||
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# renpy/common/00preferences.rpy:387
|
||||
old "Clipboard voicing enabled. Press 'shift+C' to disable."
|
||||
new "تشغيل الأصوات من الحافظة مفعّل. إضغط لإيقافه زريّ: Shift+C"
|
||||
|
||||
# renpy/common/00preferences.rpy:389
|
||||
old "Self-voicing enabled. Press 'v' to disable."
|
||||
new "التكلّم التلقائي مفعَل. لإيقافه إضغط زر V"
|
||||
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# renpy/common/00updater.rpy:362
|
||||
old "The Ren'Py Updater is not supported on mobile devices."
|
||||
new "تحديث برنامج رينباي غير مدعوم على الأجهزة المحمولة."
|
||||
|
||||
# renpy/common/00updater.rpy:478
|
||||
old "An error is being simulated."
|
||||
new "يتم محاكاة خطأ الآن."
|
||||
|
||||
# renpy/common/00updater.rpy:654
|
||||
old "Either this project does not support updating, or the update status file was deleted."
|
||||
new "هذا المشروع لا يدعم التحديث، أو أن ملف حالة نسخة البرنامج محذوفة."
|
||||
|
||||
# renpy/common/00updater.rpy:668
|
||||
old "This account does not have permission to perform an update."
|
||||
new "هذا الحساب ليست لديه الصلاحية ليقوم بالتحديث."
|
||||
|
||||
# renpy/common/00updater.rpy:671
|
||||
old "This account does not have permission to write the update log."
|
||||
new " هذا الحساب ليست لديه الصلاحية ليكتب ملف التحديث."
|
||||
|
||||
# renpy/common/00updater.rpy:696
|
||||
old "Could not verify update signature."
|
||||
new "لم نتمكن من التحقق من توقيع التحديث update signature."
|
||||
|
||||
# renpy/common/00updater.rpy:956
|
||||
old "The update file was not downloaded."
|
||||
new "لم يتم تحميل ملف التحديث."
|
||||
|
||||
# renpy/common/00updater.rpy:974
|
||||
old "The update file does not have the correct digest - it may have been corrupted."
|
||||
new "ملف التحديث لا يحتوي على المختصرات الصحيحة - قد يكون معطوباً."
|
||||
|
||||
# renpy/common/00updater.rpy:1030
|
||||
old "While unpacking {}, unknown type {}."
|
||||
new "عند فك الحزمة {}، نوع مجهول {}."
|
||||
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# renpy/common/_developer/developer.rpym:437
|
||||
old "Rectangle copied to clipboard."
|
||||
new "تم نسخ المربع إلى الحافظة."
|
||||
|
||||
# renpy/common/_developer/developer.rpym:440
|
||||
old "Position copied to clipboard."
|
||||
new "تم نسخ الموضع إلى الحافظة."
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# : Translation updated at 2013-04-30 07:54
|
||||
# : Translation updated at 2013-04-30 07:54
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# game/distribute_gui.rpy:139
|
||||
@@ -45,3 +45,22 @@ translate arabic strings:
|
||||
old "Your project does not contain build information. Would you like to add build information to the end of options.rpy?"
|
||||
new "مشروعك يخلو من معلومات النشر, هل ترغب في إضافة هذه المعلومات في نهاية ملف options.rpy؟"
|
||||
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# game/distribute_gui.rpy:194
|
||||
old "Add from clauses to calls, once"
|
||||
new "إضافة بند 'مِن' إلى أمر الجلب, مرة واحدة"
|
||||
|
||||
# game/distribute_gui.rpy:231
|
||||
old "Options:"
|
||||
new "خيارات:"
|
||||
|
||||
# game/distribute_gui.rpy:238
|
||||
old "Add from clauses to calls"
|
||||
new "إضافة بنود 'مِن' إلى أمر الجلب"
|
||||
|
||||
# game/distribute_gui.rpy:246
|
||||
old "Adding from clauses to call statements that do not have them."
|
||||
new "إضافة بنود 'مِن' إلى أوامر الجلب التي لا تحتوي عليها."
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Translation updated at 2013-04-30 07:54
|
||||
# Translation updated at 2013-04-30 07:54
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# : Translation updated at 2013-04-30 07:54
|
||||
# : Translation updated at 2013-04-30 07:54
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
@@ -114,3 +114,18 @@ translate arabic strings:
|
||||
old "Recompiling all rpy files into rpyc files..."
|
||||
new "يتم إعادة حزم الملفات من صيغة rpy إلى rpyc..."
|
||||
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# game/front_page.rpy:246
|
||||
old "iOS"
|
||||
new "iOS نظام تشغيل"
|
||||
|
||||
# Translation updated at 2015-06-19 08:55
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# game/front_page.rpy:198
|
||||
old "images"
|
||||
new "الصور"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# game/interface.rpy:89
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
# Translation updated at 2015-03-22 20:50
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# game/ios.rpy:28
|
||||
old "To build iOS packages, please download renios, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher."
|
||||
new "لبناء حزم الـ iOS, الرجاء تحميل البرنامج الخاص بذلك renios و فك الضغط عنه, ثم وضعه في مجلد رينباي الرئيسي. بعد ذلك قم بإعادة تشغيل رينباي."
|
||||
|
||||
# game/ios.rpy:29
|
||||
old "The directory in where Xcode projects will be placed has not been selected. Choose 'Select Directory' to select it."
|
||||
new "لم يتم اختيار المسار الذي سيتم وضع Xcode فيه. الرجاء ضغط زر اختيار المجلد لاختيار المكان الصحيح."
|
||||
|
||||
# game/ios.rpy:30
|
||||
old "There is no Xcode project corresponding to the current Ren'Py project. Choose 'Create Xcode Project' to create one."
|
||||
new "لا يوجد مشروع Xcode متطابق مع مشروع رينباي الحالي. الرجاء اختيار زر 'صنع مشروع Xcode' لبدء واحد."
|
||||
|
||||
# game/ios.rpy:31
|
||||
old "An Xcode project exists. Choose 'Update Xcode Project' to update it with the latest game files, or use Xcode to build and install it."
|
||||
new "يوجد مشروع Xcode. لتحديثه قم بضغط زر 'تحديث مشروع Xcode' ليصبح متطابقاً مع آخر التعديلات على اللعبة’ او قم باستعمال Xcode للبناء و التنصيب."
|
||||
|
||||
# game/ios.rpy:33
|
||||
old "Attempts to emulate an iPhone.\n\nTouch input is emulated through the mouse, but only when the button is held down."
|
||||
new "يقوم بمحاكاة جهاز أيفون. اللمس يتم محاكاته عن طريق الضغط بالزر الأيسر للفأرة."
|
||||
|
||||
# game/ios.rpy:34
|
||||
old "Attempts to emulate an iPad.\n\nTouch input is emulated through the mouse, but only when the button is held down."
|
||||
new "يقوم بمحاكاة جهاز أيفون. اللمس يتم محاكاته عن طريق الضغط بالزر الأيسر للفأرة."
|
||||
|
||||
# game/ios.rpy:36
|
||||
old "Selects the directory where Xcode projects will be placed."
|
||||
new "إختر المجلد الذي سيكون فيه مشروع Xcode."
|
||||
|
||||
# game/ios.rpy:37
|
||||
old "Creates an Xcode project corresponding to the current Ren'Py project."
|
||||
new "يقوم بصنع مشروع Xcode متطابق مع مشروع رينباي الحالي."
|
||||
|
||||
# game/ios.rpy:38
|
||||
old "Updates the Xcode project with the latest game files. This must be done each time the Ren'Py project changes."
|
||||
new "يقوم بتحديث مشروع Xcode ليصبح متطابقاً مع ملفات اللعبة. يجب أن يتم تكرار هذه العملية مع كل تغيير في اللعبة."
|
||||
|
||||
# game/ios.rpy:39
|
||||
old "Opens the Xcode project in Xcode."
|
||||
new "يقوم بفتح مشروع Xcode في Xcode."
|
||||
|
||||
# game/ios.rpy:41
|
||||
old "Opens the directory containing Xcode projects."
|
||||
new "يقوم بفتح المجلد الموجود فيه مشاريع Xcode."
|
||||
|
||||
# game/ios.rpy:126
|
||||
old "The Xcode project already exists. Would you like to rename the old project, and replace it with a new one?"
|
||||
new "مشروع Xcode موجود مسبقاً. هل تريد تغيير إسم المشروع القديم, و استبداله بالجديد؟"
|
||||
|
||||
# game/ios.rpy:200
|
||||
old "iOS: [project.current.name!q]"
|
||||
new "iOS: [project.current.name!q]"
|
||||
|
||||
# game/ios.rpy:229
|
||||
old "iPhone"
|
||||
new "أيفون"
|
||||
|
||||
# game/ios.rpy:233
|
||||
old "iPad"
|
||||
new "أيباد"
|
||||
|
||||
# game/ios.rpy:253
|
||||
old "Select Xcode Projects Directory"
|
||||
new "إختر مسار مشاريع Xcode"
|
||||
|
||||
# game/ios.rpy:257
|
||||
old "Create Xcode Project"
|
||||
new "صنع مشروع Xcode"
|
||||
|
||||
# game/ios.rpy:261
|
||||
old "Update Xcode Project"
|
||||
new "تحديث مشروع Xcode"
|
||||
|
||||
# game/ios.rpy:266
|
||||
old "Launch Xcode"
|
||||
new "إقلاع Xcode"
|
||||
|
||||
# game/ios.rpy:301
|
||||
old "Open Xcode Projects Directory"
|
||||
new "فتح مجلد مشاريع Xcode"
|
||||
|
||||
# game/ios.rpy:334
|
||||
old "Before packaging iOS apps, you'll need to download renios, Ren'Py's iOS support. Would you like to download renios now?"
|
||||
new "قبل صنع الحزم الخاصة ببرامج iOS يجب ان تقوم بتحميل برنامج renios المساند لرينباي على اجهزة أبل. هل تريد تحميل renios الآن؟"
|
||||
|
||||
# game/ios.rpy:343
|
||||
old "XCODE PROJECTS DIRECTORY"
|
||||
new "مسار مشاريع Xcode"
|
||||
|
||||
# game/ios.rpy:343
|
||||
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 فيه باستخدام نافذة اختيار المجلد. قد تكون النافذة مفتوحة خلف هذه النافذة."
|
||||
|
||||
# game/ios.rpy:348
|
||||
old "Ren'Py has set the Xcode Projects Directory to:"
|
||||
new "رينباي قام بتحديد مجلد مشاريع Xcode إلى:"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# game/navigation.rpy:150
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# : Translation updated at 2013-04-30 07:54
|
||||
# : Translation updated at 2013-04-30 07:54
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# : Translation updated at 2013-04-30 07:54
|
||||
# : Translation updated at 2013-04-30 07:54
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
@@ -82,3 +82,14 @@ translate arabic strings:
|
||||
old "Large fonts"
|
||||
new "خط كبير"
|
||||
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# game/preferences.rpy:174
|
||||
old "Show edit file section"
|
||||
new "عرض قسم تعديل الملف"
|
||||
|
||||
# game/preferences.rpy:176
|
||||
old "Generate empty strings for translations"
|
||||
new "صنع خانات فارغة للترجمات"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# : Translation updated at 2013-04-30 07:54
|
||||
# : Translation updated at 2013-04-30 07:54
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
translate arabic python:
|
||||
translate arabic python:
|
||||
al = "DejaVuSans.ttf"
|
||||
style.l_default.font = al
|
||||
style.l_default.size = 16
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
# game/translations.rpy:10
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# : Translation updated at 2013-04-30 07:54
|
||||
# : Translation updated at 2013-04-30 07:54
|
||||
|
||||
translate arabic strings:
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/about.rpy:39
|
||||
old "[version!q]"
|
||||
new "[version!q]"
|
||||
|
||||
# game/about.rpy:43
|
||||
old "View license"
|
||||
new "Näytä lisenssi"
|
||||
|
||||
# game/about.rpy:45
|
||||
old "Back"
|
||||
new "Takaisin"
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/add_file.rpy:28
|
||||
old "FILENAME"
|
||||
new "TIEDOSTONIMI"
|
||||
|
||||
# game/add_file.rpy:28
|
||||
old "Enter the name of the script file to create."
|
||||
new "Kirjoita skriptitiedoston nimi, jonka haluat luoda."
|
||||
|
||||
# game/add_file.rpy:31
|
||||
old "The filename must have the .rpy extension."
|
||||
new "Tiedostolla on oltava .rpy -tunniste."
|
||||
|
||||
# game/add_file.rpy:39
|
||||
old "The file already exists."
|
||||
new "Tiedosto on jo olemassa."
|
||||
|
||||
# game/add_file.rpy:42
|
||||
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"
|
||||
new "# Ren'Py lataa automaattisesti kaikki scriptitiedostot, joilla on .rpy pääte. Käyttääksesi tätä\n# tiedostoa, luo label ja hyppää siihen toisesta tiedostosta.\n"
|
||||
|
||||
@@ -0,0 +1,186 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/android.rpy:30
|
||||
old "To build Android packages, please download RAPT, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher."
|
||||
new "Luodaksesi Android-sovelluksia, ole hyvä ja lataa RAPT, pura se, ja aseta se Ren'Py kansioon. Tämän jälkeen käynnistä Ren'Py uudelleen."
|
||||
|
||||
# game/android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "32-bittinen Javan kehitystyökalu vaaditaan Android-sovellusten luomiseen Windowsilla. JDK on erilainen kuin JRE, joten on mahdollista, että sinulla on Java ilman JDK:ta.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}Lataa ja asenna JDK{/a}, ja sen jälkeen käynnistä Ren'Py uudelleen."
|
||||
|
||||
# game/android.rpy:32
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
new "RAPT on asennettu, mutta sinun on asennettava Android SDK ennen kuin voit luoda Android-sovelluksia. Valitse 'Asenna SDK' tehdäksesi tämän."
|
||||
|
||||
# game/android.rpy:33
|
||||
old "RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore."
|
||||
new "RAPT on asennettu, mutta avainta ei ole konfiguroitu. Luo uusi avain, tai palauta android.keystore."
|
||||
|
||||
# game/android.rpy:34
|
||||
old "The current project has not been configured. Use \"Configure\" to configure it before building."
|
||||
new "Valittua projektia ei ole konfiguroitu. Käytä \"Konfigurointi\" -toimintoa konfiguroidaksesi sen ennen sovelluksen kokoamista."
|
||||
|
||||
# game/android.rpy:35
|
||||
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."
|
||||
new "Valitse \"Kokoa\" kootaksesi projektin, tai kiinnitä Android-laite ja valitse \"Kokoa ja asenna\" kootaksesi ja asentaaksesi sen laitteeseen."
|
||||
|
||||
# game/android.rpy:37
|
||||
old "Attempts to emulate an Android phone.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
|
||||
new "Ren'Py pyrkii emuloimaan Android-puhelinta.\n\nKosketus valintaa emuloidaan hiirellä, mutta vain kun nappia pidetään pohjassa. Esc toimii Menu-näppäimenä ja Pg Up toimii peruutusnappina."
|
||||
|
||||
# game/android.rpy:38
|
||||
old "Attempts to emulate an Android tablet.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
|
||||
new "Ren'Py pyrkii emuloimaan Android-tablettia.\n\nKosketusta emuloidaan hiirellä, mutta vain kun nappia pidetään pohjassa. Esc toimii Menu-näppäimenä ja Pg Up toimii peruutusnappina."
|
||||
|
||||
# game/android.rpy:39
|
||||
old "Attempts to emulate a televison-based Android console, like the OUYA or Fire TV.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button."
|
||||
new "Ren'Py pyrkii emuloimaan televisiopohjaista Android-konsolia, kuten OUYA tai Fire TV.\n\nOhjainnäppäimet ovat nuolinäppäimet, Enter toimii valitsijana, Esc toimii Menu-näppäimenä ja Pg Up toimii peruutusnappina."
|
||||
|
||||
# game/android.rpy:41
|
||||
old "Downloads and installs the Android SDK and supporting packages. Optionally, generates the keys required to sign the package."
|
||||
new "Lataa ja asentaa Android SDK:n ja tarvittavat lisäpaketit. Lisäksi, voidaan käyttää avainten luomiseen."
|
||||
|
||||
# game/android.rpy:42
|
||||
old "Configures the package name, version, and other information about this project."
|
||||
new "Konfiguroi paketin nimen, version sekä kaiken muun projektia koskevan tiedon."
|
||||
|
||||
# game/android.rpy:43
|
||||
old "Opens the file containing the Google Play keys in the editor.\n\nThis is only needed if the application is using an expansion APK. Read the documentation for more details."
|
||||
new "Avaa tiedoston, joka sisältää Google Play -avaimet, editorissa.\n\nTätä tarvitaan vain, jos sovellus käyttää laajennus-APK:ta. Lue dokumentit saadaksesi lisätietoa."
|
||||
|
||||
# game/android.rpy:44
|
||||
old "Builds the Android package."
|
||||
new "Rakentaa Android-paketin."
|
||||
|
||||
# game/android.rpy:45
|
||||
old "Builds the Android package, and installs it on an Android device connected to your computer."
|
||||
new "Rakentaa Android-paketin, ja asentaa sen tietokoneeseen kytkettyyn Android-laitteeseen."
|
||||
|
||||
# game/android.rpy:47
|
||||
old "Connects to an Android device running ADB in TCP/IP mode."
|
||||
new "Yhdistää Android-laitteeseen, jossa on käytössä ADB TCP/IP -tilassa."
|
||||
|
||||
# game/android.rpy:48
|
||||
old "Disconnects from an Android device running ADB in TCP/IP mode."
|
||||
new "Katkaisee yhteyden Android-laitteeseen, jossa on käytössä ADB TCP/IP -tila."
|
||||
|
||||
# game/android.rpy:164
|
||||
old "{a=%s}%s{/a}"
|
||||
new "{a=%s}%s{/a}"
|
||||
|
||||
# game/android.rpy:176
|
||||
old "QUESTION"
|
||||
new "KYSYMYS"
|
||||
|
||||
# game/android.rpy:445
|
||||
old "Android: [project.current.name!q]"
|
||||
new "Android: [project.current.name!q]"
|
||||
|
||||
# game/android.rpy:465
|
||||
old "Emulation:"
|
||||
new "Emulointi:"
|
||||
|
||||
# game/android.rpy:473
|
||||
old "Phone"
|
||||
new "Puhelin"
|
||||
|
||||
# game/android.rpy:477
|
||||
old "Tablet"
|
||||
new "Tablettitietokone"
|
||||
|
||||
# game/android.rpy:481
|
||||
old "Television / OUYA"
|
||||
new "Televisio / OUYA"
|
||||
|
||||
# game/android.rpy:493
|
||||
old "Build:"
|
||||
new "Kokoa:"
|
||||
|
||||
# game/android.rpy:501
|
||||
old "Install SDK & Create Keys"
|
||||
new "Asenna SDK & Luo avaimet"
|
||||
|
||||
# game/android.rpy:505
|
||||
old "Configure"
|
||||
new "Muokkaa asetuksia"
|
||||
|
||||
# game/android.rpy:509
|
||||
old "Build Package"
|
||||
new "Kokoamispaketti:"
|
||||
|
||||
# game/android.rpy:513
|
||||
old "Build & Install"
|
||||
new "Kokoa & Asenna"
|
||||
|
||||
# game/android.rpy:524
|
||||
old "Other:"
|
||||
new "Muu:"
|
||||
|
||||
# game/android.rpy:532
|
||||
old "Remote ADB Connect"
|
||||
new "Langaton ADB-yhdistäminen:"
|
||||
|
||||
# game/android.rpy:536
|
||||
old "Remote ADB Disconnect"
|
||||
new "Langaton ADB-katkaisu:"
|
||||
|
||||
# game/android.rpy:569
|
||||
old "Before packaging Android apps, you'll need to download RAPT, the Ren'Py Android Packaging Tool. Would you like to download RAPT now?"
|
||||
new "Ennen Android-sovellusten pakkausta, sinun on ladattava RAPT (Ren'Py Android Packaging Tool). Haluatko ladata RAPT:in nyt?"
|
||||
|
||||
# game/android.rpy:615
|
||||
old "Remote ADB Address"
|
||||
new "Langaton ADB-osoite"
|
||||
|
||||
# game/android.rpy:615
|
||||
old "Please enter the IP address and port number to connect to, in the form \"192.168.1.143:5555\". Consult your device's documentation to determine if it supports remote ADB, and if so, the address and port to use."
|
||||
new "Syötä yhdistettävän kohteen IP-osoite ja porttinumero, esimerkin \"192.168.1.143:5555\" mukaisesti. Selvitä laitteesi tiedoista kykeneekö se langattomaan ADB:hen, ja jos näin on, käytettävä osoite ja portti."
|
||||
|
||||
# game/android.rpy:627
|
||||
old "Invalid remote ADB address"
|
||||
new "Langaton ADB-osoite ei kelpaa."
|
||||
|
||||
# game/android.rpy:627
|
||||
old "The address must contain one exactly one ':'."
|
||||
new "Osoitteessa on oltava yksi, ja vain yksi, ':'."
|
||||
|
||||
# game/android.rpy:631
|
||||
old "The host may not contain whitespace."
|
||||
new "Isäntä ei voi sisältää välilyöntejä."
|
||||
|
||||
# game/android.rpy:637
|
||||
old "The port must be a number."
|
||||
new "Portin on oltava numero."
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/android.rpy:46
|
||||
old "Builds the Android package, installs it on an Android device connected to your computer, then launches the app on your device."
|
||||
new "Kokoaa Android-paketin, asentaa sen tietokoneeseen kytkettyyn Android-laitteeseen ja käynnistää sovelluksen laitteessa."
|
||||
|
||||
# game/android.rpy:50
|
||||
old "Retrieves the log from the Android device and writes it to a file."
|
||||
new "Noutaa lokin Android-laitteesta ja kirjoittaa sen tiedostoon."
|
||||
|
||||
# game/android.rpy:240
|
||||
old "Copying Android files to distributions directory."
|
||||
new "Kopioidaan Android-tiedostoja jakelukansioon."
|
||||
|
||||
# game/android.rpy:341
|
||||
old "Television"
|
||||
new "Televisio"
|
||||
|
||||
# game/android.rpy:377
|
||||
old "Build, Install & Launch"
|
||||
new "Kokoa, Asenna & Suorita"
|
||||
|
||||
# game/android.rpy:404
|
||||
old "Logcat"
|
||||
new "Logcat"
|
||||
|
||||
# game/android.rpy:538
|
||||
old "Retrieving logcat information from device."
|
||||
new "Noudetaan logcat-informaatiota laitteesta."
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/choose_directory.rpy:73
|
||||
old "Ren'Py was unable to run python with tkinter to choose the directory. Please install the python-tk or tkinter package."
|
||||
new "Ren'Py ei kyennyt suorittamaan pythonia tkinterillä valitakseen kansion. Ole hyvä ja asenna python-tk tai tkinter-paketti."
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/choose_theme.rpy:303
|
||||
old ""
|
||||
new ""
|
||||
|
||||
# game/choose_theme.rpy:368
|
||||
old "Display"
|
||||
new "Näyttö"
|
||||
|
||||
# game/choose_theme.rpy:369
|
||||
old "Window"
|
||||
new "Ikkuna"
|
||||
|
||||
# game/choose_theme.rpy:370
|
||||
old "Fullscreen"
|
||||
new "Koko näyttö"
|
||||
|
||||
# game/choose_theme.rpy:371
|
||||
old "Planetarium"
|
||||
new "Planetaario"
|
||||
|
||||
# game/choose_theme.rpy:378
|
||||
old "Sound Volume"
|
||||
new "Ääniefektien voimakkuus"
|
||||
|
||||
# game/choose_theme.rpy:412
|
||||
old "Choose Theme"
|
||||
new "Valitse teema"
|
||||
|
||||
# game/choose_theme.rpy:425
|
||||
old "Theme"
|
||||
new "Teema"
|
||||
|
||||
# game/choose_theme.rpy:449
|
||||
old "Color Scheme"
|
||||
new "Värikartta"
|
||||
|
||||
# game/choose_theme.rpy:480
|
||||
old "Continue"
|
||||
new "Jatka"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/choose_theme.rpy:303
|
||||
old "Could not change the theme. Perhaps options.rpy was changed too much."
|
||||
new "Teemaa ei voitu vaihtaa. Kenties options.rpy:tä muutettiin liikaa."
|
||||
|
||||
@@ -0,0 +1,554 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/00action_file.rpy:142
|
||||
old "%b %d, %H:%M"
|
||||
new "%b %d, %H:%M"
|
||||
|
||||
# renpy/common/00action_file.rpy:621
|
||||
old "Quick save complete."
|
||||
new "Pikatallennus suoritettu."
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/00console.rpy:179
|
||||
old "%(version)s console, originally by Shiz, C, and delta.\n"
|
||||
new "%(version)n konsoli, alunperin tehneet Shiz, C ja delta.\n"
|
||||
|
||||
# renpy/common/00console.rpy:180
|
||||
old "Press <esc> to exit console. Type help for help.\n"
|
||||
new "Paina <esc> poistuaksesi konsolista. Käytä komentoa help saadaksesi apua."
|
||||
|
||||
# renpy/common/00console.rpy:184
|
||||
old "Ren'Py script enabled."
|
||||
new "Ren'Py-skriptikieli käytössä."
|
||||
|
||||
# renpy/common/00console.rpy:186
|
||||
old "Ren'Py script disabled."
|
||||
new "Ren'Py-skriptikieli poissa käytöstä."
|
||||
|
||||
# renpy/common/00console.rpy:392
|
||||
old "help: show this help"
|
||||
new "help: näytä tämä apuviesti"
|
||||
|
||||
# renpy/common/00console.rpy:397
|
||||
old "commands:\n"
|
||||
new "komennot:\n"
|
||||
|
||||
# renpy/common/00console.rpy:407
|
||||
old " <renpy script statement>: run the statement\n"
|
||||
new " <renpy script-väite>: suorita väite\n"
|
||||
|
||||
# renpy/common/00console.rpy:409
|
||||
old " <python expression or statement>: run the expression or statement"
|
||||
new " <python ekspressio tai väite>: suorita ekspressio tai väite"
|
||||
|
||||
# renpy/common/00console.rpy:417
|
||||
old "clear: clear the console history"
|
||||
new "clear: tyhjennä konsolin historia"
|
||||
|
||||
# renpy/common/00console.rpy:421
|
||||
old "exit: exit the console"
|
||||
new "exit: poistu konsolista"
|
||||
|
||||
# renpy/common/00console.rpy:429
|
||||
old "load <slot>: loads the game from slot"
|
||||
new "load <tallennuspaikka>: lataa pelin halutusta tallennuspaikasta"
|
||||
|
||||
# renpy/common/00console.rpy:442
|
||||
old "save <slot>: saves the game in slot"
|
||||
new "save <tallennuspaikka>: tallentaa pelin tallennuspaikkaan"
|
||||
|
||||
# renpy/common/00console.rpy:453
|
||||
old "reload: reloads the game, refreshing the scripts"
|
||||
new "reload: lataa pelin uudelleen, päivittäen skriptit"
|
||||
|
||||
# renpy/common/00console.rpy:461
|
||||
old "watch <expression>: watch a python expression"
|
||||
new "watch <ekspressio>: tarkkaile python-ekspressiota"
|
||||
|
||||
# renpy/common/00console.rpy:470
|
||||
old "unwatch <expression>: stop watching an expression"
|
||||
new "unwatch <ekspressio>: lakkaa tarkkailemasta ekspressiota"
|
||||
|
||||
# renpy/common/00console.rpy:478
|
||||
old "unwatchall: stop watching all expressions"
|
||||
new "unwatchall: lopeta kaikkien ekspressioiden tarkkailu"
|
||||
|
||||
# renpy/common/00console.rpy:484
|
||||
old "jump <label>: jumps to label"
|
||||
new "jump <tunnus>: hyppää 'script.rpy'-tiedosto(i)ssa olevaan, tunnuksella merkittyyn kohtaan"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/00gallery.rpy:561
|
||||
old "Image [index] of [count] locked."
|
||||
new ""
|
||||
|
||||
# renpy/common/00gallery.rpy:581
|
||||
old "prev"
|
||||
new "edellinen"
|
||||
|
||||
# renpy/common/00gallery.rpy:582
|
||||
old "next"
|
||||
new "seuraava"
|
||||
|
||||
# renpy/common/00gallery.rpy:583
|
||||
old "slideshow"
|
||||
new "diaesitys"
|
||||
|
||||
# renpy/common/00gallery.rpy:584
|
||||
old "return"
|
||||
new "palaa"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/00gltest.rpy:68
|
||||
old "Graphics Acceleration"
|
||||
new "Grafiikkakiihdytys"
|
||||
|
||||
# renpy/common/00gltest.rpy:72
|
||||
old "Automatically Choose"
|
||||
new "Valitse automaattisesti"
|
||||
|
||||
# renpy/common/00gltest.rpy:77
|
||||
old "Force Angle/DirectX Renderer"
|
||||
new "Pakota Angle/DirectX-renderöinti"
|
||||
|
||||
# renpy/common/00gltest.rpy:81
|
||||
old "Force OpenGL Renderer"
|
||||
new "Pakota OpenGL-renderöinti"
|
||||
|
||||
# renpy/common/00gltest.rpy:85
|
||||
old "Force Software Renderer"
|
||||
new "Pakota Software-renderöinti"
|
||||
|
||||
# renpy/common/00gltest.rpy:91
|
||||
old "Changes will take effect the next time this program is run."
|
||||
new "Muutokset tulevat voimaan, kun käynnistät ohjelman uudelleen."
|
||||
|
||||
# renpy/common/00gltest.rpy:95
|
||||
old "Quit"
|
||||
new "Poistu"
|
||||
|
||||
# renpy/common/00gltest.rpy:100
|
||||
old "Return"
|
||||
new "Palaa"
|
||||
|
||||
# renpy/common/00gltest.rpy:130
|
||||
old "Performance Warning"
|
||||
new "Suorituskyvyn varoitus"
|
||||
|
||||
# renpy/common/00gltest.rpy:135
|
||||
old "This computer is using software rendering."
|
||||
new "Tietokone käyttää software-renderöintiä."
|
||||
|
||||
# renpy/common/00gltest.rpy:137
|
||||
old "This computer is not using shaders."
|
||||
new "Tietokone ei käytä varjostimia."
|
||||
|
||||
# renpy/common/00gltest.rpy:139
|
||||
old "This computer is displaying graphics slowly."
|
||||
new "Tietokone näyttää grafiikkaa hitaasti."
|
||||
|
||||
# renpy/common/00gltest.rpy:141
|
||||
old "This computer has a problem displaying graphics: [problem]."
|
||||
new "Tietokoneella on ongelmia grafiikan näyttämisessä: [problem]"
|
||||
|
||||
# renpy/common/00gltest.rpy:146
|
||||
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display. Updating DirectX could fix this problem."
|
||||
new "Sen grafiikka-ajurit voivat olla vanhentuneita tai ne saattavat toimia väärin. Tämä voi johtaa hitaaseen tai väärään grafiikan esittämiseen. DirectX:n päivittäminen saattaa korjata ongelman."
|
||||
|
||||
# renpy/common/00gltest.rpy:148
|
||||
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
|
||||
new "Sen grafiikka-ajurit voivat olla vanhentuneita tai ne saattavat toimia väärin. Tämä voi johtaa hitaaseen tai väärään grafiikan esittämiseen."
|
||||
|
||||
# renpy/common/00gltest.rpy:153
|
||||
old "Update DirectX"
|
||||
new "Päivitä DirectX"
|
||||
|
||||
# renpy/common/00gltest.rpy:159
|
||||
old "Continue, Show this warning again"
|
||||
new "Jatka, näytä tämä varoitus uudelleen"
|
||||
|
||||
# renpy/common/00gltest.rpy:163
|
||||
old "Continue, Don't show warning again"
|
||||
new "Jatka, älä näytä tätä varoitusta enää uudelleen"
|
||||
|
||||
# renpy/common/00gltest.rpy:189
|
||||
old "Updating DirectX."
|
||||
new "Päivitetään DirectX:ää."
|
||||
|
||||
# renpy/common/00gltest.rpy:193
|
||||
old "DirectX web setup has been started. It may start minimized in the taskbar. Please follow the prompts to install DirectX."
|
||||
new "DirectX verkkoasennus on alkanut. Se voi olla aluksi minimisoituna työkalupalkilla. Seuraa ohjeita asentaaksesi DirectX:n."
|
||||
|
||||
# renpy/common/00gltest.rpy:197
|
||||
old "{b}Note:{/b} Microsoft's DirectX web setup program will, by default, install the Bing toolbar. If you do not want this toolbar, uncheck the appropriate box."
|
||||
new "{b}Huomaa:{/b} Microsoftin DirectX verkkoasennusohjelma asentaa, oletusarvoisesti, Bing-työkalupalkin. Jos et halua tätä työkalupalkkia, poista valinta oikeasta laatikosta."
|
||||
|
||||
# renpy/common/00gltest.rpy:201
|
||||
old "When setup finishes, please click below to restart this program."
|
||||
new "Kun asennus on valmis, klikkaa alhaalta käynnistääksesi tämän ohjelman uudelleen."
|
||||
|
||||
# renpy/common/00gltest.rpy:203
|
||||
old "Restart"
|
||||
new "Käynnistä uudelleen"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/00keymap.rpy:199
|
||||
old "Saved screenshot as %s."
|
||||
new "Näytönkaappaus tallennettu nimellä %s."
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/00layout.rpy:444
|
||||
old "Are you sure?"
|
||||
new "Oletko varma?"
|
||||
|
||||
# renpy/common/00layout.rpy:445
|
||||
old "Are you sure you want to delete this save?"
|
||||
new "Oletko varma, että haluat poistaa tämän tallennuksen?"
|
||||
|
||||
# renpy/common/00layout.rpy:446
|
||||
old "Are you sure you want to overwrite your save?"
|
||||
new "Oletko varma, että haluat korvata tallennuksen uudella?"
|
||||
|
||||
# renpy/common/00layout.rpy:447
|
||||
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
|
||||
new "Lataamalla tallennuksen menetät tallentamattoman edistyksen.\nOletko varma, että haluat tehdä näin?"
|
||||
|
||||
# renpy/common/00layout.rpy:448
|
||||
old "Are you sure you want to quit?"
|
||||
new "Haluatko varmasti lopettaa?"
|
||||
|
||||
# renpy/common/00layout.rpy:449
|
||||
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
|
||||
new "Haluatko varmasti palata päävalikkoon?\nMenetät kaikki tallentamattomat tiedot."
|
||||
|
||||
# renpy/common/00layout.rpy:450
|
||||
old "Are you sure you want to begin skipping?"
|
||||
new "Oletko varma, että haluat käyttää skippausta?"
|
||||
|
||||
# renpy/common/00layout.rpy:451
|
||||
old "Are you sure you want to skip to the next choice?"
|
||||
new "Oletko varma, että haluat skipata seuraavaan valintaan?"
|
||||
|
||||
# renpy/common/00layout.rpy:452
|
||||
old "Are you sure you want to skip to unseen dialogue or the next choice?"
|
||||
new "Oletko varma, että haluat skipata uuteen dialogiin tai seuraavaan valintaan?"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/00library.rpy:149
|
||||
old "Skip Mode"
|
||||
new "Skippaustila"
|
||||
|
||||
# renpy/common/00library.rpy:152
|
||||
old "Fast Skip Mode"
|
||||
new "Pikaskippaustila"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/00preferences.rpy:373
|
||||
old "Self-voicing enabled. Press 'v' to disable."
|
||||
new "Tietokoneen ääninäyttely käytössä. Paina 'v' lopettaaksesi."
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/00updater.rpy:1377
|
||||
old "Updater"
|
||||
new "Päivittäjä"
|
||||
|
||||
# renpy/common/00updater.rpy:1386
|
||||
old "This program is up to date."
|
||||
new "Käytät jo uuinta versiota."
|
||||
|
||||
# renpy/common/00updater.rpy:1388
|
||||
old "[u.version] is available. Do you want to install it?"
|
||||
new "[u.version] on saatavilla. Haluatko asentaa sen?"
|
||||
|
||||
# renpy/common/00updater.rpy:1390
|
||||
old "Preparing to download the updates."
|
||||
new "Valmistellaan päivitysten lataamista."
|
||||
|
||||
# renpy/common/00updater.rpy:1392
|
||||
old "Downloading the updates."
|
||||
new "Ladataan päivityksiä."
|
||||
|
||||
# renpy/common/00updater.rpy:1394
|
||||
old "Unpacking the updates."
|
||||
new "Puretaan päivityksiä."
|
||||
|
||||
# renpy/common/00updater.rpy:1398
|
||||
old "The updates have been installed. The program will restart."
|
||||
new "Päivitykset on asennettu. Ohjelma käynnistyy nyt uudelleen."
|
||||
|
||||
# renpy/common/00updater.rpy:1400
|
||||
old "The updates have been installed."
|
||||
new "Päivitykset on asennettu."
|
||||
|
||||
# renpy/common/00updater.rpy:1402
|
||||
old "The updates were cancelled."
|
||||
new "Päivitykset peruttiin."
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/_compat/gamemenu.rpym:198
|
||||
old "Empty Slot."
|
||||
new "Tyhjä paikka."
|
||||
|
||||
# renpy/common/_compat/gamemenu.rpym:355
|
||||
old "Previous"
|
||||
new "Edellinen"
|
||||
|
||||
# renpy/common/_compat/gamemenu.rpym:362
|
||||
old "Next"
|
||||
new "Seuraava"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/_compat/preferences.rpym:428
|
||||
old "Joystick Mapping"
|
||||
new "Peliohjaimen näppäimet"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/_developer/developer.rpym:65
|
||||
old "Developer Menu"
|
||||
new "Kehittäjävalikko"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:67
|
||||
old "Reload Game (Shift+R)"
|
||||
new "Käynnistä peli uudelleen (Shift+R)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:69
|
||||
old "Console (Shift+O)"
|
||||
new "Konsoli (Shift+O)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:71
|
||||
old "Variable Viewer"
|
||||
new "Muuttujat"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:73
|
||||
old "Theme Test"
|
||||
new "Teematesti"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:75
|
||||
old "Image Location Picker"
|
||||
new "Kuvan sijainnin selvitin"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:77
|
||||
old "Filename List"
|
||||
new "Tiedostonimilista"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:81
|
||||
old "Show Image Load Log"
|
||||
new "Näytä kuvanlatausloki"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:84
|
||||
old "Hide Image Load Log"
|
||||
new "Piilota kuvanlatausloki"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:150
|
||||
old "No variables have changed since the game started."
|
||||
new "Yksikään muuttuja ei ole muuttunut pelin alkamisen jälkeen."
|
||||
|
||||
# renpy/common/_developer/developer.rpym:153
|
||||
old "Return to the developer menu"
|
||||
new "Palaa kehittäjävalikkoon"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:385
|
||||
old "Rectangle: %r"
|
||||
new "Suorakulmio: %r"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:390
|
||||
old "Mouse position: %r"
|
||||
new "Hiiren sijainti: %r"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:392
|
||||
old "Right-click or escape to quit."
|
||||
new "Paina Esc tai hiiren oikeaa näppäintä poistuaksesi."
|
||||
|
||||
# renpy/common/_developer/developer.rpym:443
|
||||
old "Done"
|
||||
new "Valmis"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:46
|
||||
old "Displayable Inspector"
|
||||
new "Näkyvien objektien tutkija"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:52
|
||||
old "Nothing to inspect."
|
||||
new "Ei tutkittavaa."
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:70
|
||||
old "Size"
|
||||
new "Koko"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:74
|
||||
old "Style"
|
||||
new "Tyyli"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:80
|
||||
old "Location"
|
||||
new "Sijainti"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:142
|
||||
old "Inspecting Styles of [displayable_name!q]"
|
||||
new "Tutkitaan [displayable_name!q]n tyylejä"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:155
|
||||
old "displayable:"
|
||||
new "näkyvä objekti:"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:162
|
||||
old " (no properties affect the displayable)"
|
||||
new " (mitkään ominaisuudet eivät vaikuta objektiin)"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:164
|
||||
old " (default properties omitted)"
|
||||
new " (perusominaisuudet sivuutettu)"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:206
|
||||
old "<repr() failed>"
|
||||
new "<repr() epäonnistui>"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/_errorhandling.rpym:451
|
||||
old "An exception has occurred."
|
||||
new "Odottamaton virhe on tapahtunut."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:477
|
||||
old "Rollback"
|
||||
new "Palaa edelliseen tilaan"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:479
|
||||
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
|
||||
new "Yrittää palata ajassa taaksepäin, antaen sinun tallentaa tai tehdä eri valinnan."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:482
|
||||
old "Ignore"
|
||||
new "Sivuuta"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:484
|
||||
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
|
||||
new "Sivuuttaa poikkeuksen, antaen sinun jatkaa. Tämä johtaa usein uusiin virheisiin."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:487
|
||||
old "Reload"
|
||||
new "Lataa uudelleen"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:489
|
||||
old "Reloads the game from disk, saving and restoring game state if possible."
|
||||
new "Lataa pelin uudelleen muistista, tallentaen ja palauttaen pelitilan jos mahdollista."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:491
|
||||
old "Open Traceback"
|
||||
new "Avaa virheenjäljitystoiminto"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:493
|
||||
old "Opens the traceback.txt file in a text editor."
|
||||
new "Avaa traceback.txt-tiedoston tekstieditorissa."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:499
|
||||
old "Quits the game."
|
||||
new "Lopettaa pelin."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:526
|
||||
old "Parsing the script failed."
|
||||
new "Skriptin jäsennys epäonnistui."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:553
|
||||
old "Open Parse Errors"
|
||||
new "Avaa jäsennysvirheet"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:555
|
||||
old "Opens the errors.txt file in a text editor."
|
||||
new "Avaa errors.txt-tiedoston tekstieditorissa."
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/_layout/classic_load_save.rpym:170
|
||||
old "a"
|
||||
new "a"
|
||||
|
||||
# renpy/common/_layout/classic_load_save.rpym:179
|
||||
old "q"
|
||||
new "q"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/00preferences.rpy:370
|
||||
old "Clipboard voicing enabled. Press 'shift+C' to disable."
|
||||
new "Leikepöydän teksti luetaan nyt ääneen. Paina 'shift+c' lopettaaksesi toimnnon käytön."
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/00updater.rpy:362
|
||||
old "The Ren'Py Updater is not supported on mobile devices."
|
||||
new "Mobiililaitteet eivät tue Ren'Py Updater -toimintoa."
|
||||
|
||||
# renpy/common/00updater.rpy:481
|
||||
old "An error is being simulated."
|
||||
new "Stimuloidaan havaittua ongelmaa."
|
||||
|
||||
# renpy/common/00updater.rpy:657
|
||||
old "Either this project does not support updating, or the update status file was deleted."
|
||||
new "Tämä projekti ei tue päivittämistä tai päivityksen statustiedosto poistettiin."
|
||||
|
||||
# renpy/common/00updater.rpy:671
|
||||
old "This account does not have permission to perform an update."
|
||||
new "Tällä käyttäjällä ei ole oikeutta päivityksen suorittamiseen."
|
||||
|
||||
# renpy/common/00updater.rpy:674
|
||||
old "This account does not have permission to write the update log."
|
||||
new "Tällä käyttäjällä ei ole oikeutta kirjoittaa dataa päivityslokiin."
|
||||
|
||||
# renpy/common/00updater.rpy:699
|
||||
old "Could not verify update signature."
|
||||
new "Päivityksen allekirjoitusta ei voitu vahvistaa."
|
||||
|
||||
# renpy/common/00updater.rpy:970
|
||||
old "The update file was not downloaded."
|
||||
new "Päivitystiedostoa ei ladattu."
|
||||
|
||||
# renpy/common/00updater.rpy:988
|
||||
old "The update file does not have the correct digest - it may have been corrupted."
|
||||
new "Päivitystiedosto ei sisällä oikeaa tiivistelmää - se on saattanut korruptoitua."
|
||||
|
||||
# renpy/common/00updater.rpy:1044
|
||||
old "While unpacking {}, unknown type {}."
|
||||
new "Purettaessa {}, tuntematon tyyppi {}."
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# renpy/common/_developer/developer.rpym:425
|
||||
old "Rectangle copied to clipboard."
|
||||
new "Suorakulmio kopioitu leikepöydälle."
|
||||
|
||||
# renpy/common/_developer/developer.rpym:428
|
||||
old "Position copied to clipboard."
|
||||
new "Sijainti kopioitu leikepöydälle."
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/distribute.rpy:335
|
||||
old "Building distributions failed:\n\nThe build.directory_name variable may not include the space, colon, or semicolon characters."
|
||||
new "Ohjelman kokoaminen epäonnistui:\n\nbuild.directory_name -muuttuja ei saa sisältää välilyöntejä, pilkkuja tai puolipilkkuja."
|
||||
|
||||
# game/distribute.rpy:381
|
||||
old "No packages are selected, so there's nothing to do."
|
||||
new "Yhtäkään pakettia ei valittu, joten mitään ei ole tehtävissä."
|
||||
|
||||
# game/distribute.rpy:386
|
||||
old "Scanning project files..."
|
||||
new "Skannataan projektin tiedostoja..."
|
||||
|
||||
# game/distribute.rpy:396
|
||||
old "Scanning Ren'Py files..."
|
||||
new "Skannataan Ren'Py-tiedostoja..."
|
||||
|
||||
# game/distribute.rpy:444
|
||||
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 "Kaikki paketit on koottu.\n\nLupainformaation läsnäolon vuoksi Linux- ja Macintosh-sovellusten pakkaamista Windows-järjestelmässä ei tueta."
|
||||
|
||||
# game/distribute.rpy:568
|
||||
old "Archiving files..."
|
||||
new "Arkistoidaan tiedostoja..."
|
||||
|
||||
# game/distribute.rpy:832
|
||||
old "Writing the [variant] [format] package."
|
||||
new "Kirjoitetaan [variant] [format]-pakettia."
|
||||
|
||||
# game/distribute.rpy:845
|
||||
old "Making the [variant] update zsync file."
|
||||
new "Luodaan [variant] zsync-päivitystiedostoa."
|
||||
|
||||
# game/distribute.rpy:941
|
||||
old "Processed {b}[complete]{/b} of {b}[total]{/b} files."
|
||||
new "Käsitelty {b}[complete]{/b}/{b}[total]{/b}:sta tiedostosta."
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/distribute_gui.rpy:157
|
||||
old "Build Distributions: [project.current.name!q]"
|
||||
new "Kokoa ohjelma levitykseen: [project.current.name!q]"
|
||||
|
||||
# game/distribute_gui.rpy:171
|
||||
old "Directory Name:"
|
||||
new "Kansion nimi:"
|
||||
|
||||
# game/distribute_gui.rpy:175
|
||||
old "Executable Name:"
|
||||
new "Suoritettavan tiedoston nimi:"
|
||||
|
||||
# game/distribute_gui.rpy:185
|
||||
old "Actions:"
|
||||
new "Toiminnot:"
|
||||
|
||||
# game/distribute_gui.rpy:193
|
||||
old "Edit options.rpy"
|
||||
new "Muokkaa options.rpy-tiedostoa"
|
||||
|
||||
# game/distribute_gui.rpy:194
|
||||
old "Refresh"
|
||||
new "Päivitä"
|
||||
|
||||
# game/distribute_gui.rpy:211
|
||||
old "Build Packages:"
|
||||
new "Kokoa paketteja:"
|
||||
|
||||
# game/distribute_gui.rpy:225
|
||||
old "Build Updates"
|
||||
new "Kokoa päivityksiä"
|
||||
|
||||
# game/distribute_gui.rpy:229
|
||||
old "Build"
|
||||
new "Kokoa"
|
||||
|
||||
# game/distribute_gui.rpy:236
|
||||
old "Errors were detected when running the project. Please ensure the project runs without errors before building distributions."
|
||||
new "Virheitä havaittu projektia suoritettaessa. Varmista, että projekti toimii moitteetta ennen kuin kokoat ohjelman."
|
||||
|
||||
# game/distribute_gui.rpy:253
|
||||
old "Your project does not contain build information. Would you like to add build information to the end of options.rpy?"
|
||||
new "Projektisi ei sisällä kokoamisinformaatiota. Haluatko lisätä kokoamisinormaation options.rpy-tiedoston loppuun?"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/distribute_gui.rpy:194
|
||||
old "Add from clauses to calls, once"
|
||||
new ""
|
||||
|
||||
# game/distribute_gui.rpy:231
|
||||
old "Options:"
|
||||
new "Valinnat:"
|
||||
|
||||
# game/distribute_gui.rpy:238
|
||||
old "Add from clauses to calls"
|
||||
new ""
|
||||
|
||||
# game/distribute_gui.rpy:247
|
||||
old "Adding from clauses to call statements that do not have them."
|
||||
new ""
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/editor.rpy:150
|
||||
old "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input."
|
||||
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."
|
||||
|
||||
# game/editor.rpy:151
|
||||
old "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input. On Linux, Editra requires wxPython."
|
||||
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."
|
||||
|
||||
# game/editor.rpy:167
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
new "Tämä saattoi tapahtua, koska wxPythonia ei ole asennettu järjestelmään."
|
||||
|
||||
# game/editor.rpy:169
|
||||
old "Up to 22 MB download required."
|
||||
new "22 MB lataus vaaditaan"
|
||||
|
||||
# game/editor.rpy:182
|
||||
old "A mature editor that requires Java."
|
||||
new "Edistynyt editori, joka vaatii Javan."
|
||||
|
||||
# game/editor.rpy:182
|
||||
old "1.8 MB download required."
|
||||
new "1.8 MB lataus vaaditaan."
|
||||
|
||||
# game/editor.rpy:182
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
new "Tämä saattoi tapahtua, koska Javaa ei ole asennettu."
|
||||
|
||||
# game/editor.rpy:191
|
||||
old "Invokes the editor your operating system has associated with .rpy files."
|
||||
new "Käyttää editoria, jota käyttöjärjestelmäsi käyttää .rpy-tiedostojen kanssa."
|
||||
|
||||
# game/editor.rpy:207
|
||||
old "Prevents Ren'Py from opening a text editor."
|
||||
new "Estää Ren'Py-ohjelmaa avaamasta tekstieditoria."
|
||||
|
||||
# game/editor.rpy:359
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
new "Virhe käynnistäessä tekstieditoria:\n[exception!q]"
|
||||
|
||||
# game/editor.rpy:457
|
||||
old "Select Editor"
|
||||
new "Valitse editori"
|
||||
|
||||
# game/editor.rpy:472
|
||||
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 "Tekstieditori on ohjelma, jota käytät Ren'Py-skriptitiedostojen muokkaamiseen. Täällä voit valita, mitä editoria Ren'Py käyttää. Jos valitsemaasi editoria ei vielä ole asennettu, se ladataan ja asennetaan automaattisesti."
|
||||
|
||||
# game/editor.rpy:494
|
||||
old "Cancel"
|
||||
new "Peruuta"
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/front_page.rpy:35
|
||||
old "Open [text] directory."
|
||||
new "Avaa [text] sijainti."
|
||||
|
||||
# game/front_page.rpy:93
|
||||
old "refresh"
|
||||
new "päivitä"
|
||||
|
||||
# game/front_page.rpy:120
|
||||
old "+ Create New Project"
|
||||
new "+ Luo uusi projekti"
|
||||
|
||||
# game/front_page.rpy:132
|
||||
old "Launch Project"
|
||||
new "Käynnistä projekti"
|
||||
|
||||
# game/front_page.rpy:148
|
||||
old "[p.name!q] (template)"
|
||||
new "[p.name!q] (pohja)"
|
||||
|
||||
# game/front_page.rpy:150
|
||||
old "Select project [text]."
|
||||
new "Valitse projekti [text]."
|
||||
|
||||
# game/front_page.rpy:166
|
||||
old "Tutorial"
|
||||
new "Opas"
|
||||
|
||||
# game/front_page.rpy:167
|
||||
old "The Question"
|
||||
new "The Question -esimerkkipeli"
|
||||
|
||||
# game/front_page.rpy:183
|
||||
old "Active Project"
|
||||
new "Aktiivinen projekti"
|
||||
|
||||
# game/front_page.rpy:191
|
||||
old "Open Directory"
|
||||
new "Avaa sijainti"
|
||||
|
||||
# game/front_page.rpy:196
|
||||
old "game"
|
||||
new "game"
|
||||
|
||||
# game/front_page.rpy:197
|
||||
old "base"
|
||||
new "base"
|
||||
|
||||
# game/front_page.rpy:203
|
||||
old "Edit File"
|
||||
new "Muokkaa tiedostoa"
|
||||
|
||||
# game/front_page.rpy:211
|
||||
old "All script files"
|
||||
new "Kaikki skriptitiedostot"
|
||||
|
||||
# game/front_page.rpy:220
|
||||
old "Navigate Script"
|
||||
new "Navigoi skriptiä"
|
||||
|
||||
# game/front_page.rpy:231
|
||||
old "Check Script (Lint)"
|
||||
new "Tarkista skripti (Lint)"
|
||||
|
||||
# game/front_page.rpy:232
|
||||
old "Change Theme"
|
||||
new "Vaihda teemaa"
|
||||
|
||||
# game/front_page.rpy:233
|
||||
old "Delete Persistent"
|
||||
new "Poista pysyvästi tallennettu data"
|
||||
|
||||
# game/front_page.rpy:234
|
||||
old "Force Recompile"
|
||||
new "Pakota uudelleenkokoaminen"
|
||||
|
||||
# game/front_page.rpy:242
|
||||
old "Build Distributions"
|
||||
new "Kokoa jakeluun"
|
||||
|
||||
# game/front_page.rpy:244
|
||||
old "Android"
|
||||
new "Android"
|
||||
|
||||
# game/front_page.rpy:245
|
||||
old "Generate Translations"
|
||||
new "Luo käännöksiä"
|
||||
|
||||
# game/front_page.rpy:246
|
||||
old "Extract Dialogue"
|
||||
new "Kopioi dialogi"
|
||||
|
||||
# game/front_page.rpy:262
|
||||
old "Checking script for potential problems..."
|
||||
new "Tarkista skripti mahdollisten virheiden varalta..."
|
||||
|
||||
# game/front_page.rpy:277
|
||||
old "Deleting persistent data..."
|
||||
new "Poistetaan pysyvästi tallennettua dataa..."
|
||||
|
||||
# game/front_page.rpy:285
|
||||
old "Recompiling all rpy files into rpyc files..."
|
||||
new "Kasataan kaikista .rpy-tiedostoista .rpyc-tiedostoja..."
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/front_page.rpy:198
|
||||
old "images"
|
||||
new "kuvat"
|
||||
|
||||
# game/front_page.rpy:246
|
||||
old "iOS"
|
||||
new "iOS"
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/interface.rpy:107
|
||||
old "Documentation"
|
||||
new "Dokumentit"
|
||||
|
||||
# game/interface.rpy:108
|
||||
old "Ren'Py Website"
|
||||
new "Ren'Py:n verkkosivut"
|
||||
|
||||
# game/interface.rpy:109
|
||||
old "Ren'Py Games List"
|
||||
new "Lista Ren'Py-peleistä"
|
||||
|
||||
# game/interface.rpy:110
|
||||
old "About"
|
||||
new "Tietoja"
|
||||
|
||||
# game/interface.rpy:117
|
||||
old "update"
|
||||
new "päivitä"
|
||||
|
||||
# game/interface.rpy:119
|
||||
old "preferences"
|
||||
new "asetukset"
|
||||
|
||||
# game/interface.rpy:120
|
||||
old "quit"
|
||||
new "poistu"
|
||||
|
||||
# game/interface.rpy:192
|
||||
old "Yes"
|
||||
new "Kyllä"
|
||||
|
||||
# game/interface.rpy:194
|
||||
old "No"
|
||||
new "Ei"
|
||||
|
||||
# game/interface.rpy:229
|
||||
old "Due to package format limitations, non-ASCII file and directory names are not allowed."
|
||||
new "Pakettiformaatin rajoitusten vuoksi, ei-ASCII tiedostot ja kansion nimet eivät ole sallittuja."
|
||||
|
||||
# game/interface.rpy:321
|
||||
old "ERROR"
|
||||
new "VIRHE"
|
||||
|
||||
# game/interface.rpy:350
|
||||
old "While [what!q], an error occured:"
|
||||
new "Kun [what!q], tapahtui virhe."
|
||||
|
||||
# game/interface.rpy:350
|
||||
old "[exception!q]"
|
||||
new "[exception!q]"
|
||||
|
||||
# game/interface.rpy:369
|
||||
old "Text input may not contain the {{ or [[ characters."
|
||||
new "Teksti ei voi sisältää {{ tai [[-merkkejä."
|
||||
|
||||
# game/interface.rpy:374
|
||||
old "File and directory names may not contain / or \\."
|
||||
new "Tiedostot ja kansioiden nimet eivät voi sisältää / tai \\-merkkejä."
|
||||
|
||||
# game/interface.rpy:380
|
||||
old "File and directory names must consist of ASCII characters."
|
||||
new "Tiedostojen ja kansioiden nimet saavat koostua vain ASCII-merkeistä."
|
||||
|
||||
# game/interface.rpy:401
|
||||
old "INFORMATION"
|
||||
new "TIETOA"
|
||||
|
||||
# game/interface.rpy:448
|
||||
old "PROCESSING"
|
||||
new "KÄSITELLÄÄN"
|
||||
|
||||
# game/interface.rpy:478
|
||||
old "CHOICE"
|
||||
new "VALITSE"
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/ios.rpy:28
|
||||
old "To build iOS packages, please download renios, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher."
|
||||
new "Luodaksesi iOS-sovelluksia, ole hyvä ja lataa renios, pura se, ja aseta se Ren'Py kansioon. Tämän jälkeen käynnistä Ren'Py uudelleen."
|
||||
|
||||
# game/ios.rpy:29
|
||||
old "The directory in where Xcode projects will be placed has not been selected. Choose 'Select Directory' to select it."
|
||||
new "Kansiota, johon Xcode-projektit asetetaan, ei ole valittu. Klikkaa 'Valitse kansio' valitaksesi sen."
|
||||
|
||||
# game/ios.rpy:30
|
||||
old "There is no Xcode project corresponding to the current Ren'Py project. Choose 'Create Xcode Project' to create one."
|
||||
new "Nykyistä Ren'Py-projektia vastaavaa Xcode-projektia ei löydy. Klikkaa 'Luo Xcode-projekti' luodaksesi sellaisen."
|
||||
|
||||
# game/ios.rpy:31
|
||||
old "An Xcode project exists. Choose 'Update Xcode Project' to update it with the latest game files, or use Xcode to build and install it."
|
||||
new "Xcode-projekti on jo olemassa. Klikkaa 'Päivitä Xcode-projekti' päivittääksesi sen uusimmilla pelin tiedostoilla, tai käytä Xcodea kootaksesi ja asentaaksesi sen."
|
||||
|
||||
# game/ios.rpy:33
|
||||
old "Attempts to emulate an iPhone.\n\nTouch input is emulated through the mouse, but only when the button is held down."
|
||||
new "Ren'Py pyrkii emuloimaan iPhonea.\n\nKosketusta emuloidaan hiirellä, mutta vain kun nappia pidetään pohjassa."
|
||||
|
||||
# game/ios.rpy:34
|
||||
old "Attempts to emulate an iPad.\n\nTouch input is emulated through the mouse, but only when the button is held down."
|
||||
new "Ren'Py pyrkii emuloimaan iPadia.\n\nKosketusta emuloidaan hiirellä, mutta vain kun nappia pidetään pohjassa."
|
||||
|
||||
# game/ios.rpy:36
|
||||
old "Selects the directory where Xcode projects will be placed."
|
||||
new "Valitsee kansion, johon Xcode-projektit sijoitetaan."
|
||||
|
||||
# game/ios.rpy:37
|
||||
old "Creates an Xcode project corresponding to the current Ren'Py project."
|
||||
new "Luo Xcode-projektin tällä hetkellä valittuna olevasta Ren'Py-projektista."
|
||||
|
||||
# game/ios.rpy:38
|
||||
old "Updates the Xcode project with the latest game files. This must be done each time the Ren'Py project changes."
|
||||
new "Päivittää Xcode-projektin uusimmilla pelitiedostoilla. Tämä on tehtävä joka kerta Ren'Py-projektin muuttuessa."
|
||||
|
||||
# game/ios.rpy:39
|
||||
old "Opens the Xcode project in Xcode."
|
||||
new "Avaa Xcode-projektin Xcodessa."
|
||||
|
||||
# game/ios.rpy:41
|
||||
old "Opens the directory containing Xcode projects."
|
||||
new "Avaa Xcode-projektit sisältävän kansion."
|
||||
|
||||
# game/ios.rpy:126
|
||||
old "The Xcode project already exists. Would you like to rename the old project, and replace it with a new one?"
|
||||
new "Tämänniminen Xcode-projekti on jo olemassa. Haluatko nimetä vanhan projektin uudelleen ja korvata sen uudella?"
|
||||
|
||||
# game/ios.rpy:211
|
||||
old "iOS: [project.current.name!q]"
|
||||
new "iOS: [project.current.name!q]"
|
||||
|
||||
# game/ios.rpy:240
|
||||
old "iPhone"
|
||||
new "iPhone"
|
||||
|
||||
# game/ios.rpy:244
|
||||
old "iPad"
|
||||
new "iPad"
|
||||
|
||||
# game/ios.rpy:264
|
||||
old "Select Xcode Projects Directory"
|
||||
new "Valitse Xcode-projektikansio"
|
||||
|
||||
# game/ios.rpy:268
|
||||
old "Create Xcode Project"
|
||||
new "Luo Xcode-projekti"
|
||||
|
||||
# game/ios.rpy:272
|
||||
old "Update Xcode Project"
|
||||
new "Päivitä Xcode-projekti"
|
||||
|
||||
# game/ios.rpy:277
|
||||
old "Launch Xcode"
|
||||
new "Käynnistä Xcode"
|
||||
|
||||
# game/ios.rpy:312
|
||||
old "Open Xcode Projects Directory"
|
||||
new "Avaa Xcode-projektikansio"
|
||||
|
||||
# game/ios.rpy:345
|
||||
old "Before packaging iOS apps, you'll need to download renios, Ren'Py's iOS support. Would you like to download renios now?"
|
||||
new "Ennen iOS-sovellusten pakkaamista sinun on ladattava renios, Ren'Py:n iOS-tuki. Haluaisitko ladata reniosin nyt?"
|
||||
|
||||
# game/ios.rpy:354
|
||||
old "XCODE PROJECTS DIRECTORY"
|
||||
new "XCODE-PROJEKTIKANSIO"
|
||||
|
||||
# game/ios.rpy:354
|
||||
old "Please choose the Xcode Projects Directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"
|
||||
new "Ole hyvä ja valitse Xcode-projektikansio käyttämällä resurssienhallintaa.\n{b}Kansion valinta on saattanut aueta tämän ikkunan taakse.{/b}"
|
||||
|
||||
# game/ios.rpy:359
|
||||
old "Ren'Py has set the Xcode Projects Directory to:"
|
||||
new "Ren'Py on asettanut Xcode-projektikansioksi:"
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/navigation.rpy:168
|
||||
old "Navigate: [project.current.name]"
|
||||
new "Navigoi: [project.current.name]"
|
||||
|
||||
# game/navigation.rpy:177
|
||||
old "Order: "
|
||||
new "Järjestys: "
|
||||
|
||||
# game/navigation.rpy:178
|
||||
old "alphabetical"
|
||||
new "aakkosellinen"
|
||||
|
||||
# game/navigation.rpy:180
|
||||
old "by-file"
|
||||
new "tiedoston mukaan"
|
||||
|
||||
# game/navigation.rpy:182
|
||||
old "natural"
|
||||
new "luonnollinen"
|
||||
|
||||
# game/navigation.rpy:194
|
||||
old "Category:"
|
||||
new "Kategoria:"
|
||||
|
||||
# game/navigation.rpy:196
|
||||
old "files"
|
||||
new "tiedostot"
|
||||
|
||||
# game/navigation.rpy:197
|
||||
old "labels"
|
||||
new "tunnukset"
|
||||
|
||||
# game/navigation.rpy:198
|
||||
old "defines"
|
||||
new "määritelmät"
|
||||
|
||||
# game/navigation.rpy:199
|
||||
old "transforms"
|
||||
new "muutokset"
|
||||
|
||||
# game/navigation.rpy:200
|
||||
old "screens"
|
||||
new "ikkunat"
|
||||
|
||||
# game/navigation.rpy:201
|
||||
old "callables"
|
||||
new "kutsuttavat"
|
||||
|
||||
# game/navigation.rpy:202
|
||||
old "TODOs"
|
||||
new "TODO:t"
|
||||
|
||||
# game/navigation.rpy:241
|
||||
old "+ Add script file"
|
||||
new "+ Lisää skriptitiedosto"
|
||||
|
||||
# game/navigation.rpy:249
|
||||
old "No TODO comments found.\n\nTo create one, include \"# TODO\" in your script."
|
||||
new "TODO-kommentteja ei löytynyt.\n\nLuodaksesi sellaisen, lisää \"# TODO\" skriptiisi."
|
||||
|
||||
# game/navigation.rpy:256
|
||||
old "The list of names is empty."
|
||||
new "Nimilista on tyhjä."
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/new_project.rpy:40
|
||||
old "Choose Project Template"
|
||||
new "Valitse projektipohja"
|
||||
|
||||
# game/new_project.rpy:58
|
||||
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 "Valitse pohja käytettäväksi uudessa projektissasi. Se asettaa perusfontin ja kielen. Jos kieltäsi ei löydy, valitse englanti (English)."
|
||||
|
||||
# game/new_project.rpy:71
|
||||
old "The projects directory could not be set. Giving up."
|
||||
new "Projektin kansiota ei voitu asettaa."
|
||||
|
||||
# game/new_project.rpy:75
|
||||
old "PROJECT NAME"
|
||||
new "PROJEKTIN NIMI"
|
||||
|
||||
# game/new_project.rpy:75
|
||||
old "Please enter the name of your project:"
|
||||
new "Ole hyvä ja anna projektillesi nimi."
|
||||
|
||||
# game/new_project.rpy:83
|
||||
old "The project name may not be empty."
|
||||
new "Projektin nimi ei voi olla tyhjä."
|
||||
|
||||
# game/new_project.rpy:88
|
||||
old "[project_name!q] already exists. Please choose a different project name."
|
||||
new "[project_name!q] on jo olemassa. Ole hyvä ja valitse toinen nimi projektillesi."
|
||||
|
||||
# game/new_project.rpy:91
|
||||
old "[project_dir!q] already exists. Please choose a different project name."
|
||||
new "[project_dir!q] on jo olemassa. Ole hyvä ja valitse toinen nimi projektillesi."
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/preferences.rpy:61
|
||||
old "Launcher Preferences"
|
||||
new "Työkalun asetukset"
|
||||
|
||||
# game/preferences.rpy:82
|
||||
old "Projects Directory:"
|
||||
new "Projektien kansio"
|
||||
|
||||
# game/preferences.rpy:89
|
||||
old "[persistent.projects_directory!q]"
|
||||
new "[persistent.projects_directory!q]"
|
||||
|
||||
# game/preferences.rpy:91
|
||||
old "Projects directory: [text]"
|
||||
new "Projektikansio: [text]"
|
||||
|
||||
# game/preferences.rpy:93
|
||||
old "Not Set"
|
||||
new "Ei valittu"
|
||||
|
||||
# game/preferences.rpy:108
|
||||
old "Text Editor:"
|
||||
new "Tekstieditori:"
|
||||
|
||||
# game/preferences.rpy:114
|
||||
old "Text editor: [text]"
|
||||
new "Tekstieditori: [text]"
|
||||
|
||||
# game/preferences.rpy:130
|
||||
old "Update Channel:"
|
||||
new "Päivityskanava:"
|
||||
|
||||
# game/preferences.rpy:150
|
||||
old "Navigation Options:"
|
||||
new "Hakuasetukset"
|
||||
|
||||
# game/preferences.rpy:154
|
||||
old "Include private names"
|
||||
new "Sisällytä yksityiset nimet"
|
||||
|
||||
# game/preferences.rpy:155
|
||||
old "Include library names"
|
||||
new "Sisällytä kirjastot"
|
||||
|
||||
# game/preferences.rpy:165
|
||||
old "Launcher Options:"
|
||||
new "Työkalun asetukset"
|
||||
|
||||
# game/preferences.rpy:169
|
||||
old "Hardware rendering"
|
||||
new "Laitteistorenderöinti"
|
||||
|
||||
# game/preferences.rpy:170
|
||||
old "Show templates"
|
||||
new "Näytä esimerkkipohjat"
|
||||
|
||||
# game/preferences.rpy:171
|
||||
old "Large fonts"
|
||||
new "Suuret fontit"
|
||||
|
||||
# game/preferences.rpy:174
|
||||
old "Console output"
|
||||
new "Konsolisyöte"
|
||||
|
||||
# game/preferences.rpy:195
|
||||
old "Open launcher project"
|
||||
new "Avaa työkaluprojekti"
|
||||
|
||||
# game/preferences.rpy:209
|
||||
old "Language:"
|
||||
new "Kieli:"
|
||||
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/preferences.rpy:174
|
||||
old "Show edit file section"
|
||||
new "Näytä tiedostojen muokkausvalikko"
|
||||
|
||||
# game/preferences.rpy:176
|
||||
old "Generate empty strings for translations"
|
||||
new "Luo tyhjiä merkkijonoja käännöksiä varten"
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/project.rpy:47
|
||||
old "After making changes to the script, press shift+R to reload your game."
|
||||
new "Kun olet tehnyt muutoksia pelin tiedostoihin, paina shift+R käynnistääksesi pelisi automaattisesti uudelleen."
|
||||
|
||||
# game/project.rpy:47
|
||||
old "Press shift+O (the letter) to access the console."
|
||||
new "Paina shift+O (kirjain) päästäksesi käsiksi konsoliin."
|
||||
|
||||
# game/project.rpy:47
|
||||
old "Press shift+D to access the developer menu."
|
||||
new "Paina shift+D avataksesi kehittäjävalikon."
|
||||
|
||||
# game/project.rpy:47
|
||||
old "Have you backed up your projects recently?"
|
||||
new "Oletko ottanut projekteistasi varmuuskopiot viime aikoina?"
|
||||
|
||||
# game/project.rpy:223
|
||||
old "Launching the project failed."
|
||||
new "Projektin käynnistys epäonnistui."
|
||||
|
||||
# game/project.rpy:223
|
||||
old "Please ensure that your project launches normally before running this command."
|
||||
new "Varmista, että projektisi käynnistyy normaalisti ennen kuin käytät tätä komentoa."
|
||||
|
||||
# game/project.rpy:236
|
||||
old "Ren'Py is scanning the project..."
|
||||
new "Ren'Py skannaa projektia..."
|
||||
|
||||
# game/project.rpy:525
|
||||
old "Launching"
|
||||
new "Käynnistetään..."
|
||||
|
||||
# game/project.rpy:554
|
||||
old "PROJECTS DIRECTORY"
|
||||
new "PROJEKTIKANSIO"
|
||||
|
||||
# game/project.rpy:554
|
||||
old "Please choose the projects directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"
|
||||
new "Ole hyvä ja valitse kansio, jota haluat käyttää projektiesi tallentamiseen.\n{b}Kansion valitsija on saattanut aueta tämän ikkunan taakse.{/b}"
|
||||
|
||||
# game/project.rpy:554
|
||||
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 "Tämä työkalu etsii, luo sekä muokkaa projekteja, jotka löytyvät tästä kansiosta."
|
||||
|
||||
# game/project.rpy:594
|
||||
old "Ren'Py was unable to run python with tkinter to choose the projects directory. Please install the python-tk or tkinter package."
|
||||
new "Ren'Py ei kyennyt käyttämään pythonia tkinterillä valitakseen projektikansion. Ole hyvä ja asenna python-tk tai tkinter-paketti."
|
||||
|
||||
# game/project.rpy:604
|
||||
old "Ren'Py has set the projects directory to:"
|
||||
new "Ren'Py on valinnut projektikansioksi:"
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
translate finnish python:
|
||||
make_style_backup()
|
||||
@@ -0,0 +1,35 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/translations.rpy:31
|
||||
old "Create or Update Translations"
|
||||
new "Luo tai päivitä käännöksiä"
|
||||
|
||||
# game/translations.rpy:31
|
||||
old "Please enter the name of the language for which you want to create or update translations."
|
||||
new "Ole hyvä ja anna sen kielen nimi, jolle haluat luoda tai päivittää käännöksen."
|
||||
|
||||
# game/translations.rpy:36
|
||||
old "The language name can not be the empty string."
|
||||
new "Kielen nimi ei voi olla tyhjä."
|
||||
|
||||
# game/translations.rpy:47
|
||||
old "Ren'Py is generating translations...."
|
||||
new "Ren'Py luo käännöksiä...."
|
||||
|
||||
# game/translations.rpy:51
|
||||
old "Ren'Py has finished generating [language] translations."
|
||||
new "Ren'Py on onnistuneesti luonut [language] käännöstiedostot."
|
||||
|
||||
# game/translations.rpy:64
|
||||
old "What format would you like for the extracted dialogue?"
|
||||
new "Millä formaatilla haluat kopioida dialogin?"
|
||||
|
||||
# game/translations.rpy:77
|
||||
old "Ren'Py is extracting dialogue...."
|
||||
new "Ren'Py kopioi dialogia...."
|
||||
|
||||
# game/translations.rpy:81
|
||||
old "Ren'Py has finished extracting dialogue. The extracted dialogue can be found in dialogue.[format] in the base directory."
|
||||
new "Ren'Py on onnistuneesti kopioinut dialogin. Kopio löytyy tiedostosta dialogue.[format] projektin kansiosta."
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
|
||||
translate finnish strings:
|
||||
|
||||
# game/updater.rpy:78
|
||||
old "Select Update Channel"
|
||||
new "Valitse päivityskanava"
|
||||
|
||||
# game/updater.rpy:89
|
||||
old "The update channel controls the version of Ren'Py the updater will download. Please select an update channel:"
|
||||
new "Päivityskanava vaikuttaa siihen, mihin versioon Ren'Py päivitetään. Valitse päivityskanava:"
|
||||
|
||||
# game/updater.rpy:94
|
||||
old "Release"
|
||||
new "Vakaat versiot"
|
||||
|
||||
# game/updater.rpy:100
|
||||
old "{b}Recommended.{/b} The version of Ren'Py that should be used in all newly-released games."
|
||||
new "{b}Suositeltu.{/b} Ren'Py:n uusin, vakaa versio, jota suositellaan käytettäväksi."
|
||||
|
||||
# game/updater.rpy:105
|
||||
old "Prerelease"
|
||||
new "Esiversiot"
|
||||
|
||||
# game/updater.rpy:111
|
||||
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."
|
||||
new "Ennakkoversio Ren'Py:n seuraavasta versiosta, jota voidaan käyttää uusien ominaisuuksien testaamiseen ja hyödyntämiseen. Ei suositella pelien julkaisemiseen."
|
||||
|
||||
# game/updater.rpy:117
|
||||
old "Experimental"
|
||||
new "Kokeelliset versiot"
|
||||
|
||||
# game/updater.rpy:123
|
||||
old "Experimental versions of Ren'Py. You shouldn't select this channel unless asked by a Ren'Py developer."
|
||||
new "Ren'Py:n kokeellisia versioita. Sinun ei kannata valita tätä, ellei joku Ren'Py:n kehittäjistä erikseen sitä pyydä."
|
||||
|
||||
# game/updater.rpy:129
|
||||
old "Nightly"
|
||||
new "Jokaöiset julkaisut"
|
||||
|
||||
# game/updater.rpy:135
|
||||
old "The bleeding edge of Ren'Py development. This may have the latest features, or might not run at all."
|
||||
new "Upouudet Ren'Py-kehitysjulkaisut. Voi sisältää uusimmat toiminnot, tai ei ehkä toimi lainkaan."
|
||||
|
||||
# game/updater.rpy:155
|
||||
old "An error has occured:"
|
||||
new "On tapahtunut virhe:"
|
||||
|
||||
# game/updater.rpy:157
|
||||
old "Checking for updates."
|
||||
new "Haetaan päivityksiä."
|
||||
|
||||
# game/updater.rpy:159
|
||||
old "Ren'Py is up to date."
|
||||
new "Käytät uusinta Ren'Py-versiota."
|
||||
|
||||
# game/updater.rpy:161
|
||||
old "[u.version] is now available. Do you want to install it?"
|
||||
new "[u.version] on nyt saatavilla. Haluatko asentaa sen?"
|
||||
|
||||
# game/updater.rpy:163
|
||||
old "Preparing to download the update."
|
||||
new "Valmistellaan päivityksen lataamista."
|
||||
|
||||
# game/updater.rpy:165
|
||||
old "Downloading the update."
|
||||
new "Ladataan päivitystä."
|
||||
|
||||
# game/updater.rpy:167
|
||||
old "Unpacking the update."
|
||||
new "Puretaan päivitystä."
|
||||
|
||||
# game/updater.rpy:169
|
||||
old "Finishing up."
|
||||
new "Viimeistellään asennusta."
|
||||
|
||||
# game/updater.rpy:171
|
||||
old "The update has been installed. Ren'Py will restart."
|
||||
new "Päivitys on nyt asennettu. Ren'Py käynnistyy nyt uudelleen."
|
||||
|
||||
# game/updater.rpy:173
|
||||
old "The update has been installed."
|
||||
new "Päivitys on asennettu."
|
||||
|
||||
# game/updater.rpy:175
|
||||
old "The update was cancelled."
|
||||
new "Päivitys peruttiin."
|
||||
|
||||
# game/updater.rpy:192
|
||||
old "Ren'Py Update"
|
||||
new "Ren'Py-päivitys"
|
||||
|
||||
# game/updater.rpy:198
|
||||
old "Proceed"
|
||||
new "Jatka"
|
||||
|
||||
@@ -7,4 +7,4 @@
|
||||
# game/about.rpy:25
|
||||
old "View license"
|
||||
new "Voir la licence"
|
||||
|
||||
|
||||
|
||||
@@ -19,4 +19,4 @@
|
||||
# game/add_file.rpy:21
|
||||
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"
|
||||
new "Ren'Py charge automatiquement tous les fichiers de script finissant par .rpy. Pour utiliser ce ficher\n#, définissez un label et faites un «jump» vers lui depuis un autre fichier.\n"
|
||||
|
||||
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
style.l_button_text.selected_bold = True
|
||||
style.l_navigation_text.bold = False
|
||||
make_style_backup()
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
# game/updater.rpy:65
|
||||
old "The update channel controls the version of Ren'Py the updater will download. Please select an update channel:"
|
||||
new "Choisissez une version."
|
||||
new "Le canal de mise à jour détermine la version de Ren'Py qui sera téléchargée. S'il vous plaît, sélectionnez un canal de mise à jour."
|
||||
|
||||
# game/updater.rpy:70
|
||||
old "Release"
|
||||
@@ -74,7 +74,7 @@
|
||||
|
||||
# game/updater.rpy:139
|
||||
old "The update was cancelled."
|
||||
new "La mise à jour a été annullée."
|
||||
new "La mise à jour a été annulée."
|
||||
|
||||
# game/updater.rpy:156
|
||||
old "Ren'Py Update"
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
translate german strings:
|
||||
|
||||
# game/about.rpy:21
|
||||
old "[version!q]"
|
||||
new "[version!q]"
|
||||
|
||||
# game/about.rpy:25
|
||||
old "View license"
|
||||
new "Lizenz ansehen"
|
||||
|
||||
# game/about.rpy:27
|
||||
old "Back"
|
||||
new "Zurück"
|
||||
translate german strings:
|
||||
|
||||
# game/about.rpy:21
|
||||
old "[version!q]"
|
||||
new "[version!q]"
|
||||
|
||||
# game/about.rpy:25
|
||||
old "View license"
|
||||
new "Lizenz ansehen"
|
||||
|
||||
# game/about.rpy:27
|
||||
old "Back"
|
||||
new "Zurück"
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
translate german strings:
|
||||
|
||||
# game/add_file.rpy:7
|
||||
old "FILENAME"
|
||||
new "DATEINAME"
|
||||
|
||||
# game/add_file.rpy:7
|
||||
old "Enter the name of the script file to create."
|
||||
new "Geben Sie den Namen der Script-Datei ein, um sie zu erstellen."
|
||||
|
||||
# game/add_file.rpy:10
|
||||
old "The filename must have the .rpy extension."
|
||||
new "Der Dateiname muss die Endung .rpy haben."
|
||||
|
||||
# game/add_file.rpy:18
|
||||
old "The file already exists."
|
||||
new "Die Datei existiert bereits."
|
||||
|
||||
# game/add_file.rpy:21
|
||||
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"
|
||||
new "# Ren’Py lädt automatisch alle Skript-Dateien, die auf .rpy enden. Um diese\n# Datei zu verwenden, setzen sie ein Label und springen sie aus einer anderen Datei dorthin.\n"
|
||||
translate german strings:
|
||||
|
||||
# game/add_file.rpy:7
|
||||
old "FILENAME"
|
||||
new "DATEINAME"
|
||||
|
||||
# game/add_file.rpy:7
|
||||
old "Enter the name of the script file to create."
|
||||
new "Geben Sie den Namen der Script-Datei ein, um sie zu erstellen."
|
||||
|
||||
# game/add_file.rpy:10
|
||||
old "The filename must have the .rpy extension."
|
||||
new "Der Dateiname muss die Endung .rpy haben."
|
||||
|
||||
# game/add_file.rpy:18
|
||||
old "The file already exists."
|
||||
new "Die Datei existiert bereits."
|
||||
|
||||
# game/add_file.rpy:21
|
||||
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"
|
||||
new "# Ren’Py lädt automatisch alle Skript-Dateien, die auf .rpy enden. Um diese\n# Datei zu verwenden, setzen sie ein Label und springen sie aus einer anderen Datei dorthin.\n"
|
||||
|
||||
+160
-160
@@ -1,160 +1,160 @@
|
||||
translate german strings:
|
||||
|
||||
# game/android.rpy:12
|
||||
old "To build Android packages, please download RAPT (from {a=http://www.renpy.org/dl/android}here{/a}), unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher."
|
||||
new "Um eine Android-Datei zu erstellen, laden Sie bitte RAPT ({a=http://www.renpy.org/dl/android}hier{/a}) herunter, entpacken Sie es und platzieren Sie es im Ren’Py Verzeichnis. Starten Sie dann bitte Ren’Py neu."
|
||||
|
||||
# game/android.rpy:13
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
new "RAPT wurde installiert, aber Sie müssen das Android-SDK installieren, bevor Sie Android-Dateien erstellen können. Wählen Sie „SDK Installieren“, um dies zu tun."
|
||||
|
||||
# game/android.rpy:14
|
||||
old "RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore."
|
||||
new "RAPT wurde installiert, aber ein Key wurde nicht eingestellt. Bitte erstellen Sie einen neuen Key oder stellen Sie android.keystore wieder her."
|
||||
|
||||
# game/android.rpy:15
|
||||
old "The current project has not been configured. Use \"Configure\" to configure it before building."
|
||||
new "Das aktuelle Projekt wurde nicht eingestellt. Verwenden Sie „Einstellen“, um es vor der Erstellung anzupassen."
|
||||
|
||||
# game/android.rpy:16
|
||||
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."
|
||||
new "Wählen Sie „Erstellen“, um das aktuelle Projekt zu erstellen oder schließen Sie ein Android-Gerät an und wählen Sie „Erstellen und installieren“, um es zu erstellen und auf dem Gerät zu installieren."
|
||||
|
||||
# game/android.rpy:18
|
||||
old "Attempts to emulate an Android phone.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
|
||||
new "Emuliert ein Android-Handy.\n\nDie Berührungseingabe wird mithilfe der Maus emuliert, aber nur, wenn die Schaltfläche gedrückt wird. „Escape“ fungiert als Menüschaltfläche und „Bild rauf“ als „Zurück-Schaltfläche“."
|
||||
|
||||
# game/android.rpy:19
|
||||
old "Attempts to emulate an Android tablet.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
|
||||
new "Emuliert ein Android-Tablet.\n\nDie Berührungseingabe wird mithilfe der Maus emuliert, aber nur, wenn die Schaltfläche gedrückt wird. „Escape“ fungiert als Menüschaltfläche und „Bild rauf“ als „Zurück-Schaltfläche“."
|
||||
|
||||
# game/android.rpy:20
|
||||
old "Attempts to emulate an OUYA 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 "Emuliert eine OUYA-Konsole.\n\nDie Contollereingabe wird mithilfe der Pfeiltasten emuliert, „Enter“ fungiert als Auswahlschaltfläche, „Escape“ als Menüschaltfläche und „Bild rauf“ als „Zurück-Schaltfläche“."
|
||||
|
||||
# game/android.rpy:22
|
||||
old "Downloads and installs the Android SDK and supporting packages. Optionally, generates the keys required to sign the package."
|
||||
new "Lädt das Android SDK herunter und installiert es. Generiert optional die Keys, die für die Authentifizierung der Datei benötigt werden."
|
||||
|
||||
# game/android.rpy:23
|
||||
old "Configures the package name, version, and other information about this project."
|
||||
new "Stellt Dateinamen, Version und andere Informationen über dieses Projekt ein."
|
||||
|
||||
# game/android.rpy:24
|
||||
old "Opens the file containing the Google Play keys in the editor.\n\nThis is only needed if the application is using an expansion APK. Read the documentation for more details."
|
||||
new "Öffnet die Datei mit den Google-Play-Keys im Editor.\n\nDies ist nur nötig, wenn die Anwendung ein Expansion-APK verwendet. Lesen Sie die Dokumentation für weitere Details."
|
||||
|
||||
# game/android.rpy:25
|
||||
old "Builds the Android package."
|
||||
new "Erstellt die Android-Datei."
|
||||
|
||||
# game/android.rpy:26
|
||||
old "Builds the Android package, and installs it on an Android device connected to your computer."
|
||||
new "Erstellt die Android-Datei und installiert es auf ein Android-Gerät, das mit Ihrem Computer verbunden ist."
|
||||
|
||||
# game/android.rpy:142
|
||||
old "{a=%s}%s{/a}"
|
||||
new "{a=%s}%s{/a}"
|
||||
|
||||
# game/android.rpy:361
|
||||
old "Android: [project.current.name!q]"
|
||||
new "Android: [project.current.name!q]"
|
||||
|
||||
# game/android.rpy:381
|
||||
old "Emulation:"
|
||||
new "Emulation:"
|
||||
|
||||
# game/android.rpy:389
|
||||
old "Phone"
|
||||
new "Handy"
|
||||
|
||||
# game/android.rpy:393
|
||||
old "Tablet"
|
||||
new "Tablet"
|
||||
|
||||
# game/android.rpy:397
|
||||
old "Television / OUYA"
|
||||
new "Fernseher / OUYA"
|
||||
|
||||
# game/android.rpy:409
|
||||
old "Build:"
|
||||
new "Erstellen:"
|
||||
|
||||
# game/android.rpy:417
|
||||
old "Install SDK & Create Keys"
|
||||
new "SDK installieren und Keys erstellen"
|
||||
|
||||
# game/android.rpy:421
|
||||
old "Configure"
|
||||
new "Einstellen"
|
||||
|
||||
# game/android.rpy:425
|
||||
old "Build Package"
|
||||
new "Datei erstellen"
|
||||
|
||||
# game/android.rpy:429
|
||||
old "Build & Install"
|
||||
new "Erstellen und installieren"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# game/android.rpy:30
|
||||
old "To build Android packages, please download RAPT, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher."
|
||||
new "Um eine Android-Datei zu erstellen, laden Sie bitte RAPT herunter, entpacken Sie es und platzieren Sie es im Ren’Py Verzeichnis. Starten Sie dann bitte Ren’Py neu."
|
||||
|
||||
# game/android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Ein 32-bit Java-Development-Kit wird benötigt, um Android-Packages auf Windows zu erstellen. Das JDK unterscheidet sich vom JRE, daher ist es möglich, dass Sie Java ohne das JDK installiert haben.\n\nBitte {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}laden Sie das JDK herunter und installieren Sie es{/a}, dann starten Sie den Ren’Py-Launcher neu."
|
||||
|
||||
# game/android.rpy:39
|
||||
old "Attempts to emulate a televison-based Android console, like the OUYA or Fire TV.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button."
|
||||
new "Emuliert eine Fernseher-Android-Konsole wie die OUYA oder Fire TV.\n\nDie Contollereingabe wird mithilfe der Pfeiltasten emuliert, „Enter“ fungiert als Auswahlschaltfläche, „Escape“ als Menüschaltfläche und „Bild rauf“ als „Zurück-Schaltfläche“."
|
||||
|
||||
# game/android.rpy:47
|
||||
old "Connects to an Android device running ADB in TCP/IP mode."
|
||||
new "Verbindet mit einem Android-Gerät, das auf ADB im TCP/IP-Modus läuft."
|
||||
|
||||
# game/android.rpy:48
|
||||
old "Disconnects from an Android device running ADB in TCP/IP mode."
|
||||
new "Trennt Verbindung von einem Android-Gerät, das auf ADB im TCP/IP-Modus läuft."
|
||||
|
||||
# game/android.rpy:516
|
||||
old "Other:"
|
||||
new "Anderes:"
|
||||
|
||||
# game/android.rpy:524
|
||||
old "Remote ADB Connect"
|
||||
new "Remote-ADB verbinden"
|
||||
|
||||
# game/android.rpy:528
|
||||
old "Remote ADB Disconnect"
|
||||
new "Remote-ADB trennen"
|
||||
|
||||
# game/android.rpy:561
|
||||
old "Before packaging Android apps, you'll need to download RAPT, the Ren'Py Android Packaging Tool. Would you like to download RAPT now?"
|
||||
new "Bevor Sie Android-Apps erstellen können, müssen Sie RAPT herunterladen, das Ren’Py-Android-Packaging-Tool. Möchten Sie RAPT jetzt herunterladen?"
|
||||
|
||||
# game/android.rpy:608
|
||||
old "Remote ADB Address"
|
||||
new "Remote-ADB-Adresse"
|
||||
|
||||
# game/android.rpy:609
|
||||
old "Please enter the IP address and port number to connect to, in the form \"192.168.1.143:5555\". Consult your device's documentation to determine if it supports remote ADB, and if so, the address and port to use."
|
||||
new "Bitte geben Sie die IP-Adresse und die Port-Nummer zum Verbinden ein, Beispiel: „192.168.1.143:5555“. Schauen Sie im Handbuch ihres Geräts nach, um festzustellen, ob es Remote-ADB unterstützt, und wenn ja, schauen Sie die Adresse und den Port nach."
|
||||
|
||||
# game/android.rpy:619
|
||||
old "Invalid remote ADB address"
|
||||
new "Ungültige Remote-ADB-Adresse"
|
||||
|
||||
# game/android.rpy:619
|
||||
old "The address must contain one exactly one ':'."
|
||||
new "Die Adresse muss exakt ein „:“ beinhalten."
|
||||
|
||||
# game/android.rpy:623
|
||||
old "The host may not contain whitespace."
|
||||
new "Der Host darf keine Leerzeichen enthalten."
|
||||
|
||||
# game/android.rpy:629
|
||||
old "The port must be a number."
|
||||
new "Der Port muss eine Nummer sein."
|
||||
|
||||
translate german strings:
|
||||
|
||||
# game/android.rpy:12
|
||||
old "To build Android packages, please download RAPT (from {a=http://www.renpy.org/dl/android}here{/a}), unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher."
|
||||
new "Um eine Android-Datei zu erstellen, laden Sie bitte RAPT ({a=http://www.renpy.org/dl/android}hier{/a}) herunter, entpacken Sie es und platzieren Sie es im Ren’Py Verzeichnis. Starten Sie dann bitte Ren’Py neu."
|
||||
|
||||
# game/android.rpy:13
|
||||
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
|
||||
new "RAPT wurde installiert, aber Sie müssen das Android-SDK installieren, bevor Sie Android-Dateien erstellen können. Wählen Sie „SDK Installieren“, um dies zu tun."
|
||||
|
||||
# game/android.rpy:14
|
||||
old "RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore."
|
||||
new "RAPT wurde installiert, aber ein Key wurde nicht eingestellt. Bitte erstellen Sie einen neuen Key oder stellen Sie android.keystore wieder her."
|
||||
|
||||
# game/android.rpy:15
|
||||
old "The current project has not been configured. Use \"Configure\" to configure it before building."
|
||||
new "Das aktuelle Projekt wurde nicht eingestellt. Verwenden Sie „Einstellen“, um es vor der Erstellung anzupassen."
|
||||
|
||||
# game/android.rpy:16
|
||||
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."
|
||||
new "Wählen Sie „Erstellen“, um das aktuelle Projekt zu erstellen oder schließen Sie ein Android-Gerät an und wählen Sie „Erstellen und installieren“, um es zu erstellen und auf dem Gerät zu installieren."
|
||||
|
||||
# game/android.rpy:18
|
||||
old "Attempts to emulate an Android phone.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
|
||||
new "Emuliert ein Android-Handy.\n\nDie Berührungseingabe wird mithilfe der Maus emuliert, aber nur, wenn die Schaltfläche gedrückt wird. „Escape“ fungiert als Menüschaltfläche und „Bild rauf“ als „Zurück-Schaltfläche“."
|
||||
|
||||
# game/android.rpy:19
|
||||
old "Attempts to emulate an Android tablet.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
|
||||
new "Emuliert ein Android-Tablet.\n\nDie Berührungseingabe wird mithilfe der Maus emuliert, aber nur, wenn die Schaltfläche gedrückt wird. „Escape“ fungiert als Menüschaltfläche und „Bild rauf“ als „Zurück-Schaltfläche“."
|
||||
|
||||
# game/android.rpy:20
|
||||
old "Attempts to emulate an OUYA 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 "Emuliert eine OUYA-Konsole.\n\nDie Contollereingabe wird mithilfe der Pfeiltasten emuliert, „Enter“ fungiert als Auswahlschaltfläche, „Escape“ als Menüschaltfläche und „Bild rauf“ als „Zurück-Schaltfläche“."
|
||||
|
||||
# game/android.rpy:22
|
||||
old "Downloads and installs the Android SDK and supporting packages. Optionally, generates the keys required to sign the package."
|
||||
new "Lädt das Android SDK herunter und installiert es. Generiert optional die Keys, die für die Authentifizierung der Datei benötigt werden."
|
||||
|
||||
# game/android.rpy:23
|
||||
old "Configures the package name, version, and other information about this project."
|
||||
new "Stellt Dateinamen, Version und andere Informationen über dieses Projekt ein."
|
||||
|
||||
# game/android.rpy:24
|
||||
old "Opens the file containing the Google Play keys in the editor.\n\nThis is only needed if the application is using an expansion APK. Read the documentation for more details."
|
||||
new "Öffnet die Datei mit den Google-Play-Keys im Editor.\n\nDies ist nur nötig, wenn die Anwendung ein Expansion-APK verwendet. Lesen Sie die Dokumentation für weitere Details."
|
||||
|
||||
# game/android.rpy:25
|
||||
old "Builds the Android package."
|
||||
new "Erstellt die Android-Datei."
|
||||
|
||||
# game/android.rpy:26
|
||||
old "Builds the Android package, and installs it on an Android device connected to your computer."
|
||||
new "Erstellt die Android-Datei und installiert es auf ein Android-Gerät, das mit Ihrem Computer verbunden ist."
|
||||
|
||||
# game/android.rpy:142
|
||||
old "{a=%s}%s{/a}"
|
||||
new "{a=%s}%s{/a}"
|
||||
|
||||
# game/android.rpy:361
|
||||
old "Android: [project.current.name!q]"
|
||||
new "Android: [project.current.name!q]"
|
||||
|
||||
# game/android.rpy:381
|
||||
old "Emulation:"
|
||||
new "Emulation:"
|
||||
|
||||
# game/android.rpy:389
|
||||
old "Phone"
|
||||
new "Handy"
|
||||
|
||||
# game/android.rpy:393
|
||||
old "Tablet"
|
||||
new "Tablet"
|
||||
|
||||
# game/android.rpy:397
|
||||
old "Television / OUYA"
|
||||
new "Fernseher / OUYA"
|
||||
|
||||
# game/android.rpy:409
|
||||
old "Build:"
|
||||
new "Erstellen:"
|
||||
|
||||
# game/android.rpy:417
|
||||
old "Install SDK & Create Keys"
|
||||
new "SDK installieren und Keys erstellen"
|
||||
|
||||
# game/android.rpy:421
|
||||
old "Configure"
|
||||
new "Einstellen"
|
||||
|
||||
# game/android.rpy:425
|
||||
old "Build Package"
|
||||
new "Datei erstellen"
|
||||
|
||||
# game/android.rpy:429
|
||||
old "Build & Install"
|
||||
new "Erstellen und installieren"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# game/android.rpy:30
|
||||
old "To build Android packages, please download RAPT, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher."
|
||||
new "Um eine Android-Datei zu erstellen, laden Sie bitte RAPT herunter, entpacken Sie es und platzieren Sie es im Ren’Py Verzeichnis. Starten Sie dann bitte Ren’Py neu."
|
||||
|
||||
# game/android.rpy:31
|
||||
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
|
||||
new "Ein 32-bit Java-Development-Kit wird benötigt, um Android-Packages auf Windows zu erstellen. Das JDK unterscheidet sich vom JRE, daher ist es möglich, dass Sie Java ohne das JDK installiert haben.\n\nBitte {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}laden Sie das JDK herunter und installieren Sie es{/a}, dann starten Sie den Ren’Py-Launcher neu."
|
||||
|
||||
# game/android.rpy:39
|
||||
old "Attempts to emulate a televison-based Android console, like the OUYA or Fire TV.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button."
|
||||
new "Emuliert eine Fernseher-Android-Konsole wie die OUYA oder Fire TV.\n\nDie Contollereingabe wird mithilfe der Pfeiltasten emuliert, „Enter“ fungiert als Auswahlschaltfläche, „Escape“ als Menüschaltfläche und „Bild rauf“ als „Zurück-Schaltfläche“."
|
||||
|
||||
# game/android.rpy:47
|
||||
old "Connects to an Android device running ADB in TCP/IP mode."
|
||||
new "Verbindet mit einem Android-Gerät, das auf ADB im TCP/IP-Modus läuft."
|
||||
|
||||
# game/android.rpy:48
|
||||
old "Disconnects from an Android device running ADB in TCP/IP mode."
|
||||
new "Trennt Verbindung von einem Android-Gerät, das auf ADB im TCP/IP-Modus läuft."
|
||||
|
||||
# game/android.rpy:516
|
||||
old "Other:"
|
||||
new "Anderes:"
|
||||
|
||||
# game/android.rpy:524
|
||||
old "Remote ADB Connect"
|
||||
new "Remote-ADB verbinden"
|
||||
|
||||
# game/android.rpy:528
|
||||
old "Remote ADB Disconnect"
|
||||
new "Remote-ADB trennen"
|
||||
|
||||
# game/android.rpy:561
|
||||
old "Before packaging Android apps, you'll need to download RAPT, the Ren'Py Android Packaging Tool. Would you like to download RAPT now?"
|
||||
new "Bevor Sie Android-Apps erstellen können, müssen Sie RAPT herunterladen, das Ren’Py-Android-Packaging-Tool. Möchten Sie RAPT jetzt herunterladen?"
|
||||
|
||||
# game/android.rpy:608
|
||||
old "Remote ADB Address"
|
||||
new "Remote-ADB-Adresse"
|
||||
|
||||
# game/android.rpy:609
|
||||
old "Please enter the IP address and port number to connect to, in the form \"192.168.1.143:5555\". Consult your device's documentation to determine if it supports remote ADB, and if so, the address and port to use."
|
||||
new "Bitte geben Sie die IP-Adresse und die Port-Nummer zum Verbinden ein, Beispiel: „192.168.1.143:5555“. Schauen Sie im Handbuch ihres Geräts nach, um festzustellen, ob es Remote-ADB unterstützt, und wenn ja, schauen Sie die Adresse und den Port nach."
|
||||
|
||||
# game/android.rpy:619
|
||||
old "Invalid remote ADB address"
|
||||
new "Ungültige Remote-ADB-Adresse"
|
||||
|
||||
# game/android.rpy:619
|
||||
old "The address must contain one exactly one ':'."
|
||||
new "Die Adresse muss exakt ein „:“ beinhalten."
|
||||
|
||||
# game/android.rpy:623
|
||||
old "The host may not contain whitespace."
|
||||
new "Der Host darf keine Leerzeichen enthalten."
|
||||
|
||||
# game/android.rpy:629
|
||||
old "The port must be a number."
|
||||
new "Der Port muss eine Nummer sein."
|
||||
|
||||
|
||||
@@ -1,41 +1,41 @@
|
||||
translate german strings:
|
||||
|
||||
# game/choose_theme.rpy:274
|
||||
old "Could not change the theme. Perhaps options.rpy was changed too much."
|
||||
new "Konnte Theme nicht ändern. Vielleicht wurde options.rpy zu stark verändert."
|
||||
|
||||
# game/choose_theme.rpy:332
|
||||
old "Display"
|
||||
new "Anzeige"
|
||||
|
||||
# game/choose_theme.rpy:333
|
||||
old "Window"
|
||||
new "Fenster"
|
||||
|
||||
# game/choose_theme.rpy:334
|
||||
old "Fullscreen"
|
||||
new "Vollbild"
|
||||
|
||||
# game/choose_theme.rpy:335
|
||||
old "Planetarium"
|
||||
new "Planetarium"
|
||||
|
||||
# game/choose_theme.rpy:342
|
||||
old "Sound Volume"
|
||||
new "Soundlautstärke"
|
||||
|
||||
# game/choose_theme.rpy:376
|
||||
old "Choose Theme"
|
||||
new "Theme auswählen"
|
||||
|
||||
# game/choose_theme.rpy:389
|
||||
old "Theme"
|
||||
new "Theme"
|
||||
|
||||
# game/choose_theme.rpy:413
|
||||
old "Color Scheme"
|
||||
new "Farbschema"
|
||||
|
||||
# game/choose_theme.rpy:444
|
||||
old "Continue"
|
||||
new "Weiter"
|
||||
translate german strings:
|
||||
|
||||
# game/choose_theme.rpy:274
|
||||
old "Could not change the theme. Perhaps options.rpy was changed too much."
|
||||
new "Konnte Theme nicht ändern. Vielleicht wurde options.rpy zu stark verändert."
|
||||
|
||||
# game/choose_theme.rpy:332
|
||||
old "Display"
|
||||
new "Anzeige"
|
||||
|
||||
# game/choose_theme.rpy:333
|
||||
old "Window"
|
||||
new "Fenster"
|
||||
|
||||
# game/choose_theme.rpy:334
|
||||
old "Fullscreen"
|
||||
new "Vollbild"
|
||||
|
||||
# game/choose_theme.rpy:335
|
||||
old "Planetarium"
|
||||
new "Planetarium"
|
||||
|
||||
# game/choose_theme.rpy:342
|
||||
old "Sound Volume"
|
||||
new "Soundlautstärke"
|
||||
|
||||
# game/choose_theme.rpy:376
|
||||
old "Choose Theme"
|
||||
new "Theme auswählen"
|
||||
|
||||
# game/choose_theme.rpy:389
|
||||
old "Theme"
|
||||
new "Theme"
|
||||
|
||||
# game/choose_theme.rpy:413
|
||||
old "Color Scheme"
|
||||
new "Farbschema"
|
||||
|
||||
# game/choose_theme.rpy:444
|
||||
old "Continue"
|
||||
new "Weiter"
|
||||
|
||||
+458
-458
@@ -1,458 +1,458 @@
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00action_file.rpy:118
|
||||
old "%b %d, %H:%M"
|
||||
new "%d. %b, %H:%M"
|
||||
|
||||
# renpy/common/00action_file.rpy:587
|
||||
old "Quick save complete."
|
||||
new "Schnellspeicherung erfolgreich."
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00gallery.rpy:521
|
||||
old "Image [index] of [count] locked."
|
||||
new "Grafik [index] von [count] gesperrt."
|
||||
|
||||
# renpy/common/00gallery.rpy:539
|
||||
old "prev"
|
||||
new "vor"
|
||||
|
||||
# renpy/common/00gallery.rpy:540
|
||||
old "next"
|
||||
new "weiter"
|
||||
|
||||
# renpy/common/00gallery.rpy:541
|
||||
old "slideshow"
|
||||
new "slideshow"
|
||||
|
||||
# renpy/common/00gallery.rpy:542
|
||||
old "return"
|
||||
new "zurück"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00gltest.rpy:50
|
||||
old "Graphics Acceleration"
|
||||
new "Grafikbeschleuniger"
|
||||
|
||||
# renpy/common/00gltest.rpy:54
|
||||
old "Automatically Choose"
|
||||
new "Automatisch auswählen"
|
||||
|
||||
# renpy/common/00gltest.rpy:59
|
||||
old "Force Angle/DirectX Renderer"
|
||||
new "Angle/DirectX-Darstellung erzwingen"
|
||||
|
||||
# renpy/common/00gltest.rpy:63
|
||||
old "Force OpenGL Renderer"
|
||||
new "OpenGL-Darstellung erzwingen"
|
||||
|
||||
# renpy/common/00gltest.rpy:67
|
||||
old "Force Software Renderer"
|
||||
new "Software-Darstellung erzwingen"
|
||||
|
||||
# renpy/common/00gltest.rpy:73
|
||||
old "Changes will take effect the next time this program is run."
|
||||
new "Die Änderungen werden beim nächsten Neustart des Programms übernommen."
|
||||
|
||||
# renpy/common/00gltest.rpy:82
|
||||
old "Return"
|
||||
new "Zurück"
|
||||
|
||||
# renpy/common/00gltest.rpy:112
|
||||
old "Performance Warning"
|
||||
new "Performance Warnung"
|
||||
|
||||
# renpy/common/00gltest.rpy:117
|
||||
old "This computer is using software rendering."
|
||||
new "Dieser Computer verwendet Software-Darstellung."
|
||||
|
||||
# renpy/common/00gltest.rpy:119
|
||||
old "This computer is not using shaders."
|
||||
new "Dieser Computer verwendet keine Shader."
|
||||
|
||||
# renpy/common/00gltest.rpy:121
|
||||
old "This computer is displaying graphics slowly."
|
||||
new "Dieser Computer zeigt Grafiken langsam an."
|
||||
|
||||
# renpy/common/00gltest.rpy:123
|
||||
old "This computer has a problem displaying graphics: [problem]."
|
||||
new "Dieser Computer hat ein Problem, Grafiken anzuzeigen: [problem]."
|
||||
|
||||
# renpy/common/00gltest.rpy:128
|
||||
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display. Updating DirectX could fix this problem."
|
||||
new "Die Grafiktreiber könnten nicht mehr aktuell sein oder nicht korrekt funktionieren. Dies kann zu langsamer oder inkorrekter Grafikanzeige führen. Das Aktualisieren von DirectX könnte dieses Problem beheben."
|
||||
|
||||
# renpy/common/00gltest.rpy:130
|
||||
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
|
||||
new "Die Grafiktreiber könnten nicht mehr aktuell sein oder nicht korrekt funktionieren. Dies kann zu langsamer oder inkorrekter Grafikanzeige führen."
|
||||
|
||||
# renpy/common/00gltest.rpy:135
|
||||
old "Update DirectX"
|
||||
new "DirectX aktualisieren"
|
||||
|
||||
# renpy/common/00gltest.rpy:141
|
||||
old "Continue, Show this warning again"
|
||||
new "Fortsetzen, diese Warnung wieder anzeigen"
|
||||
|
||||
# renpy/common/00gltest.rpy:145
|
||||
old "Continue, Don't show warning again"
|
||||
new "Fortsetzen, diese Warnung nicht mehr anzeigen"
|
||||
|
||||
# renpy/common/00gltest.rpy:171
|
||||
old "Updating DirectX."
|
||||
new "DirectX aktualisieren."
|
||||
|
||||
# renpy/common/00gltest.rpy:175
|
||||
old "DirectX web setup has been started. It may start minimized in the taskbar. Please follow the prompts to install DirectX."
|
||||
new "DirectX Websetup wurde gestartet. Es könnte minimiert in der Taskleiste starten. Bitte folgen Sie den Anweisungen, um DirectX zu installieren."
|
||||
|
||||
# renpy/common/00gltest.rpy:179
|
||||
old "{b}Note:{/b} Microsoft's DirectX web setup program will, by default, install the Bing toolbar. If you do not want this toolbar, uncheck the appropriate box."
|
||||
new "{b}Anmerkung:{/b} Microsofts DirectX Websetup-Programm installiert automatisch die Bing-Toolbar. Wenn Sie diese Toolbar nicht möchten, entfernen Sie das Häkchen bei der entsprechenden Schaltfläche."
|
||||
|
||||
# renpy/common/00gltest.rpy:183
|
||||
old "When setup finishes, please click below to restart this program."
|
||||
new "Wenn die Installation abgeschlossen ist, klicken Sie bitte unten, um dieses Programm neuzustarten."
|
||||
|
||||
# renpy/common/00gltest.rpy:185
|
||||
old "Restart"
|
||||
new "Neustart"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00keymap.rpy:167
|
||||
old "Saved screenshot as %s."
|
||||
new "Screenshot unter %s gespeichert."
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00layout.rpy:421
|
||||
old "Are you sure?"
|
||||
new "Sind Sie sicher?"
|
||||
|
||||
# renpy/common/00layout.rpy:422
|
||||
old "Are you sure you want to delete this save?"
|
||||
new "Sind Sie sicher, dass Sie diese Datei löschen möchten?"
|
||||
|
||||
# renpy/common/00layout.rpy:423
|
||||
old "Are you sure you want to overwrite your save?"
|
||||
new "Sind Sie sicher, dass Sie diese Datei überschreiben möchten?"
|
||||
|
||||
# renpy/common/00layout.rpy:424
|
||||
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
|
||||
new "Beim Laden geht ungespeicherter Fortschritt verloren.\nSind Sie sicher, dass Sie das tun möchten?"
|
||||
|
||||
# renpy/common/00layout.rpy:425
|
||||
old "Are you sure you want to quit?"
|
||||
new "Sind Sie sicher, dass Sie beenden möchten?"
|
||||
|
||||
# renpy/common/00layout.rpy:426
|
||||
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
|
||||
new "Sind Sie sicher, dass Sie zurück zum Hauptmenü möchten?\nUngespeicherter Fortschritt geht dabei verloren."
|
||||
|
||||
# renpy/common/00layout.rpy:427
|
||||
old "Are you sure you want to begin skipping?"
|
||||
new "Sind Sie sicher, dass Sie vorspulen möchten?"
|
||||
|
||||
# renpy/common/00layout.rpy:428
|
||||
old "Are you sure you want to skip to the next choice?"
|
||||
new "Sind Sie sicher, dass Sie zur nächsten Auswahl vorspulen möchten?"
|
||||
|
||||
# renpy/common/00layout.rpy:429
|
||||
old "Are you sure you want to skip to unseen dialogue or the next choice?"
|
||||
new "Sind Sie sicher, dass Sie zum nächsten ungelesenen Dialog oder zur nächsten Auswahl vorspulen möchten?"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00library.rpy:77
|
||||
old "Skip Mode"
|
||||
new "Vorspulen"
|
||||
|
||||
# renpy/common/00library.rpy:80
|
||||
old "Fast Skip Mode"
|
||||
new "Schnell vorspulen"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00updater.rpy:1255
|
||||
old "Updater"
|
||||
new "Aktualisieren"
|
||||
|
||||
# renpy/common/00updater.rpy:1264
|
||||
old "This program is up to date."
|
||||
new "Dieses Programm ist aktuell."
|
||||
|
||||
# renpy/common/00updater.rpy:1266
|
||||
old "[u.version] is available. Do you want to install it?"
|
||||
new "[u.version] ist verfügbar. Möchten Sie sie installieren?"
|
||||
|
||||
# renpy/common/00updater.rpy:1268
|
||||
old "Preparing to download the updates."
|
||||
new "Vorbereiten, um die Aktualisierungen herunterzuladen."
|
||||
|
||||
# renpy/common/00updater.rpy:1270
|
||||
old "Downloading the updates."
|
||||
new "Aktualisierungen werden heruntergeladen."
|
||||
|
||||
# renpy/common/00updater.rpy:1272
|
||||
old "Unpacking the updates."
|
||||
new "Aktualisierungen werden entpackt."
|
||||
|
||||
# renpy/common/00updater.rpy:1276
|
||||
old "The updates have been installed. The program will restart."
|
||||
new "Die Aktualisierungen wurden installiert. Das Programm wird nun neustarten."
|
||||
|
||||
# renpy/common/00updater.rpy:1278
|
||||
old "The updates have been installed."
|
||||
new "Die Aktualisierungen wurden installiert."
|
||||
|
||||
# renpy/common/00updater.rpy:1280
|
||||
old "The updates were cancelled."
|
||||
new "Die Aktualisierungen wurden abgebrochen."
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/_compat/gamemenu.rpym:180
|
||||
old "Empty Slot."
|
||||
new "Leerer Speicherplatz."
|
||||
|
||||
# renpy/common/_compat/gamemenu.rpym:337
|
||||
old "Previous"
|
||||
new "Vorige"
|
||||
|
||||
# renpy/common/_compat/gamemenu.rpym:344
|
||||
old "Next"
|
||||
new "Nächste"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/_compat/preferences.rpym:411
|
||||
old "Joystick Mapping"
|
||||
new "Joystickbelegung"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/_errorhandling.rpym:434
|
||||
old "Rollback"
|
||||
new "Zurückscrollen"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:436
|
||||
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
|
||||
new "Versucht zu einem früheren Zeitpunkt zu gehen und ermöglicht es zu speichern oder eine andere Auswahl zu treffen."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:441
|
||||
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
|
||||
new "Ignoriert den Fehler und ermöglicht es, fortzufahren. Dies führt oft zu weiteren Fehlern."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:446
|
||||
old "Reloads the game from disk, saving and restoring game state if possible."
|
||||
new "Startet das Spiel neu und stellt den Spielstand wieder her, wenn möglich."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:450
|
||||
old "Opens the traceback.txt file in a text editor."
|
||||
new "Öffnet die traceback.txt Datei in einem Texteditor."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:483
|
||||
old "Parsing the script failed."
|
||||
new "Syntaxanalyse gescheitert."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:510
|
||||
old "Open Parse Errors"
|
||||
new "Fehleranalyse öffnen"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:512
|
||||
old "Opens the errors.txt file in a text editor."
|
||||
new "Öffnet die errors.txt Datei in einem Texteditor."
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/_layout/classic_load_save.rpym:152
|
||||
old "a"
|
||||
new "a"
|
||||
|
||||
# renpy/common/_layout/classic_load_save.rpym:161
|
||||
old "q"
|
||||
new "s"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00console.rpy:179
|
||||
old "%(version)s console, originally by Shiz, C, and delta.\n"
|
||||
new "%(version)s Konsole, ursprünglich von Shiz, C und delta.\n"
|
||||
|
||||
# renpy/common/00console.rpy:180
|
||||
old "Press <esc> to exit console. Type help for help.\n"
|
||||
new "Drücken Sie <esc>, um die Konsole zu schließen. Geben Sie „help“ ein, um die Hilfe anzuzeigen.\n"
|
||||
|
||||
# renpy/common/00console.rpy:184
|
||||
old "Ren'Py script enabled."
|
||||
new "Ren’Py Skript aktiviert."
|
||||
|
||||
# renpy/common/00console.rpy:186
|
||||
old "Ren'Py script disabled."
|
||||
new "Ren’Py Skript deaktiviert."
|
||||
|
||||
# renpy/common/00console.rpy:392
|
||||
old "help: show this help"
|
||||
new "help: zeigt diese Hilfe an"
|
||||
|
||||
# renpy/common/00console.rpy:397
|
||||
old "commands:\n"
|
||||
new "Befehle:\n"
|
||||
|
||||
# renpy/common/00console.rpy:407
|
||||
old " <renpy script statement>: run the statement\n"
|
||||
new " <renpy script statement>: startet die Anweisung\n"
|
||||
|
||||
# renpy/common/00console.rpy:409
|
||||
old " <python expression or statement>: run the expression or statement"
|
||||
new " <python expression or statement>: startet den Ausdruck oder die Anweisung"
|
||||
|
||||
# renpy/common/00console.rpy:417
|
||||
old "clear: clear the console history"
|
||||
new "clear: leert das Konsolenprotokoll"
|
||||
|
||||
# renpy/common/00console.rpy:421
|
||||
old "exit: exit the console"
|
||||
new "exit: schließt die Konsole"
|
||||
|
||||
# renpy/common/00console.rpy:429
|
||||
old "load <slot>: loads the game from slot"
|
||||
new "load <slot>: lädt das Spiel aus dem Speicherplatz"
|
||||
|
||||
# renpy/common/00console.rpy:442
|
||||
old "save <slot>: saves the game in slot"
|
||||
new "save <slot>: speichert das Spiel im Speicherplatz"
|
||||
|
||||
# renpy/common/00console.rpy:453
|
||||
old "reload: reloads the game, refreshing the scripts"
|
||||
new "reload: startet das Spiel neu und erneuert die Skripte"
|
||||
|
||||
# renpy/common/00console.rpy:461
|
||||
old "watch <expression>: watch a python expression"
|
||||
new "watch <expression>: beobachtet einen Python-Ausdruck"
|
||||
|
||||
# renpy/common/00console.rpy:470
|
||||
old "unwatch <expression>: stop watching an expression"
|
||||
new "unwatch <expression>: beendet das Beobachten eines Ausdrucks"
|
||||
|
||||
# renpy/common/00console.rpy:478
|
||||
old "unwatchall: stop watching all expressions"
|
||||
new "unwatchall: beendet das Beobachten aller Ausdrücke"
|
||||
|
||||
# renpy/common/00console.rpy:484
|
||||
old "jump <label>: jumps to label"
|
||||
new "jump <label>: springt zum Label"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00keymap.rpy:332
|
||||
old "Autoreload"
|
||||
new "Autoneustart"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/_developer/developer.rpym:65
|
||||
old "Developer Menu"
|
||||
new "Entwicklermenü"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:67
|
||||
old "Reload Game (Shift+R)"
|
||||
new "Spiel neustarten (Shift + R)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:69
|
||||
old "Console (Shift+O)"
|
||||
new "Konsole (Shift + O)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:71
|
||||
old "Variable Viewer"
|
||||
new "Variablen anzeigen"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:73
|
||||
old "Theme Test"
|
||||
new "Themetest"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:75
|
||||
old "Image Location Picker"
|
||||
new "Grafikposition auswählen"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:77
|
||||
old "Filename List"
|
||||
new "Liste der Dateinamen"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:81
|
||||
old "Show Image Load Log"
|
||||
new "Grafiklog anzeigen"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:84
|
||||
old "Hide Image Load Log"
|
||||
new "Grafiklog verbergen"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:149
|
||||
old "No variables have changed since the game started."
|
||||
new "Keine Variablen wurden geändert, seit das Spiel gestartet wurde."
|
||||
|
||||
# renpy/common/_developer/developer.rpym:152
|
||||
old "Return to the developer menu"
|
||||
new "Zurück zum Entwicklermenü"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:272
|
||||
old "{b}Missing Images{/b}"
|
||||
new "{b}Fehlende Grafiken{/b}"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:424
|
||||
old "Rectangle: %r"
|
||||
new "Rechteck: %r"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:429
|
||||
old "Mouse position: %r"
|
||||
new "Mausposition: %r"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:431
|
||||
old "Right-click or escape to quit."
|
||||
new "Rechtsklick oder Escape, um zu beenden."
|
||||
|
||||
# renpy/common/_developer/developer.rpym:482
|
||||
old "Done"
|
||||
new "Fertig"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:43
|
||||
old "Displayable Inspector"
|
||||
new "Darstellungen prüfen"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:49
|
||||
old "Nothing to inspect."
|
||||
new "Nichts zum Prüfen verfügbar"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:58
|
||||
old "Size"
|
||||
new "Größe"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:63
|
||||
old "Style"
|
||||
new "Stil"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:123
|
||||
old "Inspecting Styles of [displayable_name!q]"
|
||||
new "Prüft Stile von [displayable_name!q]"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:135
|
||||
old "displayable:"
|
||||
new "Darstellungen:"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:142
|
||||
old " (no properties affect the displayable)"
|
||||
new " (keine Eigenschaften beeinflussen diese Darstellung)"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:144
|
||||
old " (default properties omitted)"
|
||||
new " (Standardeigenschaften entfallen)"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:174
|
||||
old "<repr() failed>"
|
||||
new "<repr() gescheitert>"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00action_file.rpy:118
|
||||
old "%b %d, %H:%M"
|
||||
new "%d. %b, %H:%M"
|
||||
|
||||
# renpy/common/00action_file.rpy:587
|
||||
old "Quick save complete."
|
||||
new "Schnellspeicherung erfolgreich."
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00gallery.rpy:521
|
||||
old "Image [index] of [count] locked."
|
||||
new "Grafik [index] von [count] gesperrt."
|
||||
|
||||
# renpy/common/00gallery.rpy:539
|
||||
old "prev"
|
||||
new "vor"
|
||||
|
||||
# renpy/common/00gallery.rpy:540
|
||||
old "next"
|
||||
new "weiter"
|
||||
|
||||
# renpy/common/00gallery.rpy:541
|
||||
old "slideshow"
|
||||
new "slideshow"
|
||||
|
||||
# renpy/common/00gallery.rpy:542
|
||||
old "return"
|
||||
new "zurück"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00gltest.rpy:50
|
||||
old "Graphics Acceleration"
|
||||
new "Grafikbeschleuniger"
|
||||
|
||||
# renpy/common/00gltest.rpy:54
|
||||
old "Automatically Choose"
|
||||
new "Automatisch auswählen"
|
||||
|
||||
# renpy/common/00gltest.rpy:59
|
||||
old "Force Angle/DirectX Renderer"
|
||||
new "Angle/DirectX-Darstellung erzwingen"
|
||||
|
||||
# renpy/common/00gltest.rpy:63
|
||||
old "Force OpenGL Renderer"
|
||||
new "OpenGL-Darstellung erzwingen"
|
||||
|
||||
# renpy/common/00gltest.rpy:67
|
||||
old "Force Software Renderer"
|
||||
new "Software-Darstellung erzwingen"
|
||||
|
||||
# renpy/common/00gltest.rpy:73
|
||||
old "Changes will take effect the next time this program is run."
|
||||
new "Die Änderungen werden beim nächsten Neustart des Programms übernommen."
|
||||
|
||||
# renpy/common/00gltest.rpy:82
|
||||
old "Return"
|
||||
new "Zurück"
|
||||
|
||||
# renpy/common/00gltest.rpy:112
|
||||
old "Performance Warning"
|
||||
new "Performance Warnung"
|
||||
|
||||
# renpy/common/00gltest.rpy:117
|
||||
old "This computer is using software rendering."
|
||||
new "Dieser Computer verwendet Software-Darstellung."
|
||||
|
||||
# renpy/common/00gltest.rpy:119
|
||||
old "This computer is not using shaders."
|
||||
new "Dieser Computer verwendet keine Shader."
|
||||
|
||||
# renpy/common/00gltest.rpy:121
|
||||
old "This computer is displaying graphics slowly."
|
||||
new "Dieser Computer zeigt Grafiken langsam an."
|
||||
|
||||
# renpy/common/00gltest.rpy:123
|
||||
old "This computer has a problem displaying graphics: [problem]."
|
||||
new "Dieser Computer hat ein Problem, Grafiken anzuzeigen: [problem]."
|
||||
|
||||
# renpy/common/00gltest.rpy:128
|
||||
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display. Updating DirectX could fix this problem."
|
||||
new "Die Grafiktreiber könnten nicht mehr aktuell sein oder nicht korrekt funktionieren. Dies kann zu langsamer oder inkorrekter Grafikanzeige führen. Das Aktualisieren von DirectX könnte dieses Problem beheben."
|
||||
|
||||
# renpy/common/00gltest.rpy:130
|
||||
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
|
||||
new "Die Grafiktreiber könnten nicht mehr aktuell sein oder nicht korrekt funktionieren. Dies kann zu langsamer oder inkorrekter Grafikanzeige führen."
|
||||
|
||||
# renpy/common/00gltest.rpy:135
|
||||
old "Update DirectX"
|
||||
new "DirectX aktualisieren"
|
||||
|
||||
# renpy/common/00gltest.rpy:141
|
||||
old "Continue, Show this warning again"
|
||||
new "Fortsetzen, diese Warnung wieder anzeigen"
|
||||
|
||||
# renpy/common/00gltest.rpy:145
|
||||
old "Continue, Don't show warning again"
|
||||
new "Fortsetzen, diese Warnung nicht mehr anzeigen"
|
||||
|
||||
# renpy/common/00gltest.rpy:171
|
||||
old "Updating DirectX."
|
||||
new "DirectX aktualisieren."
|
||||
|
||||
# renpy/common/00gltest.rpy:175
|
||||
old "DirectX web setup has been started. It may start minimized in the taskbar. Please follow the prompts to install DirectX."
|
||||
new "DirectX Websetup wurde gestartet. Es könnte minimiert in der Taskleiste starten. Bitte folgen Sie den Anweisungen, um DirectX zu installieren."
|
||||
|
||||
# renpy/common/00gltest.rpy:179
|
||||
old "{b}Note:{/b} Microsoft's DirectX web setup program will, by default, install the Bing toolbar. If you do not want this toolbar, uncheck the appropriate box."
|
||||
new "{b}Anmerkung:{/b} Microsofts DirectX Websetup-Programm installiert automatisch die Bing-Toolbar. Wenn Sie diese Toolbar nicht möchten, entfernen Sie das Häkchen bei der entsprechenden Schaltfläche."
|
||||
|
||||
# renpy/common/00gltest.rpy:183
|
||||
old "When setup finishes, please click below to restart this program."
|
||||
new "Wenn die Installation abgeschlossen ist, klicken Sie bitte unten, um dieses Programm neuzustarten."
|
||||
|
||||
# renpy/common/00gltest.rpy:185
|
||||
old "Restart"
|
||||
new "Neustart"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00keymap.rpy:167
|
||||
old "Saved screenshot as %s."
|
||||
new "Screenshot unter %s gespeichert."
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00layout.rpy:421
|
||||
old "Are you sure?"
|
||||
new "Sind Sie sicher?"
|
||||
|
||||
# renpy/common/00layout.rpy:422
|
||||
old "Are you sure you want to delete this save?"
|
||||
new "Sind Sie sicher, dass Sie diese Datei löschen möchten?"
|
||||
|
||||
# renpy/common/00layout.rpy:423
|
||||
old "Are you sure you want to overwrite your save?"
|
||||
new "Sind Sie sicher, dass Sie diese Datei überschreiben möchten?"
|
||||
|
||||
# renpy/common/00layout.rpy:424
|
||||
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
|
||||
new "Beim Laden geht ungespeicherter Fortschritt verloren.\nSind Sie sicher, dass Sie das tun möchten?"
|
||||
|
||||
# renpy/common/00layout.rpy:425
|
||||
old "Are you sure you want to quit?"
|
||||
new "Sind Sie sicher, dass Sie beenden möchten?"
|
||||
|
||||
# renpy/common/00layout.rpy:426
|
||||
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
|
||||
new "Sind Sie sicher, dass Sie zurück zum Hauptmenü möchten?\nUngespeicherter Fortschritt geht dabei verloren."
|
||||
|
||||
# renpy/common/00layout.rpy:427
|
||||
old "Are you sure you want to begin skipping?"
|
||||
new "Sind Sie sicher, dass Sie vorspulen möchten?"
|
||||
|
||||
# renpy/common/00layout.rpy:428
|
||||
old "Are you sure you want to skip to the next choice?"
|
||||
new "Sind Sie sicher, dass Sie zur nächsten Auswahl vorspulen möchten?"
|
||||
|
||||
# renpy/common/00layout.rpy:429
|
||||
old "Are you sure you want to skip to unseen dialogue or the next choice?"
|
||||
new "Sind Sie sicher, dass Sie zum nächsten ungelesenen Dialog oder zur nächsten Auswahl vorspulen möchten?"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00library.rpy:77
|
||||
old "Skip Mode"
|
||||
new "Vorspulen"
|
||||
|
||||
# renpy/common/00library.rpy:80
|
||||
old "Fast Skip Mode"
|
||||
new "Schnell vorspulen"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00updater.rpy:1255
|
||||
old "Updater"
|
||||
new "Aktualisieren"
|
||||
|
||||
# renpy/common/00updater.rpy:1264
|
||||
old "This program is up to date."
|
||||
new "Dieses Programm ist aktuell."
|
||||
|
||||
# renpy/common/00updater.rpy:1266
|
||||
old "[u.version] is available. Do you want to install it?"
|
||||
new "[u.version] ist verfügbar. Möchten Sie sie installieren?"
|
||||
|
||||
# renpy/common/00updater.rpy:1268
|
||||
old "Preparing to download the updates."
|
||||
new "Vorbereiten, um die Aktualisierungen herunterzuladen."
|
||||
|
||||
# renpy/common/00updater.rpy:1270
|
||||
old "Downloading the updates."
|
||||
new "Aktualisierungen werden heruntergeladen."
|
||||
|
||||
# renpy/common/00updater.rpy:1272
|
||||
old "Unpacking the updates."
|
||||
new "Aktualisierungen werden entpackt."
|
||||
|
||||
# renpy/common/00updater.rpy:1276
|
||||
old "The updates have been installed. The program will restart."
|
||||
new "Die Aktualisierungen wurden installiert. Das Programm wird nun neustarten."
|
||||
|
||||
# renpy/common/00updater.rpy:1278
|
||||
old "The updates have been installed."
|
||||
new "Die Aktualisierungen wurden installiert."
|
||||
|
||||
# renpy/common/00updater.rpy:1280
|
||||
old "The updates were cancelled."
|
||||
new "Die Aktualisierungen wurden abgebrochen."
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/_compat/gamemenu.rpym:180
|
||||
old "Empty Slot."
|
||||
new "Leerer Speicherplatz."
|
||||
|
||||
# renpy/common/_compat/gamemenu.rpym:337
|
||||
old "Previous"
|
||||
new "Vorige"
|
||||
|
||||
# renpy/common/_compat/gamemenu.rpym:344
|
||||
old "Next"
|
||||
new "Nächste"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/_compat/preferences.rpym:411
|
||||
old "Joystick Mapping"
|
||||
new "Joystickbelegung"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/_errorhandling.rpym:434
|
||||
old "Rollback"
|
||||
new "Zurückscrollen"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:436
|
||||
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
|
||||
new "Versucht zu einem früheren Zeitpunkt zu gehen und ermöglicht es zu speichern oder eine andere Auswahl zu treffen."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:441
|
||||
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
|
||||
new "Ignoriert den Fehler und ermöglicht es, fortzufahren. Dies führt oft zu weiteren Fehlern."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:446
|
||||
old "Reloads the game from disk, saving and restoring game state if possible."
|
||||
new "Startet das Spiel neu und stellt den Spielstand wieder her, wenn möglich."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:450
|
||||
old "Opens the traceback.txt file in a text editor."
|
||||
new "Öffnet die traceback.txt Datei in einem Texteditor."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:483
|
||||
old "Parsing the script failed."
|
||||
new "Syntaxanalyse gescheitert."
|
||||
|
||||
# renpy/common/_errorhandling.rpym:510
|
||||
old "Open Parse Errors"
|
||||
new "Fehleranalyse öffnen"
|
||||
|
||||
# renpy/common/_errorhandling.rpym:512
|
||||
old "Opens the errors.txt file in a text editor."
|
||||
new "Öffnet die errors.txt Datei in einem Texteditor."
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/_layout/classic_load_save.rpym:152
|
||||
old "a"
|
||||
new "a"
|
||||
|
||||
# renpy/common/_layout/classic_load_save.rpym:161
|
||||
old "q"
|
||||
new "s"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00console.rpy:179
|
||||
old "%(version)s console, originally by Shiz, C, and delta.\n"
|
||||
new "%(version)s Konsole, ursprünglich von Shiz, C und delta.\n"
|
||||
|
||||
# renpy/common/00console.rpy:180
|
||||
old "Press <esc> to exit console. Type help for help.\n"
|
||||
new "Drücken Sie <esc>, um die Konsole zu schließen. Geben Sie „help“ ein, um die Hilfe anzuzeigen.\n"
|
||||
|
||||
# renpy/common/00console.rpy:184
|
||||
old "Ren'Py script enabled."
|
||||
new "Ren’Py Skript aktiviert."
|
||||
|
||||
# renpy/common/00console.rpy:186
|
||||
old "Ren'Py script disabled."
|
||||
new "Ren’Py Skript deaktiviert."
|
||||
|
||||
# renpy/common/00console.rpy:392
|
||||
old "help: show this help"
|
||||
new "help: zeigt diese Hilfe an"
|
||||
|
||||
# renpy/common/00console.rpy:397
|
||||
old "commands:\n"
|
||||
new "Befehle:\n"
|
||||
|
||||
# renpy/common/00console.rpy:407
|
||||
old " <renpy script statement>: run the statement\n"
|
||||
new " <renpy script statement>: startet die Anweisung\n"
|
||||
|
||||
# renpy/common/00console.rpy:409
|
||||
old " <python expression or statement>: run the expression or statement"
|
||||
new " <python expression or statement>: startet den Ausdruck oder die Anweisung"
|
||||
|
||||
# renpy/common/00console.rpy:417
|
||||
old "clear: clear the console history"
|
||||
new "clear: leert das Konsolenprotokoll"
|
||||
|
||||
# renpy/common/00console.rpy:421
|
||||
old "exit: exit the console"
|
||||
new "exit: schließt die Konsole"
|
||||
|
||||
# renpy/common/00console.rpy:429
|
||||
old "load <slot>: loads the game from slot"
|
||||
new "load <slot>: lädt das Spiel aus dem Speicherplatz"
|
||||
|
||||
# renpy/common/00console.rpy:442
|
||||
old "save <slot>: saves the game in slot"
|
||||
new "save <slot>: speichert das Spiel im Speicherplatz"
|
||||
|
||||
# renpy/common/00console.rpy:453
|
||||
old "reload: reloads the game, refreshing the scripts"
|
||||
new "reload: startet das Spiel neu und erneuert die Skripte"
|
||||
|
||||
# renpy/common/00console.rpy:461
|
||||
old "watch <expression>: watch a python expression"
|
||||
new "watch <expression>: beobachtet einen Python-Ausdruck"
|
||||
|
||||
# renpy/common/00console.rpy:470
|
||||
old "unwatch <expression>: stop watching an expression"
|
||||
new "unwatch <expression>: beendet das Beobachten eines Ausdrucks"
|
||||
|
||||
# renpy/common/00console.rpy:478
|
||||
old "unwatchall: stop watching all expressions"
|
||||
new "unwatchall: beendet das Beobachten aller Ausdrücke"
|
||||
|
||||
# renpy/common/00console.rpy:484
|
||||
old "jump <label>: jumps to label"
|
||||
new "jump <label>: springt zum Label"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/00keymap.rpy:332
|
||||
old "Autoreload"
|
||||
new "Autoneustart"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/_developer/developer.rpym:65
|
||||
old "Developer Menu"
|
||||
new "Entwicklermenü"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:67
|
||||
old "Reload Game (Shift+R)"
|
||||
new "Spiel neustarten (Shift + R)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:69
|
||||
old "Console (Shift+O)"
|
||||
new "Konsole (Shift + O)"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:71
|
||||
old "Variable Viewer"
|
||||
new "Variablen anzeigen"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:73
|
||||
old "Theme Test"
|
||||
new "Themetest"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:75
|
||||
old "Image Location Picker"
|
||||
new "Grafikposition auswählen"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:77
|
||||
old "Filename List"
|
||||
new "Liste der Dateinamen"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:81
|
||||
old "Show Image Load Log"
|
||||
new "Grafiklog anzeigen"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:84
|
||||
old "Hide Image Load Log"
|
||||
new "Grafiklog verbergen"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:149
|
||||
old "No variables have changed since the game started."
|
||||
new "Keine Variablen wurden geändert, seit das Spiel gestartet wurde."
|
||||
|
||||
# renpy/common/_developer/developer.rpym:152
|
||||
old "Return to the developer menu"
|
||||
new "Zurück zum Entwicklermenü"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:272
|
||||
old "{b}Missing Images{/b}"
|
||||
new "{b}Fehlende Grafiken{/b}"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:424
|
||||
old "Rectangle: %r"
|
||||
new "Rechteck: %r"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:429
|
||||
old "Mouse position: %r"
|
||||
new "Mausposition: %r"
|
||||
|
||||
# renpy/common/_developer/developer.rpym:431
|
||||
old "Right-click or escape to quit."
|
||||
new "Rechtsklick oder Escape, um zu beenden."
|
||||
|
||||
# renpy/common/_developer/developer.rpym:482
|
||||
old "Done"
|
||||
new "Fertig"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:43
|
||||
old "Displayable Inspector"
|
||||
new "Darstellungen prüfen"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:49
|
||||
old "Nothing to inspect."
|
||||
new "Nichts zum Prüfen verfügbar"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:58
|
||||
old "Size"
|
||||
new "Größe"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:63
|
||||
old "Style"
|
||||
new "Stil"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:123
|
||||
old "Inspecting Styles of [displayable_name!q]"
|
||||
new "Prüft Stile von [displayable_name!q]"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:135
|
||||
old "displayable:"
|
||||
new "Darstellungen:"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:142
|
||||
old " (no properties affect the displayable)"
|
||||
new " (keine Eigenschaften beeinflussen diese Darstellung)"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:144
|
||||
old " (default properties omitted)"
|
||||
new " (Standardeigenschaften entfallen)"
|
||||
|
||||
# renpy/common/_developer/inspector.rpym:174
|
||||
old "<repr() failed>"
|
||||
new "<repr() gescheitert>"
|
||||
|
||||
|
||||
@@ -1,42 +1,42 @@
|
||||
translate german strings:
|
||||
|
||||
# game/distribute.rpy:313
|
||||
old "Nothing to do."
|
||||
new "Nichts zu tun."
|
||||
|
||||
# game/distribute.rpy:317
|
||||
old "Scanning project files..."
|
||||
new "Projektdateien werden geprüft …"
|
||||
|
||||
# game/distribute.rpy:324
|
||||
old "Scanning Ren'Py files..."
|
||||
new "Ren’Py-Dateien werden geprüft …"
|
||||
|
||||
# game/distribute.rpy:474
|
||||
old "Archiving files..."
|
||||
new "Dateien werden archiviert …"
|
||||
|
||||
# game/distribute.rpy:722
|
||||
old "Writing the [variant] [format] package."
|
||||
new "Das [variant] [format] Package wird erstellt."
|
||||
|
||||
# game/distribute.rpy:735
|
||||
old "Making the [variant] update zsync file."
|
||||
new "Die [variant] Update-zsync-Datei wird erstellt."
|
||||
|
||||
# game/distribute.rpy:831
|
||||
old "Processed {b}[complete]{/b} of {b}[total]{/b} files."
|
||||
new "{b}[complete]{/b} von {b}[total]{/b} Dateien verarbeitet."
|
||||
|
||||
# game/distribute.rpy:892
|
||||
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 "Alle Packages wurden erstellt.\n\nAufgrund von Zugriffsinformationen ist das Entpacken und Neupacken der Linux und Macintosh Veröffentlichungen unter Windows nicht unterstützt."
|
||||
|
||||
# game/distribute.rpy:358
|
||||
old "No packages are selected, so there's nothing to do."
|
||||
new "Keine Packages wurden ausgewählt."
|
||||
|
||||
# game/distribute.rpy:335
|
||||
old "Building distributions failed:\n\nThe build.directory_name variable may not include the space, colon, or semicolon characters."
|
||||
new "Erstellen von Veröffentlichungen gescheiter:\n\nDie build.directory_name Variable darf keine Leerzeichen, Doppelpunkte oder Semikolons enthalten."
|
||||
|
||||
translate german strings:
|
||||
|
||||
# game/distribute.rpy:313
|
||||
old "Nothing to do."
|
||||
new "Nichts zu tun."
|
||||
|
||||
# game/distribute.rpy:317
|
||||
old "Scanning project files..."
|
||||
new "Projektdateien werden geprüft …"
|
||||
|
||||
# game/distribute.rpy:324
|
||||
old "Scanning Ren'Py files..."
|
||||
new "Ren’Py-Dateien werden geprüft …"
|
||||
|
||||
# game/distribute.rpy:474
|
||||
old "Archiving files..."
|
||||
new "Dateien werden archiviert …"
|
||||
|
||||
# game/distribute.rpy:722
|
||||
old "Writing the [variant] [format] package."
|
||||
new "Das [variant] [format] Package wird erstellt."
|
||||
|
||||
# game/distribute.rpy:735
|
||||
old "Making the [variant] update zsync file."
|
||||
new "Die [variant] Update-zsync-Datei wird erstellt."
|
||||
|
||||
# game/distribute.rpy:831
|
||||
old "Processed {b}[complete]{/b} of {b}[total]{/b} files."
|
||||
new "{b}[complete]{/b} von {b}[total]{/b} Dateien verarbeitet."
|
||||
|
||||
# game/distribute.rpy:892
|
||||
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 "Alle Packages wurden erstellt.\n\nAufgrund von Zugriffsinformationen ist das Entpacken und Neupacken der Linux und Macintosh Veröffentlichungen unter Windows nicht unterstützt."
|
||||
|
||||
# game/distribute.rpy:358
|
||||
old "No packages are selected, so there's nothing to do."
|
||||
new "Keine Packages wurden ausgewählt."
|
||||
|
||||
# game/distribute.rpy:335
|
||||
old "Building distributions failed:\n\nThe build.directory_name variable may not include the space, colon, or semicolon characters."
|
||||
new "Erstellen von Veröffentlichungen gescheiter:\n\nDie build.directory_name Variable darf keine Leerzeichen, Doppelpunkte oder Semikolons enthalten."
|
||||
|
||||
|
||||
@@ -1,45 +1,45 @@
|
||||
translate german strings:
|
||||
|
||||
# game/distribute_gui.rpy:139
|
||||
old "Build Distributions: [project.current.name!q]"
|
||||
new "Erstellt Veröffentlichung: [project.current.name!q]"
|
||||
|
||||
# game/distribute_gui.rpy:154
|
||||
old "Directory Name:"
|
||||
new "Verzeichnisname:"
|
||||
|
||||
# game/distribute_gui.rpy:158
|
||||
old "Executable Name:"
|
||||
new "Programmdateiname:"
|
||||
|
||||
# game/distribute_gui.rpy:167
|
||||
old "Actions:"
|
||||
new "Aktionen:"
|
||||
|
||||
# game/distribute_gui.rpy:175
|
||||
old "Edit options.rpy"
|
||||
new "options.rpy bearbeiten"
|
||||
|
||||
# game/distribute_gui.rpy:176
|
||||
old "Refresh"
|
||||
new "Aktualisieren"
|
||||
|
||||
# game/distribute_gui.rpy:193
|
||||
old "Build Packages:"
|
||||
new "Packages erstellen:"
|
||||
|
||||
# game/distribute_gui.rpy:208
|
||||
old "Build Updates"
|
||||
new "Aktualisierungen erstellen"
|
||||
|
||||
# game/distribute_gui.rpy:212
|
||||
old "Build"
|
||||
new "Erstellen"
|
||||
|
||||
# game/distribute_gui.rpy:219
|
||||
old "Errors were detected when running the project. Please ensure the project runs without errors before building distributions."
|
||||
new "Fehler wurden beim Starten des Projekts gefunden. Bitte stellen Sie sicher, dass das Projekt ohne Fehler läuft, bevor Sie Veröffentlichungen erstellen."
|
||||
|
||||
# game/distribute_gui.rpy:236
|
||||
old "Your project does not contain build information. Would you like to add build information to the end of options.rpy?"
|
||||
new "Ihr Projekt enthält keine Erstellinformationen. Würden Sie gerne Erstellinformationen am Ende der options.rpy-Datei einfügen?"
|
||||
translate german strings:
|
||||
|
||||
# game/distribute_gui.rpy:139
|
||||
old "Build Distributions: [project.current.name!q]"
|
||||
new "Erstellt Veröffentlichung: [project.current.name!q]"
|
||||
|
||||
# game/distribute_gui.rpy:154
|
||||
old "Directory Name:"
|
||||
new "Verzeichnisname:"
|
||||
|
||||
# game/distribute_gui.rpy:158
|
||||
old "Executable Name:"
|
||||
new "Programmdateiname:"
|
||||
|
||||
# game/distribute_gui.rpy:167
|
||||
old "Actions:"
|
||||
new "Aktionen:"
|
||||
|
||||
# game/distribute_gui.rpy:175
|
||||
old "Edit options.rpy"
|
||||
new "options.rpy bearbeiten"
|
||||
|
||||
# game/distribute_gui.rpy:176
|
||||
old "Refresh"
|
||||
new "Aktualisieren"
|
||||
|
||||
# game/distribute_gui.rpy:193
|
||||
old "Build Packages:"
|
||||
new "Packages erstellen:"
|
||||
|
||||
# game/distribute_gui.rpy:208
|
||||
old "Build Updates"
|
||||
new "Aktualisierungen erstellen"
|
||||
|
||||
# game/distribute_gui.rpy:212
|
||||
old "Build"
|
||||
new "Erstellen"
|
||||
|
||||
# game/distribute_gui.rpy:219
|
||||
old "Errors were detected when running the project. Please ensure the project runs without errors before building distributions."
|
||||
new "Fehler wurden beim Starten des Projekts gefunden. Bitte stellen Sie sicher, dass das Projekt ohne Fehler läuft, bevor Sie Veröffentlichungen erstellen."
|
||||
|
||||
# game/distribute_gui.rpy:236
|
||||
old "Your project does not contain build information. Would you like to add build information to the end of options.rpy?"
|
||||
new "Ihr Projekt enthält keine Erstellinformationen. Würden Sie gerne Erstellinformationen am Ende der options.rpy-Datei einfügen?"
|
||||
|
||||
@@ -1,56 +1,56 @@
|
||||
translate german strings:
|
||||
|
||||
# game/editor.rpy:120
|
||||
old "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input."
|
||||
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."
|
||||
|
||||
# game/editor.rpy:121
|
||||
old "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input. On Linux, Editra requires wxPython."
|
||||
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."
|
||||
|
||||
# game/editor.rpy:137
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
new "Dies ist vermutlich passiert, weil wxPython nicht auf Ihrem System installiert ist."
|
||||
|
||||
# game/editor.rpy:144
|
||||
old "Up to 22 MB download required."
|
||||
new "Etwa 22 MB benötigt."
|
||||
|
||||
# game/editor.rpy:157
|
||||
old "1.8 MB download required."
|
||||
new "1,8 MB benötigt."
|
||||
|
||||
# game/editor.rpy:158
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
new "Dies ist vermutlich passiert, weil Java nicht auf Ihrem System installiert ist."
|
||||
|
||||
# game/editor.rpy:327
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
new "Ein Fehler ist beim Starten des Texteditors aufgetreten:\n[exception!q]"
|
||||
|
||||
# game/editor.rpy:378
|
||||
old "Select Editor"
|
||||
new "Editor auswählen"
|
||||
|
||||
# game/editor.rpy:393
|
||||
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 "Ein Texeditor ist ein Programm, das verwendet wird, um Ren’Py Skript-Dateien zu bearbeiten. Hier können Sie den Editor auswählen, den Ren’Py verwenden soll. Wenn dieser noch nicht installiert ist, wird er automatisch heruntergeladen und installiert."
|
||||
|
||||
# game/editor.rpy:415
|
||||
old "Cancel"
|
||||
new "Abbrechen"
|
||||
|
||||
old "A mature editor that requires Java."
|
||||
new "Ein fortgeschrittener Editor, der Java benötigt."
|
||||
|
||||
old "System Editor"
|
||||
new "Systemeditor"
|
||||
|
||||
old "Invokes the editor your operating system has associated with .rpy files."
|
||||
new "Startet den Editor, den dein Betriebssystem mit .rpy-Dateien assoziiert."
|
||||
|
||||
old "None"
|
||||
new "Keinen"
|
||||
|
||||
old "Prevents Ren'Py from opening a text editor."
|
||||
new "Verhindert, dass Ren’Py einen Texteditor öffnet."
|
||||
translate german strings:
|
||||
|
||||
# game/editor.rpy:120
|
||||
old "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input."
|
||||
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."
|
||||
|
||||
# game/editor.rpy:121
|
||||
old "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input. On Linux, Editra requires wxPython."
|
||||
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."
|
||||
|
||||
# game/editor.rpy:137
|
||||
old "This may have occured because wxPython is not installed on this system."
|
||||
new "Dies ist vermutlich passiert, weil wxPython nicht auf Ihrem System installiert ist."
|
||||
|
||||
# game/editor.rpy:144
|
||||
old "Up to 22 MB download required."
|
||||
new "Etwa 22 MB benötigt."
|
||||
|
||||
# game/editor.rpy:157
|
||||
old "1.8 MB download required."
|
||||
new "1,8 MB benötigt."
|
||||
|
||||
# game/editor.rpy:158
|
||||
old "This may have occured because Java is not installed on this system."
|
||||
new "Dies ist vermutlich passiert, weil Java nicht auf Ihrem System installiert ist."
|
||||
|
||||
# game/editor.rpy:327
|
||||
old "An exception occured while launching the text editor:\n[exception!q]"
|
||||
new "Ein Fehler ist beim Starten des Texteditors aufgetreten:\n[exception!q]"
|
||||
|
||||
# game/editor.rpy:378
|
||||
old "Select Editor"
|
||||
new "Editor auswählen"
|
||||
|
||||
# game/editor.rpy:393
|
||||
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 "Ein Texeditor ist ein Programm, das verwendet wird, um Ren’Py Skript-Dateien zu bearbeiten. Hier können Sie den Editor auswählen, den Ren’Py verwenden soll. Wenn dieser noch nicht installiert ist, wird er automatisch heruntergeladen und installiert."
|
||||
|
||||
# game/editor.rpy:415
|
||||
old "Cancel"
|
||||
new "Abbrechen"
|
||||
|
||||
old "A mature editor that requires Java."
|
||||
new "Ein fortgeschrittener Editor, der Java benötigt."
|
||||
|
||||
old "System Editor"
|
||||
new "Systemeditor"
|
||||
|
||||
old "Invokes the editor your operating system has associated with .rpy files."
|
||||
new "Startet den Editor, den dein Betriebssystem mit .rpy-Dateien assoziiert."
|
||||
|
||||
old "None"
|
||||
new "Keinen"
|
||||
|
||||
old "Prevents Ren'Py from opening a text editor."
|
||||
new "Verhindert, dass Ren’Py einen Texteditor öffnet."
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
translate german strings:
|
||||
|
||||
# game/front_page.rpy:90
|
||||
old "Launch Project"
|
||||
new "Projekt starten"
|
||||
|
||||
# game/front_page.rpy:204
|
||||
old "Checking script for potential problems..."
|
||||
new "Überprüft Script auf potentielle Probleme …"
|
||||
|
||||
# game/front_page.rpy:219
|
||||
old "Deleting persistent data..."
|
||||
new "Löscht Persistent-Dateien …"
|
||||
|
||||
# game/front_page.rpy:204
|
||||
old "Android"
|
||||
new "Android"
|
||||
|
||||
# game/front_page.rpy:206
|
||||
old "Extract Dialogue"
|
||||
new "Dialoge extrahieren"
|
||||
|
||||
# game/front_page.rpy:144
|
||||
old "[p.name!q] (template)"
|
||||
new "[p.name!q] (Vorlage)"
|
||||
|
||||
translate german strings:
|
||||
|
||||
# game/front_page.rpy:90
|
||||
old "Launch Project"
|
||||
new "Projekt starten"
|
||||
|
||||
# game/front_page.rpy:204
|
||||
old "Checking script for potential problems..."
|
||||
new "Überprüft Script auf potentielle Probleme …"
|
||||
|
||||
# game/front_page.rpy:219
|
||||
old "Deleting persistent data..."
|
||||
new "Löscht Persistent-Dateien …"
|
||||
|
||||
# game/front_page.rpy:204
|
||||
old "Android"
|
||||
new "Android"
|
||||
|
||||
# game/front_page.rpy:206
|
||||
old "Extract Dialogue"
|
||||
new "Dialoge extrahieren"
|
||||
|
||||
# game/front_page.rpy:144
|
||||
old "[p.name!q] (template)"
|
||||
new "[p.name!q] (Vorlage)"
|
||||
|
||||
|
||||
@@ -1,85 +1,85 @@
|
||||
translate german strings:
|
||||
|
||||
# game/interface.rpy:89
|
||||
old "Documentation"
|
||||
new "Dokumentation"
|
||||
|
||||
# game/interface.rpy:90
|
||||
old "Ren'Py Website"
|
||||
new "Ren’Py Webseite"
|
||||
|
||||
# game/interface.rpy:91
|
||||
old "Ren'Py Games List"
|
||||
new "Ren’Py Spieleliste"
|
||||
|
||||
# game/interface.rpy:92
|
||||
old "About"
|
||||
new "Über"
|
||||
|
||||
# game/interface.rpy:99
|
||||
old "update"
|
||||
new "Aktualisieren"
|
||||
|
||||
# game/interface.rpy:101
|
||||
old "preferences"
|
||||
new "Einstellungen"
|
||||
|
||||
# game/interface.rpy:102
|
||||
old "quit"
|
||||
new "Beenden"
|
||||
|
||||
# game/interface.rpy:149
|
||||
old "Yes"
|
||||
new "Ja"
|
||||
|
||||
# game/interface.rpy:151
|
||||
old "No"
|
||||
new "Nein"
|
||||
|
||||
# game/interface.rpy:181
|
||||
old "Due to package format limitations, non-ASCII file and directory names are not allowed."
|
||||
new "Aufgrund von Formateinschränkungen sind nicht-ASCII Datei- und Verzeichnisnamen nicht erlaubt."
|
||||
|
||||
# game/interface.rpy:183
|
||||
old "[title]"
|
||||
new "[title]"
|
||||
|
||||
# game/interface.rpy:248
|
||||
old "ERROR"
|
||||
new "FEHLER"
|
||||
|
||||
# game/interface.rpy:280
|
||||
old "While [what!q], an error occured:"
|
||||
new "Während [what!q] ist ein Fehler aufgetreten:"
|
||||
|
||||
# game/interface.rpy:281
|
||||
old "[exception!q]"
|
||||
new "[exception!q]"
|
||||
|
||||
# game/interface.rpy:298
|
||||
old "Text input may not contain the {{ or [[ characters."
|
||||
new "Die Texteingabe darf keine {{ oder [[ enthalten."
|
||||
|
||||
# game/interface.rpy:303
|
||||
old "File and directory names may not contain / or \\."
|
||||
new "Datei- und Verzeichnisnamen dürfen keine / oder \\ enthalten."
|
||||
|
||||
# game/interface.rpy:309
|
||||
old "File and directory names must consist of ASCII characters."
|
||||
new "Datei- und Verzeichnisnamen müssen aus ASCII-Buchstaben bestehen."
|
||||
|
||||
# game/interface.rpy:330
|
||||
old "INFORMATION"
|
||||
new "INFORMATION"
|
||||
|
||||
# game/interface.rpy:373
|
||||
old "PROCESSING"
|
||||
new "VERARBEITUNG"
|
||||
|
||||
# game/interface.rpy:390
|
||||
old "QUESTION"
|
||||
new "FRAGE"
|
||||
|
||||
# game/interface.rpy:451
|
||||
old "CHOICE"
|
||||
new "AUSWAHL"
|
||||
translate german strings:
|
||||
|
||||
# game/interface.rpy:89
|
||||
old "Documentation"
|
||||
new "Dokumentation"
|
||||
|
||||
# game/interface.rpy:90
|
||||
old "Ren'Py Website"
|
||||
new "Ren’Py Webseite"
|
||||
|
||||
# game/interface.rpy:91
|
||||
old "Ren'Py Games List"
|
||||
new "Ren’Py Spieleliste"
|
||||
|
||||
# game/interface.rpy:92
|
||||
old "About"
|
||||
new "Über"
|
||||
|
||||
# game/interface.rpy:99
|
||||
old "update"
|
||||
new "Aktualisieren"
|
||||
|
||||
# game/interface.rpy:101
|
||||
old "preferences"
|
||||
new "Einstellungen"
|
||||
|
||||
# game/interface.rpy:102
|
||||
old "quit"
|
||||
new "Beenden"
|
||||
|
||||
# game/interface.rpy:149
|
||||
old "Yes"
|
||||
new "Ja"
|
||||
|
||||
# game/interface.rpy:151
|
||||
old "No"
|
||||
new "Nein"
|
||||
|
||||
# game/interface.rpy:181
|
||||
old "Due to package format limitations, non-ASCII file and directory names are not allowed."
|
||||
new "Aufgrund von Formateinschränkungen sind nicht-ASCII Datei- und Verzeichnisnamen nicht erlaubt."
|
||||
|
||||
# game/interface.rpy:183
|
||||
old "[title]"
|
||||
new "[title]"
|
||||
|
||||
# game/interface.rpy:248
|
||||
old "ERROR"
|
||||
new "FEHLER"
|
||||
|
||||
# game/interface.rpy:280
|
||||
old "While [what!q], an error occured:"
|
||||
new "Während [what!q] ist ein Fehler aufgetreten:"
|
||||
|
||||
# game/interface.rpy:281
|
||||
old "[exception!q]"
|
||||
new "[exception!q]"
|
||||
|
||||
# game/interface.rpy:298
|
||||
old "Text input may not contain the {{ or [[ characters."
|
||||
new "Die Texteingabe darf keine {{ oder [[ enthalten."
|
||||
|
||||
# game/interface.rpy:303
|
||||
old "File and directory names may not contain / or \\."
|
||||
new "Datei- und Verzeichnisnamen dürfen keine / oder \\ enthalten."
|
||||
|
||||
# game/interface.rpy:309
|
||||
old "File and directory names must consist of ASCII characters."
|
||||
new "Datei- und Verzeichnisnamen müssen aus ASCII-Buchstaben bestehen."
|
||||
|
||||
# game/interface.rpy:330
|
||||
old "INFORMATION"
|
||||
new "INFORMATION"
|
||||
|
||||
# game/interface.rpy:373
|
||||
old "PROCESSING"
|
||||
new "VERARBEITUNG"
|
||||
|
||||
# game/interface.rpy:390
|
||||
old "QUESTION"
|
||||
new "FRAGE"
|
||||
|
||||
# game/interface.rpy:451
|
||||
old "CHOICE"
|
||||
new "AUSWAHL"
|
||||
|
||||
@@ -1,69 +1,69 @@
|
||||
translate german strings:
|
||||
|
||||
# game/navigation.rpy:150
|
||||
old "Navigate: [project.current.name]"
|
||||
new "Navigieren: [project.current.name]"
|
||||
|
||||
# game/navigation.rpy:159
|
||||
old "Order: "
|
||||
new "Reihenfolge:"
|
||||
|
||||
# game/navigation.rpy:160
|
||||
old "alphabetical"
|
||||
new "Alphabetisch"
|
||||
|
||||
# game/navigation.rpy:162
|
||||
old "by-file"
|
||||
new "Nach Datei"
|
||||
|
||||
# game/navigation.rpy:164
|
||||
old "natural"
|
||||
new "Natürlich"
|
||||
|
||||
# game/navigation.rpy:168
|
||||
old "refresh"
|
||||
new "Aktualisieren"
|
||||
|
||||
# game/navigation.rpy:176
|
||||
old "Category:"
|
||||
new "Kategorie"
|
||||
|
||||
# game/navigation.rpy:178
|
||||
old "files"
|
||||
new "Dateien"
|
||||
|
||||
# game/navigation.rpy:179
|
||||
old "labels"
|
||||
new "Labels"
|
||||
|
||||
# game/navigation.rpy:180
|
||||
old "defines"
|
||||
new "Defines"
|
||||
|
||||
# game/navigation.rpy:181
|
||||
old "transforms"
|
||||
new "Transforms"
|
||||
|
||||
# game/navigation.rpy:182
|
||||
old "screens"
|
||||
new "Bildschirme"
|
||||
|
||||
# game/navigation.rpy:183
|
||||
old "callables"
|
||||
new "Callables"
|
||||
|
||||
# game/navigation.rpy:184
|
||||
old "TODOs"
|
||||
new "TODOs"
|
||||
|
||||
# game/navigation.rpy:223
|
||||
old "+ Add script file"
|
||||
new "+ Script-Datei hinzufügen"
|
||||
|
||||
# game/navigation.rpy:231
|
||||
old "No TODO comments found.\n\nTo create one, include \"# TODO\" in your script."
|
||||
new "Keine TODO-Kommentare gefunden.\n\nUm einen zu erstellen, bauen Sie „# TODO“ in Ihr Script ein."
|
||||
|
||||
# game/navigation.rpy:238
|
||||
old "The list of names is empty."
|
||||
new "Die Namensliste ist leer."
|
||||
translate german strings:
|
||||
|
||||
# game/navigation.rpy:150
|
||||
old "Navigate: [project.current.name]"
|
||||
new "Navigieren: [project.current.name]"
|
||||
|
||||
# game/navigation.rpy:159
|
||||
old "Order: "
|
||||
new "Reihenfolge:"
|
||||
|
||||
# game/navigation.rpy:160
|
||||
old "alphabetical"
|
||||
new "Alphabetisch"
|
||||
|
||||
# game/navigation.rpy:162
|
||||
old "by-file"
|
||||
new "Nach Datei"
|
||||
|
||||
# game/navigation.rpy:164
|
||||
old "natural"
|
||||
new "Natürlich"
|
||||
|
||||
# game/navigation.rpy:168
|
||||
old "refresh"
|
||||
new "Aktualisieren"
|
||||
|
||||
# game/navigation.rpy:176
|
||||
old "Category:"
|
||||
new "Kategorie"
|
||||
|
||||
# game/navigation.rpy:178
|
||||
old "files"
|
||||
new "Dateien"
|
||||
|
||||
# game/navigation.rpy:179
|
||||
old "labels"
|
||||
new "Labels"
|
||||
|
||||
# game/navigation.rpy:180
|
||||
old "defines"
|
||||
new "Defines"
|
||||
|
||||
# game/navigation.rpy:181
|
||||
old "transforms"
|
||||
new "Transforms"
|
||||
|
||||
# game/navigation.rpy:182
|
||||
old "screens"
|
||||
new "Bildschirme"
|
||||
|
||||
# game/navigation.rpy:183
|
||||
old "callables"
|
||||
new "Callables"
|
||||
|
||||
# game/navigation.rpy:184
|
||||
old "TODOs"
|
||||
new "TODOs"
|
||||
|
||||
# game/navigation.rpy:223
|
||||
old "+ Add script file"
|
||||
new "+ Script-Datei hinzufügen"
|
||||
|
||||
# game/navigation.rpy:231
|
||||
old "No TODO comments found.\n\nTo create one, include \"# TODO\" in your script."
|
||||
new "Keine TODO-Kommentare gefunden.\n\nUm einen zu erstellen, bauen Sie „# TODO“ in Ihr Script ein."
|
||||
|
||||
# game/navigation.rpy:238
|
||||
old "The list of names is empty."
|
||||
new "Die Namensliste ist leer."
|
||||
|
||||
@@ -1,38 +1,38 @@
|
||||
translate german strings:
|
||||
|
||||
# game/new_project.rpy:22
|
||||
old "Choose Project Template"
|
||||
new "Projektvorlage auswählen"
|
||||
|
||||
# game/new_project.rpy:40
|
||||
old "Please select a template to use for your new project. Ren'Py ships with a default template that creates an English-language game with standard screens."
|
||||
new "Bitte wählen Sie eine Vorlage für Ihr neues Projekt. Ren’Py hat eine Standard-Vorlage, die ein englischsprachiges Spiel mit Standardmenüs erstellt."
|
||||
|
||||
# game/new_project.rpy:55
|
||||
old "PROJECT NAME"
|
||||
new "PROJEKT NAME"
|
||||
|
||||
# game/new_project.rpy:56
|
||||
old "Please enter the name of your project:"
|
||||
new "Bitte geben Sie den Namen Ihres Projekts ein:"
|
||||
|
||||
# game/new_project.rpy:62
|
||||
old "The project name may not be empty."
|
||||
new "Der Projektname kann nicht leer sein."
|
||||
|
||||
# game/new_project.rpy:67
|
||||
old "[project_name!q] already exists. Please choose a different project name."
|
||||
new "[project_name!q] existiert bereits. Bitte wählen Sie einen anderen Projektnamen."
|
||||
|
||||
# game/new_project.rpy:70
|
||||
old "[project_dir!q] already exists. Please choose a different project name."
|
||||
new "[project_dir!q] existiert bereits. Bitte wählen Sie einen anderen Projektnamen."
|
||||
|
||||
# game/new_project.rpy:40
|
||||
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 "Bitte wählen Sie eine Vorlage für Ihr neues Projekt. Die Vorlage legt die Standard-Schriftart fest und die Sprache der Benutzeroberfläche. Wenn Ihre Sprache nicht verfügbar ist, wählen Sie bitte 'english'."
|
||||
|
||||
# game/new_project.rpy:71
|
||||
old "The projects directory could not be set. Giving up."
|
||||
new "Das Projektverzeichnis konnte nicht festgelegt werden."
|
||||
|
||||
translate german strings:
|
||||
|
||||
# game/new_project.rpy:22
|
||||
old "Choose Project Template"
|
||||
new "Projektvorlage auswählen"
|
||||
|
||||
# game/new_project.rpy:40
|
||||
old "Please select a template to use for your new project. Ren'Py ships with a default template that creates an English-language game with standard screens."
|
||||
new "Bitte wählen Sie eine Vorlage für Ihr neues Projekt. Ren’Py hat eine Standard-Vorlage, die ein englischsprachiges Spiel mit Standardmenüs erstellt."
|
||||
|
||||
# game/new_project.rpy:55
|
||||
old "PROJECT NAME"
|
||||
new "PROJEKT NAME"
|
||||
|
||||
# game/new_project.rpy:56
|
||||
old "Please enter the name of your project:"
|
||||
new "Bitte geben Sie den Namen Ihres Projekts ein:"
|
||||
|
||||
# game/new_project.rpy:62
|
||||
old "The project name may not be empty."
|
||||
new "Der Projektname kann nicht leer sein."
|
||||
|
||||
# game/new_project.rpy:67
|
||||
old "[project_name!q] already exists. Please choose a different project name."
|
||||
new "[project_name!q] existiert bereits. Bitte wählen Sie einen anderen Projektnamen."
|
||||
|
||||
# game/new_project.rpy:70
|
||||
old "[project_dir!q] already exists. Please choose a different project name."
|
||||
new "[project_dir!q] existiert bereits. Bitte wählen Sie einen anderen Projektnamen."
|
||||
|
||||
# game/new_project.rpy:40
|
||||
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 "Bitte wählen Sie eine Vorlage für Ihr neues Projekt. Die Vorlage legt die Standard-Schriftart fest und die Sprache der Benutzeroberfläche. Wenn Ihre Sprache nicht verfügbar ist, wählen Sie bitte 'english'."
|
||||
|
||||
# game/new_project.rpy:71
|
||||
old "The projects directory could not be set. Giving up."
|
||||
new "Das Projektverzeichnis konnte nicht festgelegt werden."
|
||||
|
||||
|
||||
@@ -1,57 +1,57 @@
|
||||
translate german strings:
|
||||
|
||||
# game/preferences.rpy:40
|
||||
old "Launcher Preferences"
|
||||
new "Launcher Einstellungen"
|
||||
|
||||
# game/preferences.rpy:61
|
||||
old "Projects Directory:"
|
||||
new "Projektverzeichnis:"
|
||||
|
||||
# game/preferences.rpy:68
|
||||
old "[persistent.projects_directory!q]"
|
||||
new "[persistent.projects_directory!q]"
|
||||
|
||||
# game/preferences.rpy:70
|
||||
old "Not Set"
|
||||
new "Nicht eingestellt"
|
||||
|
||||
# game/preferences.rpy:84
|
||||
old "Text Editor:"
|
||||
new "Texteditor:"
|
||||
|
||||
# game/preferences.rpy:106
|
||||
old "Update Channel:"
|
||||
new "Aktualisierungskanal:"
|
||||
|
||||
# game/preferences.rpy:126
|
||||
old "Navigation Options:"
|
||||
new "Navigationsoptionen:"
|
||||
|
||||
# game/preferences.rpy:130
|
||||
old "Include private names"
|
||||
new "Vertrauliche Namen einschließen"
|
||||
|
||||
# game/preferences.rpy:131
|
||||
old "Include library names"
|
||||
new "Programmnamen einschließen"
|
||||
|
||||
# game/preferences.rpy:141
|
||||
old "Launcher Options:"
|
||||
new "Launcher Optionen:"
|
||||
|
||||
# game/preferences.rpy:145
|
||||
old "Hardware rendering"
|
||||
new "Hardware Wiedergabe"
|
||||
|
||||
# game/preferences.rpy:148
|
||||
old "Console output"
|
||||
new "Konsolenausgabe"
|
||||
|
||||
# game/preferences.rpy:169
|
||||
old "Open launcher project"
|
||||
new "Launcherprojekt öffnen"
|
||||
|
||||
# game/preferences.rpy:183
|
||||
old "Language:"
|
||||
new "Sprache:"
|
||||
translate german strings:
|
||||
|
||||
# game/preferences.rpy:40
|
||||
old "Launcher Preferences"
|
||||
new "Launcher Einstellungen"
|
||||
|
||||
# game/preferences.rpy:61
|
||||
old "Projects Directory:"
|
||||
new "Projektverzeichnis:"
|
||||
|
||||
# game/preferences.rpy:68
|
||||
old "[persistent.projects_directory!q]"
|
||||
new "[persistent.projects_directory!q]"
|
||||
|
||||
# game/preferences.rpy:70
|
||||
old "Not Set"
|
||||
new "Nicht eingestellt"
|
||||
|
||||
# game/preferences.rpy:84
|
||||
old "Text Editor:"
|
||||
new "Texteditor:"
|
||||
|
||||
# game/preferences.rpy:106
|
||||
old "Update Channel:"
|
||||
new "Aktualisierungskanal:"
|
||||
|
||||
# game/preferences.rpy:126
|
||||
old "Navigation Options:"
|
||||
new "Navigationsoptionen:"
|
||||
|
||||
# game/preferences.rpy:130
|
||||
old "Include private names"
|
||||
new "Vertrauliche Namen einschließen"
|
||||
|
||||
# game/preferences.rpy:131
|
||||
old "Include library names"
|
||||
new "Programmnamen einschließen"
|
||||
|
||||
# game/preferences.rpy:141
|
||||
old "Launcher Options:"
|
||||
new "Launcher Optionen:"
|
||||
|
||||
# game/preferences.rpy:145
|
||||
old "Hardware rendering"
|
||||
new "Hardware Wiedergabe"
|
||||
|
||||
# game/preferences.rpy:148
|
||||
old "Console output"
|
||||
new "Konsolenausgabe"
|
||||
|
||||
# game/preferences.rpy:169
|
||||
old "Open launcher project"
|
||||
new "Launcherprojekt öffnen"
|
||||
|
||||
# game/preferences.rpy:183
|
||||
old "Language:"
|
||||
new "Sprache:"
|
||||
|
||||
@@ -1,54 +1,54 @@
|
||||
translate german strings:
|
||||
|
||||
# game/project.rpy:199
|
||||
old "Ren'Py is scanning the project..."
|
||||
new "Ren’Py scannt das Projekt …"
|
||||
|
||||
# game/project.rpy:488
|
||||
old "PROJECTS DIRECTORY"
|
||||
new "PROJEKTVERZEICHNIS"
|
||||
|
||||
# game/project.rpy:488
|
||||
old "Please choose the projects directory."
|
||||
new "Bitte wählen Sie das Projektverzeichnis."
|
||||
|
||||
# game/project.rpy:488
|
||||
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 "Dieser Launcher scannt nach Projekten in diesem Verzeichnis, erstellt neue Projekte und platziert erstellte Projekte dort."
|
||||
|
||||
# game/project.rpy:536
|
||||
old "Ren'Py was unable to run zenity to choose the projects directory."
|
||||
new "Ren’Py konnte Zenity nicht starten, um das Projektverzeichnis auszuwählen."
|
||||
|
||||
# game/project.rpy:540
|
||||
old "Ren'Py has set the projects directory to:"
|
||||
new "Ren’Py hat das Projektverzeichnis verschoben in:"
|
||||
|
||||
# game/project.rpy:485
|
||||
old "Please choose the projects directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"
|
||||
new "Bitte wählen Sie das Projektverzeichnis mit dem Verzeichnisauswähler.\n{b}Der Verzeichnisauswähler könnte hinter diesem Fenster geöffnet sein.{/b}"
|
||||
|
||||
# game/project.rpy:525
|
||||
old "Ren'Py was unable to run python with tkinter to choose the projects directory."
|
||||
new "Ren’Py konnte Python mit tkinter zur Projektsverzeichniswahl nicht starten."
|
||||
|
||||
# game/project.rpy:48
|
||||
old "After making changes to the script, press shift+R to reload your game."
|
||||
new "Nachdem Sie das Skript verändert haben, drücken Sie Shift + R, um Ihr Spiel neuzustarten."
|
||||
|
||||
# game/project.rpy:50
|
||||
old "Press shift+D to access the developer menu."
|
||||
new "Drücken Sie Shift + D, um das Entwicklermenü aufzurufen."
|
||||
|
||||
# game/project.rpy:219
|
||||
old "Launching the project failed."
|
||||
new "Starten des Projekts gescheitert."
|
||||
|
||||
# game/project.rpy:219
|
||||
old "Please ensure that your project launches normally before running this command."
|
||||
new "Bitte stellen Sie sicher, dass Ihr Projekt normal startet, bevor Sie diesen Befehl ausführen."
|
||||
|
||||
# game/project.rpy:585
|
||||
old "Ren'Py was unable to run python with tkinter to choose the projects directory. Please install the python-tk or tkinter package."
|
||||
new "Ren’Py konnte Python mit tkinter zur Projektsverzeichniswahl nicht starten. Bitte installieren Sie python-tk oder tkinter."
|
||||
|
||||
translate german strings:
|
||||
|
||||
# game/project.rpy:199
|
||||
old "Ren'Py is scanning the project..."
|
||||
new "Ren’Py scannt das Projekt …"
|
||||
|
||||
# game/project.rpy:488
|
||||
old "PROJECTS DIRECTORY"
|
||||
new "PROJEKTVERZEICHNIS"
|
||||
|
||||
# game/project.rpy:488
|
||||
old "Please choose the projects directory."
|
||||
new "Bitte wählen Sie das Projektverzeichnis."
|
||||
|
||||
# game/project.rpy:488
|
||||
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 "Dieser Launcher scannt nach Projekten in diesem Verzeichnis, erstellt neue Projekte und platziert erstellte Projekte dort."
|
||||
|
||||
# game/project.rpy:536
|
||||
old "Ren'Py was unable to run zenity to choose the projects directory."
|
||||
new "Ren’Py konnte Zenity nicht starten, um das Projektverzeichnis auszuwählen."
|
||||
|
||||
# game/project.rpy:540
|
||||
old "Ren'Py has set the projects directory to:"
|
||||
new "Ren’Py hat das Projektverzeichnis verschoben in:"
|
||||
|
||||
# game/project.rpy:485
|
||||
old "Please choose the projects directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"
|
||||
new "Bitte wählen Sie das Projektverzeichnis mit dem Verzeichnisauswähler.\n{b}Der Verzeichnisauswähler könnte hinter diesem Fenster geöffnet sein.{/b}"
|
||||
|
||||
# game/project.rpy:525
|
||||
old "Ren'Py was unable to run python with tkinter to choose the projects directory."
|
||||
new "Ren’Py konnte Python mit tkinter zur Projektsverzeichniswahl nicht starten."
|
||||
|
||||
# game/project.rpy:48
|
||||
old "After making changes to the script, press shift+R to reload your game."
|
||||
new "Nachdem Sie das Skript verändert haben, drücken Sie Shift + R, um Ihr Spiel neuzustarten."
|
||||
|
||||
# game/project.rpy:50
|
||||
old "Press shift+D to access the developer menu."
|
||||
new "Drücken Sie Shift + D, um das Entwicklermenü aufzurufen."
|
||||
|
||||
# game/project.rpy:219
|
||||
old "Launching the project failed."
|
||||
new "Starten des Projekts gescheitert."
|
||||
|
||||
# game/project.rpy:219
|
||||
old "Please ensure that your project launches normally before running this command."
|
||||
new "Bitte stellen Sie sicher, dass Ihr Projekt normal startet, bevor Sie diesen Befehl ausführen."
|
||||
|
||||
# game/project.rpy:585
|
||||
old "Ren'Py was unable to run python with tkinter to choose the projects directory. Please install the python-tk or tkinter package."
|
||||
new "Ren’Py konnte Python mit tkinter zur Projektsverzeichniswahl nicht starten. Bitte installieren Sie python-tk oder tkinter."
|
||||
|
||||
|
||||
+195
-195
@@ -1,195 +1,195 @@
|
||||
translate german strings:
|
||||
|
||||
old "PROJECTS:"
|
||||
new "PROJEKTE:"
|
||||
|
||||
old "[p.name!q]"
|
||||
new "[p.name!q]"
|
||||
|
||||
old "An exception has occurred."
|
||||
new "Ein Fehler ist aufgetreten."
|
||||
|
||||
old "Ignore"
|
||||
new "Ignorieren"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "Tutorial"
|
||||
new "Tutorial"
|
||||
|
||||
old "The Question"
|
||||
new "The Question"
|
||||
|
||||
old "Reload"
|
||||
new "Neustarten"
|
||||
|
||||
old "Open Traceback"
|
||||
new "Traceback öffnen"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "+ Create New Project"
|
||||
new "+ Neues Projekt erstellen"
|
||||
|
||||
old "Active Project"
|
||||
new "Aktives Projekt"
|
||||
|
||||
old "Quit"
|
||||
new "Beenden"
|
||||
|
||||
old ""
|
||||
new ""
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "Open Directory"
|
||||
new "Verzeichnis öffnen"
|
||||
|
||||
old "game"
|
||||
new "Spielverzeichnis"
|
||||
|
||||
old "Quits the game."
|
||||
new "Beendet das Spiel."
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "base"
|
||||
new "Hauptverzeichnis"
|
||||
|
||||
old "Edit File"
|
||||
new "Dateien bearbeiten"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "script.rpy"
|
||||
new "script.rpy"
|
||||
|
||||
old "options.rpy"
|
||||
new "options.rpy"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "screens.rpy"
|
||||
new "screens.rpy"
|
||||
|
||||
old "All script files"
|
||||
new "Alle Dateien"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "Navigate Script"
|
||||
new "Skript navigieren"
|
||||
|
||||
old "Check Script (Lint)"
|
||||
new "Skript überprüfen (Lint)"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "Change Theme"
|
||||
new "Theme ändern"
|
||||
|
||||
old "Delete Persistent"
|
||||
new "Persistent-Dateien löschen"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "Build Distributions"
|
||||
new "Veröffentlichungen erstellen"
|
||||
|
||||
old "Generate Translations"
|
||||
new "Übersetzungen generieren"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "Editra"
|
||||
new "Editra"
|
||||
|
||||
old "[name!q]"
|
||||
new "[name!q]"
|
||||
|
||||
old " | "
|
||||
new " | "
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "I'm compiling a short test program, to see if you have a working JDK on your\nsystem.\n"
|
||||
new "Es wird ein kurzes Testprogramm erstellt, um zu testen, ob Sie ein funktionierendes JDK haben.\n"
|
||||
|
||||
old "I was unable to use javac to compile a test file. If you haven't installed\nthe Java Development Kit yet, please download it from:\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}http://www.oracle.com/technetwork/java/javase/downloads/index.html{/a}\n\nThe JDK is different from the JRE, so it's possible you have Java\nwithout having the JDK. Without a working JDK, I can't continue.\n"
|
||||
new "Es konnte javac nicht verwendet werden, um eine Testdatei zu erstellen. Wenn Sie\ndas Java Development Kit noch nicht installiert haben, laden Sie es bitte herunter:\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}http://www.oracle.com/technetwork/java/javase/downloads/index.html{/a}\n\nDas JDK unterscheidet sich vom JRE, daher ist es möglich, dass Sie Java\nohne JDK haben. Ohne ein funktionierendes JDK, kann ich nicht weitermachen.\n"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "[value!q]"
|
||||
new "[value!q]"
|
||||
|
||||
old "[description!q]"
|
||||
new "[description!q]"
|
||||
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "Press shift+O (the letter) to access the console."
|
||||
new "Drücken Sie Shift + O, um die Konsole aufzurufen."
|
||||
|
||||
old "Launching"
|
||||
new "Startet"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "Show templates"
|
||||
new "Vorlagen anzeigen"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "What is the full name of your application? This name will appear in the list of installed applications."
|
||||
new "Wie lautet der volle Titel Ihrer Anwendung? Dieser Titel wird in der Liste von installierten Anwendungen angezeigt."
|
||||
|
||||
old "[ft.text!q]"
|
||||
new "[ft.text!q]"
|
||||
|
||||
old "The JDK is present and working. Good!"
|
||||
new "Das JDK ist verfügbar und funktioniert. Gut!"
|
||||
|
||||
old "Apache ANT has already been unpacked."
|
||||
new "Apache-ANT wurde bereits entpackt."
|
||||
|
||||
old "The Android SDK has already been unpacked."
|
||||
new "Das Android-SDK wurde bereits entpackt."
|
||||
|
||||
old "The required Android packages are already installed."
|
||||
new "Die benötigten Android-Packages wurden bereits installiert."
|
||||
|
||||
old "You've already created an Android keystore, so I won't create a new one for you."
|
||||
new "Sie haben bereits einen Android-Key erstellt, es wird kein neuer erstellt."
|
||||
|
||||
old "It looks like you're ready to start packaging games."
|
||||
new "Es sieht aus, als wären Sie bereit, Spiele zu erstellen."
|
||||
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "English"
|
||||
new "English"
|
||||
|
||||
old "German"
|
||||
new "German"
|
||||
|
||||
old "Japanese"
|
||||
new "Japanese"
|
||||
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "French"
|
||||
new "French"
|
||||
|
||||
old "Spanish"
|
||||
new "Spanish"
|
||||
|
||||
old "Russian"
|
||||
new "Russian"
|
||||
|
||||
old "Arabic"
|
||||
new "Arabic"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "PROJECTS:"
|
||||
new "PROJEKTE:"
|
||||
|
||||
old "[p.name!q]"
|
||||
new "[p.name!q]"
|
||||
|
||||
old "An exception has occurred."
|
||||
new "Ein Fehler ist aufgetreten."
|
||||
|
||||
old "Ignore"
|
||||
new "Ignorieren"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "Tutorial"
|
||||
new "Tutorial"
|
||||
|
||||
old "The Question"
|
||||
new "The Question"
|
||||
|
||||
old "Reload"
|
||||
new "Neustarten"
|
||||
|
||||
old "Open Traceback"
|
||||
new "Traceback öffnen"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "+ Create New Project"
|
||||
new "+ Neues Projekt erstellen"
|
||||
|
||||
old "Active Project"
|
||||
new "Aktives Projekt"
|
||||
|
||||
old "Quit"
|
||||
new "Beenden"
|
||||
|
||||
old ""
|
||||
new ""
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "Open Directory"
|
||||
new "Verzeichnis öffnen"
|
||||
|
||||
old "game"
|
||||
new "Spielverzeichnis"
|
||||
|
||||
old "Quits the game."
|
||||
new "Beendet das Spiel."
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "base"
|
||||
new "Hauptverzeichnis"
|
||||
|
||||
old "Edit File"
|
||||
new "Dateien bearbeiten"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "script.rpy"
|
||||
new "script.rpy"
|
||||
|
||||
old "options.rpy"
|
||||
new "options.rpy"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "screens.rpy"
|
||||
new "screens.rpy"
|
||||
|
||||
old "All script files"
|
||||
new "Alle Dateien"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "Navigate Script"
|
||||
new "Skript navigieren"
|
||||
|
||||
old "Check Script (Lint)"
|
||||
new "Skript überprüfen (Lint)"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "Change Theme"
|
||||
new "Theme ändern"
|
||||
|
||||
old "Delete Persistent"
|
||||
new "Persistent-Dateien löschen"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "Build Distributions"
|
||||
new "Veröffentlichungen erstellen"
|
||||
|
||||
old "Generate Translations"
|
||||
new "Übersetzungen generieren"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "Editra"
|
||||
new "Editra"
|
||||
|
||||
old "[name!q]"
|
||||
new "[name!q]"
|
||||
|
||||
old " | "
|
||||
new " | "
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "I'm compiling a short test program, to see if you have a working JDK on your\nsystem.\n"
|
||||
new "Es wird ein kurzes Testprogramm erstellt, um zu testen, ob Sie ein funktionierendes JDK haben.\n"
|
||||
|
||||
old "I was unable to use javac to compile a test file. If you haven't installed\nthe Java Development Kit yet, please download it from:\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}http://www.oracle.com/technetwork/java/javase/downloads/index.html{/a}\n\nThe JDK is different from the JRE, so it's possible you have Java\nwithout having the JDK. Without a working JDK, I can't continue.\n"
|
||||
new "Es konnte javac nicht verwendet werden, um eine Testdatei zu erstellen. Wenn Sie\ndas Java Development Kit noch nicht installiert haben, laden Sie es bitte herunter:\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}http://www.oracle.com/technetwork/java/javase/downloads/index.html{/a}\n\nDas JDK unterscheidet sich vom JRE, daher ist es möglich, dass Sie Java\nohne JDK haben. Ohne ein funktionierendes JDK, kann ich nicht weitermachen.\n"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "[value!q]"
|
||||
new "[value!q]"
|
||||
|
||||
old "[description!q]"
|
||||
new "[description!q]"
|
||||
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "Press shift+O (the letter) to access the console."
|
||||
new "Drücken Sie Shift + O, um die Konsole aufzurufen."
|
||||
|
||||
old "Launching"
|
||||
new "Startet"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "Show templates"
|
||||
new "Vorlagen anzeigen"
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "What is the full name of your application? This name will appear in the list of installed applications."
|
||||
new "Wie lautet der volle Titel Ihrer Anwendung? Dieser Titel wird in der Liste von installierten Anwendungen angezeigt."
|
||||
|
||||
old "[ft.text!q]"
|
||||
new "[ft.text!q]"
|
||||
|
||||
old "The JDK is present and working. Good!"
|
||||
new "Das JDK ist verfügbar und funktioniert. Gut!"
|
||||
|
||||
old "Apache ANT has already been unpacked."
|
||||
new "Apache-ANT wurde bereits entpackt."
|
||||
|
||||
old "The Android SDK has already been unpacked."
|
||||
new "Das Android-SDK wurde bereits entpackt."
|
||||
|
||||
old "The required Android packages are already installed."
|
||||
new "Die benötigten Android-Packages wurden bereits installiert."
|
||||
|
||||
old "You've already created an Android keystore, so I won't create a new one for you."
|
||||
new "Sie haben bereits einen Android-Key erstellt, es wird kein neuer erstellt."
|
||||
|
||||
old "It looks like you're ready to start packaging games."
|
||||
new "Es sieht aus, als wären Sie bereit, Spiele zu erstellen."
|
||||
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "English"
|
||||
new "English"
|
||||
|
||||
old "German"
|
||||
new "German"
|
||||
|
||||
old "Japanese"
|
||||
new "Japanese"
|
||||
|
||||
|
||||
translate german strings:
|
||||
|
||||
old "French"
|
||||
new "French"
|
||||
|
||||
old "Spanish"
|
||||
new "Spanish"
|
||||
|
||||
old "Russian"
|
||||
new "Russian"
|
||||
|
||||
old "Arabic"
|
||||
new "Arabic"
|
||||
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
translate german python:
|
||||
make_style_backup()
|
||||
@@ -1,33 +1,33 @@
|
||||
translate german strings:
|
||||
|
||||
# game/translations.rpy:10
|
||||
old "Create or Update Translations"
|
||||
new "Erstellt oder aktualisiert Übersetzungen"
|
||||
|
||||
# game/translations.rpy:10
|
||||
old "Please enter the name of the language for which you want to create or update translations."
|
||||
new "Bitte geben Sie den Namen der Sprache ein, deren Übersetzung Sie erstellen oder aktualisieren möchten."
|
||||
|
||||
# game/translations.rpy:15
|
||||
old "The language name can not be the empty string."
|
||||
new "Der Name der Sprache darf nicht leer sein."
|
||||
|
||||
# game/translations.rpy:26
|
||||
old "Ren'Py is generating translations...."
|
||||
new "Ren’Py erstellt Übersetzungen …"
|
||||
|
||||
# game/translations.rpy:30
|
||||
old "Ren'Py has finished generating [language] translations."
|
||||
new "Ren’Py hat die Übersetzungen für [language] erstellt."
|
||||
|
||||
# game/translations.rpy:44
|
||||
old "What format would you like for the extracted dialogue?"
|
||||
new "In welchem Format möchten Sie die extrahierten Dialoge?"
|
||||
|
||||
# game/translations.rpy:56
|
||||
old "Ren'Py is extracting dialogue...."
|
||||
new "Ren’Py extrahiert Dialoge …"
|
||||
|
||||
# game/translations.rpy:60
|
||||
old "Ren'Py has finished extracting dialogue. The extracted dialogue can be found in dialogue.[format] in the base directory."
|
||||
new "Ren’Py hat die Dialoge fertig extrahiert. Die extrahierten Dialoge können im Hauptverzeichnis unter dialogue.[format] gefunden werden."
|
||||
translate german strings:
|
||||
|
||||
# game/translations.rpy:10
|
||||
old "Create or Update Translations"
|
||||
new "Erstellt oder aktualisiert Übersetzungen"
|
||||
|
||||
# game/translations.rpy:10
|
||||
old "Please enter the name of the language for which you want to create or update translations."
|
||||
new "Bitte geben Sie den Namen der Sprache ein, deren Übersetzung Sie erstellen oder aktualisieren möchten."
|
||||
|
||||
# game/translations.rpy:15
|
||||
old "The language name can not be the empty string."
|
||||
new "Der Name der Sprache darf nicht leer sein."
|
||||
|
||||
# game/translations.rpy:26
|
||||
old "Ren'Py is generating translations...."
|
||||
new "Ren’Py erstellt Übersetzungen …"
|
||||
|
||||
# game/translations.rpy:30
|
||||
old "Ren'Py has finished generating [language] translations."
|
||||
new "Ren’Py hat die Übersetzungen für [language] erstellt."
|
||||
|
||||
# game/translations.rpy:44
|
||||
old "What format would you like for the extracted dialogue?"
|
||||
new "In welchem Format möchten Sie die extrahierten Dialoge?"
|
||||
|
||||
# game/translations.rpy:56
|
||||
old "Ren'Py is extracting dialogue...."
|
||||
new "Ren’Py extrahiert Dialoge …"
|
||||
|
||||
# game/translations.rpy:60
|
||||
old "Ren'Py has finished extracting dialogue. The extracted dialogue can be found in dialogue.[format] in the base directory."
|
||||
new "Ren’Py hat die Dialoge fertig extrahiert. Die extrahierten Dialoge können im Hauptverzeichnis unter dialogue.[format] gefunden werden."
|
||||
|
||||
@@ -1,94 +1,94 @@
|
||||
translate german strings:
|
||||
|
||||
# game/updater.rpy:54
|
||||
old "Select Update Channel"
|
||||
new "Aktualisierungskanal auswählen"
|
||||
|
||||
# game/updater.rpy:65
|
||||
old "The update channel controls the version of Ren'Py the updater will download. Please select an update channel:"
|
||||
new "Der Aktualisierungskanal kontrolliert die Version, die Ren’py herunterlädt. Bitte wählen Sie einen Aktualisierungskanal:"
|
||||
|
||||
# game/updater.rpy:70
|
||||
old "Release"
|
||||
new "Veröffentlichungen"
|
||||
|
||||
# game/updater.rpy:76
|
||||
old "{b}Recommended.{/b} The version of Ren'Py that should be used in all newly-released games."
|
||||
new "{b}Empfohlen.{/b} Die Version von Ren’Py, die für alle neuen Spielveröffentlichungen verwendet werden sollte."
|
||||
|
||||
# game/updater.rpy:81
|
||||
old "Prerelease"
|
||||
new "Vorveröffentlichungen"
|
||||
|
||||
# game/updater.rpy:87
|
||||
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."
|
||||
new "Eine Vorschau auf die nächste Version von Ren’Py, die zu Testzwecken und mit neuen Funktionen verwendet werden kann, jedoch nicht für Veröffentlichung von Spielen geeignet ist."
|
||||
|
||||
# game/updater.rpy:93
|
||||
old "Experimental"
|
||||
new "Experimentell"
|
||||
|
||||
# game/updater.rpy:99
|
||||
old "Experimental versions of Ren'Py. You shouldn't select this channel unless asked by a Ren'Py developer."
|
||||
new "Experimentelle Versionen von Ren’Py. Sie sollten diesen Kanal nur auswählen, wenn Sie von einem Ren’Py-Entwickler dazu aufgefordert werden."
|
||||
|
||||
# game/updater.rpy:119
|
||||
old "An error has occured:"
|
||||
new "Ein Fehler ist aufgetreten:"
|
||||
|
||||
# game/updater.rpy:121
|
||||
old "Checking for updates."
|
||||
new "Überprüft auf Aktualisierungen."
|
||||
|
||||
# game/updater.rpy:123
|
||||
old "Ren'Py is up to date."
|
||||
new "Ren’Py ist aktuell"
|
||||
|
||||
# game/updater.rpy:125
|
||||
old "[u.version] is now available. Do you want to install it?"
|
||||
new "[u.version] ist nun verfügbar. Möchten Sie sie installieren?"
|
||||
|
||||
# game/updater.rpy:127
|
||||
old "Preparing to download the update."
|
||||
new "Vorbereiten, um die Aktualisierungen herunterzuladen."
|
||||
|
||||
# game/updater.rpy:129
|
||||
old "Downloading the update."
|
||||
new "Aktualisierungen werden heruntergeladen."
|
||||
|
||||
# game/updater.rpy:131
|
||||
old "Unpacking the update."
|
||||
new "Aktualisierungen werden entpackt."
|
||||
|
||||
# game/updater.rpy:133
|
||||
old "Finishing up."
|
||||
new "Abschließen."
|
||||
|
||||
# game/updater.rpy:135
|
||||
old "The update has been installed. Ren'Py will restart."
|
||||
new "Die Aktualisierungen wurden installiert. Ren’Py startet neu."
|
||||
|
||||
# game/updater.rpy:137
|
||||
old "The update has been installed."
|
||||
new "Die Aktualisierungen wurden installiert."
|
||||
|
||||
# game/updater.rpy:139
|
||||
old "The update was cancelled."
|
||||
new "Die Aktualisierungen wurde abgebrochen."
|
||||
|
||||
# game/updater.rpy:156
|
||||
old "Ren'Py Update"
|
||||
new "Ren’Py aktualisieren"
|
||||
|
||||
# game/updater.rpy:162
|
||||
old "Proceed"
|
||||
new "Fortsetzen"
|
||||
|
||||
# game/updater.rpy:129
|
||||
old "Nightly"
|
||||
new "Nightly"
|
||||
|
||||
# game/updater.rpy:135
|
||||
old "The bleeding edge of Ren'Py development. This may have the latest features, or might not run at all."
|
||||
new "Die allerneuste Ren’Py Version. Diese enthält die neusten Funktionen, könnte aber auch überhaupt nicht funktionieren."
|
||||
|
||||
translate german strings:
|
||||
|
||||
# game/updater.rpy:54
|
||||
old "Select Update Channel"
|
||||
new "Aktualisierungskanal auswählen"
|
||||
|
||||
# game/updater.rpy:65
|
||||
old "The update channel controls the version of Ren'Py the updater will download. Please select an update channel:"
|
||||
new "Der Aktualisierungskanal kontrolliert die Version, die Ren’py herunterlädt. Bitte wählen Sie einen Aktualisierungskanal:"
|
||||
|
||||
# game/updater.rpy:70
|
||||
old "Release"
|
||||
new "Veröffentlichungen"
|
||||
|
||||
# game/updater.rpy:76
|
||||
old "{b}Recommended.{/b} The version of Ren'Py that should be used in all newly-released games."
|
||||
new "{b}Empfohlen.{/b} Die Version von Ren’Py, die für alle neuen Spielveröffentlichungen verwendet werden sollte."
|
||||
|
||||
# game/updater.rpy:81
|
||||
old "Prerelease"
|
||||
new "Vorveröffentlichungen"
|
||||
|
||||
# game/updater.rpy:87
|
||||
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."
|
||||
new "Eine Vorschau auf die nächste Version von Ren’Py, die zu Testzwecken und mit neuen Funktionen verwendet werden kann, jedoch nicht für Veröffentlichung von Spielen geeignet ist."
|
||||
|
||||
# game/updater.rpy:93
|
||||
old "Experimental"
|
||||
new "Experimentell"
|
||||
|
||||
# game/updater.rpy:99
|
||||
old "Experimental versions of Ren'Py. You shouldn't select this channel unless asked by a Ren'Py developer."
|
||||
new "Experimentelle Versionen von Ren’Py. Sie sollten diesen Kanal nur auswählen, wenn Sie von einem Ren’Py-Entwickler dazu aufgefordert werden."
|
||||
|
||||
# game/updater.rpy:119
|
||||
old "An error has occured:"
|
||||
new "Ein Fehler ist aufgetreten:"
|
||||
|
||||
# game/updater.rpy:121
|
||||
old "Checking for updates."
|
||||
new "Überprüft auf Aktualisierungen."
|
||||
|
||||
# game/updater.rpy:123
|
||||
old "Ren'Py is up to date."
|
||||
new "Ren’Py ist aktuell"
|
||||
|
||||
# game/updater.rpy:125
|
||||
old "[u.version] is now available. Do you want to install it?"
|
||||
new "[u.version] ist nun verfügbar. Möchten Sie sie installieren?"
|
||||
|
||||
# game/updater.rpy:127
|
||||
old "Preparing to download the update."
|
||||
new "Vorbereiten, um die Aktualisierungen herunterzuladen."
|
||||
|
||||
# game/updater.rpy:129
|
||||
old "Downloading the update."
|
||||
new "Aktualisierungen werden heruntergeladen."
|
||||
|
||||
# game/updater.rpy:131
|
||||
old "Unpacking the update."
|
||||
new "Aktualisierungen werden entpackt."
|
||||
|
||||
# game/updater.rpy:133
|
||||
old "Finishing up."
|
||||
new "Abschließen."
|
||||
|
||||
# game/updater.rpy:135
|
||||
old "The update has been installed. Ren'Py will restart."
|
||||
new "Die Aktualisierungen wurden installiert. Ren’Py startet neu."
|
||||
|
||||
# game/updater.rpy:137
|
||||
old "The update has been installed."
|
||||
new "Die Aktualisierungen wurden installiert."
|
||||
|
||||
# game/updater.rpy:139
|
||||
old "The update was cancelled."
|
||||
new "Die Aktualisierungen wurde abgebrochen."
|
||||
|
||||
# game/updater.rpy:156
|
||||
old "Ren'Py Update"
|
||||
new "Ren’Py aktualisieren"
|
||||
|
||||
# game/updater.rpy:162
|
||||
old "Proceed"
|
||||
new "Fortsetzen"
|
||||
|
||||
# game/updater.rpy:129
|
||||
old "Nightly"
|
||||
new "Nightly"
|
||||
|
||||
# game/updater.rpy:135
|
||||
old "The bleeding edge of Ren'Py development. This may have the latest features, or might not run at all."
|
||||
new "Die allerneuste Ren’Py Version. Diese enthält die neusten Funktionen, könnte aber auch überhaupt nicht funktionieren."
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#translation: renpy/common/00action_file.rpy
|
||||
#translation: renpy/common/00action_file.rpy
|
||||
translate italian strings:
|
||||
|
||||
# renpy/common/00action_file.rpy:124
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
translate italian strings:
|
||||
translate italian strings:
|
||||
|
||||
# game/distribute.rpy:358
|
||||
old "No packages are selected, so there's nothing to do."
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
translate italian strings:
|
||||
translate italian strings:
|
||||
|
||||
# game/new_project.rpy:22
|
||||
old "Choose Project Template"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
translate italian strings:
|
||||
translate italian strings:
|
||||
|
||||
# game/project.rpy:201
|
||||
old "Launching the project failed."
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
|
||||
translate japanese strings:
|
||||
|
||||
# game/about.rpy:21
|
||||
old "[version!q]"
|
||||
new "[version!q]"
|
||||
|
||||
# game/about.rpy:25
|
||||
old "View license"
|
||||
new "ライセンス"
|
||||
|
||||
# game/about.rpy:27
|
||||
old "Back"
|
||||
new "戻る"
|
||||
|
||||
|
||||
translate japanese strings:
|
||||
|
||||
# game/about.rpy:21
|
||||
old "[version!q]"
|
||||
new "[version!q]"
|
||||
|
||||
# game/about.rpy:25
|
||||
old "View license"
|
||||
new "ライセンス"
|
||||
|
||||
# game/about.rpy:27
|
||||
old "Back"
|
||||
new "戻る"
|
||||
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
|
||||
translate japanese strings:
|
||||
|
||||
# game/add_file.rpy:7
|
||||
old "FILENAME"
|
||||
new "ファイル名"
|
||||
|
||||
# game/add_file.rpy:7
|
||||
old "Enter the name of the script file to create."
|
||||
new "作成するスクリプトファイル名を入力してください。"
|
||||
|
||||
# game/add_file.rpy:10
|
||||
old "The filename must have the .rpy extension."
|
||||
new "ファイル名は拡張子 .rpy を持つ必要があります。"
|
||||
|
||||
# game/add_file.rpy:18
|
||||
old "The file already exists."
|
||||
new "ファイルは既に存在します。"
|
||||
|
||||
# game/add_file.rpy:21
|
||||
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"
|
||||
new "# Ren'Pyは .rpy で終わるすべてのスクリプトファイルを自動的にロードします。このファイルを使用するためにはラベルを定義し、他のファイルからそこにジャンプしてください。\n"
|
||||
|
||||
|
||||
translate japanese strings:
|
||||
|
||||
# game/add_file.rpy:7
|
||||
old "FILENAME"
|
||||
new "ファイル名"
|
||||
|
||||
# game/add_file.rpy:7
|
||||
old "Enter the name of the script file to create."
|
||||
new "作成するスクリプトファイル名を入力してください。"
|
||||
|
||||
# game/add_file.rpy:10
|
||||
old "The filename must have the .rpy extension."
|
||||
new "ファイル名は拡張子 .rpy を持つ必要があります。"
|
||||
|
||||
# game/add_file.rpy:18
|
||||
old "The file already exists."
|
||||
new "ファイルは既に存在します。"
|
||||
|
||||
# game/add_file.rpy:21
|
||||
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"
|
||||
new "# Ren'Pyは .rpy で終わるすべてのスクリプトファイルを自動的にロードします。このファイルを使用するためにはラベルを定義し、他のファイルからそこにジャンプしてください。\n"
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user