rapid-router 5.4.1__py2.py3-none-any.whl → 7.6.8__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. example_project/rapid_router_test_settings.py +164 -0
  2. example_project/settings.py +152 -0
  3. example_project/urls.py +15 -0
  4. example_project/{example_project/wsgi.py → wsgi.py} +2 -1
  5. game/__init__.py +1 -1
  6. game/admin.py +43 -4
  7. game/app_settings.py +3 -7
  8. game/character.py +26 -18
  9. game/decor.py +172 -97
  10. game/end_to_end_tests/base_game_test.py +44 -33
  11. game/end_to_end_tests/editor_page.py +17 -2
  12. game/end_to_end_tests/game_page.py +127 -45
  13. game/end_to_end_tests/selenium_test_case.py +1 -20
  14. game/end_to_end_tests/test_cow_crashes.py +3 -5
  15. game/end_to_end_tests/test_language_dropdown.py +14 -0
  16. game/end_to_end_tests/test_level_editor.py +290 -0
  17. game/end_to_end_tests/test_level_failures.py +1 -1
  18. game/end_to_end_tests/test_level_selection.py +79 -0
  19. game/end_to_end_tests/test_play_through.py +240 -102
  20. game/end_to_end_tests/test_python_levels.py +44 -13
  21. game/end_to_end_tests/test_saving_workspace.py +22 -0
  22. game/forms.py +9 -2
  23. game/level_management.py +38 -29
  24. game/messages.py +1218 -203
  25. game/migrations/0001_squashed_0025_levels_ordering_pt1.py +19 -1
  26. game/migrations/0026_levels_pt2.py +13 -2
  27. game/migrations/0032_cannot_turn_left_level.py +13 -2
  28. game/migrations/0033_recursion_level.py +13 -2
  29. game/migrations/0034_joes_level.py +13 -2
  30. game/migrations/0035_disable_route_score_level_70.py +0 -2
  31. game/migrations/0036_level_score_73.py +0 -2
  32. game/migrations/0037_level_score_79.py +0 -2
  33. game/migrations/0038_level_score_40.py +0 -1
  34. game/migrations/0042_level_score_73.py +0 -2
  35. game/migrations/0048_add_cow_field_and_blocks.py +0 -2
  36. game/migrations/0049_level_score_34.py +0 -2
  37. game/migrations/0050_level_score_40.py +0 -2
  38. game/migrations/0051_level_score_49.py +0 -1
  39. game/migrations/0076_level_locked_for_class.py +19 -0
  40. game/migrations/0077_alter_level_next_level.py +52 -0
  41. game/migrations/0078_add_block_types.py +23 -0
  42. game/migrations/0079_populate_block_type_add_cow_blocks.py +60 -0
  43. game/migrations/0080_level_disable_algorithm_score.py +18 -0
  44. game/migrations/0081_first_12_levels_no_algo_score.py +29 -0
  45. game/migrations/0082_level_43_solution.py +16 -0
  46. game/migrations/0083_add_cows_to_existing_levels.py +195 -0
  47. game/migrations/0084_alter_block_block_type.py +18 -0
  48. game/migrations/0085_add_new_blocks.py +53 -0
  49. game/migrations/0086_loop_levels.py +482 -0
  50. game/migrations/0087_workspace_python_view_enabled.py +18 -0
  51. game/migrations/0088_rename_episodes.py +35 -0
  52. game/migrations/0089_episodes_in_development.py +30 -0
  53. game/migrations/0090_add_missing_model_solutions.py +144 -0
  54. game/migrations/0091_disable_algo_score_if_no_model_solution.py +46 -0
  55. game/migrations/0092_disable_algo_score_in_custom_levels.py +28 -0
  56. game/migrations/0093_alter_level_character_name.py +18 -0
  57. game/migrations/0094_add_hint_lesson_subtitle_to_levels.py +28 -0
  58. game/migrations/0095_level_commands.py +18 -0
  59. game/migrations/0096_alter_level_commands.py +18 -0
  60. game/migrations/0097_add_python_den_levels.py +1515 -0
  61. game/migrations/0098_add_episode_link_fields.py +44 -0
  62. game/migrations/0099_python_episodes_links.py +103 -0
  63. game/migrations/0100_reorder_python_levels.py +179 -0
  64. game/migrations/0101_rename_episodes.py +45 -0
  65. game/migrations/0102_reoder_episodes_13_14.py +136 -0
  66. game/migrations/0103_level_1015_solution.py +26 -0
  67. game/migrations/0104_remove_level_direct_drive.py +17 -0
  68. game/migrations/0105_delete_invalid_attempts.py +18 -0
  69. game/migrations/0106_fields_to_snake_case.py +48 -0
  70. game/migrations/0107_rename_worksheet_link_episode_student_worksheet_link.py +18 -0
  71. game/migrations/0108_episode_indy_worksheet_link.py +18 -0
  72. game/migrations/0109_create_episodes_23_and_24.py +99 -0
  73. game/migrations/0110_remove_episode_indy_worksheet_link_and_more.py +100 -0
  74. game/migrations/0111_create_worksheets.py +149 -0
  75. game/migrations/0112_worksheet_locked_classes.py +21 -0
  76. game/migrations/0113_level_needs_approval.py +18 -0
  77. game/migrations/0114_default_and_non_student_levels_no_approval.py +31 -0
  78. game/migrations/0115_level_level__default_does_not_need_approval.py +22 -0
  79. game/migrations/0116_update_worksheet_video_links.py +68 -0
  80. game/migrations/0117_update_solutions_to_if_else.py +61 -0
  81. game/models.py +157 -16
  82. game/permissions.py +34 -19
  83. game/python_den_urls.py +26 -0
  84. game/random_road.py +43 -127
  85. game/serializers.py +12 -17
  86. game/static/django_reverse_js/js/reverse.js +171 -0
  87. game/static/game/css/LilitaOne-Regular.ttf +0 -0
  88. game/static/game/css/backgrounds.css +14 -10
  89. game/static/game/css/dataTables.custom.css +4 -2
  90. game/static/game/css/dataTables.jqueryui.css +561 -320
  91. game/static/game/css/editor.css +47 -0
  92. game/static/game/css/game.css +43 -49
  93. game/static/game/css/game_screen.css +116 -53
  94. game/static/game/css/jquery.dataTables.css +455 -251
  95. game/static/game/css/level_editor.css +10 -1
  96. game/static/game/css/level_selection.css +32 -3
  97. game/static/game/css/level_share.css +6 -5
  98. game/static/game/css/skulpt/codemirror.css +1 -0
  99. game/static/game/image/Python_Den_hero_student.png +0 -0
  100. game/static/game/image/Python_levels_page.svg +1954 -0
  101. game/static/game/image/characters/front_view/Electric_van.svg +448 -0
  102. game/static/game/image/characters/top_view/Electric_van.svg +448 -0
  103. game/static/game/image/characters/top_view/Sleigh.svg +436 -0
  104. game/static/game/image/decor/city/solar_panel.svg +1200 -0
  105. game/static/game/image/decor/farm/solar_panel.svg +86 -0
  106. game/static/game/image/decor/grass/solar_panel.svg +86 -0
  107. game/static/game/image/decor/snow/barn.svg +1788 -0
  108. game/static/game/image/decor/snow/cfc.svg +1050 -147
  109. game/static/game/image/decor/snow/crops.svg +7370 -0
  110. game/static/game/image/decor/snow/hospital.svg +1220 -0
  111. game/static/game/image/decor/snow/house1.svg +971 -0
  112. game/static/game/image/decor/snow/house2.svg +1574 -0
  113. game/static/game/image/decor/snow/school.svg +1071 -0
  114. game/static/game/image/decor/snow/shop.svg +3211 -0
  115. game/static/game/image/decor/snow/solar_panel.svg +173 -0
  116. game/static/game/image/electric_van.svg +448 -0
  117. game/static/game/image/icons/add_house.svg +26 -0
  118. game/static/game/image/icons/delete_house.svg +26 -0
  119. game/static/game/image/icons/description.svg +1 -0
  120. game/static/game/image/icons/hint.svg +1 -0
  121. game/static/game/image/icons/if_else.svg +3 -0
  122. game/static/game/image/icons/python.svg +1 -1
  123. game/static/game/image/if_else_example.png +0 -0
  124. game/static/game/image/pigeon.svg +684 -0
  125. game/static/game/image/python_den_header.svg +19 -0
  126. game/static/game/js/animation.js +84 -28
  127. game/static/game/js/blockly/msg/js/bg.js +52 -1
  128. game/static/game/js/blockly/msg/js/ca.js +52 -1
  129. game/static/game/js/blockly/msg/js/en-gb.js +52 -1
  130. game/static/game/js/blockly/msg/js/en.js +52 -1
  131. game/static/game/js/blockly/msg/js/es.js +52 -1
  132. game/static/game/js/blockly/msg/js/fr.js +52 -1
  133. game/static/game/js/blockly/msg/js/hi.js +52 -1
  134. game/static/game/js/blockly/msg/js/it.js +52 -1
  135. game/static/game/js/blockly/msg/js/pl.js +52 -1
  136. game/static/game/js/blockly/msg/js/pt-br.js +52 -1
  137. game/static/game/js/blockly/msg/js/ru.js +52 -1
  138. game/static/game/js/blockly/msg/js/ur.js +52 -1
  139. game/static/game/js/blocklyCompiler.js +550 -392
  140. game/static/game/js/blocklyControl.js +335 -302
  141. game/static/game/js/blocklyCustomBlocks.js +691 -458
  142. game/static/game/js/blocklyCustomisations.js +3 -1
  143. game/static/game/js/button.js +12 -0
  144. game/static/game/js/cow.js +15 -130
  145. game/static/game/js/drawing.js +313 -201
  146. game/static/game/js/editor.js +23 -0
  147. game/static/game/js/game.js +148 -139
  148. game/static/game/js/jquery.dataTables.min.js +3 -159
  149. game/static/game/js/level_editor.js +823 -448
  150. game/static/game/js/level_moderation.js +33 -2
  151. game/static/game/js/level_selection.js +62 -25
  152. game/static/game/js/loadLanguages.js +21 -0
  153. game/static/game/js/map.js +106 -36
  154. game/static/game/js/model.js +55 -107
  155. game/static/game/js/pathFinder.js +73 -72
  156. game/static/game/js/program.js +184 -193
  157. game/static/game/js/pythonControl.js +14 -1
  158. game/static/game/js/scoreboard.js +0 -37
  159. game/static/game/js/scoreboardSharedLevels.js +48 -0
  160. game/static/game/js/sharing.js +22 -10
  161. game/static/game/js/skulpt/codemirror.js +5 -4
  162. game/static/game/js/skulpt/skulpt-stdlib.js +1 -1
  163. game/static/game/js/sound.js +52 -5
  164. game/static/game/js/van.js +0 -7
  165. game/static/game/raphael_image/characters/top_view/Electric_van.svg +448 -0
  166. game/static/game/raphael_image/characters/top_view/Sleigh.svg +436 -0
  167. game/static/game/raphael_image/decor/city/solar_panel.svg +1200 -0
  168. game/static/game/raphael_image/decor/farm/solar_panel.svg +86 -0
  169. game/static/game/raphael_image/decor/grass/solar_panel.svg +86 -0
  170. game/static/game/raphael_image/decor/snow/barn.svg +1788 -0
  171. game/static/game/raphael_image/decor/snow/cfc.svg +1050 -147
  172. game/static/game/raphael_image/decor/snow/crops.svg +7370 -0
  173. game/static/game/raphael_image/decor/snow/hospital.svg +1220 -0
  174. game/static/game/raphael_image/decor/snow/house1.svg +971 -0
  175. game/static/game/raphael_image/decor/snow/house2.svg +1574 -0
  176. game/static/game/raphael_image/decor/snow/school.svg +1071 -0
  177. game/static/game/raphael_image/decor/snow/shop.svg +3211 -0
  178. game/static/game/raphael_image/decor/snow/solar_panel.svg +173 -0
  179. game/static/game/raphael_image/pigeon.svg +685 -0
  180. game/static/game/raphael_image/sleigh_wreckage.svg +430 -0
  181. game/static/game/sass/game.scss +22 -6
  182. game/static/game/sound/clown_horn.mp3 +0 -0
  183. game/static/game/sound/clown_horn.ogg +0 -0
  184. game/static/game/sound/electric_van_starting.mp3 +0 -0
  185. game/static/game/sound/electric_van_starting.ogg +0 -0
  186. game/static/game/sound/pigeon.mp3 +0 -0
  187. game/static/game/sound/pigeon.ogg +0 -0
  188. game/static/game/sound/sleigh_bells.mp3 +0 -0
  189. game/static/game/sound/sleigh_bells.ogg +0 -0
  190. game/static/game/sound/sleigh_crash.mp3 +0 -0
  191. game/static/game/sound/sleigh_crash.ogg +0 -0
  192. game/templates/game/base.html +35 -15
  193. game/templates/game/basenonav.html +23 -17
  194. game/templates/game/game.html +236 -111
  195. game/templates/game/level_editor.html +353 -275
  196. game/templates/game/level_moderation.html +19 -6
  197. game/templates/game/level_selection.html +75 -62
  198. game/templates/game/python_den_level_selection.html +291 -0
  199. game/templates/game/python_den_worksheet.html +101 -0
  200. game/templates/game/scoreboard.html +88 -65
  201. game/tests/test_level_editor.py +210 -35
  202. game/tests/test_level_moderation.py +6 -20
  203. game/tests/test_level_selection.py +332 -11
  204. game/tests/test_python_den_worksheet.py +85 -0
  205. game/tests/test_scoreboard.py +258 -66
  206. game/tests/utils/level.py +43 -3
  207. game/tests/utils/teacher.py +2 -2
  208. game/theme.py +21 -21
  209. game/urls.py +125 -78
  210. game/views/language_code_conversions.py +90 -0
  211. game/views/level.py +201 -63
  212. game/views/level_editor.py +109 -48
  213. game/views/level_moderation.py +29 -6
  214. game/views/level_selection.py +179 -56
  215. game/views/level_solutions.py +600 -106
  216. game/views/scoreboard.py +181 -66
  217. game/views/worksheet.py +25 -0
  218. rapid_router-7.6.8.dist-info/METADATA +174 -0
  219. {rapid_router-5.4.1.dist-info → rapid_router-7.6.8.dist-info}/RECORD +222 -242
  220. {rapid_router-5.4.1.dist-info → rapid_router-7.6.8.dist-info}/WHEEL +1 -1
  221. rapid_router-7.6.8.dist-info/licenses/LICENSE.md +3 -0
  222. example_project/example_project/__init__.py +0 -1
  223. example_project/example_project/settings.py +0 -54
  224. example_project/example_project/urls.py +0 -16
  225. example_project/manage.py +0 -10
  226. game/autoconfig.py +0 -59
  227. game/csp_config.py +0 -23
  228. game/locale/ar_SA/LC_MESSAGES/django.mo +0 -0
  229. game/locale/ar_SA/LC_MESSAGES/django.po +0 -405
  230. game/locale/ar_SA/LC_MESSAGES/djangojs.mo +0 -0
  231. game/locale/ar_SA/LC_MESSAGES/djangojs.po +0 -743
  232. game/locale/bg_BG/LC_MESSAGES/django.mo +0 -0
  233. game/locale/bg_BG/LC_MESSAGES/django.po +0 -405
  234. game/locale/bg_BG/LC_MESSAGES/djangojs.mo +0 -0
  235. game/locale/bg_BG/LC_MESSAGES/djangojs.po +0 -739
  236. game/locale/ca_ES/LC_MESSAGES/django.mo +0 -0
  237. game/locale/ca_ES/LC_MESSAGES/django.po +0 -405
  238. game/locale/ca_ES/LC_MESSAGES/djangojs.mo +0 -0
  239. game/locale/ca_ES/LC_MESSAGES/djangojs.po +0 -740
  240. game/locale/cs_CZ/LC_MESSAGES/django.mo +0 -0
  241. game/locale/cs_CZ/LC_MESSAGES/django.po +0 -405
  242. game/locale/cs_CZ/LC_MESSAGES/djangojs.mo +0 -0
  243. game/locale/cs_CZ/LC_MESSAGES/djangojs.po +0 -741
  244. game/locale/cy_GB/LC_MESSAGES/django.mo +0 -0
  245. game/locale/cy_GB/LC_MESSAGES/django.po +0 -405
  246. game/locale/cy_GB/LC_MESSAGES/djangojs.mo +0 -0
  247. game/locale/cy_GB/LC_MESSAGES/djangojs.po +0 -743
  248. game/locale/de_DE/LC_MESSAGES/django.mo +0 -0
  249. game/locale/de_DE/LC_MESSAGES/django.po +0 -405
  250. game/locale/de_DE/LC_MESSAGES/djangojs.mo +0 -0
  251. game/locale/de_DE/LC_MESSAGES/djangojs.po +0 -739
  252. game/locale/el_GR/LC_MESSAGES/django.mo +0 -0
  253. game/locale/el_GR/LC_MESSAGES/django.po +0 -405
  254. game/locale/el_GR/LC_MESSAGES/djangojs.mo +0 -0
  255. game/locale/el_GR/LC_MESSAGES/djangojs.po +0 -739
  256. game/locale/en_GB/LC_MESSAGES/django.mo +0 -0
  257. game/locale/en_GB/LC_MESSAGES/django.po +0 -405
  258. game/locale/en_GB/LC_MESSAGES/djangojs.mo +0 -0
  259. game/locale/en_GB/LC_MESSAGES/djangojs.po +0 -739
  260. game/locale/es_ES/LC_MESSAGES/django.mo +0 -0
  261. game/locale/es_ES/LC_MESSAGES/django.po +0 -405
  262. game/locale/es_ES/LC_MESSAGES/djangojs.mo +0 -0
  263. game/locale/es_ES/LC_MESSAGES/djangojs.po +0 -739
  264. game/locale/fi_FI/LC_MESSAGES/django.mo +0 -0
  265. game/locale/fi_FI/LC_MESSAGES/django.po +0 -405
  266. game/locale/fi_FI/LC_MESSAGES/djangojs.mo +0 -0
  267. game/locale/fi_FI/LC_MESSAGES/djangojs.po +0 -739
  268. game/locale/fr_FR/LC_MESSAGES/django.mo +0 -0
  269. game/locale/fr_FR/LC_MESSAGES/django.po +0 -405
  270. game/locale/fr_FR/LC_MESSAGES/djangojs.mo +0 -0
  271. game/locale/fr_FR/LC_MESSAGES/djangojs.po +0 -739
  272. game/locale/gu_IN/LC_MESSAGES/django.mo +0 -0
  273. game/locale/gu_IN/LC_MESSAGES/django.po +0 -405
  274. game/locale/gu_IN/LC_MESSAGES/djangojs.mo +0 -0
  275. game/locale/gu_IN/LC_MESSAGES/djangojs.po +0 -739
  276. game/locale/hi_IN/LC_MESSAGES/django.mo +0 -0
  277. game/locale/hi_IN/LC_MESSAGES/django.po +0 -405
  278. game/locale/hi_IN/LC_MESSAGES/djangojs.mo +0 -0
  279. game/locale/hi_IN/LC_MESSAGES/djangojs.po +0 -739
  280. game/locale/id_ID/LC_MESSAGES/django.mo +0 -0
  281. game/locale/id_ID/LC_MESSAGES/django.po +0 -405
  282. game/locale/id_ID/LC_MESSAGES/djangojs.mo +0 -0
  283. game/locale/id_ID/LC_MESSAGES/djangojs.po +0 -738
  284. game/locale/it_IT/LC_MESSAGES/django.mo +0 -0
  285. game/locale/it_IT/LC_MESSAGES/django.po +0 -405
  286. game/locale/it_IT/LC_MESSAGES/djangojs.mo +0 -0
  287. game/locale/it_IT/LC_MESSAGES/djangojs.po +0 -739
  288. game/locale/ja_JP/LC_MESSAGES/django.mo +0 -0
  289. game/locale/ja_JP/LC_MESSAGES/django.po +0 -405
  290. game/locale/ja_JP/LC_MESSAGES/djangojs.mo +0 -0
  291. game/locale/ja_JP/LC_MESSAGES/djangojs.po +0 -738
  292. game/locale/lol_US/LC_MESSAGES/django.mo +0 -0
  293. game/locale/lol_US/LC_MESSAGES/django.po +0 -405
  294. game/locale/lol_US/LC_MESSAGES/djangojs.mo +0 -0
  295. game/locale/lol_US/LC_MESSAGES/djangojs.po +0 -739
  296. game/locale/nb_NO/LC_MESSAGES/django.mo +0 -0
  297. game/locale/nb_NO/LC_MESSAGES/django.po +0 -405
  298. game/locale/nb_NO/LC_MESSAGES/djangojs.mo +0 -0
  299. game/locale/nb_NO/LC_MESSAGES/djangojs.po +0 -739
  300. game/locale/nl_NL/LC_MESSAGES/django.mo +0 -0
  301. game/locale/nl_NL/LC_MESSAGES/django.po +0 -405
  302. game/locale/nl_NL/LC_MESSAGES/djangojs.mo +0 -0
  303. game/locale/nl_NL/LC_MESSAGES/djangojs.po +0 -739
  304. game/locale/pl_PL/LC_MESSAGES/django.mo +0 -0
  305. game/locale/pl_PL/LC_MESSAGES/django.po +0 -405
  306. game/locale/pl_PL/LC_MESSAGES/djangojs.mo +0 -0
  307. game/locale/pl_PL/LC_MESSAGES/djangojs.po +0 -741
  308. game/locale/pt_BR/LC_MESSAGES/django.mo +0 -0
  309. game/locale/pt_BR/LC_MESSAGES/django.po +0 -405
  310. game/locale/pt_BR/LC_MESSAGES/djangojs.mo +0 -0
  311. game/locale/pt_BR/LC_MESSAGES/djangojs.po +0 -739
  312. game/locale/pt_PT/LC_MESSAGES/django.mo +0 -0
  313. game/locale/pt_PT/LC_MESSAGES/django.po +0 -405
  314. game/locale/pt_PT/LC_MESSAGES/djangojs.mo +0 -0
  315. game/locale/pt_PT/LC_MESSAGES/djangojs.po +0 -739
  316. game/locale/ro_RO/LC_MESSAGES/django.mo +0 -0
  317. game/locale/ro_RO/LC_MESSAGES/django.po +0 -405
  318. game/locale/ro_RO/LC_MESSAGES/djangojs.mo +0 -0
  319. game/locale/ro_RO/LC_MESSAGES/djangojs.po +0 -740
  320. game/locale/ru_RU/LC_MESSAGES/django.mo +0 -0
  321. game/locale/ru_RU/LC_MESSAGES/django.po +0 -405
  322. game/locale/ru_RU/LC_MESSAGES/djangojs.mo +0 -0
  323. game/locale/ru_RU/LC_MESSAGES/djangojs.po +0 -741
  324. game/locale/sv_SE/LC_MESSAGES/django.mo +0 -0
  325. game/locale/sv_SE/LC_MESSAGES/django.po +0 -405
  326. game/locale/sv_SE/LC_MESSAGES/djangojs.mo +0 -0
  327. game/locale/sv_SE/LC_MESSAGES/djangojs.po +0 -739
  328. game/locale/tl_PH/LC_MESSAGES/django.mo +0 -0
  329. game/locale/tl_PH/LC_MESSAGES/django.po +0 -405
  330. game/locale/tl_PH/LC_MESSAGES/djangojs.mo +0 -0
  331. game/locale/tl_PH/LC_MESSAGES/djangojs.po +0 -739
  332. game/locale/tlh_AA/LC_MESSAGES/django.mo +0 -0
  333. game/locale/tlh_AA/LC_MESSAGES/django.po +0 -405
  334. game/locale/tlh_AA/LC_MESSAGES/djangojs.mo +0 -0
  335. game/locale/tlh_AA/LC_MESSAGES/djangojs.po +0 -739
  336. game/locale/tr_TR/LC_MESSAGES/django.mo +0 -0
  337. game/locale/tr_TR/LC_MESSAGES/django.po +0 -405
  338. game/locale/tr_TR/LC_MESSAGES/djangojs.mo +0 -0
  339. game/locale/tr_TR/LC_MESSAGES/djangojs.po +0 -740
  340. game/locale/ur_IN/LC_MESSAGES/django.mo +0 -0
  341. game/locale/ur_IN/LC_MESSAGES/django.po +0 -405
  342. game/locale/ur_IN/LC_MESSAGES/djangojs.mo +0 -0
  343. game/locale/ur_IN/LC_MESSAGES/djangojs.po +0 -739
  344. game/locale/ur_PK/LC_MESSAGES/django.mo +0 -0
  345. game/locale/ur_PK/LC_MESSAGES/django.po +0 -405
  346. game/locale/ur_PK/LC_MESSAGES/djangojs.mo +0 -0
  347. game/locale/ur_PK/LC_MESSAGES/djangojs.po +0 -739
  348. game/static/game/image/actions/go.svg +0 -18
  349. game/static/game/image/icons/destination.svg +0 -9
  350. game/static/game/js/pqselect.min.js +0 -9
  351. game/static/game/js/widget-scroller.js +0 -906
  352. rapid_router-5.4.1.dist-info/LICENSE.md +0 -577
  353. rapid_router-5.4.1.dist-info/METADATA +0 -24
  354. {rapid_router-5.4.1.dist-info → rapid_router-7.6.8.dist-info}/top_level.txt +0 -0
@@ -433,4 +433,55 @@ Blockly.Msg["VARIABLES_HUE"] = "330";
433
433
  Blockly.Msg["TEXTS_HUE"] = "160";
434
434
  Blockly.Msg["PROCEDURES_HUE"] = "290";
435
435
  Blockly.Msg["COLOUR_HUE"] = "20";
436
- Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
436
+ Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
437
+
438
+ Blockly.Msg["START_TITLE"] = "Via";
439
+ Blockly.Msg["START_TOOLTIP"] = "Inizio del programma"
440
+ Blockly.Msg["MOVE_FORWARDS_TITLE"] = "Avanti";
441
+ Blockly.Msg["MOVE_FORWARDS_TOOLTIP"] = "il van va diritto";
442
+ Blockly.Msg["TURN_LEFT_TITLE"] = "Sinistra";
443
+ Blockly.Msg["TURN_LEFT_TOOLTIP"] = "il van gira a sinistra";
444
+ Blockly.Msg["TURN_RIGHT_TITLE"] = "Destra";
445
+ Blockly.Msg["TURN_RIGHT_TOOLTIP"] = "il van gira a destra";
446
+ Blockly.Msg["TURN_AROUND_TITLE"] = "Torna indietro";
447
+ Blockly.Msg["TURN_AROUND_TOOLTIP"] = "il van si gira";
448
+
449
+ Blockly.Msg["WAIT_TITLE"] = "Aspetta";
450
+ Blockly.Msg["WAIT_TOOLTIP"] = "il van rimane fermo";
451
+ Blockly.Msg["DELIVER_TITLE"] = "Consegna";
452
+ Blockly.Msg["DELIVER_TOOLTIP"] = "consegna la merce";
453
+ Blockly.Msg["SOUND_HORN_TITLE"] = "Suona il clacson";
454
+ Blockly.Msg["SOUND_HORN_TOOLTIP"] = "suona il clacson per spaventare le mucche";
455
+
456
+ Blockly.Msg["ROAD_EXISTS_FORWARD_TITLE"] = "La strada continua dritta";
457
+ Blockly.Msg["ROAD_EXISTS_LEFT_TITLE"] = "La strada continua a sinistra";
458
+ Blockly.Msg["ROAD_EXISTS_RIGHT_TITLE"] = "La strada continua a destra";
459
+ Blockly.Msg["TRAFFIC_LIGHT_RED_TITLE"] = "Semaforo rosso";
460
+ Blockly.Msg["TRAFFIC_LIGHT_GREEN_TITLE"] = "Semaforo verde";
461
+ Blockly.Msg["DEAD_END_TITLE"] = "La via è senza uscita";
462
+ Blockly.Msg["AT_DESTINATION_TITLE"] = "Arrivati a destinazione";
463
+ Blockly.Msg["COW_CROSSING_TITLE"] = "Mucche";
464
+ Blockly.Msg["PIGEON_CROSSING_TITLE"] = "pigeons"; // untranslated
465
+
466
+ Blockly.Msg["CALL_PROC_TITLE"] = "Esegui";
467
+ Blockly.Msg["CALL_PROC_TOOLTIP"] = "chiama una procedura";
468
+ Blockly.Msg["DECLARE_PROC_TITLE"] = "Dichiara";
469
+ Blockly.Msg["DECLARE_PROC_SUBTITLE"] = ""; // ?
470
+ Blockly.Msg["DECLARE_PROC_TOOLTIP"] = "dichiara la procedura";
471
+ Blockly.Msg["CONTROLS_REPEAT_WHILE_TITLE"] = "Ripeti su condizione";
472
+ Blockly.Msg["CONTROLS_REPEAT_WHILE_SUBTITLE"] = ""; // ?
473
+ Blockly.Msg["CONTROLS_REPEAT_WHILE_TOOLTIP"] = "quando il valore è true, ripeti le istruzioni";
474
+ Blockly.Msg["CONTROLS_REPEAT_UNTIL_TITLE"] = "Ripeti finché";
475
+ Blockly.Msg["CONTROLS_REPEAT_UNTIL_SUBTITLE"] = ""; // ?
476
+ Blockly.Msg["CONTROLS_REPEAT_UNTIL_TOOLTIP"] = "ripeti le istruzioni finchè la condizione è true";
477
+
478
+ Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "una variabile";
479
+ Blockly.Msg["VARIABLES_SET_TITLE"] = "Setta";
480
+ Blockly.Msg["VARIABLES_SET_SUBTITLE"] = "al valore";
481
+ Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "assegna una variabile";
482
+ Blockly.Msg["VARIABLES_NUMERIC_SET_TOOLTIP"] = "assegna un numero alla variabile";
483
+ Blockly.Msg["VARIABLES_INCREMENT_TITLE"] = "Incrementa";
484
+ Blockly.Msg["VARIABLES_INCREMENT_SUBTITLE"] = "di";
485
+ Blockly.Msg["VARIABLES_INCREMENT_TOOLTIP"] = "incrementa una variabile";
486
+ Blockly.Msg["NUMBER_TITLE"] = "Numero";
487
+ Blockly.Msg["NUMBER_TOOLTIP"] = "un valore numerico";
@@ -433,4 +433,55 @@ Blockly.Msg["VARIABLES_HUE"] = "330";
433
433
  Blockly.Msg["TEXTS_HUE"] = "160";
434
434
  Blockly.Msg["PROCEDURES_HUE"] = "290";
435
435
  Blockly.Msg["COLOUR_HUE"] = "20";
436
- Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
436
+ Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
437
+
438
+ Blockly.Msg["START_TITLE"] = "Rozpocznij";
439
+ Blockly.Msg["START_TOOLTIP"] = "początek programu";
440
+ Blockly.Msg["MOVE_FORWARDS_TITLE"] = "Naprzód";
441
+ Blockly.Msg["MOVE_FORWARDS_TOOLTIP"] = "przesuń pojazd do przodu";
442
+ Blockly.Msg["TURN_LEFT_TITLE"] = "Skręć w lewo";
443
+ Blockly.Msg["TURN_LEFT_TOOLTIP"] = "obróć pojazd w lewo";
444
+ Blockly.Msg["TURN_RIGHT_TITLE"] = "Skręć w prawo";
445
+ Blockly.Msg["TURN_RIGHT_TOOLTIP"] = "obróć pojazd w prawo";
446
+ Blockly.Msg["TURN_AROUND_TITLE"] = "Zawróć";
447
+ Blockly.Msg["TURN_AROUND_TOOLTIP"] = "zawróć pojazd w przeciwnym kierunku";
448
+
449
+ Blockly.Msg["WAIT_TITLE"] = "Czekaj";
450
+ Blockly.Msg["WAIT_TOOLTIP"] = "nie wykonuj ruchów pojazdem";
451
+ Blockly.Msg["DELIVER_TITLE"] = "Dostarcz";
452
+ Blockly.Msg["DELIVER_TOOLTIP"] = "dostarcz towary z pojazdu";
453
+ Blockly.Msg["SOUND_HORN_TITLE"] = "Zatrąb";
454
+ Blockly.Msg["SOUND_HORN_TOOLTIP"] = "użyj klaksonu aby przegonić krowy";
455
+
456
+ Blockly.Msg["ROAD_EXISTS_FORWARD_TITLE"] = "Droga istnieje z przodu";
457
+ Blockly.Msg["ROAD_EXISTS_LEFT_TITLE"] = "Droga istnieje z po lewej";
458
+ Blockly.Msg["ROAD_EXISTS_RIGHT_TITLE"] = "Droga istnieje z po prawej";
459
+ Blockly.Msg["TRAFFIC_LIGHT_RED_TITLE"] = "sygnalizacja świetlna Czerwone";
460
+ Blockly.Msg["TRAFFIC_LIGHT_GREEN_TITLE"] = "sygnalizacja świetlna zielone";
461
+ Blockly.Msg["DEAD_END_TITLE"] = "Ślepa ulica";
462
+ Blockly.Msg["AT_DESTINATION_TITLE"] = "U celu";
463
+ Blockly.Msg["COW_CROSSING_TITLE"] = "Krowy";
464
+ Blockly.Msg["PIGEON_CROSSING_TITLE"] = "Gołębie";
465
+
466
+ Blockly.Msg["CALL_PROC_TITLE"] = "Wywołanie";
467
+ Blockly.Msg["CALL_PROC_TOOLTIP"] = "wywołuje procedurę";
468
+ Blockly.Msg["DECLARE_PROC_TITLE"] = "Zdefiniuj";
469
+ Blockly.Msg["DECLARE_PROC_SUBTITLE"] = "Do";
470
+ Blockly.Msg["DECLARE_PROC_TOOLTIP"] = "deklaruje procedurę";
471
+ Blockly.Msg["CONTROLS_REPEAT_WHILE_TITLE"] = "Powtarzaj dopóki";
472
+ Blockly.Msg["CONTROLS_REPEAT_WHILE_SUBTITLE"] = "wykonuj";
473
+ Blockly.Msg["CONTROLS_REPEAT_WHILE_TOOLTIP"] = "dopóki warunek jest spełniany wykonuj instrukcje";
474
+ Blockly.Msg["CONTROLS_REPEAT_UNTIL_TITLE"] = "Powtarzaj aż";
475
+ Blockly.Msg["CONTROLS_REPEAT_UNTIL_SUBTITLE"] = "wykonuj";
476
+ Blockly.Msg["CONTROLS_REPEAT_UNTIL_TOOLTIP"] = "powtarzaj instrukcje aż warunek będzie spełniony";
477
+
478
+ Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "zmienna";
479
+ Blockly.Msg["VARIABLES_SET_TITLE"] = "Ustaw";
480
+ Blockly.Msg["VARIABLES_SET_SUBTITLE"] = "na";
481
+ Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "ustaw zmienną";
482
+ Blockly.Msg["VARIABLES_NUMERIC_SET_TOOLTIP"] = "ustaw zmienną liczbową";
483
+ Blockly.Msg["VARIABLES_INCREMENT_TITLE"] = "Zwiększ";
484
+ Blockly.Msg["VARIABLES_INCREMENT_SUBTITLE"] = "o";
485
+ Blockly.Msg["VARIABLES_INCREMENT_TOOLTIP"] = "zwiększ zmienną";
486
+ Blockly.Msg["NUMBER_TITLE"] = "Liczba";
487
+ Blockly.Msg["NUMBER_TOOLTIP"] = "liczba";
@@ -433,4 +433,55 @@ Blockly.Msg["VARIABLES_HUE"] = "330";
433
433
  Blockly.Msg["TEXTS_HUE"] = "160";
434
434
  Blockly.Msg["PROCEDURES_HUE"] = "290";
435
435
  Blockly.Msg["COLOUR_HUE"] = "20";
436
- Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
436
+ Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
437
+
438
+ Blockly.Msg["START_TITLE"] = "Início";
439
+ Blockly.Msg["START_TOOLTIP"] = "O início do programa"
440
+ Blockly.Msg["MOVE_FORWARDS_TITLE"] = "Mover em frente";
441
+ Blockly.Msg["MOVE_FORWARDS_TOOLTIP"] = "move a van para frente";
442
+ Blockly.Msg["TURN_LEFT_TITLE"] = "Virar à esquerda";
443
+ Blockly.Msg["TURN_LEFT_TOOLTIP"] = "vira a van para esquerda";
444
+ Blockly.Msg["TURN_RIGHT_TITLE"] = "Virar à direita";
445
+ Blockly.Msg["TURN_RIGHT_TOOLTIP"] = "vira a van para direita";
446
+ Blockly.Msg["TURN_AROUND_TITLE"] = "Dar a volta";
447
+ Blockly.Msg["TURN_AROUND_TOOLTIP"] = "vira a van ao contrário";
448
+
449
+ Blockly.Msg["WAIT_TITLE"] = "Esperar";
450
+ Blockly.Msg["WAIT_TOOLTIP"] = "mantém a van parada";
451
+ Blockly.Msg["DELIVER_TITLE"] = "Entregar";
452
+ Blockly.Msg["DELIVER_TOOLTIP"] = "entrega os itens da van";
453
+ Blockly.Msg["SOUND_HORN_TITLE"] = "Buzinar";
454
+ Blockly.Msg["SOUND_HORN_TOOLTIP"] = "toca a buzina para assustar as vacas";
455
+
456
+ Blockly.Msg["ROAD_EXISTS_FORWARD_TITLE"] = "Existe estrada à frente";
457
+ Blockly.Msg["ROAD_EXISTS_LEFT_TITLE"] = "Existe estrada à esquerda";
458
+ Blockly.Msg["ROAD_EXISTS_RIGHT_TITLE"] = "Existe estrada à direita";
459
+ Blockly.Msg["TRAFFIC_LIGHT_RED_TITLE"] = "Semáforo vermelho";
460
+ Blockly.Msg["TRAFFIC_LIGHT_GREEN_TITLE"] = "Semáforo verde";
461
+ Blockly.Msg["DEAD_END_TITLE"] = "Rua sem saída";
462
+ Blockly.Msg["AT_DESTINATION_TITLE"] = "No destino";
463
+ Blockly.Msg["COW_CROSSING_TITLE"] = "Vacas";
464
+ Blockly.Msg["PIGEON_CROSSING_TITLE"] = "Pombas";
465
+
466
+ Blockly.Msg["CALL_PROC_TITLE"] = "Chamar";
467
+ Blockly.Msg["CALL_PROC_TOOLTIP"] = "chama a função";
468
+ Blockly.Msg["DECLARE_PROC_TITLE"] = "Definir";
469
+ Blockly.Msg["DECLARE_PROC_SUBTITLE"] = "faça";
470
+ Blockly.Msg["DECLARE_PROC_TOOLTIP"] = "declara a função";
471
+ Blockly.Msg["CONTROLS_REPEAT_WHILE_TITLE"] = "Repita enquanto";
472
+ Blockly.Msg["CONTROLS_REPEAT_WHILE_SUBTITLE"] = "faça";
473
+ Blockly.Msg["CONTROLS_REPEAT_WHILE_TOOLTIP"] = "enquanto um valor for verdadeiro, faz algo";
474
+ Blockly.Msg["CONTROLS_REPEAT_UNTIL_TITLE"] = "Repita até";
475
+ Blockly.Msg["CONTROLS_REPEAT_UNTIL_SUBTITLE"] = "faça";
476
+ Blockly.Msg["CONTROLS_REPEAT_UNTIL_TOOLTIP"] = "até que um valor seja verdadeiro, faz algo";
477
+
478
+ Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "uma variável";
479
+ Blockly.Msg["VARIABLES_SET_TITLE"] = "Define";
480
+ Blockly.Msg["VARIABLES_SET_SUBTITLE"] = "igual a";
481
+ Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "atribui valor à variável";
482
+ Blockly.Msg["VARIABLES_NUMERIC_SET_TOOLTIP"] = "atribui um valor numérico à variável";
483
+ Blockly.Msg["VARIABLES_INCREMENT_TITLE"] = "Incrementa";
484
+ Blockly.Msg["VARIABLES_INCREMENT_SUBTITLE"] = "por";
485
+ Blockly.Msg["VARIABLES_INCREMENT_TOOLTIP"] = "incrementa a variável";
486
+ Blockly.Msg["NUMBER_TITLE"] = "Número";
487
+ Blockly.Msg["NUMBER_TOOLTIP"] = "um número";
@@ -433,4 +433,55 @@ Blockly.Msg["VARIABLES_HUE"] = "330";
433
433
  Blockly.Msg["TEXTS_HUE"] = "160";
434
434
  Blockly.Msg["PROCEDURES_HUE"] = "290";
435
435
  Blockly.Msg["COLOUR_HUE"] = "20";
436
- Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
436
+ Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
437
+
438
+ Blockly.Msg["START_TITLE"] = "Начало";
439
+ Blockly.Msg["START_TOOLTIP"] = "Начало программы"
440
+ Blockly.Msg["MOVE_FORWARDS_TITLE"] = "Ехать вперед";
441
+ Blockly.Msg["MOVE_FORWARDS_TOOLTIP"] = "переместить грузовик вперед";
442
+ Blockly.Msg["TURN_LEFT_TITLE"] = "Повернуть налево";
443
+ Blockly.Msg["TURN_LEFT_TOOLTIP"] = "повернуть грузовик налево";
444
+ Blockly.Msg["TURN_RIGHT_TITLE"] = "Повернуть направо";
445
+ Blockly.Msg["TURN_RIGHT_TOOLTIP"] = "повернуть грузовик направо";
446
+ Blockly.Msg["TURN_AROUND_TITLE"] = "Развернуться";
447
+ Blockly.Msg["TURN_AROUND_TOOLTIP"] = "развернуть грузови";
448
+
449
+ Blockly.Msg["WAIT_TITLE"] = "Подождать";
450
+ Blockly.Msg["WAIT_TOOLTIP"] = "оставить грузовик на месте";
451
+ Blockly.Msg["DELIVER_TITLE"] = "Доставить";
452
+ Blockly.Msg["DELIVER_TOOLTIP"] = "доставить товары из грузовика";
453
+ Blockly.Msg["SOUND_HORN_TITLE"] = "Подать сигнал";
454
+ Blockly.Msg["SOUND_HORN_TOOLTIP"] = "просигналить, чтобы спугнуть коров";
455
+
456
+ Blockly.Msg["ROAD_EXISTS_FORWARD_TITLE"] = "Есть путь впереди";
457
+ Blockly.Msg["ROAD_EXISTS_LEFT_TITLE"] = "Есть путь слева";
458
+ Blockly.Msg["ROAD_EXISTS_RIGHT_TITLE"] = "Есть путь справа";
459
+ Blockly.Msg["TRAFFIC_LIGHT_RED_TITLE"] = "Светофор красный";
460
+ Blockly.Msg["TRAFFIC_LIGHT_GREEN_TITLE"] = "Светофор зеленый";
461
+ Blockly.Msg["DEAD_END_TITLE"] = "Тупик";
462
+ Blockly.Msg["AT_DESTINATION_TITLE"] = "В пункте назначения";
463
+ Blockly.Msg["COW_CROSSING_TITLE"] = "Коровы";
464
+ Blockly.Msg["PIGEON_CROSSING_TITLE"] = "Голуби";
465
+
466
+ Blockly.Msg["CALL_PROC_TITLE"] = "Вызвать";
467
+ Blockly.Msg["CALL_PROC_TOOLTIP"] = "вызывает процедуру";
468
+ Blockly.Msg["DECLARE_PROC_TITLE"] = "Определить";
469
+ Blockly.Msg["DECLARE_PROC_SUBTITLE"] = "выполнять";
470
+ Blockly.Msg["DECLARE_PROC_TOOLTIP"] = "определяет процедуру";
471
+ Blockly.Msg["CONTROLS_REPEAT_WHILE_TITLE"] = "Повторять пока";
472
+ Blockly.Msg["CONTROLS_REPEAT_WHILE_SUBTITLE"] = "выполнять";
473
+ Blockly.Msg["CONTROLS_REPEAT_WHILE_TOOLTIP"] = "пока значение истинно, выполнять инструкции";
474
+ Blockly.Msg["CONTROLS_REPEAT_UNTIL_TITLE"] = "Повторять до тех пор, пока";
475
+ Blockly.Msg["CONTROLS_REPEAT_UNTIL_SUBTITLE"] = "выполнять";
476
+ Blockly.Msg["CONTROLS_REPEAT_UNTIL_TOOLTIP"] = "выполнять инструкции до тех пор, пока";
477
+
478
+ Blockly.Msg["VARIABLES_GET_TOOLTIP"] = "переменная";
479
+ Blockly.Msg["VARIABLES_SET_TITLE"] = "Присвоить";
480
+ Blockly.Msg["VARIABLES_SET_SUBTITLE"] = "значение";
481
+ Blockly.Msg["VARIABLES_SET_TOOLTIP"] = "присвоить переменной значение";
482
+ Blockly.Msg["VARIABLES_NUMERIC_SET_TOOLTIP"] = "присвоить переменной число";
483
+ Blockly.Msg["VARIABLES_INCREMENT_TITLE"] = "Увеличить";
484
+ Blockly.Msg["VARIABLES_INCREMENT_SUBTITLE"] = "на";
485
+ Blockly.Msg["VARIABLES_INCREMENT_TOOLTIP"] = "увеличить переменную";
486
+ Blockly.Msg["NUMBER_TITLE"] = "Число";
487
+ Blockly.Msg["NUMBER_TOOLTIP"] = "число";
@@ -433,4 +433,55 @@ Blockly.Msg["VARIABLES_HUE"] = "330";
433
433
  Blockly.Msg["TEXTS_HUE"] = "160";
434
434
  Blockly.Msg["PROCEDURES_HUE"] = "290";
435
435
  Blockly.Msg["COLOUR_HUE"] = "20";
436
- Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
436
+ Blockly.Msg["VARIABLES_DYNAMIC_HUE"] = "310";
437
+
438
+ Blockly.Msg["START_TITLE"] = "شروع کریں";
439
+ Blockly.Msg["START_TOOLTIP"] = "پروگرام کا آغاز"
440
+ Blockly.Msg["MOVE_FORWARDS_TITLE"] = "آگے بڑھیں";
441
+ Blockly.Msg["MOVE_FORWARDS_TOOLTIP"] = "وین کو آگے بڑھائیں";
442
+ Blockly.Msg["TURN_LEFT_TITLE"] = "بائیں مڑیں";
443
+ Blockly.Msg["TURN_LEFT_TOOLTIP"] = "وین بائیں مڑیں";
444
+ Blockly.Msg["TURN_RIGHT_TITLE"] = "دائیں مڑیں";
445
+ Blockly.Msg["TURN_RIGHT_TOOLTIP"] = "وین کو دائیں مڑیں";
446
+ Blockly.Msg["TURN_AROUND_TITLE"] = "مڑیں";
447
+ Blockly.Msg["TURN_AROUND_TOOLTIP"] = "وین کو گھمایں";
448
+
449
+ Blockly.Msg["WAIT_TITLE"] = "انتظار کریں";
450
+ Blockly.Msg["WAIT_TOOLTIP"] = "وین کو روکے رکھیں";
451
+ Blockly.Msg["DELIVER_TITLE"] = "سامان پہنچایں";
452
+ Blockly.Msg["DELIVER_TOOLTIP"] = "وین سے سامان پہنچایں";
453
+ Blockly.Msg["SOUND_HORN_TITLE"] = "ہارن بجایں";
454
+ Blockly.Msg["SOUND_HORN_TOOLTIP"] = "گائے بھینسوں";
455
+
456
+ Blockly.Msg["ROAD_EXISTS_FORWARD_TITLE"] = ""; // ?
457
+ Blockly.Msg["ROAD_EXISTS_LEFT_TITLE"] = ""; // ?
458
+ Blockly.Msg["ROAD_EXISTS_RIGHT_TITLE"] = ""; // ?
459
+ Blockly.Msg["TRAFFIC_LIGHT_RED_TITLE"] = ""; // ?
460
+ Blockly.Msg["TRAFFIC_LIGHT_GREEN_TITLE"] = ""; // ?
461
+ Blockly.Msg["DEAD_END_TITLE"] = "ٹریفک لائٹ سرخ/سبز";
462
+ Blockly.Msg["AT_DESTINATION_TITLE"] = "آگے راستہ بند ہے";
463
+ Blockly.Msg["COW_CROSSING_TITLE"] = "منزل پر پہنچ گئے";
464
+ Blockly.Msg["PIGEON_CROSSING_TITLE"] = ""; // untranslated
465
+
466
+ Blockly.Msg["CALL_PROC_TITLE"] = ""; // ?
467
+ Blockly.Msg["CALL_PROC_TOOLTIP"] = ""; // ?
468
+ Blockly.Msg["DECLARE_PROC_TITLE"] = "";
469
+ Blockly.Msg["DECLARE_PROC_SUBTITLE"] = ""; // ?
470
+ Blockly.Msg["DECLARE_PROC_TOOLTIP"] = ""; // ?
471
+ Blockly.Msg["CONTROLS_REPEAT_WHILE_TITLE"] = ""; // ?
472
+ Blockly.Msg["CONTROLS_REPEAT_WHILE_SUBTITLE"] = ""; // ?
473
+ Blockly.Msg["CONTROLS_REPEAT_WHILE_TOOLTIP"] = ""; // ?
474
+ Blockly.Msg["CONTROLS_REPEAT_UNTIL_TITLE"] = ""; // ?
475
+ Blockly.Msg["CONTROLS_REPEAT_UNTIL_SUBTITLE"] = ""; // ?
476
+ Blockly.Msg["CONTROLS_REPEAT_UNTIL_TOOLTIP"] = ""; // ?
477
+
478
+ Blockly.Msg["VARIABLES_GET_TOOLTIP"] = ""; // ?
479
+ Blockly.Msg["VARIABLES_SET_TITLE"] = ""; // ?
480
+ Blockly.Msg["VARIABLES_SET_SUBTITLE"] = ""; // ?
481
+ Blockly.Msg["VARIABLES_SET_TOOLTIP"] = ""; // ?
482
+ Blockly.Msg["VARIABLES_NUMERIC_SET_TOOLTIP"] = ""; // ?
483
+ Blockly.Msg["VARIABLES_INCREMENT_TITLE"] = ""; // ?
484
+ Blockly.Msg["VARIABLES_INCREMENT_SUBTITLE"] = ""; // ?
485
+ Blockly.Msg["VARIABLES_INCREMENT_TOOLTIP"] = ""; // ?
486
+ Blockly.Msg["NUMBER_TITLE"] = ""; // ?
487
+ Blockly.Msg["NUMBER_TOOLTIP"] = ""; // ?