Repository navigation
Expand file tree
/
Copy pathen.strings
More file actions
679 lines (672 loc) · 40.4 KB
/
Copy pathen.strings
File metadata and controls
679 lines (672 loc) · 40.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
/* Texts that exist only in the web version. Everything else comes from the app's Localizable.strings. */
"web_brand_suffix" = "Web";
"web_file_type" = "VisuStruct structure chart";
"web_key_ctrl" = "Ctrl";
"web_key_delete" = "Del";
"web_key_shift" = "Shift";
"web_export" = "Export…";
"web_export_title" = "Save as image or PDF, or print";
"web_export_png" = "Image (PNG)";
"web_export_svg" = "Vector graphic (SVG)";
"web_export_pdf" = "PDF (A4)";
"web_export_visustruct" = "VisuStruct file (.visustruct)";
"web_export_failed_fmt" = "Export failed: %@";
"web_print_hint" = "Use “Export… → PDF” to save the diagram and print it from there.";
"web_delete" = "Delete";
"web_language_title" = "Interface language";
"web_simulation_start" = "Start simulation";
"web_simulation_end" = "End simulation";
"web_simulation_start_title" = "Run the structure chart step by step";
"web_simulation_end_title" = "End the simulation and continue editing";
"web_palette_hint" = "Drag into the structure chart";
"web_tabs_label" = "Diagrams";
"web_status_modified" = "modified";
"web_inspector_title" = "Object Inspector";
"web_inspector_help_drop" = "Drag elements from the “Elements” area onto a tile: top = before, bottom = after, onto “ø” = replace. Existing elements can be moved with the mouse.";
"web_inspector_help_files" = "You can also drop files into the window.";
"web_case_name" = "Case name";
"web_case_name_placeholder" = "e.g. 1, ok, default";
"web_copied" = "Element copied.";
"web_discard_message_fmt" = "The changes to “%@” will be lost.";
"web_err_unreadable_fmt" = "“%@” is not a readable VisuStruct file (%@).";
"web_saved_fmt" = "“%@” saved.";
"web_saved_txt_fmt" = "Saved as “%@”. Remove the .txt extension to use it.";
"web_drop_impossible" = "Cannot drop here";
"web_sim_delay" = "Pause per step";
"web_sim_delay_value_fmt" = "%@ s";
"web_codegen_language" = "Language";
"web_codegen_comments" = "Diagram text as comments";
"web_codegen_empty_else" = "Emit empty else branch in code";
"web_copied_check" = "Copied ✓";
"web_copy_manual" = "Selected, press Ctrl+C to copy";
"web_run_stopped_loop" = "Execution stopped: possible infinite loop.";
"web_run_cancelled" = "Execution cancelled.";
"web_run_error" = "Error while running.";
"web_run_dropped_fmt" = "… %d earlier lines hidden";
/* Learning area (lessons are German only for now) */
"web_learn_title" = "Learn";
"web_learn_hide" = "Collapse the learning area";
"web_learn_show" = "Expand the learning area: lessons, exercises and reference";
"web_learn_lessons" = "Lessons";
"web_learn_tasks" = "Exercises";
"web_learn_reference" = "Reference";
"web_learn_intro" = "Learn step by step, with exercises. Your progress is remembered in this browser.";
"web_learn_tasks_intro" = "Small projects without instructions. Each one names the lesson you should finish first.";
"web_learn_step_of_fmt" = "Step %d of %d";
"web_learn_lesson_fmt" = "Lesson %d";
"web_learn_all_lessons" = "All lessons";
"web_learn_all_tasks" = "All exercises";
"web_learn_back" = "Back";
"web_learn_next" = "Next";
"web_learn_finish" = "Finish lesson";
"web_learn_done" = "Finished";
"web_learn_after_fmt" = "After lesson %d: %@";
"web_learn_level_fmt" = "Difficulty %d of 3";
"web_learn_exercise" = "Exercise";
"web_learn_brag" = "Fun facts with Ludwig";
"web_learn_solved" = "solved";
"web_learn_open_exercise" = "Open in editor";
"web_learn_open_in_editor" = "Open in editor";
"web_learn_check" = "Check";
"web_learn_hint" = "Hint";
"web_learn_reset" = "Start over";
"web_learn_reset_confirm" = "Really start over?";
"web_learn_solution" = "Show sample solution";
"web_learn_hint_more" = "Another hint";
"web_learn_hint_fmt" = "Hint %d of %d";
"web_learn_teacher" = "For teachers";
"web_learn_teacher_intro" = "The teacher code shows the sample solutions for all exercises. The browser remembers it.";
"web_learn_teacher_code" = "Teacher code";
"web_learn_teacher_unlock" = "Unlock";
"web_learn_teacher_wrong" = "The code is not correct.";
"web_learn_teacher_on" = "Teacher mode is on: sample solutions are visible for all exercises.";
"web_learn_teacher_off" = "Leave teacher mode";
"web_learn_open_first" = "Open the exercise in the editor first and build your structure chart there.";
"web_learn_empty" = "Your structure chart is still empty. Drag elements from the “Elements” area into it first.";
"web_learn_passed" = "Well done! Your structure chart does exactly what it should.";
"web_learn_failed" = "Not quite yet. Compare the expected output with yours:";
"web_learn_missing_fmt" = "Your structure chart still needs: %@";
"web_learn_input_fmt" = "Input: %@";
"web_learn_no_input" = "No input";
"web_learn_expected" = "Expected";
"web_learn_actual" = "Your output";
"web_learn_missing_input" = "Your structure chart asks for more input than planned.";
"web_learn_unused_input" = "Your structure chart does not ask for all inputs.";
"web_learn_too_many_steps" = "Stopped after 100,000 steps. Is a loop running forever?";
"web_learn_score_fmt" = "%d of %d correct";
"web_learn_cloze_hint" = "Type the missing words into the gaps and press “Check”.";
"web_learn_cloze_score_fmt" = "%d of %d gaps correct";
"web_learn_cloze_all_right" = "All gaps correct!";
"web_learn_cloze_solution" = "Show solution";
"web_learn_cloze_again" = "Try again";
"web_learn_pap_hint" = "Tap an element on the right and then its place in the chart. You can also drag it there. Tapping a filled place gives its element back.";
"web_learn_pap_score_fmt" = "%d of %d elements correct";
"web_learn_pap_all_right" = "All correct! Your flowchart is finished.";
"web_learn_pap_missing_fmt" = "%d elements are still missing.";
"web_learn_pap_empty" = "Empty place";
"web_learn_pap_yes" = "yes";
"web_learn_pap_no" = "no";
"web_learn_pap_legend_oval" = "Start or end";
"web_learn_pap_legend_rect" = "Statement";
"web_learn_pap_legend_diamond" = "Decision: question with yes and no";
"web_learn_pap_legend_para" = "Input or output";
"web_learn_review" = "Review";
"web_learn_terms" = "Technical terms";
"web_learn_resize" = "Change the width of the learning area (double-click: reset)";
"web_learn_back_to_checklist" = "Back to checklist";
"web_learn_step_fmt" = "Step %d: %@";
"web_sim_call_arguments_fmt" = "The call does not match the header of %@. Check the values in the parentheses.";
"web_sim_missing_return_fmt" = "%@ ended without returning a value with return.";
"web_sim_file_not_found_fmt" = "There is no file called %@.";
"web_sim_end_of_file_fmt" = "The file %@ has no more lines.";
"web_sim_null_value_fmt" = "%@ is null.";
"web_sim_written_file_fmt" = "%@ (saved)";
"web_site_home" = "Home page";
"web_site_imprint" = "Imprint";
"web_site_privacy" = "Privacy";
/* Programmieren (früher „Code live“) */
"web_live_title" = "Programming";
"web_live_hide" = "Hide programming";
"web_scale_canvas" = "Text size: structure chart";
"web_scale_code" = "Text size: Programming";
"web_live_indent" = "Indent";
"web_live_indent_title" = "Indent the code: four spaces per level (selected lines, otherwise everything)";
"web_live_show" = "Show programming";
"web_live_resize" = "Change width of the code area (double-click: reset)";
"web_live_hint" = "The code grows with your diagram. Grey = placeholder: type in the object inspector and your text appears there. Click a line to select its element.";
"web_live_ph_selector" = "variable";
"web_live_ph_code" = "Your code";
"web_live_ph_end" = "end";
"web_live_language" = "Programming language";
"web_live_java_class" = "As a class";
"web_live_java_class_hint" = "Class name = title of the diagram";
"web_live_java_main" = "With main method";
"web_settings_display" = "Display";
"web_live_swing" = "Real Java (with Swing)";
"web_live_swing_hint" = "Real Java with windows (CheerpJ). Downloads about 40 MB once, on the first run.";
"web_live_swing_windows" = "Java windows";
"web_live_swing_hide" = "Close Java windows";
"web_live_swing_loading" = "Loading Java (about 40 MB the first time) …";
"web_live_swing_compiling" = "Compiling …";
"web_live_swing_running" = "Program is running.";
"web_live_swing_compile_failed" = "Compile error, see above.";
"web_live_swing_failed" = "Java could not be loaded. Check your internet connection.";
"web_live_hint_edit" = "Type Java code here and the diagram builds itself. Or work in the diagram and the code grows along. Grey = placeholder, just type over it.";
"web_live_edit_label" = "Java code";
"web_parse_line_fmt" = "Line %d: %@";
"web_parse_missing" = "Still missing here: %@";
"web_parse_extra" = "One too many: %@";
"web_parse_unclosed_string" = "The closing %@ is missing here.";
"web_parse_else_without_if" = "This “else” has no matching “if”.";
"web_parse_case_outside_switch" = "“case” and “default” belong inside a “switch”.";
"web_parse_missing_do_while" = "After “do { … }” you still need “while (condition);”.";
"web_parse_more_methods" = "Only one method counts here for now. Create further subprograms as separate tabs.";
"web_parse_missing_import" = "%@ is missing at the very top. Without this line Java doesn’t know Scanner.";
"web_parse_missing_scanner" = "%@ is missing before this line. Without it the Scanner doesn’t exist.";
"web_parse_unknown_type" = "Java doesn’t know this data type. Did you mean %@?";
"web_editor_title" = "Diagram";
"web_editor_show" = "Show diagram";
"web_editor_hide" = "Hide diagram";
"web_keywords_title" = "Code keywords";
"web_keywords_hint" = "if, while, for instead of Branch, For loop …";
"web_palette_compact" = "Elements always compact";
"web_palette_compact_hint" = "Symbol with a small name below, otherwise only when the column is narrow";
"web_about_version_fmt" = "Version %@";
"web_about_software" = "Third-party software";
"web_about_software_text" = "The code editor uses CodeMirror and Lezer (MIT License). With Swing support, VisuStruct loads CheerpJ by Leaning Technologies (Community License) and javac from OpenJDK.";
"web_about_licenses" = "License texts";
"web_live_run" = "Run";
"web_live_run_title" = "Run the program: output and input appear below";
"web_live_run_finished" = "Program finished.";
"web_live_run_stopped" = "Stopped.";
"web_console" = "Console";
"web_console_hide" = "Hide console";
"web_console_resize" = "Resize console";
"web_diagram_tools" = "Diagram tools";
"web_files_title" = "Files";
"web_files_show" = "Show files";
"web_files_hide" = "Hide files";
"web_files_resize" = "Resize files";
"web_files_new_folder" = "New folder";
"web_files_switch" = "Choose another folder";
"web_files_delete" = "Delete";
"web_files_in_browser" = "In this browser’s storage";
"web_files_save_hint_fmt" = "Saving puts the program in %@.";
"web_files_empty" = "Nothing saved yet. When you save, VisuStruct creates a folder with today’s date here.";
"web_files_reconnect_hint" = "After reloading, the browser asks once more whether VisuStruct may use your folder.";
"web_files_reconnect_fmt" = "Open folder “%@”";
"web_files_connect_hint" = "Choose a folder as your workspace, ideally a new folder “VisuStruct-Files” in your Documents. VisuStruct creates a folder for each day in it and saves both diagram and code.";
"web_files_connect" = "Choose folder";
"web_files_browser_hint" = "This browser can’t open folders on the device (for example on iPad). Your files then stay in this browser’s storage.";
"web_files_browser" = "Save in the browser";
"web_files_delete_confirm_fmt" = "Really delete “%@”?";
"web_files_folder_prompt" = "Name of the new folder:";
"web_files_default_name" = "Program";
"web_files_saved_fmt" = "Saved: %@";
"web_files_create" = "Create";
"web_learn_ludwig_tip" = "Ludwig’s tip";
"web_game_title" = "Game: True or false?";
"web_game_intro" = "Ludwig shows you values and a condition. Is the condition true or false? Ten rounds, getting trickier each time.";
"web_game_start" = "Start game";
"web_game_round_fmt" = "Round %@ of %@";
"web_game_score_fmt" = "Points: %@";
"web_game_true" = "true";
"web_game_false" = "false";
"web_game_right" = "Correct!";
"web_game_wrong" = "Not quite. This is how it works out:";
"web_game_next" = "Next";
"web_game_finish" = "Result";
"web_game_done_fmt" = "%@ of %@ correct.";
"web_game_perfect" = "All correct – Ludwig is seriously impressed!";
"web_game_good" = "Great! Have another look at your mistakes and try again.";
"web_game_practice" = "Practice makes perfect. Read the truth table above once more and play another round.";
"web_game_again" = "Play again";
"web_game_wrong_short" = "Sorry, that's wrong.";
"web_game_practice_short" = "Practice makes perfect. Read the explanations again and play another round.";
"web_game_clicks" = "Clicks:";
"web_game_nobody" = "Nobody is listening – nothing happens.";
"web_game_event_fmt" = "Click on “%@”: the listener hears it and runs its code.";
"web_game_try" = "Now try the buttons in the window yourself.";
"web_game_time_fmt" = "%@ s left";
"web_game_defused" = "✂️ Defused! You found the mistake.";
"web_game_boom_time" = "💥 Boom! Time is up.";
"web_game_boom_wrong" = "💥 Boom! That was the wrong line.";
"web_game_fix" = "The correct line:";
"web_game_order_hint" = "Tap the steps in the right order.";
"web_debug_step" = "Step";
"web_debug_step_title" = "Step: run one statement and pause again";
"web_debug_continue" = "Continue to the next breakpoint";
"web_debug_paused_fmt" = "Paused before line %d.";
"web_debug_gutter_title" = "Click a line number to set or remove a breakpoint";
/* Lernbereich: Caesar-Scheibe */
"web_learn_caesar_title" = "Caesar wheel";
"web_learn_caesar_hint" = "Turn the inner wheel or tap −1 and +1. The outer ring shows the plain text, the inner ring the secret text.";
"web_learn_caesar_key_fmt" = "Key %d";
"web_learn_caesar_plain" = "Plain text";
"web_learn_caesar_secret" = "Secret text";
"web_learn_caesar_encrypt" = "Encrypt";
"web_learn_caesar_decrypt" = "Decrypt";
"web_learn_caesar_back" = "Turn wheel back one";
"web_learn_caesar_forward" = "Turn wheel forward one";
"web_learn_rescue_station_fmt" = "Station %@ of %@: %@";
"web_learn_rescue_number" = "Your number";
"web_learn_rescue_not_number" = "Enter a whole number.";
"web_learn_rescue_wrong" = "Not yet. Read the code again, character by character.";
"web_learn_rescue_letter_moved" = "The letter goes into the crossword.";
"web_learn_rescue_alphabet" = "Your number turns into a letter:";
"web_learn_rescue_to_crossword" = "To the crossword";
"web_learn_rescue_crossword" = "The crossword";
"web_learn_rescue_across" = "→ Across";
"web_learn_rescue_down" = "↓ Down";
"web_learn_rescue_cell_fmt" = "Square row %@, column %@";
"web_learn_rescue_keyword" = "Secret word:";
"web_learn_rescue_cw_wrong" = "The squares marked red are not right yet.";
"web_learn_rescue_cw_done" = "Solved! The yellow squares spell the secret word.";
"web_learn_rescue_to_gate" = "To the gate";
"web_learn_rescue_gate" = "The gate";
"web_learn_rescue_word" = "Secret word";
"web_learn_rescue_open" = "Open the gate";
"web_learn_rescue_gate_case" = "Almost! equals tells capital and small letters apart. Write the word exactly as in the crossword.";
"web_learn_rescue_gate_wrong" = "The gate stays shut. Look at the yellow squares again.";
"web_learn_rescue_freed" = "🎉 The gate is open!";
/* VisuBot (mBot2-Modus), nur de/en/pt */
"web_visubot_world_title" = "What do you want to work with?";
"web_visubot_world_visustruct_hint" = "VisuStruct: structure charts and Java with the whole course. You can switch any time in the gear menu.";
"web_visubot_world_visubot_hint" = "VisuBot: program the mBot2 robot, with its own lessons and tasks. You can switch any time in the gear menu.";
"web_visubot_connect" = "Connect real mBot2";
"web_visubot_upload_button" = "Upload";
"web_visubot_upload_title" = "Upload program to the mBot2";
"web_visubot_upload_step1" = "Connect the mBot2 with the USB cable and switch it on. This only works in Chrome or Edge.";
"web_visubot_upload_step2" = "Click “Upload now” and choose “USB Serial”. The mBot2 saves your program and restarts.";
"web_visubot_upload_step3" = "Unplug the cable and put the mBot2 at the start. When you press button A, your program starts. It stays saved, even after switching off.";
"web_visubot_upload_start" = "Upload now";
"web_visubot_upload_busy" = "Uploading … do not unplug the cable.";
"web_visubot_upload_done" = "Done! Unplug the cable, put the mBot2 at the start, press button A.";
"web_visubot_upload_failed" = "The upload did not work. Restart the mBot2 and try again.";
"web_visubot_upload_label" = "A = Start";
"web_visubot_upload_error_input" = "Your program asks for an input. The mBot2 has no keyboard, so this does not work.";
"web_visubot_upload_error_files" = "Your program works with files. This does not work on the mBot2.";
"web_visubot_upload_error_empty" = "Your program is still empty.";
"web_visubot_disconnect" = "Disconnect";
"web_visubot_connecting" = "Connecting … (the CyberPi restarts briefly)";
"web_visubot_connected" = "Real mBot2 drives along";
"web_visubot_no_serial" = "Real mBot2: only in Chrome or Edge on a computer.";
"web_visubot_link_error" = "Connection lost";
"web_visubot_world" = "VisuBot world";
"web_visubot_no_3d" = "The 3D view cannot start in this browser.";
"web_visubot_distance" = "Distance";
"web_visubot_line" = "Line";
"web_visubot_bumps" = "bumped into the wall";
"web_visubot_el_forward" = "move forward";
"web_visubot_el_backward" = "move back";
"web_visubot_el_right" = "turn right";
"web_visubot_el_left" = "turn left";
"web_visubot_el_led" = "LEDs on";
"web_visubot_el_tone" = "play a tone";
"web_visubot_drive" = "Drive";
"web_visubot_depth_fmt" = "The loops must be nested %d deep.";
"web_visubot_tap_part" = "Rotate the mBot2 with the mouse or your finger. Tap a part to see its name.";
"web_visubot_quiz_right" = "Correct!";
"web_visubot_quiz_wrong_fmt" = "That is: %@. Try again.";
"web_visubot_part_cyberpi" = "CyberPi";
"web_visubot_part_screen" = "Screen";
"web_visubot_part_joystick" = "Joystick";
"web_visubot_part_buttons" = "Buttons A, B and Home";
"web_visubot_part_leds" = "RGB LEDs";
"web_visubot_part_lightSensor" = "Light sensor";
"web_visubot_part_microphone" = "Microphone";
"web_visubot_part_shield" = "mBot2 shield with battery";
"web_visubot_part_powerSwitch" = "Power switch";
"web_visubot_part_motors" = "Encoder motors";
"web_visubot_part_wheels" = "Wheels";
"web_visubot_part_ultrasonic" = "Ultrasonic sensor";
"web_visubot_part_lineSensor" = "Line sensor (quad RGB)";
"web_visubot_part_caster" = "Ball caster";
"web_visubot_part_chassis" = "Chassis";
"web_visubot_world_fmt" = "World %d";
"web_visubot_goal_reached" = "Goal reached";
"web_visubot_goal_missed" = "Goal not reached";
"web_visubot_commands" = "mBot2 commands";
"web_visubot_sensors" = "mBot2 sensors";
"web_visubot_sensor_distance" = "Distance";
"web_visubot_sensor_line" = "Line";
"web_visubot_el_led_off" = "LEDs off";
"web_visubot_el_led_color" = "set LED colour";
"web_visubot_el_wait" = "wait a moment";
"web_visubot_el_emotion" = "show a feeling";
"web_visubot_el_text" = "show text";
"web_visubot_sensor_color" = "Colour is red?";
"web_visubot_sensor_button_a" = "Button A pressed?";
"web_visubot_sensor_button_b" = "Button B pressed?";
"web_visubot_sensor_joy_up" = "Joystick up?";
"web_visubot_sensor_joy_down" = "Joystick down?";
"web_visubot_sensor_joy_left" = "Joystick left?";
"web_visubot_sensor_joy_right" = "Joystick right?";
"web_visubot_sensor_brightness" = "Brightness";
"web_visubot_sensor_loudness" = "Loudness";
"web_visubot_sensor_pitch" = "Tilt forward/back";
"web_visubot_sensor_roll" = "Tilt sideways";
"web_visubot_sensor_shake" = "Shaken?";
"web_visubot_el_drive" = "wheels separately";
"web_visubot_el_stop" = "stop";
"web_visubot_el_timer" = "reset stopwatch";
"web_visubot_sensor_line_left" = "Line left?";
"web_visubot_sensor_line_right" = "Line right?";
"web_visubot_sensor_timer" = "Stopwatch (s)";
"web_visubot_sensor_battery" = "Battery (%)";
"web_visubot_actions" = "Commands";
"web_visubot_led_on" = "LEDs on";
"web_visubot_led_off" = "LEDs off";
"web_visubot_tone_yes" = "tone";
"web_visubot_tone_no" = "no tone";
"web_visubot_controls" = "Try the sensors";
"web_visubot_controls_hint" = "Without a real mBot2: set here what the sensors measure. Buttons, joystick and shaking last for one second.";
"web_visubot_shake" = "shake";
"web_visubot_check" = "Test the mBot2";
"web_visubot_check_hint" = "Try each actuator once. The sensor values update live: hold your hand in front of the ultrasonic sensor, press the buttons, tilt or shake the mBot2. Lift it up for the wheels.";
"web_visubot_check_forward" = "Wheels 1 s forward";
"web_visubot_check_spin" = "Turn on the spot for 1 s";
/* Start: Ordner für Lernstand und Programme */
"web_learn_start_title" = "Where do you keep your work?";
"web_learn_start_hint" = "Your learning progress and programs live in a folder on your device. The progress is stored there in the file learnProgress.json.";
"web_learn_start_continue_fmt" = "Continue with “%@”";
"web_learn_start_open" = "Open existing folder";
"web_learn_start_create_fmt" = "Create new folder “%@”";
"web_learn_start_create_hint" = "Next, choose where it should go, e.g. in “Documents”.";
"web_learn_start_folder" = "VisuStruct-Files";
"web_learn_start_without" = "Continue without a folder";
"web_learn_start_without_hint" = "Your learning progress is then lost when you close the page.";
"web_visubot_preview_title" = "mBot2 live";
"web_visubot_preview_hint" = "Shows right away where your program drives the mBot2.";
"web_visubot_preview_sim_title" = "Simulation";
"web_visubot_preview_sim_hint" = "The mBot2 drives here while the simulation runs.";
"web_visubot_world_in_preview" = "The mBot2 drives in the “Simulation” window.";
"web_visubot_preview_play" = "Play the drive";
"web_visubot_preview_stop" = "Stop";
"web_visubot_preview_hide" = "Collapse mBot2 live";
"web_visubot_preview_show" = "Show mBot2 live";
"web_visubot_preview_resize" = "Resize mBot2 live";
"web_visubot_preview_stack" = "Below the code in Programming";
"web_visubot_preview_side" = "As a column of its own";
"web_visubot_preview_distance_fmt" = "Distance: %d cm";
"web_visubot_preview_input" = "needs an input, start the simulation for that";
"web_visubot_preview_limit" = "runs for a very long time (endless loop?), showing the start";
"web_visubot_group_drive" = "Driving and turning";
"web_visubot_group_wheels" = "Wheels separately";
"web_visubot_group_output" = "Light, sound and screen";
"web_visubot_group_emotion" = "Emotions";
"web_visubot_group_wait" = "Waiting and stopwatch";
"web_visubot_group_distance" = "Distance";
"web_visubot_group_line" = "Line";
"web_visubot_group_color" = "Colours";
"web_visubot_group_buttons" = "Buttons and joystick";
"web_visubot_group_light" = "Light and loudness";
"web_visubot_group_tilt" = "Tilt and shaking";
"web_visubot_group_timer" = "Stopwatch and battery";
"web_swap_to_code" = "Programming large, structogram narrow";
"web_swap_to_editor" = "Structogram large, programming narrow";
"web_editor_resize" = "Resize the structogram";
"web_palette_resize" = "Resize the elements (double-click: reset)";
"web_palette_hide" = "Hide elements";
"web_palette_show" = "Show elements";
/* VisuObject */
"web_visuobject_world_hint" = "VisuObject: write classes in Java and see or draw them as a class diagram (from year 12). You can switch any time in the gear menu.";
"web_visuobject_subtitle" = "Class diagram";
"web_visuobject_code" = "Java code";
"web_visuobject_diagram" = "Class diagram";
"web_visuobject_add_interface" = "Interface";
"web_visuobject_add_interface_tip" = "Add a new interface to the diagram and the code";
"web_visuobject_layout" = "Arrange again";
"web_visuobject_layout_tip" = "Arrange all classes automatically: superclasses at the top";
"web_visuobject_add_field" = "new attribute …";
"web_visuobject_add_method" = "new method …";
"web_visuobject_delete_class" = "Delete class";
"web_visuobject_new_class_name" = "NewClass";
"web_visuobject_new_interface_name" = "NewInterface";
"web_visuobject_example" = "Example";
"web_visuobject_example_tip" = "Load the example project Zoo: Tier and Hund in package tiere, Besitzer in personen";
"web_visuobject_new_tip" = "New: empty project (Undo brings the old one back)";
"web_visuobject_empty" = "No class yet. Click “+ Class” on the left or type for example “public class Dog { }” into a file.";
"web_visuobject_edit_hint" = "Double-click to change. Write it as in UML: “- name: String” or “+ bark(): void”. Leave it empty to delete.";
"web_visuobject_member_label" = "Attribute or method in UML notation";
"web_visuobject_name_label" = "Class name";
"web_visuobject_bad_name" = "“%@” is not a valid name or already exists.";
"web_visuobject_bad_line" = "I don’t understand “%@”. Example: - name: String or + bark(): void";
"web_visuobject_open_failed" = "The file could not be read.";
"web_visuobject_field_ph" = "- name: String";
"web_visuobject_seq_diagram" = "Sequence diagram";
"web_visuobject_seq_empty" = "The sequence diagram is built while debugging: click “Debug” above and step through the program.";
"web_visuobject_seq_no_calls" = "No calls of your own methods yet.";
"web_visuobject_seq_truncated" = "… shortened: too many calls from here on.";
"web_visuobject_seq_hint" = "Each arrow is a call of one of your methods, the dashed arrow brings the return value back. Click an arrow to see the line in the code.";
"web_visuobject_dbg" = "Debug";
"web_visuobject_dbg_tip" = "Run the program step by step. Breakpoint: click the line number. The object diagram shows the objects in memory.";
"web_visuobject_dbg_continue" = "Resume";
"web_visuobject_dbg_continue_tip" = "Run to the next breakpoint (F8)";
"web_visuobject_dbg_pause" = "Pause";
"web_visuobject_dbg_pause_tip" = "Pause the program";
"web_visuobject_dbg_over" = "Step";
"web_visuobject_dbg_over_tip" = "Next line; methods run completely (F6)";
"web_visuobject_dbg_into" = "Into";
"web_visuobject_dbg_into_tip" = "Step into the called method (F5)";
"web_visuobject_dbg_out" = "Out";
"web_visuobject_dbg_out_tip" = "Finish the method and return to the caller (F7)";
"web_visuobject_dbg_input" = "Input for the Scanner, then Enter";
"web_visuobject_dbg_running" = "Debugger: program running …";
"web_visuobject_dbg_waiting" = "Debugger: the program is waiting for your input.";
"web_visuobject_dbg_paused_fmt" = "Debugger: paused in %1$@, line %2$@";
"web_visuobject_dbg_exception" = "Program stopped with an exception.";
"web_visuobject_dbg_code_changed" = "Code changed: debugger stopped.";
"web_visuobject_dbg_line_fmt" = "%1$@:%2$@";
"web_visuobject_dbg_stack" = "Call stack";
"web_visuobject_dbg_vars" = "Variables";
"web_visuobject_dbg_var_name" = "Name";
"web_visuobject_dbg_var_type" = "Type";
"web_visuobject_dbg_no_vars" = "No variables";
"web_visuobject_dbg_err_syntax" = "%1$@, line %2$@: the debugger does not understand this (%3$@). ▶ Start shows Java's message.";
"web_visuobject_dbg_err_symbol" = "%1$@, line %2$@: %3$@ is unknown.";
"web_visuobject_dbg_err_import" = "%1$@, line %2$@: %3$@ is missing at the very top. Without this line Java doesn’t know the class.";
"web_visuobject_dbg_err_typename" = "%1$@, line %2$@: Java doesn’t know this data type. Did you mean %3$@?";
"web_visuobject_dbg_err_unsupported" = "%1$@, line %2$@: the debugger cannot do %3$@ yet. ▶ Start runs the program in real Java.";
"web_visuobject_dbg_err_type" = "%1$@, line %2$@: something does not fit here (%3$@).";
"web_visuobject_obj_diagram" = "Object diagram";
"web_visuobject_obj_new" = "New object of class";
"web_visuobject_obj_add" = "Object";
"web_visuobject_obj_empty" = "No objects yet. Choose a class above and click “+ Object”.";
"web_visuobject_obj_no_classes" = "First create a class (not abstract) in the class diagram.";
"web_visuobject_obj_hint" = "Click an object to change its name, class and values here. Drag the handle to another object to connect them through a reference attribute.";
"web_visuobject_obj_live_hint" = "Live from the debugger: this is how the objects look in memory right now.";
"web_visuobject_obj_link" = "Drag to another object: set a reference";
"web_visuobject_obj_name" = "Name";
"web_visuobject_obj_class" = "Class";
"web_visuobject_obj_attribute" = "Attribute";
"web_visuobject_obj_value" = "Value";
"web_visuobject_obj_delete" = "Delete object";
"web_visuobject_obj_bad_name" = "“%@” is not a valid object name.";
"web_visuobject_obj_name_taken" = "There is already an object “%@”.";
"web_visuobject_obj_no_ref" = "%1$@ has no attribute that can refer to %2$@.";
"web_visuobject_tool_note" = "Note";
"web_visuobject_tool_note_tip" = "Note: click into the class diagram, then type the text. Drag the handle to a class for a dashed line.";
"web_visuobject_note_ph" = "Note …";
"web_visuobject_note_text" = "Text";
"web_visuobject_note_attached" = "Attached to";
"web_visuobject_note_attach" = "Drag to a class: dashed line";
"web_visuobject_note_delete" = "Delete note";
"web_visuobject_run" = "Run";
"web_visuobject_run_tip" = "Run the program with real Java: all classes are compiled, the class with main is started (preferably the open one).";
"web_visuobject_stop" = "Stop";
"web_visuobject_stop_tip" = "End the program and close its windows";
"web_visuobject_stopped" = "Program stopped.";
"web_visuobject_no_main" = "No class with public static void main(String[] args) found.";
"web_visuobject_running_fmt" = "%@ is running …";
"web_visuobject_console_clear" = "Clear";
"web_visuobject_section_fields" = "Attributes";
"web_visuobject_section_refs" = "Reference attributes";
"web_visuobject_section_ctors" = "Constructor";
"web_visuobject_section_methods" = "Methods";
"web_visuobject_insp_sections" = "Insert section comments";
"web_visuobject_insp_sort" = "Sort into sections";
"web_visuobject_insp_sections_tip" = "Writes // Attributes, // Reference attributes, // Constructor and // Methods into the class and sorts everything below them. New members from the class diagram then go straight to the right place.";
"web_visuobject_insp_doc" = "Description (Javadoc)";
"web_visuobject_insp_doc_ph" = "What is the class for? Written in the code as a Javadoc comment above the class.";
"web_visuobject_insp_visibility" = "Visibility";
"web_visuobject_insp_type" = "Type";
"web_visuobject_insp_init" = "Initial value";
"web_visuobject_insp_no_fields" = "No attributes yet.";
"web_visuobject_insp_add_field" = "Attribute";
"web_visuobject_insp_params" = "Parameters";
"web_visuobject_insp_return" = "Return type";
"web_visuobject_insp_constructor" = "Constructor";
"web_visuobject_insp_no_methods" = "No methods yet.";
"web_visuobject_insp_add_method" = "Method";
"web_visuobject_insp_generate" = "Generate:";
"web_visuobject_insp_gen_constructor" = "Constructor from attributes";
"web_visuobject_insp_gen_constructor_tip" = "Like Eclipse “Generate Constructor using Fields”: a constructor that sets all attributes (except static).";
"web_visuobject_insp_gen_accessors" = "Getters and setters";
"web_visuobject_insp_gen_accessors_tip" = "Like Eclipse “Generate Getters and Setters”: get…/set… for each attribute (final attributes get only a getter).";
"web_visuobject_insp_bad_params" = "Write parameters like this: name: Type, second: int (read “%@”).";
"web_visuobject_insp_fields" = "Attributes";
"web_visuobject_insp_methods" = "Methods";
"web_visuobject_inspector_resize" = "Resize: drag the border between class diagram and object inspector up or down (double-click = default)";
"web_visuobject_dep_title" = "Dependency «%@»";
"web_visuobject_dep_create_text" = "%1$@ creates an object of class %2$@ in %3$@ (new).";
"web_visuobject_dep_use_text" = "%1$@ uses the class %2$@ in %3$@.";
"web_visuobject_dep_hint" = "This is not an association: %@ does not keep the %@ object in an attribute, it only lives inside the method. That is why the line is dashed.";
"web_visuobject_dep_to_assoc" = "Keep as attribute (association to %@)";
"web_visuobject_end_mult_ph" = "mult.";
"web_visuobject_end_tip" = "Click (line selected) or right-click: role, multiplicity and navigability at this end";
"web_visuobject_end_role_ph" = "e.g. myCats";
"web_visuobject_new_menu" = "New";
"web_visuobject_new_menu_tip" = "Create a new project, source folder, package, class or interface";
"web_visuobject_new_project" = "Java project";
"web_visuobject_new_folder" = "Source folder";
"web_visuobject_new_package" = "Package";
"web_visuobject_new_class" = "Class";
"web_visuobject_new_interface" = "Interface";
"web_visuobject_new_project_title" = "New Java project";
"web_visuobject_new_project_hint" = "In the workspace every project gets its own folder with src.";
"web_visuobject_new_folder_title" = "New source folder";
"web_visuobject_new_folder_hint" = "Another folder for source code next to src, e.g. test for test classes.";
"web_visuobject_new_package_title" = "New package";
"web_visuobject_new_package_hint" = "Package names are lower case, parts separated by dots: animals or school.office.";
"web_visuobject_new_class_title" = "New Java class";
"web_visuobject_new_class_hint" = "Class names start with a capital letter, e.g. Dog or BankAccount.";
"web_visuobject_new_interface_title" = "New Java interface";
"web_visuobject_new_interface_hint" = "An interface defines methods that classes implement later.";
"web_visuobject_new_root" = "Source folder";
"web_visuobject_new_name" = "Name";
"web_visuobject_new_modifiers" = "Modifiers";
"web_visuobject_new_package_private" = "package (no modifier)";
"web_visuobject_new_superclass" = "Superclass";
"web_visuobject_new_interfaces" = "Interfaces (implements)";
"web_visuobject_new_extends_interfaces" = "Extends interfaces (extends)";
"web_visuobject_new_stubs" = "Which method stubs should be created?";
"web_visuobject_new_stub_constructors" = "Constructors from superclass";
"web_visuobject_new_stub_inherited" = "Inherited abstract methods";
"web_visuobject_new_comment_legend" = "Comment";
"web_visuobject_new_comment" = "Javadoc comment with @author";
"web_visuobject_new_author" = "Your name";
"web_visuobject_new_finish" = "Finish";
"web_visuobject_new_name_missing" = "Please enter a name.";
"web_visuobject_new_exists" = "“%@” already exists in the project.";
"web_visuobject_new_upper" = "In Java, class names start with a capital letter.";
"web_visuobject_bad_folder" = "“%@” is not a valid folder name or already exists.";
"web_visuobject_inspector_hide" = "Collapse object inspector";
"web_visuobject_inspector_show" = "Expand object inspector";
"web_visuobject_inspector_empty" = "Click a relationship (line) in the diagram to edit it here.";
"web_visuobject_rel_end_a" = "End A: %@ (line starts here)";
"web_visuobject_rel_end_b" = "End B: %@ (line ends here)";
"web_visuobject_ws_title" = "Workspace folder on your computer";
"web_visuobject_ws_question" = "Where do you keep your projects?";
"web_visuobject_ws_hint" = "Like in Eclipse: a workspace folder on your computer with one folder per project, holding src and the .java files.";
"web_visuobject_ws_create" = "Create folder “%@”";
"web_visuobject_ws_open" = "Open existing workspace";
"web_visuobject_ws_skip" = "Without a folder (browser only)";
"web_visuobject_ws_choose" = "Choose workspace";
"web_visuobject_ws_reopen" = "Open workspace “%@”";
"web_visuobject_ws_switch" = "Switch";
"web_visuobject_ws_zip" = "ZIP";
"web_visuobject_ws_zip_tip" = "Download the project as .zip, e.g. to hand it in";
"web_visuobject_ws_saved" = "Saved to %@/%@";
"web_visuobject_ws_created" = "New project “%@” in the workspace";
"web_visuobject_ws_failed" = "Saving to the workspace failed: %@";
"web_visuobject_ws_taken" = "The workspace already has a project “%@”.";
"web_visuobject_ws_open_project" = "Open project %@";
"web_visuobject_save_ws_tip" = "Save to the workspace (Ctrl+S)";
"web_visuobject_unsaved" = "not saved";
"web_visuobject_rel_nav_navigable" = "navigable (arrow)";
"web_visuobject_rel_nav_non-navigable" = "non-navigable (cross ×)";
"web_visuobject_rel_nav_unspecified" = "unspecified (open)";
"web_visuobject_rel_reading_flip" = "reverse";
"web_visuobject_rel_reading_auto" = "With a name, the relationship reads in the direction you dragged.";
"web_visuobject_tools" = "Tools";
"web_visuobject_tool_select" = "Select";
"web_visuobject_tool_select_tip" = "Select and move";
"web_visuobject_tool_class" = "Class";
"web_visuobject_tool_class_tip" = "Class: drag onto the canvas, or pick it and click on the canvas";
"web_visuobject_tool_interface" = "Interface";
"web_visuobject_tool_interface_tip" = "Interface: drag onto the canvas, or pick it and click on the canvas";
"web_visuobject_tool_link" = "Association";
"web_visuobject_tool_link_tip" = "Association without navigation: draw a plain line between two classes";
"web_visuobject_rel_link" = "Association (no navigation)";
"web_visuobject_tool_not_link" = "%@ is an interface and cannot have attributes. Drag the relationship from a class.";
"web_visuobject_tool_association" = "Directed";
"web_visuobject_tool_association_tip" = "Directed association: drag from the class that knows the other one to the other (arrow)";
"web_visuobject_tool_aggregation" = "Aggregation";
"web_visuobject_tool_aggregation_tip" = "Aggregation: drag from the whole to the part (has, parts live on)";
"web_visuobject_tool_composition" = "Composition";
"web_visuobject_tool_composition_tip" = "Composition: drag from the whole to the part (consists of, parts belong to it)";
"web_visuobject_tool_extends" = "Inheritance";
"web_visuobject_tool_extends_tip" = "Inheritance: drag from the subclass to the superclass (extends)";
"web_visuobject_tool_implements" = "Realization";
"web_visuobject_tool_implements_tip" = "Realization: drag from the class to the interface (implements)";
"web_visuobject_tool_pick_second" = "Now click the second class (from %@). Esc cancels.";
"web_visuobject_tool_not_association" = "%@ is an interface and cannot have attributes. Drag the relationship from a class.";
"web_visuobject_tool_not_aggregation" = "%@ is an interface and cannot have attributes. Drag the relationship from a class.";
"web_visuobject_tool_not_composition" = "%@ is an interface and cannot have attributes. Drag the relationship from a class.";
"web_visuobject_tool_not_extends" = "%@ cannot inherit from %@: classes extend classes, interfaces extend interfaces. For an interface use realization.";
"web_visuobject_tool_not_implements" = "%@ cannot implement %@: only a class implements an interface.";
"web_visuobject_inspector" = "Object inspector";
"web_visuobject_connect" = "Drag: relationship to another class";
"web_visuobject_rel_association" = "Association";
"web_visuobject_rel_directed" = "Directed association";
"web_visuobject_rel_aggregation" = "Aggregation (has, parts live on)";
"web_visuobject_rel_composition" = "Composition (consists of, parts belong to it)";
"web_visuobject_rel_extends" = "Inheritance (extends)";
"web_visuobject_rel_implements" = "Realization (implements)";
"web_visuobject_rel_extends_text" = "%@ inherits from %@ (extends in the code).";
"web_visuobject_rel_implements_text" = "%@ implements the interface %@ (implements in the code).";
"web_visuobject_rel_kind" = "Kind";
"web_visuobject_rel_name" = "Name of the relationship";
"web_visuobject_rel_name_ph" = "e.g. owns";
"web_visuobject_rel_reading" = "Reading direction";
"web_visuobject_rel_navigable" = "Navigability";
"web_visuobject_rel_role" = "Role";
"web_visuobject_rel_multiplicity" = "Multiplicity";
"web_visuobject_rel_role_field" = "= attribute %@.%@ in the code";
"web_visuobject_rel_role_only_uml" = "diagram only (no attribute while the arrow points one way)";
"web_visuobject_rel_delete" = "Delete relationship";
"web_visuobject_rel_impossible" = "There is no suitable relationship from %@ to %@.";
"web_visuobject_rel_menu" = "%@ → %@";
"web_visuobject_resize" = "Drag to resize (double-click: default)";
"web_visuobject_pane_show" = "Expand area";
"web_visuobject_pane_hide" = "Collapse area";
"web_visuobject_close_tab" = "Close %@";
"web_visuobject_collapse" = "Collapse";
"web_visuobject_expand" = "Expand";
"web_visuobject_tree_empty" = "Still empty. Create a package or class with “+ New”.";
"web_visuobject_delete" = "Delete";
"web_visuobject_default_package" = "(default package)";
"web_visuobject_bad_package" = "“%@” is not a valid package name or already exists. Package names are lower case, e.g. animals.";
"web_visuobject_new_package_name" = "newpackage";
"web_visuobject_no_file" = "No file open";
"web_visuobject_project_name" = "MyProject";
"web_visuobject_explorer_show" = "Show Package Explorer";
"web_visuobject_explorer_hide" = "Collapse Package Explorer";
"web_visuobject_explorer" = "Package Explorer";
"web_visuobject_save_tip" = "Save the project as .zip: ProjectName/src/package/Class.java";
"web_visuobject_open_tip" = "Open a project (.zip as from Eclipse or BlueJ) or add .java files to the project";
"web_visuobject_method_ph" = "+ bark(): void";
"web_code_scopes" = "Colored blocks";
"web_code_scopes_hint" = "Code and structogram: loop pink, branch blue, method yellow, class green";
"web_pseudocode" = "Pseudocode";